Files
sigma/web/package.json
T
Tosone 3ca56e7b67 refactor(web): replace @headlessui/react with shadcn components
Swap every headlessui usage for the shadcn/base-ui components that are
already bundled in the app, then drop the dependency:

- menus (8): Menu/MenuButton/MenuItems/MenuItem + Transition -> DropdownMenu;
  role checks that guarded the original clicks are preserved as
  DropdownMenuItem `disabled`
- dialogs (14): Dialog/DialogPanel/DialogTitle + Transition* -> Dialog,
  DialogContent, DialogTitle, DialogDescription, DialogFooter and Button
- listboxes (6): Listbox -> Select; the multiple-selection one becomes a
  DropdownMenu with DropdownMenuCheckboxItem
- comboboxes (9): Combobox -> Popover + Command, wiring the existing search
  state into CommandInput and keeping shouldFilter={false} for server-side
  search
- remove @headlessui/react from package.json/bun.lock

Also included:
- drop imports that became unused (Table/Button in Builder/RunnerList,
  Separator, useSidebar, dayjs, Link/useParams, Check/ChevronsUpDown and the
  leftover shadcn imports in the webhook pages)
- replace Tailwind v4 arbitrary sizes that have spacing-scale equivalents
  (w-[350px] -> w-87.5, h-[36px] -> h-9, after:top-[2px] -> after:top-0.5, ...);
  h-[18.4px] is intentionally kept since 4.6 is not a multiple of 0.25
- fix the webhook log delete-confirm label (was "Resend")
- add oxlint with `lint` and `lint:fix` scripts

Verification: web: `tsc --noEmit`; `vite build`; `oxlint` (0 errors,
72 pre-existing warnings); scripted scan reports 0 unused imports and no
remaining @headlessui imports.
2026-09-17 15:31:21 +08:00

68 lines
1.8 KiB
JSON

{
"name": "sigma",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"lint": "oxlint",
"lint:fix": "oxlint --fix"
},
"dependencies": {
"@base-ui/react": "^1.8.0",
"@bytemd/plugin-gfm": "^1.22.0",
"@bytemd/react": "^1.22.0",
"@fontsource-variable/geist": "^5.3.0",
"@heroicons/react": "^2.2.0",
"@shikijs/core": "^4.4.3",
"@shikijs/engine-javascript": "^4.4.3",
"@shikijs/langs": "^4.4.3",
"@shikijs/themes": "^4.4.3",
"@tailwindcss/postcss": "^4.3.3",
"@tanstack/react-query": "^5.102.8",
"@vitejs/plugin-react": "^5.2.0",
"axios": "^1.20.0",
"bytemd": "^1.22.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"cron-parser": "^4.9.0",
"csstype": "^3.2.3",
"dayjs": "^1.11.23",
"human-format": "^1.2.1",
"lodash": "^4.18.1",
"lodash-es": "^4.18.1",
"lucide-react": "^1.45.0",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"react-helmet-async": "^3.0.0",
"react-hot-toast": "^2.6.0",
"react-router-dom": "^6.30.6",
"react-use": "^17.6.1",
"shadcn": "^4.21.0",
"sonner": "^2.0.8",
"tailwind-merge": "^3.6.0",
"tailwindcss": "^4.3.3",
"xterm": "^5.3.0",
"xterm-addon-attach": "^0.9.0",
"xterm-addon-fit": "^0.8.0",
"zustand": "^5.0.15"
},
"devDependencies": {
"@types/debug": "^4.1.13",
"@types/node": "^25.9.6",
"@types/react": "^19.3.0",
"@types/react-dom": "^19.3.0",
"autoprefixer": "^10.5.6",
"esbuild": "^0.28.1",
"oxlint": "^1.83.0",
"postcss": "^8.5.28",
"postcss-import": "^16.2.0",
"postcss-nesting": "^13.0.2",
"typescript": "^7.0.2",
"vite": "^8.3.0"
}
}