{
  "name": "werkbank",
  "version": "0.26.1",
  "type": "module",
  "files": [
    "/dist"
  ],
  "scripts": {
    "dev": "concurrently --names tsc,exports 'npm run build:ts -- --watch' 'npm run build:exports -- --watch'",
    "test": "concurrently --kill-others-on-fail --prefix none npm:test:*",
    "test:unit": "vitest run --project unit",
    "test:types": "npm run check:types",
    "fmt": "biome format ./src --write",
    "check": "biome lint ./src && npm run check:types",
    "check:types": "tsc --noEmit",
    "storybook": "storybook dev -p 6006",
    "build-storybook": "storybook build",
    "build:ts": "tsc",
    "build:exports": "tsx ./scripts/generateExports.ts",
    "build": "npm run build:ts && npm run build:exports",
    "pkg:updates": "ncu",
    "pkg:upgrade": "ncu -u"
  },
  "keywords": [],
  "author": "Michael Riezler <michael@riezler.co> (https://riezler.co)",
  "license": "MPL-2.0",
  "description": "",
  "dependencies": {
    "@vanilla-extract/css": "^1.17.4",
    "@vanilla-extract/dynamic": "^2.1.5",
    "chroma-js": "^3.2.0",
    "es-toolkit": "^1.39.10",
    "immer": "^10.2.0",
    "react": "^19.1.1",
    "rxjs": "^7.8.2",
    "tiny-invariant": "^1.3.3",
    "valibot": "^1.1.0"
  },
  "devDependencies": {
    "@biomejs/biome": "2.2.4",
    "@chromatic-com/storybook": "^4.1.1",
    "@storybook/addon-a11y": "^9.1.8",
    "@storybook/addon-docs": "^9.1.8",
    "@storybook/addon-mcp": "^0.1.8",
    "@storybook/addon-onboarding": "^9.1.8",
    "@storybook/addon-vitest": "^9.1.8",
    "@storybook/react-vite": "^9.1.8",
    "@swc-node/register": "^1.11.1",
    "@testing-library/react": "^16.3.0",
    "@types/chroma-js": "^3.1.2",
    "@types/node": "^24.5.2",
    "@types/react": "^19.1.13",
    "@vanilla-extract/vite-plugin": "^5.1.1",
    "@vitejs/plugin-react": "^5.0.3",
    "@vitest/browser": "^3.2.4",
    "@vitest/coverage-v8": "^3.2.4",
    "concurrently": "^9.2.1",
    "fast-check": "^4.5.3",
    "global-jsdom": "^27.0.0",
    "jsdom-testing-mocks": "^1.16.0",
    "npm-check-updates": "^18.3.0",
    "playwright": "^1.55.1",
    "storybook": "^9.1.8",
    "tinyspy": "^4.0.4",
    "tsd": "^0.33.0",
    "tsx": "^4.20.6",
    "typescript": "^5.9.2",
    "vitest": "^3.2.4"
  },
  "exports": {
    "./style/reset.css": "./dist/style/reset.css.js",
    "./style/layer.css": "./dist/style/layer.css.js",
    "./component/button": "./dist/component/button/index.js",
    "./component/dialog": "./dist/component/dialog/index.js",
    "./component/drawer": "./dist/component/drawer/index.js",
    "./component/form/chip-input": "./dist/component/form/chip-input/index.js",
    "./component/form/date-input": "./dist/component/form/date-input/index.js",
    "./component/form/hooks": "./dist/component/form/hooks/index.js",
    "./component/form": "./dist/component/form/index.js",
    "./component/form/input": "./dist/component/form/input/index.js",
    "./component/form/select": "./dist/component/form/select/index.js",
    "./component/form/textarea": "./dist/component/form/textarea/index.js",
    "./component/grid/resizeable-grid": "./dist/component/grid/resizeable-grid/index.js",
    "./component/grid/utils": "./dist/component/grid/utils/index.js",
    "./component/loading": "./dist/component/loading/index.js",
    "./component/tabs": "./dist/component/tabs/index.js",
    "./component/typography": "./dist/component/typography/index.js",
    "./hook/useAsyncCallback": "./dist/hook/useAsyncCallback/index.js",
    "./hook/useAsyncEffect": "./dist/hook/useAsyncEffect/index.js",
    "./hook/useCombinedRefs": "./dist/hook/useCombinedRefs/index.js",
    "./hook/useDebounceCallback": "./dist/hook/useDebounceCallback/index.js",
    "./hook/useDrag": "./dist/hook/useDrag/index.js",
    "./hook/useFocusTrap": "./dist/hook/useFocusTrap/index.js",
    "./hook/useIdleCallback": "./dist/hook/useIdleCallback/index.js",
    "./hook/useInputValidation": "./dist/hook/useInputValidation/index.js",
    "./hook/useKeyCallback": "./dist/hook/useKeyCallback/index.js",
    "./hook/useLongPress": "./dist/hook/useLongPress/index.js",
    "./hook/useMatchMedia": "./dist/hook/useMatchMedia/index.js",
    "./hook/useMutationObserver": "./dist/hook/useMutationObserver/index.js",
    "./hook/useOnEscape": "./dist/hook/useOnEscape/index.js",
    "./hook/useOutsideClick": "./dist/hook/useOutsideClick/index.js",
    "./hook/usePointerHandler": "./dist/hook/usePointerHandler/index.js",
    "./hook/usePreventScroll": "./dist/hook/usePreventScroll/index.js",
    "./hook/useResize": "./dist/hook/useResize/index.js",
    "./hook/useResizeObserver": "./dist/hook/useResizeObserver/index.js",
    "./hook/useScrollPosition": "./dist/hook/useScrollPosition/index.js",
    "./hook/useThrottle": "./dist/hook/useThrottle/index.js",
    "./hook/useWindowSize": "./dist/hook/useWindowSize/index.js",
    "./hook/useWritingMode": "./dist/hook/useWritingMode/index.js",
    "./router": "./dist/router/index.js",
    "./rpc/client": "./dist/rpc/client/index.js",
    "./rpc/worker": "./dist/rpc/worker/index.js",
    "./state": "./dist/state/index.js",
    "./style": "./dist/style/index.js",
    "./style/theme": "./dist/style/theme/index.js",
    "./style/typography": "./dist/style/typography/index.js",
    "./utils": "./dist/utils/index.js"
  }
}