@tailor-platform/app-shell 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2 -1
- package/dist/index.d.ts +144 -16
- package/dist/index.js +1 -1
- package/package.json +9 -7
package/dist/index.css
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
*,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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: }:root{--background: 0 0% 100%;--foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--card: 0 0% 100%;--card-foreground: 222.2 47.4% 11.2%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 100% 50%;--destructive-foreground: 210 40% 98%;--ring: 215 20.2% 65.1%;--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}body{background-color:hsl(var(--background));font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{border-color:hsl(var(--border));outline-color:hsl(var(--ring) / .5)}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.left-0{left:0}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.-ml-1{margin-left:-.25rem}.mb-4{margin-bottom:1rem}.mr-2{margin-right:.5rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-4{width:1rem;height:1rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-full{height:100%}.h-svh{height:100svh}.min-h-0{min-height:0px}.min-h-svh{min-height:100svh}.w-3\/4{width:75%}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[1px\]{width:1px}.w-\[calc\(100\%-var\(--sidebar-width\)\)\]{width:calc(100% - var(--sidebar-width))}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.select-none{user-select:none}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.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))}.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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-input{border-color:hsl(var(--input))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.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)}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--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)}.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)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--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)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@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))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px 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\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\: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\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\: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\: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\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--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)}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.group\/sidebar-wrapper:has([data-collapsible=icon]) .group-has-\[\[data-collapsible\=icon\]\]\/sidebar-wrapper\:h-12{height:3rem}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-\[state\=open\]\:rotate-90[data-state=open]{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@media (min-width: 640px){.sm\:flex{display:flex}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\: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\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}@media (min-width: 768px){.md\:block{display:block}.md\:flex{display:flex}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
|
|
1
|
+
@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-200: oklch(92.8% .006 264.531);--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-sm: 24rem;--container-lg: 32rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-base: 1rem;--text-base--line-height: 1.5 ;--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--tracking-tight: -.025em;--radius-xs: .125rem;--radius-xl: .75rem;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}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-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-3\.5{margin-inline:calc(var(--spacing) * 3.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.aspect-square{aspect-ratio:1 / 1}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-auto{height:auto}.h-full{height:100%}.h-svh{height:100svh}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-svh{min-height:100svh}.w-\(--sidebar-width\){width:var(--sidebar-width)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-\[calc\(100\%-var\(--sidebar-width\)\)\]{width:calc(100% - var(--sidebar-width))}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-5{min-width:calc(var(--spacing) * 5)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x: -1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-px{--tw-translate-x: 1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-45{rotate:45deg}.animate-in{animation:enter var(--tw-duration,.15s)var(--tw-ease,ease)}.animate-pulse{animation:var(--animate-pulse)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-\[2px\]{border-radius:2px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-input{border-color:var(--input)}.border-sidebar-border{border-color:var(--sidebar-border)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-black\/50{background-color:color-mix(in srgb,#000 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive{background-color:var(--destructive)}.bg-muted\/50{background-color:var(--muted);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-border{background-color:var(--sidebar-border)}.bg-transparent{background-color:transparent}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.pt-4{padding-top:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.align-middle{vertical-align:middle}.text-base{font-size:var(--text-base);line-height:var(--tw-leading, var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-none{--tw-leading: 1;line-height:1}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight: var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.text-foreground{color:var(--foreground)}.text-muted-foreground{color:var(--muted-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-sidebar-foreground\/70{color:var(--sidebar-foreground);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--sidebar-foreground) 70%,transparent)}}.text-white{color:var(--color-white)}.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,)}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:70%}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-border)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / .05));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-sidebar-ring{--tw-ring-color: var(--sidebar-ring)}.ring-offset-background{--tw-ring-offset-color: var(--background)}.outline-hidden{--tw-outline-style: none;outline-style:none;@media (forced-colors: active){outline:2px solid transparent;outline-offset:2px}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[width\,height\]{transition-property:width,height;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-200{--tw-duration: .2s;transition-duration:.2s}.ease-in-out{--tw-ease: var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease: linear;transition-timing-function:linear}.outline-none{--tw-outline-style: none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.group-focus-within\/menu-item\:opacity-100{&:is(:where(.group\/menu-item):focus-within *){opacity:100%}}.group-hover\/menu-item\:opacity-100{&:is(:where(.group\/menu-item):hover *){@media (hover: hover){opacity:100%}}}.group-has-data-\[collapsible\=icon\]\/sidebar-wrapper\:h-12{&:is(:where(.group\/sidebar-wrapper):has(*[data-collapsible=icon]) *){height:calc(var(--spacing) * 12)}}.group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8{&:is(:where(.group\/menu-item):has(*[data-sidebar=menu-action]) *){padding-right:calc(var(--spacing) * 8)}}.group-data-\[collapsible\=icon\]\:-mt-8{&:is(:where(.group)[data-collapsible=icon] *){margin-top:calc(var(--spacing) * -8)}}.group-data-\[collapsible\=icon\]\:hidden{&:is(:where(.group)[data-collapsible=icon] *){display:none}}.group-data-\[collapsible\=icon\]\:size-8\!{&:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--spacing) * 8)!important;height:calc(var(--spacing) * 8)!important}}.group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\){&:is(:where(.group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{&:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)))}}.group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{&:is(:where(.group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--spacing) * 4)) + 2px)}}.group-data-\[collapsible\=icon\]\:overflow-hidden{&:is(:where(.group)[data-collapsible=icon] *){overflow:hidden}}.group-data-\[collapsible\=icon\]\:p-0\!{&:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 0)!important}}.group-data-\[collapsible\=icon\]\:p-2\!{&:is(:where(.group)[data-collapsible=icon] *){padding:calc(var(--spacing) * 2)!important}}.group-data-\[collapsible\=icon\]\:opacity-0{&:is(:where(.group)[data-collapsible=icon] *){opacity:0%}}.group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}}.group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}}.group-data-\[collapsible\=offcanvas\]\:w-0{&:is(:where(.group)[data-collapsible=offcanvas] *){width:calc(var(--spacing) * 0)}}.group-data-\[collapsible\=offcanvas\]\:translate-x-0{&:is(:where(.group)[data-collapsible=offcanvas] *){--tw-translate-x: calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}}.group-data-\[side\=left\]\:-right-4{&:is(:where(.group)[data-side=left] *){right:calc(var(--spacing) * -4)}}.group-data-\[side\=left\]\:border-r{&:is(:where(.group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}}.group-data-\[side\=right\]\:left-0{&:is(:where(.group)[data-side=right] *){left:calc(var(--spacing) * 0)}}.group-data-\[side\=right\]\:rotate-180{&:is(:where(.group)[data-side=right] *){rotate:180deg}}.group-data-\[side\=right\]\:border-l{&:is(:where(.group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}}.group-data-\[variant\=floating\]\:rounded-lg{&:is(:where(.group)[data-variant=floating] *){border-radius:var(--radius)}}.group-data-\[variant\=floating\]\:border{&:is(:where(.group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}}.group-data-\[variant\=floating\]\:border-sidebar-border{&:is(:where(.group)[data-variant=floating] *){border-color:var(--sidebar-border)}}.group-data-\[variant\=floating\]\:shadow-sm{&:is(:where(.group)[data-variant=floating] *){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.peer-hover\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.peer\/menu-button):hover~*){@media (hover: hover){color:var(--sidebar-accent-foreground)}}}.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}}.peer-data-\[size\=default\]\/menu-button\:top-1\.5{&:is(:where(.peer\/menu-button)[data-size=default]~*){top:calc(var(--spacing) * 1.5)}}.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{&:is(:where(.peer\/menu-button)[data-size=lg]~*){top:calc(var(--spacing) * 2.5)}}.peer-data-\[size\=sm\]\/menu-button\:top-1{&:is(:where(.peer\/menu-button)[data-size=sm]~*){top:calc(var(--spacing) * 1)}}.selection\:bg-primary{& *::selection{background-color:var(--primary)}&::selection{background-color:var(--primary)}}.selection\:text-primary-foreground{& *::selection{color:var(--primary-foreground)}&::selection{color:var(--primary-foreground)}}.file\:inline-flex{&::file-selector-button{display:inline-flex}}.file\:h-7{&::file-selector-button{height:calc(var(--spacing) * 7)}}.file\:border-0{&::file-selector-button{border-style:var(--tw-border-style);border-width:0px}}.file\:bg-transparent{&::file-selector-button{background-color:transparent}}.file\:text-sm{&::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}}.file\:font-medium{&::file-selector-button{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}}.file\:text-foreground{&::file-selector-button{color:var(--foreground)}}.placeholder\:text-muted-foreground{&::placeholder{color:var(--muted-foreground)}}.after\:absolute{&:after{content:var(--tw-content);position:absolute}}.after\:-inset-2{&:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}}.after\:inset-y-0{&:after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}}.after\:left-1\/2{&:after{content:var(--tw-content);left:50%}}.after\:w-\[2px\]{&:after{content:var(--tw-content);width:2px}}.group-data-\[collapsible\=offcanvas\]\:after\:left-full{&:is(:where(.group)[data-collapsible=offcanvas] *){&:after{content:var(--tw-content);left:100%}}}.hover\:bg-accent{&:hover{@media (hover: hover){background-color:var(--accent)}}}.hover\:bg-destructive\/90{&:hover{@media (hover: hover){background-color:var(--destructive);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}}}.hover\:bg-muted\/50{&:hover{@media (hover: hover){background-color:var(--muted);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}}}.hover\:bg-primary\/90{&:hover{@media (hover: hover){background-color:var(--primary);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}}}.hover\:bg-secondary\/80{&:hover{@media (hover: hover){background-color:var(--secondary);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}}}.hover\:bg-sidebar-accent{&:hover{@media (hover: hover){background-color:var(--sidebar-accent)}}}.hover\:text-accent-foreground{&:hover{@media (hover: hover){color:var(--accent-foreground)}}}.hover\:text-foreground{&:hover{@media (hover: hover){color:var(--foreground)}}}.hover\:text-sidebar-accent-foreground{&:hover{@media (hover: hover){color:var(--sidebar-accent-foreground)}}}.hover\:underline{&:hover{@media (hover: hover){text-decoration-line:underline}}}.hover\:opacity-100{&:hover{@media (hover: hover){opacity:100%}}}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]{&:hover{@media (hover: hover){--tw-shadow: 0 0 0 1px var(--tw-shadow-color, hsl(var(--sidebar-accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar{&:hover{@media (hover: hover){&:is(:where(.group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}}}}.hover\:after\:bg-sidebar-border{&:hover{@media (hover: hover){&:after{content:var(--tw-content);background-color:var(--sidebar-border)}}}}.focus\:ring-2{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-ring{&:focus{--tw-ring-color: var(--ring)}}.focus\:ring-offset-2{&:focus{--tw-ring-offset-width: 2px;--tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}}.focus\:outline-hidden{&:focus{--tw-outline-style: none;outline-style:none;@media (forced-colors: active){outline:2px solid transparent;outline-offset:2px}}}.focus-visible\:border-ring{&:focus-visible{border-color:var(--ring)}}.focus-visible\:ring-2{&:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-\[3px\]{&:focus-visible{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-visible\:ring-destructive\/20{&:focus-visible{--tw-ring-color: var(--destructive);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}}.focus-visible\:ring-ring\/50{&:focus-visible{--tw-ring-color: var(--ring);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent)}}}.active\:bg-sidebar-accent{&:active{background-color:var(--sidebar-accent)}}.active\:text-sidebar-accent-foreground{&:active{color:var(--sidebar-accent-foreground)}}.disabled\:pointer-events-none{&:disabled{pointer-events:none}}.disabled\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.disabled\:opacity-50{&:disabled{opacity:50%}}.in-data-\[side\=left\]\:cursor-w-resize{:where(*[data-side=left]) &{cursor:w-resize}}.in-data-\[side\=right\]\:cursor-e-resize{:where(*[data-side=right]) &{cursor:e-resize}}.has-data-\[variant\=inset\]\:bg-sidebar{&:has(*[data-variant=inset]){background-color:var(--sidebar)}}.has-\[\>svg\]\:px-2\.5{&:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}}.has-\[\>svg\]\:px-3{&:has(>svg){padding-inline:calc(var(--spacing) * 3)}}.has-\[\>svg\]\:px-4{&:has(>svg){padding-inline:calc(var(--spacing) * 4)}}.aria-disabled\:pointer-events-none{&[aria-disabled=true]{pointer-events:none}}.aria-disabled\:opacity-50{&[aria-disabled=true]{opacity:50%}}.aria-invalid\:border-destructive{&[aria-invalid=true]{border-color:var(--destructive)}}.aria-invalid\:ring-destructive\/20{&[aria-invalid=true]{--tw-ring-color: var(--destructive);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent)}}}.data-\[active\=true\]\:bg-sidebar-accent{&[data-active=true]{background-color:var(--sidebar-accent)}}.data-\[active\=true\]\:font-medium{&[data-active=true]{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}}.data-\[active\=true\]\:text-sidebar-accent-foreground{&[data-active=true]{color:var(--sidebar-accent-foreground)}}.data-\[orientation\=horizontal\]\:h-px{&[data-orientation=horizontal]{height:1px}}.data-\[orientation\=horizontal\]\:w-full{&[data-orientation=horizontal]{width:100%}}.data-\[orientation\=vertical\]\:h-full{&[data-orientation=vertical]{height:100%}}.data-\[orientation\=vertical\]\:w-px{&[data-orientation=vertical]{width:1px}}.data-\[side\=bottom\]\:slide-in-from-top-2{&[data-side=bottom]{--tw-enter-translate-y: calc(2*var(--spacing)*-1)}}.data-\[side\=left\]\:slide-in-from-right-2{&[data-side=left]{--tw-enter-translate-x: calc(2*var(--spacing))}}.data-\[side\=right\]\:slide-in-from-left-2{&[data-side=right]{--tw-enter-translate-x: calc(2*var(--spacing)*-1)}}.data-\[side\=top\]\:slide-in-from-bottom-2{&[data-side=top]{--tw-enter-translate-y: calc(2*var(--spacing))}}.data-\[state\=closed\]\:animate-out{&[data-state=closed]{animation:exit var(--tw-duration,.15s)var(--tw-ease,ease)}}.data-\[state\=closed\]\:duration-300{&[data-state=closed]{--tw-duration: .3s;transition-duration:.3s}}.data-\[state\=closed\]\:fade-out-0{&[data-state=closed]{--tw-exit-opacity: 0}}.data-\[state\=closed\]\:slide-out-to-bottom{&[data-state=closed]{--tw-exit-translate-y: 100%}}.data-\[state\=closed\]\:slide-out-to-left{&[data-state=closed]{--tw-exit-translate-x: -100%}}.data-\[state\=closed\]\:slide-out-to-right{&[data-state=closed]{--tw-exit-translate-x: 100%}}.data-\[state\=closed\]\:slide-out-to-top{&[data-state=closed]{--tw-exit-translate-y: -100%}}.data-\[state\=closed\]\:zoom-out-95{&[data-state=closed]{--tw-exit-scale: .95}}.data-\[state\=open\]\:rotate-90{&[data-state=open]{rotate:90deg}}.data-\[state\=open\]\:animate-in{&[data-state=open]{animation:enter var(--tw-duration,.15s)var(--tw-ease,ease)}}.data-\[state\=open\]\:bg-accent{&[data-state=open]{background-color:var(--accent)}}.data-\[state\=open\]\:bg-secondary{&[data-state=open]{background-color:var(--secondary)}}.data-\[state\=open\]\:text-muted-foreground{&[data-state=open]{color:var(--muted-foreground)}}.data-\[state\=open\]\:opacity-100{&[data-state=open]{opacity:100%}}.data-\[state\=open\]\:duration-500{&[data-state=open]{--tw-duration: .5s;transition-duration:.5s}}.data-\[state\=open\]\:fade-in-0{&[data-state=open]{--tw-enter-opacity: 0}}.data-\[state\=open\]\:slide-in-from-bottom{&[data-state=open]{--tw-enter-translate-y: 100%}}.data-\[state\=open\]\:slide-in-from-left{&[data-state=open]{--tw-enter-translate-x: -100%}}.data-\[state\=open\]\:slide-in-from-right{&[data-state=open]{--tw-enter-translate-x: 100%}}.data-\[state\=open\]\:slide-in-from-top{&[data-state=open]{--tw-enter-translate-y: -100%}}.data-\[state\=open\]\:zoom-in-95{&[data-state=open]{--tw-enter-scale: .95}}.data-\[state\=open\]\:hover\:bg-sidebar-accent{&[data-state=open]{&:hover{@media (hover: hover){background-color:var(--sidebar-accent)}}}}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground{&[data-state=open]{&:hover{@media (hover: hover){color:var(--sidebar-accent-foreground)}}}}.data-\[state\=selected\]\:bg-muted{&[data-state=selected]{background-color:var(--muted)}}.sm\:flex{@media (width >= 40rem){display:flex}}.sm\:max-w-lg{@media (width >= 40rem){max-width:var(--container-lg)}}.sm\:max-w-sm{@media (width >= 40rem){max-width:var(--container-sm)}}.sm\:flex-row{@media (width >= 40rem){flex-direction:row}}.sm\:justify-end{@media (width >= 40rem){justify-content:flex-end}}.sm\:gap-2\.5{@media (width >= 40rem){gap:calc(var(--spacing) * 2.5)}}.sm\:text-left{@media (width >= 40rem){text-align:left}}.md\:block{@media (width >= 48rem){display:block}}.md\:flex{@media (width >= 48rem){display:flex}}.md\:text-sm{@media (width >= 48rem){font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}}.md\:opacity-0{@media (width >= 48rem){opacity:0%}}.md\:peer-data-\[variant\=inset\]\:m-2{@media (width >= 48rem){&:is(:where(.peer)[data-variant=inset]~*){margin:calc(var(--spacing) * 2)}}}.md\:peer-data-\[variant\=inset\]\:ml-0{@media (width >= 48rem){&:is(:where(.peer)[data-variant=inset]~*){margin-left:calc(var(--spacing) * 0)}}}.md\:peer-data-\[variant\=inset\]\:rounded-xl{@media (width >= 48rem){&:is(:where(.peer)[data-variant=inset]~*){border-radius:var(--radius-xl)}}}.md\:peer-data-\[variant\=inset\]\:shadow-sm{@media (width >= 48rem){&:is(:where(.peer)[data-variant=inset]~*){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{@media (width >= 48rem){&:is(:where(.peer)[data-variant=inset]~*){&:is(:where(.peer)[data-state=collapsed]~*){margin-left:calc(var(--spacing) * 2)}}}}.md\:after\:hidden{@media (width >= 48rem){&:after{content:var(--tw-content);display:none}}}.dark\:border-input{&:is(.dark *){border-color:var(--input)}}.dark\:bg-destructive\/60{&:is(.dark *){background-color:var(--destructive);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}}.dark\:bg-input\/30{&:is(.dark *){background-color:var(--input);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}}.dark\:hover\:bg-accent\/50{&:is(.dark *){&:hover{@media (hover: hover){background-color:var(--accent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}}}}.dark\:hover\:bg-input\/50{&:is(.dark *){&:hover{@media (hover: hover){background-color:var(--input);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}}}.dark\:focus-visible\:ring-destructive\/40{&:is(.dark *){&:focus-visible{--tw-ring-color: var(--destructive);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}}}.dark\:aria-invalid\:ring-destructive\/40{&:is(.dark *){&[aria-invalid=true]{--tw-ring-color: var(--destructive);@supports (color: color-mix(in lab,red,red)){--tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent)}}}}.\[\&_svg\]\:pointer-events-none{& svg{pointer-events:none}}.\[\&_svg\]\:shrink-0{& svg{flex-shrink:0}}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4{& svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}.\[\&_tr\]\:border-b{& tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}.\[\&_tr\:last-child\]\:border-0{& tr:last-child{border-style:var(--tw-border-style);border-width:0px}}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0{&:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]{>[role=checkbox]{--tw-translate-y: 2px;translate:var(--tw-translate-x) var(--tw-translate-y)}}.\[\&\>button\]\:hidden{>button{display:none}}.\[\&\>span\:last-child\]\:truncate{>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.\[\&\>svg\]\:size-3\.5{>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}}.\[\&\>svg\]\:size-4{>svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}.\[\&\>svg\]\:shrink-0{>svg{flex-shrink:0}}.\[\&\>svg\]\:text-sidebar-accent-foreground{>svg{color:var(--sidebar-accent-foreground)}}.\[\&\>tr\]\:last\:border-b-0{>tr{&:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}}}.\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{[data-side=left][data-collapsible=offcanvas] &{right:calc(var(--spacing) * -2)}}.\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{[data-side=left][data-state=collapsed] &{cursor:e-resize}}.\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{[data-side=right][data-collapsible=offcanvas] &{left:calc(var(--spacing) * -2)}}.\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{[data-side=right][data-state=collapsed] &{cursor:w-resize}}}:root{--background: hsl(0, 0%, 100%);--foreground: hsl(222.2, 47.4%, 11.2%);--card: hsl(0, 0%, 100%);--card-foreground: hsl(222.2, 47.4%, 11.2%);--popover: hsl(0, 0%, 100%);--popover-foreground: hsl(222.2, 47.4%, 11.2%);--primary: hsl(222.2, 47.4%, 11.2%);--primary-foreground: hsl(210, 40%, 98%);--secondary: hsl(210, 40%, 96.1%);--secondary-foreground: hsl(222.2, 47.4%, 11.2%);--muted: hsl(210, 40%, 96.1%);--muted-foreground: hsl(215.4, 16.3%, 46.9%);--accent: hsl(210, 40%, 96.1%);--accent-foreground: hsl(222.2, 47.4%, 11.2%);--destructive: hsl(0, 100%, 50%);--destructive-foreground: hsl(210, 40%, 98%);--border: hsl(214.3, 31.8%, 91.4%);--input: hsl(214.3, 31.8%, 91.4%);--ring: hsl(215, 20.2%, 65.1%);--sidebar: hsl(0 0% 98%);--sidebar-foreground: hsl(240 5.3% 26.1%);--sidebar-primary: hsl(240 5.9% 10%);--sidebar-primary-foreground: hsl(0 0% 98%);--sidebar-accent: hsl(240 4.8% 95.9%);--sidebar-accent-foreground: hsl(240 5.9% 10%);--sidebar-border: hsl(220 13% 91%);--sidebar-ring: hsl(217.2 91.2% 59.8%);--radius: .5rem}.dark{--background: hsl(224, 71%, 4%);--foreground: hsl(213, 31%, 91%);--card: hsl(224, 71%, 4%);--card-foreground: hsl(213, 31%, 91%);--popover: hsl(224, 71%, 4%);--popover-foreground: hsl(215, 20.2%, 65.1%);--primary: hsl(210, 40%, 98%);--primary-foreground: hsl(222.2, 47.4%, 1.2%);--secondary: hsl(222.2, 47.4%, 11.2%);--secondary-foreground: hsl(210, 40%, 98%);--muted: hsl(223, 47%, 11%);--muted-foreground: hsl(215.4, 16.3%, 56.9%);--accent: hsl(216, 34%, 17%);--accent-foreground: hsl(210, 40%, 98%);--destructive: hsl(0, 63%, 31%);--destructive-foreground: hsl(210, 40%, 98%);--border: hsl(216, 34%, 17%);--input: hsl(216, 34%, 17%);--ring: hsl(216, 34%, 17%);--sidebar: hsl(240 5.9% 10%);--sidebar-foreground: hsl(240 4.8% 95.9%);--sidebar-primary: hsl(224.3 76.3% 48%);--sidebar-primary-foreground: hsl(0 0% 100%);--sidebar-accent: hsl(240 3.7% 15.9%);--sidebar-accent-foreground: hsl(240 4.8% 95.9%);--sidebar-border: hsl(240 3.7% 15.9%);--sidebar-ring: hsl(217.2 91.2% 59.8%)}@layer base{*,:after,:before,::backdrop,::file-selector-button{border-color:var(--color-gray-200, currentcolor)}}@layer base{*{border-color:var(--border)}body{background-color:var(--background);font-family:var(--font-sans);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer base{*{border-color:var(--border);outline-color:var(--ring);@supports (color: color-mix(in lab,red,red)){outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer base{*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground)}}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-ordinal{syntax: "*"; inherits: false;}@property --tw-slashed-zero{syntax: "*"; inherits: false;}@property --tw-numeric-figure{syntax: "*"; inherits: false;}@property --tw-numeric-spacing{syntax: "*"; inherits: false;}@property --tw-numeric-fraction{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-ease{syntax: "*"; inherits: false;}@property --tw-content{syntax: "*"; initial-value: ""; inherits: false;}@keyframes pulse{50%{opacity:.5}}@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))}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-border-style: solid;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-ordinal: initial;--tw-slashed-zero: initial;--tw-numeric-figure: initial;--tw-numeric-spacing: initial;--tw-numeric-fraction: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-outline-style: solid;--tw-duration: initial;--tw-ease: initial;--tw-content: ""}}}
|
|
2
|
+
/*! tailwindcss v4.1.2 | MIT License | https://tailwindcss.com */
|
package/dist/index.d.ts
CHANGED
|
@@ -1,31 +1,160 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { LucideIcon } from 'lucide-react';
|
|
4
|
+
export { Link, useLocation, useNavigate, useParams } from 'react-router';
|
|
4
5
|
|
|
5
|
-
type
|
|
6
|
-
|
|
7
|
-
category?: string;
|
|
8
|
-
};
|
|
9
|
-
type ReactNodeResource = BaseResource & {
|
|
6
|
+
type CommonPageResource = {
|
|
7
|
+
path: string;
|
|
10
8
|
type: "component";
|
|
11
9
|
component: () => ReactNode;
|
|
10
|
+
subResources?: Array<SubPageResource>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* A resource that can be included in the root-level content in the navigation.
|
|
14
|
+
*/
|
|
15
|
+
type RootPageResource = CommonPageResource & {
|
|
16
|
+
_resourceType: "root-resource";
|
|
17
|
+
meta: {
|
|
18
|
+
title: string;
|
|
19
|
+
category: string;
|
|
20
|
+
navigatable?: boolean;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* A resource that can be included in the sub-content in the root resource.
|
|
25
|
+
*
|
|
26
|
+
* This resource does not have `category` metadata.
|
|
27
|
+
*/
|
|
28
|
+
type SubPageResource = CommonPageResource & {
|
|
29
|
+
_resourceType: "sub-resource";
|
|
30
|
+
meta: {
|
|
31
|
+
title: string;
|
|
32
|
+
};
|
|
12
33
|
};
|
|
13
|
-
type
|
|
34
|
+
type RootPageResources = Array<RootPageResource>;
|
|
14
35
|
type RootConfiguration = {
|
|
15
|
-
resources:
|
|
16
|
-
basePath
|
|
36
|
+
resources: RootPageResources;
|
|
37
|
+
basePath?: string;
|
|
17
38
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
39
|
+
type ResourceMeta = {
|
|
40
|
+
/**
|
|
41
|
+
* Title of the resource used in navigation.
|
|
42
|
+
*
|
|
43
|
+
* If not provided, the title will be generated from the path.
|
|
44
|
+
*/
|
|
45
|
+
title?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Category of the resource used in navigation.
|
|
48
|
+
*
|
|
49
|
+
* If not provided, the category will be "Uncategorized".
|
|
50
|
+
*/
|
|
51
|
+
category?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Whether the resource is navigatable.
|
|
54
|
+
*
|
|
55
|
+
* If not provided, the resource will be included in navigation if the path does not contain dynamic parameters.
|
|
56
|
+
*/
|
|
57
|
+
navigatable?: boolean;
|
|
58
|
+
};
|
|
59
|
+
type CommonResourceInput = {
|
|
60
|
+
/**
|
|
61
|
+
* Path of the resource.
|
|
62
|
+
*
|
|
63
|
+
* The path will be used to generate the URL for the resource.
|
|
64
|
+
* This also supports dynamic parameters using the syntax `:paramName`.
|
|
65
|
+
*/
|
|
66
|
+
path: string;
|
|
67
|
+
/**
|
|
68
|
+
* Sub-resources of the resource.
|
|
69
|
+
*/
|
|
70
|
+
subResources?: Array<SubPageResource>;
|
|
71
|
+
};
|
|
72
|
+
type CommonRootResourceInput = CommonResourceInput & {
|
|
73
|
+
/**
|
|
74
|
+
* Metadata for the resource.
|
|
75
|
+
*/
|
|
76
|
+
meta?: ResourceMeta;
|
|
22
77
|
};
|
|
78
|
+
type RootReactResourceInput = {
|
|
79
|
+
/**
|
|
80
|
+
* React component to render.
|
|
81
|
+
*/
|
|
82
|
+
component: () => ReactNode;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Define a root-level resource that renders a React component.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```
|
|
89
|
+
* // Define a minimal resource
|
|
90
|
+
* defineReactResource({
|
|
91
|
+
* path: "custom-page",
|
|
92
|
+
* component: () => {
|
|
93
|
+
* return (
|
|
94
|
+
* <div>
|
|
95
|
+
* <p>This is a custom page.</p>
|
|
96
|
+
* </div>
|
|
97
|
+
* );
|
|
98
|
+
* },
|
|
99
|
+
* });
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
declare function defineResource(props: CommonRootResourceInput & RootReactResourceInput): RootPageResource;
|
|
103
|
+
type CommonSubResourceInput = CommonResourceInput & {
|
|
104
|
+
meta?: Pick<ResourceMeta, "title">;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Define a sub-level resource that renders a React component.
|
|
108
|
+
*
|
|
109
|
+
* This resource does not have `category` in meta field.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```
|
|
113
|
+
* // Define a minimal resource
|
|
114
|
+
* defineReactResource({
|
|
115
|
+
* path: "custom-page",
|
|
116
|
+
* component: () => {
|
|
117
|
+
* return (
|
|
118
|
+
* <div>
|
|
119
|
+
* <p>This is a custom page.</p>
|
|
120
|
+
* </div>
|
|
121
|
+
* );
|
|
122
|
+
* },
|
|
123
|
+
* subResources: [
|
|
124
|
+
* defineSubResource({
|
|
125
|
+
* path: "sub-page",
|
|
126
|
+
* component: () => {
|
|
127
|
+
* return (
|
|
128
|
+
* <div>
|
|
129
|
+
* <p>This is a sub page.</p>
|
|
130
|
+
* </div>
|
|
131
|
+
* );
|
|
132
|
+
* },
|
|
133
|
+
* }),
|
|
134
|
+
* ]
|
|
135
|
+
* });
|
|
136
|
+
* ```
|
|
137
|
+
*
|
|
138
|
+
*/
|
|
139
|
+
declare function defineSubResource(props: CommonSubResourceInput & RootReactResourceInput): SubPageResource;
|
|
140
|
+
|
|
23
141
|
type AppShellProps = {
|
|
142
|
+
/**
|
|
143
|
+
* App shell title
|
|
144
|
+
*/
|
|
24
145
|
title?: string;
|
|
25
|
-
|
|
146
|
+
/**
|
|
147
|
+
* App shell configurations
|
|
148
|
+
*/
|
|
26
149
|
configurations: {
|
|
150
|
+
/**
|
|
151
|
+
* Base path for the app shell
|
|
152
|
+
*/
|
|
27
153
|
basePath?: string;
|
|
28
|
-
|
|
154
|
+
/**
|
|
155
|
+
* Navigation configuration
|
|
156
|
+
*/
|
|
157
|
+
resources: RootPageResources;
|
|
29
158
|
};
|
|
30
159
|
};
|
|
31
160
|
declare const AppShell: (props: React.PropsWithChildren<AppShellProps>) => react_jsx_runtime.JSX.Element;
|
|
@@ -58,10 +187,9 @@ type NavItem = {
|
|
|
58
187
|
|
|
59
188
|
type AppShellContextType = {
|
|
60
189
|
title?: string;
|
|
61
|
-
pageParams: AppShellPageParams;
|
|
62
190
|
configurations: RootConfiguration;
|
|
63
191
|
navItems: Array<NavItem>;
|
|
64
192
|
};
|
|
65
193
|
declare const useAppShell: () => AppShellContextType;
|
|
66
194
|
|
|
67
|
-
export { AppShell, type
|
|
195
|
+
export { AppShell, type AppShellProps, DefaultSidebar, SidebarLayoutContainer, defineResource, defineSubResource, useAppShell };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Table as Xe}from"lucide-react";import{useMemo as Ye}from"react";import{createContext as Oe,useContext as We}from"react";var I="dashboard",H=Oe({pageParams:{},navItems:[],configurations:{basePath:I,resources:{}}}),R=()=>We(H);import{jsx as Ge}from"react/jsx-runtime";var Ve=e=>{let t="resources",a=e.configurations.basePath||I,r=Ye(()=>{let i=e.configurations.resources,u=Object.keys(i).map(p=>({title:i[p].title,category:i[p].category||"Uncategorized",url:`/${a}/${t}/${p}`})).reduce((p,m)=>{let g=m.category||"Uncategorized";return p.has(g)||p.set(g,[]),p.get(g).push(m),p},new Map);return Array.from(u.entries()).map(([p,m])=>({title:p,url:"#",icon:Xe,isActive:!0,items:m}))},[e.configurations.resources]);return Ge(H.Provider,{value:{title:e.title,pageParams:e.pageParams,configurations:{...e.configurations,basePath:a},navItems:r},children:e.children})};import*as S from"@radix-ui/react-collapsible";var be=S.Root,he=S.CollapsibleTrigger,we=S.CollapsibleContent;import*as n from"react";import{Slot as z}from"@radix-ui/react-slot";import{cva as it}from"class-variance-authority";import{PanelLeft as nt}from"lucide-react";import*as _ from"react";var D=768;function ve(){let[e,t]=_.useState(void 0);return _.useEffect(()=>{let a=window.matchMedia(`(max-width: ${D-1}px)`),r=()=>{t(window.innerWidth<D)};return a.addEventListener("change",r),t(window.innerWidth<D),()=>a.removeEventListener("change",r)},[]),!!e}import{clsx as Ke}from"clsx";import{twMerge as $e}from"tailwind-merge";function o(...e){return $e(Ke(e))}import*as xe from"react";import{Slot as je}from"@radix-ui/react-slot";import{cva as Fe}from"class-variance-authority";import{jsx as qe}from"react/jsx-runtime";var Ue=Fe("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),O=xe.forwardRef(({className:e,variant:t,size:a,asChild:r=!1,...i},l)=>qe(r?je:"button",{className:o(Ue({variant:t,size:a,className:e})),ref:l,...i}));O.displayName="Button";import*as ye from"react";import{jsx as Qe}from"react/jsx-runtime";var W=ye.forwardRef(({className:e,type:t,...a},r)=>Qe("input",{type:t,className:o("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...a}));W.displayName="Input";import*as Re from"react";import*as X from"@radix-ui/react-separator";import{jsx as Je}from"react/jsx-runtime";var T=Re.forwardRef(({className:e,orientation:t="horizontal",decorative:a=!0,...r},i)=>Je(X.Root,{ref:i,decorative:a,orientation:t,className:o("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));T.displayName=X.Root.displayName;import*as M from"react";import*as c from"@radix-ui/react-dialog";import{cva as Ze}from"class-variance-authority";import{X as et}from"lucide-react";import{jsx as y,jsxs as Y}from"react/jsx-runtime";var Se=c.Root;var tt=c.Portal,ke=M.forwardRef(({className:e,...t},a)=>y(c.Overlay,{className:o("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:a}));ke.displayName=c.Overlay.displayName;var at=Ze("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),V=M.forwardRef(({side:e="right",className:t,children:a,...r},i)=>Y(tt,{children:[y(ke,{}),Y(c.Content,{ref:i,className:o(at({side:e}),t),...r,children:[Y(c.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[y(et,{className:"h-4 w-4"}),y("span",{className:"sr-only",children:"Close"})]}),a]})]}));V.displayName=c.Content.displayName;var G=({className:e,...t})=>y("div",{className:o("flex flex-col space-y-2 text-center sm:text-left",e),...t});G.displayName="SheetHeader";var rt=({className:e,...t})=>y("div",{className:o("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});rt.displayName="SheetFooter";var K=M.forwardRef(({className:e,...t},a)=>y(c.Title,{ref:a,className:o("text-lg font-semibold text-foreground",e),...t}));K.displayName=c.Title.displayName;var $=M.forwardRef(({className:e,...t},a)=>y(c.Description,{ref:a,className:o("text-sm text-muted-foreground",e),...t}));$.displayName=c.Description.displayName;import{jsx as ot}from"react/jsx-runtime";function j({className:e,...t}){return ot("div",{className:o("animate-pulse rounded-md bg-primary/10",e),...t})}import*as Pe from"react";import*as f from"@radix-ui/react-tooltip";import{jsx as Ce}from"react/jsx-runtime";var Ne=f.Provider,Te=f.Root,Me=f.Trigger,F=Pe.forwardRef(({className:e,sideOffset:t=4,...a},r)=>Ce(f.Portal,{children:Ce(f.Content,{ref:r,sideOffset:t,className:o("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...a})}));F.displayName=f.Content.displayName;import{jsx as s,jsxs as k}from"react/jsx-runtime";var st="sidebar_state",dt=60*60*24*7,lt="16rem",ct="18rem",pt="3rem",ut="b",ze=n.createContext(null);function A(){let e=n.useContext(ze);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}var U=n.forwardRef(({defaultOpen:e=!0,open:t,onOpenChange:a,className:r,style:i,children:l,...u},p)=>{let m=ve(),[g,v]=n.useState(!1),[E,He]=n.useState(e),N=t??E,B=n.useCallback(b=>{let x=typeof b=="function"?b(N):b;a?a(x):He(x),document.cookie=`${st}=${x}; path=/; max-age=${dt}`},[a,N]),L=n.useCallback(()=>m?v(b=>!b):B(b=>!b),[m,B,v]);n.useEffect(()=>{let b=x=>{x.key===ut&&(x.metaKey||x.ctrlKey)&&(x.preventDefault(),L())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[L]);let ge=N?"expanded":"collapsed",De=n.useMemo(()=>({state:ge,open:N,setOpen:B,isMobile:m,openMobile:g,setOpenMobile:v,toggleSidebar:L}),[ge,N,B,m,g,v,L]);return s(ze.Provider,{value:De,children:s(Ne,{delayDuration:0,children:s("div",{style:{"--sidebar-width":lt,"--sidebar-width-icon":pt,...i},className:o("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",r),ref:p,...u,children:l})})})});U.displayName="SidebarProvider";var q=n.forwardRef(({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:r,children:i,...l},u)=>{let{isMobile:p,state:m,openMobile:g,setOpenMobile:v}=A();return a==="none"?s("div",{className:o("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",r),ref:u,...l,children:i}):p?s(Se,{open:g,onOpenChange:v,...l,children:k(V,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":ct},side:e,children:[k(G,{className:"sr-only",children:[s(K,{children:"Sidebar"}),s($,{children:"Displays the mobile sidebar."})]}),s("div",{className:"flex h-full w-full flex-col",children:i})]})}):k("div",{ref:u,className:"group peer hidden text-sidebar-foreground md:block","data-state":m,"data-collapsible":m==="collapsed"?a:"","data-variant":t,"data-side":e,children:[s("div",{className:o("relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon]")}),s("div",{className:o("fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex",e==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]":"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",r),...l,children:s("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:i})})]})});q.displayName="Sidebar";var Q=n.forwardRef(({className:e,onClick:t,...a},r)=>{let{toggleSidebar:i}=A();return k(O,{ref:r,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("h-7 w-7",e),onClick:l=>{t?.(l),i()},...a,children:[s(nt,{}),s("span",{className:"sr-only",children:"Toggle Sidebar"})]})});Q.displayName="SidebarTrigger";var mt=n.forwardRef(({className:e,...t},a)=>{let{toggleSidebar:r}=A();return s("button",{ref:a,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:r,title:"Toggle Sidebar",className:o("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",e),...t})});mt.displayName="SidebarRail";var J=n.forwardRef(({className:e,...t},a)=>s("main",{ref:a,className:o("relative flex w-full flex-1 flex-col bg-background","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",e),...t}));J.displayName="SidebarInset";var ft=n.forwardRef(({className:e,...t},a)=>s(W,{ref:a,"data-sidebar":"input",className:o("h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",e),...t}));ft.displayName="SidebarInput";var Z=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"header",className:o("flex flex-col gap-2 p-2",e),...t}));Z.displayName="SidebarHeader";var gt=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"footer",className:o("flex flex-col gap-2 p-2",e),...t}));gt.displayName="SidebarFooter";var bt=n.forwardRef(({className:e,...t},a)=>s(T,{ref:a,"data-sidebar":"separator",className:o("mx-2 w-auto bg-sidebar-border",e),...t}));bt.displayName="SidebarSeparator";var ee=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"content",className:o("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...t}));ee.displayName="SidebarContent";var te=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"group",className:o("relative flex w-full min-w-0 flex-col p-2",e),...t}));te.displayName="SidebarGroup";var ht=n.forwardRef(({className:e,asChild:t=!1,...a},r)=>s(t?z:"div",{ref:r,"data-sidebar":"group-label",className:o("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",e),...a}));ht.displayName="SidebarGroupLabel";var wt=n.forwardRef(({className:e,asChild:t=!1,...a},r)=>s(t?z:"button",{ref:r,"data-sidebar":"group-action",className:o("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",e),...a}));wt.displayName="SidebarGroupAction";var vt=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"group-content",className:o("w-full text-sm",e),...t}));vt.displayName="SidebarGroupContent";var ae=n.forwardRef(({className:e,...t},a)=>s("ul",{ref:a,"data-sidebar":"menu",className:o("flex w-full min-w-0 flex-col gap-1",e),...t}));ae.displayName="SidebarMenu";var re=n.forwardRef(({className:e,...t},a)=>s("li",{ref:a,"data-sidebar":"menu-item",className:o("group/menu-item relative",e),...t}));re.displayName="SidebarMenuItem";var xt=it("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),oe=n.forwardRef(({asChild:e=!1,isActive:t=!1,variant:a="default",size:r="default",tooltip:i,className:l,...u},p)=>{let m=e?z:"button",{isMobile:g,state:v}=A(),E=s(m,{ref:p,"data-sidebar":"menu-button","data-size":r,"data-active":t,className:o(xt({variant:a,size:r}),l),...u});return i?(typeof i=="string"&&(i={children:i}),k(Te,{children:[s(Me,{asChild:!0,children:E}),s(F,{side:"right",align:"center",hidden:v!=="collapsed"||g,...i})]})):E});oe.displayName="SidebarMenuButton";var ie=n.forwardRef(({className:e,asChild:t=!1,showOnHover:a=!1,...r},i)=>s(t?z:"button",{ref:i,"data-sidebar":"menu-action",className:o("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",e),...r}));ie.displayName="SidebarMenuAction";var yt=n.forwardRef(({className:e,...t},a)=>s("div",{ref:a,"data-sidebar":"menu-badge",className:o("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",e),...t}));yt.displayName="SidebarMenuBadge";var Rt=n.forwardRef(({className:e,showIcon:t=!1,...a},r)=>{let i=n.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return k("div",{ref:r,"data-sidebar":"menu-skeleton",className:o("flex h-8 items-center gap-2 rounded-md px-2",e),...a,children:[t&&s(j,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),s(j,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":i}})]})});Rt.displayName="SidebarMenuSkeleton";var ne=n.forwardRef(({className:e,...t},a)=>s("ul",{ref:a,"data-sidebar":"menu-sub",className:o("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e),...t}));ne.displayName="SidebarMenuSub";var se=n.forwardRef(({...e},t)=>s("li",{ref:t,...e}));se.displayName="SidebarMenuSubItem";var de=n.forwardRef(({asChild:e=!1,size:t="md",isActive:a,className:r,...i},l)=>s(e?z:"a",{ref:l,"data-sidebar":"menu-sub-button","data-size":t,"data-active":a,className:o("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",r),...i}));de.displayName="SidebarMenuSubButton";import{ChevronRight as _t}from"lucide-react";import{jsx as Be}from"react/jsx-runtime";var St=e=>({render:a=>{let r=e.resources[a];if(!r)return{title:"Not found",Component:()=>Be("p",{children:"Resource not found"})};switch(r.type){case"component":return{title:r.title,Component:r.component}}}}),Ee=e=>{let t=St(e);return{resolve:r=>{if(r)return t.render(r);let i=Object.keys(e.resources);return i.length<=0?{title:"Welcome to Fabrix",Component:()=>Be("p",{children:"Add your GraphQL resources from configuration at first!"})}:t.render(i[0])}}};import{useTheme as kt}from"next-themes";import{Toaster as Ct}from"sonner";import{jsx as Pt}from"react/jsx-runtime";var Le=({...e})=>{let{theme:t="system"}=kt();return Pt(Ct,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};import{jsx as C,jsxs as Ae}from"react/jsx-runtime";var _e=e=>Ae("div",{className:"p-4 rounded-sm border shadow",children:[C("p",{className:"font-semibold leading-none tracking-tight",children:e.title}),C("div",{className:"pt-4",children:e.children})]}),Nt=(e,t,a)=>{let r=Object.keys(t.resources);if(!e.props||e.props.length<=0||r.length<=0)return null;switch(e.props[0]){case a:return e.props.length===2?e.props[1]:null;default:throw new Error("Invalid page params")}},le=()=>{let{pageParams:e,configurations:t}=R(),a=Nt(e,t,"resources");if(!a)return C(_e,{title:"Welcome to AppShell",children:C("p",{children:"Add your GraphQL resources from configuration at first!"})});let{resolve:r}=Ee(t),i=r(a),l=i.Component;return Ae(_e,{title:i.title,children:[C(l,{}),C(Le,{})]})};import*as P from"react";import{Slot as Tt}from"@radix-ui/react-slot";import{ChevronRight as Mt,MoreHorizontal as zt}from"lucide-react";import{jsx as h,jsxs as Lt}from"react/jsx-runtime";var ce=P.forwardRef(({...e},t)=>h("nav",{ref:t,"aria-label":"breadcrumb",...e}));ce.displayName="Breadcrumb";var pe=P.forwardRef(({className:e,...t},a)=>h("ol",{ref:a,className:o("flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",e),...t}));pe.displayName="BreadcrumbList";var ue=P.forwardRef(({className:e,...t},a)=>h("li",{ref:a,className:o("inline-flex items-center gap-1.5",e),...t}));ue.displayName="BreadcrumbItem";var me=P.forwardRef(({asChild:e,className:t,...a},r)=>h(e?Tt:"a",{ref:r,className:o("transition-colors hover:text-foreground",t),...a}));me.displayName="BreadcrumbLink";var Et=P.forwardRef(({className:e,...t},a)=>h("span",{ref:a,role:"link","aria-disabled":"true","aria-current":"page",className:o("font-normal text-foreground",e),...t}));Et.displayName="BreadcrumbPage";var fe=({children:e,className:t,...a})=>h("li",{role:"presentation","aria-hidden":"true",className:o("[&>svg]:w-3.5 [&>svg]:h-3.5",t),...a,children:e??h(Mt,{})});fe.displayName="BreadcrumbSeparator";var Bt=({className:e,...t})=>Lt("span",{role:"presentation","aria-hidden":"true",className:o("flex h-9 w-9 items-center justify-center",e),...t,children:[h(zt,{className:"h-4 w-4"}),h("span",{className:"sr-only",children:"More"})]});Bt.displayName="BreadcrumbElipssis";import{Fragment as Ht,jsx as d,jsxs as w}from"react/jsx-runtime";var At=e=>{let t=e.children?e.children({Outlet:le}):null;return d(U,{className:"flex flex-col",children:w("div",{className:"flex flex-1",children:[e.sidebar??d(Ie,{}),w(J,{className:"w-[calc(100%-var(--sidebar-width))]",children:[d("header",{className:"flex h-16 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12",children:d("div",{className:"flex w-full items-center justify-between",children:w("div",{className:"flex items-center gap-2 px-4",children:[d(Q,{className:"-ml-1"}),d(T,{orientation:"vertical",className:"mr-2 h-4"}),d(It,{})]})})}),d("div",{className:"flex flex-col gap-4 p-4",children:t??d(le,{})})]})]})})},Ie=e=>{let{title:t,navItems:a}=R(),r=d(Z,{children:d("h1",{className:"text-lg mb-4 mt-2 px-2",children:t})});return w(q,{children:[e.header??r,d(ee,{children:d(te,{children:d(ae,{children:a.map(l=>d(be,{asChild:!0,defaultOpen:l.isActive,children:w(re,{children:[d(oe,{asChild:!0,tooltip:l.title,children:w("a",{href:l.url,children:[d(l.icon,{}),d("span",{children:l.title})]})}),l.items?.length?w(Ht,{children:[d(he,{asChild:!0,children:w(ie,{className:"data-[state=open]:rotate-90",children:[d(_t,{}),d("span",{className:"sr-only",children:"Toggle"})]})}),d(we,{children:d(ne,{children:l.items?.map(u=>d(se,{children:d(de,{asChild:!0,children:d("a",{href:u.url,children:d("span",{children:u.title})})})},u.title))})})]}):null]})},l.title))})})}),e.footer??null]})},It=()=>{let{pageParams:e,configurations:t}=R();return d(ce,{children:d(pe,{children:e.props?.map((a,r)=>w("div",{className:"inline-flex items-center gap-3",children:[d(ue,{children:d(me,{href:`/${t.basePath}/${e.props?.slice(0,r+1).join("/")}`,children:a})}),r<(e.props?.length??0)-1&&d(fe,{})]},r))})})};function Dt(e){return e}export{Ve as AppShell,Ie as DefaultSidebar,At as SidebarLayoutContainer,Dt as defineResource,R as useAppShell};
|
|
1
|
+
import{Table as $e}from"lucide-react";import{useMemo as He}from"react";import{createContext as _e,useContext as Ae}from"react";var _=_e({navItems:[],configurations:{resources:[]}}),x=()=>Ae(_);import{createBrowserRouter as De,RouterProvider as Le}from"react-router";import{Outlet as Be}from"react-router";import{Toaster as Oe}from"sonner";import{Fragment as Ee,jsx as y,jsxs as F}from"react/jsx-runtime";var A=e=>F("div",{className:"p-4 rounded-sm border shadow-xs",children:[y("p",{className:"font-semibold leading-none tracking-tight",children:e.title}),y("div",{className:"pt-4",children:e.children})]}),j=()=>y(A,{title:"Welcome to AppShell",children:y("p",{children:"Add your GraphQL resources from configuration at first!"})}),B=()=>F(Ee,{children:[y(Be,{}),y(Oe,{})]});import{jsx as We}from"react/jsx-runtime";var G=e=>{let t={index:!0,Component:e.component};return{path:e.path,...e.subResources&&e.subResources.length>0?{children:[t,...e.subResources.map(G)]}:{children:[t]}}},K=e=>{let{configurations:t}=x(),a=t.resources.reduce((s,n)=>{let d={index:!0,Component:n.component};return[...s,{path:n.path,...n.subResources&&n.subResources.length>0?{children:[d,...n.subResources.map(G)]}:{children:[d]}}]},[]),r=De([{path:t.basePath,element:e.children,children:[{index:!0,Component:j},{path:k,children:a}]}]);return We(Le,{router:r})};import{jsx as U}from"react/jsx-runtime";var k="resources",Ve=e=>{let t=e.configurations.basePath,a=He(()=>{let n=e.configurations.resources.map(d=>({title:d.meta.title,category:d.meta.category,url:t?`/${t}/${k}/${d.path}`:`/${k}/${d.path}`})).reduce((d,p)=>{let b=p.category;return d.has(b)||d.set(b,[]),d.get(b).push(p),d},new Map);return Array.from(n.entries()).map(([d,p])=>({title:d,url:"#",icon:$e,isActive:!0,items:p}))},[e.configurations.resources]);return U(_.Provider,{value:{title:e.title,configurations:{...e.configurations,basePath:t},navItems:a},children:U(K,{children:e.children})})};import*as C from"@radix-ui/react-collapsible";import{jsx as O}from"react/jsx-runtime";function q({...e}){return O(C.Root,{"data-slot":"collapsible",...e})}function X({...e}){return O(C.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...e})}function Q({...e}){return O(C.CollapsibleContent,{"data-slot":"collapsible-content",...e})}import{useLocation as pt}from"react-router";import*as u from"react";import{Slot as $}from"@radix-ui/react-slot";import{cva as et}from"class-variance-authority";import{PanelLeftIcon as tt}from"lucide-react";import*as I from"react";var E=768;function Y(){let[e,t]=I.useState(void 0);return I.useEffect(()=>{let a=window.matchMedia(`(max-width: ${E-1}px)`),r=()=>{t(window.innerWidth<E)};return a.addEventListener("change",r),t(window.innerWidth<E),()=>a.removeEventListener("change",r)},[]),!!e}import{clsx as je}from"clsx";import{twMerge as Fe}from"tailwind-merge";function o(...e){return Fe(je(e))}import{Slot as Ge}from"@radix-ui/react-slot";import{cva as Ke}from"class-variance-authority";import{jsx as qe}from"react/jsx-runtime";var Ue=Ke("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function J({className:e,variant:t,size:a,asChild:r=!1,...s}){return qe(r?Ge:"button",{"data-slot":"button",className:o(Ue({variant:t,size:a,className:e})),...s})}import{jsx as ea}from"react/jsx-runtime";import*as Z from"@radix-ui/react-separator";import{jsx as Xe}from"react/jsx-runtime";function D({className:e,orientation:t="horizontal",decorative:a=!0,...r}){return Xe(Z.Root,{"data-slot":"separator-root",decorative:a,orientation:t,className:o("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...r})}import*as c from"@radix-ui/react-dialog";import{XIcon as Qe}from"lucide-react";import{jsx as h,jsxs as L}from"react/jsx-runtime";function ee({...e}){return h(c.Root,{"data-slot":"sheet",...e})}function Ye({...e}){return h(c.Portal,{"data-slot":"sheet-portal",...e})}function Je({className:e,...t}){return h(c.Overlay,{"data-slot":"sheet-overlay",className:o("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function te({className:e,children:t,side:a="right",...r}){return L(Ye,{children:[h(Je,{}),L(c.Content,{"data-slot":"sheet-content",className:o("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500",a==="right"&&"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm",a==="left"&&"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm",a==="top"&&"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b",a==="bottom"&&"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t",e),...r,children:[t,L(c.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",children:[h(Qe,{className:"size-4"}),h("span",{className:"sr-only",children:"Close"})]})]})]})}function ae({className:e,...t}){return h("div",{"data-slot":"sheet-header",className:o("flex flex-col gap-1.5 p-4",e),...t})}function re({className:e,...t}){return h(c.Title,{"data-slot":"sheet-title",className:o("text-foreground font-semibold",e),...t})}function oe({className:e,...t}){return h(c.Description,{"data-slot":"sheet-description",className:o("text-muted-foreground text-sm",e),...t})}import{jsx as pa}from"react/jsx-runtime";import*as g from"@radix-ui/react-tooltip";import{jsx as S,jsxs as Ze}from"react/jsx-runtime";function W({delayDuration:e=0,...t}){return S(g.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function ie({...e}){return S(W,{children:S(g.Root,{"data-slot":"tooltip",...e})})}function ne({...e}){return S(g.Trigger,{"data-slot":"tooltip-trigger",...e})}function se({className:e,sideOffset:t=0,children:a,...r}){return S(g.Portal,{children:Ze(g.Content,{"data-slot":"tooltip-content",sideOffset:t,className:o("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...r,children:[a,S(g.Arrow,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}import{jsx as l,jsxs as z}from"react/jsx-runtime";var at="sidebar_state",rt=60*60*24*7,ot="16rem",it="18rem",nt="3rem",st="b",le=u.createContext(null);function H(){let e=u.useContext(le);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}function de({defaultOpen:e=!0,open:t,onOpenChange:a,className:r,style:s,children:n,...d}){let p=Y(),[b,v]=u.useState(!1),[N,Te]=u.useState(e),P=t??N,M=u.useCallback(m=>{let w=typeof m=="function"?m(P):m;a?a(w):Te(w),document.cookie=`${at}=${w}; path=/; max-age=${rt}`},[a,P]),T=u.useCallback(()=>p?v(m=>!m):M(m=>!m),[p,M,v]);u.useEffect(()=>{let m=w=>{w.key===st&&(w.metaKey||w.ctrlKey)&&(w.preventDefault(),T())};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[T]);let V=P?"expanded":"collapsed",Ie=u.useMemo(()=>({state:V,open:P,setOpen:M,isMobile:p,openMobile:b,setOpenMobile:v,toggleSidebar:T}),[V,P,M,p,b,v,T]);return l(le.Provider,{value:Ie,children:l(W,{delayDuration:0,children:l("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":ot,"--sidebar-width-icon":nt,...s},className:o("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",r),...d,children:n})})})}function ce({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:r,children:s,...n}){let{isMobile:d,state:p,openMobile:b,setOpenMobile:v}=H();return a==="none"?l("div",{"data-slot":"sidebar",className:o("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",r),...n,children:s}):d?l(ee,{open:b,onOpenChange:v,...n,children:z(te,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",style:{"--sidebar-width":it},side:e,children:[z(ae,{className:"sr-only",children:[l(re,{children:"Sidebar"}),l(oe,{children:"Displays the mobile sidebar."})]}),l("div",{className:"flex h-full w-full flex-col",children:s})]})}):z("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":p,"data-collapsible":p==="collapsed"?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[l("div",{"data-slot":"sidebar-gap",className:o("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),l("div",{"data-slot":"sidebar-container",className:o("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",e==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",r),...n,children:l("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",children:s})})]})}function pe({className:e,onClick:t,...a}){let{toggleSidebar:r}=H();return z(J,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:o("size-7",e),onClick:s=>{t?.(s),r()},...a,children:[l(tt,{}),l("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function ue({className:e,...t}){return l("main",{"data-slot":"sidebar-inset",className:o("bg-background relative flex w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function ge({className:e,...t}){return l("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:o("flex flex-col gap-2 p-2",e),...t})}function be({className:e,...t}){return l("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:o("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function me({className:e,...t}){return l("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:o("relative flex w-full min-w-0 flex-col p-2",e),...t})}function he({className:e,...t}){return l("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:o("flex w-full min-w-0 flex-col gap-1",e),...t})}function fe({className:e,...t}){return l("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:o("group/menu-item relative",e),...t})}var lt=et("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ve({asChild:e=!1,isActive:t=!1,variant:a="default",size:r="default",tooltip:s,className:n,...d}){let p=e?$:"button",{isMobile:b,state:v}=H(),N=l(p,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":r,"data-active":t,className:o(lt({variant:a,size:r}),n),...d});return s?(typeof s=="string"&&(s={children:s}),z(ie,{children:[l(ne,{asChild:!0,children:N}),l(se,{side:"right",align:"center",hidden:v!=="collapsed"||b,...s})]})):N}function we({className:e,asChild:t=!1,showOnHover:a=!1,...r}){return l(t?$:"button",{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:o("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a&&"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",e),...r})}function xe({className:e,...t}){return l("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:o("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",e),...t})}function ye({className:e,...t}){return l("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:o("group/menu-sub-item relative",e),...t})}function ke({asChild:e=!1,size:t="md",isActive:a=!1,className:r,...s}){return l(e?$:"a",{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":t,"data-active":a,className:o("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",r),...s})}import{ChevronRight as ut}from"lucide-react";import{Slot as dt}from"@radix-ui/react-slot";import{ChevronRight as ct,MoreHorizontal as Ba}from"lucide-react";import{jsx as R,jsxs as Da}from"react/jsx-runtime";function Ce({...e}){return R("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Se({className:e,...t}){return R("ol",{"data-slot":"breadcrumb-list",className:o("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",e),...t})}function Re({className:e,...t}){return R("li",{"data-slot":"breadcrumb-item",className:o("inline-flex items-center gap-1.5",e),...t})}function Pe({asChild:e,className:t,...a}){return R(e?dt:"a",{"data-slot":"breadcrumb-link",className:o("hover:text-foreground transition-colors",t),...a})}function ze({children:e,className:t,...a}){return R("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:o("[&>svg]:size-3.5",t),...a,children:e??R(ct,{})})}import{Fragment as ht,jsx as i,jsxs as f}from"react/jsx-runtime";var gt=e=>{let t=e.children?e.children({Outlet:B}):null;return i(de,{className:"flex flex-col",children:f("div",{className:"flex flex-1",children:[e.sidebar??i(Ne,{}),f(ue,{className:"w-[calc(100%-var(--sidebar-width))]",children:[i("header",{className:"flex h-16 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-data-[collapsible=icon]/sidebar-wrapper:h-12",children:i("div",{className:"flex w-full items-center justify-between",children:f("div",{className:"flex items-center gap-2 px-4",children:[i(pe,{className:"-ml-1"}),i(D,{orientation:"vertical",className:"mr-2 h-4"}),i(mt,{})]})})}),i("div",{className:"flex flex-col gap-4 p-4",children:t??i(B,{})})]})]})})},Ne=e=>{let{title:t,navItems:a}=x(),r=i(ge,{children:i("h1",{className:"text-lg mb-4 mt-2 px-2",children:t})});return f(ce,{children:[e.header??r,i(be,{children:i(me,{children:i(he,{children:a.map(n=>i(q,{asChild:!0,defaultOpen:n.isActive,children:f(fe,{children:[i(ve,{asChild:!0,tooltip:n.title,children:f("a",{href:n.url,children:[i(n.icon,{}),i("span",{children:n.title})]})}),n.items?.length?f(ht,{children:[i(X,{asChild:!0,children:f(we,{className:"data-[state=open]:rotate-90",children:[i(ut,{}),i("span",{className:"sr-only",children:"Toggle"})]})}),i(Q,{children:i(xe,{children:n.items?.map(d=>i(ye,{children:i(ke,{asChild:!0,children:i("a",{href:d.url,children:i("span",{children:d.title})})})},d.title))})})]}):null]})},n.title))})})}),e.footer??null]})},bt=()=>{let{configurations:e}=x(),t=pt(),[a,...r]=t.pathname.split("/").filter(s=>s!=="");if(e.basePath){let[s,...n]=r;return{basePath:e.basePath,segments:n}}return{basePath:null,segments:r}},mt=()=>{let{basePath:e,segments:t}=bt();return i(Ce,{children:i(Se,{children:t.map((a,r)=>f("div",{className:"inline-flex items-center gap-3",children:[i(Re,{children:i(Pe,{href:`${e?`/${e}`:""}/${k}/${t.slice(0,r+1).join("/")}`,children:a})}),r<t.length-1&&i(ze,{})]},r))})})};import{capitalCase as ft}from"change-case";import{jsx as wt}from"react/jsx-runtime";function vt(e){let t=Me(e);return{...t,_resourceType:"root-resource",meta:{...t.meta,category:e.meta?.category??"Uncategorized"}}}function Me(e){let{path:t,component:a,subResources:r,meta:s}=e,n=s?.title??ft(t);return{_resourceType:"sub-resource",type:"component",path:t,meta:{title:n},component:()=>wt(A,{title:n,children:a()}),subResources:r}}import{useLocation as sr,useNavigate as lr,useParams as dr,Link as cr}from"react-router";export{Ve as AppShell,Ne as DefaultSidebar,cr as Link,gt as SidebarLayoutContainer,vt as defineResource,Me as defineSubResource,x as useAppShell,sr as useLocation,lr as useNavigate,dr as useParams};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailor-platform/app-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./styles": "./dist/index.css",
|
|
@@ -37,26 +37,28 @@
|
|
|
37
37
|
"class-variance-authority": "^0.7.1",
|
|
38
38
|
"clsx": "^2.1.1",
|
|
39
39
|
"date-fns": "^4.1.0",
|
|
40
|
-
"es-toolkit": "^1.
|
|
40
|
+
"es-toolkit": "^1.34.1",
|
|
41
41
|
"lucide-react": "^0.483.0",
|
|
42
|
-
"next-themes": "^0.4.
|
|
43
|
-
"react": "^19.
|
|
42
|
+
"next-themes": "^0.4.6",
|
|
43
|
+
"react": "^19.1.0",
|
|
44
44
|
"react-day-picker": "8.10.1",
|
|
45
|
-
"react-dom": "^19.
|
|
45
|
+
"react-dom": "^19.1.0",
|
|
46
46
|
"react-hook-form": "^7.54.2",
|
|
47
|
+
"react-router": "^7.4.0",
|
|
47
48
|
"sonner": "^1.7.4",
|
|
48
49
|
"tailwind-merge": "^3.0.1",
|
|
49
|
-
"tailwindcss-animate": "^1.0.7",
|
|
50
50
|
"zod": "^3.24.2"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
+
"@tailwindcss/postcss": "^4.1.2",
|
|
53
54
|
"@types/node": "^22",
|
|
54
55
|
"@types/react": "^19",
|
|
55
56
|
"@types/react-dom": "^19",
|
|
56
57
|
"postcss": "^8",
|
|
57
58
|
"prettier": "^3.5.1",
|
|
58
|
-
"tailwindcss": "^
|
|
59
|
+
"tailwindcss": "^4.1.2",
|
|
59
60
|
"tsup": "^8.3.6",
|
|
61
|
+
"tw-animate-css": "^1.2.5",
|
|
60
62
|
"typescript": "^5"
|
|
61
63
|
},
|
|
62
64
|
"scripts": {
|