@hanzo/ui 5.4.1 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/create-registry.js +0 -0
- package/bin/npx-registry-mcp.js +0 -0
- package/bin/registry-mcp-wrapper.sh +0 -0
- package/bin/registry-mcp.js +0 -0
- package/bin/start-mcp-server.sh +0 -0
- package/bin/test-mcp.sh +0 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.mjs +3 -0
- package/dist/dash/crud.js +2 -0
- package/dist/dash/crud.mjs +2 -0
- package/dist/dash/form.js +2 -0
- package/dist/dash/form.mjs +2 -0
- package/dist/dash/{dash-header.js → header.js} +1 -1
- package/dist/dash/{dash-header.mjs → header.mjs} +1 -1
- package/dist/dash/index.js +2 -2
- package/dist/dash/index.mjs +2 -2
- package/dist/dash/{dash-layout.js → layout.js} +1 -1
- package/dist/dash/{dash-layout.mjs → layout.mjs} +1 -1
- package/dist/dash/sidebar.js +3 -0
- package/dist/dash/sidebar.mjs +3 -0
- package/dist/dash/{dash-data-table.js → table.js} +1 -1
- package/dist/dash/{dash-data-table.mjs → table.mjs} +1 -1
- package/dist/src/dash/{dash-crud.d.ts → crud.d.ts} +9 -9
- package/dist/src/dash/crud.d.ts.map +1 -0
- package/dist/src/dash/{dash-crud.js → crud.js} +5 -5
- package/dist/src/dash/{dash-form.d.ts → form.d.ts} +9 -9
- package/dist/src/dash/form.d.ts.map +1 -0
- package/dist/src/dash/{dash-form.js → form.js} +1 -1
- package/dist/src/dash/{dash-header.d.ts → header.d.ts} +3 -3
- package/dist/src/dash/header.d.ts.map +1 -0
- package/dist/src/dash/{dash-header.js → header.js} +1 -1
- package/dist/src/dash/index.d.ts +12 -12
- package/dist/src/dash/index.d.ts.map +1 -1
- package/dist/src/dash/index.js +6 -6
- package/dist/src/dash/{dash-layout.d.ts → layout.d.ts} +5 -5
- package/dist/src/dash/layout.d.ts.map +1 -0
- package/dist/src/dash/{dash-layout.js → layout.js} +1 -1
- package/dist/src/dash/{dash-sidebar.d.ts → sidebar.d.ts} +3 -3
- package/dist/src/dash/sidebar.d.ts.map +1 -0
- package/dist/src/dash/{dash-sidebar.js → sidebar.js} +1 -1
- package/dist/src/dash/{dash-data-table.d.ts → table.d.ts} +5 -5
- package/dist/src/dash/table.d.ts.map +1 -0
- package/dist/src/dash/{dash-data-table.js → table.js} +1 -1
- package/package.json +75 -74
- package/dist/dash/dash-crud.js +0 -2
- package/dist/dash/dash-crud.mjs +0 -2
- package/dist/dash/dash-form.js +0 -2
- package/dist/dash/dash-form.mjs +0 -2
- package/dist/dash/dash-sidebar.js +0 -3
- package/dist/dash/dash-sidebar.mjs +0 -3
- package/dist/src/dash/dash-crud.d.ts.map +0 -1
- package/dist/src/dash/dash-data-table.d.ts.map +0 -1
- package/dist/src/dash/dash-form.d.ts.map +0 -1
- package/dist/src/dash/dash-header.d.ts.map +0 -1
- package/dist/src/dash/dash-layout.d.ts.map +0 -1
- package/dist/src/dash/dash-sidebar.d.ts.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.6.0",
|
|
4
4
|
"description": "Multi-framework UI library with React, Vue, Svelte, and React Native support. Based on shadcn/ui with comprehensive framework coverage.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -45,6 +45,29 @@
|
|
|
45
45
|
"sdk",
|
|
46
46
|
"ui"
|
|
47
47
|
],
|
|
48
|
+
"scripts": {
|
|
49
|
+
"lat": "npm show @hanzo/ui version",
|
|
50
|
+
"pub": "npm publish",
|
|
51
|
+
"tc": "tsc --project tsconfig.build.json",
|
|
52
|
+
"build": "npm run clean && npm run build:minimal && npm run tc",
|
|
53
|
+
"build:minimal": "tsup --config tsup.config.minimal.ts",
|
|
54
|
+
"build:namespaces": "tsup --config tsup.config.namespaces.ts",
|
|
55
|
+
"build:full": "tsup --config tsup.config.production.ts",
|
|
56
|
+
"build:frameworks": "npm run build",
|
|
57
|
+
"build:watch": "tsup --watch",
|
|
58
|
+
"build:check": "tsc --project tsconfig.build.json --noEmit",
|
|
59
|
+
"clean": "rm -rf dist",
|
|
60
|
+
"prepublishOnly": "npm run build",
|
|
61
|
+
"update-registry": "node ./bin/update-registry.js",
|
|
62
|
+
"registry:mcp": "node ./bin/cli.js registry:mcp",
|
|
63
|
+
"registry:mcp:http": "node ./bin/cli.js registry:mcp --http",
|
|
64
|
+
"analyze:frameworks": "node analyze-frameworks.js",
|
|
65
|
+
"test": "vitest",
|
|
66
|
+
"test:ui": "vitest --ui",
|
|
67
|
+
"test:coverage": "vitest --coverage",
|
|
68
|
+
"test:jest": "jest test/multi-framework.test.js",
|
|
69
|
+
"test:frameworks": "jest test/multi-framework.test.js --verbose"
|
|
70
|
+
},
|
|
48
71
|
"bin": {
|
|
49
72
|
"hanzo-ui": "./bin/cli.js"
|
|
50
73
|
},
|
|
@@ -256,18 +279,18 @@
|
|
|
256
279
|
"require": "./dist/drawer.js"
|
|
257
280
|
},
|
|
258
281
|
"./dash": {
|
|
259
|
-
"types": "./dist/dash/index.d.ts",
|
|
282
|
+
"types": "./dist/src/dash/index.d.ts",
|
|
260
283
|
"import": "./dist/dash/index.mjs",
|
|
261
284
|
"require": "./dist/dash/index.js"
|
|
262
285
|
},
|
|
263
286
|
"./dash/tokens.css": "./src/dash/tokens.css",
|
|
264
287
|
"./dash/*": {
|
|
265
|
-
"types": "./dist/dash/*.d.ts",
|
|
288
|
+
"types": "./dist/src/dash/*.d.ts",
|
|
266
289
|
"import": "./dist/dash/*.mjs",
|
|
267
290
|
"require": "./dist/dash/*.js"
|
|
268
291
|
},
|
|
269
292
|
"./billing": {
|
|
270
|
-
"types": "./dist/billing/index.d.ts",
|
|
293
|
+
"types": "./dist/src/billing/index.d.ts",
|
|
271
294
|
"import": "./dist/billing/index.mjs",
|
|
272
295
|
"require": "./dist/billing/index.js"
|
|
273
296
|
},
|
|
@@ -504,22 +527,22 @@
|
|
|
504
527
|
"require": "./dist/pattern/*.js"
|
|
505
528
|
},
|
|
506
529
|
"./auth": {
|
|
507
|
-
"types": "./dist/auth/index.d.ts",
|
|
530
|
+
"types": "./dist/src/auth/index.d.ts",
|
|
508
531
|
"import": "./dist/auth/index.mjs",
|
|
509
532
|
"require": "./dist/auth/index.js"
|
|
510
533
|
},
|
|
511
534
|
"./auth/*": {
|
|
512
|
-
"types": "./dist/auth/*.d.ts",
|
|
535
|
+
"types": "./dist/src/auth/*.d.ts",
|
|
513
536
|
"import": "./dist/auth/*.mjs",
|
|
514
537
|
"require": "./dist/auth/*.js"
|
|
515
538
|
},
|
|
516
539
|
"./navigation": {
|
|
517
|
-
"types": "./dist/navigation/index.d.ts",
|
|
540
|
+
"types": "./dist/src/navigation/index.d.ts",
|
|
518
541
|
"import": "./dist/navigation/index.mjs",
|
|
519
542
|
"require": "./dist/navigation/index.js"
|
|
520
543
|
},
|
|
521
544
|
"./navigation/*": {
|
|
522
|
-
"types": "./dist/navigation/*.d.ts",
|
|
545
|
+
"types": "./dist/src/navigation/*.d.ts",
|
|
523
546
|
"import": "./dist/navigation/*.mjs",
|
|
524
547
|
"require": "./dist/navigation/*.js"
|
|
525
548
|
},
|
|
@@ -638,11 +661,11 @@
|
|
|
638
661
|
}
|
|
639
662
|
},
|
|
640
663
|
"dependencies": {
|
|
641
|
-
"@next/third-parties": "^
|
|
664
|
+
"@next/third-parties": "^16.2.1",
|
|
642
665
|
"@radix-ui/react-accordion": "^1.2.12",
|
|
643
666
|
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
644
|
-
"@radix-ui/react-aspect-ratio": "^1.1.
|
|
645
|
-
"@radix-ui/react-avatar": "^1.1.
|
|
667
|
+
"@radix-ui/react-aspect-ratio": "^1.1.8",
|
|
668
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
646
669
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
647
670
|
"@radix-ui/react-collapsible": "^1.1.12",
|
|
648
671
|
"@radix-ui/react-context-menu": "^2.2.16",
|
|
@@ -650,17 +673,17 @@
|
|
|
650
673
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
651
674
|
"@radix-ui/react-hover-card": "^1.1.15",
|
|
652
675
|
"@radix-ui/react-icons": "^1.3.2",
|
|
653
|
-
"@radix-ui/react-label": "^2.1.
|
|
676
|
+
"@radix-ui/react-label": "^2.1.8",
|
|
654
677
|
"@radix-ui/react-menubar": "1.1.16",
|
|
655
678
|
"@radix-ui/react-navigation-menu": "^1.2.14",
|
|
656
679
|
"@radix-ui/react-popover": "^1.1.15",
|
|
657
|
-
"@radix-ui/react-progress": "^1.1.
|
|
680
|
+
"@radix-ui/react-progress": "^1.1.8",
|
|
658
681
|
"@radix-ui/react-radio-group": "^1.3.8",
|
|
659
682
|
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
660
683
|
"@radix-ui/react-select": "^2.2.6",
|
|
661
|
-
"@radix-ui/react-separator": "^1.1.
|
|
684
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
662
685
|
"@radix-ui/react-slider": "^1.3.6",
|
|
663
|
-
"@radix-ui/react-slot": "^1.2.
|
|
686
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
664
687
|
"@radix-ui/react-switch": "^1.2.6",
|
|
665
688
|
"@radix-ui/react-tabs": "^1.1.13",
|
|
666
689
|
"@radix-ui/react-toast": "^1.2.15",
|
|
@@ -673,27 +696,25 @@
|
|
|
673
696
|
"class-variance-authority": "^0.7.1",
|
|
674
697
|
"clsx": "^2.1.1",
|
|
675
698
|
"cmdk": "^1.1.1",
|
|
676
|
-
"commander": "^
|
|
677
|
-
"embla-carousel-react": "^8.
|
|
678
|
-
"input-otp": "^1.2
|
|
679
|
-
"little-date": "^1.
|
|
699
|
+
"commander": "^14.0.3",
|
|
700
|
+
"embla-carousel-react": "^8.6.0",
|
|
701
|
+
"input-otp": "^1.4.2",
|
|
702
|
+
"little-date": "^1.2.1",
|
|
680
703
|
"lodash.castarray": "^4.4.0",
|
|
681
704
|
"lodash.isplainobject": "^4.0.6",
|
|
682
705
|
"lodash.merge": "^4.6.2",
|
|
683
|
-
"postcss-selector-parser": "^7.
|
|
684
|
-
"react-intersection-observer": "^
|
|
685
|
-
"sonner": "^2.0.
|
|
706
|
+
"postcss-selector-parser": "^7.1.1",
|
|
707
|
+
"react-intersection-observer": "^10.0.3",
|
|
708
|
+
"sonner": "^2.0.7",
|
|
686
709
|
"svg-pan-zoom": "^3.6.2",
|
|
687
|
-
"tailwind-merge": "^3.
|
|
710
|
+
"tailwind-merge": "^3.5.0",
|
|
688
711
|
"tailwindcss-animate": "^1.0.7",
|
|
689
712
|
"tailwindcss-interaction-media": "^0.1.0",
|
|
690
713
|
"vaul": "^1.1.2",
|
|
691
714
|
"zod": "^3.25.76",
|
|
692
|
-
"zod-to-json-schema": "^3.
|
|
715
|
+
"zod-to-json-schema": "^3.25.1"
|
|
693
716
|
},
|
|
694
717
|
"peerDependencies": {
|
|
695
|
-
"@rainbow-me/rainbowkit": "^2.0.0",
|
|
696
|
-
"wagmi": "^2.0.0",
|
|
697
718
|
"@dnd-kit/core": "^6.0.0",
|
|
698
719
|
"@dnd-kit/modifiers": "^9.0.0",
|
|
699
720
|
"@dnd-kit/sortable": "^10.0.0",
|
|
@@ -701,6 +722,7 @@
|
|
|
701
722
|
"@hanzo/docs-core": "^16.0.0",
|
|
702
723
|
"@hookform/resolvers": "^3.3.2",
|
|
703
724
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
725
|
+
"@rainbow-me/rainbowkit": "^2.0.0",
|
|
704
726
|
"@tanstack/react-query": "^5.0.0",
|
|
705
727
|
"@tanstack/react-table": "^8.0.0",
|
|
706
728
|
"chrono-node": "^2.0.0",
|
|
@@ -720,7 +742,8 @@
|
|
|
720
742
|
"recharts": "^2.0.0",
|
|
721
743
|
"sql.js": "^1.0.0",
|
|
722
744
|
"styled-components": "^6.0.0",
|
|
723
|
-
"validator": "^13.11.0"
|
|
745
|
+
"validator": "^13.11.0",
|
|
746
|
+
"wagmi": "^2.0.0"
|
|
724
747
|
},
|
|
725
748
|
"peerDependenciesMeta": {
|
|
726
749
|
"styled-components": {
|
|
@@ -806,63 +829,41 @@
|
|
|
806
829
|
}
|
|
807
830
|
},
|
|
808
831
|
"devDependencies": {
|
|
809
|
-
"@mdx-js/loader": "^3.
|
|
810
|
-
"@mdx-js/react": "^3.
|
|
811
|
-
"@radix-ui/react-primitive": "^2.1.
|
|
812
|
-
"@splinetool/react-spline": "^4.
|
|
813
|
-
"@tailwindcss/postcss": "^4.
|
|
832
|
+
"@mdx-js/loader": "^3.1.1",
|
|
833
|
+
"@mdx-js/react": "^3.1.1",
|
|
834
|
+
"@radix-ui/react-primitive": "^2.1.4",
|
|
835
|
+
"@splinetool/react-spline": "^4.1.0",
|
|
836
|
+
"@tailwindcss/postcss": "^4.2.2",
|
|
814
837
|
"@testing-library/jest-dom": "^6.9.1",
|
|
815
|
-
"@testing-library/react": "^16.3.
|
|
816
|
-
"@types/facebook-pixel": "^0.0.
|
|
817
|
-
"@types/gtag.js": "^0.0.
|
|
838
|
+
"@testing-library/react": "^16.3.2",
|
|
839
|
+
"@types/facebook-pixel": "^0.0.31",
|
|
840
|
+
"@types/gtag.js": "^0.0.20",
|
|
818
841
|
"@types/lodash.merge": "^4.6.9",
|
|
819
842
|
"@types/mdx": "^2.0.13",
|
|
820
|
-
"@types/node": "
|
|
821
|
-
"@types/react": "
|
|
822
|
-
"@types/react-dom": "
|
|
843
|
+
"@types/node": "25.5.0",
|
|
844
|
+
"@types/react": "19.2.14",
|
|
845
|
+
"@types/react-dom": "19.2.3",
|
|
823
846
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
824
847
|
"@types/styled-components": "^5.1.36",
|
|
825
|
-
"@vitejs/plugin-react": "^
|
|
826
|
-
"@vitest/coverage-v8": "^4.0
|
|
827
|
-
"@vitest/ui": "^4.0
|
|
848
|
+
"@vitejs/plugin-react": "^6.0.1",
|
|
849
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
850
|
+
"@vitest/ui": "^4.1.0",
|
|
828
851
|
"embla-carousel": "^8.6.0",
|
|
829
852
|
"filesize": "^11.0.13",
|
|
830
|
-
"glob": "^
|
|
831
|
-
"jest": "^30.
|
|
832
|
-
"jsdom": "^
|
|
833
|
-
"react-dropzone": "^
|
|
853
|
+
"glob": "^13.0.6",
|
|
854
|
+
"jest": "^30.3.0",
|
|
855
|
+
"jsdom": "^29.0.1",
|
|
856
|
+
"react-dropzone": "^15.0.0",
|
|
834
857
|
"react-markdown": "^10.1.0",
|
|
835
|
-
"react-syntax-highlighter": "^
|
|
858
|
+
"react-syntax-highlighter": "^16.1.1",
|
|
836
859
|
"rehype-katex": "^7.0.1",
|
|
837
860
|
"remark-gfm": "^4.0.1",
|
|
838
861
|
"remark-math": "^6.0.0",
|
|
839
|
-
"styled-components": "^6.3.
|
|
840
|
-
"tailwindcss": "^4.
|
|
841
|
-
"tsup": "^8.5.
|
|
842
|
-
"tw-animate-css": "^1.
|
|
862
|
+
"styled-components": "^6.3.12",
|
|
863
|
+
"tailwindcss": "^4.2.2",
|
|
864
|
+
"tsup": "^8.5.1",
|
|
865
|
+
"tw-animate-css": "^1.4.0",
|
|
843
866
|
"typescript": "^5.9.3",
|
|
844
|
-
"vitest": "4.0
|
|
845
|
-
},
|
|
846
|
-
"scripts": {
|
|
847
|
-
"lat": "npm show @hanzo/ui version",
|
|
848
|
-
"pub": "npm publish",
|
|
849
|
-
"tc": "tsc --project tsconfig.build.json",
|
|
850
|
-
"build": "npm run clean && npm run build:minimal && npm run tc",
|
|
851
|
-
"build:minimal": "tsup --config tsup.config.minimal.ts",
|
|
852
|
-
"build:namespaces": "tsup --config tsup.config.namespaces.ts",
|
|
853
|
-
"build:full": "tsup --config tsup.config.production.ts",
|
|
854
|
-
"build:frameworks": "npm run build",
|
|
855
|
-
"build:watch": "tsup --watch",
|
|
856
|
-
"build:check": "tsc --project tsconfig.build.json --noEmit",
|
|
857
|
-
"clean": "rm -rf dist",
|
|
858
|
-
"update-registry": "node ./bin/update-registry.js",
|
|
859
|
-
"registry:mcp": "node ./bin/cli.js registry:mcp",
|
|
860
|
-
"registry:mcp:http": "node ./bin/cli.js registry:mcp --http",
|
|
861
|
-
"analyze:frameworks": "node analyze-frameworks.js",
|
|
862
|
-
"test": "vitest",
|
|
863
|
-
"test:ui": "vitest --ui",
|
|
864
|
-
"test:coverage": "vitest --coverage",
|
|
865
|
-
"test:jest": "jest test/multi-framework.test.js",
|
|
866
|
-
"test:frameworks": "jest test/multi-framework.test.js --verbose"
|
|
867
|
+
"vitest": "4.1.0"
|
|
867
868
|
}
|
|
868
|
-
}
|
|
869
|
+
}
|
package/dist/dash/dash-crud.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var $=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var $__namespace=/*#__PURE__*/_interopNamespace($);var I=Object.defineProperty;var c=(e,a)=>I(e,"name",{value:a,configurable:true});function n(...e){return tailwindMerge.twMerge(clsx.clsx(e))}c(n,"cn");function Z({columns:e,data:a,rowKey:v,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:T=20,onPageChange:P,onPageSizeChange:L,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[r,g]=$__namespace.useState(""),[w,K]=$__namespace.useState(null),z=$__namespace.useMemo(()=>{if(!r)return a;let t=r.toLowerCase();return a.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[a,r,e]),j=$__namespace.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,R)=>{let H=M[t],Q=R[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/T)),F=P?j:j.slice(u*T,(u+1)*T),D=m??new Set,W=F.length>0&&F.every(t=>D.has(v(t)));function _(){p&&p(W?new Set:new Set(F.map(v)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(D);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxRuntime.jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsxRuntime.jsx("input",{type:"text",placeholder:b,value:r,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&D.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[D.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsxRuntime.jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsxRuntime.jsx("tbody",{children:q?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):F.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):F.map(t=>{let f=v(t),M=D.has(f);return jsxRuntime.jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(R=>jsxRuntime.jsx("td",{className:n("px-4 py-2.5",R.align==="center"&&"text-center",R.align==="right"&&"text-right"),children:R.cell?R.cell(t):String(t[R.id]??"")},R.id)),V&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:T,onChange:t=>L?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",u+1," of ",E]}),jsxRuntime.jsx("button",{type:"button",disabled:u===0,onClick:()=>P?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>P?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"DashDataTable");function U({title:e,fields:a,values:v,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,T]=$__namespace.useState(()=>{let d={};for(let l of a)d[l.name]=v?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[P,L]=$__namespace.useState({});function V(d,l){T(r=>({...r,[d]:l})),L(r=>{if(!r[d])return r;let g={...r};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let r of a){let g=u[r.name];if(r.required&&(g===""||g===null||g===void 0)&&(l[r.name]=`${r.label} is required`),r.validate){let w=r.validate(g);w&&(l[r.name]=w);}}if(Object.keys(l).length>0){L(l);return}await i(u);}return c(q,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:a.map(d=>jsxRuntime.jsx(ae,{field:d,value:u[d.name],error:P[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsxRuntime.jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"DashForm");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function ae({field:e,value:a,error:v,onChange:i}){let m=`dash-field-${e.name}`,p=jsxRuntime.jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=v?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:v}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,v&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",v&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsxs("select",{id:m,value:String(a??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,v&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsxRuntime.jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>i(!a),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",v&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(ae,"FieldRenderer");function we({resourceName:e,resourceNamePlural:a,columns:v,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:T=true,canEdit:P=true,canDelete:L=true,tableProps:V,loading:q=false,className:d}){let l=a??`${e}s`,[r,g]=$__namespace.useState("list"),[w,K]=$__namespace.useState(null),[z,j]=$__namespace.useState({}),[O,E]=$__namespace.useState(null),[F,D]=$__namespace.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){D(true);try{await u(O);}finally{D(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[P&&o&&jsxRuntime.jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),L&&u&&jsxRuntime.jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),r==="list"?jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),T&&b&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsxRuntime.jsx(Z,{columns:v,data:i,rowKey:m,actions:P||L?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsxRuntime.jsx(re,{resourceName:e,loading:F,onConfirm:A,onCancel:()=>E(null)})]}):jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsxRuntime.jsx(U,{title:r==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:r==="edit"?z:void 0,loading:F,submitLabel:r==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{D(true);try{r==="create"&&b?await b(x):r==="edit"&&w&&o&&await o(w,x),g("list");}finally{D(false);}}})]})}c(we,"DashCrud");function re({resourceName:e,loading:a,onConfirm:v,onCancel:i}){return jsxRuntime.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxRuntime.jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxRuntime.jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxRuntime.jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsxRuntime.jsx("button",{type:"button",onClick:i,disabled:a,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsxRuntime.jsx("button",{type:"button",onClick:v,disabled:a,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:a?"Deleting...":"Delete"})]})]})})}c(re,"DeleteDialog");exports.DashCrud=we;
|
package/dist/dash/dash-crud.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import*as $ from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var I=Object.defineProperty;var c=(e,a)=>I(e,"name",{value:a,configurable:true});function n(...e){return twMerge(clsx(e))}c(n,"cn");function Z({columns:e,data:a,rowKey:v,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:T=20,onPageChange:P,onPageSizeChange:L,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[r,g]=$.useState(""),[w,K]=$.useState(null),z=$.useMemo(()=>{if(!r)return a;let t=r.toLowerCase();return a.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[a,r,e]),j=$.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,R)=>{let H=M[t],Q=R[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/T)),F=P?j:j.slice(u*T,(u+1)*T),D=m??new Set,W=F.length>0&&F.every(t=>D.has(v(t)));function _(){p&&p(W?new Set:new Set(F.map(v)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(D);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsx("input",{type:"text",placeholder:b,value:r,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&D.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[D.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsx("tbody",{children:q?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):F.length===0?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):F.map(t=>{let f=v(t),M=D.has(f);return jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(R=>jsx("td",{className:n("px-4 py-2.5",R.align==="center"&&"text-center",R.align==="right"&&"text-right"),children:R.cell?R.cell(t):String(t[R.id]??"")},R.id)),V&&jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:T,onChange:t=>L?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",u+1," of ",E]}),jsx("button",{type:"button",disabled:u===0,onClick:()=>P?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>P?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"DashDataTable");function U({title:e,fields:a,values:v,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,T]=$.useState(()=>{let d={};for(let l of a)d[l.name]=v?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[P,L]=$.useState({});function V(d,l){T(r=>({...r,[d]:l})),L(r=>{if(!r[d])return r;let g={...r};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let r of a){let g=u[r.name];if(r.required&&(g===""||g===null||g===void 0)&&(l[r.name]=`${r.label} is required`),r.validate){let w=r.validate(g);w&&(l[r.name]=w);}}if(Object.keys(l).length>0){L(l);return}await i(u);}return c(q,"handleSubmit"),jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:a.map(d=>jsx(ae,{field:d,value:u[d.name],error:P[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"DashForm");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function ae({field:e,value:a,error:v,onChange:i}){let m=`dash-field-${e.name}`,p=jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=v?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:v}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[p,jsx("input",{id:m,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,v&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",v&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxs("div",{children:[p,jsxs("select",{id:m,value:String(a??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,v&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>i(!a),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",v&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxs("div",{children:[p,jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(ae,"FieldRenderer");function we({resourceName:e,resourceNamePlural:a,columns:v,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:T=true,canEdit:P=true,canDelete:L=true,tableProps:V,loading:q=false,className:d}){let l=a??`${e}s`,[r,g]=$.useState("list"),[w,K]=$.useState(null),[z,j]=$.useState({}),[O,E]=$.useState(null),[F,D]=$.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){D(true);try{await u(O);}finally{D(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxs("div",{className:"flex items-center justify-end gap-1",children:[P&&o&&jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),L&&u&&jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),r==="list"?jsxs("div",{className:n("space-y-4",d),children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),T&&b&&jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsx(Z,{columns:v,data:i,rowKey:m,actions:P||L?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsx(re,{resourceName:e,loading:F,onConfirm:A,onCancel:()=>E(null)})]}):jsxs("div",{className:n("space-y-4",d),children:[jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsx(U,{title:r==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:r==="edit"?z:void 0,loading:F,submitLabel:r==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{D(true);try{r==="create"&&b?await b(x):r==="edit"&&w&&o&&await o(w,x),g("list");}finally{D(false);}}})]})}c(we,"DashCrud");function re({resourceName:e,loading:a,onConfirm:v,onCancel:i}){return jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsx("button",{type:"button",onClick:i,disabled:a,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsx("button",{type:"button",onClick:v,disabled:a,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:a?"Deleting...":"Delete"})]})]})})}c(re,"DeleteDialog");export{we as DashCrud};
|
package/dist/dash/dash-form.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var f=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var f__namespace=/*#__PURE__*/_interopNamespace(f);var S=Object.defineProperty;var h=(e,t)=>S(e,"name",{value:t,configurable:true});function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}h(i,"cn");function J({title:e,fields:t,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:a}){let[g,N]=f__namespace.useState(()=>{let s={};for(let o of t)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f__namespace.useState({});function D(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(D,"setValue");async function F(s){s.preventDefault();let o={};for(let n of t){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(F,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:F,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",a),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:t.map(s=>jsxRuntime.jsx(V,{field:s,value:g[s.name],error:k[s.name],onChange:o=>D(s.name,o)},s.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"DashForm");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function V({field:e,value:t,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxRuntime.jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:e.type,value:String(t??""),placeholder:e.placeholder,disabled:e.disabled,onChange:a=>u(e.type==="number"?Number(a.target.value):a.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:String(t??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:a=>u(a.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsxs("select",{id:l,value:String(t??""),disabled:e.disabled,onChange:a=>u(a.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(a=>jsxRuntime.jsx("option",{value:a.value,children:a.label},a.value))]}),p,d]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!t,disabled:e.disabled,onClick:()=>u(!t),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",t?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",t?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:typeof t=="string"?t:JSON.stringify(t,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:a=>{try{u(JSON.parse(a.target.value));}catch{u(a.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:a=>{let g=a.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(V,"FieldRenderer");exports.DashForm=J;
|
package/dist/dash/dash-form.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import*as f from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var S=Object.defineProperty;var h=(e,t)=>S(e,"name",{value:t,configurable:true});function i(...e){return twMerge(clsx(e))}h(i,"cn");function J({title:e,fields:t,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:a}){let[g,N]=f.useState(()=>{let s={};for(let o of t)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f.useState({});function D(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(D,"setValue");async function F(s){s.preventDefault();let o={};for(let n of t){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(F,"handleSubmit"),jsxs("form",{onSubmit:F,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",a),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:t.map(s=>jsx(V,{field:s,value:g[s.name],error:k[s.name],onChange:o=>D(s.name,o)},s.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"DashForm");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function V({field:e,value:t,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[b,jsx("input",{id:l,type:e.type,value:String(t??""),placeholder:e.placeholder,disabled:e.disabled,onChange:a=>u(e.type==="number"?Number(a.target.value):a.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:String(t??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:a=>u(a.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxs("div",{children:[b,jsxs("select",{id:l,value:String(t??""),disabled:e.disabled,onChange:a=>u(a.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(a=>jsx("option",{value:a.value,children:a.label},a.value))]}),p,d]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!t,disabled:e.disabled,onClick:()=>u(!t),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",t?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",t?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:typeof t=="string"?t:JSON.stringify(t,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:a=>{try{u(JSON.parse(a.target.value));}catch{u(a.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxs("div",{children:[b,jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:a=>{let g=a.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(V,"FieldRenderer");export{J as DashForm};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
'use strict';var v=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var v__namespace=/*#__PURE__*/_interopNamespace(v);var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return tailwindMerge.twMerge(clsx.clsx(t))}n(i,"cn");function b({size:t=28}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:h,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxRuntime.jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxRuntime.jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsxRuntime.jsx(b,{}),!o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((u,c)=>jsxRuntime.jsx(m,{group:u,collapsed:o,onNavigate:l},c))}),h&&jsxRuntime.jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:h})]})}n(L,"DashSidebar");function m({group:t,collapsed:r,onNavigate:h}){let[o,s]=v__namespace.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxRuntime.jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsxRuntime.jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsxRuntime.jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsxRuntime.jsx("li",{children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>h?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsxRuntime.jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsxRuntime.jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsxRuntime.jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
|
|
3
|
-
exports.DashSidebar=L;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import*as v from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return twMerge(clsx(t))}n(i,"cn");function b({size:t=28}){return jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:h,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsx(b,{}),!o&&s&&jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((u,c)=>jsx(m,{group:u,collapsed:o,onNavigate:l},c))}),h&&jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:h})]})}n(L,"DashSidebar");function m({group:t,collapsed:r,onNavigate:h}){let[o,s]=v.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsx("li",{children:jsxs("button",{type:"button",onClick:()=>h?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
|
|
3
|
-
export{L as DashSidebar};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-crud.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-crud.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3F,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAMzD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4CAA4C;IAC5C,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,eAAe;IACf,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mCAAmC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,6CAA6C;IAC7C,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,EAC1B,YAAY,EACZ,kBAAkB,EAClB,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAgB,EAChB,OAAc,EACd,SAAgB,EAChB,UAAU,EACV,OAAe,EACf,SAAS,GACV,EAAE,aAAa,CAAC,CAAC,CAAC,2CAgJlB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-data-table.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAClC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,yBAAyB;IACzB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,eAAe;IACf,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mCAAmC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,kCAAkC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oCAAoC;IACpC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAC/C,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,yBAAyB;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IACrC,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAQD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,OAAO,EACP,IAAI,EACJ,MAAM,EACN,UAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,UAAkB,EAClB,iBAA+B,EAC/B,SAAS,EACT,IAAQ,EACR,QAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,OAAO,EACP,OAAe,EACf,YAAwB,EACxB,SAAS,GACV,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CAyPvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-form.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-form.tsx"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,UAAU,GACV,MAAM,CAAA;AAEV,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,iBAAiB;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wDAAwD;IACxD,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;IAC3B,oBAAoB;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,eAAe;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAA;CAC7C;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnE,uBAAuB;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAM,EACN,MAAM,EAAE,aAAa,EACrB,QAAQ,EACR,QAAQ,EACR,WAAoB,EACpB,WAAsB,EACtB,OAAe,EACf,SAAS,GACV,EAAE,aAAa,2CAmGf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-header.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-header.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9B,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACxB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,iBAA+B,EAC/B,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,KAAc,EACd,OAAO,EACP,SAAS,GACV,EAAE,eAAe,2CAmIjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-layout.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-layout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,mBAAmB;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,uCAAuC;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,MAAM,EACN,QAAQ,EACR,gBAAwB,EACxB,iBAAiB,EACjB,SAAS,GACV,EAAE,eAAe,2CAyCjB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dash-sidebar.d.ts","sourceRoot":"","sources":["../../../src/dash/dash-sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,wBAAwB;IACxB,MAAM,EAAE,QAAQ,EAAE,CAAA;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sBAAsB;IACtB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B,wCAAwC;IACxC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA2BD,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,SAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,EAAE,gBAAgB,2CA+DlB"}
|