@tailor-platform/app-shell 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +2 -2
- package/dist/index.d.ts +7 -8
- package/dist/index.js +1 -1
- package/package.json +1 -2
package/dist/index.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--astw-font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--astw-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--astw-color-black: #000;--astw-color-white: #fff;--astw-spacing: .25rem;--astw-container-xs: 20rem;--astw-container-sm: 24rem;--astw-container-lg: 32rem;--astw-container-5xl: 64rem;--astw-text-xs: .75rem;--astw-text-xs--line-height: calc(1 / .75);--astw-text-sm: .875rem;--astw-text-sm--line-height: calc(1.25 / .875);--astw-text-base: 1rem;--astw-text-base--line-height: 1.5 ;--astw-text-lg: 1.125rem;--astw-text-lg--line-height: calc(1.75 / 1.125);--astw-font-weight-normal: 400;--astw-font-weight-medium: 500;--astw-font-weight-semibold: 600;--astw-font-weight-bold: 700;--astw-tracking-tight: -.025em;--astw-radius-xs: .125rem;--astw-ease-in-out: cubic-bezier(.4, 0, .2, 1);--astw-animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--astw-default-transition-duration: .15s;--astw-default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--astw-default-font-family: var(--astw-font-sans);--astw-default-mono-font-family: var(--astw-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(--astw-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(--astw-default-font-feature-settings, normal);font-variation-settings:var(--astw-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(--astw-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--astw-default-mono-font-feature-settings, normal);font-variation-settings:var(--astw-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{.astw\:pointer-events-none{pointer-events:none}.astw\: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}.astw\:absolute{position:absolute}.astw\:fixed{position:fixed}.astw\:relative{position:relative}.astw\:inset-0{inset:calc(var(--astw-spacing) * 0)}.astw\:inset-x-0{inset-inline:calc(var(--astw-spacing) * 0)}.astw\:inset-y-0{inset-block:calc(var(--astw-spacing) * 0)}.astw\:top-0{top:calc(var(--astw-spacing) * 0)}.astw\:top-1\.5{top:calc(var(--astw-spacing) * 1.5)}.astw\:top-3\.5{top:calc(var(--astw-spacing) * 3.5)}.astw\:top-4{top:calc(var(--astw-spacing) * 4)}.astw\:top-\[50\%\]{top:50%}.astw\:right-0{right:calc(var(--astw-spacing) * 0)}.astw\:right-1{right:calc(var(--astw-spacing) * 1)}.astw\:right-3{right:calc(var(--astw-spacing) * 3)}.astw\:right-4{right:calc(var(--astw-spacing) * 4)}.astw\:bottom-0{bottom:calc(var(--astw-spacing) * 0)}.astw\:left-0{left:calc(var(--astw-spacing) * 0)}.astw\:left-\[50\%\]{left:50%}.astw\:z-10{z-index:10}.astw\:z-20{z-index:20}.astw\:z-50{z-index:50}.astw\:mx-2{margin-inline:calc(var(--astw-spacing) * 2)}.astw\:mx-3\.5{margin-inline:calc(var(--astw-spacing) * 3.5)}.astw\:mx-auto{margin-inline:auto}.astw\:mt-0\.5{margin-top:calc(var(--astw-spacing) * .5)}.astw\:mt-1{margin-top:calc(var(--astw-spacing) * 1)}.astw\:mt-2{margin-top:calc(var(--astw-spacing) * 2)}.astw\:mt-4{margin-top:calc(var(--astw-spacing) * 4)}.astw\:mt-auto{margin-top:auto}.astw\:mb-2{margin-bottom:calc(var(--astw-spacing) * 2)}.astw\:-ml-1{margin-left:calc(var(--astw-spacing) * -1)}.astw\:-ml-2\.5{margin-left:calc(var(--astw-spacing) * -2.5)}.astw\:flex{display:flex}.astw\:grid{display:grid}.astw\:hidden{display:none}.astw\:inline-flex{display:inline-flex}.astw\:aspect-square{aspect-ratio:1 / 1}.astw\:size-2\.5{width:calc(var(--astw-spacing) * 2.5);height:calc(var(--astw-spacing) * 2.5)}.astw\:size-4{width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}.astw\:size-4\.5{width:calc(var(--astw-spacing) * 4.5);height:calc(var(--astw-spacing) * 4.5)}.astw\:size-9{width:calc(var(--astw-spacing) * 9);height:calc(var(--astw-spacing) * 9)}.astw\:h-4{height:calc(var(--astw-spacing) * 4)}.astw\:h-5{height:calc(var(--astw-spacing) * 5)}.astw\:h-7{height:calc(var(--astw-spacing) * 7)}.astw\:h-8{height:calc(var(--astw-spacing) * 8)}.astw\:h-9{height:calc(var(--astw-spacing) * 9)}.astw\:h-10{height:calc(var(--astw-spacing) * 10)}.astw\:h-12{height:calc(var(--astw-spacing) * 12)}.astw\:h-14{height:calc(var(--astw-spacing) * 14)}.astw\:h-auto{height:auto}.astw\:h-full{height:100%}.astw\:h-svh{height:100svh}.astw\:min-h-0{min-height:calc(var(--astw-spacing) * 0)}.astw\:min-h-svh{min-height:100svh}.astw\:w-\(--sidebar-width\){width:var(--sidebar-width)}.astw\:w-3\/4{width:75%}.astw\:w-4{width:calc(var(--astw-spacing) * 4)}.astw\:w-5{width:calc(var(--astw-spacing) * 5)}.astw\:w-\[100\%\]{width:100%}.astw\:w-\[calc\(100\%-var\(--sidebar-width\)\)\]{width:calc(100% - var(--sidebar-width))}.astw\:w-auto{width:auto}.astw\:w-fit{width:fit-content}.astw\:w-full{width:100%}.astw\:max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.astw\:max-w-5xl{max-width:var(--astw-container-5xl)}.astw\:max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.astw\:min-w-0{min-width:calc(var(--astw-spacing) * 0)}.astw\:min-w-5{min-width:calc(var(--astw-spacing) * 5)}.astw\:flex-1{flex:1}.astw\:flex-shrink-0,.astw\:shrink-0{flex-shrink:0}.astw\:caption-bottom{caption-side:bottom}.astw\:origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.astw\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:-translate-x-px{--tw-translate-x: -1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-x-\[-50\%\]{--tw-translate-x: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-x-px{--tw-translate-x: 1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-y-\[-50\%\]{--tw-translate-y: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:rotate-45{rotate:45deg}.astw\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.astw\:animate-pulse{animation:var(--astw-animate-pulse)}.astw\:flex-col{flex-direction:column}.astw\:flex-col-reverse{flex-direction:column-reverse}.astw\:flex-row{flex-direction:row}.astw\:flex-wrap{flex-wrap:wrap}.astw\:items-center{align-items:center}.astw\:items-start{align-items:flex-start}.astw\:justify-between{justify-content:space-between}.astw\:justify-center{justify-content:center}.astw\:justify-start{justify-content:flex-start}.astw\:gap-0\.5{gap:calc(var(--astw-spacing) * .5)}.astw\:gap-1{gap:calc(var(--astw-spacing) * 1)}.astw\:gap-1\.5{gap:calc(var(--astw-spacing) * 1.5)}.astw\:gap-2{gap:calc(var(--astw-spacing) * 2)}.astw\:gap-3{gap:calc(var(--astw-spacing) * 3)}.astw\:gap-4{gap:calc(var(--astw-spacing) * 4)}.astw\:gap-\[10px\]{gap:10px}.astw\:overflow-auto{overflow:auto}.astw\:overflow-hidden{overflow:hidden}.astw\:overflow-x-auto{overflow-x:auto}.astw\:rounded-\[2px\]{border-radius:2px}.astw\:rounded-lg{border-radius:var(--radius)}.astw\:rounded-md{border-radius:calc(var(--radius) - 2px)}.astw\:rounded-sm{border-radius:calc(var(--radius) - 4px)}.astw\:rounded-xs{border-radius:var(--astw-radius-xs)}.astw\:border{border-style:var(--tw-border-style);border-width:1px}.astw\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.astw\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.astw\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.astw\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.astw\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.astw\:border-input{border-color:var(--input)}.astw\:border-sidebar-border{border-color:var(--sidebar-border)}.astw\:border-x-border{border-inline-color:var(--border)}.astw\:bg-accent{background-color:var(--accent)}.astw\:bg-background{background-color:var(--background)}.astw\:bg-black\/50{background-color:var(--astw-color-black);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--astw-color-black) 50%,transparent)}}.astw\:bg-border{background-color:var(--border)}.astw\:bg-card{background-color:var(--card)}.astw\:bg-destructive{background-color:var(--destructive)}.astw\: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)}}.astw\:bg-primary{background-color:var(--primary)}.astw\:bg-secondary{background-color:var(--secondary)}.astw\:bg-sidebar{background-color:var(--sidebar)}.astw\:bg-sidebar-accent{background-color:var(--sidebar-accent)}.astw\:bg-sidebar-border{background-color:var(--sidebar-border)}.astw\:bg-transparent{background-color:transparent}.astw\:fill-primary{fill:var(--primary)}.astw\:p-0{padding:calc(var(--astw-spacing) * 0)}.astw\:p-2{padding:calc(var(--astw-spacing) * 2)}.astw\:p-3{padding:calc(var(--astw-spacing) * 3)}.astw\:p-4{padding:calc(var(--astw-spacing) * 4)}.astw\:p-6{padding:calc(var(--astw-spacing) * 6)}.astw\:px-1{padding-inline:calc(var(--astw-spacing) * 1)}.astw\:px-2{padding-inline:calc(var(--astw-spacing) * 2)}.astw\:px-2\.5{padding-inline:calc(var(--astw-spacing) * 2.5)}.astw\:px-3{padding-inline:calc(var(--astw-spacing) * 3)}.astw\:px-4{padding-inline:calc(var(--astw-spacing) * 4)}.astw\:px-6{padding-inline:calc(var(--astw-spacing) * 6)}.astw\:py-0\.5{padding-block:calc(var(--astw-spacing) * .5)}.astw\:py-1{padding-block:calc(var(--astw-spacing) * 1)}.astw\:py-1\.5{padding-block:calc(var(--astw-spacing) * 1.5)}.astw\:py-2{padding-block:calc(var(--astw-spacing) * 2)}.astw\:text-center{text-align:center}.astw\:text-left{text-align:left}.astw\:align-middle{vertical-align:middle}.astw\:text-base{font-size:var(--astw-text-base);line-height:var(--tw-leading, var(--astw-text-base--line-height))}.astw\:text-lg{font-size:var(--astw-text-lg);line-height:var(--tw-leading, var(--astw-text-lg--line-height))}.astw\:text-sm{font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}.astw\:text-xs{font-size:var(--astw-text-xs);line-height:var(--tw-leading, var(--astw-text-xs--line-height))}.astw\:leading-\[36px\]{--tw-leading: 36px;line-height:36px}.astw\:leading-none{--tw-leading: 1;line-height:1}.astw\:font-bold{--tw-font-weight: var(--astw-font-weight-bold);font-weight:var(--astw-font-weight-bold)}.astw\:font-medium{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}.astw\:font-normal{--tw-font-weight: var(--astw-font-weight-normal);font-weight:var(--astw-font-weight-normal)}.astw\:font-semibold{--tw-font-weight: var(--astw-font-weight-semibold);font-weight:var(--astw-font-weight-semibold)}.astw\:tracking-tight{--tw-tracking: var(--astw-tracking-tight);letter-spacing:var(--astw-tracking-tight)}.astw\:text-balance{text-wrap:balance}.astw\:break-words{overflow-wrap:break-word}.astw\:whitespace-nowrap{white-space:nowrap}.astw\:text-destructive{color:var(--destructive)}.astw\:text-foreground{color:var(--foreground)}.astw\:text-muted-foreground{color:var(--muted-foreground)}.astw\:text-primary{color:var(--primary)}.astw\:text-primary-foreground{color:var(--primary-foreground)}.astw\:text-secondary-foreground{color:var(--secondary-foreground)}.astw\:text-sidebar-foreground{color:var(--sidebar-foreground)}.astw\: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)}}.astw\:text-white{color:var(--astw-color-white)}.astw\: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,)}.astw\:underline-offset-4{text-underline-offset:4px}.astw\:opacity-70{opacity:70%}.astw\: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)}.astw\: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)}.astw\: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)}.astw\: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)}.astw\:ring-sidebar-ring{--tw-ring-color: var(--sidebar-ring)}.astw\:outline-hidden{--tw-outline-style: none;outline-style:none;@media (forced-colors: active){outline:2px solid transparent;outline-offset:2px}}.astw\: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(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\,height\]{transition-property:width,height;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\: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(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:duration-200{--tw-duration: .2s;transition-duration:.2s}.astw\:ease-in-out{--tw-ease: var(--astw-ease-in-out);transition-timing-function:var(--astw-ease-in-out)}.astw\:ease-linear{--tw-ease: linear;transition-timing-function:linear}.astw\:fade-in-0{--tw-enter-opacity: 0 ;--tw-enter-opacity: 0}.astw\:outline-none{--tw-outline-style: none;outline-style:none}.astw\:select-none{-webkit-user-select:none;user-select:none}.astw\:zoom-in-95{--tw-enter-scale: 95% ;--tw-enter-scale: .95}.astw\:group-focus-within\/menu-item\:opacity-100{&:is(:where(.astw\:group\/menu-item):focus-within *){opacity:100%}}.astw\:group-hover\/menu-item\:opacity-100{&:is(:where(.astw\:group\/menu-item):hover *){@media (hover: hover){opacity:100%}}}.astw\:group-has-data-\[collapsible\=icon\]\/sidebar-wrapper\:h-12{&:is(:where(.astw\:group\/sidebar-wrapper):has(*[data-collapsible=icon]) *){height:calc(var(--astw-spacing) * 12)}}.astw\:group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8{&:is(:where(.astw\:group\/menu-item):has(*[data-sidebar=menu-action]) *){padding-right:calc(var(--astw-spacing) * 8)}}.astw\:group-data-\[collapsible\=icon\]\:-mt-8{&:is(:where(.astw\:group)[data-collapsible=icon] *){margin-top:calc(var(--astw-spacing) * -8)}}.astw\:group-data-\[collapsible\=icon\]\:hidden{&:is(:where(.astw\:group)[data-collapsible=icon] *){display:none}}.astw\:group-data-\[collapsible\=icon\]\:size-8\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--astw-spacing) * 8)!important;height:calc(var(--astw-spacing) * 8)!important}}.astw\:group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\){&:is(:where(.astw\:group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}}.astw\:group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--astw-spacing) * 4)))}}.astw\:group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--astw-spacing) * 4)) + 2px)}}.astw\:group-data-\[collapsible\=icon\]\:overflow-hidden{&:is(:where(.astw\:group)[data-collapsible=icon] *){overflow:hidden}}.astw\:group-data-\[collapsible\=icon\]\:p-0\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){padding:calc(var(--astw-spacing) * 0)!important}}.astw\:group-data-\[collapsible\=icon\]\:p-2\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){padding:calc(var(--astw-spacing) * 2)!important}}.astw\:group-data-\[collapsible\=icon\]\:opacity-0{&:is(:where(.astw\:group)[data-collapsible=icon] *){opacity:0%}}.astw\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}}.astw\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}}.astw\:group-data-\[collapsible\=offcanvas\]\:w-0{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){width:calc(var(--astw-spacing) * 0)}}.astw\:group-data-\[collapsible\=offcanvas\]\:translate-x-0{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){--tw-translate-x: calc(var(--astw-spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}}.astw\:group-data-\[side\=left\]\:-right-4{&:is(:where(.astw\:group)[data-side=left] *){right:calc(var(--astw-spacing) * -4)}}.astw\:group-data-\[side\=left\]\:border-r{&:is(:where(.astw\:group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}}.astw\:group-data-\[side\=right\]\:left-0{&:is(:where(.astw\:group)[data-side=right] *){left:calc(var(--astw-spacing) * 0)}}.astw\:group-data-\[side\=right\]\:rotate-180{&:is(:where(.astw\:group)[data-side=right] *){rotate:180deg}}.astw\:group-data-\[side\=right\]\:border-l{&:is(:where(.astw\:group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}}.astw\:group-data-\[variant\=floating\]\:rounded-lg{&:is(:where(.astw\:group)[data-variant=floating] *){border-radius:var(--radius)}}.astw\:group-data-\[variant\=floating\]\:border{&:is(:where(.astw\:group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}}.astw\:group-data-\[variant\=floating\]\:border-sidebar-border{&:is(:where(.astw\:group)[data-variant=floating] *){border-color:var(--sidebar-border)}}.astw\:group-data-\[variant\=floating\]\:shadow-sm{&:is(:where(.astw\: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)}}.astw\:peer-hover\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.astw\:peer\/menu-button):hover~*){@media (hover: hover){color:var(--sidebar-accent-foreground)}}}.astw\:peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.astw\:peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}}.astw\:peer-data-\[size\=default\]\/menu-button\:top-1\.5{&:is(:where(.astw\:peer\/menu-button)[data-size=default]~*){top:calc(var(--astw-spacing) * 1.5)}}.astw\:peer-data-\[size\=lg\]\/menu-button\:top-2\.5{&:is(:where(.astw\:peer\/menu-button)[data-size=lg]~*){top:calc(var(--astw-spacing) * 2.5)}}.astw\:peer-data-\[size\=sm\]\/menu-button\:top-1{&:is(:where(.astw\:peer\/menu-button)[data-size=sm]~*){top:calc(var(--astw-spacing) * 1)}}.astw\:selection\:bg-primary{& *::selection{background-color:var(--primary)}&::selection{background-color:var(--primary)}}.astw\:selection\:text-primary-foreground{& *::selection{color:var(--primary-foreground)}&::selection{color:var(--primary-foreground)}}.astw\:file\:inline-flex{&::file-selector-button{display:inline-flex}}.astw\:file\:h-7{&::file-selector-button{height:calc(var(--astw-spacing) * 7)}}.astw\:file\:border-0{&::file-selector-button{border-style:var(--tw-border-style);border-width:0px}}.astw\:file\:bg-transparent{&::file-selector-button{background-color:transparent}}.astw\:file\:text-sm{&::file-selector-button{font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}}.astw\:file\:font-medium{&::file-selector-button{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}}.astw\:file\:text-foreground{&::file-selector-button{color:var(--foreground)}}.astw\:placeholder\:text-muted-foreground{&::placeholder{color:var(--muted-foreground)}}.astw\:after\:absolute{&:after{content:var(--tw-content);position:absolute}}.astw\:after\:-inset-2{&:after{content:var(--tw-content);inset:calc(var(--astw-spacing) * -2)}}.astw\:after\:inset-y-0{&:after{content:var(--tw-content);inset-block:calc(var(--astw-spacing) * 0)}}.astw\:after\:left-1\/2{&:after{content:var(--tw-content);left:50%}}.astw\:after\:w-\[2px\]{&:after{content:var(--tw-content);width:2px}}.astw\:group-data-\[collapsible\=offcanvas\]\:after\:left-full{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){&:after{content:var(--tw-content);left:100%}}}.astw\:last\:text-foreground{&:last-child{color:var(--foreground)}}.astw\:hover\:bg-accent{&:hover{@media (hover: hover){background-color:var(--accent)}}}.astw\: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)}}}}.astw\: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)}}}}.astw\: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)}}}}.astw\: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)}}}}.astw\:hover\:bg-sidebar-accent{&:hover{@media (hover: hover){background-color:var(--sidebar-accent)}}}.astw\:hover\:text-accent-foreground{&:hover{@media (hover: hover){color:var(--accent-foreground)}}}.astw\:hover\:text-foreground{&:hover{@media (hover: hover){color:var(--foreground)}}}.astw\:hover\:text-sidebar-accent-foreground{&:hover{@media (hover: hover){color:var(--sidebar-accent-foreground)}}}.astw\:hover\:underline{&:hover{@media (hover: hover){text-decoration-line:underline}}}.astw\:hover\:opacity-100{&:hover{@media (hover: hover){opacity:100%}}}.astw\: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)}}}.astw\:hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar{&:hover{@media (hover: hover){&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}}}}.astw\:hover\:after\:bg-sidebar-border{&:hover{@media (hover: hover){&:after{content:var(--tw-content);background-color:var(--sidebar-border)}}}}.astw\: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)}}.astw\:focus\:ring-ring{&:focus{--tw-ring-color: var(--ring)}}.astw\: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)}}.astw\:focus\:outline-hidden{&:focus{--tw-outline-style: none;outline-style:none;@media (forced-colors: active){outline:2px solid transparent;outline-offset:2px}}}.astw\:focus-visible\:border-ring{&:focus-visible{border-color:var(--ring)}}.astw\: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)}}.astw\: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)}}.astw\: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)}}}.astw\: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)}}}.astw\:active\:bg-sidebar-accent{&:active{background-color:var(--sidebar-accent)}}.astw\:active\:text-sidebar-accent-foreground{&:active{color:var(--sidebar-accent-foreground)}}.astw\:disabled\:pointer-events-none{&:disabled{pointer-events:none}}.astw\:disabled\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.astw\:disabled\:opacity-50{&:disabled{opacity:50%}}.astw\:in-data-\[side\=left\]\:cursor-w-resize{:where(*[data-side=left]) &{cursor:w-resize}}.astw\:in-data-\[side\=right\]\:cursor-e-resize{:where(*[data-side=right]) &{cursor:e-resize}}.astw\:has-data-\[variant\=inset\]\:bg-sidebar{&:has(*[data-variant=inset]){background-color:var(--sidebar)}}.astw\:has-\[\>svg\]\:px-2\.5{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 2.5)}}.astw\:has-\[\>svg\]\:px-3{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 3)}}.astw\:has-\[\>svg\]\:px-4{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 4)}}.astw\:aria-disabled\:pointer-events-none{&[aria-disabled=true]{pointer-events:none}}.astw\:aria-disabled\:opacity-50{&[aria-disabled=true]{opacity:50%}}.astw\:aria-invalid\:border-destructive{&[aria-invalid=true]{border-color:var(--destructive)}}.astw\: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)}}}.astw\:data-\[active\=true\]\:bg-sidebar-accent{&[data-active=true]{background-color:var(--sidebar-accent)}}.astw\:data-\[active\=true\]\:font-medium{&[data-active=true]{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}}.astw\:data-\[active\=true\]\:text-sidebar-accent-foreground{&[data-active=true]{color:var(--sidebar-accent-foreground)}}.astw\:data-\[orientation\=horizontal\]\:h-px{&[data-orientation=horizontal]{height:1px}}.astw\:data-\[orientation\=horizontal\]\:w-full{&[data-orientation=horizontal]{width:100%}}.astw\:data-\[orientation\=vertical\]\:h-full{&[data-orientation=vertical]{height:100%}}.astw\:data-\[orientation\=vertical\]\:w-px{&[data-orientation=vertical]{width:1px}}.astw\:data-\[side\=bottom\]\:slide-in-from-top-2{&[data-side=bottom]{--tw-enter-translate-y: calc(2*var(--spacing)*-1)}}.astw\:data-\[side\=left\]\:slide-in-from-right-2{&[data-side=left]{--tw-enter-translate-x: calc(2*var(--spacing))}}.astw\:data-\[side\=right\]\:slide-in-from-left-2{&[data-side=right]{--tw-enter-translate-x: calc(2*var(--spacing)*-1)}}.astw\:data-\[side\=top\]\:slide-in-from-bottom-2{&[data-side=top]{--tw-enter-translate-y: calc(2*var(--spacing))}}.astw\:data-\[state\=closed\]\:animate-out{&[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}}.astw\:data-\[state\=closed\]\:duration-300{&[data-state=closed]{--tw-duration: .3s;transition-duration:.3s}}.astw\:data-\[state\=closed\]\:fade-out-0{&[data-state=closed]{--tw-exit-opacity: 0 ;--tw-exit-opacity: 0}}.astw\:data-\[state\=closed\]\:zoom-out-95{&[data-state=closed]{--tw-exit-scale: 95% ;--tw-exit-scale: .95}}.astw\:data-\[state\=closed\]\:slide-out-to-bottom{&[data-state=closed]{--tw-exit-translate-y: 100%}}.astw\:data-\[state\=closed\]\:slide-out-to-left{&[data-state=closed]{--tw-exit-translate-x: -100%}}.astw\:data-\[state\=closed\]\:slide-out-to-right{&[data-state=closed]{--tw-exit-translate-x: 100%}}.astw\:data-\[state\=closed\]\:slide-out-to-top{&[data-state=closed]{--tw-exit-translate-y: -100%}}.astw\:data-\[state\=open\]\:rotate-90{&[data-state=open]{rotate:90deg}}.astw\:data-\[state\=open\]\:animate-in{&[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}}.astw\:data-\[state\=open\]\:bg-accent{&[data-state=open]{background-color:var(--accent)}}.astw\:data-\[state\=open\]\:bg-secondary{&[data-state=open]{background-color:var(--secondary)}}.astw\:data-\[state\=open\]\:text-muted-foreground{&[data-state=open]{color:var(--muted-foreground)}}.astw\:data-\[state\=open\]\:opacity-100{&[data-state=open]{opacity:100%}}.astw\:data-\[state\=open\]\:duration-500{&[data-state=open]{--tw-duration: .5s;transition-duration:.5s}}.astw\:data-\[state\=open\]\:fade-in-0{&[data-state=open]{--tw-enter-opacity: 0 ;--tw-enter-opacity: 0}}.astw\:data-\[state\=open\]\:zoom-in-95{&[data-state=open]{--tw-enter-scale: 95% ;--tw-enter-scale: .95}}.astw\:data-\[state\=open\]\:slide-in-from-bottom{&[data-state=open]{--tw-enter-translate-y: 100%}}.astw\:data-\[state\=open\]\:slide-in-from-left{&[data-state=open]{--tw-enter-translate-x: -100%}}.astw\:data-\[state\=open\]\:slide-in-from-right{&[data-state=open]{--tw-enter-translate-x: 100%}}.astw\:data-\[state\=open\]\:slide-in-from-top{&[data-state=open]{--tw-enter-translate-y: -100%}}.astw\:data-\[state\=open\]\:hover\:bg-sidebar-accent{&[data-state=open]{&:hover{@media (hover: hover){background-color:var(--sidebar-accent)}}}}.astw\:data-\[state\=open\]\:hover\:text-sidebar-accent-foreground{&[data-state=open]{&:hover{@media (hover: hover){color:var(--sidebar-accent-foreground)}}}}.astw\:data-\[state\=selected\]\:bg-muted{&[data-state=selected]{background-color:var(--muted)}}.astw\:sm\:flex{@media (width >= 40rem){display:flex}}.astw\:sm\:max-w-lg{@media (width >= 40rem){max-width:var(--astw-container-lg)}}.astw\:sm\:max-w-sm{@media (width >= 40rem){max-width:var(--astw-container-sm)}}.astw\:sm\:flex-row{@media (width >= 40rem){flex-direction:row}}.astw\:sm\:justify-end{@media (width >= 40rem){justify-content:flex-end}}.astw\:sm\:gap-2\.5{@media (width >= 40rem){gap:calc(var(--astw-spacing) * 2.5)}}.astw\:sm\:text-left{@media (width >= 40rem){text-align:left}}.astw\:md\:block{@media (width >= 48rem){display:block}}.astw\:md\:flex{@media (width >= 48rem){display:flex}}.astw\:md\:hidden{@media (width >= 48rem){display:none}}.astw\:md\:w-xs{@media (width >= 48rem){width:var(--astw-container-xs)}}.astw\:md\:flex-row{@media (width >= 48rem){flex-direction:row}}.astw\:md\:text-sm{@media (width >= 48rem){font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}}.astw\:md\:opacity-0{@media (width >= 48rem){opacity:0%}}.astw\:md\:peer-data-\[variant\=inset\]\:px-8{@media (width >= 48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){padding-inline:calc(var(--astw-spacing) * 8)}}}.astw\:md\:peer-data-\[variant\=inset\]\:py-2{@media (width >= 48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){padding-block:calc(var(--astw-spacing) * 2)}}}.astw\:md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:pl-2{@media (width >= 48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){&:is(:where(.astw\:peer)[data-state=collapsed]~*){padding-left:calc(var(--astw-spacing) * 2)}}}}.astw\:md\:after\:hidden{@media (width >= 48rem){&:after{content:var(--tw-content);display:none}}}.astw\:dark\:border-input{&:where(.dark,.dark *){border-color:var(--input)}}.astw\:dark\:bg-destructive\/60{&:where(.dark,.dark *){background-color:var(--destructive);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}}.astw\:dark\:bg-input\/30{&:where(.dark,.dark *){background-color:var(--input);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}}.astw\:dark\:hover\:bg-accent\/50{&:where(.dark,.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)}}}}}.astw\:dark\:hover\:bg-input\/50{&:where(.dark,.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)}}}}}.astw\:dark\:focus-visible\:ring-destructive\/40{&:where(.dark,.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)}}}}.astw\:dark\:aria-invalid\:ring-destructive\/40{&:where(.dark,.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)}}}}.astw\:\[\&_svg\]\:pointer-events-none{& svg{pointer-events:none}}.astw\:\[\&_svg\]\:shrink-0{& svg{flex-shrink:0}}.astw\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4{& svg:not([class*=size-]){width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}}.astw\:\[\&_tr\]\:border-b{& tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}.astw\:\[\&_tr\:last-child\]\:border-0{& tr:last-child{border-style:var(--tw-border-style);border-width:0px}}.astw\:\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0{&:has([role=checkbox]){padding-right:calc(var(--astw-spacing) * 0)}}.astw\:\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]{>[role=checkbox]{--tw-translate-y: 2px;translate:var(--tw-translate-x) var(--tw-translate-y)}}.astw\:\[\&\>button\]\:hidden{>button{display:none}}.astw\:\[\&\>span\:last-child\]\:truncate{>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.astw\:\[\&\>svg\]\:size-3\.5{>svg{width:calc(var(--astw-spacing) * 3.5);height:calc(var(--astw-spacing) * 3.5)}}.astw\:\[\&\>svg\]\:size-4{>svg{width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}}.astw\:\[\&\>svg\]\:shrink-0{>svg{flex-shrink:0}}.astw\:\[\&\>svg\]\:text-sidebar-accent-foreground{>svg{color:var(--sidebar-accent-foreground)}}.astw\:\[\&\>tr\]\:last\:border-b-0{>tr{&:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}}}.astw\:\[\&\[data-state\=open\]_\.astw-rotate-target\]\:rotate-90{&[data-state=open] .astw-rotate-target{rotate:90deg}}.astw\:\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{[data-side=left][data-collapsible=offcanvas] &{right:calc(var(--astw-spacing) * -2)}}.astw\:\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{[data-side=left][data-state=collapsed] &{cursor:e-resize}}.astw\:\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{[data-side=right][data-collapsible=offcanvas] &{left:calc(var(--astw-spacing) * -2)}}.astw\:\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{[data-side=right][data-state=collapsed] &{cursor:w-resize}}}@property --tw-animation-delay{syntax: "*"; inherits: false; initial-value: 0s;}@property --tw-animation-direction{syntax: "*"; inherits: false; initial-value: normal;}@property --tw-animation-duration{syntax: "*"; inherits: false;}@property --tw-animation-fill-mode{syntax: "*"; inherits: false; initial-value: none;}@property --tw-animation-iteration-count{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-translate-y{syntax: "*"; inherits: false; initial-value: 0;}:root{--background: rgba(250, 250, 250, 1);--foreground: rgba(10, 10, 10, 1);--card: rgba(255, 255, 255, 1);--card-foreground: rgba(10, 10, 10, 1);--popover: rgba(255, 255, 255, 1);--popover-foreground: rgba(10, 10, 10, 1);--primary: rgba(23, 23, 23, 1);--primary-foreground: rgba(250, 250, 250, 1);--secondary: rgba(245, 245, 245, 1);--secondary-foreground: rgba(23, 23, 23, 1);--muted: rgba(245, 245, 245, 1);--muted-foreground: rgba(115, 115, 115, 1);--accent: rgba(245, 245, 245, 1);--accent-foreground: rgba(23, 23, 23, 1);--destructive: rgba(220, 38, 38, 1);--destructive-foreground: rgba(254, 242, 242, 1);--border: rgba(229, 229, 229, 1);--input: rgba(229, 229, 229, 1);--ring: rgba(163, 163, 163, 1);--chart-1: rgba(234, 88, 12, 1);--chart-2: rgba(13, 148, 136, 1);--chart-3: rgba(22, 78, 99, 1);--chart-4: rgba(251, 191, 36, 1);--chart-5: rgba(245, 158, 11, 1);--radius: .625rem;--sidebar: rgba(250, 250, 250, 1);--sidebar-foreground: rgba(10, 10, 10, 1);--sidebar-primary: rgba(23, 23, 23, 1);--sidebar-primary-foreground: rgba(250, 250, 250, 1);--sidebar-accent: rgba(245, 245, 245, 1);--sidebar-accent-foreground: rgba(23, 23, 23, 1);--sidebar-border: rgba(229, 229, 229, 1);--sidebar-ring: rgba(163, 163, 163, 1)}.dark{--background: rgba(10, 10, 10, 1);--foreground: rgba(250, 250, 250, 1);--card: rgba(23, 23, 23, 1);--card-foreground: rgba(250, 250, 250, 1);--popover: rgba(38, 38, 38, 1);--popover-foreground: rgba(250, 250, 250, 1);--primary: rgba(229, 229, 229, 1);--primary-foreground: rgba(23, 23, 23, 1);--secondary: rgba(38, 38, 38, 1);--secondary-foreground: rgba(250, 250, 250, 1);--muted: rgba(38, 38, 38, 1);--muted-foreground: rgba(163, 163, 163, 1);--accent: rgba(64, 64, 64, 1);--accent-foreground: rgba(250, 250, 250, 1);--destructive: rgba(248, 113, 113, 1);--destructive-foreground: rgba(254, 242, 242, 1);--border: rgba(255, 255, 255, .10000000149011612);--input: rgba(255, 255, 255, .15000000596046448);--ring: rgba(115, 115, 115, 1);--chart-1: rgba(29, 78, 216, 1);--chart-2: rgba(16, 185, 129, 1);--chart-3: rgba(245, 158, 11, 1);--chart-4: rgba(168, 85, 247, 1);--chart-5: rgba(244, 63, 94, 1);--sidebar: rgba(23, 23, 23, 1);--sidebar-foreground: rgba(250, 250, 250, 1);--sidebar-primary: rgba(29, 78, 216, 1);--sidebar-primary-foreground: rgba(250, 250, 250, 1);--sidebar-accent: rgba(38, 38, 38, 1);--sidebar-accent-foreground: rgba(250, 250, 250, 1);--sidebar-border: rgba(255, 255, 255, .10000000149011612);--sidebar-ring: rgba(82, 82, 82, 1)}@layer base{*,:after,:before,::backdrop,::file-selector-button{border-color:var(--color-gray-200, currentcolor)}}@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);font-family:var(--astw-font-sans);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{height:calc(var(--astw-spacing) * 2);width:calc(var(--astw-spacing) * 2);background-color:var(--muted)}::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--muted-foreground)}::-webkit-scrollbar-corner{background-color:var(--muted-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-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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,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-duration: initial;--tw-ease: initial;--tw-content: "";--tw-animation-delay: 0s;--tw-animation-direction: normal;--tw-animation-duration: initial;--tw-animation-fill-mode: none;--tw-animation-iteration-count: 1;--tw-enter-blur: 0;--tw-enter-opacity: 1;--tw-enter-rotate: 0;--tw-enter-scale: 1;--tw-enter-translate-x: 0;--tw-enter-translate-y: 0;--tw-exit-blur: 0;--tw-exit-opacity: 1;--tw-exit-rotate: 0;--tw-exit-scale: 1;--tw-exit-translate-x: 0;--tw-exit-translate-y: 0}}}
|
|
2
|
-
/*! tailwindcss v4.1.
|
|
1
|
+
@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--astw-font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--astw-font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--astw-color-black: #000;--astw-color-white: #fff;--astw-spacing: .25rem;--astw-container-xs: 20rem;--astw-container-sm: 24rem;--astw-container-lg: 32rem;--astw-container-5xl: 64rem;--astw-text-xs: .75rem;--astw-text-xs--line-height: calc(1 / .75);--astw-text-sm: .875rem;--astw-text-sm--line-height: calc(1.25 / .875);--astw-text-base: 1rem;--astw-text-base--line-height: 1.5 ;--astw-text-lg: 1.125rem;--astw-text-lg--line-height: calc(1.75 / 1.125);--astw-font-weight-normal: 400;--astw-font-weight-medium: 500;--astw-font-weight-semibold: 600;--astw-font-weight-bold: 700;--astw-tracking-tight: -.025em;--astw-radius-xs: .125rem;--astw-ease-in-out: cubic-bezier(.4, 0, .2, 1);--astw-animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--astw-default-transition-duration: .15s;--astw-default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--astw-default-font-family: var(--astw-font-sans);--astw-default-mono-font-family: var(--astw-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(--astw-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(--astw-default-font-feature-settings, normal);font-variation-settings:var(--astw-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(--astw-default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--astw-default-mono-font-feature-settings, normal);font-variation-settings:var(--astw-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}::-webkit-calendar-picker-indicator{line-height:1}:-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{.astw\:pointer-events-none{pointer-events:none}.astw\:sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.astw\:absolute{position:absolute}.astw\:fixed{position:fixed}.astw\:relative{position:relative}.astw\:inset-0{inset:calc(var(--astw-spacing) * 0)}.astw\:inset-x-0{inset-inline:calc(var(--astw-spacing) * 0)}.astw\:inset-y-0{inset-block:calc(var(--astw-spacing) * 0)}.astw\:top-0{top:calc(var(--astw-spacing) * 0)}.astw\:top-1\.5{top:calc(var(--astw-spacing) * 1.5)}.astw\:top-3\.5{top:calc(var(--astw-spacing) * 3.5)}.astw\:top-4{top:calc(var(--astw-spacing) * 4)}.astw\:top-\[50\%\]{top:50%}.astw\:right-0{right:calc(var(--astw-spacing) * 0)}.astw\:right-1{right:calc(var(--astw-spacing) * 1)}.astw\:right-3{right:calc(var(--astw-spacing) * 3)}.astw\:right-4{right:calc(var(--astw-spacing) * 4)}.astw\:bottom-0{bottom:calc(var(--astw-spacing) * 0)}.astw\:left-0{left:calc(var(--astw-spacing) * 0)}.astw\:left-\[50\%\]{left:50%}.astw\:z-10{z-index:10}.astw\:z-20{z-index:20}.astw\:z-50{z-index:50}.astw\:mx-2{margin-inline:calc(var(--astw-spacing) * 2)}.astw\:mx-3\.5{margin-inline:calc(var(--astw-spacing) * 3.5)}.astw\:mx-auto{margin-inline:auto}.astw\:mt-0\.5{margin-top:calc(var(--astw-spacing) * .5)}.astw\:mt-1{margin-top:calc(var(--astw-spacing) * 1)}.astw\:mt-2{margin-top:calc(var(--astw-spacing) * 2)}.astw\:mt-4{margin-top:calc(var(--astw-spacing) * 4)}.astw\:mt-auto{margin-top:auto}.astw\:mb-2{margin-bottom:calc(var(--astw-spacing) * 2)}.astw\:-ml-1{margin-left:calc(var(--astw-spacing) * -1)}.astw\:-ml-2\.5{margin-left:calc(var(--astw-spacing) * -2.5)}.astw\:flex{display:flex}.astw\:grid{display:grid}.astw\:hidden{display:none}.astw\:inline-flex{display:inline-flex}.astw\:aspect-square{aspect-ratio:1 / 1}.astw\:size-2\.5{width:calc(var(--astw-spacing) * 2.5);height:calc(var(--astw-spacing) * 2.5)}.astw\:size-4{width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}.astw\:size-4\.5{width:calc(var(--astw-spacing) * 4.5);height:calc(var(--astw-spacing) * 4.5)}.astw\:size-9{width:calc(var(--astw-spacing) * 9);height:calc(var(--astw-spacing) * 9)}.astw\:h-4{height:calc(var(--astw-spacing) * 4)}.astw\:h-5{height:calc(var(--astw-spacing) * 5)}.astw\:h-7{height:calc(var(--astw-spacing) * 7)}.astw\:h-8{height:calc(var(--astw-spacing) * 8)}.astw\:h-9{height:calc(var(--astw-spacing) * 9)}.astw\:h-10{height:calc(var(--astw-spacing) * 10)}.astw\:h-12{height:calc(var(--astw-spacing) * 12)}.astw\:h-14{height:calc(var(--astw-spacing) * 14)}.astw\:h-auto{height:auto}.astw\:h-full{height:100%}.astw\:h-svh{height:100svh}.astw\:min-h-0{min-height:calc(var(--astw-spacing) * 0)}.astw\:min-h-svh{min-height:100svh}.astw\:w-\(--sidebar-width\){width:var(--sidebar-width)}.astw\:w-3\/4{width:75%}.astw\:w-4{width:calc(var(--astw-spacing) * 4)}.astw\:w-5{width:calc(var(--astw-spacing) * 5)}.astw\:w-\[100\%\]{width:100%}.astw\:w-\[calc\(100\%-var\(--sidebar-width\)\)\]{width:calc(100% - var(--sidebar-width))}.astw\:w-auto{width:auto}.astw\:w-fit{width:fit-content}.astw\:w-full{width:100%}.astw\:max-w-\(--skeleton-width\){max-width:var(--skeleton-width)}.astw\:max-w-5xl{max-width:var(--astw-container-5xl)}.astw\:max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.astw\:min-w-0{min-width:calc(var(--astw-spacing) * 0)}.astw\:min-w-5{min-width:calc(var(--astw-spacing) * 5)}.astw\:flex-1{flex:1}.astw\:flex-shrink-0,.astw\:shrink-0{flex-shrink:0}.astw\:caption-bottom{caption-side:bottom}.astw\:origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.astw\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:-translate-x-px{--tw-translate-x: -1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-x-\[-50\%\]{--tw-translate-x: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-x-px{--tw-translate-x: 1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-y-\[-50\%\]{--tw-translate-y: -50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;translate:var(--tw-translate-x) var(--tw-translate-y)}.astw\:rotate-45{rotate:45deg}.astw\:animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.astw\:animate-pulse{animation:var(--astw-animate-pulse)}.astw\:flex-col{flex-direction:column}.astw\:flex-col-reverse{flex-direction:column-reverse}.astw\:flex-row{flex-direction:row}.astw\:flex-wrap{flex-wrap:wrap}.astw\:items-center{align-items:center}.astw\:items-start{align-items:flex-start}.astw\:justify-between{justify-content:space-between}.astw\:justify-center{justify-content:center}.astw\:justify-start{justify-content:flex-start}.astw\:gap-0\.5{gap:calc(var(--astw-spacing) * .5)}.astw\:gap-1{gap:calc(var(--astw-spacing) * 1)}.astw\:gap-1\.5{gap:calc(var(--astw-spacing) * 1.5)}.astw\:gap-2{gap:calc(var(--astw-spacing) * 2)}.astw\:gap-3{gap:calc(var(--astw-spacing) * 3)}.astw\:gap-4{gap:calc(var(--astw-spacing) * 4)}.astw\:gap-\[10px\]{gap:10px}.astw\:overflow-auto{overflow:auto}.astw\:overflow-hidden{overflow:hidden}.astw\:overflow-x-auto{overflow-x:auto}.astw\:rounded-\[2px\]{border-radius:2px}.astw\:rounded-lg{border-radius:var(--radius)}.astw\:rounded-md{border-radius:calc(var(--radius) - 2px)}.astw\:rounded-sm{border-radius:calc(var(--radius) - 4px)}.astw\:rounded-xs{border-radius:var(--astw-radius-xs)}.astw\:border{border-style:var(--tw-border-style);border-width:1px}.astw\:border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.astw\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.astw\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.astw\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.astw\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.astw\:border-input{border-color:var(--input)}.astw\:border-sidebar-border{border-color:var(--sidebar-border)}.astw\:border-x-border{border-inline-color:var(--border)}.astw\:bg-accent{background-color:var(--accent)}.astw\:bg-background{background-color:var(--background)}.astw\:bg-black\/50{background-color:var(--astw-color-black);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--astw-color-black) 50%,transparent)}}.astw\:bg-border{background-color:var(--border)}.astw\:bg-card{background-color:var(--card)}.astw\:bg-destructive{background-color:var(--destructive)}.astw\: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)}}.astw\:bg-primary{background-color:var(--primary)}.astw\:bg-secondary{background-color:var(--secondary)}.astw\:bg-sidebar{background-color:var(--sidebar)}.astw\:bg-sidebar-accent{background-color:var(--sidebar-accent)}.astw\:bg-sidebar-border{background-color:var(--sidebar-border)}.astw\:bg-transparent{background-color:transparent}.astw\:fill-primary{fill:var(--primary)}.astw\:p-0{padding:calc(var(--astw-spacing) * 0)}.astw\:p-2{padding:calc(var(--astw-spacing) * 2)}.astw\:p-3{padding:calc(var(--astw-spacing) * 3)}.astw\:p-4{padding:calc(var(--astw-spacing) * 4)}.astw\:p-6{padding:calc(var(--astw-spacing) * 6)}.astw\:px-1{padding-inline:calc(var(--astw-spacing) * 1)}.astw\:px-2{padding-inline:calc(var(--astw-spacing) * 2)}.astw\:px-2\.5{padding-inline:calc(var(--astw-spacing) * 2.5)}.astw\:px-3{padding-inline:calc(var(--astw-spacing) * 3)}.astw\:px-4{padding-inline:calc(var(--astw-spacing) * 4)}.astw\:px-6{padding-inline:calc(var(--astw-spacing) * 6)}.astw\:py-0\.5{padding-block:calc(var(--astw-spacing) * .5)}.astw\:py-1{padding-block:calc(var(--astw-spacing) * 1)}.astw\:py-1\.5{padding-block:calc(var(--astw-spacing) * 1.5)}.astw\:py-2{padding-block:calc(var(--astw-spacing) * 2)}.astw\:text-center{text-align:center}.astw\:text-left{text-align:left}.astw\:align-middle{vertical-align:middle}.astw\:text-base{font-size:var(--astw-text-base);line-height:var(--tw-leading, var(--astw-text-base--line-height))}.astw\:text-lg{font-size:var(--astw-text-lg);line-height:var(--tw-leading, var(--astw-text-lg--line-height))}.astw\:text-sm{font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}.astw\:text-xs{font-size:var(--astw-text-xs);line-height:var(--tw-leading, var(--astw-text-xs--line-height))}.astw\:leading-\[36px\]{--tw-leading: 36px;line-height:36px}.astw\:leading-none{--tw-leading: 1;line-height:1}.astw\:font-bold{--tw-font-weight: var(--astw-font-weight-bold);font-weight:var(--astw-font-weight-bold)}.astw\:font-medium{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}.astw\:font-normal{--tw-font-weight: var(--astw-font-weight-normal);font-weight:var(--astw-font-weight-normal)}.astw\:font-semibold{--tw-font-weight: var(--astw-font-weight-semibold);font-weight:var(--astw-font-weight-semibold)}.astw\:tracking-tight{--tw-tracking: var(--astw-tracking-tight);letter-spacing:var(--astw-tracking-tight)}.astw\:text-balance{text-wrap:balance}.astw\:break-words{overflow-wrap:break-word}.astw\:whitespace-nowrap{white-space:nowrap}.astw\:text-destructive{color:var(--destructive)}.astw\:text-foreground{color:var(--foreground)}.astw\:text-muted-foreground{color:var(--muted-foreground)}.astw\:text-primary{color:var(--primary)}.astw\:text-primary-foreground{color:var(--primary-foreground)}.astw\:text-secondary-foreground{color:var(--secondary-foreground)}.astw\:text-sidebar-foreground{color:var(--sidebar-foreground)}.astw\: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)}}.astw\:text-white{color:var(--astw-color-white)}.astw\: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,)}.astw\:underline-offset-4{text-underline-offset:4px}.astw\:opacity-70{opacity:70%}.astw\: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)}.astw\: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)}.astw\: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)}.astw\: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)}.astw\:ring-sidebar-ring{--tw-ring-color: var(--sidebar-ring)}.astw\:outline-hidden{--tw-outline-style: none;outline-style:none;@media(forced-colors:active){outline:2px solid transparent;outline-offset:2px}}.astw\: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,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\,height\]{transition-property:width,height;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\: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(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--astw-default-transition-timing-function));transition-duration:var(--tw-duration, var(--astw-default-transition-duration))}.astw\:duration-200{--tw-duration: .2s;transition-duration:.2s}.astw\:ease-in-out{--tw-ease: var(--astw-ease-in-out);transition-timing-function:var(--astw-ease-in-out)}.astw\:ease-linear{--tw-ease: linear;transition-timing-function:linear}.astw\:fade-in-0{--tw-enter-opacity: 0 ;--tw-enter-opacity: 0}.astw\:outline-none{--tw-outline-style: none;outline-style:none}.astw\:select-none{-webkit-user-select:none;user-select:none}.astw\:zoom-in-95{--tw-enter-scale: 95% ;--tw-enter-scale: .95}.astw\:group-focus-within\/menu-item\:opacity-100{&:is(:where(.astw\:group\/menu-item):focus-within *){opacity:100%}}.astw\:group-hover\/menu-item\:opacity-100{&:is(:where(.astw\:group\/menu-item):hover *){@media(hover:hover){opacity:100%}}}.astw\:group-has-data-\[collapsible\=icon\]\/sidebar-wrapper\:h-12{&:is(:where(.astw\:group\/sidebar-wrapper):has(*[data-collapsible=icon]) *){height:calc(var(--astw-spacing) * 12)}}.astw\:group-has-data-\[sidebar\=menu-action\]\/menu-item\:pr-8{&:is(:where(.astw\:group\/menu-item):has(*[data-sidebar=menu-action]) *){padding-right:calc(var(--astw-spacing) * 8)}}.astw\:group-data-\[collapsible\=icon\]\:-mt-8{&:is(:where(.astw\:group)[data-collapsible=icon] *){margin-top:calc(var(--astw-spacing) * -8)}}.astw\:group-data-\[collapsible\=icon\]\:hidden{&:is(:where(.astw\:group)[data-collapsible=icon] *){display:none}}.astw\:group-data-\[collapsible\=icon\]\:size-8\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--astw-spacing) * 8)!important;height:calc(var(--astw-spacing) * 8)!important}}.astw\:group-data-\[collapsible\=icon\]\:w-\(--sidebar-width-icon\){&:is(:where(.astw\:group)[data-collapsible=icon] *){width:var(--sidebar-width-icon)}}.astw\:group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--astw-spacing) * 4)))}}.astw\:group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{&:is(:where(.astw\:group)[data-collapsible=icon] *){width:calc(var(--sidebar-width-icon) + (calc(var(--astw-spacing) * 4)) + 2px)}}.astw\:group-data-\[collapsible\=icon\]\:overflow-hidden{&:is(:where(.astw\:group)[data-collapsible=icon] *){overflow:hidden}}.astw\:group-data-\[collapsible\=icon\]\:p-0\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){padding:calc(var(--astw-spacing) * 0)!important}}.astw\:group-data-\[collapsible\=icon\]\:p-2\!{&:is(:where(.astw\:group)[data-collapsible=icon] *){padding:calc(var(--astw-spacing) * 2)!important}}.astw\:group-data-\[collapsible\=icon\]\:opacity-0{&:is(:where(.astw\:group)[data-collapsible=icon] *){opacity:0%}}.astw\:group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){right:calc(var(--sidebar-width) * -1)}}.astw\:group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){left:calc(var(--sidebar-width) * -1)}}.astw\:group-data-\[collapsible\=offcanvas\]\:w-0{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){width:calc(var(--astw-spacing) * 0)}}.astw\:group-data-\[collapsible\=offcanvas\]\:translate-x-0{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){--tw-translate-x: calc(var(--astw-spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}}.astw\:group-data-\[side\=left\]\:-right-4{&:is(:where(.astw\:group)[data-side=left] *){right:calc(var(--astw-spacing) * -4)}}.astw\:group-data-\[side\=left\]\:border-r{&:is(:where(.astw\:group)[data-side=left] *){border-right-style:var(--tw-border-style);border-right-width:1px}}.astw\:group-data-\[side\=right\]\:left-0{&:is(:where(.astw\:group)[data-side=right] *){left:calc(var(--astw-spacing) * 0)}}.astw\:group-data-\[side\=right\]\:rotate-180{&:is(:where(.astw\:group)[data-side=right] *){rotate:180deg}}.astw\:group-data-\[side\=right\]\:border-l{&:is(:where(.astw\:group)[data-side=right] *){border-left-style:var(--tw-border-style);border-left-width:1px}}.astw\:group-data-\[variant\=floating\]\:rounded-lg{&:is(:where(.astw\:group)[data-variant=floating] *){border-radius:var(--radius)}}.astw\:group-data-\[variant\=floating\]\:border{&:is(:where(.astw\:group)[data-variant=floating] *){border-style:var(--tw-border-style);border-width:1px}}.astw\:group-data-\[variant\=floating\]\:border-sidebar-border{&:is(:where(.astw\:group)[data-variant=floating] *){border-color:var(--sidebar-border)}}.astw\:group-data-\[variant\=floating\]\:shadow-sm{&:is(:where(.astw\: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)}}.astw\:peer-hover\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.astw\:peer\/menu-button):hover~*){@media(hover:hover){color:var(--sidebar-accent-foreground)}}}.astw\:peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{&:is(:where(.astw\:peer\/menu-button)[data-active=true]~*){color:var(--sidebar-accent-foreground)}}.astw\:peer-data-\[size\=default\]\/menu-button\:top-1\.5{&:is(:where(.astw\:peer\/menu-button)[data-size=default]~*){top:calc(var(--astw-spacing) * 1.5)}}.astw\:peer-data-\[size\=lg\]\/menu-button\:top-2\.5{&:is(:where(.astw\:peer\/menu-button)[data-size=lg]~*){top:calc(var(--astw-spacing) * 2.5)}}.astw\:peer-data-\[size\=sm\]\/menu-button\:top-1{&:is(:where(.astw\:peer\/menu-button)[data-size=sm]~*){top:calc(var(--astw-spacing) * 1)}}.astw\:selection\:bg-primary{& *::selection{background-color:var(--primary)}&::selection{background-color:var(--primary)}}.astw\:selection\:text-primary-foreground{& *::selection{color:var(--primary-foreground)}&::selection{color:var(--primary-foreground)}}.astw\:file\:inline-flex{&::file-selector-button{display:inline-flex}}.astw\:file\:h-7{&::file-selector-button{height:calc(var(--astw-spacing) * 7)}}.astw\:file\:border-0{&::file-selector-button{border-style:var(--tw-border-style);border-width:0px}}.astw\:file\:bg-transparent{&::file-selector-button{background-color:transparent}}.astw\:file\:text-sm{&::file-selector-button{font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}}.astw\:file\:font-medium{&::file-selector-button{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}}.astw\:file\:text-foreground{&::file-selector-button{color:var(--foreground)}}.astw\:placeholder\:text-muted-foreground{&::placeholder{color:var(--muted-foreground)}}.astw\:after\:absolute{&:after{content:var(--tw-content);position:absolute}}.astw\:after\:-inset-2{&:after{content:var(--tw-content);inset:calc(var(--astw-spacing) * -2)}}.astw\:after\:inset-y-0{&:after{content:var(--tw-content);inset-block:calc(var(--astw-spacing) * 0)}}.astw\:after\:left-1\/2{&:after{content:var(--tw-content);left:50%}}.astw\:after\:w-\[2px\]{&:after{content:var(--tw-content);width:2px}}.astw\:group-data-\[collapsible\=offcanvas\]\:after\:left-full{&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){&:after{content:var(--tw-content);left:100%}}}.astw\:last\:text-foreground{&:last-child{color:var(--foreground)}}.astw\:hover\:bg-accent{&:hover{@media(hover:hover){background-color:var(--accent)}}}.astw\: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)}}}}.astw\: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)}}}}.astw\: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)}}}}.astw\: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)}}}}.astw\:hover\:bg-sidebar-accent{&:hover{@media(hover:hover){background-color:var(--sidebar-accent)}}}.astw\:hover\:text-accent-foreground{&:hover{@media(hover:hover){color:var(--accent-foreground)}}}.astw\:hover\:text-foreground{&:hover{@media(hover:hover){color:var(--foreground)}}}.astw\:hover\:text-sidebar-accent-foreground{&:hover{@media(hover:hover){color:var(--sidebar-accent-foreground)}}}.astw\:hover\:underline{&:hover{@media(hover:hover){text-decoration-line:underline}}}.astw\:hover\:opacity-100{&:hover{@media(hover:hover){opacity:100%}}}.astw\: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)}}}.astw\:hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar{&:hover{@media(hover:hover){&:is(:where(.astw\:group)[data-collapsible=offcanvas] *){background-color:var(--sidebar)}}}}.astw\:hover\:after\:bg-sidebar-border{&:hover{@media(hover:hover){&:after{content:var(--tw-content);background-color:var(--sidebar-border)}}}}.astw\: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)}}.astw\:focus\:ring-ring{&:focus{--tw-ring-color: var(--ring)}}.astw\: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)}}.astw\:focus\:outline-hidden{&:focus{--tw-outline-style: none;outline-style:none;@media(forced-colors:active){outline:2px solid transparent;outline-offset:2px}}}.astw\:focus-visible\:border-ring{&:focus-visible{border-color:var(--ring)}}.astw\: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)}}.astw\: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)}}.astw\: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)}}}.astw\: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)}}}.astw\:active\:bg-sidebar-accent{&:active{background-color:var(--sidebar-accent)}}.astw\:active\:text-sidebar-accent-foreground{&:active{color:var(--sidebar-accent-foreground)}}.astw\:disabled\:pointer-events-none{&:disabled{pointer-events:none}}.astw\:disabled\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.astw\:disabled\:opacity-50{&:disabled{opacity:50%}}.astw\:in-data-\[side\=left\]\:cursor-w-resize{:where(*[data-side=left]) &{cursor:w-resize}}.astw\:in-data-\[side\=right\]\:cursor-e-resize{:where(*[data-side=right]) &{cursor:e-resize}}.astw\:has-data-\[variant\=inset\]\:bg-sidebar{&:has(*[data-variant=inset]){background-color:var(--sidebar)}}.astw\:has-\[\>svg\]\:px-2\.5{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 2.5)}}.astw\:has-\[\>svg\]\:px-3{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 3)}}.astw\:has-\[\>svg\]\:px-4{&:has(>svg){padding-inline:calc(var(--astw-spacing) * 4)}}.astw\:aria-disabled\:pointer-events-none{&[aria-disabled=true]{pointer-events:none}}.astw\:aria-disabled\:opacity-50{&[aria-disabled=true]{opacity:50%}}.astw\:aria-invalid\:border-destructive{&[aria-invalid=true]{border-color:var(--destructive)}}.astw\: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)}}}.astw\:data-\[active\=true\]\:bg-sidebar-accent{&[data-active=true]{background-color:var(--sidebar-accent)}}.astw\:data-\[active\=true\]\:font-medium{&[data-active=true]{--tw-font-weight: var(--astw-font-weight-medium);font-weight:var(--astw-font-weight-medium)}}.astw\:data-\[active\=true\]\:text-sidebar-accent-foreground{&[data-active=true]{color:var(--sidebar-accent-foreground)}}.astw\:data-\[orientation\=horizontal\]\:h-px{&[data-orientation=horizontal]{height:1px}}.astw\:data-\[orientation\=horizontal\]\:w-full{&[data-orientation=horizontal]{width:100%}}.astw\:data-\[orientation\=vertical\]\:h-full{&[data-orientation=vertical]{height:100%}}.astw\:data-\[orientation\=vertical\]\:w-px{&[data-orientation=vertical]{width:1px}}.astw\:data-\[side\=bottom\]\:slide-in-from-top-2{&[data-side=bottom]{--tw-enter-translate-y: calc(2*var(--spacing)*-1)}}.astw\:data-\[side\=left\]\:slide-in-from-right-2{&[data-side=left]{--tw-enter-translate-x: calc(2*var(--spacing))}}.astw\:data-\[side\=right\]\:slide-in-from-left-2{&[data-side=right]{--tw-enter-translate-x: calc(2*var(--spacing)*-1)}}.astw\:data-\[side\=top\]\:slide-in-from-bottom-2{&[data-side=top]{--tw-enter-translate-y: calc(2*var(--spacing))}}.astw\:data-\[state\=closed\]\:animate-out{&[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}}.astw\:data-\[state\=closed\]\:duration-300{&[data-state=closed]{--tw-duration: .3s;transition-duration:.3s}}.astw\:data-\[state\=closed\]\:fade-out-0{&[data-state=closed]{--tw-exit-opacity: 0 ;--tw-exit-opacity: 0}}.astw\:data-\[state\=closed\]\:zoom-out-95{&[data-state=closed]{--tw-exit-scale: 95% ;--tw-exit-scale: .95}}.astw\:data-\[state\=closed\]\:slide-out-to-bottom{&[data-state=closed]{--tw-exit-translate-y: 100%}}.astw\:data-\[state\=closed\]\:slide-out-to-left{&[data-state=closed]{--tw-exit-translate-x: -100%}}.astw\:data-\[state\=closed\]\:slide-out-to-right{&[data-state=closed]{--tw-exit-translate-x: 100%}}.astw\:data-\[state\=closed\]\:slide-out-to-top{&[data-state=closed]{--tw-exit-translate-y: -100%}}.astw\:data-\[state\=open\]\:rotate-90{&[data-state=open]{rotate:90deg}}.astw\:data-\[state\=open\]\:animate-in{&[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}}.astw\:data-\[state\=open\]\:bg-accent{&[data-state=open]{background-color:var(--accent)}}.astw\:data-\[state\=open\]\:bg-secondary{&[data-state=open]{background-color:var(--secondary)}}.astw\:data-\[state\=open\]\:text-muted-foreground{&[data-state=open]{color:var(--muted-foreground)}}.astw\:data-\[state\=open\]\:opacity-100{&[data-state=open]{opacity:100%}}.astw\:data-\[state\=open\]\:duration-500{&[data-state=open]{--tw-duration: .5s;transition-duration:.5s}}.astw\:data-\[state\=open\]\:fade-in-0{&[data-state=open]{--tw-enter-opacity: 0 ;--tw-enter-opacity: 0}}.astw\:data-\[state\=open\]\:zoom-in-95{&[data-state=open]{--tw-enter-scale: 95% ;--tw-enter-scale: .95}}.astw\:data-\[state\=open\]\:slide-in-from-bottom{&[data-state=open]{--tw-enter-translate-y: 100%}}.astw\:data-\[state\=open\]\:slide-in-from-left{&[data-state=open]{--tw-enter-translate-x: -100%}}.astw\:data-\[state\=open\]\:slide-in-from-right{&[data-state=open]{--tw-enter-translate-x: 100%}}.astw\:data-\[state\=open\]\:slide-in-from-top{&[data-state=open]{--tw-enter-translate-y: -100%}}.astw\:data-\[state\=open\]\:hover\:bg-sidebar-accent{&[data-state=open]{&:hover{@media(hover:hover){background-color:var(--sidebar-accent)}}}}.astw\:data-\[state\=open\]\:hover\:text-sidebar-accent-foreground{&[data-state=open]{&:hover{@media(hover:hover){color:var(--sidebar-accent-foreground)}}}}.astw\:data-\[state\=selected\]\:bg-muted{&[data-state=selected]{background-color:var(--muted)}}.astw\:sm\:flex{@media(width>=40rem){display:flex}}.astw\:sm\:max-w-lg{@media(width>=40rem){max-width:var(--astw-container-lg)}}.astw\:sm\:max-w-sm{@media(width>=40rem){max-width:var(--astw-container-sm)}}.astw\:sm\:flex-row{@media(width>=40rem){flex-direction:row}}.astw\:sm\:justify-end{@media(width>=40rem){justify-content:flex-end}}.astw\:sm\:gap-2\.5{@media(width>=40rem){gap:calc(var(--astw-spacing) * 2.5)}}.astw\:sm\:text-left{@media(width>=40rem){text-align:left}}.astw\:md\:block{@media(width>=48rem){display:block}}.astw\:md\:flex{@media(width>=48rem){display:flex}}.astw\:md\:hidden{@media(width>=48rem){display:none}}.astw\:md\:w-xs{@media(width>=48rem){width:var(--astw-container-xs)}}.astw\:md\:flex-row{@media(width>=48rem){flex-direction:row}}.astw\:md\:text-sm{@media(width>=48rem){font-size:var(--astw-text-sm);line-height:var(--tw-leading, var(--astw-text-sm--line-height))}}.astw\:md\:opacity-0{@media(width>=48rem){opacity:0%}}.astw\:md\:peer-data-\[variant\=inset\]\:px-8{@media(width>=48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){padding-inline:calc(var(--astw-spacing) * 8)}}}.astw\:md\:peer-data-\[variant\=inset\]\:py-2{@media(width>=48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){padding-block:calc(var(--astw-spacing) * 2)}}}.astw\:md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:pl-2{@media(width>=48rem){&:is(:where(.astw\:peer)[data-variant=inset]~*){&:is(:where(.astw\:peer)[data-state=collapsed]~*){padding-left:calc(var(--astw-spacing) * 2)}}}}.astw\:md\:after\:hidden{@media(width>=48rem){&:after{content:var(--tw-content);display:none}}}.astw\:dark\:border-input{&:where(.dark,.dark *){border-color:var(--input)}}.astw\:dark\:bg-destructive\/60{&:where(.dark,.dark *){background-color:var(--destructive);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--destructive) 60%,transparent)}}}.astw\:dark\:bg-input\/30{&:where(.dark,.dark *){background-color:var(--input);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}}.astw\:dark\:hover\:bg-accent\/50{&:where(.dark,.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)}}}}}.astw\:dark\:hover\:bg-input\/50{&:where(.dark,.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)}}}}}.astw\:dark\:focus-visible\:ring-destructive\/40{&:where(.dark,.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)}}}}.astw\:dark\:aria-invalid\:ring-destructive\/40{&:where(.dark,.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)}}}}.astw\:\[\&_svg\]\:pointer-events-none{& svg{pointer-events:none}}.astw\:\[\&_svg\]\:shrink-0{& svg{flex-shrink:0}}.astw\:\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4{& svg:not([class*=size-]){width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}}.astw\:\[\&_tr\]\:border-b{& tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}.astw\:\[\&_tr\:last-child\]\:border-0{& tr:last-child{border-style:var(--tw-border-style);border-width:0px}}.astw\:\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0{&:has([role=checkbox]){padding-right:calc(var(--astw-spacing) * 0)}}.astw\:\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]{>[role=checkbox]{--tw-translate-y: 2px;translate:var(--tw-translate-x) var(--tw-translate-y)}}.astw\:\[\&\>button\]\:hidden{>button{display:none}}.astw\:\[\&\>span\:last-child\]\:truncate{>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.astw\:\[\&\>svg\]\:size-3\.5{>svg{width:calc(var(--astw-spacing) * 3.5);height:calc(var(--astw-spacing) * 3.5)}}.astw\:\[\&\>svg\]\:size-4{>svg{width:calc(var(--astw-spacing) * 4);height:calc(var(--astw-spacing) * 4)}}.astw\:\[\&\>svg\]\:shrink-0{>svg{flex-shrink:0}}.astw\:\[\&\>svg\]\:text-sidebar-accent-foreground{>svg{color:var(--sidebar-accent-foreground)}}.astw\:\[\&\>tr\]\:last\:border-b-0{>tr{&:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0px}}}.astw\:\[\&\[data-state\=open\]_\.astw-rotate-target\]\:rotate-90{&[data-state=open] .astw-rotate-target{rotate:90deg}}.astw\:\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{[data-side=left][data-collapsible=offcanvas] &{right:calc(var(--astw-spacing) * -2)}}.astw\:\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{[data-side=left][data-state=collapsed] &{cursor:e-resize}}.astw\:\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{[data-side=right][data-collapsible=offcanvas] &{left:calc(var(--astw-spacing) * -2)}}.astw\:\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{[data-side=right][data-state=collapsed] &{cursor:w-resize}}}@property --tw-animation-delay{syntax: "*"; inherits: false; initial-value: 0s;}@property --tw-animation-direction{syntax: "*"; inherits: false; initial-value: normal;}@property --tw-animation-duration{syntax: "*"; inherits: false;}@property --tw-animation-fill-mode{syntax: "*"; inherits: false; initial-value: none;}@property --tw-animation-iteration-count{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-enter-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-enter-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-blur{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-opacity{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-rotate{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-scale{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-exit-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-exit-translate-y{syntax: "*"; inherits: false; initial-value: 0;}:root{--background: rgba(250, 250, 250, 1);--foreground: rgba(10, 10, 10, 1);--card: rgba(255, 255, 255, 1);--card-foreground: rgba(10, 10, 10, 1);--popover: rgba(255, 255, 255, 1);--popover-foreground: rgba(10, 10, 10, 1);--primary: rgba(23, 23, 23, 1);--primary-foreground: rgba(250, 250, 250, 1);--secondary: rgba(245, 245, 245, 1);--secondary-foreground: rgba(23, 23, 23, 1);--muted: rgba(245, 245, 245, 1);--muted-foreground: rgba(115, 115, 115, 1);--accent: rgba(245, 245, 245, 1);--accent-foreground: rgba(23, 23, 23, 1);--destructive: rgba(220, 38, 38, 1);--destructive-foreground: rgba(254, 242, 242, 1);--border: rgba(229, 229, 229, 1);--input: rgba(229, 229, 229, 1);--ring: rgba(163, 163, 163, 1);--chart-1: rgba(234, 88, 12, 1);--chart-2: rgba(13, 148, 136, 1);--chart-3: rgba(22, 78, 99, 1);--chart-4: rgba(251, 191, 36, 1);--chart-5: rgba(245, 158, 11, 1);--radius: .625rem;--sidebar: rgba(250, 250, 250, 1);--sidebar-foreground: rgba(10, 10, 10, 1);--sidebar-primary: rgba(23, 23, 23, 1);--sidebar-primary-foreground: rgba(250, 250, 250, 1);--sidebar-accent: rgba(245, 245, 245, 1);--sidebar-accent-foreground: rgba(23, 23, 23, 1);--sidebar-border: rgba(229, 229, 229, 1);--sidebar-ring: rgba(163, 163, 163, 1)}.dark{--background: rgba(10, 10, 10, 1);--foreground: rgba(250, 250, 250, 1);--card: rgba(23, 23, 23, 1);--card-foreground: rgba(250, 250, 250, 1);--popover: rgba(38, 38, 38, 1);--popover-foreground: rgba(250, 250, 250, 1);--primary: rgba(229, 229, 229, 1);--primary-foreground: rgba(23, 23, 23, 1);--secondary: rgba(38, 38, 38, 1);--secondary-foreground: rgba(250, 250, 250, 1);--muted: rgba(38, 38, 38, 1);--muted-foreground: rgba(163, 163, 163, 1);--accent: rgba(64, 64, 64, 1);--accent-foreground: rgba(250, 250, 250, 1);--destructive: rgba(248, 113, 113, 1);--destructive-foreground: rgba(254, 242, 242, 1);--border: rgba(255, 255, 255, .10000000149011612);--input: rgba(255, 255, 255, .15000000596046448);--ring: rgba(115, 115, 115, 1);--chart-1: rgba(29, 78, 216, 1);--chart-2: rgba(16, 185, 129, 1);--chart-3: rgba(245, 158, 11, 1);--chart-4: rgba(168, 85, 247, 1);--chart-5: rgba(244, 63, 94, 1);--sidebar: rgba(23, 23, 23, 1);--sidebar-foreground: rgba(250, 250, 250, 1);--sidebar-primary: rgba(29, 78, 216, 1);--sidebar-primary-foreground: rgba(250, 250, 250, 1);--sidebar-accent: rgba(38, 38, 38, 1);--sidebar-accent-foreground: rgba(250, 250, 250, 1);--sidebar-border: rgba(255, 255, 255, .10000000149011612);--sidebar-ring: rgba(82, 82, 82, 1)}@layer base{*,:after,:before,::backdrop,::file-selector-button{border-color:var(--color-gray-200, currentcolor)}}@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);font-family:var(--astw-font-sans);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{height:calc(var(--astw-spacing) * 2);width:calc(var(--astw-spacing) * 2);background-color:var(--muted)}::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--muted-foreground)}::-webkit-scrollbar-corner{background-color:var(--muted-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-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));filter:blur(var(--tw-enter-blur,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));filter:blur(var(--tw-exit-blur,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-duration: initial;--tw-ease: initial;--tw-content: "";--tw-animation-delay: 0s;--tw-animation-direction: normal;--tw-animation-duration: initial;--tw-animation-fill-mode: none;--tw-animation-iteration-count: 1;--tw-enter-blur: 0;--tw-enter-opacity: 1;--tw-enter-rotate: 0;--tw-enter-scale: 1;--tw-enter-translate-x: 0;--tw-enter-translate-y: 0;--tw-exit-blur: 0;--tw-exit-opacity: 1;--tw-exit-rotate: 0;--tw-exit-scale: 1;--tw-exit-translate-x: 0;--tw-exit-translate-y: 0}}}
|
|
2
|
+
/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */
|
package/dist/index.d.ts
CHANGED
|
@@ -67,7 +67,7 @@ type Module = Omit<CommonPageResource, "meta"> & {
|
|
|
67
67
|
menuItemClickable: boolean;
|
|
68
68
|
};
|
|
69
69
|
resources: Array<Resource>;
|
|
70
|
-
loader?: (
|
|
70
|
+
loader?: () => Response;
|
|
71
71
|
errorBoundary?: ErrorBoundaryComponent;
|
|
72
72
|
};
|
|
73
73
|
/**
|
|
@@ -306,6 +306,12 @@ type DefaultSidebarProps = {
|
|
|
306
306
|
};
|
|
307
307
|
declare const DefaultSidebar: (props: DefaultSidebarProps) => react_jsx_runtime.JSX.Element;
|
|
308
308
|
|
|
309
|
+
type RootConfiguration = {
|
|
310
|
+
modules: Modules;
|
|
311
|
+
settingsResources: Resource[];
|
|
312
|
+
basePath?: string;
|
|
313
|
+
errorBoundary?: ErrorBoundaryComponent;
|
|
314
|
+
};
|
|
309
315
|
type NavChildItem = {
|
|
310
316
|
title: string;
|
|
311
317
|
url: string;
|
|
@@ -317,13 +323,6 @@ type NavItem = {
|
|
|
317
323
|
isActive?: boolean;
|
|
318
324
|
items?: Array<NavChildItem>;
|
|
319
325
|
};
|
|
320
|
-
|
|
321
|
-
type RootConfiguration = {
|
|
322
|
-
modules: Modules;
|
|
323
|
-
settingsResources: Resource[];
|
|
324
|
-
basePath?: string;
|
|
325
|
-
errorBoundary?: ErrorBoundaryComponent;
|
|
326
|
-
};
|
|
327
326
|
type AppShellContextType = {
|
|
328
327
|
title?: string;
|
|
329
328
|
icon?: ReactNode;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Table as Ia}from"lucide-react";import{useEffect as _a,useMemo as Aa,useState as La}from"react";import{createContext as ea,useContext as ra}from"react";var X=ea({navItems:[],configurations:{modules:[],settingsResources:[]}}),R=()=>ra(X);import{createBrowserRouter as va,RouterProvider as xa,Navigate as ya,redirect as Ca,Outlet as ka}from"react-router";import{NavLink as ca,Outlet as wt}from"react-router";import{Toaster as wa}from"sonner";import{Slot as ia}from"@radix-ui/react-slot";import{cva as na}from"class-variance-authority";import{clsx as oa}from"clsx";import{twMerge as sa}from"tailwind-merge";function c(...t){return sa(oa(t))}import{jsx as la}from"react/jsx-runtime";var da=na("astw:inline-flex astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive",{variants:{variant:{default:"astw:bg-primary astw:text-primary-foreground astw:shadow-xs astw:hover:bg-primary/90",destructive:"astw:bg-destructive astw:text-white astw:shadow-xs astw:hover:bg-destructive/90 astw:focus-visible:ring-destructive/20 astw:dark:focus-visible:ring-destructive/40 astw:dark:bg-destructive/60",outline:"astw:border astw:bg-background astw:shadow-xs astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:bg-input/30 astw:dark:border-input astw:dark:hover:bg-input/50",secondary:"astw:bg-secondary astw:text-secondary-foreground astw:shadow-xs astw:hover:bg-secondary/80",ghost:"astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:hover:bg-accent/50",link:"astw:text-primary astw:underline-offset-4 astw:hover:underline"},size:{default:"astw:h-9 astw:px-4 astw:py-2 astw:has-[>svg]:px-3",sm:"astw:h-8 astw:rounded-md astw:gap-1.5 astw:px-3 astw:has-[>svg]:px-2.5",lg:"astw:h-10 astw:rounded-md astw:px-6 astw:has-[>svg]:px-4",icon:"astw:size-9"}},defaultVariants:{variant:"default",size:"default"}});function y({className:t,variant:a,size:e,asChild:o=!1,...r}){return la(o?ia:"button",{"data-slot":"button",className:c(da({variant:a,size:e,className:t})),...r})}import{Fragment as pa,jsx as h,jsxs as _}from"react/jsx-runtime";var U=({contentBorder:t,children:a})=>h("div",{className:t?"astw:p-4 astw:rounded-sm astw:border astw:shadow-xs":"",children:a}),pt=()=>_(U,{contentBorder:!0,children:[h("p",{className:"astw:font-semibold astw:leading-none astw:tracking-tight",children:"Welcome to AppShell"}),h("p",{className:"pt-4",children:"Add your GraphQL resources from configuration at first!"})]}),Y=()=>_(pa,{children:[h(wt,{}),h(wa,{})]}),ut=()=>{let{configurations:t}=R();return _("div",{className:"astw:mx-auto astw:flex-col astw:flex astw:md:flex-row astw:max-w-5xl astw:gap-[10px] astw:w-full",children:[h("div",{children:_("nav",{className:"astw:bg-card astw:md:w-xs astw:rounded-md astw:border astw:p-3 astw:shadow-xs",children:[h("h2",{className:"astw:text-sm astw:leading-[36px] astw:mb-2 astw:font-bold ",children:"Settings"}),h("ul",{className:"astw:flex astw:flex-col astw:gap-1",children:t.settingsResources.map(a=>h("li",{children:h(ca,{to:`./${a.path}`,children:({isActive:e})=>_(y,{variant:e?"secondary":"ghost",className:"astw:w-full astw:justify-start",children:[a.meta.icon,a.meta.title]})})},a.path))})]})}),h("section",{className:"astw:bg-card astw:flex-1 astw:rounded-md astw:border astw:shadow-xs",children:h(wt,{})})]})};import{useRouteError as ua,isRouteErrorResponse as ma}from"react-router";import{AlertCircle as mt}from"lucide-react";import{jsx as x,jsxs as F}from"react/jsx-runtime";var gt=()=>{let t=ua();if(ma(t)&&t.status===404)return x("div",{className:"astw:p-6",children:F("div",{className:"astw:flex astw:items-start astw:gap-4",children:[x(mt,{className:"astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5"}),F("div",{children:[x("h1",{className:"astw:font-semibold astw:text-lg",children:"404 Not Found"}),x("p",{className:"astw:text-sm astw:text-muted-foreground astw:mt-1",children:"The page you requested could not be found."}),x(y,{variant:"outline",size:"sm",className:"astw:mt-4",onClick:()=>window.history.back(),children:"Go Back"})]})]})});let a=t instanceof Error?t.message:"An unexpected error occurred";return x("div",{className:"astw:p-6",children:F("div",{className:"astw:flex astw:items-start astw:gap-4",children:[x(mt,{className:"astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5"}),F("div",{children:[x("h1",{className:"astw:font-semibold astw:text-lg",children:"Something went wrong"}),x("p",{className:"astw:text-sm astw:text-muted-foreground astw:mt-1",children:a}),x(y,{variant:"outline",size:"sm",className:"astw:mt-4",onClick:()=>window.location.reload(),children:"Try Again"})]})]})})};import{capitalCase as bt}from"change-case";import{redirect as ga}from"react-router";var C=(t,a)=>a?`/${a}/${t}`:`/${t}`;import{jsx as ht}from"react/jsx-runtime";function ba(t){return{redirectTo:t}}function H(t){return typeof t=="object"&&t!==null&&"redirectTo"in t}function ha(t){let{path:a,meta:e,component:o,resources:r,errorBoundary:d}=t,i=e?.title??bt(a),s=H(o)?{component:()=>null,loader:n=>ga(C(o.redirectTo,n))}:{component:()=>ht(U,{contentBorder:e?.contentBorder??!1,children:o({title:i,resources:r})})};return{path:a,type:"component",_type:"module",...s,meta:{title:i,...e?.breadcrumbTitle!==void 0?{breadcrumbTitle:e.breadcrumbTitle}:{},...e,menuItemClickable:!H(o),icon:t.meta?.icon},resources:r,errorBoundary:d}}function fa(t){let{path:a,component:e,subResources:o,meta:r,errorBoundary:d}=t,i=r?.title??bt(a);return{_type:"resource",type:"component",path:a,meta:{title:i,icon:r?.icon,...r?.breadcrumbTitle!==void 0?{breadcrumbTitle:r.breadcrumbTitle}:{}},component:()=>ht(U,{contentBorder:r?.contentBorder??!1,children:e({title:i,resources:o})}),subResources:o,errorBoundary:d}}import{Fragment as Sa,jsx as A}from"react/jsx-runtime";var V=t=>()=>A(Sa,{children:t}),Pa=(t,a,e)=>t.reduce((o,r)=>{let d=r.errorBoundary||e,i={index:!0,Component:r.component,...r.loader&&{loader:()=>r.loader(a)}};return[...o,{path:r.path,...d&&{ErrorBoundary:V(d)},...r.resources&&r.resources.length>0?{children:[i,...r.resources.map(s=>ft(s,d))]}:{children:[i]}}]},[]),ft=(t,a)=>{let e=t.errorBoundary||a,o={index:!0,Component:t.component};return{path:t.path,...t.errorBoundary&&{ErrorBoundary:V(t.errorBoundary)},...t.subResources&&t.subResources.length>0?{children:[o,...t.subResources.map(r=>ft(r,e))]}:{children:[o]}}},vt=t=>{let{configurations:a}=R(),{rootComponent:e}=t,o=a.errorBoundary===void 0?A(gt,{}):a.errorBoundary,r=H(e)?{index:!0,loader:()=>Ca(C(e.redirectTo,a.basePath))}:{index:!0,Component:e??pt},d=a.settingsResources.length>0?[{path:"settings",index:!0,Component:()=>A(ya,{to:a.settingsResources[0].path,relative:"path",replace:!0})},{path:"settings",Component:ut,children:a.settingsResources.map(n=>({path:n.path,Component:n.component,...n.errorBoundary&&{ErrorBoundary:V(n.errorBoundary)}}))}]:[],i=[r,{path:"/",children:Pa(a.modules,a.basePath,o)},...d,{path:"*",loader:()=>{throw new Response("Not Found",{status:404})}}],s=va([{path:a.basePath,element:t.children,children:o?[{element:A(ka,{}),ErrorBoundary:V(o),children:i}]:i}]);return A(xa,{router:s})};import{createContext as Ra,useContext as Ta,useEffect as Na,useMemo as za,useState as Ba}from"react";import{jsx as Ea}from"react/jsx-runtime";var Ma={resolvedTheme:"light",theme:"system",setTheme:()=>null},xt=Ra(Ma);function yt({children:t,storageKey:a,defaultTheme:e="system",...o}){let[r,d]=Ba(()=>localStorage.getItem(a)||e),i=za(()=>r!=="system"?r:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[r]);Na(()=>{let n=window.document.documentElement;n.classList.remove("light","dark"),n.classList.add(i)},[i]);let s={resolvedTheme:i,theme:r,setTheme:n=>{localStorage.setItem(a,n),d(n)}};return Ea(xt.Provider,{...o,value:s,children:t})}var J=()=>{let t=Ta(xt);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t};import{jsx as K}from"react/jsx-runtime";var Oa=t=>{let[a,e]=La(!1);_a(function(){e(!0)},[]);let o=t.configurations.basePath,r=Aa(()=>t.configurations.modules.map(i=>{let s=i.resources.map(n=>({title:n.meta.title,url:C(`${i.path}/${n.path}`,o)}));return{title:i.meta.title,url:i.meta.menuItemClickable?C(i.path,o):void 0,clickable:i.component,icon:i.meta.icon||K(Ia,{}),isActive:!0,items:s}}),[t.configurations.modules,o]);return a?K(X.Provider,{value:{title:t.title,icon:t.icon,configurations:{modules:t.configurations.modules,settingsResources:t.configurations.settingsResources??[],errorBoundary:t.configurations.errorBoundary,basePath:o},navItems:r},children:K(yt,{defaultTheme:"system",storageKey:"appshell-ui-theme",children:K(vt,{rootComponent:t.configurations.rootComponent,children:t.children})})}):null};import*as B from"@radix-ui/react-collapsible";import{jsx as Z}from"react/jsx-runtime";function Ct({...t}){return Z(B.Root,{"data-slot":"collapsible",...t})}function Q({...t}){return Z(B.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...t})}function kt({...t}){return Z(B.CollapsibleContent,{"data-slot":"collapsible-content",...t})}import{useLocation as Yt,useMatch as re}from"react-router";import*as b from"react";import{Slot as rt}from"@radix-ui/react-slot";import{cva as Fa}from"class-variance-authority";import{PanelLeftIcon as Ha}from"lucide-react";import*as q from"react";var tt=768;function Pt(){let[t,a]=q.useState(void 0);return q.useEffect(()=>{let e=window.matchMedia(`(max-width: ${tt-1}px)`),o=()=>{a(window.innerWidth<tt)};return e.addEventListener("change",o),a(window.innerWidth<tt),()=>e.removeEventListener("change",o)},[]),!!t}import{jsx as Pr}from"react/jsx-runtime";import*as Da from"@radix-ui/react-separator";import{jsx as Nr}from"react/jsx-runtime";import*as m from"@radix-ui/react-dialog";import{XIcon as $a}from"lucide-react";import{jsx as k,jsxs as at}from"react/jsx-runtime";function St({...t}){return k(m.Root,{"data-slot":"sheet",...t})}function ja({...t}){return k(m.Portal,{"data-slot":"sheet-portal",...t})}function Wa({className:t,...a}){return k(m.Overlay,{"data-slot":"sheet-overlay",className:c("astw:data-[state=open]:animate-in astw:data-[state=closed]:animate-out astw:data-[state=closed]:fade-out-0 astw:data-[state=open]:fade-in-0 astw:fixed astw:inset-0 astw:z-50 astw:bg-black/50",t),...a})}function Rt({className:t,children:a,side:e="right",...o}){return at(ja,{children:[k(Wa,{}),at(m.Content,{"data-slot":"sheet-content",className:c("astw:bg-background astw:data-[state=open]:animate-in astw:data-[state=closed]:animate-out astw:fixed astw:z-50 astw:flex astw:flex-col astw:gap-4 astw:shadow-lg astw:transition astw:ease-in-out astw:data-[state=closed]:duration-300 astw:data-[state=open]:duration-500",e==="right"&&"astw:data-[state=closed]:slide-out-to-right astw:data-[state=open]:slide-in-from-right astw:inset-y-0 astw:right-0 astw:h-full astw:w-3/4 astw:border-l astw:sm:max-w-sm",e==="left"&&"astw:data-[state=closed]:slide-out-to-left astw:data-[state=open]:slide-in-from-left astw:inset-y-0 astw:left-0 astw:h-full astw:w-3/4 astw:border-r astw:sm:max-w-sm",e==="top"&&"astw:data-[state=closed]:slide-out-to-top astw:data-[state=open]:slide-in-from-top astw:inset-x-0 astw:top-0 astw:h-auto astw:border-b",e==="bottom"&&"astw:data-[state=closed]:slide-out-to-bottom astw:data-[state=open]:slide-in-from-bottom astw:inset-x-0 astw:bottom-0 astw:h-auto astw:border-t",t),...o,children:[a,at(m.Close,{className:"astw:ring-offset-bg astw:focus:ring-ring astw:data-[state=open]:bg-secondary astw:absolute astw:top-4 astw:right-4 astw:rounded-xs astw:opacity-70 astw:transition-opacity astw:hover:opacity-100 astw:focus:ring-2 astw:focus:ring-offset-2 astw:focus:outline-hidden astw:disabled:pointer-events-none",children:[k($a,{className:"astw:size-4"}),k("span",{className:"astw:sr-only",children:"Close"})]})]})]})}function Tt({className:t,...a}){return k("div",{"data-slot":"sheet-header",className:c("astw:flex astw:flex-col astw:gap-1.5 astw:p-4",t),...a})}function Nt({className:t,...a}){return k(m.Title,{"data-slot":"sheet-title",className:c("astw:text-foreground astw:font-semibold",t),...a})}function zt({className:t,...a}){return k(m.Description,{"data-slot":"sheet-description",className:c("astw:text-muted-foreground astw:text-sm",t),...a})}import{jsx as Lr}from"react/jsx-runtime";import*as f from"@radix-ui/react-tooltip";import{jsx as M,jsxs as Ua}from"react/jsx-runtime";function et({delayDuration:t=0,...a}){return M(f.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function Bt({...t}){return M(et,{children:M(f.Root,{"data-slot":"tooltip",...t})})}function Mt({...t}){return M(f.Trigger,{"data-slot":"tooltip-trigger",...t})}function Et({className:t,sideOffset:a=0,children:e,...o}){return M(f.Portal,{children:Ua(f.Content,{"data-slot":"tooltip-content",sideOffset:a,className:c("astw:bg-primary astw:text-primary-foreground astw:animate-in astw:fade-in-0 astw:zoom-in-95 astw:data-[state=closed]:animate-out astw:data-[state=closed]:fade-out-0 astw:data-[state=closed]:zoom-out-95 astw:data-[side=bottom]:slide-in-from-top-2 astw:data-[side=left]:slide-in-from-right-2 astw:data-[side=right]:slide-in-from-left-2 astw:data-[side=top]:slide-in-from-bottom-2 astw:z-50 astw:w-fit astw:origin-(--radix-tooltip-content-transform-origin) astw:rounded-md astw:px-3 astw:py-1.5 astw:text-xs astw:text-balance",t),...o,children:[e,M(f.Arrow,{className:"astw:bg-primary astw:fill-primary astw:z-50 astw:size-2.5 astw:translate-y-[calc(-50%_-_2px)] astw:rotate-45 astw:rounded-[2px]"})]})})}import{jsx as w,jsxs as L}from"react/jsx-runtime";var Va="sidebar_state",Ka=60*60*24*7,qa="16rem",Ga="18rem",Xa="3rem",Ya="b",It=b.createContext(null);function O(){let t=b.useContext(It);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function _t({defaultOpen:t=!0,open:a,onOpenChange:e,className:o,style:r,children:d,...i}){let s=Pt(),[n,p]=b.useState(!1),[u,T]=b.useState(t),P=a??u,N=b.useCallback(v=>{let S=typeof v=="function"?v(P):v;e?e(S):T(S),document.cookie=`${Va}=${S}; path=/; max-age=${Ka}`},[e,P]),z=b.useCallback(()=>s?p(v=>!v):N(v=>!v),[s,N,p]);b.useEffect(()=>{let v=S=>{S.key===Ya&&(S.metaKey||S.ctrlKey)&&(S.preventDefault(),z())};return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[z]);let G=P?"expanded":"collapsed",W=b.useMemo(()=>({state:G,open:P,setOpen:N,isMobile:s,openMobile:n,setOpenMobile:p,toggleSidebar:z}),[G,P,N,s,n,p,z]);return w(It.Provider,{value:W,children:w(et,{delayDuration:0,children:w("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":qa,"--sidebar-width-icon":Xa,...r},className:c("astw:group/sidebar-wrapper astw:has-data-[variant=inset]:bg-sidebar astw:flex astw:min-h-svh astw:w-full",o),...i,children:d})})})}function At({side:t="left",variant:a="sidebar",collapsible:e="offcanvas",className:o,children:r,...d}){let{isMobile:i,state:s,openMobile:n,setOpenMobile:p}=O();return e==="none"?w("div",{"data-slot":"sidebar",className:c("astw:bg-sidebar astw:text-sidebar-foreground astw:flex astw:h-full astw:w-(--sidebar-width) astw:flex-col",o),...d,children:r}):i?w(St,{open:n,onOpenChange:p,...d,children:L(Rt,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"astw:bg-sidebar astw:text-sidebar-foreground astw:w-(--sidebar-width) astw:p-0 astw:[&>button]:hidden",style:{"--sidebar-width":Ga},side:t,children:[L(Tt,{className:"astw:sr-only",children:[w(Nt,{children:"Sidebar"}),w(zt,{children:"Displays the mobile sidebar."})]}),w("div",{className:"flex h-full w-full flex-col",children:r})]})}):L("div",{className:"astw:group astw:peer astw:text-sidebar-foreground astw:hidden astw:md:block","data-state":s,"data-collapsible":s==="collapsed"?e:"","data-variant":a,"data-side":t,"data-slot":"sidebar",children:[w("div",{"data-slot":"sidebar-gap",className:c("astw:relative astw:w-(--sidebar-width) astw:bg-transparent astw:transition-[width] astw:duration-200 astw:ease-linear","astw:group-data-[collapsible=offcanvas]:w-0","astw:group-data-[side=right]:rotate-180",a==="floating"||a==="inset"?"astw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"astw:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),w("div",{"data-slot":"sidebar-container",className:c("astw:fixed astw:inset-y-0 astw:z-10 astw:hidden astw:h-svh astw:w-(--sidebar-width) astw:transition-[left,right,width] astw:duration-200 astw:ease-linear astw:md:flex",t==="left"?"astw:left-0 astw:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"astw:right-0 astw:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",a==="floating"||a==="inset"?"astw:p-2 astw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"astw:group-data-[collapsible=icon]:w-(--sidebar-width-icon) astw:group-data-[side=left]:border-r astw:group-data-[side=right]:border-l",a==="inset"&&"astw:border-x astw:border-x-border",o),...d,children:w("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"astw:bg-sidebar astw:group-data-[variant=floating]:border-sidebar-border astw:flex astw:h-full astw:w-full astw:flex-col astw:group-data-[variant=floating]:rounded-lg astw:group-data-[variant=floating]:border astw:group-data-[variant=floating]:shadow-sm",children:r})})]})}function ot({className:t,onClick:a,...e}){let{toggleSidebar:o}=O();return L(y,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:c("astw:text-muted-foreground",t),onClick:r=>{a?.(r),o()},...e,children:[w(Ha,{className:"astw:size-4.5"}),w("span",{className:"astw:sr-only",children:"Toggle Sidebar"})]})}function Lt({className:t,...a}){return w("main",{"data-slot":"sidebar-inset",className:c("astw:bg-background astw:relative astw:flex astw:w-full astw:flex-1 astw:flex-col","astw:px-4 astw:md:peer-data-[variant=inset]:px-8 astw:md:peer-data-[variant=inset]:py-2",t),...a})}function Ot({className:t,...a}){return w("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:c("astw:flex astw:flex-row astw:items-center astw:gap-0.5 astw:p-2",t),...a})}function Dt({className:t,...a}){return w("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:c("astw:flex astw:min-h-0 astw:flex-1 astw:flex-col astw:gap-2 astw:overflow-auto astw:group-data-[collapsible=icon]:overflow-hidden",t),...a})}function $t({className:t,...a}){return w("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:c("astw:relative astw:flex astw:w-full astw:min-w-0 astw:flex-col astw:p-2",t),...a})}function jt({className:t,...a}){return w("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:c("astw:flex astw:w-full astw:min-w-0 astw:flex-col astw:gap-1",t),...a})}function Wt({className:t,...a}){return w("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:c("astw:group/menu-item astw:relative",t),...a})}var Ja=Fa("astw:peer/menu-button astw:flex astw:w-full astw:items-center astw:gap-2 astw:overflow-hidden astw:rounded-md astw:p-2 astw:text-left astw:text-sm astw:outline-hidden astw:ring-sidebar-ring astw:transition-[width,height,padding] astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:focus-visible:ring-2 astw:active:bg-sidebar-accent astw:active:text-sidebar-accent-foreground astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:group-has-data-[sidebar=menu-action]/menu-item:pr-8 astw:aria-disabled:pointer-events-none astw:aria-disabled:opacity-50 astw:data-[active=true]:bg-sidebar-accent astw:data-[active=true]:font-medium astw:data-[active=true]:text-sidebar-accent-foreground astw:data-[state=open]:hover:bg-sidebar-accent astw:data-[state=open]:hover:text-sidebar-accent-foreground astw:group-data-[collapsible=icon]:size-8! astw:group-data-[collapsible=icon]:p-2! astw:[&>span:last-child]:truncate astw:[&>svg]:size-4 astw:[&>svg]:shrink-0",{variants:{variant:{default:"astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground",outline:"astw:bg-background astw:shadow-[0_0_0_1px_hsl(var(--sidebar-border))] astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"astw:h-8 astw:text-sm",sm:"astw:h-7 astw:rounded-md astw:gap-1.5 astw:px-3 astw:has-[>svg]:px-2.5",lg:"astw:h-12 astw:text-sm astw:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function st({asChild:t=!1,isActive:a=!1,variant:e="default",size:o="default",tooltip:r,className:d,...i}){let s=t?rt:"button",{isMobile:n,state:p}=O(),u=w(s,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":o,"data-active":a,className:c(Ja({variant:e,size:o}),d),...i});return r?(typeof r=="string"&&(r={children:r}),L(Bt,{children:[w(Mt,{asChild:!0,children:u}),w(Et,{side:"right",align:"center",hidden:p!=="collapsed"||n,...r})]})):u}function it({className:t,asChild:a=!1,showOnHover:e=!1,...o}){return w(a?rt:"button",{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:c("astw:text-sidebar-foreground astw:ring-sidebar-ring astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:peer-hover/menu-button:text-sidebar-accent-foreground astw:absolute astw:top-1.5 astw:right-1 astw:flex astw:aspect-square astw:w-5 astw:items-center astw:justify-center astw:rounded-md astw:p-0 astw:outline-hidden astw:transition-transform astw:focus-visible:ring-2 astw:[&>svg]:size-4 astw:[&>svg]:shrink-0","astw:after:absolute astw:after:-inset-2 astw:md:after:hidden","astw:peer-data-[size=sm]/menu-button:top-1","astw:peer-data-[size=default]/menu-button:top-1.5","astw:peer-data-[size=lg]/menu-button:top-2.5","astw:group-data-[collapsible=icon]:hidden",e&&"astw:peer-data-[active=true]/menu-button:text-sidebar-accent-foreground astw:group-focus-within/menu-item:opacity-100 astw:group-hover/menu-item:opacity-100 astw:data-[state=open]:opacity-100 astw:md:opacity-0",t),...o})}function Ut({className:t,...a}){return w("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:c("astw:border-sidebar-border astw:mx-3.5 astw:flex astw:min-w-0 astw:translate-x-px astw:flex-col astw:gap-1 astw:border-l astw:px-2.5 astw:py-0.5","astw:group-data-[collapsible=icon]:hidden",t),...a})}function Ft({className:t,...a}){return w("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:c("astw:group/menu-sub-item astw:relative",t),...a})}function Ht({asChild:t=!1,size:a="md",isActive:e=!1,className:o,...r}){return w(t?rt:"a",{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":a,"data-active":e,className:c("astw:text-sidebar-foreground astw:ring-sidebar-ring astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:active:bg-sidebar-accent astw:active:text-sidebar-accent-foreground astw:[&>svg]:text-sidebar-accent-foreground astw:flex astw:h-7 astw:min-w-0 astw:-translate-x-px astw:items-center astw:gap-2 astw:overflow-hidden astw:rounded-md astw:px-2 astw:outline-hidden astw:focus-visible:ring-2 astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:aria-disabled:pointer-events-none astw:aria-disabled:opacity-50 astw:[&>span:last-child]:truncate astw:[&>svg]:size-4 astw:[&>svg]:shrink-0","astw:data-[active=true]:bg-sidebar-accent astw:data-[active=true]:text-sidebar-accent-foreground",a==="sm"&&"astw:text-xs",a==="md"&&"astw:text-sm","astw:group-data-[collapsible=icon]:hidden",o),...r})}import{ChevronRight as Gt,SunIcon as oe}from"lucide-react";import{Slot as te}from"@radix-ui/react-slot";import{ChevronRight as ae,MoreHorizontal as co}from"lucide-react";import{Link as Qa,useHref as Za}from"react-router";import{jsx as Vt}from"react/jsx-runtime";function D({to:t,children:a,...e}){try{return Za(t),Vt(Qa,{to:t,...e,children:a})}catch{return Vt("a",{href:t,...e,children:a})}}import{jsx as E,jsxs as mo}from"react/jsx-runtime";function nt({...t}){return E("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...t})}function dt({className:t,...a}){return E("ol",{"data-slot":"breadcrumb-list",className:c("astw:text-muted-foreground astw:flex astw:flex-wrap astw:items-center astw:gap-1.5 astw:text-sm astw:break-words astw:sm:gap-2.5",t),...a})}function lt({className:t,...a}){return E("li",{"data-slot":"breadcrumb-item",className:c("astw:inline-flex astw:items-center astw:gap-1.5",t),...a})}function ct({asChild:t,className:a,children:e,...o}){return E(t?te:D,{"data-slot":"breadcrumb-link",className:c("astw:hover:text-foreground astw:transition-colors",a),...o,children:e})}function Kt({children:t,className:a,...e}){return E("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:c("astw:[&>svg]:size-3.5",a),...e,children:t??E(ae,{})})}var ee=t=>t.reduce((a,e)=>{a[e.path]={title:e.meta.title,breadcrumbTitle:e.meta.breadcrumbTitle};let o=(r,d)=>{!r||r.length===0||r.forEach(i=>{let s=`${d}/${i.path}`;a[s]={title:i.meta.title,breadcrumbTitle:i.meta.breadcrumbTitle},i.subResources&&i.subResources.length>0&&o(i.subResources,s)})};return e.resources&&e.resources.length>0&&o(e.resources,e.path),a},{});function qt(t,a,e){let o=t.split("/").filter(s=>s!=="").slice(1),r=a?(()=>{let[s,...n]=o;return n})():o,d=ee(e),i=r.map((s,n)=>{let p=r.slice(0,n+1).join("/"),u=d[p];if(!u){let P=Object.entries(d).find(([N])=>{let z=N.split("/").map(W=>W.startsWith(":")?"[^/]+":W).join("/");return new RegExp(`^${z}$`).test(p)})?.[1];P&&(u=P)}let T;return u?typeof u.breadcrumbTitle=="function"?T=u.breadcrumbTitle(s):typeof u.breadcrumbTitle=="string"?T=u.breadcrumbTitle:T=u.title:T=decodeURIComponent(s),{segment:s,path:p,title:T}});return{basePath:a||null,segments:i}}import{Fragment as Xt,jsx as l,jsxs as g}from"react/jsx-runtime";var se=()=>{let{open:t}=O();return l("div",{className:t?"astw:md:hidden":void 0,children:l(ot,{className:"astw:-ml-2.5"})})},ie=t=>{let a=t.children?t.children({Outlet:Y}):null,e=J(),o=()=>{e.setTheme(e.theme==="dark"?"light":"dark")};return l(_t,{className:"astw:flex astw:flex-col",children:g("div",{className:"astw:flex astw:flex-1",children:[t.sidebar??l(Jt,{}),g(Lt,{className:"astw:w-[calc(100%-var(--sidebar-width))]",children:[l("header",{className:"astw:flex astw:h-14 astw:shrink-0 astw:items-center astw:gap-2 astw:transition-[width,height] astw:ease-linear astw:group-has-data-[collapsible=icon]/sidebar-wrapper:h-12",children:g("div",{className:"astw:flex astw:w-full astw:items-center astw:justify-between",children:[g("div",{className:"astw:flex astw:items-center astw:gap-2",children:[l(se,{}),l(de,{})]}),l("div",{className:"astw:flex astw:items-center astw:gap-2",children:l(y,{variant:"outline",size:"icon",onClick:o,children:l(oe,{})})})]})}),l("div",{className:"astw:flex astw:flex-col astw:gap-4",children:a??l(Y,{})})]})]})})},Jt=t=>{let{title:a,icon:e,navItems:o}=R(),{pathname:r}=Yt(),d=g(Ot,{children:[e,l("h1",{className:"astw:text-sm astw:mb-2 astw:mt-2 astw:px-2",children:a})]});return g(At,{variant:"inset",children:[g("div",{className:"astw:flex astw:justify-between astw:items-center",children:[t.header??d,l("div",{className:"astw:hidden astw:md:block",children:l(ot,{className:"astw:-ml-1"})})]}),l(Dt,{children:l($t,{children:l(jt,{children:o.map(s=>l(Ct,{asChild:!0,defaultOpen:s.isActive,children:g(Wt,{children:[s.url?g(Xt,{children:[l(st,{asChild:!0,tooltip:s.title,children:g(D,{to:s.url,className:s.url===r?"astw:bg-sidebar-accent astw:font-medium":void 0,children:[s.icon,l("span",{children:s.title})]})}),!!s.items?.length&&l(Q,{asChild:!0,children:g(it,{className:"astw:data-[state=open]:rotate-90",children:[l(Gt,{}),l("span",{className:"astw:sr-only",children:"Toggle"})]})})]}):l(Xt,{children:g(Q,{className:"astw:flex astw:w-[100%] astw:[&[data-state=open]_.astw-rotate-target]:rotate-90",children:[l(st,{asChild:!0,tooltip:s.title,children:g("span",{className:"astw:flex astw:w-[100%]",children:[s.icon,l("span",{children:s.title})]})}),!!s.items?.length&&l(it,{className:"astw-rotate-target",asChild:!0,children:g("span",{children:[l(Gt,{}),l("span",{className:"astw:sr-only",children:"Toggle"})]})})]})}),!!s.items?.length&&l(kt,{children:l(Ut,{children:s.items?.map(n=>l(Ft,{children:l(Ht,{asChild:!0,children:l(D,{to:n.url,className:n.url===r?"astw:bg-sidebar-accent astw:font-medium":void 0,children:l("span",{children:n.title})})})},n.title))})})]})},s.title))})})}),t.footer??null]})},ne=()=>{let{configurations:t}=R(),a=Yt();return qt(a.pathname,t.basePath,t.modules)},de=()=>{let{basePath:t,segments:a}=ne(),e=re("/:prefix/settings/:suffix");return e?l(nt,{children:l(dt,{children:l("div",{className:"astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",children:l(lt,{children:l(ct,{to:`/${e.params.prefix}/settings`,children:"Settings"})})})})}):l(nt,{children:l(dt,{children:a.map((o,r)=>g("div",{className:"astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",children:[l(lt,{children:l(ct,{to:C(o.path,t),children:o.title})}),r<a.length-1&&l(Kt,{})]},r))})})};import{useLocation as Vo,useNavigate as Ko,useParams as qo,useSearchParams as Go,useRouteError as Xo,Link as Yo}from"react-router";import{createContext as ce,useCallback as ta,useContext as we,useEffect as pe,useMemo as ue,useState as me}from"react";import*as I from"oauth4webapi";var $="oauth_pkce_verifier",j="oauth_state",Qt=({apiEndpoint:t,clientId:a,state:e,codeChallenge:o,redirectUri:r})=>{let d=new URL(`${t}/oauth2/authorize`);return d.searchParams.set("response_type","code"),d.searchParams.set("client_id",a),d.searchParams.set("redirect_uri",r??window.location.origin),d.searchParams.set("scope","openid profile email"),d.searchParams.set("state",e),d.searchParams.set("code_challenge",o),d.searchParams.set("code_challenge_method","S256"),d.toString()},le=async({code:t,returnedState:a,apiEndpoint:e,clientId:o,redirectUri:r})=>{let d=sessionStorage.getItem($),i=sessionStorage.getItem(j);if(!t||!a||!d||!i){let n=[];throw t||n.push("code"),a||n.push("returnedState"),d||n.push("code_verifier"),i||n.push("expectedState"),new Error(`Missing params: ${n.join(", ")}`)}if(a!==i)throw new Error("State mismatch: possible CSRF attack");let s=new URLSearchParams({grant_type:"authorization_code",client_id:o,code:t,redirect_uri:r??window.location.origin,code_verifier:d});try{let n=await fetch(`${e}/oauth2/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:s.toString()}),{access_token:p}=await n.json();return p}catch(n){throw new Error(`Token exchange failed: ${n instanceof Error?n.message:String(n)}`)}},Zt=async()=>{let t=I.generateRandomCodeVerifier(),a=await I.calculatePKCECodeChallenge(t),e=I.generateRandomState();return sessionStorage.setItem($,t),sessionStorage.setItem(j,e),{codeChallenge:a,state:e}},Mo=async({currentUrl:t,apiEndpoint:a,clientId:e,redirectUri:o})=>{try{let r=t.searchParams.get("code"),d=t.searchParams.get("state");await le({apiEndpoint:a,clientId:e,code:r,returnedState:d,redirectUri:o})}catch(r){console.error(r)}finally{sessionStorage.removeItem($),sessionStorage.removeItem(j),t.searchParams.delete("code"),t.searchParams.delete("state"),t.searchParams.delete("error"),t.searchParams.delete("error_description"),window.history.replaceState({},document.title,t.toString())}};import{jsx as he}from"react/jsx-runtime";var aa=ce(void 0),ge=()=>{let t=we(aa);if(t===void 0)throw new Error("useBuiltinIdpAuth must be used within an BuiltinIdPAuthContextProvider");return t},be=({apiEndpoint:t,clientId:a,redirectUri:e,children:o})=>{let[r,d]=me(!1),i=ta(async()=>{let{codeChallenge:n,state:p}=await Zt(),u=Qt({apiEndpoint:t,clientId:a,codeChallenge:n,state:p,redirectUri:e});window.location.href=u},[t,a,e]);pe(()=>{(async()=>{(await(await fetch(`${t}/query`,{method:"POST",headers:{"Content-Type":"application/json","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:JSON.stringify({query:"query Myself(){ me { id }}"})})).json()).data.me?d(!0):i()})()},[t,i]);let s=ta(async()=>{sessionStorage.removeItem($),sessionStorage.removeItem(j);try{await fetch(`${t}/oauth2/revoke`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:""}),window.location.href="/"}catch(n){console.error(n)}},[t]);return he(aa.Provider,{value:ue(()=>({login:i,logout:s}),[i,s]),children:r?o:null})};export{Oa as AppShell,be as BuiltinIdPAuthProvider,Jt as DefaultSidebar,Yo as Link,j as OAUTH_STATE_KEY,$ as PKCE_VERIFIER_KEY,ie as SidebarLayoutContainer,Qt as buildAuthorizationUrl,ha as defineModule,fa as defineResource,le as exchangeCodeForToken,Mo as handleOAuthCallback,Zt as prepareLogin,ba as redirectToResource,R as useAppShell,ge as useBuiltinIdpAuth,Vo as useLocation,Ko as useNavigate,qo as useParams,Xo as useRouteError,Go as useSearchParams,J as useTheme};
|
|
1
|
+
import{Table as Ea}from"lucide-react";import{useEffect as Ia,useMemo as _a,useState as Aa}from"react";import{createContext as aa,useContext as ea}from"react";var G=aa({navItems:[],configurations:{modules:[],settingsResources:[]}}),P=()=>ea(G);import{createBrowserRouter as fa,RouterProvider as va,Navigate as xa,redirect as ya,Outlet as Ca}from"react-router";import{NavLink as la,Outlet as ct}from"react-router";import{Toaster as ca}from"sonner";import{Slot as sa}from"@radix-ui/react-slot";import{cva as ia}from"class-variance-authority";import{clsx as ra}from"clsx";import{twMerge as oa}from"tailwind-merge";function c(...t){return oa(ra(t))}import{jsx as da}from"react/jsx-runtime";var na=ia("astw:inline-flex astw:items-center astw:justify-center astw:gap-2 astw:whitespace-nowrap astw:rounded-md astw:text-sm astw:font-medium astw:transition-all astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:[&_svg]:pointer-events-none astw:[&_svg:not([class*='size-'])]:size-4 astw:shrink-0 astw:[&_svg]:shrink-0 astw:outline-none astw:focus-visible:border-ring astw:focus-visible:ring-ring/50 astw:focus-visible:ring-[3px] astw:aria-invalid:ring-destructive/20 astw:dark:aria-invalid:ring-destructive/40 astw:aria-invalid:border-destructive",{variants:{variant:{default:"astw:bg-primary astw:text-primary-foreground astw:shadow-xs astw:hover:bg-primary/90",destructive:"astw:bg-destructive astw:text-white astw:shadow-xs astw:hover:bg-destructive/90 astw:focus-visible:ring-destructive/20 astw:dark:focus-visible:ring-destructive/40 astw:dark:bg-destructive/60",outline:"astw:border astw:bg-background astw:shadow-xs astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:bg-input/30 astw:dark:border-input astw:dark:hover:bg-input/50",secondary:"astw:bg-secondary astw:text-secondary-foreground astw:shadow-xs astw:hover:bg-secondary/80",ghost:"astw:hover:bg-accent astw:hover:text-accent-foreground astw:dark:hover:bg-accent/50",link:"astw:text-primary astw:underline-offset-4 astw:hover:underline"},size:{default:"astw:h-9 astw:px-4 astw:py-2 astw:has-[>svg]:px-3",sm:"astw:h-8 astw:rounded-md astw:gap-1.5 astw:px-3 astw:has-[>svg]:px-2.5",lg:"astw:h-10 astw:rounded-md astw:px-6 astw:has-[>svg]:px-4",icon:"astw:size-9"}},defaultVariants:{variant:"default",size:"default"}});function y({className:t,variant:a,size:e,asChild:r=!1,...o}){return da(r?sa:"button",{"data-slot":"button",className:c(na({variant:a,size:e,className:t})),...o})}import{Fragment as wa,jsx as h,jsxs as I}from"react/jsx-runtime";var U=({contentBorder:t,children:a})=>h("div",{className:t?"astw:p-4 astw:rounded-sm astw:border astw:shadow-xs":"",children:a}),wt=()=>I(U,{contentBorder:!0,children:[h("p",{className:"astw:font-semibold astw:leading-none astw:tracking-tight",children:"Welcome to AppShell"}),h("p",{className:"pt-4",children:"Add your GraphQL resources from configuration at first!"})]}),X=()=>I(wa,{children:[h(ct,{}),h(ca,{})]}),pt=()=>{let{configurations:t}=P();return I("div",{className:"astw:mx-auto astw:flex-col astw:flex astw:md:flex-row astw:max-w-5xl astw:gap-[10px] astw:w-full",children:[h("div",{children:I("nav",{className:"astw:bg-card astw:md:w-xs astw:rounded-md astw:border astw:p-3 astw:shadow-xs",children:[h("h2",{className:"astw:text-sm astw:leading-[36px] astw:mb-2 astw:font-bold ",children:"Settings"}),h("ul",{className:"astw:flex astw:flex-col astw:gap-1",children:t.settingsResources.map(a=>h("li",{children:h(la,{to:`./${a.path}`,children:({isActive:e})=>I(y,{variant:e?"secondary":"ghost",className:"astw:w-full astw:justify-start",children:[a.meta.icon,a.meta.title]})})},a.path))})]})}),h("section",{className:"astw:bg-card astw:flex-1 astw:rounded-md astw:border astw:shadow-xs",children:h(ct,{})})]})};import{useRouteError as pa,isRouteErrorResponse as ua}from"react-router";import{AlertCircle as ut}from"lucide-react";import{jsx as x,jsxs as $}from"react/jsx-runtime";var mt=()=>{let t=pa();if(ua(t)&&t.status===404)return x("div",{className:"astw:p-6",children:$("div",{className:"astw:flex astw:items-start astw:gap-4",children:[x(ut,{className:"astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5"}),$("div",{children:[x("h1",{className:"astw:font-semibold astw:text-lg",children:"404 Not Found"}),x("p",{className:"astw:text-sm astw:text-muted-foreground astw:mt-1",children:"The page you requested could not be found."}),x(y,{variant:"outline",size:"sm",className:"astw:mt-4",onClick:()=>window.history.back(),children:"Go Back"})]})]})});let a=t instanceof Error?t.message:"An unexpected error occurred";return x("div",{className:"astw:p-6",children:$("div",{className:"astw:flex astw:items-start astw:gap-4",children:[x(ut,{className:"astw:h-5 astw:w-5 astw:text-destructive astw:flex-shrink-0 astw:mt-0.5"}),$("div",{children:[x("h1",{className:"astw:font-semibold astw:text-lg",children:"Something went wrong"}),x("p",{className:"astw:text-sm astw:text-muted-foreground astw:mt-1",children:a}),x(y,{variant:"outline",size:"sm",className:"astw:mt-4",onClick:()=>window.location.reload(),children:"Try Again"})]})]})})};import{capitalCase as gt}from"change-case";import{redirect as ma}from"react-router";import{jsx as bt}from"react/jsx-runtime";function ga(t){return{redirectTo:t}}function F(t){return typeof t=="object"&&t!==null&&"redirectTo"in t}function ba(t){let{path:a,meta:e,component:r,resources:o,errorBoundary:s}=t,l=e?.title??gt(a),i=F(r)?{component:()=>null,loader:()=>ma(r.redirectTo)}:{component:()=>bt(U,{contentBorder:e?.contentBorder??!1,children:r({title:l,resources:o})})};return{path:a,type:"component",_type:"module",...i,meta:{title:l,...e?.breadcrumbTitle!==void 0?{breadcrumbTitle:e.breadcrumbTitle}:{},...e,menuItemClickable:!F(r),icon:t.meta?.icon},resources:o,errorBoundary:s}}function ha(t){let{path:a,component:e,subResources:r,meta:o,errorBoundary:s}=t,l=o?.title??gt(a);return{_type:"resource",type:"component",path:a,meta:{title:l,icon:o?.icon,...o?.breadcrumbTitle!==void 0?{breadcrumbTitle:o.breadcrumbTitle}:{}},component:()=>bt(U,{contentBorder:o?.contentBorder??!1,children:e({title:l,resources:r})}),subResources:r,errorBoundary:s}}import{Fragment as Sa,jsx as _}from"react/jsx-runtime";var H=t=>()=>_(Sa,{children:t}),ka=(t,a)=>t.reduce((e,r)=>{let o=r.errorBoundary||a,s={index:!0,Component:r.component,loader:r.loader};return[...e,{path:r.path,...o&&{ErrorBoundary:H(o)},...r.resources&&r.resources.length>0?{children:[s,...r.resources.map(l=>ht(l,o))]}:{children:[s]}}]},[]),ht=(t,a)=>{let e=t.errorBoundary||a,r={index:!0,Component:t.component};return{path:t.path,...t.errorBoundary&&{ErrorBoundary:H(t.errorBoundary)},...t.subResources&&t.subResources.length>0?{children:[r,...t.subResources.map(o=>ht(o,e))]}:{children:[r]}}},ft=t=>{let{configurations:a}=P(),{rootComponent:e}=t,r=a.errorBoundary===void 0?_(mt,{}):a.errorBoundary,o=F(e)?{index:!0,loader:()=>ya(e.redirectTo)}:{index:!0,Component:e??wt},s=a.settingsResources.length>0?[{path:"settings",index:!0,Component:()=>_(xa,{to:a.settingsResources[0].path,relative:"path",replace:!0})},{path:"settings",Component:pt,children:a.settingsResources.map(d=>({path:d.path,Component:d.component,...d.errorBoundary&&{ErrorBoundary:H(d.errorBoundary)}}))}]:[],l=[o,{children:ka(a.modules,r)},...s,{path:"*",loader:()=>{throw new Response("Not Found",{status:404})}}],i=fa([{element:t.children,children:r?[{element:_(Ca,{}),ErrorBoundary:H(r),children:l}]:l}],{basename:a.basePath?"/"+a.basePath:void 0});return _(va,{router:i})};import{createContext as Pa,useContext as Ra,useEffect as Ta,useMemo as Na,useState as za}from"react";import{jsx as Ma}from"react/jsx-runtime";var Ba={resolvedTheme:"light",theme:"system",setTheme:()=>null},vt=Pa(Ba);function xt({children:t,storageKey:a,defaultTheme:e="system",...r}){let[o,s]=za(()=>localStorage.getItem(a)||e),l=Na(()=>o!=="system"?o:window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",[o]);Ta(()=>{let d=window.document.documentElement;d.classList.remove("light","dark"),d.classList.add(l)},[l]);let i={resolvedTheme:l,theme:o,setTheme:d=>{localStorage.setItem(a,d),s(d)}};return Ma(vt.Provider,{...r,value:i,children:t})}var Y=()=>{let t=Ra(vt);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t};import{jsx as V}from"react/jsx-runtime";var La=t=>{let[a,e]=Aa(!1);Ia(function(){e(!0)},[]);let r=_a(()=>t.configurations.modules.map(s=>{let l=s.resources.map(i=>({title:i.meta.title,url:`${s.path}/${i.path}`}));return{title:s.meta.title,url:s.meta.menuItemClickable?s.path:void 0,clickable:s.component,icon:s.meta.icon||V(Ea,{}),isActive:!0,items:l}}),[t.configurations.modules]);return a?V(G.Provider,{value:{title:t.title,icon:t.icon,configurations:{modules:t.configurations.modules,settingsResources:t.configurations.settingsResources??[],errorBoundary:t.configurations.errorBoundary,basePath:t.configurations.basePath},navItems:r},children:V(xt,{defaultTheme:"system",storageKey:"appshell-ui-theme",children:V(ft,{rootComponent:t.configurations.rootComponent,children:t.children})})}):null};import*as z from"@radix-ui/react-collapsible";import{jsx as Q}from"react/jsx-runtime";function yt({...t}){return Q(z.Root,{"data-slot":"collapsible",...t})}function J({...t}){return Q(z.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...t})}function Ct({...t}){return Q(z.CollapsibleContent,{"data-slot":"collapsible-content",...t})}import{useLocation as Xt,useMatch as ee}from"react-router";import*as b from"react";import{Slot as et}from"@radix-ui/react-slot";import{cva as $a}from"class-variance-authority";import{PanelLeftIcon as Fa}from"lucide-react";import*as K from"react";var Z=768;function kt(){let[t,a]=K.useState(void 0);return K.useEffect(()=>{let e=window.matchMedia(`(max-width: ${Z-1}px)`),r=()=>{a(window.innerWidth<Z)};return e.addEventListener("change",r),a(window.innerWidth<Z),()=>e.removeEventListener("change",r)},[]),!!t}import{jsx as vr}from"react/jsx-runtime";import*as Oa from"@radix-ui/react-separator";import{jsx as kr}from"react/jsx-runtime";import*as m from"@radix-ui/react-dialog";import{XIcon as Da}from"lucide-react";import{jsx as C,jsxs as tt}from"react/jsx-runtime";function St({...t}){return C(m.Root,{"data-slot":"sheet",...t})}function ja({...t}){return C(m.Portal,{"data-slot":"sheet-portal",...t})}function Wa({className:t,...a}){return C(m.Overlay,{"data-slot":"sheet-overlay",className:c("astw:data-[state=open]:animate-in astw:data-[state=closed]:animate-out astw:data-[state=closed]:fade-out-0 astw:data-[state=open]:fade-in-0 astw:fixed astw:inset-0 astw:z-50 astw:bg-black/50",t),...a})}function Pt({className:t,children:a,side:e="right",...r}){return tt(ja,{children:[C(Wa,{}),tt(m.Content,{"data-slot":"sheet-content",className:c("astw:bg-background astw:data-[state=open]:animate-in astw:data-[state=closed]:animate-out astw:fixed astw:z-50 astw:flex astw:flex-col astw:gap-4 astw:shadow-lg astw:transition astw:ease-in-out astw:data-[state=closed]:duration-300 astw:data-[state=open]:duration-500",e==="right"&&"astw:data-[state=closed]:slide-out-to-right astw:data-[state=open]:slide-in-from-right astw:inset-y-0 astw:right-0 astw:h-full astw:w-3/4 astw:border-l astw:sm:max-w-sm",e==="left"&&"astw:data-[state=closed]:slide-out-to-left astw:data-[state=open]:slide-in-from-left astw:inset-y-0 astw:left-0 astw:h-full astw:w-3/4 astw:border-r astw:sm:max-w-sm",e==="top"&&"astw:data-[state=closed]:slide-out-to-top astw:data-[state=open]:slide-in-from-top astw:inset-x-0 astw:top-0 astw:h-auto astw:border-b",e==="bottom"&&"astw:data-[state=closed]:slide-out-to-bottom astw:data-[state=open]:slide-in-from-bottom astw:inset-x-0 astw:bottom-0 astw:h-auto astw:border-t",t),...r,children:[a,tt(m.Close,{className:"astw:ring-offset-bg astw:focus:ring-ring astw:data-[state=open]:bg-secondary astw:absolute astw:top-4 astw:right-4 astw:rounded-xs astw:opacity-70 astw:transition-opacity astw:hover:opacity-100 astw:focus:ring-2 astw:focus:ring-offset-2 astw:focus:outline-hidden astw:disabled:pointer-events-none",children:[C(Da,{className:"astw:size-4"}),C("span",{className:"astw:sr-only",children:"Close"})]})]})]})}function Rt({className:t,...a}){return C("div",{"data-slot":"sheet-header",className:c("astw:flex astw:flex-col astw:gap-1.5 astw:p-4",t),...a})}function Tt({className:t,...a}){return C(m.Title,{"data-slot":"sheet-title",className:c("astw:text-foreground astw:font-semibold",t),...a})}function Nt({className:t,...a}){return C(m.Description,{"data-slot":"sheet-description",className:c("astw:text-muted-foreground astw:text-sm",t),...a})}import{jsx as Mr}from"react/jsx-runtime";import*as f from"@radix-ui/react-tooltip";import{jsx as B,jsxs as Ua}from"react/jsx-runtime";function at({delayDuration:t=0,...a}){return B(f.Provider,{"data-slot":"tooltip-provider",delayDuration:t,...a})}function zt({...t}){return B(at,{children:B(f.Root,{"data-slot":"tooltip",...t})})}function Bt({...t}){return B(f.Trigger,{"data-slot":"tooltip-trigger",...t})}function Mt({className:t,sideOffset:a=0,children:e,...r}){return B(f.Portal,{children:Ua(f.Content,{"data-slot":"tooltip-content",sideOffset:a,className:c("astw:bg-primary astw:text-primary-foreground astw:animate-in astw:fade-in-0 astw:zoom-in-95 astw:data-[state=closed]:animate-out astw:data-[state=closed]:fade-out-0 astw:data-[state=closed]:zoom-out-95 astw:data-[side=bottom]:slide-in-from-top-2 astw:data-[side=left]:slide-in-from-right-2 astw:data-[side=right]:slide-in-from-left-2 astw:data-[side=top]:slide-in-from-bottom-2 astw:z-50 astw:w-fit astw:origin-(--radix-tooltip-content-transform-origin) astw:rounded-md astw:px-3 astw:py-1.5 astw:text-xs astw:text-balance",t),...r,children:[e,B(f.Arrow,{className:"astw:bg-primary astw:fill-primary astw:z-50 astw:size-2.5 astw:translate-y-[calc(-50%_-_2px)] astw:rotate-45 astw:rounded-[2px]"})]})})}import{jsx as w,jsxs as A}from"react/jsx-runtime";var Ha="sidebar_state",Va=3600*24*7,Ka="16rem",qa="18rem",Ga="3rem",Xa="b",Et=b.createContext(null);function L(){let t=b.useContext(Et);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function It({defaultOpen:t=!0,open:a,onOpenChange:e,className:r,style:o,children:s,...l}){let i=kt(),[d,p]=b.useState(!1),[u,R]=b.useState(t),k=a??u,T=b.useCallback(v=>{let S=typeof v=="function"?v(k):v;e?e(S):R(S),document.cookie=`${Ha}=${S}; path=/; max-age=${Va}`},[e,k]),N=b.useCallback(()=>i?p(v=>!v):T(v=>!v),[i,T,p]);b.useEffect(()=>{let v=S=>{S.key===Xa&&(S.metaKey||S.ctrlKey)&&(S.preventDefault(),N())};return window.addEventListener("keydown",v),()=>window.removeEventListener("keydown",v)},[N]);let q=k?"expanded":"collapsed",W=b.useMemo(()=>({state:q,open:k,setOpen:T,isMobile:i,openMobile:d,setOpenMobile:p,toggleSidebar:N}),[q,k,T,i,d,p,N]);return w(Et.Provider,{value:W,children:w(at,{delayDuration:0,children:w("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":Ka,"--sidebar-width-icon":Ga,...o},className:c("astw:group/sidebar-wrapper astw:has-data-[variant=inset]:bg-sidebar astw:flex astw:min-h-svh astw:w-full",r),...l,children:s})})})}function _t({side:t="left",variant:a="sidebar",collapsible:e="offcanvas",className:r,children:o,...s}){let{isMobile:l,state:i,openMobile:d,setOpenMobile:p}=L();return e==="none"?w("div",{"data-slot":"sidebar",className:c("astw:bg-sidebar astw:text-sidebar-foreground astw:flex astw:h-full astw:w-(--sidebar-width) astw:flex-col",r),...s,children:o}):l?w(St,{open:d,onOpenChange:p,...s,children:A(Pt,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"astw:bg-sidebar astw:text-sidebar-foreground astw:w-(--sidebar-width) astw:p-0 astw:[&>button]:hidden",style:{"--sidebar-width":qa},side:t,children:[A(Rt,{className:"astw:sr-only",children:[w(Tt,{children:"Sidebar"}),w(Nt,{children:"Displays the mobile sidebar."})]}),w("div",{className:"flex h-full w-full flex-col",children:o})]})}):A("div",{className:"astw:group astw:peer astw:text-sidebar-foreground astw:hidden astw:md:block","data-state":i,"data-collapsible":i==="collapsed"?e:"","data-variant":a,"data-side":t,"data-slot":"sidebar",children:[w("div",{"data-slot":"sidebar-gap",className:c("astw:relative astw:w-(--sidebar-width) astw:bg-transparent astw:transition-[width] astw:duration-200 astw:ease-linear","astw:group-data-[collapsible=offcanvas]:w-0","astw:group-data-[side=right]:rotate-180",a==="floating"||a==="inset"?"astw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"astw:group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),w("div",{"data-slot":"sidebar-container",className:c("astw:fixed astw:inset-y-0 astw:z-10 astw:hidden astw:h-svh astw:w-(--sidebar-width) astw:transition-[left,right,width] astw:duration-200 astw:ease-linear astw:md:flex",t==="left"?"astw:left-0 astw:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"astw:right-0 astw:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",a==="floating"||a==="inset"?"astw:p-2 astw:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"astw:group-data-[collapsible=icon]:w-(--sidebar-width-icon) astw:group-data-[side=left]:border-r astw:group-data-[side=right]:border-l",a==="inset"&&"astw:border-x astw:border-x-border",r),...s,children:w("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"astw:bg-sidebar astw:group-data-[variant=floating]:border-sidebar-border astw:flex astw:h-full astw:w-full astw:flex-col astw:group-data-[variant=floating]:rounded-lg astw:group-data-[variant=floating]:border astw:group-data-[variant=floating]:shadow-sm",children:o})})]})}function rt({className:t,onClick:a,...e}){let{toggleSidebar:r}=L();return A(y,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:c("astw:text-muted-foreground",t),onClick:o=>{a?.(o),r()},...e,children:[w(Fa,{className:"astw:size-4.5"}),w("span",{className:"astw:sr-only",children:"Toggle Sidebar"})]})}function At({className:t,...a}){return w("main",{"data-slot":"sidebar-inset",className:c("astw:bg-background astw:relative astw:flex astw:w-full astw:flex-1 astw:flex-col","astw:px-4 astw:md:peer-data-[variant=inset]:px-8 astw:md:peer-data-[variant=inset]:py-2",t),...a})}function Lt({className:t,...a}){return w("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:c("astw:flex astw:flex-row astw:items-center astw:gap-0.5 astw:p-2",t),...a})}function Ot({className:t,...a}){return w("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:c("astw:flex astw:min-h-0 astw:flex-1 astw:flex-col astw:gap-2 astw:overflow-auto astw:group-data-[collapsible=icon]:overflow-hidden",t),...a})}function Dt({className:t,...a}){return w("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:c("astw:relative astw:flex astw:w-full astw:min-w-0 astw:flex-col astw:p-2",t),...a})}function jt({className:t,...a}){return w("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:c("astw:flex astw:w-full astw:min-w-0 astw:flex-col astw:gap-1",t),...a})}function Wt({className:t,...a}){return w("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:c("astw:group/menu-item astw:relative",t),...a})}var Ya=$a("astw:peer/menu-button astw:flex astw:w-full astw:items-center astw:gap-2 astw:overflow-hidden astw:rounded-md astw:p-2 astw:text-left astw:text-sm astw:outline-hidden astw:ring-sidebar-ring astw:transition-[width,height,padding] astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:focus-visible:ring-2 astw:active:bg-sidebar-accent astw:active:text-sidebar-accent-foreground astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:group-has-data-[sidebar=menu-action]/menu-item:pr-8 astw:aria-disabled:pointer-events-none astw:aria-disabled:opacity-50 astw:data-[active=true]:bg-sidebar-accent astw:data-[active=true]:font-medium astw:data-[active=true]:text-sidebar-accent-foreground astw:data-[state=open]:hover:bg-sidebar-accent astw:data-[state=open]:hover:text-sidebar-accent-foreground astw:group-data-[collapsible=icon]:size-8! astw:group-data-[collapsible=icon]:p-2! astw:[&>span:last-child]:truncate astw:[&>svg]:size-4 astw:[&>svg]:shrink-0",{variants:{variant:{default:"astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground",outline:"astw:bg-background astw:shadow-[0_0_0_1px_hsl(var(--sidebar-border))] astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{default:"astw:h-8 astw:text-sm",sm:"astw:h-7 astw:rounded-md astw:gap-1.5 astw:px-3 astw:has-[>svg]:px-2.5",lg:"astw:h-12 astw:text-sm astw:group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function ot({asChild:t=!1,isActive:a=!1,variant:e="default",size:r="default",tooltip:o,className:s,...l}){let i=t?et:"button",{isMobile:d,state:p}=L(),u=w(i,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":r,"data-active":a,className:c(Ya({variant:e,size:r}),s),...l});return o?(typeof o=="string"&&(o={children:o}),A(zt,{children:[w(Bt,{asChild:!0,children:u}),w(Mt,{side:"right",align:"center",hidden:p!=="collapsed"||d,...o})]})):u}function st({className:t,asChild:a=!1,showOnHover:e=!1,...r}){return w(a?et:"button",{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:c("astw:text-sidebar-foreground astw:ring-sidebar-ring astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:peer-hover/menu-button:text-sidebar-accent-foreground astw:absolute astw:top-1.5 astw:right-1 astw:flex astw:aspect-square astw:w-5 astw:items-center astw:justify-center astw:rounded-md astw:p-0 astw:outline-hidden astw:transition-transform astw:focus-visible:ring-2 astw:[&>svg]:size-4 astw:[&>svg]:shrink-0","astw:after:absolute astw:after:-inset-2 astw:md:after:hidden","astw:peer-data-[size=sm]/menu-button:top-1","astw:peer-data-[size=default]/menu-button:top-1.5","astw:peer-data-[size=lg]/menu-button:top-2.5","astw:group-data-[collapsible=icon]:hidden",e&&"astw:peer-data-[active=true]/menu-button:text-sidebar-accent-foreground astw:group-focus-within/menu-item:opacity-100 astw:group-hover/menu-item:opacity-100 astw:data-[state=open]:opacity-100 astw:md:opacity-0",t),...r})}function Ut({className:t,...a}){return w("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:c("astw:border-sidebar-border astw:mx-3.5 astw:flex astw:min-w-0 astw:translate-x-px astw:flex-col astw:gap-1 astw:border-l astw:px-2.5 astw:py-0.5","astw:group-data-[collapsible=icon]:hidden",t),...a})}function $t({className:t,...a}){return w("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:c("astw:group/menu-sub-item astw:relative",t),...a})}function Ft({asChild:t=!1,size:a="md",isActive:e=!1,className:r,...o}){return w(t?et:"a",{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":a,"data-active":e,className:c("astw:text-sidebar-foreground astw:ring-sidebar-ring astw:hover:bg-sidebar-accent astw:hover:text-sidebar-accent-foreground astw:active:bg-sidebar-accent astw:active:text-sidebar-accent-foreground astw:[&>svg]:text-sidebar-accent-foreground astw:flex astw:h-7 astw:min-w-0 astw:-translate-x-px astw:items-center astw:gap-2 astw:overflow-hidden astw:rounded-md astw:px-2 astw:outline-hidden astw:focus-visible:ring-2 astw:disabled:pointer-events-none astw:disabled:opacity-50 astw:aria-disabled:pointer-events-none astw:aria-disabled:opacity-50 astw:[&>span:last-child]:truncate astw:[&>svg]:size-4 astw:[&>svg]:shrink-0","astw:data-[active=true]:bg-sidebar-accent astw:data-[active=true]:text-sidebar-accent-foreground",a==="sm"&&"astw:text-xs",a==="md"&&"astw:text-sm","astw:group-data-[collapsible=icon]:hidden",r),...o})}import{ChevronRight as qt,SunIcon as re}from"lucide-react";import{Slot as Za}from"@radix-ui/react-slot";import{ChevronRight as te,MoreHorizontal as oo}from"lucide-react";import{Link as Ja,useHref as Qa}from"react-router";import{jsx as Ht}from"react/jsx-runtime";function O({to:t,children:a,...e}){try{return Qa(t),Ht(Ja,{to:t,...e,children:a})}catch{return Ht("a",{href:t,...e,children:a})}}import{jsx as M,jsxs as lo}from"react/jsx-runtime";function it({...t}){return M("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...t})}function nt({className:t,...a}){return M("ol",{"data-slot":"breadcrumb-list",className:c("astw:text-muted-foreground astw:flex astw:flex-wrap astw:items-center astw:gap-1.5 astw:text-sm astw:break-words astw:sm:gap-2.5",t),...a})}function dt({className:t,...a}){return M("li",{"data-slot":"breadcrumb-item",className:c("astw:inline-flex astw:items-center astw:gap-1.5",t),...a})}function lt({asChild:t,className:a,children:e,...r}){return M(t?Za:O,{"data-slot":"breadcrumb-link",className:c("astw:hover:text-foreground astw:transition-colors",a),...r,children:e})}function Vt({children:t,className:a,...e}){return M("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:c("astw:[&>svg]:size-3.5",a),...e,children:t??M(te,{})})}var ae=t=>t.reduce((a,e)=>{a[e.path]={title:e.meta.title,breadcrumbTitle:e.meta.breadcrumbTitle};let r=(o,s)=>{!o||o.length===0||o.forEach(l=>{let i=`${s}/${l.path}`;a[i]={title:l.meta.title,breadcrumbTitle:l.meta.breadcrumbTitle},l.subResources&&l.subResources.length>0&&r(l.subResources,i)})};return e.resources&&e.resources.length>0&&r(e.resources,e.path),a},{});function Kt(t,a,e){let r=t.split("/").filter(i=>i!=="").slice(1),o=a?(()=>{let[i,...d]=r;return d})():r,s=ae(e),l=o.map((i,d)=>{let p=o.slice(0,d+1).join("/"),u=s[p];if(!u){let k=Object.entries(s).find(([T])=>{let N=T.split("/").map(W=>W.startsWith(":")?"[^/]+":W).join("/");return new RegExp(`^${N}$`).test(p)})?.[1];k&&(u=k)}let R;return u?typeof u.breadcrumbTitle=="function"?R=u.breadcrumbTitle(i):typeof u.breadcrumbTitle=="string"?R=u.breadcrumbTitle:R=u.title:R=decodeURIComponent(i),{segment:i,path:p,title:R}});return{basePath:a||null,segments:l}}import{Fragment as Gt,jsx as n,jsxs as g}from"react/jsx-runtime";var oe=()=>{let{open:t}=L();return n("div",{className:t?"astw:md:hidden":void 0,children:n(rt,{className:"astw:-ml-2.5"})})},se=t=>{let a=t.children?t.children({Outlet:X}):null,e=Y(),r=()=>{e.setTheme(e.theme==="dark"?"light":"dark")};return n(It,{className:"astw:flex astw:flex-col",children:g("div",{className:"astw:flex astw:flex-1",children:[t.sidebar??n(Yt,{}),g(At,{className:"astw:w-[calc(100%-var(--sidebar-width))]",children:[n("header",{className:"astw:flex astw:h-14 astw:shrink-0 astw:items-center astw:gap-2 astw:transition-[width,height] astw:ease-linear astw:group-has-data-[collapsible=icon]/sidebar-wrapper:h-12",children:g("div",{className:"astw:flex astw:w-full astw:items-center astw:justify-between",children:[g("div",{className:"astw:flex astw:items-center astw:gap-2",children:[n(oe,{}),n(ne,{})]}),n("div",{className:"astw:flex astw:items-center astw:gap-2",children:n(y,{variant:"outline",size:"icon",onClick:r,children:n(re,{})})})]})}),n("div",{className:"astw:flex astw:flex-col astw:gap-4",children:a??n(X,{})})]})]})})},Yt=t=>{let{title:a,icon:e,navItems:r}=P(),{pathname:o}=Xt(),s=g(Lt,{children:[e,n("h1",{className:"astw:text-sm astw:mb-2 astw:mt-2 astw:px-2",children:a})]});return g(_t,{variant:"inset",children:[g("div",{className:"astw:flex astw:justify-between astw:items-center",children:[t.header??s,n("div",{className:"astw:hidden astw:md:block",children:n(rt,{className:"astw:-ml-1"})})]}),n(Ot,{children:n(Dt,{children:n(jt,{children:r.map(i=>n(yt,{asChild:!0,defaultOpen:i.isActive,children:g(Wt,{children:[i.url?g(Gt,{children:[n(ot,{asChild:!0,tooltip:i.title,children:g(O,{to:i.url,className:i.url===o?"astw:bg-sidebar-accent astw:font-medium":void 0,children:[i.icon,n("span",{children:i.title})]})}),!!i.items?.length&&n(J,{asChild:!0,children:g(st,{className:"astw:data-[state=open]:rotate-90",children:[n(qt,{}),n("span",{className:"astw:sr-only",children:"Toggle"})]})})]}):n(Gt,{children:g(J,{className:"astw:flex astw:w-[100%] astw:[&[data-state=open]_.astw-rotate-target]:rotate-90",children:[n(ot,{asChild:!0,tooltip:i.title,children:g("span",{className:"astw:flex astw:w-[100%]",children:[i.icon,n("span",{children:i.title})]})}),!!i.items?.length&&n(st,{className:"astw-rotate-target",asChild:!0,children:g("span",{children:[n(qt,{}),n("span",{className:"astw:sr-only",children:"Toggle"})]})})]})}),!!i.items?.length&&n(Ct,{children:n(Ut,{children:i.items?.map(d=>n($t,{children:n(Ft,{asChild:!0,children:n(O,{to:d.url,className:d.url===o?"astw:bg-sidebar-accent astw:font-medium":void 0,children:n("span",{children:d.title})})})},d.title))})})]})},i.title))})})}),t.footer??null]})},ie=()=>{let{configurations:t}=P(),a=Xt();return Kt(a.pathname,t.basePath,t.modules)},ne=()=>{let{segments:t}=ie(),a=ee("/:prefix/settings/:suffix");return a?n(it,{children:n(nt,{children:n("div",{className:"astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",children:n(dt,{children:n(lt,{to:`/${a.params.prefix}/settings`,children:"Settings"})})})})}):n(it,{children:n(nt,{children:t.map((e,r)=>g("div",{className:"astw:inline-flex astw:items-center astw:gap-3 astw:last:text-foreground",children:[n(dt,{children:n(lt,{to:e.path,children:e.title})}),r<t.length-1&&n(Vt,{})]},r))})})};import{useLocation as jo,useNavigate as Wo,useParams as Uo,useSearchParams as $o,useRouteError as Fo,Link as Ho}from"react-router";import{createContext as le,useCallback as Zt,useContext as ce,useEffect as we,useMemo as pe,useState as ue}from"react";import*as E from"oauth4webapi";var D="oauth_pkce_verifier",j="oauth_state",Jt=({apiEndpoint:t,clientId:a,state:e,codeChallenge:r,redirectUri:o})=>{let s=new URL(`${t}/oauth2/authorize`);return s.searchParams.set("response_type","code"),s.searchParams.set("client_id",a),s.searchParams.set("redirect_uri",o??window.location.origin),s.searchParams.set("scope","openid profile email"),s.searchParams.set("state",e),s.searchParams.set("code_challenge",r),s.searchParams.set("code_challenge_method","S256"),s.toString()},de=async({code:t,returnedState:a,apiEndpoint:e,clientId:r,redirectUri:o})=>{let s=sessionStorage.getItem(D),l=sessionStorage.getItem(j);if(!t||!a||!s||!l){let d=[];throw t||d.push("code"),a||d.push("returnedState"),s||d.push("code_verifier"),l||d.push("expectedState"),new Error(`Missing params: ${d.join(", ")}`)}if(a!==l)throw new Error("State mismatch: possible CSRF attack");let i=new URLSearchParams({grant_type:"authorization_code",client_id:r,code:t,redirect_uri:o??window.location.origin,code_verifier:s});try{let d=await fetch(`${e}/oauth2/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:i.toString()}),{access_token:p}=await d.json();return p}catch(d){throw new Error(`Token exchange failed: ${d instanceof Error?d.message:String(d)}`)}},Qt=async()=>{let t=E.generateRandomCodeVerifier(),a=await E.calculatePKCECodeChallenge(t),e=E.generateRandomState();return sessionStorage.setItem(D,t),sessionStorage.setItem(j,e),{codeChallenge:a,state:e}},Po=async({currentUrl:t,apiEndpoint:a,clientId:e,redirectUri:r})=>{try{let o=t.searchParams.get("code"),s=t.searchParams.get("state");await de({apiEndpoint:a,clientId:e,code:o,returnedState:s,redirectUri:r})}catch(o){console.error(o)}finally{sessionStorage.removeItem(D),sessionStorage.removeItem(j),t.searchParams.delete("code"),t.searchParams.delete("state"),t.searchParams.delete("error"),t.searchParams.delete("error_description"),window.history.replaceState({},document.title,t.toString())}};import{jsx as be}from"react/jsx-runtime";var ta=le(void 0),me=()=>{let t=ce(ta);if(t===void 0)throw new Error("useBuiltinIdpAuth must be used within an BuiltinIdPAuthContextProvider");return t},ge=({apiEndpoint:t,clientId:a,redirectUri:e,children:r})=>{let[o,s]=ue(!1),l=Zt(async()=>{let{codeChallenge:d,state:p}=await Qt(),u=Jt({apiEndpoint:t,clientId:a,codeChallenge:d,state:p,redirectUri:e});window.location.href=u},[t,a,e]);we(()=>{(async()=>(await(await fetch(`${t}/query`,{method:"POST",headers:{"Content-Type":"application/json","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:JSON.stringify({query:"query Myself(){ me { id }}"})})).json()).data.me?s(!0):l())()},[t,l]);let i=Zt(async()=>{sessionStorage.removeItem(D),sessionStorage.removeItem(j);try{await fetch(`${t}/oauth2/revoke`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","X-Tailor-Nonce":crypto.randomUUID()},credentials:"include",body:""}),window.location.href="/"}catch(d){console.error(d)}},[t]);return be(ta.Provider,{value:pe(()=>({login:l,logout:i}),[l,i]),children:o?r:null})};export{La as AppShell,ge as BuiltinIdPAuthProvider,Yt as DefaultSidebar,Ho as Link,j as OAUTH_STATE_KEY,D as PKCE_VERIFIER_KEY,se as SidebarLayoutContainer,Jt as buildAuthorizationUrl,ba as defineModule,ha as defineResource,de as exchangeCodeForToken,Po as handleOAuthCallback,Qt as prepareLogin,ga as redirectToResource,P as useAppShell,me as useBuiltinIdpAuth,jo as useLocation,Wo as useNavigate,Uo as useParams,Fo as useRouteError,$o as useSearchParams,Y as useTheme};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailor-platform/app-shell",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./styles": "./dist/index.css",
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
"dist/**"
|
|
15
15
|
],
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"next": "15",
|
|
18
17
|
"react": ">= 19",
|
|
19
18
|
"react-dom": ">= 19"
|
|
20
19
|
},
|