@dyrected/admin 2.0.1 → 2.4.1
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/dist/App.d.ts +1 -0
- package/dist/admin.css +2 -0
- package/dist/components/auth/auth-gate.d.ts +13 -0
- package/dist/components/error-boundary.d.ts +16 -0
- package/dist/components/forms/field-renderer.d.ts +22 -0
- package/dist/components/forms/fields/block-builder.d.ts +9 -0
- package/dist/components/forms/fields/date-picker.d.ts +8 -0
- package/dist/components/forms/fields/json-editor.d.ts +8 -0
- package/dist/components/forms/fields/media-picker.d.ts +12 -0
- package/dist/components/forms/fields/multi-select.d.ts +19 -0
- package/dist/components/forms/fields/radio-field.d.ts +8 -0
- package/dist/components/forms/fields/relationship-picker.d.ts +10 -0
- package/dist/components/forms/fields/rich-text-editor.d.ts +9 -0
- package/dist/components/forms/fields/select-field.d.ts +8 -0
- package/dist/components/forms/fields/switch-field.d.ts +6 -0
- package/dist/components/forms/fields/text-area-field.d.ts +8 -0
- package/dist/components/forms/fields/text-field.d.ts +8 -0
- package/dist/components/forms/form-engine.d.ts +14 -0
- package/dist/components/forms/form-field-renderer.d.ts +20 -0
- package/dist/components/forms/utils.d.ts +11 -0
- package/dist/components/layout/admin-shell.d.ts +5 -0
- package/dist/components/layout/branding-provider.d.ts +4 -0
- package/dist/components/live-preview/LivePreviewPane.d.ts +7 -0
- package/dist/components/media/focal-point-picker.d.ts +12 -0
- package/dist/components/media/media-card.d.ts +8 -0
- package/dist/components/media/media-grid.d.ts +8 -0
- package/dist/components/media/media-library-dialog.d.ts +11 -0
- package/dist/components/ui/aspect-ratio.d.ts +3 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/calendar.d.ts +8 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/checkbox.d.ts +4 -0
- package/dist/components/ui/command.d.ts +80 -0
- package/dist/components/ui/data-table.d.ts +14 -0
- package/dist/components/ui/dialog.d.ts +19 -0
- package/dist/components/ui/dropdown-menu.d.ts +27 -0
- package/dist/components/ui/form.d.ts +23 -0
- package/dist/components/ui/input.d.ts +3 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/page-header.d.ts +10 -0
- package/dist/components/ui/pagination.d.ts +11 -0
- package/dist/components/ui/popover.d.ts +6 -0
- package/dist/components/ui/progress.d.ts +4 -0
- package/dist/components/ui/radio-group.d.ts +5 -0
- package/dist/components/ui/render-cell.d.ts +8 -0
- package/dist/components/ui/scroll-area.d.ts +5 -0
- package/dist/components/ui/select.d.ts +13 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/sheet.d.ts +25 -0
- package/dist/components/ui/sidebar.d.ts +65 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/sonner.d.ts +4 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/table.d.ts +10 -0
- package/dist/components/ui/tabs.d.ts +7 -0
- package/dist/components/ui/textarea.d.ts +3 -0
- package/dist/components/ui/toggle.d.ts +12 -0
- package/dist/components/ui/tooltip.d.ts +7 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-preferences.d.ts +6 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.mjs +69091 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/main.d.ts +0 -0
- package/dist/pages/auth/first-user-page.d.ts +4 -0
- package/dist/pages/auth/login-page.d.ts +4 -0
- package/dist/pages/collections/edit-page.d.ts +1 -0
- package/dist/pages/collections/list-page.d.ts +5 -0
- package/dist/pages/dashboard/dashboard.d.ts +1 -0
- package/dist/pages/globals/editor-page.d.ts +1 -0
- package/dist/pages/media/media-page.d.ts +4 -0
- package/dist/pages/setup/setup-prompt.d.ts +6 -0
- package/dist/providers/dyrected-provider.d.ts +29 -0
- package/dist/providers/query-provider.d.ts +3 -0
- package/package.json +7 -4
- package/CHANGELOG.md +0 -124
- package/components.json +0 -17
- package/eslint.config.js +0 -22
- package/index.html +0 -13
- package/postcss.config.js +0 -6
- package/src/App.css +0 -184
- package/src/App.tsx +0 -25
- package/src/assets/dyrected.svg +0 -155
- package/src/assets/hero.png +0 -0
- package/src/assets/react.svg +0 -1
- package/src/assets/vite.svg +0 -1
- package/src/components/auth/auth-gate.tsx +0 -64
- package/src/components/error-boundary.tsx +0 -45
- package/src/components/forms/field-renderer.tsx +0 -111
- package/src/components/forms/fields/block-builder.tsx +0 -213
- package/src/components/forms/fields/date-picker.tsx +0 -60
- package/src/components/forms/fields/json-editor.tsx +0 -62
- package/src/components/forms/fields/media-picker.tsx +0 -286
- package/src/components/forms/fields/multi-select.tsx +0 -145
- package/src/components/forms/fields/radio-field.tsx +0 -51
- package/src/components/forms/fields/relationship-picker.tsx +0 -143
- package/src/components/forms/fields/rich-text-editor.tsx +0 -224
- package/src/components/forms/fields/select-field.tsx +0 -35
- package/src/components/forms/fields/switch-field.tsx +0 -16
- package/src/components/forms/fields/text-area-field.tsx +0 -15
- package/src/components/forms/fields/text-field.tsx +0 -24
- package/src/components/forms/form-engine.tsx +0 -87
- package/src/components/forms/form-field-renderer.tsx +0 -269
- package/src/components/forms/utils.ts +0 -97
- package/src/components/layout/admin-shell.tsx +0 -479
- package/src/components/layout/branding-provider.tsx +0 -112
- package/src/components/live-preview/LivePreviewPane.tsx +0 -128
- package/src/components/media/focal-point-picker.tsx +0 -66
- package/src/components/media/media-card.tsx +0 -44
- package/src/components/media/media-grid.tsx +0 -32
- package/src/components/media/media-library-dialog.tsx +0 -465
- package/src/components/ui/aspect-ratio.tsx +0 -7
- package/src/components/ui/badge.tsx +0 -36
- package/src/components/ui/button.tsx +0 -56
- package/src/components/ui/calendar.tsx +0 -214
- package/src/components/ui/card.tsx +0 -79
- package/src/components/ui/checkbox.tsx +0 -28
- package/src/components/ui/command.tsx +0 -151
- package/src/components/ui/data-table.tsx +0 -219
- package/src/components/ui/dialog.tsx +0 -122
- package/src/components/ui/dropdown-menu.tsx +0 -200
- package/src/components/ui/form.tsx +0 -178
- package/src/components/ui/input.tsx +0 -24
- package/src/components/ui/label.tsx +0 -24
- package/src/components/ui/page-header.tsx +0 -30
- package/src/components/ui/pagination.tsx +0 -57
- package/src/components/ui/popover.tsx +0 -29
- package/src/components/ui/progress.tsx +0 -26
- package/src/components/ui/radio-group.tsx +0 -42
- package/src/components/ui/render-cell.tsx +0 -110
- package/src/components/ui/scroll-area.tsx +0 -46
- package/src/components/ui/select.tsx +0 -160
- package/src/components/ui/separator.tsx +0 -29
- package/src/components/ui/sheet.tsx +0 -140
- package/src/components/ui/sidebar.tsx +0 -771
- package/src/components/ui/skeleton.tsx +0 -15
- package/src/components/ui/sonner.tsx +0 -27
- package/src/components/ui/switch.tsx +0 -27
- package/src/components/ui/table.tsx +0 -117
- package/src/components/ui/tabs.tsx +0 -53
- package/src/components/ui/textarea.tsx +0 -22
- package/src/components/ui/toggle.tsx +0 -43
- package/src/components/ui/tooltip.tsx +0 -28
- package/src/hooks/use-mobile.tsx +0 -19
- package/src/hooks/use-preferences.ts +0 -56
- package/src/index.css +0 -111
- package/src/index.tsx +0 -198
- package/src/lib/utils.ts +0 -32
- package/src/main.tsx +0 -10
- package/src/pages/auth/first-user-page.tsx +0 -115
- package/src/pages/auth/login-page.tsx +0 -91
- package/src/pages/collections/edit-page.tsx +0 -280
- package/src/pages/collections/list-page.tsx +0 -343
- package/src/pages/dashboard/dashboard.tsx +0 -150
- package/src/pages/globals/editor-page.tsx +0 -122
- package/src/pages/media/media-page.tsx +0 -564
- package/src/pages/setup/setup-prompt.tsx +0 -181
- package/src/providers/dyrected-provider.tsx +0 -122
- package/src/providers/query-provider.tsx +0 -19
- package/src/types/jexl.d.ts +0 -11
- package/tailwind.config.ts +0 -102
- package/tsconfig.app.json +0 -28
- package/tsconfig.json +0 -12
- package/tsconfig.node.json +0 -25
- package/vite.config.ts +0 -40
- /package/{public → dist}/favicon.svg +0 -0
- /package/{public → dist}/icons.svg +0 -0
package/dist/App.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function App(): import("react/jsx-runtime").JSX.Element;
|
package/dist/admin.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
@import "https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap";*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans), ui-sans-serif, system-ui, sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--font-sans:"DM Sans", ui-sans-serif, system-ui, sans-serif;--font-serif:"Instrument Serif", ui-serif, Georgia, serif;--background:60 17% 97%;--foreground:60 3% 6%;--card:60 10% 95%;--card-foreground:60 3% 6%;--popover:60 17% 97%;--popover-foreground:60 3% 6%;--primary:38 92% 50%;--primary-foreground:60 3% 6%;--secondary:60 10% 95%;--secondary-foreground:60 3% 6%;--muted:60 10% 95%;--muted-foreground:60 4% 40%;--accent:60 10% 95%;--accent-foreground:60 3% 6%;--destructive:0 84% 60%;--destructive-foreground:60 17% 97%;--border:60 7% 89%;--input:60 7% 89%;--ring:38 92% 50% / .15;--radius:.5rem;--sidebar-background:60 17% 97%;--sidebar-foreground:60 3% 6%;--sidebar-primary:38 92% 50%;--sidebar-primary-foreground:60 3% 6%;--sidebar-accent:60 10% 95%;--sidebar-accent-foreground:38 92% 50%;--sidebar-border:60 7% 89%;--sidebar-ring:38 92% 50%}.dy-admin-ui{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans), ui-sans-serif, system-ui, sans-serif}.dy-admin-ui h1,.dy-admin-ui h2,.dy-admin-ui h3,.dy-admin-ui h4,.dy-admin-ui h5,.dy-admin-ui h6{font-family:var(--font-serif), ui-serif, Georgia, serif}.dy-admin-ui input,.dy-admin-ui select,.dy-admin-ui textarea{border-color:hsl(var(--border) / .6);background-color:#0000;transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-admin-ui input:focus,.dy-admin-ui select:focus,.dy-admin-ui textarea:focus{outline-offset:2px;outline:2px solid #0000}.dy-admin-ui input:focus-visible,.dy-admin-ui select:focus-visible,.dy-admin-ui textarea:focus-visible{outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000);--tw-ring-offset-width:0px;outline:2px solid #0000}.dy-admin-ui input:focus,.dy-admin-ui select:focus,.dy-admin-ui textarea:focus{border-color:hsl(var(--primary) / .5)}.dy-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dy-pointer-events-none{pointer-events:none}.dy-invisible{visibility:hidden}.dy-fixed{position:fixed}.dy-absolute{position:absolute}.dy-relative{position:relative}.dy-inset-0{inset:0}.dy-inset-x-0{left:0;right:0}.dy-inset-y-0{top:0;bottom:0}.dy-bottom-0{bottom:0}.dy-bottom-3{bottom:.75rem}.dy-bottom-8{bottom:2rem}.dy-left-0{left:0}.dy-left-2{left:.5rem}.dy-left-3{left:.75rem}.dy-left-3\.5{left:.875rem}.dy-left-4{left:1rem}.dy-left-\[50\%\]{left:50%}.dy-right-0{right:0}.dy-right-1{right:.25rem}.dy-right-2{right:.5rem}.dy-right-2\.5{right:.625rem}.dy-right-3{right:.75rem}.dy-right-4{right:1rem}.dy-right-8{right:2rem}.dy-top-0{top:0}.dy-top-1\.5{top:.375rem}.dy-top-1\/2{top:50%}.dy-top-2{top:.5rem}.dy-top-2\.5{top:.625rem}.dy-top-3\.5{top:.875rem}.dy-top-4{top:1rem}.dy-top-\[50\%\]{top:50%}.dy-z-0{z-index:0}.dy-z-10{z-index:10}.dy-z-20{z-index:20}.dy-z-30{z-index:30}.dy-z-40{z-index:40}.dy-z-50{z-index:50}.dy-z-\[100\]{z-index:100}.dy-m-0{margin:0}.dy--mx-1{margin-left:-.25rem;margin-right:-.25rem}.dy--mx-2{margin-left:-.5rem;margin-right:-.5rem}.dy--mx-4{margin-left:-1rem;margin-right:-1rem}.dy-mx-1{margin-left:.25rem;margin-right:.25rem}.dy-mx-2{margin-left:.5rem;margin-right:.5rem}.dy-mx-3{margin-left:.75rem;margin-right:.75rem}.dy-mx-3\.5{margin-left:.875rem;margin-right:.875rem}.dy-mx-auto{margin-left:auto;margin-right:auto}.dy-my-1{margin-top:.25rem;margin-bottom:.25rem}.dy-my-2{margin-top:.5rem;margin-bottom:.5rem}.dy--ml-4{margin-left:-1rem}.dy--mt-4{margin-top:-1rem}.dy--mt-6{margin-top:-1.5rem}.dy-mb-0\.5{margin-bottom:.125rem}.dy-mb-1{margin-bottom:.25rem}.dy-mb-1\.5{margin-bottom:.375rem}.dy-mb-2{margin-bottom:.5rem}.dy-mb-4{margin-bottom:1rem}.dy-mb-6{margin-bottom:1.5rem}.dy-mb-8{margin-bottom:2rem}.dy-ml-1{margin-left:.25rem}.dy-ml-1\.5{margin-left:.375rem}.dy-ml-2{margin-left:.5rem}.dy-ml-4{margin-left:1rem}.dy-ml-auto{margin-left:auto}.dy-mr-1{margin-right:.25rem}.dy-mr-1\.5{margin-right:.375rem}.dy-mr-2{margin-right:.5rem}.dy-mr-3{margin-right:.75rem}.dy-mr-4{margin-right:1rem}.dy-mt-0\.5{margin-top:.125rem}.dy-mt-1{margin-top:.25rem}.dy-mt-2{margin-top:.5rem}.dy-mt-4{margin-top:1rem}.dy-mt-8{margin-top:2rem}.dy-mt-auto{margin-top:auto}.dy-block{display:block}.dy-flex{display:flex}.dy-inline-flex{display:inline-flex}.dy-grid{display:grid}.dy-hidden{display:none}.dy-aspect-square{aspect-ratio:1}.dy-size-4{width:1rem;height:1rem}.dy-size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.dy-h-1\.5{height:.375rem}.dy-h-10{height:2.5rem}.dy-h-11{height:2.75rem}.dy-h-12{height:3rem}.dy-h-14{height:3.5rem}.dy-h-16{height:4rem}.dy-h-2{height:.5rem}.dy-h-2\.5{height:.625rem}.dy-h-20{height:5rem}.dy-h-24{height:6rem}.dy-h-3{height:.75rem}.dy-h-3\.5{height:.875rem}.dy-h-4{height:1rem}.dy-h-5{height:1.25rem}.dy-h-6{height:1.5rem}.dy-h-60{height:15rem}.dy-h-64{height:16rem}.dy-h-7{height:1.75rem}.dy-h-8{height:2rem}.dy-h-80{height:20rem}.dy-h-9{height:2.25rem}.dy-h-\[--cell-size\]{height:var(--cell-size)}.dy-h-\[15px\]{height:15px}.dy-h-\[17px\]{height:17px}.dy-h-\[1px\]{height:1px}.dy-h-\[300px\]{height:300px}.dy-h-\[400px\]{height:400px}.dy-h-\[650px\]{height:650px}.dy-h-\[calc\(100vh-0px\)\]{height:100vh}.dy-h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.dy-h-auto{height:auto}.dy-h-full{height:100%}.dy-h-px{height:1px}.dy-h-screen{height:100vh}.dy-h-svh{height:100svh}.dy-max-h-0{max-height:0}.dy-max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.dy-max-h-\[1000px\]{max-height:1000px}.dy-max-h-\[240px\]{max-height:240px}.dy-max-h-\[300px\]{max-height:300px}.dy-max-h-\[400px\]{max-height:400px}.dy-max-h-full{max-height:100%}.dy-min-h-0{min-height:0}.dy-min-h-10{min-height:2.5rem}.dy-min-h-\[150px\]{min-height:150px}.dy-min-h-\[400px\]{min-height:400px}.dy-min-h-\[600px\]{min-height:600px}.dy-min-h-\[80px\]{min-height:80px}.dy-min-h-full{min-height:100%}.dy-min-h-screen{min-height:100vh}.dy-min-h-svh{min-height:100svh}.dy-w-0{width:0}.dy-w-1\.5{width:.375rem}.dy-w-10{width:2.5rem}.dy-w-11{width:2.75rem}.dy-w-12{width:3rem}.dy-w-14{width:3.5rem}.dy-w-16{width:4rem}.dy-w-2{width:.5rem}.dy-w-2\.5{width:.625rem}.dy-w-20{width:5rem}.dy-w-24{width:6rem}.dy-w-3{width:.75rem}.dy-w-3\.5{width:.875rem}.dy-w-3\/4{width:75%}.dy-w-4{width:1rem}.dy-w-5{width:1.25rem}.dy-w-6{width:1.5rem}.dy-w-7{width:1.75rem}.dy-w-72{width:18rem}.dy-w-8{width:2rem}.dy-w-80{width:20rem}.dy-w-9{width:2.25rem}.dy-w-\[--cell-size\]{width:var(--cell-size)}.dy-w-\[--sidebar-width\]{width:var(--sidebar-width)}.dy-w-\[15px\]{width:15px}.dy-w-\[17px\]{width:17px}.dy-w-\[1px\]{width:1px}.dy-w-\[220px\]{width:220px}.dy-w-\[400px\]{width:400px}.dy-w-\[56px\]{width:56px}.dy-w-auto{width:auto}.dy-w-fit{width:fit-content}.dy-w-full{width:100%}.dy-w-px{width:1px}.dy-min-w-0{min-width:0}.dy-min-w-10{min-width:2.5rem}.dy-min-w-11{min-width:2.75rem}.dy-min-w-5{min-width:1.25rem}.dy-min-w-9{min-width:2.25rem}.dy-min-w-\[--cell-size\]{min-width:var(--cell-size)}.dy-min-w-\[120px\]{min-width:120px}.dy-min-w-\[8rem\]{min-width:8rem}.dy-max-w-2xl{max-width:42rem}.dy-max-w-4xl{max-width:56rem}.dy-max-w-5xl{max-width:64rem}.dy-max-w-\[150px\]{max-width:150px}.dy-max-w-full{max-width:100%}.dy-max-w-lg{max-width:32rem}.dy-max-w-md{max-width:28rem}.dy-max-w-sm{max-width:24rem}.dy-max-w-xs{max-width:20rem}.dy-flex-1{flex:1}.dy-flex-shrink-0,.dy-shrink-0{flex-shrink:0}.dy-caption-bottom{caption-side:bottom}.dy-origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.dy-origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.dy-origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.dy-origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.dy--translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy--translate-x-full{--tw-translate-x:-100%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy--translate-x-px{--tw-translate-x:-1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy--translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-translate-x-px{--tw-translate-x:1px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-translate-y-2{--tw-translate-y:.5rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-rotate-3{--tw-rotate:3deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-scale-75{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-scale-\[0\.98\]{--tw-scale-x:.98;--tw-scale-y:.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dy-transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes dy-bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.dy-animate-bounce{animation:1s infinite dy-bounce}@keyframes dy-pulse{50%{opacity:.5}}.dy-animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite dy-pulse}@keyframes dy-spin{to{transform:rotate(360deg)}}.dy-animate-spin{animation:1s linear infinite dy-spin}.dy-cursor-crosshair{cursor:crosshair}.dy-cursor-default{cursor:default}.dy-cursor-grab{cursor:grab}.dy-cursor-pointer{cursor:pointer}.dy-touch-none{touch-action:none}.dy-select-none{-webkit-user-select:none;user-select:none}.dy-select-all{-webkit-user-select:all;user-select:all}.dy-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.dy-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dy-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.dy-flex-row{flex-direction:row}.dy-flex-col{flex-direction:column}.dy-flex-col-reverse{flex-direction:column-reverse}.dy-flex-wrap{flex-wrap:wrap}.dy-place-content-center{place-content:center}.dy-items-start{align-items:flex-start}.dy-items-end{align-items:flex-end}.dy-items-center{align-items:center}.dy-justify-start{justify-content:flex-start}.dy-justify-end{justify-content:flex-end}.dy-justify-center{justify-content:center}.dy-justify-between{justify-content:space-between}.dy-gap-0{gap:0}.dy-gap-1{gap:.25rem}.dy-gap-1\.5{gap:.375rem}.dy-gap-2{gap:.5rem}.dy-gap-2\.5{gap:.625rem}.dy-gap-3{gap:.75rem}.dy-gap-4{gap:1rem}.dy-gap-6{gap:1.5rem}.dy-gap-8{gap:2rem}.dy-gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.dy-gap-y-4{row-gap:1rem}.dy-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.dy-space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.dy-space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.dy-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.dy-space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.dy-space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.dy-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.dy-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.dy-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.dy-space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.dy-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.dy-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.dy-overflow-auto{overflow:auto}.dy-overflow-hidden{overflow:hidden}.dy-overflow-y-auto{overflow-y:auto}.dy-overflow-x-hidden{overflow-x:hidden}.dy-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dy-whitespace-nowrap{white-space:nowrap}.dy-whitespace-pre-wrap{white-space:pre-wrap}.dy-text-nowrap{text-wrap:nowrap}.dy-rounded{border-radius:.25rem}.dy-rounded-2xl{border-radius:1rem}.dy-rounded-3xl{border-radius:1.5rem}.dy-rounded-\[2\.5rem\]{border-radius:2.5rem}.dy-rounded-\[inherit\]{border-radius:inherit}.dy-rounded-full{border-radius:9999px}.dy-rounded-lg{border-radius:var(--radius)}.dy-rounded-md{border-radius:calc(var(--radius) - 2px)}.dy-rounded-none{border-radius:0}.dy-rounded-sm{border-radius:calc(var(--radius) - 4px)}.dy-rounded-xl{border-radius:.75rem}.dy-rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.dy-rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.dy-rounded-t-md{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.dy-border{border-width:1px}.dy-border-2{border-width:2px}.dy-border-4{border-width:4px}.dy-border-b{border-bottom-width:1px}.dy-border-b-2{border-bottom-width:2px}.dy-border-l{border-left-width:1px}.dy-border-l-0{border-left-width:0}.dy-border-r{border-right-width:1px}.dy-border-t{border-top-width:1px}.dy-border-dashed{border-style:dashed}.dy-border-none{border-style:none}.dy-border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.dy-border-blue-100{--tw-border-opacity:1;border-color:rgb(219 234 254/var(--tw-border-opacity,1))}.dy-border-border{border-color:hsl(var(--border))}.dy-border-border\/10{border-color:hsl(var(--border) / .1)}.dy-border-border\/30{border-color:hsl(var(--border) / .3)}.dy-border-border\/40{border-color:hsl(var(--border) / .4)}.dy-border-border\/50{border-color:hsl(var(--border) / .5)}.dy-border-border\/60{border-color:hsl(var(--border) / .6)}.dy-border-card{border-color:hsl(var(--card))}.dy-border-current{border-color:currentColor}.dy-border-destructive{border-color:hsl(var(--destructive))}.dy-border-emerald-200{--tw-border-opacity:1;border-color:rgb(167 243 208/var(--tw-border-opacity,1))}.dy-border-input{border-color:hsl(var(--input))}.dy-border-muted{border-color:hsl(var(--muted))}.dy-border-muted\/20{border-color:hsl(var(--muted) / .2)}.dy-border-muted\/30{border-color:hsl(var(--muted) / .3)}.dy-border-primary{border-color:hsl(var(--primary))}.dy-border-primary\/10{border-color:hsl(var(--primary) / .1)}.dy-border-primary\/20{border-color:hsl(var(--primary) / .2)}.dy-border-red-100{--tw-border-opacity:1;border-color:rgb(254 226 226/var(--tw-border-opacity,1))}.dy-border-sidebar-border{border-color:hsl(var(--sidebar-border))}.dy-border-transparent{border-color:#0000}.dy-border-white{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dy-border-white\/10{border-color:#ffffff1a}.dy-border-white\/20{border-color:#fff3}.dy-border-white\/30{border-color:#ffffff4d}.dy-border-l-transparent{border-left-color:#0000}.dy-border-t-primary{border-top-color:hsl(var(--primary))}.dy-border-t-transparent{border-top-color:#0000}.dy-border-t-white{--tw-border-opacity:1;border-top-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dy-bg-accent{background-color:hsl(var(--accent))}.dy-bg-accent\/50{background-color:hsl(var(--accent) / .5)}.dy-bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.dy-bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.dy-bg-background{background-color:hsl(var(--background))}.dy-bg-background\/50{background-color:hsl(var(--background) / .5)}.dy-bg-black\/20{background-color:#0003}.dy-bg-black\/30{background-color:#0000004d}.dy-bg-black\/40{background-color:#0006}.dy-bg-black\/60{background-color:#0009}.dy-bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.dy-bg-blue-50\/50{background-color:#eff6ff80}.dy-bg-border{background-color:hsl(var(--border))}.dy-bg-border\/40{background-color:hsl(var(--border) / .4)}.dy-bg-border\/50{background-color:hsl(var(--border) / .5)}.dy-bg-card{background-color:hsl(var(--card))}.dy-bg-destructive{background-color:hsl(var(--destructive))}.dy-bg-destructive-foreground{background-color:hsl(var(--destructive-foreground))}.dy-bg-destructive\/10{background-color:hsl(var(--destructive) / .1)}.dy-bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.dy-bg-destructive\/90{background-color:hsl(var(--destructive) / .9)}.dy-bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.dy-bg-muted{background-color:hsl(var(--muted))}.dy-bg-muted\/10{background-color:hsl(var(--muted) / .1)}.dy-bg-muted\/20{background-color:hsl(var(--muted) / .2)}.dy-bg-muted\/30{background-color:hsl(var(--muted) / .3)}.dy-bg-muted\/40{background-color:hsl(var(--muted) / .4)}.dy-bg-muted\/5{background-color:hsl(var(--muted) / .05)}.dy-bg-muted\/50{background-color:hsl(var(--muted) / .5)}.dy-bg-muted\/60{background-color:hsl(var(--muted) / .6)}.dy-bg-popover{background-color:hsl(var(--popover))}.dy-bg-primary{background-color:hsl(var(--primary))}.dy-bg-primary\/10{background-color:hsl(var(--primary) / .1)}.dy-bg-primary\/5{background-color:hsl(var(--primary) / .05)}.dy-bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.dy-bg-red-50\/50{background-color:#fef2f280}.dy-bg-secondary{background-color:hsl(var(--secondary))}.dy-bg-secondary\/10{background-color:hsl(var(--secondary) / .1)}.dy-bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.dy-bg-sidebar{background-color:hsl(var(--sidebar-background))}.dy-bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.dy-bg-slate-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dy-bg-transparent{background-color:#0000}.dy-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dy-bg-white\/20{background-color:#fff3}.dy-bg-white\/40{background-color:#fff6}.dy-bg-white\/50{background-color:#ffffff80}.dy-bg-white\/90{background-color:#ffffffe6}.dy-bg-\[radial-gradient\(circle_at_center\,var\(--primary\)_0\%\,transparent_100\%\)\]{background-image:radial-gradient(circle at center,var(--primary) 0%,transparent 100%)}.dy-bg-gradient-to-br{background-image:linear-gradient(to bottom right, var(--tw-gradient-stops))}.dy-bg-gradient-to-t{background-image:linear-gradient(to top, var(--tw-gradient-stops))}.dy-from-black\/60{--tw-gradient-from:#0009 var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dy-from-black\/80{--tw-gradient-from:#000c var(--tw-gradient-from-position);--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dy-from-primary{--tw-gradient-from:hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to:hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.dy-via-black\/40{--tw-gradient-to:#0000 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), #0006 var(--tw-gradient-via-position), var(--tw-gradient-to)}.dy-to-primary\/80{--tw-gradient-to:hsl(var(--primary) / .8) var(--tw-gradient-to-position)}.dy-to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.dy-fill-current{fill:currentColor}.dy-object-contain{-o-object-fit:contain;object-fit:contain}.dy-object-cover{-o-object-fit:cover;object-fit:cover}.dy-p-0{padding:0}.dy-p-1{padding:.25rem}.dy-p-1\.5{padding:.375rem}.dy-p-12{padding:3rem}.dy-p-2{padding:.5rem}.dy-p-2\.5{padding:.625rem}.dy-p-3{padding:.75rem}.dy-p-4{padding:1rem}.dy-p-6{padding:1.5rem}.dy-p-8{padding:2rem}.dy-p-\[1px\]{padding:1px}.dy-px-1{padding-left:.25rem;padding-right:.25rem}.dy-px-1\.5{padding-left:.375rem;padding-right:.375rem}.dy-px-10{padding-left:2.5rem;padding-right:2.5rem}.dy-px-2{padding-left:.5rem;padding-right:.5rem}.dy-px-2\.5{padding-left:.625rem;padding-right:.625rem}.dy-px-3{padding-left:.75rem;padding-right:.75rem}.dy-px-4{padding-left:1rem;padding-right:1rem}.dy-px-5{padding-left:1.25rem;padding-right:1.25rem}.dy-px-6{padding-left:1.5rem;padding-right:1.5rem}.dy-px-8{padding-left:2rem;padding-right:2rem}.dy-px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.dy-py-0{padding-top:0;padding-bottom:0}.dy-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.dy-py-1{padding-top:.25rem;padding-bottom:.25rem}.dy-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.dy-py-12{padding-top:3rem;padding-bottom:3rem}.dy-py-2{padding-top:.5rem;padding-bottom:.5rem}.dy-py-3{padding-top:.75rem;padding-bottom:.75rem}.dy-py-4{padding-top:1rem;padding-bottom:1rem}.dy-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.dy-py-8{padding-top:2rem;padding-bottom:2rem}.dy-pb-2{padding-bottom:.5rem}.dy-pb-20{padding-bottom:5rem}.dy-pb-3{padding-bottom:.75rem}.dy-pb-4{padding-bottom:1rem}.dy-pb-6{padding-bottom:1.5rem}.dy-pb-8{padding-bottom:2rem}.dy-pl-0{padding-left:0}.dy-pl-10{padding-left:2.5rem}.dy-pl-11{padding-left:2.75rem}.dy-pl-12{padding-left:3rem}.dy-pl-2{padding-left:.5rem}.dy-pl-8{padding-left:2rem}.dy-pr-1{padding-right:.25rem}.dy-pr-10{padding-right:2.5rem}.dy-pr-2{padding-right:.5rem}.dy-pr-24{padding-right:6rem}.dy-pr-4{padding-right:1rem}.dy-pt-0{padding-top:0}.dy-pt-2{padding-top:.5rem}.dy-pt-4{padding-top:1rem}.dy-pt-6{padding-top:1.5rem}.dy-pt-8{padding-top:2rem}.dy-text-left{text-align:left}.dy-text-center{text-align:center}.dy-text-right{text-align:right}.dy-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.dy-font-serif{font-family:var(--font-serif), ui-serif, Georgia, serif}.dy-text-2xl{font-size:1.5rem;line-height:2rem}.dy-text-3xl{font-size:1.875rem;line-height:2.25rem}.dy-text-\[0\.8rem\]{font-size:.8rem}.dy-text-\[10px\]{font-size:10px}.dy-text-\[11px\]{font-size:11px}.dy-text-\[13px\]{font-size:13px}.dy-text-\[8px\]{font-size:8px}.dy-text-\[9px\]{font-size:9px}.dy-text-base{font-size:1rem;line-height:1.5rem}.dy-text-lg{font-size:1.125rem;line-height:1.75rem}.dy-text-sm{font-size:.875rem;line-height:1.25rem}.dy-text-xl{font-size:1.25rem;line-height:1.75rem}.dy-text-xs{font-size:.75rem;line-height:1rem}.dy-font-black{font-weight:900}.dy-font-bold{font-weight:700}.dy-font-medium{font-weight:500}.dy-font-normal{font-weight:400}.dy-font-semibold{font-weight:600}.dy-uppercase{text-transform:uppercase}.dy-capitalize{text-transform:capitalize}.dy-italic{font-style:italic}.dy-tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.dy-leading-none{line-height:1}.dy-leading-relaxed{line-height:1.625}.dy-leading-tight{line-height:1.25}.dy-tracking-tight{letter-spacing:-.025em}.dy-tracking-wider{letter-spacing:.05em}.dy-tracking-widest{letter-spacing:.1em}.dy-text-accent-foreground{color:hsl(var(--accent-foreground))}.dy-text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.dy-text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.dy-text-background{color:hsl(var(--background))}.dy-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.dy-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.dy-text-blue-700\/70{color:#1d4ed8b3}.dy-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.dy-text-card-foreground{color:hsl(var(--card-foreground))}.dy-text-current{color:currentColor}.dy-text-destructive{color:hsl(var(--destructive))}.dy-text-destructive-foreground{color:hsl(var(--destructive-foreground))}.dy-text-emerald-700{--tw-text-opacity:1;color:rgb(4 120 87/var(--tw-text-opacity,1))}.dy-text-foreground{color:hsl(var(--foreground))}.dy-text-foreground\/70{color:hsl(var(--foreground) / .7)}.dy-text-foreground\/80{color:hsl(var(--foreground) / .8)}.dy-text-foreground\/90{color:hsl(var(--foreground) / .9)}.dy-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.dy-text-muted-foreground{color:hsl(var(--muted-foreground))}.dy-text-muted-foreground\/20{color:hsl(var(--muted-foreground) / .2)}.dy-text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.dy-text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.dy-text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.dy-text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.dy-text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.dy-text-muted-foreground\/80{color:hsl(var(--muted-foreground) / .8)}.dy-text-popover-foreground{color:hsl(var(--popover-foreground))}.dy-text-primary{color:hsl(var(--primary))}.dy-text-primary-foreground{color:hsl(var(--primary-foreground))}.dy-text-primary\/40{color:hsl(var(--primary) / .4)}.dy-text-primary\/60{color:hsl(var(--primary) / .6)}.dy-text-primary\/70{color:hsl(var(--primary) / .7)}.dy-text-purple-500\/70{color:#a855f7b3}.dy-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.dy-text-red-700\/70{color:#b91c1cb3}.dy-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.dy-text-secondary-foreground{color:hsl(var(--secondary-foreground))}.dy-text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.dy-text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.dy-text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dy-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dy-text-white\/60{color:#fff9}.dy-underline-offset-4{text-underline-offset:4px}.dy-opacity-0{opacity:0}.dy-opacity-100{opacity:1}.dy-opacity-20{opacity:.2}.dy-opacity-50{opacity:.5}.dy-opacity-60{opacity:.6}.dy-opacity-70{opacity:.7}.dy-opacity-80{opacity:.8}.dy-opacity-\[0\.03\]{opacity:.03}.dy-shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-\[0_8px_30px_rgb\(0\,0\,0\,0\.3\)\]{--tw-shadow:0 8px 30px #0000004d;--tw-shadow-colored:0 8px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-inner{--tw-shadow:inset 0 2px 4px 0 #0000000d;--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.dy-shadow-primary\/20{--tw-shadow-color:hsl(var(--primary) / .2);--tw-shadow:var(--tw-shadow-colored)}.dy-shadow-primary\/5{--tw-shadow-color:hsl(var(--primary) / .05);--tw-shadow:var(--tw-shadow-colored)}.dy-outline-none{outline-offset:2px;outline:2px solid #0000}.dy-ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.dy-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.dy-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.dy-ring-4{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.dy-ring-inset{--tw-ring-inset:inset}.dy-ring-border\/50{--tw-ring-color:hsl(var(--border) / .5)}.dy-ring-primary{--tw-ring-color:hsl(var(--primary))}.dy-ring-primary\/10{--tw-ring-color:hsl(var(--primary) / .1)}.dy-ring-primary\/20{--tw-ring-color:hsl(var(--primary) / .2)}.dy-ring-sidebar-ring{--tw-ring-color:hsl(var(--sidebar-ring))}.dy-ring-offset-2{--tw-ring-offset-width:2px}.dy-ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.dy-backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.dy-backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.dy-backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.dy-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-\[left\,right\,width\]{transition-property:left,right,width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-\[width\]{transition-property:width;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-delay-75{transition-delay:75ms}.dy-duration-150{transition-duration:.15s}.dy-duration-200{transition-duration:.2s}.dy-duration-300{transition-duration:.3s}.dy-duration-500{transition-duration:.5s}.dy-duration-700{transition-duration:.7s}.dy-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.dy-ease-linear{transition-timing-function:linear}.dy-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.dy-animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.dy-fade-in,.dy-fade-in-0{--tw-enter-opacity:0}.dy-zoom-in{--tw-enter-scale:0}.dy-zoom-in-95{--tw-enter-scale:.95}.dy-slide-in-from-bottom-2{--tw-enter-translate-y:.5rem}.dy-slide-in-from-bottom-4{--tw-enter-translate-y:1rem}.dy-slide-in-from-left-2{--tw-enter-translate-x:-.5rem}.dy-duration-150{animation-duration:.15s}.dy-duration-200{animation-duration:.2s}.dy-duration-300{animation-duration:.3s}.dy-duration-500{animation-duration:.5s}.dy-duration-700{animation-duration:.7s}.dy-delay-75{animation-delay:75ms}.dy-ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.dy-ease-linear{animation-timing-function:linear}.dy-ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.dy-admin-ui .left-accent{border-left-width:2px;border-color:hsl(var(--primary) / .1);background-color:#0000;margin-left:-2rem;margin-right:-2rem;padding:1rem;transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.2s}.dy-admin-ui .left-accent:hover{border-left-color:hsl(var(--primary));background-color:hsl(var(--primary) / .04)}.dy-admin-ui .left-accent .left-accent{margin-left:-1rem;margin-right:-1rem;padding-left:1rem;padding-right:1rem}.dy-admin-ui .left-accent .left-accent .left-accent{margin-left:0;margin-right:0;padding-left:1rem;padding-right:1rem}.dy-admin-ui .flat-container{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);background-color:#0000;border-style:none;padding:0}.\[--cell-size\:dy-2\.25rem\]{--cell-size:dy-2.25rem}.placeholder\:dy-text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:dy-text-muted-foreground\/60::placeholder{color:hsl(var(--muted-foreground) / .6)}.after\:dy-absolute:after{content:var(--tw-content);position:absolute}.after\:dy--inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:dy-inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:dy-left-1\/2:after{content:var(--tw-content);left:50%}.after\:dy-w-\[2px\]:after{content:var(--tw-content);width:2px}.first\:dy-pl-4:first-child{padding-left:1rem}.last\:dy-pr-4:last-child{padding-right:1rem}.even\:dy-bg-primary\/\[0\.03\]:nth-child(2n){background-color:hsl(var(--primary) / .03)}.hover\:dy-scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:dy-scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:dy-scale-\[1\.02\]:hover{--tw-scale-x:1.02;--tw-scale-y:1.02;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:dy-border-border:hover{border-color:hsl(var(--border))}.hover\:dy-border-border\/80:hover{border-color:hsl(var(--border) / .8)}.hover\:dy-border-primary\/20:hover{border-color:hsl(var(--primary) / .2)}.hover\:dy-border-primary\/40:hover{border-color:hsl(var(--primary) / .4)}.hover\:dy-border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:dy-bg-accent:hover{background-color:hsl(var(--accent))}.hover\:dy-bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:dy-bg-background:hover{background-color:hsl(var(--background))}.hover\:dy-bg-destructive:hover{background-color:hsl(var(--destructive))}.hover\:dy-bg-destructive\/10:hover{background-color:hsl(var(--destructive) / .1)}.hover\:dy-bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:dy-bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:dy-bg-muted:hover{background-color:hsl(var(--muted))}.hover\:dy-bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:dy-bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:dy-bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:dy-bg-primary\/20:hover{background-color:hsl(var(--primary) / .2)}.hover\:dy-bg-primary\/5:hover{background-color:hsl(var(--primary) / .05)}.hover\:dy-bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:dy-bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:dy-bg-primary\/\[0\.02\]:hover{background-color:hsl(var(--primary) / .02)}.hover\:dy-bg-primary\/\[0\.06\]:hover{background-color:hsl(var(--primary) / .06)}.hover\:dy-bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:dy-bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:dy-bg-transparent:hover{background-color:#0000}.hover\:dy-bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:dy-bg-white\/80:hover{background-color:#fffc}.hover\:dy-text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:dy-text-destructive:hover{color:hsl(var(--destructive))}.hover\:dy-text-foreground:hover{color:hsl(var(--foreground))}.hover\:dy-text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:dy-text-primary:hover{color:hsl(var(--primary))}.hover\:dy-text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:dy-underline:hover{text-decoration-line:underline}.hover\:dy-opacity-100:hover{opacity:1}.hover\:dy-shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:dy-shadow-sm:hover{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:dy-shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.hover\:after\:dy-bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:dy-bg-accent:focus{background-color:hsl(var(--accent))}.focus\:dy-bg-background:focus{background-color:hsl(var(--background))}.focus\:dy-bg-primary\/5:focus{background-color:hsl(var(--primary) / .05)}.focus\:dy-bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus\:dy-text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:dy-text-destructive:focus{color:hsl(var(--destructive))}.focus\:dy-text-primary:focus{color:hsl(var(--primary))}.focus\:dy-outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:dy-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:dy-ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:dy-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:dy-ring-primary\/20:focus{--tw-ring-color:hsl(var(--primary) / .2)}.focus\:dy-ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:dy-ring-offset-0:focus{--tw-ring-offset-width:0px}.focus\:dy-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:dy-border-primary\/30:focus-visible{border-color:hsl(var(--primary) / .3)}.focus-visible\:dy-bg-white:focus-visible{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.focus-visible\:dy-shadow-md:focus-visible{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.focus-visible\:dy-outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:dy-ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:dy-ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:dy-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:dy-ring-destructive:focus-visible{--tw-ring-color:hsl(var(--destructive))}.focus-visible\:dy-ring-primary\/20:focus-visible{--tw-ring-color:hsl(var(--primary) / .2)}.focus-visible\:dy-ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:dy-ring-sidebar-ring:focus-visible{--tw-ring-color:hsl(var(--sidebar-ring))}.focus-visible\:dy-ring-offset-0:focus-visible{--tw-ring-offset-width:0px}.focus-visible\:dy-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:dy-ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.active\:dy-scale-90:active{--tw-scale-x:.9;--tw-scale-y:.9;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:dy-scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:dy-scale-\[0\.98\]:active{--tw-scale-x:.98;--tw-scale-y:.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:dy-bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:dy-text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:dy-pointer-events-none:disabled{pointer-events:none}.disabled\:dy-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:dy-opacity-50:disabled{opacity:.5}.has-\[\[data-variant\=inset\]\]\:dy-bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.aria-disabled\:dy-pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:dy-opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:dy-text-muted-foreground\/40[aria-selected=true]{color:hsl(var(--muted-foreground) / .4)}.data-\[disabled\=true\]\:dy-pointer-events-none[data-disabled=true],.data-\[disabled\]\:dy-pointer-events-none[data-disabled]{pointer-events:none}.data-\[side\=bottom\]\:dy-translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:dy--translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:dy-translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:dy--translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:dy-translate-x-5[data-state=checked]{--tw-translate-x:1.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:dy-translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[range-middle\=true\]\:dy-rounded-none[data-range-middle=true]{border-radius:0}.data-\[selected-single\=true\]\:dy-rounded-full[data-selected-single=true]{border-radius:9999px}.data-\[range-end\=true\]\:dy-rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:dy-rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[state\=checked\]\:dy-border-primary[data-state=checked]{border-color:hsl(var(--primary))}.data-\[active\=true\]\:dy-bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[range-end\=true\]\:dy-bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:dy-bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:dy-bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:dy-bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=\'true\'\]\:dy-bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:dy-bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:dy-bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=checked\]\:dy-bg-primary\/5[data-state=checked]{background-color:hsl(var(--primary) / .05)}.data-\[state\=on\]\:dy-bg-accent[data-state=on],.data-\[state\=open\]\:dy-bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:dy-bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:dy-bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:dy-bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:dy-font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:dy-text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[placeholder\]\:dy-text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:dy-text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:dy-text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:dy-text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:dy-text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:dy-text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:dy-text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:dy-text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:dy-text-accent-foreground[data-state=on]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:dy-text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:dy-opacity-50[data-disabled=true],.data-\[disabled\]\:dy-opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:dy-opacity-100[data-state=open]{opacity:1}.data-\[selected-single\=true\]\:dy-shadow-lg[data-selected-single=true]{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.data-\[state\=active\]\:dy-shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.data-\[state\=closed\]\:dy-duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:dy-duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:dy-animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:dy-animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:dy-fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:dy-fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:dy-zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:dy-zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:dy-slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:dy-slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:dy-slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:dy-slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:dy-slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:dy-slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:dy-slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:dy-slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:dy-slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:dy-slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:dy-slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:dy-slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:dy-slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:dy-slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:dy-slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:dy-slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=closed\]\:dy-duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:dy-duration-500[data-state=open]{animation-duration:.5s}.data-\[state\=open\]\:hover\:dy-bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:dy-text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}@media (width>=640px){.sm\:dy-flex{display:flex}.sm\:dy-max-w-\[600px\]{max-width:600px}.sm\:dy-max-w-\[900px\]{max-width:900px}.sm\:dy-max-w-md{max-width:28rem}.sm\:dy-max-w-sm{max-width:24rem}.sm\:dy-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:dy-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:dy-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:dy-flex-row{flex-direction:row}.sm\:dy-justify-end{justify-content:flex-end}.sm\:dy-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:dy-rounded-xl{border-radius:.75rem}.sm\:dy-text-left{text-align:left}}@media (width>=768px){.md\:dy-block{display:block}.md\:dy-flex{display:flex}.md\:dy-hidden{display:none}.md\:dy-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:dy-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:dy-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:dy-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:dy-flex-row{flex-direction:row}.md\:dy-text-sm{font-size:.875rem;line-height:1.25rem}.md\:dy-opacity-0{opacity:0}.after\:md\:dy-hidden:after{content:var(--tw-content);display:none}}@media (width>=1024px){.lg\:dy--mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.lg\:dy--mt-10{margin-top:-2.5rem}.lg\:dy-block{display:block}.lg\:dy-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:dy-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:dy-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:dy-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:dy-px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:dy-px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:dy-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.lg\:dy-text-5xl{font-size:3rem;line-height:1}}@media (width>=1280px){.xl\:dy-max-w-3xl{max-width:48rem}.xl\:dy-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width>=1536px){.\32 xl\:dy-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.\[\&\>button\]\:dy-hidden>button{display:none}.\[\&\>span\:last-child\]\:dy-truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>span\]\:dy-line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>svg\]\:dy-size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:dy-size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:dy-shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:dy-text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:dy-text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>tr\]\:last\:dy-border-b-0:last-child>tr{border-bottom-width:0}.\[\&_\[cmdk-group-heading\]\]\:dy-px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:dy-py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:dy-text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:dy-font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:dy-text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:dy-pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:dy-px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:dy-h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:dy-w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:dy-h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:dy-px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:dy-py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:dy-h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:dy-w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:dy-pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:dy-size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:dy-shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:dy-border-0 tr:last-child{border-width:0}.\[\&_tr\]\:dy-border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:dy--right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:dy-cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:dy-cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:dy--left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:dy-cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:dy-cursor-e-resize{cursor:e-resize}
|
|
2
|
+
/*$vite$:1*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* AuthGate protects the admin dashboard and handles the initial bootstrap flow.
|
|
4
|
+
*
|
|
5
|
+
* 1. Checks if any user collection has 'auth: true'.
|
|
6
|
+
* 2. If yes, checks if at least one user exists (initialized).
|
|
7
|
+
* 3. If not initialized, shows the 'First User' registration page.
|
|
8
|
+
* 4. If initialized but not logged in, shows the 'Login' page.
|
|
9
|
+
* 5. If logged in (or no auth required), renders the children.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AuthGate({ children }: {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component, ErrorInfo, ReactNode } from 'react';
|
|
2
|
+
interface Props {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
fallback?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
interface State {
|
|
7
|
+
hasError: boolean;
|
|
8
|
+
error: Error | null;
|
|
9
|
+
}
|
|
10
|
+
export declare class ErrorBoundary extends Component<Props, State> {
|
|
11
|
+
state: State;
|
|
12
|
+
static getDerivedStateFromError(error: Error): State;
|
|
13
|
+
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
14
|
+
render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import('react').ReactPortal | import('react').ReactElement<unknown, string | import('react').JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface FieldRendererProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
field: any;
|
|
5
|
+
collection: string;
|
|
6
|
+
context?: {
|
|
7
|
+
user: any;
|
|
8
|
+
schemas?: any;
|
|
9
|
+
siblingData: any;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* FieldRenderer (Field Registry/Dispatcher)
|
|
14
|
+
*
|
|
15
|
+
* This component is a pure dispatcher that maps a field schema type to its
|
|
16
|
+
* corresponding UI component (e.g., TextField, MediaPicker, SelectField).
|
|
17
|
+
*
|
|
18
|
+
* It receives standard props (field, schema, collection, context) and ensures
|
|
19
|
+
* they are passed down to the specialized field implementation.
|
|
20
|
+
*/
|
|
21
|
+
export declare function FieldRenderer({ schema, field, collection, context }: FieldRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FieldSchema } from '../form-engine';
|
|
2
|
+
interface BlockBuilderProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
basePath: string;
|
|
5
|
+
control: any;
|
|
6
|
+
collection: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function BlockBuilder({ schema, basePath, control, collection }: BlockBuilderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface DatePickerProps {
|
|
2
|
+
value?: string | Date;
|
|
3
|
+
onChange: (date?: string) => void;
|
|
4
|
+
label?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function DatePicker({ value, onChange, label, disabled }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface JsonEditorProps {
|
|
2
|
+
value?: any;
|
|
3
|
+
onChange: (value: any) => void;
|
|
4
|
+
label?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function JsonEditor({ value, onChange, label, disabled }: JsonEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface MediaPickerProps {
|
|
2
|
+
collection: string;
|
|
3
|
+
value?: string | string[];
|
|
4
|
+
onChange: (value: string | string[]) => void;
|
|
5
|
+
label?: string;
|
|
6
|
+
variant?: "default" | "icon";
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
multiple?: boolean;
|
|
9
|
+
placeholder?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function MediaPicker({ collection, value, onChange, label, variant, disabled, multiple, placeholder }: MediaPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface Option {
|
|
2
|
+
label: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
interface MultiSelectProps {
|
|
6
|
+
options: Option[];
|
|
7
|
+
value?: string[];
|
|
8
|
+
onChange: (value: string[]) => void;
|
|
9
|
+
label?: string;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* MultiSelect Field component
|
|
15
|
+
*
|
|
16
|
+
* Provides a tag-based multi-selection UI using a searchable dropdown.
|
|
17
|
+
*/
|
|
18
|
+
export declare function MultiSelect({ options, value, onChange, label, placeholder, disabled, }: MultiSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface RadioFieldProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
field: any;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function RadioField({ schema, field, disabled }: RadioFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface RelationshipPickerProps {
|
|
2
|
+
value?: string | string[];
|
|
3
|
+
onChange: (value: string | string[]) => void;
|
|
4
|
+
label?: string;
|
|
5
|
+
relationTo: string;
|
|
6
|
+
multiple?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function RelationshipPicker({ value, onChange, label, relationTo, multiple, disabled }: RelationshipPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface RichTextEditorProps {
|
|
2
|
+
value: string;
|
|
3
|
+
onChange: (value: string) => void;
|
|
4
|
+
label?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
collection?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function RichTextEditor({ value, onChange, label, disabled, collection }: RichTextEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface SelectFieldProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
field: any;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function SelectField({ schema, field, disabled }: SelectFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface TextAreaFieldProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
field: any;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function TextAreaField({ schema, field, disabled }: TextAreaFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface TextFieldProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
field: any;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function TextField({ schema, field, disabled }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Field as FieldSchema, Block as BlockSchema } from '@dyrected/sdk';
|
|
2
|
+
export type { FieldSchema, BlockSchema };
|
|
3
|
+
interface FormEngineProps {
|
|
4
|
+
collection: string;
|
|
5
|
+
fields: FieldSchema[];
|
|
6
|
+
defaultValues?: Record<string, any>;
|
|
7
|
+
onSubmit: (data: any) => void;
|
|
8
|
+
onChange?: (isDirty: boolean) => void;
|
|
9
|
+
isLoading?: boolean;
|
|
10
|
+
submitLabel?: string;
|
|
11
|
+
readOnly?: boolean;
|
|
12
|
+
onDataChange?: (data: any) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function FormEngine({ collection, fields, defaultValues, onSubmit, onChange, isLoading, submitLabel, readOnly, onDataChange }: FormEngineProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
interface FormFieldRendererProps {
|
|
3
|
+
schema: FieldSchema;
|
|
4
|
+
basePath: string;
|
|
5
|
+
control: any;
|
|
6
|
+
collection: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* FormFieldRenderer (Field Orchestrator)
|
|
10
|
+
*
|
|
11
|
+
* This component handles the high-level logic for a single form field, including:
|
|
12
|
+
* - Field Lifecycle: Manages registration and state via react-hook-form Controller.
|
|
13
|
+
* - Conditional Visibility: Evaluates 'admin.condition' to show/hide fields dynamically.
|
|
14
|
+
* - Layout & Presentation: Renders labels, descriptions, and error states.
|
|
15
|
+
* - Validation: Displays Zod validation errors.
|
|
16
|
+
*
|
|
17
|
+
* It delegates the actual rendering of the input UI to the FieldRenderer.
|
|
18
|
+
*/
|
|
19
|
+
export declare function FormFieldRenderer({ schema, basePath, control, collection }: FormFieldRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Field as FieldSchema } from '@dyrected/sdk';
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
export declare function normalizeOptions(options: string[] | {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}[] | undefined): {
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}[];
|
|
10
|
+
export declare function buildSchemaShape(fields: FieldSchema[]): Record<string, z.ZodTypeAny>;
|
|
11
|
+
export declare function buildDefaultValues(fields: FieldSchema[], defaults: any): any;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface FocalPoint {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
}
|
|
5
|
+
interface FocalPointPickerProps {
|
|
6
|
+
url: string;
|
|
7
|
+
value?: FocalPoint;
|
|
8
|
+
onChange: (value: FocalPoint) => void;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function FocalPointPicker({ url, value, onChange, className }: FocalPointPickerProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface MediaLibraryDialogProps {
|
|
2
|
+
collection: string;
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onOpenChange: (open: boolean) => void;
|
|
5
|
+
selectedValues: string[];
|
|
6
|
+
onSelect: (id: string) => void;
|
|
7
|
+
multiple?: boolean;
|
|
8
|
+
onConfirm?: (selectedIds: string[]) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function MediaLibraryDialog({ collection, isOpen, onOpenChange, selectedValues, onSelect, multiple, onConfirm }: MediaLibraryDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const badgeVariants: (props?: {
|
|
4
|
+
variant?: "default" | "destructive" | "outline" | "secondary";
|
|
5
|
+
} & import('class-variance-authority/types').ClassProp) => string;
|
|
6
|
+
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
7
|
+
}
|
|
8
|
+
declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { Badge, badgeVariants };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const buttonVariants: (props?: {
|
|
4
|
+
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost";
|
|
5
|
+
size?: "icon" | "default" | "sm" | "lg";
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) => string;
|
|
7
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}
|
|
10
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
11
|
+
export { Button, buttonVariants };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DayButton, DayPicker } from 'react-day-picker';
|
|
2
|
+
import { Button } from '../../components/ui/button';
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
declare function Calendar({ className, classNames, showOutsideDays, captionLayout, buttonVariant, formatters, components, ...props }: React.ComponentProps<typeof DayPicker> & {
|
|
5
|
+
buttonVariant?: React.ComponentProps<typeof Button>["variant"];
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function CalendarDayButton({ className, day, modifiers, ...props }: React.ComponentProps<typeof DayButton>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Calendar, CalendarDayButton };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
3
|
+
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
3
|
+
declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
4
|
+
export { Checkbox };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { DialogProps } from '@radix-ui/react-dialog';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const Command: React.ForwardRefExoticComponent<Omit<{
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
} & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
6
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
7
|
+
} & {
|
|
8
|
+
asChild?: boolean;
|
|
9
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
10
|
+
label?: string;
|
|
11
|
+
shouldFilter?: boolean;
|
|
12
|
+
filter?: (value: string, search: string, keywords?: string[]) => number;
|
|
13
|
+
defaultValue?: string;
|
|
14
|
+
value?: string;
|
|
15
|
+
onValueChange?: (value: string) => void;
|
|
16
|
+
loop?: boolean;
|
|
17
|
+
disablePointerSelection?: boolean;
|
|
18
|
+
vimBindings?: boolean;
|
|
19
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const CommandDialog: ({ children, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
|
|
22
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
23
|
+
} & {
|
|
24
|
+
asChild?: boolean;
|
|
25
|
+
}, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "value" | "type" | "onChange"> & {
|
|
26
|
+
value?: string;
|
|
27
|
+
onValueChange?: (search: string) => void;
|
|
28
|
+
} & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
29
|
+
declare const CommandList: React.ForwardRefExoticComponent<Omit<{
|
|
30
|
+
children?: React.ReactNode;
|
|
31
|
+
} & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
32
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
33
|
+
} & {
|
|
34
|
+
asChild?: boolean;
|
|
35
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
36
|
+
label?: string;
|
|
37
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
38
|
+
declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
|
|
39
|
+
children?: React.ReactNode;
|
|
40
|
+
} & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
41
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
42
|
+
} & {
|
|
43
|
+
asChild?: boolean;
|
|
44
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
45
|
+
declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
|
|
46
|
+
children?: React.ReactNode;
|
|
47
|
+
} & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
48
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
49
|
+
} & {
|
|
50
|
+
asChild?: boolean;
|
|
51
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "heading"> & {
|
|
52
|
+
heading?: React.ReactNode;
|
|
53
|
+
value?: string;
|
|
54
|
+
forceMount?: boolean;
|
|
55
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
56
|
+
declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
57
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
58
|
+
} & {
|
|
59
|
+
asChild?: boolean;
|
|
60
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
61
|
+
alwaysRender?: boolean;
|
|
62
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
63
|
+
declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
|
|
64
|
+
children?: React.ReactNode;
|
|
65
|
+
} & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
66
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
67
|
+
} & {
|
|
68
|
+
asChild?: boolean;
|
|
69
|
+
}, "key" | "asChild" | keyof React.HTMLAttributes<HTMLDivElement>>, "value" | "onSelect" | "disabled"> & {
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
onSelect?: (value: string) => void;
|
|
72
|
+
value?: string;
|
|
73
|
+
keywords?: string[];
|
|
74
|
+
forceMount?: boolean;
|
|
75
|
+
} & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
76
|
+
declare const CommandShortcut: {
|
|
77
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
|
|
78
|
+
displayName: string;
|
|
79
|
+
};
|
|
80
|
+
export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ColumnDef, VisibilityState } from '@tanstack/react-table';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
interface DataTableProps<TData, TValue> {
|
|
4
|
+
columns: ColumnDef<TData, TValue>[];
|
|
5
|
+
data: TData[];
|
|
6
|
+
searchKey?: string;
|
|
7
|
+
rowSelection?: any;
|
|
8
|
+
onRowSelectionChange?: any;
|
|
9
|
+
bulkActions?: (selectedIds: string[]) => React.ReactNode;
|
|
10
|
+
persistenceKey?: string;
|
|
11
|
+
initialColumnVisibility?: VisibilityState;
|
|
12
|
+
}
|
|
13
|
+
export declare function DataTable<TData, TValue>({ columns, data, searchKey, rowSelection: externalRowSelection, onRowSelectionChange, bulkActions, persistenceKey, initialColumnVisibility, }: DataTableProps<TData, TValue>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|