@tailor-platform/app-shell 0.2.0 → 0.4.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 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))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.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;--font-weight-bold: 700;--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-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.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
@@ -7,56 +7,40 @@ type CommonPageResource = {
7
7
  path: string;
8
8
  type: "component";
9
9
  component: () => ReactNode;
10
- subResources?: Array<SubPageResource>;
10
+ meta: {
11
+ title: string;
12
+ };
11
13
  };
12
14
  /**
13
15
  * A resource that can be included in the root-level content in the navigation.
14
16
  */
15
- type RootPageResource = CommonPageResource & {
16
- _resourceType: "root-resource";
17
- meta: {
18
- title: string;
19
- category: string;
20
- navigatable?: boolean;
21
- };
17
+ type Module = CommonPageResource & {
18
+ _type: "module";
19
+ resources: Array<Resource>;
22
20
  };
23
21
  /**
24
22
  * A resource that can be included in the sub-content in the root resource.
25
23
  *
26
24
  * This resource does not have `category` metadata.
27
25
  */
28
- type SubPageResource = CommonPageResource & {
29
- _resourceType: "sub-resource";
30
- meta: {
31
- title: string;
32
- };
26
+ type Resource = CommonPageResource & {
27
+ _type: "resource";
28
+ subResources?: Array<Resource>;
33
29
  };
34
- type RootPageResources = Array<RootPageResource>;
30
+ type Modules = Array<Module>;
35
31
  type RootConfiguration = {
36
- resources: RootPageResources;
32
+ modules: Modules;
37
33
  basePath?: string;
38
34
  };
39
- type ResourceMeta = {
35
+ type ResourceMetaProps = {
40
36
  /**
41
37
  * Title of the resource used in navigation.
42
38
  *
43
39
  * If not provided, the title will be generated from the path.
44
40
  */
45
41
  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
42
  };
59
- type CommonResourceInput = {
43
+ type CommonProps = {
60
44
  /**
61
45
  * Path of the resource.
62
46
  *
@@ -65,21 +49,24 @@ type CommonResourceInput = {
65
49
  */
66
50
  path: string;
67
51
  /**
68
- * Sub-resources of the resource.
52
+ * Metadata for the resource.
69
53
  */
70
- subResources?: Array<SubPageResource>;
54
+ meta?: ResourceMetaProps;
71
55
  };
72
- type CommonRootResourceInput = CommonResourceInput & {
56
+ type ResourceComponentProps = {
57
+ title: string;
58
+ };
59
+ type ReactResourceProps = {
73
60
  /**
74
- * Metadata for the resource.
61
+ * React component to render.
75
62
  */
76
- meta?: ResourceMeta;
63
+ component: (props: ResourceComponentProps) => ReactNode;
77
64
  };
78
- type RootReactResourceInput = {
65
+ type DefineModuleProps = CommonProps & ReactResourceProps & {
79
66
  /**
80
- * React component to render.
67
+ * Resource associated to the module.
81
68
  */
82
- component: () => ReactNode;
69
+ resources: Array<Resource>;
83
70
  };
84
71
  /**
85
72
  * Define a root-level resource that renders a React component.
@@ -99,19 +86,22 @@ type RootReactResourceInput = {
99
86
  * });
100
87
  * ```
101
88
  */
102
- declare function defineResource(props: CommonRootResourceInput & RootReactResourceInput): RootPageResource;
103
- type CommonSubResourceInput = CommonResourceInput & {
104
- meta?: Pick<ResourceMeta, "title">;
89
+ declare function defineModule(props: DefineModuleProps): Module;
90
+ type DefineResourceProps = CommonProps & ReactResourceProps & {
91
+ /**
92
+ * Sub-resources of the resource.
93
+ */
94
+ subResources?: Array<Resource>;
105
95
  };
106
96
  /**
107
- * Define a sub-level resource that renders a React component.
97
+ * Define a resource that renders a React component.
108
98
  *
109
- * This resource does not have `category` in meta field.
99
+ * This resource can be used as a sub-resource of a module or as a root-level resource.
110
100
  *
111
101
  * @example
112
102
  * ```
113
103
  * // Define a minimal resource
114
- * defineReactResource({
104
+ * defineResource({
115
105
  * path: "custom-page",
116
106
  * component: () => {
117
107
  * return (
@@ -121,7 +111,7 @@ type CommonSubResourceInput = CommonResourceInput & {
121
111
  * );
122
112
  * },
123
113
  * subResources: [
124
- * defineSubResource({
114
+ * defineResource({
125
115
  * path: "sub-page",
126
116
  * component: () => {
127
117
  * return (
@@ -136,7 +126,7 @@ type CommonSubResourceInput = CommonResourceInput & {
136
126
  * ```
137
127
  *
138
128
  */
139
- declare function defineSubResource(props: CommonSubResourceInput & RootReactResourceInput): SubPageResource;
129
+ declare function defineResource(props: DefineResourceProps): Resource;
140
130
 
141
131
  type AppShellProps = {
142
132
  /**
@@ -154,7 +144,7 @@ type AppShellProps = {
154
144
  /**
155
145
  * Navigation configuration
156
146
  */
157
- resources: RootPageResources;
147
+ modules: Modules;
158
148
  };
159
149
  };
160
150
  declare const AppShell: (props: React.PropsWithChildren<AppShellProps>) => react_jsx_runtime.JSX.Element;
@@ -174,7 +164,6 @@ declare const DefaultSidebar: (props: DefaultSidebarProps) => react_jsx_runtime.
174
164
 
175
165
  type NavChildItem = {
176
166
  title: string;
177
- category: string;
178
167
  url: string;
179
168
  };
180
169
  type NavItem = {
@@ -192,4 +181,4 @@ type AppShellContextType = {
192
181
  };
193
182
  declare const useAppShell: () => AppShellContextType;
194
183
 
195
- export { AppShell, type AppShellProps, DefaultSidebar, SidebarLayoutContainer, defineResource, defineSubResource, useAppShell };
184
+ export { AppShell, type AppShellProps, DefaultSidebar, type ResourceComponentProps, SidebarLayoutContainer, defineModule, defineResource, useAppShell };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{Table as Ue}from"lucide-react";import{useMemo as qe}from"react";import{createContext as Xe,useContext as Ye}from"react";var H=Xe({navItems:[],configurations:{resources:[]}}),R=()=>Ye(H);import{createBrowserRouter as Fe,RouterProvider as Ke}from"react-router";import{Outlet as Ve}from"react-router";import{Toaster as $e}from"sonner";import{Fragment as Ge,jsx as S,jsxs as we}from"react/jsx-runtime";var D=e=>we("div",{className:"p-4 rounded-sm border shadow",children:[S("p",{className:"font-semibold leading-none tracking-tight",children:e.title}),S("div",{className:"pt-4",children:e.children})]}),he=()=>S(D,{title:"Welcome to AppShell",children:S("p",{children:"Add your GraphQL resources from configuration at first!"})}),O=()=>we(Ge,{children:[S(Ve,{}),S($e,{})]});import{jsx as je}from"react/jsx-runtime";var ve=e=>{let t={index:!0,Component:e.component};return{path:e.path,...e.subResources&&e.subResources.length>0?{children:[t,...e.subResources.map(ve)]}:{children:[t]}}},xe=e=>{let{configurations:t}=R(),a=t.resources.reduce((n,s)=>{let c={index:!0,Component:s.component};return[...n,{path:s.path,...s.subResources&&s.subResources.length>0?{children:[c,...s.subResources.map(ve)]}:{children:[c]}}]},[]),r=Fe([{path:t.basePath,element:e.children,children:[{index:!0,Component:he},{path:k,children:a}]}]);return je(Ke,{router:r})};import{jsx as ye}from"react/jsx-runtime";var k="resources",Qe=e=>{let t=e.configurations.basePath,a=qe(()=>{let s=e.configurations.resources.map(c=>({title:c.meta.title,category:c.meta.category,url:t?`/${t}/${k}/${c.path}`:`/${k}/${c.path}`})).reduce((c,f)=>{let u=f.category;return c.has(u)||c.set(u,[]),c.get(u).push(f),c},new Map);return Array.from(s.entries()).map(([c,f])=>({title:c,url:"#",icon:Ue,isActive:!0,items:f}))},[e.configurations.resources]);return ye(H.Provider,{value:{title:e.title,configurations:{...e.configurations,basePath:t},navItems:a},children:ye(xe,{children:e.children})})};import*as C from"@radix-ui/react-collapsible";var Re=C.Root,Se=C.CollapsibleTrigger,ke=C.CollapsibleContent;import{useLocation as At}from"react-router";import*as i from"react";import{Slot as E}from"@radix-ui/react-slot";import{cva as ut}from"class-variance-authority";import{PanelLeft as mt}from"lucide-react";import*as B from"react";var W=768;function Ce(){let[e,t]=B.useState(void 0);return B.useEffect(()=>{let a=window.matchMedia(`(max-width: ${W-1}px)`),r=()=>{t(window.innerWidth<W)};return a.addEventListener("change",r),t(window.innerWidth<W),()=>a.removeEventListener("change",r)},[]),!!e}import{clsx as Je}from"clsx";import{twMerge as Ze}from"tailwind-merge";function o(...e){return Ze(Je(e))}import*as Pe from"react";import{Slot as et}from"@radix-ui/react-slot";import{cva as tt}from"class-variance-authority";import{jsx as rt}from"react/jsx-runtime";var at=tt("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"}}),X=Pe.forwardRef(({className:e,variant:t,size:a,asChild:r=!1,...n},s)=>rt(r?et:"button",{className:o(at({variant:t,size:a,className:e})),ref:s,...n}));X.displayName="Button";import*as Ne from"react";import{jsx as ot}from"react/jsx-runtime";var Y=Ne.forwardRef(({className:e,type:t,...a},r)=>ot("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}));Y.displayName="Input";import*as Me from"react";import*as V from"@radix-ui/react-separator";import{jsx as it}from"react/jsx-runtime";var T=Me.forwardRef(({className:e,orientation:t="horizontal",decorative:a=!0,...r},n)=>it(V.Root,{ref:n,decorative:a,orientation:t,className:o("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));T.displayName=V.Root.displayName;import*as z from"react";import*as p from"@radix-ui/react-dialog";import{cva as nt}from"class-variance-authority";import{X as st}from"lucide-react";import{jsx as x,jsxs as $}from"react/jsx-runtime";var Te=p.Root;var dt=p.Portal,ze=z.forwardRef(({className:e,...t},a)=>x(p.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}));ze.displayName=p.Overlay.displayName;var lt=nt("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"}}),G=z.forwardRef(({side:e="right",className:t,children:a,...r},n)=>$(dt,{children:[x(ze,{}),$(p.Content,{ref:n,className:o(lt({side:e}),t),...r,children:[$(p.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:[x(st,{className:"h-4 w-4"}),x("span",{className:"sr-only",children:"Close"})]}),a]})]}));G.displayName=p.Content.displayName;var F=({className:e,...t})=>x("div",{className:o("flex flex-col space-y-2 text-center sm:text-left",e),...t});F.displayName="SheetHeader";var ct=({className:e,...t})=>x("div",{className:o("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});ct.displayName="SheetFooter";var K=z.forwardRef(({className:e,...t},a)=>x(p.Title,{ref:a,className:o("text-lg font-semibold text-foreground",e),...t}));K.displayName=p.Title.displayName;var j=z.forwardRef(({className:e,...t},a)=>x(p.Description,{ref:a,className:o("text-sm text-muted-foreground",e),...t}));j.displayName=p.Description.displayName;import{jsx as pt}from"react/jsx-runtime";function U({className:e,...t}){return pt("div",{className:o("animate-pulse rounded-md bg-primary/10",e),...t})}import*as _e from"react";import*as m from"@radix-ui/react-tooltip";import{jsx as Ee}from"react/jsx-runtime";var Ie=m.Provider,Le=m.Root,Be=m.Trigger,q=_e.forwardRef(({className:e,sideOffset:t=4,...a},r)=>Ee(m.Portal,{children:Ee(m.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})}));q.displayName=m.Content.displayName;import{jsx as d,jsxs as P}from"react/jsx-runtime";var ft="sidebar_state",bt=60*60*24*7,gt="16rem",ht="18rem",wt="3rem",vt="b",Ae=i.createContext(null);function A(){let e=i.useContext(Ae);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}var Q=i.forwardRef(({defaultOpen:e=!0,open:t,onOpenChange:a,className:r,style:n,children:s,...c},f)=>{let u=Ce(),[y,w]=i.useState(!1),[_,Oe]=i.useState(e),M=t??_,I=i.useCallback(b=>{let v=typeof b=="function"?b(M):b;a?a(v):Oe(v),document.cookie=`${ft}=${v}; path=/; max-age=${bt}`},[a,M]),L=i.useCallback(()=>u?w(b=>!b):I(b=>!b),[u,I,w]);i.useEffect(()=>{let b=v=>{v.key===vt&&(v.metaKey||v.ctrlKey)&&(v.preventDefault(),L())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[L]);let ge=M?"expanded":"collapsed",We=i.useMemo(()=>({state:ge,open:M,setOpen:I,isMobile:u,openMobile:y,setOpenMobile:w,toggleSidebar:L}),[ge,M,I,u,y,w,L]);return d(Ae.Provider,{value:We,children:d(Ie,{delayDuration:0,children:d("div",{style:{"--sidebar-width":gt,"--sidebar-width-icon":wt,...n},className:o("group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar",r),ref:f,...c,children:s})})})});Q.displayName="SidebarProvider";var J=i.forwardRef(({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:r,children:n,...s},c)=>{let{isMobile:f,state:u,openMobile:y,setOpenMobile:w}=A();return a==="none"?d("div",{className:o("flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground",r),ref:c,...s,children:n}):f?d(Te,{open:y,onOpenChange:w,...s,children:P(G,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":ht},side:e,children:[P(F,{className:"sr-only",children:[d(K,{children:"Sidebar"}),d(j,{children:"Displays the mobile sidebar."})]}),d("div",{className:"flex h-full w-full flex-col",children:n})]})}):P("div",{ref:c,className:"group peer hidden text-sidebar-foreground md:block","data-state":u,"data-collapsible":u==="collapsed"?a:"","data-variant":t,"data-side":e,children:[d("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]")}),d("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),...s,children:d("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:n})})]})});J.displayName="Sidebar";var Z=i.forwardRef(({className:e,onClick:t,...a},r)=>{let{toggleSidebar:n}=A();return P(X,{ref:r,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("h-7 w-7",e),onClick:s=>{t?.(s),n()},...a,children:[d(mt,{}),d("span",{className:"sr-only",children:"Toggle Sidebar"})]})});Z.displayName="SidebarTrigger";var xt=i.forwardRef(({className:e,...t},a)=>{let{toggleSidebar:r}=A();return d("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})});xt.displayName="SidebarRail";var ee=i.forwardRef(({className:e,...t},a)=>d("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}));ee.displayName="SidebarInset";var yt=i.forwardRef(({className:e,...t},a)=>d(Y,{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}));yt.displayName="SidebarInput";var te=i.forwardRef(({className:e,...t},a)=>d("div",{ref:a,"data-sidebar":"header",className:o("flex flex-col gap-2 p-2",e),...t}));te.displayName="SidebarHeader";var Rt=i.forwardRef(({className:e,...t},a)=>d("div",{ref:a,"data-sidebar":"footer",className:o("flex flex-col gap-2 p-2",e),...t}));Rt.displayName="SidebarFooter";var St=i.forwardRef(({className:e,...t},a)=>d(T,{ref:a,"data-sidebar":"separator",className:o("mx-2 w-auto bg-sidebar-border",e),...t}));St.displayName="SidebarSeparator";var ae=i.forwardRef(({className:e,...t},a)=>d("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}));ae.displayName="SidebarContent";var re=i.forwardRef(({className:e,...t},a)=>d("div",{ref:a,"data-sidebar":"group",className:o("relative flex w-full min-w-0 flex-col p-2",e),...t}));re.displayName="SidebarGroup";var kt=i.forwardRef(({className:e,asChild:t=!1,...a},r)=>d(t?E:"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}));kt.displayName="SidebarGroupLabel";var Ct=i.forwardRef(({className:e,asChild:t=!1,...a},r)=>d(t?E:"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}));Ct.displayName="SidebarGroupAction";var Pt=i.forwardRef(({className:e,...t},a)=>d("div",{ref:a,"data-sidebar":"group-content",className:o("w-full text-sm",e),...t}));Pt.displayName="SidebarGroupContent";var oe=i.forwardRef(({className:e,...t},a)=>d("ul",{ref:a,"data-sidebar":"menu",className:o("flex w-full min-w-0 flex-col gap-1",e),...t}));oe.displayName="SidebarMenu";var ie=i.forwardRef(({className:e,...t},a)=>d("li",{ref:a,"data-sidebar":"menu-item",className:o("group/menu-item relative",e),...t}));ie.displayName="SidebarMenuItem";var Nt=ut("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"}}),ne=i.forwardRef(({asChild:e=!1,isActive:t=!1,variant:a="default",size:r="default",tooltip:n,className:s,...c},f)=>{let u=e?E:"button",{isMobile:y,state:w}=A(),_=d(u,{ref:f,"data-sidebar":"menu-button","data-size":r,"data-active":t,className:o(Nt({variant:a,size:r}),s),...c});return n?(typeof n=="string"&&(n={children:n}),P(Le,{children:[d(Be,{asChild:!0,children:_}),d(q,{side:"right",align:"center",hidden:w!=="collapsed"||y,...n})]})):_});ne.displayName="SidebarMenuButton";var se=i.forwardRef(({className:e,asChild:t=!1,showOnHover:a=!1,...r},n)=>d(t?E:"button",{ref:n,"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}));se.displayName="SidebarMenuAction";var Mt=i.forwardRef(({className:e,...t},a)=>d("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}));Mt.displayName="SidebarMenuBadge";var Tt=i.forwardRef(({className:e,showIcon:t=!1,...a},r)=>{let n=i.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return P("div",{ref:r,"data-sidebar":"menu-skeleton",className:o("flex h-8 items-center gap-2 rounded-md px-2",e),...a,children:[t&&d(U,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),d(U,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":n}})]})});Tt.displayName="SidebarMenuSkeleton";var de=i.forwardRef(({className:e,...t},a)=>d("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}));de.displayName="SidebarMenuSub";var le=i.forwardRef(({...e},t)=>d("li",{ref:t,...e}));le.displayName="SidebarMenuSubItem";var ce=i.forwardRef(({asChild:e=!1,size:t="md",isActive:a,className:r,...n},s)=>d(e?E:"a",{ref:s,"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),...n}));ce.displayName="SidebarMenuSubButton";import{ChevronRight as Ht}from"lucide-react";import*as N from"react";import{Slot as zt}from"@radix-ui/react-slot";import{ChevronRight as Et,MoreHorizontal as _t}from"lucide-react";import{jsx as g,jsxs as Bt}from"react/jsx-runtime";var pe=N.forwardRef(({...e},t)=>g("nav",{ref:t,"aria-label":"breadcrumb",...e}));pe.displayName="Breadcrumb";var ue=N.forwardRef(({className:e,...t},a)=>g("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}));ue.displayName="BreadcrumbList";var me=N.forwardRef(({className:e,...t},a)=>g("li",{ref:a,className:o("inline-flex items-center gap-1.5",e),...t}));me.displayName="BreadcrumbItem";var fe=N.forwardRef(({asChild:e,className:t,...a},r)=>g(e?zt:"a",{ref:r,className:o("transition-colors hover:text-foreground",t),...a}));fe.displayName="BreadcrumbLink";var It=N.forwardRef(({className:e,...t},a)=>g("span",{ref:a,role:"link","aria-disabled":"true","aria-current":"page",className:o("font-normal text-foreground",e),...t}));It.displayName="BreadcrumbPage";var be=({children:e,className:t,...a})=>g("li",{role:"presentation","aria-hidden":"true",className:o("[&>svg]:w-3.5 [&>svg]:h-3.5",t),...a,children:e??g(Et,{})});be.displayName="BreadcrumbSeparator";var Lt=({className:e,...t})=>Bt("span",{role:"presentation","aria-hidden":"true",className:o("flex h-9 w-9 items-center justify-center",e),...t,children:[g(_t,{className:"h-4 w-4"}),g("span",{className:"sr-only",children:"More"})]});Lt.displayName="BreadcrumbElipssis";import{Fragment as Xt,jsx as l,jsxs as h}from"react/jsx-runtime";var Dt=e=>{let t=e.children?e.children({Outlet:O}):null;return l(Q,{className:"flex flex-col",children:h("div",{className:"flex flex-1",children:[e.sidebar??l(He,{}),h(ee,{className:"w-[calc(100%-var(--sidebar-width))]",children:[l("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:l("div",{className:"flex w-full items-center justify-between",children:h("div",{className:"flex items-center gap-2 px-4",children:[l(Z,{className:"-ml-1"}),l(T,{orientation:"vertical",className:"mr-2 h-4"}),l(Wt,{})]})})}),l("div",{className:"flex flex-col gap-4 p-4",children:t??l(O,{})})]})]})})},He=e=>{let{title:t,navItems:a}=R(),r=l(te,{children:l("h1",{className:"text-lg mb-4 mt-2 px-2",children:t})});return h(J,{children:[e.header??r,l(ae,{children:l(re,{children:l(oe,{children:a.map(s=>l(Re,{asChild:!0,defaultOpen:s.isActive,children:h(ie,{children:[l(ne,{asChild:!0,tooltip:s.title,children:h("a",{href:s.url,children:[l(s.icon,{}),l("span",{children:s.title})]})}),s.items?.length?h(Xt,{children:[l(Se,{asChild:!0,children:h(se,{className:"data-[state=open]:rotate-90",children:[l(Ht,{}),l("span",{className:"sr-only",children:"Toggle"})]})}),l(ke,{children:l(de,{children:s.items?.map(c=>l(le,{children:l(ce,{asChild:!0,children:l("a",{href:c.url,children:l("span",{children:c.title})})})},c.title))})})]}):null]})},s.title))})})}),e.footer??null]})},Ot=()=>{let{configurations:e}=R(),t=At(),[a,...r]=t.pathname.split("/").filter(n=>n!=="");if(e.basePath){let[n,...s]=r;return{basePath:e.basePath,segments:s}}return{basePath:null,segments:r}},Wt=()=>{let{basePath:e,segments:t}=Ot();return l(pe,{children:l(ue,{children:t.map((a,r)=>h("div",{className:"inline-flex items-center gap-3",children:[l(me,{children:l(fe,{href:`${e?`/${e}`:""}/${k}/${t.slice(0,r+1).join("/")}`,children:a})}),r<t.length-1&&l(be,{})]},r))})})};import{capitalCase as Yt}from"change-case";import{jsx as $t}from"react/jsx-runtime";function Vt(e){let t=De(e);return{...t,_resourceType:"root-resource",meta:{...t.meta,category:e.meta?.category??"Uncategorized"}}}function De(e){let{path:t,component:a,subResources:r,meta:n}=e,s=n?.title??Yt(t);return{_resourceType:"sub-resource",type:"component",path:t,meta:{title:s},component:()=>$t(D,{title:s,children:a()}),subResources:r}}import{useLocation as Pr,useNavigate as Nr,useParams as Mr,Link as Tr}from"react-router";export{Qe as AppShell,He as DefaultSidebar,Tr as Link,Dt as SidebarLayoutContainer,Vt as defineResource,De as defineSubResource,R as useAppShell,Pr as useLocation,Nr as useNavigate,Mr as useParams};
1
+ import{Table as We}from"lucide-react";import{useMemo as He}from"react";import{createContext as Ae,useContext as Ie}from"react";var A=Ae({navItems:[],configurations:{modules:[]}}),x=()=>Ie(A);import{createBrowserRouter as Ee,RouterProvider as Le}from"react-router";import{Outlet as Be}from"react-router";import{Toaster as Oe}from"sonner";import{Fragment as De,jsx as R,jsxs as F}from"react/jsx-runtime";var I=e=>R("div",{className:"p-4 rounded-sm border shadow-xs",children:e.children}),j=()=>F(I,{children:[R("p",{className:"font-semibold leading-none tracking-tight",children:"Welcome to AppShell"}),R("p",{className:"pt-4",children:"Add your GraphQL resources from configuration at first!"})]}),B=()=>F(De,{children:[R(Be,{}),R(Oe,{})]});import{jsx as $e}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.modules.reduce((n,i)=>{let c={index:!0,Component:i.component};return[...n,{path:i.path,...i.resources&&i.resources.length>0?{children:[c,...i.resources.map(G)]}:{children:[c]}}]},[]),r=Ee([{path:t.basePath,element:e.children,children:[{index:!0,Component:j},{path:y,children:a}]}]);return $e(Le,{router:r})};import{jsx as U}from"react/jsx-runtime";var y="resources",Ve=e=>{let t=e.configurations.basePath,a=n=>t?`/${t}/${y}/${n}`:`/${y}/${n}`,r=He(()=>e.configurations.modules.map(i=>{let c=i.resources.map(u=>({title:u.meta.title,url:a(`${i.path}/${u.path}`)}));return{title:i.meta.title,url:a(i.path),icon:We,isActive:!0,items:c}}),[e.configurations.modules]);return U(A.Provider,{value:{title:e.title,configurations:{...e.configurations,basePath:t},navItems:r},children:U(K,{children:e.children})})};import*as k from"@radix-ui/react-collapsible";import{jsx as O}from"react/jsx-runtime";function q({...e}){return O(k.Root,{"data-slot":"collapsible",...e})}function X({...e}){return O(k.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...e})}function Q({...e}){return O(k.CollapsibleContent,{"data-slot":"collapsible-content",...e})}import{useLocation as pt}from"react-router";import*as p from"react";import{Slot as W}from"@radix-ui/react-slot";import{cva as et}from"class-variance-authority";import{PanelLeftIcon as tt}from"lucide-react";import*as _ from"react";var D=768;function Y(){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 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,...n}){return qe(r?Ge:"button",{"data-slot":"button",className:o(Ue({variant:t,size:a,className:e})),...n})}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 E({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 d from"@radix-ui/react-dialog";import{XIcon as Qe}from"lucide-react";import{jsx as m,jsxs as L}from"react/jsx-runtime";function ee({...e}){return m(d.Root,{"data-slot":"sheet",...e})}function Ye({...e}){return m(d.Portal,{"data-slot":"sheet-portal",...e})}function Je({className:e,...t}){return m(d.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:[m(Je,{}),L(d.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(d.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:[m(Qe,{className:"size-4"}),m("span",{className:"sr-only",children:"Close"})]})]})]})}function ae({className:e,...t}){return m("div",{"data-slot":"sheet-header",className:o("flex flex-col gap-1.5 p-4",e),...t})}function re({className:e,...t}){return m(d.Title,{"data-slot":"sheet-title",className:o("text-foreground font-semibold",e),...t})}function oe({className:e,...t}){return m(d.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 C,jsxs as Ze}from"react/jsx-runtime";function $({delayDuration:e=0,...t}){return C(g.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function ie({...e}){return C($,{children:C(g.Root,{"data-slot":"tooltip",...e})})}function ne({...e}){return C(g.Trigger,{"data-slot":"tooltip-trigger",...e})}function se({className:e,sideOffset:t=0,children:a,...r}){return C(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,C(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=p.createContext(null);function H(){let e=p.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:n,children:i,...c}){let u=Y(),[w,f]=p.useState(!1),[N,Te]=p.useState(e),P=t??N,M=p.useCallback(b=>{let v=typeof b=="function"?b(P):b;a?a(v):Te(v),document.cookie=`${at}=${v}; path=/; max-age=${rt}`},[a,P]),T=p.useCallback(()=>u?f(b=>!b):M(b=>!b),[u,M,f]);p.useEffect(()=>{let b=v=>{v.key===st&&(v.metaKey||v.ctrlKey)&&(v.preventDefault(),T())};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[T]);let V=P?"expanded":"collapsed",_e=p.useMemo(()=>({state:V,open:P,setOpen:M,isMobile:u,openMobile:w,setOpenMobile:f,toggleSidebar:T}),[V,P,M,u,w,f,T]);return l(le.Provider,{value:_e,children:l($,{delayDuration:0,children:l("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":ot,"--sidebar-width-icon":nt,...n},className:o("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",r),...c,children:i})})})}function ce({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:r,children:n,...i}){let{isMobile:c,state:u,openMobile:w,setOpenMobile:f}=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),...i,children:n}):c?l(ee,{open:w,onOpenChange:f,...i,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:n})]})}):z("div",{className:"group peer text-sidebar-foreground hidden md:block","data-state":u,"data-collapsible":u==="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),...i,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:n})})]})}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:n=>{t?.(n),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:n,className:i,...c}){let u=e?W:"button",{isMobile:w,state:f}=H(),N=l(u,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":r,"data-active":t,className:o(lt({variant:a,size:r}),i),...c});return n?(typeof n=="string"&&(n={children:n}),z(ie,{children:[l(ne,{asChild:!0,children:N}),l(se,{side:"right",align:"center",hidden:f!=="collapsed"||w,...n})]})):N}function we({className:e,asChild:t=!1,showOnHover:a=!1,...r}){return l(t?W:"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,...n}){return l(e?W:"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),...n})}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 S,jsxs as Ea}from"react/jsx-runtime";function Ce({...e}){return S("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Se({className:e,...t}){return S("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 Pe({className:e,...t}){return S("li",{"data-slot":"breadcrumb-item",className:o("inline-flex items-center gap-1.5",e),...t})}function Re({asChild:e,className:t,...a}){return S(e?dt:"a",{"data-slot":"breadcrumb-link",className:o("hover:text-foreground transition-colors",t),...a})}function ze({children:e,className:t,...a}){return S("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:o("[&>svg]:size-3.5",t),...a,children:e??S(ct,{})})}import{Fragment as ht,jsx as s,jsxs as h}from"react/jsx-runtime";var gt=e=>{let t=e.children?e.children({Outlet:B}):null;return s(de,{className:"flex flex-col",children:h("div",{className:"flex flex-1",children:[e.sidebar??s(Ne,{}),h(ue,{className:"w-[calc(100%-var(--sidebar-width))]",children:[s("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:s("div",{className:"flex w-full items-center justify-between",children:h("div",{className:"flex items-center gap-2 px-4",children:[s(pe,{className:"-ml-1"}),s(E,{orientation:"vertical",className:"mr-2 h-4"}),s(mt,{})]})})}),s("div",{className:"flex flex-col gap-4 p-4",children:t??s(B,{})})]})]})})},Ne=e=>{let{title:t,navItems:a}=x(),r=s(ge,{children:s("h1",{className:"text-lg mb-4 mt-2 px-2",children:t})});return h(ce,{children:[e.header??r,s(be,{children:s(me,{children:s(he,{children:a.map(i=>s(q,{asChild:!0,defaultOpen:i.isActive,children:h(fe,{children:[s(ve,{asChild:!0,tooltip:i.title,children:h("a",{href:i.url,children:[s(i.icon,{}),s("span",{children:i.title})]})}),i.items?.length?h(ht,{children:[s(X,{asChild:!0,children:h(we,{className:"data-[state=open]:rotate-90",children:[s(ut,{}),s("span",{className:"sr-only",children:"Toggle"})]})}),s(Q,{children:s(xe,{children:i.items?.map(c=>s(ye,{children:s(ke,{asChild:!0,children:s("a",{href:c.url,children:s("span",{children:c.title})})})},c.title))})})]}):null]})},i.title))})})}),e.footer??null]})},bt=()=>{let{configurations:e}=x(),t=pt(),[a,...r]=t.pathname.split("/").filter(n=>n!=="");if(e.basePath){let[n,...i]=r;return{basePath:e.basePath,segments:i}}return{basePath:null,segments:r}},mt=()=>{let{basePath:e,segments:t}=bt();return s(Ce,{children:s(Se,{children:t.map((a,r)=>h("div",{className:"inline-flex items-center gap-3",children:[s(Pe,{children:s(Re,{href:`${e?`/${e}`:""}/${y}/${t.slice(0,r+1).join("/")}`,children:a})}),r<t.length-1&&s(ze,{})]},r))})})};import{capitalCase as ft}from"change-case";import{jsx as wt}from"react/jsx-runtime";function vt(e){let{path:t,meta:a,type:r,component:n}=Me(e);return{path:t,type:r,component:n,_type:"module",meta:a,resources:e.resources}}function Me(e){let{path:t,component:a,subResources:r,meta:n}=e,i=n?.title??ft(t);return{_type:"resource",type:"component",path:t,meta:{title:i},component:()=>wt(I,{children:a({title:i})}),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 defineModule,Me as defineResource,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.2.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./styles": "./dist/index.css",
@@ -37,27 +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.32.0",
41
- "lucide-react": "^0.483.0",
42
- "next-themes": "^0.4.4",
43
- "react": "^19.0.0",
40
+ "es-toolkit": "^1.34.1",
41
+ "lucide-react": "^0.487.0",
42
+ "next-themes": "^0.4.6",
43
+ "react": "^19.1.0",
44
44
  "react-day-picker": "8.10.1",
45
- "react-dom": "^19.0.0",
45
+ "react-dom": "^19.1.0",
46
46
  "react-hook-form": "^7.54.2",
47
47
  "react-router": "^7.4.0",
48
48
  "sonner": "^1.7.4",
49
49
  "tailwind-merge": "^3.0.1",
50
- "tailwindcss-animate": "^1.0.7",
51
50
  "zod": "^3.24.2"
52
51
  },
53
52
  "devDependencies": {
53
+ "@tailwindcss/postcss": "^4.1.2",
54
54
  "@types/node": "^22",
55
55
  "@types/react": "^19",
56
56
  "@types/react-dom": "^19",
57
57
  "postcss": "^8",
58
58
  "prettier": "^3.5.1",
59
- "tailwindcss": "^3.4.1",
59
+ "tailwindcss": "^4.1.3",
60
60
  "tsup": "^8.3.6",
61
+ "tw-animate-css": "^1.2.5",
61
62
  "typescript": "^5"
62
63
  },
63
64
  "scripts": {