ToolJet/frontend/package.json
Nithin David Thomas 4e07c24060
feat(rocket): add AlertDialog, Collapsible, Sheet, Sonner + Dialog overflow border (#15854)
* feat(rocket/alert-dialog): implement AlertDialog component with variants and documentation

* feat(rocket/collapsible): add Rocket Collapsible component

Bordered and ghost variants with animated expand/collapse via CSS grid-rows.
Includes styled trigger with auto-rotating chevron, variant context,
and Storybook stories.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore(storybook): fix quote style and centered layout sizing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(rocket/toaster): implement Sonner toast notification system with documentation and stories

* feat(rocket/sheet): add Rocket Sheet component

Right-side slide-in panel for multi-step forms (e.g. add datasource).
Three sizes (small/default/large), header/body/footer structure mirroring Dialog,
conditional footer overflow border via ResizeObserver context, preventClose support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(rocket/table): add Rocket Table primitive

Low-level table primitive with 8 sub-components (Table, TableHeader, TableBody,
TableFooter, TableRow, TableHead, TableCell, TableCaption). Density variants
(default 52px / compact 36px) via TableDensityContext. Borderless rows with
rounded pill hover/selected highlights via first/last cell rounded corners.
Header bottom border on cells (border-separate mode). All ToolJet tokens.

Brought forward from PR #14498 with improved organization and Figma-aligned
defaults from the apps list design.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(rocket): add Skeleton primitive + DataTable block

- Skeleton: Rocket primitive with pulsing bg-interactive-hover token
- TableSkeleton: TanStack-agnostic skeleton rows for use inside <Table>
- DataTable: TanStack-driven table block (header, body, loading, empty states)
  brought from PR #14498 with ToolJet token cleanup and proper file structure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat(rocket): add Checkbox and RadioGroup components with specifications and stories

* chore: update dependencies and remove unused packages

- Removed @base-ui/react and cmdk from dependencies.
- Updated various @radix-ui packages to lower versions for compatibility.
- Adjusted versions for @floating-ui packages.
- Cleaned up package-lock.json by removing unnecessary entries.

* feat(rocket): add Spinner and Textarea components with stories and update AlertDialog and Combobox for new props

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 16:43:49 +05:30

330 lines
10 KiB
JSON

{
"name": "frontend",
"version": "0.1.0",
"private": true,
"dependencies": {
"@apidevtools/json-schema-ref-parser": "^11.7.3",
"@base-ui/react": "^1.3.0",
"@codemirror/autocomplete": "^6.12.0",
"@codemirror/commands": "^6.3.3",
"@codemirror/lang-javascript": "^6.2.1",
"@codemirror/lang-python": "^6.1.3",
"@codemirror/lang-sass": "^6.0.2",
"@codemirror/lang-sql": "^6.5.5",
"@codemirror/language": "^6.10.0",
"@codemirror/view": "^6.24.0",
"@dnd-kit/core": "^6.0.7",
"@dnd-kit/sortable": "^7.0.2",
"@dnd-kit/utilities": "^3.2.1",
"@emoji-mart/data": "^1.1.2",
"@emoji-mart/react": "^1.1.1",
"@mdxeditor/editor": "^3.38.0",
"@microsoft/fetch-event-source": "^2.0.1",
"@radix-ui/colors": "^0.1.8",
"@radix-ui/react-alert-dialog": "^1.1.15",
"@radix-ui/react-avatar": "^1.1.11",
"@radix-ui/react-checkbox": "^1.0.4",
"@radix-ui/react-collapsible": "^1.1.12",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-label": "^2.1.8",
"@radix-ui/react-navigation-menu": "^1.2.14",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-radio-group": "^1.3.8",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.8",
"@radix-ui/react-slider": "^1.1.2",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-switch": "^1.0.3",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.11",
"@radix-ui/react-tooltip": "^1.2.8",
"@react-google-maps/api": "^2.18.1",
"@sentry/react": "^7.100.1",
"@sentry/webpack-plugin": "^2.14.0",
"@tabler/icons-react": "^2.4.0",
"@tanstack/react-table": "^8.20.5",
"@tanstack/react-virtual": "^3.10.8",
"@textea/json-viewer": "^3.3.2",
"@tooljet/plugins": "../plugins",
"@uiw/codemirror-theme-github": "^4.21.21",
"@uiw/codemirror-theme-okaidia": "^4.21.21",
"@uiw/codemirror-themes-all": "^4.25.4",
"@uiw/react-codemirror": "^4.21.21",
"@wojtekmaj/react-daterange-picker": "^5.2.0",
"@wojtekmaj/react-datetimerange-picker": "^5.2.0",
"@y-presence/react": "^2.0.1",
"acorn": "^8.11.3",
"acorn-walk": "^8.3.4",
"axios": "^1.3.3",
"bootstrap": "^5.2.3",
"buffer": "^6.0.3",
"class-variance-authority": "^0.7.1",
"classnames": "^2.3.2",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"cron-validator": "^1.3.1",
"cronstrue": "^2.51.0",
"deep-object-diff": "^1.1.9",
"dependency-graph": "^1.0.0",
"dompurify": "^3.0.0",
"dotenv": "^16.0.3",
"draft-js": "^0.11.7",
"draft-js-export-html": "^1.4.1",
"draft-js-import-html": "^1.4.1",
"driver.js": "^0.9.8",
"emoji-mart": "^5.5.2",
"file-loader": "^6.2.0",
"flatted": "^3.3.1",
"focus-trap-react": "^10.0.2",
"fuse.js": "^6.6.2",
"html-loader": "^4.2.0",
"html-webpack-plugin": "^5.5.0",
"humps": "^2.0.1",
"i18next": "^22.4.9",
"i18next-http-backend": "^2.1.1",
"immer": "^9.0.19",
"immutability-helper": "^3.1.1",
"jspdf": "^4.2.0",
"jspdf-autotable": "^5.0.7",
"lodash": "^4.17.21",
"lucide-react": "^0.525.0",
"moment": "^2.29.4",
"moment-timezone": "^0.5.40",
"papaparse": "^5.3.2",
"path-browserify": "^1.0.1",
"pdfjs-dist": "5.3.93",
"plotly.js-dist-min": "^2.29.1",
"posthog-js": "^1.255.1",
"process": "^0.11.10",
"psl": "^1.9.0",
"query-string": "^8.1.0",
"rc-slider": "^10.1.1",
"react": "^18.2.0",
"react-accessible-treeview": "^2.11.1",
"react-beautiful-dnd": "^13.1.1",
"react-big-calendar": "^1.6.5",
"react-bootstrap": "^2.7.2",
"react-burger-menu": "^3.0.9",
"react-checkbox-tree": "^1.8.0",
"react-circular-progressbar": "^2.1.0",
"react-color": "^2.19.3",
"react-copy-to-clipboard": "^5.1.0",
"react-currency-input-field": "^3.10.0",
"react-datepicker": "^7.6.0",
"react-dates": "^21.8.0",
"react-datetime": "^3.2.0",
"react-dnd": "^16.0.1",
"react-dnd-html5-backend": "^16.0.1",
"react-dom": "^18.2.0",
"react-dropzone": "^14.3.8",
"react-highlight-words": "^0.21.0",
"react-hot-toast": "^2.4.0",
"react-hotkeys-hook": "^4.3.5",
"react-i18next": "^12.1.5",
"react-image-annotation": "^0.9.10",
"react-json-tree": "^0.18.0",
"react-json-view": "^1.21.3",
"react-lazy-load-image-component": "^1.5.6",
"react-lazyload": "^3.2.0",
"react-loading-skeleton": "^3.1.1",
"react-markdown": "^9.0.0",
"react-media-recorder": "^1.7.2",
"react-mentions": "^4.4.7",
"react-moveable": "^0.56.0",
"react-multi-select-component": "^4.3.4",
"react-pdf": "^10.1.0",
"react-phone-input-2": "^2.15.1",
"react-phone-number-input": "^3.4.12",
"react-plotly.js": "^2.6.0",
"react-qr-reader": "^2.2.1",
"react-rnd": "^10.4.1",
"react-router-dom": "^6.8.1",
"react-select": "^5.7.0",
"react-select-search": "^4.1.6",
"react-selecto": "^1.22.0",
"react-spring": "^9.6.1",
"react-syntax-highlighter": "^15.6.1",
"react-table": "^7.8.0",
"react-table-plugins": "^1.3.4",
"react-tooltip": "^5.28.0",
"react-virtuoso": "^4.1.0",
"react-zoom-pan-pinch": "^2.6.1",
"reactflow": "^11.7.4",
"read-excel-file": "^5.8.8",
"rehype-raw": "^7.0.0",
"remark-gfm": "^4.0.1",
"rfdc": "^1.3.1",
"rxjs": "^7.8.0",
"semver": "^7.3.8",
"sonner": "^2.0.7",
"string-hash": "^1.1.3",
"superstruct": "^1.0.3",
"tailwind-merge": "^2.6.0",
"tailwindcss-animate": "^1.0.7",
"tinycolor2": "^1.6.0",
"tw-animate-css": "^1.3.7",
"url-join": "^5.0.0",
"use-react-router-breadcrumbs": "^4.0.1",
"util": "^0.12.5",
"uuid": "9.0.0",
"xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
"y-websocket": "^1.4.5",
"yjs": "^13.5.46",
"zipcelx": "^1.6.2",
"zustand": "^4.3.6"
},
"devDependencies": {
"@babel/core": "^7.20.12",
"@babel/eslint-parser": "^7.28.6",
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
"@babel/preset-typescript": "^7.28.5",
"@eslint/js": "^9.26.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
"@storybook/addon-docs": "^9.1.5",
"@storybook/addon-links": "^9.1.5",
"@storybook/addon-onboarding": "^9.1.5",
"@storybook/react-webpack5": "^9.1.5",
"@storybook/testing-library": "^0.2.0",
"@svgr/webpack": "^6.5.1",
"@tailwindcss/container-queries": "^0.1.1",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^14.4.3",
"@typescript-eslint/eslint-plugin": "^8.39.0",
"@typescript-eslint/parser": "^8.39.0",
"autoprefixer": "^10.4.17",
"babel-loader": "^9.1.2",
"babel-plugin-console-source": "^2.0.5",
"babel-plugin-import": "^1.13.6",
"babel-plugin-istanbul": "^6.1.1",
"compression-webpack-plugin": "^10.0.0",
"css-loader": "^6.7.3",
"css-minimizer-webpack-plugin": "^7.0.2",
"esbuild": "0.25.9",
"eslint": "^9.26.0",
"eslint-config-prettier": "^8.10.2",
"eslint-import-resolver-webpack": "^0.13.10",
"eslint-plugin-import-x": "^4.15.0",
"eslint-plugin-jest": "^28.14.0",
"eslint-plugin-prettier": "^4.2.5",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-storybook": "^0.12.0",
"globals": "^15.15.0",
"html-loader": "^4.2.0",
"html-webpack-plugin": "^5.5.0",
"jest": "^29.4.2",
"mini-css-extract-plugin": "^2.9.4",
"path": "^0.12.7",
"postcss": "^8.4.35",
"postcss-loader": "^8.1.0",
"prettier": "^2.8.4",
"react-refresh": "^0.17.0",
"sass": "^1.93.2",
"sass-loader": "^16.0.5",
"storybook": "^9.1.5",
"style-loader": "^3.3.1",
"tailwindcss": "^3.4.1",
"terser-webpack-plugin": "^5.3.6",
"typescript": "^5.9.3",
"webpack": "^5.75.0",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.0.1",
"webpack-dev-server": "^5.2.2"
},
"overrides": {
"react-dates": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-google-login": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-json-view": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-lazyload": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-qr-reader": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-table-plugins": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-image-annotation": {
"react": "$react",
"react-dom": "$react-dom"
},
"react-mentions": {
"@babel/runtime": "^7.28.4"
},
"jspdf": {
"@babel/runtime": ">=7.26.10",
"dompurify": "^3.2.5"
},
"refractor": {
"prismjs": "1.30.0"
},
"isomorphic-fetch@2.x": {
"node-fetch": "^2.6.13"
},
"esbuild": "0.25.9",
"on-headers": "1.1.0",
"tar-fs": "^3.1.0",
"minimatch@3": {
"brace-expansion": "^1.1.11"
}
},
"scripts": {
"start": "webpack serve --hot --port 8082 --host 0.0.0.0",
"build": "webpack --mode=production && cp -a ./assets/. ./build/assets/",
"build:cloud": "webpack --mode=production && cp -a ./assets/. ./build/assets/ && rm -rf ./build/assets/libs/pyodide-0.23.2",
"analyze": "ANALYZE=true webpack --mode=production",
"analyze:dev": "ANALYZE=true webpack --mode=development",
"analyze:stats": "webpack --mode=production --json > bundle-stats.json && webpack-bundle-analyzer bundle-stats.json",
"build:analyze": "ANALYZE=true NODE_ENV=production webpack --mode=production",
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}'",
"lint-quiet": "eslint --quiet 'src/**/*.{js,jsx,ts,tsx}'",
"format": "eslint --fix 'src/**/*.{js,jsx,ts,tsx}'",
"typecheck": "tsc --noEmit",
"test": "jest",
"storybook": "storybook dev -p 6006",
"build-storybook": "npx storybook build"
},
"jest": {
"transform": {
"^.+\\.js?$": "babel-jest",
"^.+\\.jsx?$": "babel-jest",
"^.+\\.tsx?$": "babel-jest",
"^.+\\.svg$": "<rootDir>/__mocks__/svg.js"
},
"transformIgnorePatterns": [
"node_modules/(?!(react|mpx-error-boundary)/)"
],
"moduleNameMapper": {
"@/(.*)": "<rootDir>/src/$1"
},
"testEnvironment": "jest-environment-jsdom",
"moduleDirectories": [
"node_modules",
"src"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"json",
"jsx"
]
}
}