@gradeui/ui 0.7.0 → 0.8.2
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.d.mts +83 -8
- package/dist/index.d.ts +83 -8
- package/dist/index.js +29 -29
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +29 -29
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var y=require('react'),ae=require('@radix-ui/react-accordion'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),reactSlot=require('@radix-ui/react-slot'),reactDayPicker=require('react-day-picker'),_e=require('@radix-ui/react-checkbox'),dateFns=require('date-fns'),de=require('@radix-ui/react-popover'),F=require('@radix-ui/react-dialog'),x=require('@radix-ui/react-dropdown-menu'),$t=require('@radix-ui/react-label'),We=require('@radix-ui/react-progress'),Re=require('@radix-ui/react-radio-group'),ne=require('@radix-ui/react-scroll-area'),R=require('@radix-ui/react-select'),_t=require('@radix-ui/react-separator'),ge=require('@radix-ui/react-slider'),qe=require('@radix-ui/react-switch'),ce=require('@radix-ui/react-tabs'),le=require('@radix-ui/react-tooltip'),I=require('three'),postprocessing=require('postprocessing'),fi=require('lenis');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var y__namespace=/*#__PURE__*/_interopNamespace(y);var ae__namespace=/*#__PURE__*/_interopNamespace(ae);var _e__namespace=/*#__PURE__*/_interopNamespace(_e);var de__namespace=/*#__PURE__*/_interopNamespace(de);var F__namespace=/*#__PURE__*/_interopNamespace(F);var x__namespace=/*#__PURE__*/_interopNamespace(x);var $t__namespace=/*#__PURE__*/_interopNamespace($t);var We__namespace=/*#__PURE__*/_interopNamespace(We);var Re__namespace=/*#__PURE__*/_interopNamespace(Re);var ne__namespace=/*#__PURE__*/_interopNamespace(ne);var R__namespace=/*#__PURE__*/_interopNamespace(R);var _t__namespace=/*#__PURE__*/_interopNamespace(_t);var ge__namespace=/*#__PURE__*/_interopNamespace(ge);var qe__namespace=/*#__PURE__*/_interopNamespace(qe);var ce__namespace=/*#__PURE__*/_interopNamespace(ce);var le__namespace=/*#__PURE__*/_interopNamespace(le);var I__namespace=/*#__PURE__*/_interopNamespace(I);var fi__default=/*#__PURE__*/_interopDefault(fi);function a(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var Da=ae__namespace.Root,Rr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ae__namespace.Item,{ref:r,className:a("border-b",e),...t}));Rr.displayName="AccordionItem";var Tr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ae__namespace.Header,{className:"flex"},y__namespace.createElement(ae__namespace.Trigger,{ref:o,className:a("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...r},t,y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4 shrink-0 transition-transform duration-200"}))));Tr.displayName=ae__namespace.Trigger.displayName;var wr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ae__namespace.Content,{ref:o,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...r},y__namespace.createElement("div",{className:a("pb-4 pt-0",e)},t)));wr.displayName=ae__namespace.Content.displayName;var Aa=classVarianceAuthority.cva("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4",{variants:{variant:{default:"bg-background text-foreground [&>svg]:text-foreground",destructive:"border-destructive/30 bg-destructive-soft text-destructive-deep [&>svg]:text-destructive-deep",success:"border-success/30 bg-success-soft text-success-deep [&>svg]:text-success-deep",warning:"border-warning/30 bg-warning-soft text-warning-deep [&>svg]:text-warning-deep",info:"border-info/30 bg-info-soft text-info-deep [&>svg]:text-info-deep",highlight:"border-highlight/30 bg-highlight-soft text-foreground [&>svg]:text-highlight-deep"}},defaultVariants:{variant:"default"}}),Sr=y__namespace.forwardRef(({className:e,variant:t,...r},o)=>y__namespace.createElement("div",{ref:o,role:"alert",className:a(Aa({variant:t}),e),...r}));Sr.displayName="Alert";var Pr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("h5",{ref:r,className:a("mb-1 font-medium leading-none tracking-tight",e),...t}));Pr.displayName="AlertTitle";var Cr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,className:a("text-sm [&_p]:leading-relaxed",e),...t}));Cr.displayName="AlertDescription";var Nr=classVarianceAuthority.cva("rds-app-shell min-h-screen w-full bg-background text-foreground",{variants:{nav:{none:"block",top:"grid grid-rows-[auto_1fr]",side:"grid grid-cols-[auto_1fr]"}},defaultVariants:{nav:"none"}}),kr=classVarianceAuthority.cva("rds-app-shell-nav",{variants:{placement:{top:"border-b bg-background",side:"border-r bg-background",none:"hidden"},sticky:{true:"",false:""}},compoundVariants:[{placement:"top",sticky:true,className:"sticky top-0 z-30"},{placement:"side",sticky:true,className:"sticky top-0 h-screen self-start"}],defaultVariants:{placement:"top",sticky:true}}),Mr=classVarianceAuthority.cva("rds-app-shell-main min-w-0",{variants:{maxWidth:{full:"w-full",container:"w-full mx-auto max-w-7xl px-4 md:px-6 lg:px-8"}},defaultVariants:{maxWidth:"full"}}),Er=y__namespace.forwardRef(({className:e,nav:t,asChild:r=false,...o},n)=>y__namespace.createElement(r?reactSlot.Slot:"div",{ref:n,"data-gds-part":"app-shell","data-nav":t??"none",className:a(Nr({nav:t,className:e})),...o}));Er.displayName="AppShell";var Hr=y__namespace.forwardRef(({className:e,placement:t,sticky:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"nav",{ref:i,"data-gds-part":"app-shell-nav","data-placement":t??"top",className:a(kr({placement:t,sticky:r,className:e})),...n}));Hr.displayName="AppShellNav";var Lr=y__namespace.forwardRef(({className:e,maxWidth:t,asChild:r=false,...o},n)=>y__namespace.createElement(r?reactSlot.Slot:"main",{ref:n,"data-gds-part":"app-shell-main",className:a(Mr({maxWidth:t,className:e})),...o}));Lr.displayName="AppShellMain";var Ir=classVarianceAuthority.cva("inline-flex items-center gap-1 border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:size-3 [&_svg]:shrink-0",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground",highlight:"border-transparent bg-rds-yellow-400 text-rds-gray-900 shadow hover:bg-rds-yellow-500",success:"border-transparent bg-rds-green-500 text-rds-gray-900 shadow hover:bg-rds-green-600",warning:"border-transparent bg-orange-500 text-white shadow hover:bg-orange-600",info:"border-transparent bg-blue-500 text-white shadow hover:bg-blue-600","success-soft":"border-rds-green-500/20 bg-rds-green-500/10 text-rds-green-600 dark:text-rds-green-400","warning-soft":"border-orange-500/20 bg-orange-500/10 text-orange-600 dark:text-orange-400","destructive-soft":"border-destructive/20 bg-destructive/10 text-destructive dark:text-red-400","info-soft":"border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400","highlight-soft":"border-rds-yellow-500/20 bg-rds-yellow-400/10 text-rds-yellow-600 dark:text-rds-yellow-400","success-outline":"border-rds-green-500/50 bg-transparent text-rds-green-600 dark:text-rds-green-400","warning-outline":"border-orange-500/50 bg-transparent text-orange-600 dark:text-orange-400","destructive-outline":"border-destructive/50 bg-transparent text-destructive dark:text-red-400","info-outline":"border-blue-500/50 bg-transparent text-blue-600 dark:text-blue-400"},rounded:{default:"rounded-md",full:"rounded-full"}},defaultVariants:{variant:"default",rounded:"default"}});function Oa({className:e,variant:t,rounded:r,...o}){return y__namespace.createElement("div",{className:a(Ir({variant:t,rounded:r}),e),...o})}var Ue=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),X=y__namespace.forwardRef(({className:e,variant:t,size:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"button",{className:a("rds-button",Ue({variant:t,size:r,className:e})),ref:i,...n}));X.displayName="Button";function pt({className:e,classNames:t,showOutsideDays:r=true,captionLayout:o="label",buttonVariant:n="ghost",formatters:i,components:d,...c}){let s=reactDayPicker.getDefaultClassNames();return y__namespace.createElement(reactDayPicker.DayPicker,{showOutsideDays:r,className:a("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:o,formatters:{formatMonthDropdown:p=>p.toLocaleString("default",{month:"short"}),...i},classNames:{root:a("w-fit",s.root),months:a("relative flex flex-col gap-4 md:flex-row",s.months),month:a("flex w-full flex-col gap-4",s.month),nav:a("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",s.nav),button_previous:a(Ue({variant:n}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",s.button_previous),button_next:a(Ue({variant:n}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",s.button_next),month_caption:a("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",s.month_caption),dropdowns:a("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",s.dropdowns),dropdown_root:a("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",s.dropdown_root),dropdown:a("bg-popover absolute inset-0 opacity-0",s.dropdown),caption_label:a("select-none font-medium",o==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",s.caption_label),table:"w-full border-collapse",weekdays:a("flex",s.weekdays),weekday:a("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",s.weekday),week:a("mt-2 flex w-full",s.week),week_number_header:a("w-[--cell-size] select-none",s.week_number_header),week_number:a("text-muted-foreground select-none text-[0.8rem]",s.week_number),day:a("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",s.day),range_start:a("bg-accent rounded-l-md",s.range_start),range_middle:a("rounded-none",s.range_middle),range_end:a("bg-accent rounded-r-md",s.range_end),today:a("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",s.today),outside:a("text-muted-foreground aria-selected:text-muted-foreground",s.outside),disabled:a("text-muted-foreground opacity-50",s.disabled),hidden:a("invisible",s.hidden),...t},components:{Root:({className:p,rootRef:l,...m})=>y__namespace.createElement("div",{"data-slot":"calendar",ref:l,className:a(p),...m}),Chevron:({className:p,orientation:l,...m})=>l==="left"?y__namespace.createElement(lucideReact.ChevronLeftIcon,{className:a("size-4",p),...m}):l==="right"?y__namespace.createElement(lucideReact.ChevronRightIcon,{className:a("size-4",p),...m}):y__namespace.createElement(lucideReact.ChevronDownIcon,{className:a("size-4",p),...m}),DayButton:Fr,WeekNumber:({children:p,...l})=>y__namespace.createElement("td",{...l},y__namespace.createElement("div",{className:"flex size-[--cell-size] items-center justify-center text-center"},p)),...d},...c})}function Fr({className:e,day:t,modifiers:r,...o}){let n=reactDayPicker.getDefaultClassNames(),i=y__namespace.useRef(null);return y__namespace.useEffect(()=>{r.focused&&i.current?.focus();},[r.focused]),y__namespace.createElement(X,{ref:i,variant:"ghost",size:"icon","data-day":`${t.date.getFullYear()}-${String(t.date.getMonth()+1).padStart(2,"0")}-${String(t.date.getDate()).padStart(2,"0")}`,"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:a("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",n.day,e),...o})}var Or=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card",className:a("rds-card rounded-xl border bg-card text-card-foreground shadow",e),...t}));Or.displayName="Card";var Gr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-header",className:a("flex flex-col space-y-1.5 p-6",e),...t}));Gr.displayName="CardHeader";var $r=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-title",className:a("font-semibold leading-none tracking-tight",e),...t}));$r.displayName="CardTitle";var Br=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-description",className:a("text-sm text-muted-foreground",e),...t}));Br.displayName="CardDescription";var Vr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-content",className:a("p-6 pt-0",e),...t}));Vr.displayName="CardContent";var Ur=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-footer",className:a("flex items-center p-6 pt-0",e),...t}));Ur.displayName="CardFooter";var _r=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(_e__namespace.Root,{ref:r,className:a("rds-checkbox peer h-4 w-4 shrink-0 rounded-[3px] border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t},y__namespace.createElement(_e__namespace.Indicator,{className:a("flex items-center justify-center text-current")},y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))));_r.displayName=_e__namespace.Root.displayName;var Ie=de__namespace.Root,Ae=de__namespace.Trigger,za=de__namespace.Anchor,ke=y__namespace.forwardRef(({className:e,align:t="center",sideOffset:r=4,...o},n)=>y__namespace.createElement(de__namespace.Portal,null,y__namespace.createElement(de__namespace.Content,{ref:n,align:t,sideOffset:r,className:a("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",e),...o})));ke.displayName=de__namespace.Content.displayName;var Wa="PPP",ja="LLL dd, y";function qa({value:e,onChange:t,placeholder:r="Pick a date",disabled:o,className:n,contentClassName:i,align:d="start",side:c,format:s=Wa,captionLayout:p,icon:l,"aria-label":m}){return y__namespace.createElement(Ie,null,y__namespace.createElement(Ae,{asChild:true},y__namespace.createElement(X,{type:"button",variant:"outline",disabled:o,"aria-label":m??(e?void 0:r),"data-empty":!e,className:a("w-[280px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground",n)},l??y__namespace.createElement(lucideReact.CalendarIcon,{className:"mr-2 h-4 w-4","aria-hidden":true}),e?dateFns.format(e,s):y__namespace.createElement("span",null,r))),y__namespace.createElement(ke,{className:a("w-auto p-0",i),align:d,side:c},y__namespace.createElement(pt,{mode:"single",selected:e,onSelect:t,captionLayout:p,initialFocus:true})))}function Ya({value:e,onChange:t,placeholder:r="Pick a date range",disabled:o,className:n,contentClassName:i,align:d="start",side:c,format:s=ja,captionLayout:p,icon:l,numberOfMonths:m=2,"aria-label":g}){let h=!!e?.from;return y__namespace.createElement(Ie,null,y__namespace.createElement(Ae,{asChild:true},y__namespace.createElement(X,{type:"button",variant:"outline",disabled:o,"aria-label":g??(h?void 0:r),"data-empty":!h,className:a("w-[300px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground",n)},l??y__namespace.createElement(lucideReact.CalendarIcon,{className:"mr-2 h-4 w-4","aria-hidden":true}),e?.from?e.to?y__namespace.createElement(y__namespace.Fragment,null,dateFns.format(e.from,s)," \u2013"," ",dateFns.format(e.to,s)):dateFns.format(e.from,s):y__namespace.createElement("span",null,r))),y__namespace.createElement(ke,{className:a("w-auto p-0",i),align:d,side:c},y__namespace.createElement(pt,{mode:"range",selected:e,onSelect:t,defaultMonth:e?.from,numberOfMonths:m,captionLayout:p,initialFocus:true})))}var Za=F__namespace.Root,Ja=F__namespace.Trigger,zr=F__namespace.Portal,Qa=F__namespace.Close,Gt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Overlay,{ref:r,className:a("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));Gt.displayName=F__namespace.Overlay.displayName;var Wr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(zr,null,y__namespace.createElement(Gt,null),y__namespace.createElement(F__namespace.Content,{ref:o,className:a("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...r},t,y__namespace.createElement(F__namespace.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"},y__namespace.createElement(lucideReact.X,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"sr-only"},"Close")))));Wr.displayName=F__namespace.Content.displayName;var jr=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});jr.displayName="DialogHeader";var qr=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});qr.displayName="DialogFooter";var Yr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Title,{ref:r,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));Yr.displayName=F__namespace.Title.displayName;var Xr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Description,{ref:r,className:a("text-sm text-muted-foreground",e),...t}));Xr.displayName=F__namespace.Description.displayName;var on=x__namespace.Root,an=x__namespace.Trigger,nn=x__namespace.Group,sn=x__namespace.Portal,dn=x__namespace.Sub,cn=x__namespace.RadioGroup,Zr=y__namespace.forwardRef(({className:e,inset:t,children:r,...o},n)=>y__namespace.createElement(x__namespace.SubTrigger,{ref:n,className:a("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...o},r,y__namespace.createElement(lucideReact.ChevronRight,{className:"ml-auto"})));Zr.displayName=x__namespace.SubTrigger.displayName;var Jr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(x__namespace.SubContent,{ref:r,className:a("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...t}));Jr.displayName=x__namespace.SubContent.displayName;var Qr=y__namespace.forwardRef(({className:e,sideOffset:t=4,...r},o)=>y__namespace.createElement(x__namespace.Portal,null,y__namespace.createElement(x__namespace.Content,{ref:o,sideOffset:t,className:a("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...r})));Qr.displayName=x__namespace.Content.displayName;var eo=y__namespace.forwardRef(({className:e,inset:t,...r},o)=>y__namespace.createElement(x__namespace.Item,{ref:o,className:a("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",t&&"pl-8",e),...r}));eo.displayName=x__namespace.Item.displayName;var to=y__namespace.forwardRef(({className:e,children:t,checked:r,...o},n)=>y__namespace.createElement(x__namespace.CheckboxItem,{ref:n,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:r,...o},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(x__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))),t));to.displayName=x__namespace.CheckboxItem.displayName;var ro=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(x__namespace.RadioItem,{ref:o,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(x__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Circle,{className:"h-2 w-2 fill-current"}))),t));ro.displayName=x__namespace.RadioItem.displayName;var oo=y__namespace.forwardRef(({className:e,inset:t,...r},o)=>y__namespace.createElement(x__namespace.Label,{ref:o,className:a("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...r}));oo.displayName=x__namespace.Label.displayName;var ao=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(x__namespace.Separator,{ref:r,className:a("-mx-1 my-1 h-px bg-muted",e),...t}));ao.displayName=x__namespace.Separator.displayName;var no=({className:e,...t})=>y__namespace.createElement("span",{className:a("ml-auto text-xs tracking-widest opacity-60",e),...t});no.displayName="DropdownMenuShortcut";var io=y__namespace.forwardRef(({className:e,type:t,...r},o)=>y__namespace.createElement("input",{type:t,className:a("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:o,...r}));io.displayName="Input";var pn=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),so=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement($t__namespace.Root,{ref:r,className:a(pn(),e),...t}));so.displayName=$t__namespace.Root.displayName;var co=y__namespace.forwardRef(({className:e,value:t,...r},o)=>y__namespace.createElement(We__namespace.Root,{ref:o,className:a("relative h-4 w-full overflow-hidden rounded-full bg-secondary",e),...r},y__namespace.createElement(We__namespace.Indicator,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})));co.displayName=We__namespace.Root.displayName;var lo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(Re__namespace.Root,{className:a("grid gap-2",e),...t,ref:r}));lo.displayName=Re__namespace.Root.displayName;var po=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(Re__namespace.Item,{ref:r,className:a("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),...t},y__namespace.createElement(Re__namespace.Indicator,{className:"flex items-center justify-center"},y__namespace.createElement(lucideReact.Circle,{className:"h-2.5 w-2.5 fill-current text-current"}))));po.displayName=Re__namespace.Item.displayName;var mo=classVarianceAuthority.cva("rds-row flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{true:"flex-wrap",false:"flex-nowrap"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:false}}),uo=y__namespace.forwardRef(({className:e,gap:t,align:r,justify:o,wrap:n,asChild:i=false,...d},c)=>y__namespace.createElement(i?reactSlot.Slot:"div",{ref:c,"data-gds-part":"row",className:a(mo({gap:t,align:r,justify:o,wrap:n,className:e})),...d}));uo.displayName="Row";var fo=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ne__namespace.Root,{ref:o,className:a("relative overflow-hidden",e),...r},y__namespace.createElement(ne__namespace.Viewport,{className:"h-full w-full rounded-[inherit]"},t),y__namespace.createElement(Bt,null),y__namespace.createElement(ne__namespace.Corner,null)));fo.displayName=ne__namespace.Root.displayName;var Bt=y__namespace.forwardRef(({className:e,orientation:t="vertical",...r},o)=>y__namespace.createElement(ne__namespace.ScrollAreaScrollbar,{ref:o,orientation:t,className:a("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r},y__namespace.createElement(ne__namespace.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})));Bt.displayName=ne__namespace.ScrollAreaScrollbar.displayName;var yn=R__namespace.Root,vn=R__namespace.Group,bn=R__namespace.Value,ho=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(R__namespace.Trigger,{ref:o,className:a("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...r},t,y__namespace.createElement(R__namespace.Icon,{asChild:true},y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4 opacity-50"}))));ho.displayName=R__namespace.Trigger.displayName;var Vt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.ScrollUpButton,{ref:r,className:a("flex cursor-default items-center justify-center py-1",e),...t},y__namespace.createElement(lucideReact.ChevronUp,{className:"h-4 w-4"})));Vt.displayName=R__namespace.ScrollUpButton.displayName;var Ut=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.ScrollDownButton,{ref:r,className:a("flex cursor-default items-center justify-center py-1",e),...t},y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4"})));Ut.displayName=R__namespace.ScrollDownButton.displayName;var yo=y__namespace.forwardRef(({className:e,children:t,position:r="popper",...o},n)=>y__namespace.createElement(R__namespace.Portal,null,y__namespace.createElement(R__namespace.Content,{ref:n,className:a("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...o},y__namespace.createElement(Vt,null),y__namespace.createElement(R__namespace.Viewport,{className:a("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]")},t),y__namespace.createElement(Ut,null))));yo.displayName=R__namespace.Content.displayName;var vo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.Label,{ref:r,className:a("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));vo.displayName=R__namespace.Label.displayName;var bo=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(R__namespace.Item,{ref:o,className:a("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(R__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))),y__namespace.createElement(R__namespace.ItemText,null,t)));bo.displayName=R__namespace.Item.displayName;var xo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.Separator,{ref:r,className:a("-mx-1 my-1 h-px bg-muted",e),...t}));xo.displayName=R__namespace.Separator.displayName;var Ro=y__namespace.forwardRef(({className:e,orientation:t="horizontal",decorative:r=true,...o},n)=>y__namespace.createElement(_t__namespace.Root,{ref:n,decorative:r,orientation:t,className:a("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...o}));Ro.displayName=_t__namespace.Root.displayName;var Tn=F__namespace.Root,wn=F__namespace.Trigger,Sn=F__namespace.Close,To=F__namespace.Portal,Kt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Overlay,{className:a("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:r}));Kt.displayName=F__namespace.Overlay.displayName;var Pn=classVarianceAuthority.cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),wo=y__namespace.forwardRef(({side:e="right",className:t,children:r,...o},n)=>y__namespace.createElement(To,null,y__namespace.createElement(Kt,null),y__namespace.createElement(F__namespace.Content,{ref:n,className:a(Pn({side:e}),t),...o},r,y__namespace.createElement(F__namespace.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"},y__namespace.createElement(lucideReact.X,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"sr-only"},"Close")))));wo.displayName=F__namespace.Content.displayName;var So=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col space-y-2 text-center sm:text-left",e),...t});So.displayName="SheetHeader";var Po=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Po.displayName="SheetFooter";var Co=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Title,{ref:r,className:a("text-lg font-semibold text-foreground",e),...t}));Co.displayName=F__namespace.Title.displayName;var No=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Description,{ref:r,className:a("text-sm text-muted-foreground",e),...t}));No.displayName=F__namespace.Description.displayName;function Cn({className:e,...t}){return React.createElement("div",{className:a("animate-pulse rounded-md bg-muted",e),...t})}var ko=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ge__namespace.Root,{ref:r,className:a("relative flex w-full touch-none select-none items-center",e),...t},y__namespace.createElement(ge__namespace.Track,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary"},y__namespace.createElement(ge__namespace.Range,{className:"absolute h-full bg-primary"})),y__namespace.createElement(ge__namespace.Thumb,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})));ko.displayName=ge__namespace.Root.displayName;var Mo=classVarianceAuthority.cva("rds-stack flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"}},defaultVariants:{gap:"md",align:"stretch"}}),Eo=y__namespace.forwardRef(({className:e,gap:t,align:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"div",{ref:i,"data-gds-part":"stack",className:a(Mo({gap:t,align:r,className:e})),...n}));Eo.displayName="Stack";var Ho=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(qe__namespace.Root,{className:a("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:r},y__namespace.createElement(qe__namespace.Thumb,{className:a("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})));Ho.displayName=qe__namespace.Root.displayName;var Lo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{className:"relative w-full overflow-auto"},y__namespace.createElement("table",{ref:r,className:a("w-full caption-bottom text-sm",e),...t})));Lo.displayName="Table";var Do=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("thead",{ref:r,className:a("[&_tr]:border-b",e),...t}));Do.displayName="TableHeader";var Io=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tbody",{ref:r,className:a("[&_tr:last-child]:border-0",e),...t}));Io.displayName="TableBody";var Ao=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tfoot",{ref:r,className:a("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Ao.displayName="TableFooter";var Fo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tr",{ref:r,className:a("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Fo.displayName="TableRow";var Oo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("th",{ref:r,className:a("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Oo.displayName="TableHead";var Go=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("td",{ref:r,className:a("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Go.displayName="TableCell";var $o=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("caption",{ref:r,className:a("mt-4 text-sm text-muted-foreground",e),...t}));$o.displayName="TableCaption";var Mn=ce__namespace.Root,Bo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ce__namespace.List,{ref:r,className:a("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Bo.displayName=ce__namespace.List.displayName;var Vo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ce__namespace.Trigger,{ref:r,className:a("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground",e),...t}));Vo.displayName=ce__namespace.Trigger.displayName;var Uo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ce__namespace.Content,{ref:r,className:a("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Uo.displayName=ce__namespace.Content.displayName;var _o=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("textarea",{className:a("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...t}));_o.displayName="Textarea";var zt=le__namespace.Provider,Wt=le__namespace.Root,jt=le__namespace.Trigger,bt=y__namespace.forwardRef(({className:e,sideOffset:t=4,...r},o)=>y__namespace.createElement(le__namespace.Portal,null,y__namespace.createElement(le__namespace.Content,{ref:o,sideOffset:t,className:a("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",e),...r})));bt.displayName=le__namespace.Content.displayName;var zo=y__namespace.createContext(null);function Wo(){let e=y__namespace.useContext(zo);if(!e)throw new Error("SideMenu components must be used within SideMenu");return e}var Ln=({href:e,className:t,children:r})=>y__namespace.createElement("a",{href:e,className:t},r),jo=y__namespace.forwardRef(({header:e,collapsedHeader:t,sections:r,items:o,footer:n,collapsed:i,onCollapsedChange:d,collapsible:c=true,defaultCollapsed:s=false,activeItem:p,className:l,linkComponent:m=Ln},g)=>{let[h,T]=y__namespace.useState(s),f=i??h,u=()=>{let w=!f;T(w),d?.(w);};return y__namespace.createElement(zt,{delayDuration:0},y__namespace.createElement(zo.Provider,{value:{collapsed:f,activeItem:p,LinkComponent:m}},y__namespace.createElement("aside",{ref:g,className:a("flex h-full flex-col transition-[width] duration-300 ease-in-out","bg-white dark:bg-[#141414] border-r border-rds-gray-200 dark:border-[#1a1a1a]",f?"w-16":"w-64",l)},y__namespace.createElement("div",{className:a("flex items-center border-b border-rds-gray-200 dark:border-[#1a1a1a] flex-shrink-0 h-12",f?"justify-center px-2":"justify-between px-3")},f&&t||e,c&&y__namespace.createElement("button",{onClick:u,className:a("rounded-md h-5 w-5 flex items-center justify-center","text-rds-gray-400 dark:text-rds-gray-500","hover:text-rds-gray-600 dark:hover:text-rds-gray-300 transition-colors","bg-white dark:bg-[#141414] border border-rds-gray-200 dark:border-rds-gray-700 shadow-sm",f&&"absolute left-[calc(4rem-10px)] top-6 -translate-y-1/2 z-50"),"aria-label":f?"Expand sidebar":"Collapse sidebar"},f?y__namespace.createElement(lucideReact.ChevronRight,{className:"h-3 w-3"}):y__namespace.createElement(lucideReact.ChevronLeft,{className:"h-3 w-3"}))),y__namespace.createElement("nav",{className:"flex-1 py-2 overflow-y-auto overflow-x-hidden"},o&&o.length>0&&y__namespace.createElement("div",{className:"px-2 mb-1 space-y-0.5"},o.map(w=>y__namespace.createElement(qt,{key:w.id,item:w}))),r?.map(w=>y__namespace.createElement(Dn,{key:w.id,section:w}))),n&&y__namespace.createElement("div",{className:"flex-shrink-0 border-t border-rds-gray-200 dark:border-[#1a1a1a] p-2"},n))))});jo.displayName="SideMenu";function Dn({section:e}){let{collapsed:t}=Wo(),[r,o]=y__namespace.useState(e.defaultExpanded??true);return t?y__namespace.createElement("div",{className:"px-2 mb-1 space-y-0.5"},e.items.map(n=>y__namespace.createElement(qt,{key:n.id,item:n}))):y__namespace.createElement("div",{className:"px-2 mb-1"},y__namespace.createElement("button",{onClick:()=>o(!r),className:a("flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-sm font-medium","text-rds-gray-700 dark:text-rds-gray-300","hover:bg-rds-gray-50 dark:hover:bg-rds-gray-900","hover:text-rds-gray-900 dark:hover:text-white transition-colors")},e.icon&&y__namespace.createElement("span",{className:"h-3.5 w-3.5 flex-shrink-0"},e.icon),y__namespace.createElement("span",{className:"flex-1 text-left"},e.title),r?y__namespace.createElement(lucideReact.ChevronDown,{className:"h-3 w-3",strokeWidth:1.5}):y__namespace.createElement(lucideReact.ChevronRight,{className:"h-3 w-3",strokeWidth:1.5})),r&&y__namespace.createElement("div",{className:"mt-0.5 space-y-0.5 relative pl-5"},y__namespace.createElement("div",{className:"absolute left-[1.1rem] top-0 bottom-0 w-px bg-rds-gray-200 dark:bg-rds-gray-700"}),e.items.map(n=>y__namespace.createElement(qt,{key:n.id,item:n,nested:true}))))}function qt({item:e,nested:t=false}){let{collapsed:r,activeItem:o,LinkComponent:n}=Wo(),i=o===e.id,d=a("flex items-center gap-2.5 rounded-md text-sm font-medium transition-colors",r?"justify-center px-2 py-2.5":"px-2 py-1.5",i?t?"bg-rds-gray-100 dark:bg-[#1a1a1a] text-rds-gray-900 dark:text-white":"bg-rds-green-50 dark:bg-rds-green-950 text-rds-green-700 dark:text-rds-green-400":"text-rds-gray-700 dark:text-rds-gray-300 hover:bg-rds-gray-50 dark:hover:bg-rds-gray-900 hover:text-rds-gray-900 dark:hover:text-white",e.disabled&&"opacity-50 pointer-events-none"),c=y__namespace.createElement(y__namespace.Fragment,null,e.icon&&y__namespace.createElement("span",{className:a("flex-shrink-0",r?"h-5 w-5":"h-3.5 w-3.5")},e.icon),!r&&y__namespace.createElement("span",null,e.label),!r&&e.badge&&y__namespace.createElement("span",{className:"ml-auto text-xs bg-rds-gray-100 dark:bg-rds-gray-800 px-1.5 py-0.5 rounded"},e.badge)),s=e.href?y__namespace.createElement(n,{href:e.href,className:d},c):y__namespace.createElement("button",{onClick:e.onClick,disabled:e.disabled,className:a(d,"w-full")},c);return r?y__namespace.createElement(Wt,null,y__namespace.createElement(jt,{asChild:true},s),y__namespace.createElement(bt,{side:"right",sideOffset:8},e.label)):s}var An=({href:e,className:t,children:r})=>y__namespace.createElement("a",{href:e,className:t},r),qo=y__namespace.forwardRef(({breadcrumbs:e=[],showMobileMenu:t=false,onMobileMenuClick:r,leftContent:o,rightContent:n,className:i,linkComponent:d=An},c)=>y__namespace.createElement("header",{ref:c,className:a("sticky top-0 z-30 flex h-12 items-center gap-3","border-b border-rds-gray-200 dark:border-[#1a1a1a]","bg-white dark:bg-[#141414] px-4",i)},t&&y__namespace.createElement("button",{onClick:r,className:"lg:hidden rounded-md p-1.5 text-rds-gray-600 hover:bg-rds-gray-100 dark:text-rds-gray-400 dark:hover:bg-rds-gray-800","aria-label":"Toggle menu"},y__namespace.createElement(lucideReact.Menu,{className:"h-4 w-4"})),e.length>0&&y__namespace.createElement("nav",{className:"hidden md:flex items-center gap-1.5 text-sm","aria-label":"Breadcrumb"},e.map((s,p)=>y__namespace.createElement(y__namespace.Fragment,{key:p},p>0&&y__namespace.createElement("span",{className:"text-rds-gray-400 dark:text-rds-gray-500 text-xs"},"/"),s.href?y__namespace.createElement(d,{href:s.href,className:"text-rds-gray-600 dark:text-rds-gray-400 hover:text-rds-gray-900 dark:hover:text-white transition-colors text-sm"},s.label):y__namespace.createElement("span",{className:"text-rds-gray-900 dark:text-white font-medium text-sm"},s.label)))),o,y__namespace.createElement("div",{className:"flex-1"}),n&&y__namespace.createElement("div",{className:"flex items-center gap-1.5"},n)));qo.displayName="TopMenu";var Yo=y__namespace.forwardRef(({name:e,email:t,avatarUrl:r,avatarContent:o,avatarClassName:n,children:i,className:d},c)=>{let[s,p]=y__namespace.useState(false),l=y__namespace.useRef(null);return y__namespace.useEffect(()=>{let m=g=>{l.current&&!l.current.contains(g.target)&&p(false);};return s&&document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[s]),y__namespace.createElement("div",{ref:c,className:a("relative",d)},y__namespace.createElement("div",{ref:l},y__namespace.createElement("button",{onClick:()=>p(!s),className:"flex items-center gap-1.5 rounded-full p-0.5 hover:ring-2 hover:ring-rds-green-500 hover:ring-offset-2 dark:hover:ring-offset-[#141414] transition-all","aria-label":"Account menu"},y__namespace.createElement("div",{className:a("h-8 w-8 rounded-full overflow-hidden flex items-center justify-center",n||"bg-gradient-to-br from-rds-yellow-400 to-rds-yellow-600")},r?y__namespace.createElement("img",{src:r,alt:e||"User",className:"h-full w-full object-cover"}):o)),s&&y__namespace.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg border border-rds-gray-200 dark:border-[#1a1a1a] bg-white dark:bg-[#141414] shadow-lg overflow-hidden z-50"},(e||t)&&y__namespace.createElement("div",{className:"px-4 py-3 border-b border-rds-gray-200 dark:border-[#1a1a1a]"},y__namespace.createElement("div",{className:"flex items-center gap-3"},y__namespace.createElement("div",{className:a("h-10 w-10 rounded-full overflow-hidden flex items-center justify-center",n||"bg-gradient-to-br from-rds-yellow-400 to-rds-yellow-600")},r?y__namespace.createElement("img",{src:r,alt:e||"User",className:"h-full w-full object-cover"}):o),y__namespace.createElement("div",{className:"flex-1 min-w-0"},e&&y__namespace.createElement("p",{className:"text-sm font-medium text-rds-gray-900 dark:text-white truncate"},e),t&&y__namespace.createElement("p",{className:"text-xs text-rds-gray-500 dark:text-rds-gray-400 truncate"},t)))),i)))});Yo.displayName="TopMenuUser";var Xo=y__namespace.forwardRef(({icon:e,children:t,onClick:r,href:o,variant:n="default",className:i},d)=>y__namespace.createElement(o?"a":"button",{ref:d,onClick:r,href:o,className:a("w-full flex items-center gap-3 px-4 py-2 text-sm transition-colors",{default:"text-rds-gray-700 dark:text-rds-gray-300 hover:bg-rds-gray-50 dark:hover:bg-[#1a1a1a]",danger:"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/20",success:"text-rds-green-600 dark:text-rds-green-400 hover:bg-rds-green-50 dark:hover:bg-rds-green-950/20"}[n],i)},e&&y__namespace.createElement("span",{className:"h-4 w-4"},e),y__namespace.createElement("span",null,t)));Xo.displayName="TopMenuUserItem";var Zo=y__namespace.forwardRef(({children:e,className:t},r)=>y__namespace.createElement("div",{ref:r,className:a("py-1 border-t border-rds-gray-200 dark:border-[#1a1a1a] first:border-t-0",t)},e));Zo.displayName="TopMenuUserSection";var Yt=y__namespace.createContext(null);function Xt(){let e=y__namespace.useContext(Yt);if(!e)throw new Error("SimpleTabsPanel must be used within SimpleTabs");return e}var Jo=y__namespace.forwardRef(({tabs:e,activeTab:t,defaultTab:r,onTabChange:o,children:n,className:i,tabsClassName:d},c)=>{let[s,p]=y__namespace.useState(r||e[0]?.id||""),l=t??s,m=g=>{p(g),o?.(g);};return y__namespace.createElement(Yt.Provider,{value:{activeTab:l,setActiveTab:m}},y__namespace.createElement("div",{ref:c,className:a("space-y-6",i)},y__namespace.createElement("div",{className:"border-b border-rds-gray-200 dark:border-rds-gray-800"},y__namespace.createElement("nav",{className:a("-mb-px flex gap-1 overflow-x-auto scrollbar-hide",d),"aria-label":"Tabs"},e.map(g=>{let h=l===g.id;return y__namespace.createElement("button",{key:g.id,onClick:()=>!g.disabled&&m(g.id),disabled:g.disabled,className:a("relative flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors whitespace-nowrap",h?"text-primary":"text-muted-foreground hover:text-foreground",g.disabled&&"opacity-50 cursor-not-allowed")},g.icon&&y__namespace.createElement("span",{className:"h-4 w-4"},g.icon),g.label,h&&y__namespace.createElement("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-primary","aria-hidden":"true"}))}))),n&&y__namespace.createElement("div",null,n)))});Jo.displayName="SimpleTabs";var Qo=y__namespace.forwardRef(({id:e,children:t,className:r},o)=>{let{activeTab:n}=Xt();return n!==e?null:y__namespace.createElement("div",{ref:o,role:"tabpanel","aria-labelledby":`tab-${e}`,className:r},t)});Qo.displayName="SimpleTabsPanel";var ea=y__namespace.forwardRef(({activeTab:e,defaultTab:t,onTabChange:r,children:o,className:n},i)=>{let[d,c]=y__namespace.useState(t||""),s=e??d,p=l=>{c(l),r?.(l);};return y__namespace.createElement(Yt.Provider,{value:{activeTab:s,setActiveTab:p}},y__namespace.createElement("div",{ref:i,className:a("space-y-6",n)},o))});ea.displayName="SimpleTabsRoot";var ta=y__namespace.forwardRef(({children:e,className:t},r)=>y__namespace.createElement("div",{ref:r,className:"border-b border-rds-gray-200 dark:border-rds-gray-800"},y__namespace.createElement("nav",{className:a("-mb-px flex gap-1 overflow-x-auto scrollbar-hide",t),role:"tablist","aria-label":"Tabs"},e)));ta.displayName="SimpleTabsList";var ra=y__namespace.forwardRef(({value:e,children:t,icon:r,disabled:o,className:n},i)=>{let{activeTab:d,setActiveTab:c}=Xt(),s=d===e;return y__namespace.createElement("button",{ref:i,role:"tab",id:`tab-${e}`,"aria-selected":s,"aria-controls":`panel-${e}`,onClick:()=>!o&&c(e),disabled:o,className:a("relative flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors whitespace-nowrap",s?"text-primary":"text-muted-foreground hover:text-foreground",o&&"opacity-50 cursor-not-allowed",n)},r&&y__namespace.createElement("span",{className:"h-4 w-4"},r),t,s&&y__namespace.createElement("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-primary","aria-hidden":"true"}))});ra.displayName="SimpleTabsTrigger";var oa=y__namespace.forwardRef(({value:e,children:t,className:r},o)=>{let{activeTab:n}=Xt();return n!==e?null:y__namespace.createElement("div",{ref:o,role:"tabpanel",id:`panel-${e}`,"aria-labelledby":`tab-${e}`,className:r},t)});oa.displayName="SimpleTabsContent";var Fn={video:"aspect-video",square:"aspect-square",portrait:"aspect-[3/4]",wide:"aspect-[21/9]",auto:""},On={none:"0",sm:"var(--radius, 0.25rem)",md:"calc(var(--radius, 0.375rem) * 1.25)",lg:"calc(var(--radius, 0.5rem) * 1.5)",xl:"calc(var(--radius, 0.75rem) * 2)"},ue=y__namespace.forwardRef(({className:e,aspect:t="video",radius:r="lg",border:o=false,loading:n=false,onVisibilityChange:i,fallback:d,style:c,children:s,...p},l)=>{let m=y__namespace.useRef(null);return y__namespace.useImperativeHandle(l,()=>m.current),y__namespace.useEffect(()=>{if(!i||!m.current)return;let g=m.current,h=new IntersectionObserver(([T])=>i(T.isIntersecting),{threshold:.05});return h.observe(g),()=>h.disconnect()},[i]),y__namespace.createElement("div",{ref:m,"data-gds-part":"media-surface",className:a("rds-media-surface relative w-full overflow-hidden bg-muted",Fn[t],o&&"border border-border",e),style:{borderRadius:`var(--rds-media-radius, ${On[r]})`,...c},...p},s,n&&y__namespace.createElement("div",{className:"absolute inset-0 flex items-center justify-center bg-muted animate-pulse","aria-hidden":true},d))});ue.displayName="MediaSurface";function Ee(){let[e,t]=y__namespace.useState(false);return y__namespace.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");t(r.matches);let o=n=>t(n.matches);return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}var aa=y__namespace.forwardRef(({src:e,controls:t=true,autoPlay:r=false,loop:o=false,muted:n,pauseOffscreen:i=true,aspect:d="video",radius:c="lg",border:s=false,poster:p,label:l,className:m,style:g,playbackRate:h=1,objectFit:T="cover"},f)=>{let u=y__namespace.useRef(null),w=Ee(),[N,E]=y__namespace.useState(!!p);y__namespace.useImperativeHandle(f,()=>u.current);let M=n??r,_=r&&!w;y__namespace.useEffect(()=>{u.current&&(u.current.playbackRate=h);},[h]),y__namespace.useEffect(()=>{E(!!p);},[p]);let J=y__namespace.useCallback(ye=>{!i||!u.current||(ye&&_?u.current.play().catch(()=>{}):u.current.pause());},[i,_]);return y__namespace.createElement(ue,{aspect:d,radius:c,border:s,"aria-label":l,className:m,style:g,onVisibilityChange:i?J:void 0},y__namespace.createElement("video",{ref:u,src:e,controls:t,autoPlay:_,loop:o,muted:M,playsInline:true,preload:_?"auto":"metadata",onPlaying:()=>E(false),className:a("w-full h-full",T==="cover"&&"object-cover",T==="contain"&&"object-contain",T==="fill"&&"object-fill")},"Your browser does not support the video tag."),p&&N&&y__namespace.createElement("img",{src:p,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async","data-gds-part":"video-poster",className:a("absolute inset-0 w-full h-full pointer-events-none transition-opacity duration-200",T==="cover"&&"object-cover",T==="contain"&&"object-contain",T==="fill"&&"object-fill")}))});aa.displayName="VideoPlayer";var na=y__namespace.forwardRef(({src:e,controls:t=false,autoPlay:r=true,loop:o=true,pauseOffscreen:n=true,aspect:i="square",radius:d="lg",border:c=false,poster:s,label:p,className:l,style:m,stateMachines:g,artboard:h,fit:T="contain",stateMachineInputs:f},u)=>{let w=Ee(),[N,E]=y__namespace.useState(null),[M,_]=y__namespace.useState(null);return y__namespace.useEffect(()=>{let J=false;return import('@rive-app/react-canvas').then(ye=>{J||E(ye);}).catch(()=>{J||_("Rive runtime not installed. Run `npm install @rive-app/react-canvas`.");}),()=>{J=true;}},[]),y__namespace.createElement(ue,{ref:u,aspect:i,radius:d,border:c,"aria-label":p,className:l,style:m},M?y__namespace.createElement("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground p-4 text-center"},M):N&&e?y__namespace.createElement(Bn,{Mod:N,src:e,stateMachines:g,artboard:h,fit:T,stateMachineInputs:f,autoPlay:r&&!w,loop:o,pauseOffscreen:n,controls:t,poster:s}):s&&y__namespace.createElement("img",{src:s,alt:"",className:"w-full h-full object-contain"}))});na.displayName="RivePlayer";function Bn({Mod:e,src:t,stateMachines:r,artboard:o,fit:n,autoPlay:i,loop:d,pauseOffscreen:c,controls:s,poster:p}){let{useRive:l,Layout:m,Fit:g,Alignment:h,EventType:T}=e,f={contain:g.Contain,cover:g.Cover,fill:g.Fill,fitWidth:g.FitWidth,fitHeight:g.FitHeight,none:g.None},{rive:u,RiveComponent:w}=l({src:t,stateMachines:r,artboard:o,autoplay:i,layout:new m({fit:f[n],alignment:h.Center})}),[N,E]=y__namespace.useState(i);y__namespace.useEffect(()=>{if(!u||!d)return;let _=()=>{u.play();};return u.on(T.Stop,_),()=>{u.off(T.Stop,_);}},[u,d,T]),y__namespace.useEffect(()=>{if(!c||!u)return;let _=u.canvas;if(!_)return;let J=new IntersectionObserver(([ye])=>{ye.isIntersecting&&i?u.play():u.pause();},{threshold:.05});return J.observe(_),()=>J.disconnect()},[u,c,i]);let M=()=>{u&&(N?(u.pause(),E(false)):(u.play(),E(true)));};return y__namespace.createElement(y__namespace.Fragment,null,y__namespace.createElement(w,{className:"w-full h-full"}),!u&&p&&y__namespace.createElement("img",{src:p,alt:"",className:"absolute inset-0 w-full h-full object-contain pointer-events-none"}),s&&y__namespace.createElement("div",{className:a("absolute inset-0 flex items-end justify-end p-2","opacity-0 hover:opacity-100 transition-opacity","bg-gradient-to-t from-black/40 to-transparent")},y__namespace.createElement(X,{size:"icon",variant:"secondary",onClick:M},N?y__namespace.createElement(lucideReact.Pause,{className:"h-4 w-4"}):y__namespace.createElement(lucideReact.Play,{className:"h-4 w-4"}))))}var sa=({renderer:e,scene:t,camera:r,preset:o,width:n,height:i})=>{let d=new postprocessing.EffectComposer(e);d.setSize(n,i),d.addPass(new postprocessing.RenderPass(t,r));let c=new postprocessing.BloomEffect({intensity:0,luminanceThreshold:.6,radius:.6,kernelSize:postprocessing.KernelSize.MEDIUM}),s=new postprocessing.NoiseEffect({blendFunction:postprocessing.BlendFunction.OVERLAY});s.blendMode.opacity.value=0;let p=new postprocessing.ScanlineEffect({blendFunction:postprocessing.BlendFunction.OVERLAY,density:1.25});p.blendMode.opacity.value=0;let l=new postprocessing.VignetteEffect({darkness:0,offset:.5}),m=new postprocessing.ChromaticAberrationEffect({offset:new I__namespace.Vector2(0,0),radialModulation:false,modulationOffset:.15}),g=new postprocessing.GlitchEffect({chromaticAberrationOffset:new I__namespace.Vector2(0,0),columns:.05});g.minStrength=0,g.maxStrength=0,d.addPass(new postprocessing.EffectPass(r,c)),d.addPass(new postprocessing.EffectPass(r,s,p,l)),d.addPass(new postprocessing.EffectPass(r,m)),d.addPass(new postprocessing.EffectPass(r,g));function h(T){let f=T.effects;c.intensity=f.bloom?.intensity??0,c.luminanceMaterial&&f.bloom?.luminanceThreshold!==void 0&&(c.luminanceMaterial.threshold=f.bloom.luminanceThreshold),s.blendMode.opacity.value=f.noise?.intensity??0,p.density=f.scanlines?.density??1.25,p.blendMode.opacity.value=f.scanlines?.opacity??0,l.darkness=f.vignette?.darkness??0,l.offset=f.vignette?.offset??.5;let u=f.chromatic?.offset??0;m.offset?.set(u,u),f.glitch?(g.minStrength=f.glitch.strength?.[0]??0,g.maxStrength=f.glitch.strength?.[1]??0):(g.minStrength=0,g.maxStrength=0);}return h(o),{composer:d,setPreset:h,resize:(T,f)=>d.setSize(T,f),dispose:()=>{d.dispose();}}};var Fe=3e3,Jt=400,Xn=80,da=({width:e,height:t,palette:r})=>{let o=new I__namespace.Scene;o.background=new I__namespace.Color(r.background);let n=new I__namespace.PerspectiveCamera(70,e/t,.1,Jt*2);n.position.z=0;let i=new Float32Array(Fe*6),d=new Float32Array(Fe*6),c=new Float32Array(Fe),s=new I__namespace.Color(r.primary),p=new I__namespace.Color(r.accent);function l(u,w){let N=Math.random()*Math.PI*2,E=Xn*Math.pow(Math.random(),.6),M=Math.cos(N)*E,_=Math.sin(N)*E,J=w?-Math.random()*Jt:-Jt;c[u]=J,i[u*6+0]=M,i[u*6+1]=_,i[u*6+2]=J,i[u*6+3]=M,i[u*6+4]=_,i[u*6+5]=J-2,d[u*6+0]=s.r,d[u*6+1]=s.g,d[u*6+2]=s.b,d[u*6+3]=p.r,d[u*6+4]=p.g,d[u*6+5]=p.b;}for(let u=0;u<Fe;u++)l(u,true);let m=new I__namespace.BufferGeometry;m.setAttribute("position",new I__namespace.BufferAttribute(i,3)),m.setAttribute("color",new I__namespace.BufferAttribute(d,3));let g=new I__namespace.LineBasicMaterial({vertexColors:true,transparent:true,opacity:.95,blending:I__namespace.AdditiveBlending}),h=new I__namespace.LineSegments(m,g);o.add(h);let T=60,f=6;return {scene:o,camera:n,update:(u,w)=>{let N=m.attributes.position.array;for(let E=0;E<Fe;E++){let M=E*6;N[M+2]+=T*w,N[M+5]=N[M+2]-f,N[M+2]>5&&l(E,false);}m.attributes.position.needsUpdate=true;},resize:(u,w)=>{let N=n;N.aspect=u/w,N.updateProjectionMatrix();},setPalette:u=>{o.background=new I__namespace.Color(u.background);let w=new I__namespace.Color(u.primary),N=new I__namespace.Color(u.accent),E=m.attributes.color.array;for(let M=0;M<Fe;M++)E[M*6+0]=w.r,E[M*6+1]=w.g,E[M*6+2]=w.b,E[M*6+3]=N.r,E[M*6+4]=N.g,E[M*6+5]=N.b;m.attributes.color.needsUpdate=true;},dispose:()=>{m.dispose(),g.dispose();}}};var Zn=`
|
|
1
|
+
'use strict';var y=require('react'),ae=require('@radix-ui/react-accordion'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),reactSlot=require('@radix-ui/react-slot'),ge=require('@radix-ui/react-avatar'),reactDayPicker=require('react-day-picker'),ze=require('@radix-ui/react-checkbox'),dateFns=require('date-fns'),de=require('@radix-ui/react-popover'),F=require('@radix-ui/react-dialog'),x=require('@radix-ui/react-dropdown-menu'),_t=require('@radix-ui/react-label'),qe=require('@radix-ui/react-progress'),we=require('@radix-ui/react-radio-group'),ne=require('@radix-ui/react-scroll-area'),R=require('@radix-ui/react-select'),jt=require('@radix-ui/react-separator'),he=require('@radix-ui/react-slider'),Xe=require('@radix-ui/react-switch'),le=require('@radix-ui/react-tabs'),ce=require('@radix-ui/react-tooltip'),I=require('three'),postprocessing=require('postprocessing'),Mi=require('lenis');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var y__namespace=/*#__PURE__*/_interopNamespace(y);var ae__namespace=/*#__PURE__*/_interopNamespace(ae);var ge__namespace=/*#__PURE__*/_interopNamespace(ge);var ze__namespace=/*#__PURE__*/_interopNamespace(ze);var de__namespace=/*#__PURE__*/_interopNamespace(de);var F__namespace=/*#__PURE__*/_interopNamespace(F);var x__namespace=/*#__PURE__*/_interopNamespace(x);var _t__namespace=/*#__PURE__*/_interopNamespace(_t);var qe__namespace=/*#__PURE__*/_interopNamespace(qe);var we__namespace=/*#__PURE__*/_interopNamespace(we);var ne__namespace=/*#__PURE__*/_interopNamespace(ne);var R__namespace=/*#__PURE__*/_interopNamespace(R);var jt__namespace=/*#__PURE__*/_interopNamespace(jt);var he__namespace=/*#__PURE__*/_interopNamespace(he);var Xe__namespace=/*#__PURE__*/_interopNamespace(Xe);var le__namespace=/*#__PURE__*/_interopNamespace(le);var ce__namespace=/*#__PURE__*/_interopNamespace(ce);var I__namespace=/*#__PURE__*/_interopNamespace(I);var Mi__default=/*#__PURE__*/_interopDefault(Mi);function a(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var Ka=ae__namespace.Root,Sr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ae__namespace.Item,{ref:r,className:a("border-b",e),...t}));Sr.displayName="AccordionItem";var Cr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ae__namespace.Header,{className:"flex"},y__namespace.createElement(ae__namespace.Trigger,{ref:o,className:a("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...r},t,y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4 shrink-0 transition-transform duration-200"}))));Cr.displayName=ae__namespace.Trigger.displayName;var Nr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ae__namespace.Content,{ref:o,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...r},y__namespace.createElement("div",{className:a("pb-4 pt-0",e)},t)));Nr.displayName=ae__namespace.Content.displayName;var Wa=classVarianceAuthority.cva("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4",{variants:{variant:{default:"bg-background text-foreground [&>svg]:text-foreground",destructive:"border-destructive/30 bg-destructive-soft text-destructive-deep [&>svg]:text-destructive-deep",success:"border-success/30 bg-success-soft text-success-deep [&>svg]:text-success-deep",warning:"border-warning/30 bg-warning-soft text-warning-deep [&>svg]:text-warning-deep",info:"border-info/30 bg-info-soft text-info-deep [&>svg]:text-info-deep",highlight:"border-highlight/30 bg-highlight-soft text-foreground [&>svg]:text-highlight-deep"}},defaultVariants:{variant:"default"}}),kr=y__namespace.forwardRef(({className:e,variant:t,...r},o)=>y__namespace.createElement("div",{ref:o,role:"alert",className:a(Wa({variant:t}),e),...r}));kr.displayName="Alert";var Mr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("h5",{ref:r,className:a("mb-1 font-medium leading-none tracking-tight",e),...t}));Mr.displayName="AlertTitle";var Er=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,className:a("text-sm [&_p]:leading-relaxed",e),...t}));Er.displayName="AlertDescription";var Hr=classVarianceAuthority.cva("rds-app-shell min-h-screen w-full bg-background text-foreground",{variants:{nav:{none:"block",top:"grid grid-rows-[auto_1fr]",side:"grid grid-cols-[auto_1fr]"}},defaultVariants:{nav:"none"}}),Lr=classVarianceAuthority.cva("rds-app-shell-nav",{variants:{placement:{top:"border-b bg-background",side:"border-r bg-background",none:"hidden"},sticky:{true:"",false:""}},compoundVariants:[{placement:"top",sticky:true,className:"sticky top-0 z-30"},{placement:"side",sticky:true,className:"sticky top-0 h-screen self-start"}],defaultVariants:{placement:"top",sticky:true}}),Dr=classVarianceAuthority.cva("rds-app-shell-main min-w-0",{variants:{maxWidth:{full:"w-full",container:"w-full mx-auto max-w-7xl px-4 md:px-6 lg:px-8"}},defaultVariants:{maxWidth:"full"}}),Ir=y__namespace.forwardRef(({className:e,nav:t,asChild:r=false,...o},n)=>y__namespace.createElement(r?reactSlot.Slot:"div",{ref:n,"data-gds-part":"app-shell","data-nav":t??"none",className:a(Hr({nav:t,className:e})),...o}));Ir.displayName="AppShell";var Ar=y__namespace.forwardRef(({className:e,placement:t,sticky:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"nav",{ref:i,"data-gds-part":"app-shell-nav","data-placement":t??"top",className:a(Lr({placement:t,sticky:r,className:e})),...n}));Ar.displayName="AppShellNav";var Fr=y__namespace.forwardRef(({className:e,maxWidth:t,asChild:r=false,...o},n)=>y__namespace.createElement(r?reactSlot.Slot:"main",{ref:n,"data-gds-part":"app-shell-main",className:a(Dr({maxWidth:t,className:e})),...o}));Fr.displayName="AppShellMain";var Or=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ge__namespace.Root,{ref:r,className:a("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",e),...t}));Or.displayName=ge__namespace.Root.displayName;var Gr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ge__namespace.Image,{ref:r,className:a("aspect-square h-full w-full",e),...t}));Gr.displayName=ge__namespace.Image.displayName;var $r=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ge__namespace.Fallback,{ref:r,className:a("flex h-full w-full items-center justify-center rounded-full bg-muted",e),...t}));$r.displayName=ge__namespace.Fallback.displayName;var Br=classVarianceAuthority.cva("inline-flex items-center gap-1 border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:size-3 [&_svg]:shrink-0",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground",highlight:"border-transparent bg-rds-yellow-400 text-rds-gray-900 shadow hover:bg-rds-yellow-500",success:"border-transparent bg-rds-green-500 text-rds-gray-900 shadow hover:bg-rds-green-600",warning:"border-transparent bg-orange-500 text-white shadow hover:bg-orange-600",info:"border-transparent bg-blue-500 text-white shadow hover:bg-blue-600","success-soft":"border-rds-green-500/20 bg-rds-green-500/10 text-rds-green-600 dark:text-rds-green-400","warning-soft":"border-orange-500/20 bg-orange-500/10 text-orange-600 dark:text-orange-400","destructive-soft":"border-destructive/20 bg-destructive/10 text-destructive dark:text-red-400","info-soft":"border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400","highlight-soft":"border-rds-yellow-500/20 bg-rds-yellow-400/10 text-rds-yellow-600 dark:text-rds-yellow-400","success-outline":"border-rds-green-500/50 bg-transparent text-rds-green-600 dark:text-rds-green-400","warning-outline":"border-orange-500/50 bg-transparent text-orange-600 dark:text-orange-400","destructive-outline":"border-destructive/50 bg-transparent text-destructive dark:text-red-400","info-outline":"border-blue-500/50 bg-transparent text-blue-600 dark:text-blue-400"},rounded:{default:"rounded-md",full:"rounded-full"}},defaultVariants:{variant:"default",rounded:"default"}});function qa({className:e,variant:t,rounded:r,...o}){return y__namespace.createElement("div",{className:a(Br({variant:t,rounded:r}),e),...o})}var Ke=classVarianceAuthority.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),X=y__namespace.forwardRef(({className:e,variant:t,size:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"button",{className:a("rds-button",Ke({variant:t,size:r,className:e})),ref:i,...n}));X.displayName="Button";function ut({className:e,classNames:t,showOutsideDays:r=true,captionLayout:o="label",buttonVariant:n="ghost",formatters:i,components:d,...l}){let s=reactDayPicker.getDefaultClassNames();return y__namespace.createElement(reactDayPicker.DayPicker,{showOutsideDays:r,className:a("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:o,formatters:{formatMonthDropdown:p=>p.toLocaleString("default",{month:"short"}),...i},classNames:{root:a("w-fit",s.root),months:a("relative flex flex-col gap-4 md:flex-row",s.months),month:a("flex w-full flex-col gap-4",s.month),nav:a("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",s.nav),button_previous:a(Ke({variant:n}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",s.button_previous),button_next:a(Ke({variant:n}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",s.button_next),month_caption:a("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",s.month_caption),dropdowns:a("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",s.dropdowns),dropdown_root:a("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",s.dropdown_root),dropdown:a("bg-popover absolute inset-0 opacity-0",s.dropdown),caption_label:a("select-none font-medium",o==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",s.caption_label),table:"w-full border-collapse",weekdays:a("flex",s.weekdays),weekday:a("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",s.weekday),week:a("mt-2 flex w-full",s.week),week_number_header:a("w-[--cell-size] select-none",s.week_number_header),week_number:a("text-muted-foreground select-none text-[0.8rem]",s.week_number),day:a("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",s.day),range_start:a("bg-accent rounded-l-md",s.range_start),range_middle:a("rounded-none",s.range_middle),range_end:a("bg-accent rounded-r-md",s.range_end),today:a("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",s.today),outside:a("text-muted-foreground aria-selected:text-muted-foreground",s.outside),disabled:a("text-muted-foreground opacity-50",s.disabled),hidden:a("invisible",s.hidden),...t},components:{Root:({className:p,rootRef:c,...m})=>y__namespace.createElement("div",{"data-slot":"calendar",ref:c,className:a(p),...m}),Chevron:({className:p,orientation:c,...m})=>c==="left"?y__namespace.createElement(lucideReact.ChevronLeftIcon,{className:a("size-4",p),...m}):c==="right"?y__namespace.createElement(lucideReact.ChevronRightIcon,{className:a("size-4",p),...m}):y__namespace.createElement(lucideReact.ChevronDownIcon,{className:a("size-4",p),...m}),DayButton:_r,WeekNumber:({children:p,...c})=>y__namespace.createElement("td",{...c},y__namespace.createElement("div",{className:"flex size-[--cell-size] items-center justify-center text-center"},p)),...d},...l})}function _r({className:e,day:t,modifiers:r,...o}){let n=reactDayPicker.getDefaultClassNames(),i=y__namespace.useRef(null);return y__namespace.useEffect(()=>{r.focused&&i.current?.focus();},[r.focused]),y__namespace.createElement(X,{ref:i,variant:"ghost",size:"icon","data-day":`${t.date.getFullYear()}-${String(t.date.getMonth()+1).padStart(2,"0")}-${String(t.date.getDate()).padStart(2,"0")}`,"data-selected-single":r.selected&&!r.range_start&&!r.range_end&&!r.range_middle,"data-range-start":r.range_start,"data-range-end":r.range_end,"data-range-middle":r.range_middle,className:a("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",n.day,e),...o})}var Kr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card",className:a("rds-card rounded-xl border bg-card text-card-foreground shadow",e),...t}));Kr.displayName="Card";var zr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-header",className:a("flex flex-col space-y-1.5 p-6",e),...t}));zr.displayName="CardHeader";var Wr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-title",className:a("font-semibold leading-none tracking-tight",e),...t}));Wr.displayName="CardTitle";var jr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-description",className:a("text-sm text-muted-foreground",e),...t}));jr.displayName="CardDescription";var qr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-content",className:a("p-6 pt-0",e),...t}));qr.displayName="CardContent";var Yr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{ref:r,"data-gds-part":"card-footer",className:a("flex items-center p-6 pt-0",e),...t}));Yr.displayName="CardFooter";var Xr=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(ze__namespace.Root,{ref:r,className:a("rds-checkbox peer h-4 w-4 shrink-0 rounded-[3px] border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t},y__namespace.createElement(ze__namespace.Indicator,{className:a("flex items-center justify-center text-current")},y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))));Xr.displayName=ze__namespace.Root.displayName;var Fe=de__namespace.Root,Oe=de__namespace.Trigger,rn=de__namespace.Anchor,Ee=y__namespace.forwardRef(({className:e,align:t="center",sideOffset:r=4,...o},n)=>y__namespace.createElement(de__namespace.Portal,null,y__namespace.createElement(de__namespace.Content,{ref:n,align:t,sideOffset:r,className:a("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",e),...o})));Ee.displayName=de__namespace.Content.displayName;var on="PPP",an="LLL dd, y";function nn({value:e,onChange:t,placeholder:r="Pick a date",disabled:o,className:n,contentClassName:i,align:d="start",side:l,format:s=on,captionLayout:p,icon:c,"aria-label":m}){return y__namespace.createElement(Fe,null,y__namespace.createElement(Oe,{asChild:true},y__namespace.createElement(X,{type:"button",variant:"outline",disabled:o,"aria-label":m??(e?void 0:r),"data-empty":!e,className:a("w-[280px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground",n)},c??y__namespace.createElement(lucideReact.CalendarIcon,{className:"mr-2 h-4 w-4","aria-hidden":true}),e?dateFns.format(e,s):y__namespace.createElement("span",null,r))),y__namespace.createElement(Ee,{className:a("w-auto p-0",i),align:d,side:l},y__namespace.createElement(ut,{mode:"single",selected:e,onSelect:t,captionLayout:p,initialFocus:true})))}function sn({value:e,onChange:t,placeholder:r="Pick a date range",disabled:o,className:n,contentClassName:i,align:d="start",side:l,format:s=an,captionLayout:p,icon:c,numberOfMonths:m=2,"aria-label":g}){let h=!!e?.from;return y__namespace.createElement(Fe,null,y__namespace.createElement(Oe,{asChild:true},y__namespace.createElement(X,{type:"button",variant:"outline",disabled:o,"aria-label":g??(h?void 0:r),"data-empty":!h,className:a("w-[300px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground",n)},c??y__namespace.createElement(lucideReact.CalendarIcon,{className:"mr-2 h-4 w-4","aria-hidden":true}),e?.from?e.to?y__namespace.createElement(y__namespace.Fragment,null,dateFns.format(e.from,s)," \u2013"," ",dateFns.format(e.to,s)):dateFns.format(e.from,s):y__namespace.createElement("span",null,r))),y__namespace.createElement(Ee,{className:a("w-auto p-0",i),align:d,side:l},y__namespace.createElement(ut,{mode:"range",selected:e,onSelect:t,defaultMonth:e?.from,numberOfMonths:m,captionLayout:p,initialFocus:true})))}var ln=F__namespace.Root,cn=F__namespace.Trigger,Jr=F__namespace.Portal,pn=F__namespace.Close,Ut=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Overlay,{ref:r,className:a("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));Ut.displayName=F__namespace.Overlay.displayName;var Qr=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(Jr,null,y__namespace.createElement(Ut,null),y__namespace.createElement(F__namespace.Content,{ref:o,className:a("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...r},t,y__namespace.createElement(F__namespace.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground"},y__namespace.createElement(lucideReact.X,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"sr-only"},"Close")))));Qr.displayName=F__namespace.Content.displayName;var eo=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});eo.displayName="DialogHeader";var to=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});to.displayName="DialogFooter";var ro=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Title,{ref:r,className:a("text-lg font-semibold leading-none tracking-tight",e),...t}));ro.displayName=F__namespace.Title.displayName;var oo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Description,{ref:r,className:a("text-sm text-muted-foreground",e),...t}));oo.displayName=F__namespace.Description.displayName;var gn=x__namespace.Root,hn=x__namespace.Trigger,yn=x__namespace.Group,vn=x__namespace.Portal,bn=x__namespace.Sub,xn=x__namespace.RadioGroup,ao=y__namespace.forwardRef(({className:e,inset:t,children:r,...o},n)=>y__namespace.createElement(x__namespace.SubTrigger,{ref:n,className:a("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...o},r,y__namespace.createElement(lucideReact.ChevronRight,{className:"ml-auto"})));ao.displayName=x__namespace.SubTrigger.displayName;var no=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(x__namespace.SubContent,{ref:r,className:a("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...t}));no.displayName=x__namespace.SubContent.displayName;var io=y__namespace.forwardRef(({className:e,sideOffset:t=4,...r},o)=>y__namespace.createElement(x__namespace.Portal,null,y__namespace.createElement(x__namespace.Content,{ref:o,sideOffset:t,className:a("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...r})));io.displayName=x__namespace.Content.displayName;var so=y__namespace.forwardRef(({className:e,inset:t,...r},o)=>y__namespace.createElement(x__namespace.Item,{ref:o,className:a("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",t&&"pl-8",e),...r}));so.displayName=x__namespace.Item.displayName;var lo=y__namespace.forwardRef(({className:e,children:t,checked:r,...o},n)=>y__namespace.createElement(x__namespace.CheckboxItem,{ref:n,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:r,...o},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(x__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))),t));lo.displayName=x__namespace.CheckboxItem.displayName;var co=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(x__namespace.RadioItem,{ref:o,className:a("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(x__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Circle,{className:"h-2 w-2 fill-current"}))),t));co.displayName=x__namespace.RadioItem.displayName;var po=y__namespace.forwardRef(({className:e,inset:t,...r},o)=>y__namespace.createElement(x__namespace.Label,{ref:o,className:a("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...r}));po.displayName=x__namespace.Label.displayName;var mo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(x__namespace.Separator,{ref:r,className:a("-mx-1 my-1 h-px bg-muted",e),...t}));mo.displayName=x__namespace.Separator.displayName;var uo=({className:e,...t})=>y__namespace.createElement("span",{className:a("ml-auto text-xs tracking-widest opacity-60",e),...t});uo.displayName="DropdownMenuShortcut";var fo=y__namespace.forwardRef(({className:e,type:t,...r},o)=>y__namespace.createElement("input",{type:t,className:a("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:o,...r}));fo.displayName="Input";var Tn=classVarianceAuthority.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),go=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(_t__namespace.Root,{ref:r,className:a(Tn(),e),...t}));go.displayName=_t__namespace.Root.displayName;var ho=y__namespace.forwardRef(({className:e,value:t,...r},o)=>y__namespace.createElement(qe__namespace.Root,{ref:o,className:a("relative h-4 w-full overflow-hidden rounded-full bg-secondary",e),...r},y__namespace.createElement(qe__namespace.Indicator,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})));ho.displayName=qe__namespace.Root.displayName;var yo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(we__namespace.Root,{className:a("grid gap-2",e),...t,ref:r}));yo.displayName=we__namespace.Root.displayName;var vo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(we__namespace.Item,{ref:r,className:a("aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),...t},y__namespace.createElement(we__namespace.Indicator,{className:"flex items-center justify-center"},y__namespace.createElement(lucideReact.Circle,{className:"h-2.5 w-2.5 fill-current text-current"}))));vo.displayName=we__namespace.Item.displayName;var bo=classVarianceAuthority.cva("rds-row flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{true:"flex-wrap",false:"flex-nowrap"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:false}}),xo=y__namespace.forwardRef(({className:e,gap:t,align:r,justify:o,wrap:n,asChild:i=false,...d},l)=>y__namespace.createElement(i?reactSlot.Slot:"div",{ref:l,"data-gds-part":"row",className:a(bo({gap:t,align:r,justify:o,wrap:n,className:e})),...d}));xo.displayName="Row";var Ro=classVarianceAuthority.cva("rds-grid grid",{variants:{cols:{1:"grid-cols-1",2:"grid-cols-1 md:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 md:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4",5:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-5",6:"grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",12:"grid-cols-4 md:grid-cols-6 lg:grid-cols-12"},gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"}},defaultVariants:{cols:"3",gap:"md",align:"stretch"}}),To=y__namespace.forwardRef(({className:e,cols:t,gap:r,align:o,asChild:n=false,...i},d)=>y__namespace.createElement(n?reactSlot.Slot:"div",{ref:d,"data-gds-part":"grid",className:a(Ro({cols:t,gap:r,align:o,className:e})),...i}));To.displayName="Grid";var wo=classVarianceAuthority.cva("rds-flex flex",{variants:{direction:{row:"flex-row",col:"flex-col","row-reverse":"flex-row-reverse","col-reverse":"flex-col-reverse"},gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap","wrap-reverse":"flex-wrap-reverse"}},defaultVariants:{direction:"row",gap:"none",align:"stretch",justify:"start",wrap:"nowrap"}}),Po=y__namespace.forwardRef(({className:e,direction:t,gap:r,align:o,justify:n,wrap:i,asChild:d=false,...l},s)=>y__namespace.createElement(d?reactSlot.Slot:"div",{ref:s,"data-gds-part":"flex",className:a(wo({direction:t,gap:r,align:o,justify:n,wrap:i,className:e})),...l}));Po.displayName="Flex";var So=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(ne__namespace.Root,{ref:o,className:a("relative overflow-hidden",e),...r},y__namespace.createElement(ne__namespace.Viewport,{className:"h-full w-full rounded-[inherit]"},t),y__namespace.createElement(Kt,null),y__namespace.createElement(ne__namespace.Corner,null)));So.displayName=ne__namespace.Root.displayName;var Kt=y__namespace.forwardRef(({className:e,orientation:t="vertical",...r},o)=>y__namespace.createElement(ne__namespace.ScrollAreaScrollbar,{ref:o,orientation:t,className:a("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r},y__namespace.createElement(ne__namespace.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})));Kt.displayName=ne__namespace.ScrollAreaScrollbar.displayName;var Ln=R__namespace.Root,Dn=R__namespace.Group,In=R__namespace.Value,No=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(R__namespace.Trigger,{ref:o,className:a("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...r},t,y__namespace.createElement(R__namespace.Icon,{asChild:true},y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4 opacity-50"}))));No.displayName=R__namespace.Trigger.displayName;var zt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.ScrollUpButton,{ref:r,className:a("flex cursor-default items-center justify-center py-1",e),...t},y__namespace.createElement(lucideReact.ChevronUp,{className:"h-4 w-4"})));zt.displayName=R__namespace.ScrollUpButton.displayName;var Wt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.ScrollDownButton,{ref:r,className:a("flex cursor-default items-center justify-center py-1",e),...t},y__namespace.createElement(lucideReact.ChevronDown,{className:"h-4 w-4"})));Wt.displayName=R__namespace.ScrollDownButton.displayName;var ko=y__namespace.forwardRef(({className:e,children:t,position:r="popper",...o},n)=>y__namespace.createElement(R__namespace.Portal,null,y__namespace.createElement(R__namespace.Content,{ref:n,className:a("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...o},y__namespace.createElement(zt,null),y__namespace.createElement(R__namespace.Viewport,{className:a("p-1",r==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]")},t),y__namespace.createElement(Wt,null))));ko.displayName=R__namespace.Content.displayName;var Mo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.Label,{ref:r,className:a("py-1.5 pl-8 pr-2 text-sm font-semibold",e),...t}));Mo.displayName=R__namespace.Label.displayName;var Eo=y__namespace.forwardRef(({className:e,children:t,...r},o)=>y__namespace.createElement(R__namespace.Item,{ref:o,className:a("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...r},y__namespace.createElement("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center"},y__namespace.createElement(R__namespace.ItemIndicator,null,y__namespace.createElement(lucideReact.Check,{className:"h-4 w-4"}))),y__namespace.createElement(R__namespace.ItemText,null,t)));Eo.displayName=R__namespace.Item.displayName;var Ho=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(R__namespace.Separator,{ref:r,className:a("-mx-1 my-1 h-px bg-muted",e),...t}));Ho.displayName=R__namespace.Separator.displayName;var Lo=y__namespace.forwardRef(({className:e,orientation:t="horizontal",decorative:r=true,...o},n)=>y__namespace.createElement(jt__namespace.Root,{ref:n,decorative:r,orientation:t,className:a("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...o}));Lo.displayName=jt__namespace.Root.displayName;var On=F__namespace.Root,Gn=F__namespace.Trigger,$n=F__namespace.Close,Do=F__namespace.Portal,qt=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Overlay,{className:a("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:r}));qt.displayName=F__namespace.Overlay.displayName;var Vn=classVarianceAuthority.cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Io=y__namespace.forwardRef(({side:e="right",className:t,children:r,...o},n)=>y__namespace.createElement(Do,null,y__namespace.createElement(qt,null),y__namespace.createElement(F__namespace.Content,{ref:n,className:a(Vn({side:e}),t),...o},r,y__namespace.createElement(F__namespace.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary"},y__namespace.createElement(lucideReact.X,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"sr-only"},"Close")))));Io.displayName=F__namespace.Content.displayName;var Ao=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col space-y-2 text-center sm:text-left",e),...t});Ao.displayName="SheetHeader";var Fo=({className:e,...t})=>y__namespace.createElement("div",{className:a("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Fo.displayName="SheetFooter";var Oo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Title,{ref:r,className:a("text-lg font-semibold text-foreground",e),...t}));Oo.displayName=F__namespace.Title.displayName;var Go=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(F__namespace.Description,{ref:r,className:a("text-sm text-muted-foreground",e),...t}));Go.displayName=F__namespace.Description.displayName;function Bn({className:e,...t}){return React.createElement("div",{className:a("animate-pulse rounded-md bg-muted",e),...t})}var $o=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(he__namespace.Root,{ref:r,className:a("relative flex w-full touch-none select-none items-center",e),...t},y__namespace.createElement(he__namespace.Track,{className:"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary"},y__namespace.createElement(he__namespace.Range,{className:"absolute h-full bg-primary"})),y__namespace.createElement(he__namespace.Thumb,{className:"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50"})));$o.displayName=he__namespace.Root.displayName;var Vo=classVarianceAuthority.cva("rds-stack flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8","2xl":"gap-12"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"}},defaultVariants:{gap:"md",align:"stretch"}}),Bo=y__namespace.forwardRef(({className:e,gap:t,align:r,asChild:o=false,...n},i)=>y__namespace.createElement(o?reactSlot.Slot:"div",{ref:i,"data-gds-part":"stack",className:a(Vo({gap:t,align:r,className:e})),...n}));Bo.displayName="Stack";var Uo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(Xe__namespace.Root,{className:a("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:r},y__namespace.createElement(Xe__namespace.Thumb,{className:a("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})));Uo.displayName=Xe__namespace.Root.displayName;var _o=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("div",{className:"relative w-full overflow-auto"},y__namespace.createElement("table",{ref:r,className:a("w-full caption-bottom text-sm",e),...t})));_o.displayName="Table";var Ko=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("thead",{ref:r,className:a("[&_tr]:border-b",e),...t}));Ko.displayName="TableHeader";var zo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tbody",{ref:r,className:a("[&_tr:last-child]:border-0",e),...t}));zo.displayName="TableBody";var Wo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tfoot",{ref:r,className:a("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Wo.displayName="TableFooter";var jo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("tr",{ref:r,className:a("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));jo.displayName="TableRow";var qo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("th",{ref:r,className:a("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));qo.displayName="TableHead";var Yo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("td",{ref:r,className:a("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Yo.displayName="TableCell";var Xo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("caption",{ref:r,className:a("mt-4 text-sm text-muted-foreground",e),...t}));Xo.displayName="TableCaption";var Kn=le__namespace.Root,Zo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(le__namespace.List,{ref:r,className:a("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Zo.displayName=le__namespace.List.displayName;var Jo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(le__namespace.Trigger,{ref:r,className:a("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground",e),...t}));Jo.displayName=le__namespace.Trigger.displayName;var Qo=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement(le__namespace.Content,{ref:r,className:a("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Qo.displayName=le__namespace.Content.displayName;var ea=y__namespace.forwardRef(({className:e,...t},r)=>y__namespace.createElement("textarea",{className:a("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...t}));ea.displayName="Textarea";var Yt=ce__namespace.Provider,Xt=ce__namespace.Root,Zt=ce__namespace.Trigger,wt=y__namespace.forwardRef(({className:e,sideOffset:t=4,...r},o)=>y__namespace.createElement(ce__namespace.Portal,null,y__namespace.createElement(ce__namespace.Content,{ref:o,sideOffset:t,className:a("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",e),...r})));wt.displayName=ce__namespace.Content.displayName;var ra=y__namespace.createContext(null);function oa(){let e=y__namespace.useContext(ra);if(!e)throw new Error("SideMenu components must be used within SideMenu");return e}var jn=({href:e,className:t,children:r})=>y__namespace.createElement("a",{href:e,className:t},r),aa=y__namespace.forwardRef(({header:e,collapsedHeader:t,sections:r,items:o,footer:n,collapsed:i,onCollapsedChange:d,collapsible:l=true,defaultCollapsed:s=false,activeItem:p,className:c,linkComponent:m=jn},g)=>{let[h,T]=y__namespace.useState(s),f=i??h,u=()=>{let w=!f;T(w),d?.(w);};return y__namespace.createElement(Yt,{delayDuration:0},y__namespace.createElement(ra.Provider,{value:{collapsed:f,activeItem:p,LinkComponent:m}},y__namespace.createElement("aside",{ref:g,className:a("flex h-full flex-col transition-[width] duration-300 ease-in-out","bg-white dark:bg-[#141414] border-r border-rds-gray-200 dark:border-[#1a1a1a]",f?"w-16":"w-64",c)},y__namespace.createElement("div",{className:a("flex items-center border-b border-rds-gray-200 dark:border-[#1a1a1a] flex-shrink-0 h-12",f?"justify-center px-2":"justify-between px-3")},f&&t||e,l&&y__namespace.createElement("button",{onClick:u,className:a("rounded-md h-5 w-5 flex items-center justify-center","text-rds-gray-400 dark:text-rds-gray-500","hover:text-rds-gray-600 dark:hover:text-rds-gray-300 transition-colors","bg-white dark:bg-[#141414] border border-rds-gray-200 dark:border-rds-gray-700 shadow-sm",f&&"absolute left-[calc(4rem-10px)] top-6 -translate-y-1/2 z-50"),"aria-label":f?"Expand sidebar":"Collapse sidebar"},f?y__namespace.createElement(lucideReact.ChevronRight,{className:"h-3 w-3"}):y__namespace.createElement(lucideReact.ChevronLeft,{className:"h-3 w-3"}))),y__namespace.createElement("nav",{className:"flex-1 py-2 overflow-y-auto overflow-x-hidden"},o&&o.length>0&&y__namespace.createElement("div",{className:"px-2 mb-1 space-y-0.5"},o.map(w=>y__namespace.createElement(Jt,{key:w.id,item:w}))),r?.map(w=>y__namespace.createElement(qn,{key:w.id,section:w}))),n&&y__namespace.createElement("div",{className:"flex-shrink-0 border-t border-rds-gray-200 dark:border-[#1a1a1a] p-2"},n))))});aa.displayName="SideMenu";function qn({section:e}){let{collapsed:t}=oa(),[r,o]=y__namespace.useState(e.defaultExpanded??true);return t?y__namespace.createElement("div",{className:"px-2 mb-1 space-y-0.5"},e.items.map(n=>y__namespace.createElement(Jt,{key:n.id,item:n}))):y__namespace.createElement("div",{className:"px-2 mb-1"},y__namespace.createElement("button",{onClick:()=>o(!r),className:a("flex w-full items-center gap-2.5 rounded-md px-2 py-1.5 text-sm font-medium","text-rds-gray-700 dark:text-rds-gray-300","hover:bg-rds-gray-50 dark:hover:bg-rds-gray-900","hover:text-rds-gray-900 dark:hover:text-white transition-colors")},e.icon&&y__namespace.createElement("span",{className:"h-3.5 w-3.5 flex-shrink-0"},e.icon),y__namespace.createElement("span",{className:"flex-1 text-left"},e.title),r?y__namespace.createElement(lucideReact.ChevronDown,{className:"h-3 w-3",strokeWidth:1.5}):y__namespace.createElement(lucideReact.ChevronRight,{className:"h-3 w-3",strokeWidth:1.5})),r&&y__namespace.createElement("div",{className:"mt-0.5 space-y-0.5 relative pl-5"},y__namespace.createElement("div",{className:"absolute left-[1.1rem] top-0 bottom-0 w-px bg-rds-gray-200 dark:bg-rds-gray-700"}),e.items.map(n=>y__namespace.createElement(Jt,{key:n.id,item:n,nested:true}))))}function Jt({item:e,nested:t=false}){let{collapsed:r,activeItem:o,LinkComponent:n}=oa(),i=o===e.id,d=a("flex items-center gap-2.5 rounded-md text-sm font-medium transition-colors",r?"justify-center px-2 py-2.5":"px-2 py-1.5",i?t?"bg-rds-gray-100 dark:bg-[#1a1a1a] text-rds-gray-900 dark:text-white":"bg-rds-green-50 dark:bg-rds-green-950 text-rds-green-700 dark:text-rds-green-400":"text-rds-gray-700 dark:text-rds-gray-300 hover:bg-rds-gray-50 dark:hover:bg-rds-gray-900 hover:text-rds-gray-900 dark:hover:text-white",e.disabled&&"opacity-50 pointer-events-none"),l=y__namespace.createElement(y__namespace.Fragment,null,e.icon&&y__namespace.createElement("span",{className:a("flex-shrink-0",r?"h-5 w-5":"h-3.5 w-3.5")},e.icon),!r&&y__namespace.createElement("span",null,e.label),!r&&e.badge&&y__namespace.createElement("span",{className:"ml-auto text-xs bg-rds-gray-100 dark:bg-rds-gray-800 px-1.5 py-0.5 rounded"},e.badge)),s=e.href?y__namespace.createElement(n,{href:e.href,className:d},l):y__namespace.createElement("button",{onClick:e.onClick,disabled:e.disabled,className:a(d,"w-full")},l);return r?y__namespace.createElement(Xt,null,y__namespace.createElement(Zt,{asChild:true},s),y__namespace.createElement(wt,{side:"right",sideOffset:8},e.label)):s}var Xn=({href:e,className:t,children:r})=>y__namespace.createElement("a",{href:e,className:t},r),na=y__namespace.forwardRef(({breadcrumbs:e=[],showMobileMenu:t=false,onMobileMenuClick:r,leftContent:o,rightContent:n,className:i,linkComponent:d=Xn},l)=>y__namespace.createElement("header",{ref:l,className:a("sticky top-0 z-30 flex h-12 items-center gap-3","border-b border-rds-gray-200 dark:border-[#1a1a1a]","bg-white dark:bg-[#141414] px-4",i)},t&&y__namespace.createElement("button",{onClick:r,className:"lg:hidden rounded-md p-1.5 text-rds-gray-600 hover:bg-rds-gray-100 dark:text-rds-gray-400 dark:hover:bg-rds-gray-800","aria-label":"Toggle menu"},y__namespace.createElement(lucideReact.Menu,{className:"h-4 w-4"})),e.length>0&&y__namespace.createElement("nav",{className:"hidden md:flex items-center gap-1.5 text-sm","aria-label":"Breadcrumb"},e.map((s,p)=>y__namespace.createElement(y__namespace.Fragment,{key:p},p>0&&y__namespace.createElement("span",{className:"text-rds-gray-400 dark:text-rds-gray-500 text-xs"},"/"),s.href?y__namespace.createElement(d,{href:s.href,className:"text-rds-gray-600 dark:text-rds-gray-400 hover:text-rds-gray-900 dark:hover:text-white transition-colors text-sm"},s.label):y__namespace.createElement("span",{className:"text-rds-gray-900 dark:text-white font-medium text-sm"},s.label)))),o,y__namespace.createElement("div",{className:"flex-1"}),n&&y__namespace.createElement("div",{className:"flex items-center gap-1.5"},n)));na.displayName="TopMenu";var ia=y__namespace.forwardRef(({name:e,email:t,avatarUrl:r,avatarContent:o,avatarClassName:n,children:i,className:d},l)=>{let[s,p]=y__namespace.useState(false),c=y__namespace.useRef(null);return y__namespace.useEffect(()=>{let m=g=>{c.current&&!c.current.contains(g.target)&&p(false);};return s&&document.addEventListener("mousedown",m),()=>{document.removeEventListener("mousedown",m);}},[s]),y__namespace.createElement("div",{ref:l,className:a("relative",d)},y__namespace.createElement("div",{ref:c},y__namespace.createElement("button",{onClick:()=>p(!s),className:"flex items-center gap-1.5 rounded-full p-0.5 hover:ring-2 hover:ring-rds-green-500 hover:ring-offset-2 dark:hover:ring-offset-[#141414] transition-all","aria-label":"Account menu"},y__namespace.createElement("div",{className:a("h-8 w-8 rounded-full overflow-hidden flex items-center justify-center",n||"bg-gradient-to-br from-rds-yellow-400 to-rds-yellow-600")},r?y__namespace.createElement("img",{src:r,alt:e||"User",className:"h-full w-full object-cover"}):o)),s&&y__namespace.createElement("div",{className:"absolute right-0 mt-2 w-64 rounded-lg border border-rds-gray-200 dark:border-[#1a1a1a] bg-white dark:bg-[#141414] shadow-lg overflow-hidden z-50"},(e||t)&&y__namespace.createElement("div",{className:"px-4 py-3 border-b border-rds-gray-200 dark:border-[#1a1a1a]"},y__namespace.createElement("div",{className:"flex items-center gap-3"},y__namespace.createElement("div",{className:a("h-10 w-10 rounded-full overflow-hidden flex items-center justify-center",n||"bg-gradient-to-br from-rds-yellow-400 to-rds-yellow-600")},r?y__namespace.createElement("img",{src:r,alt:e||"User",className:"h-full w-full object-cover"}):o),y__namespace.createElement("div",{className:"flex-1 min-w-0"},e&&y__namespace.createElement("p",{className:"text-sm font-medium text-rds-gray-900 dark:text-white truncate"},e),t&&y__namespace.createElement("p",{className:"text-xs text-rds-gray-500 dark:text-rds-gray-400 truncate"},t)))),i)))});ia.displayName="TopMenuUser";var sa=y__namespace.forwardRef(({icon:e,children:t,onClick:r,href:o,variant:n="default",className:i},d)=>y__namespace.createElement(o?"a":"button",{ref:d,onClick:r,href:o,className:a("w-full flex items-center gap-3 px-4 py-2 text-sm transition-colors",{default:"text-rds-gray-700 dark:text-rds-gray-300 hover:bg-rds-gray-50 dark:hover:bg-[#1a1a1a]",danger:"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-950/20",success:"text-rds-green-600 dark:text-rds-green-400 hover:bg-rds-green-50 dark:hover:bg-rds-green-950/20"}[n],i)},e&&y__namespace.createElement("span",{className:"h-4 w-4"},e),y__namespace.createElement("span",null,t)));sa.displayName="TopMenuUserItem";var da=y__namespace.forwardRef(({children:e,className:t},r)=>y__namespace.createElement("div",{ref:r,className:a("py-1 border-t border-rds-gray-200 dark:border-[#1a1a1a] first:border-t-0",t)},e));da.displayName="TopMenuUserSection";var Qt=y__namespace.createContext(null);function er(){let e=y__namespace.useContext(Qt);if(!e)throw new Error("SimpleTabsPanel must be used within SimpleTabs");return e}var la=y__namespace.forwardRef(({tabs:e,activeTab:t,defaultTab:r,onTabChange:o,children:n,className:i,tabsClassName:d},l)=>{let[s,p]=y__namespace.useState(r||e[0]?.id||""),c=t??s,m=g=>{p(g),o?.(g);};return y__namespace.createElement(Qt.Provider,{value:{activeTab:c,setActiveTab:m}},y__namespace.createElement("div",{ref:l,className:a("space-y-6",i)},y__namespace.createElement("div",{className:"border-b border-rds-gray-200 dark:border-rds-gray-800"},y__namespace.createElement("nav",{className:a("-mb-px flex gap-1 overflow-x-auto scrollbar-hide",d),"aria-label":"Tabs"},e.map(g=>{let h=c===g.id;return y__namespace.createElement("button",{key:g.id,onClick:()=>!g.disabled&&m(g.id),disabled:g.disabled,className:a("relative flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors whitespace-nowrap",h?"text-primary":"text-muted-foreground hover:text-foreground",g.disabled&&"opacity-50 cursor-not-allowed")},g.icon&&y__namespace.createElement("span",{className:"h-4 w-4"},g.icon),g.label,h&&y__namespace.createElement("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-primary","aria-hidden":"true"}))}))),n&&y__namespace.createElement("div",null,n)))});la.displayName="SimpleTabs";var ca=y__namespace.forwardRef(({id:e,children:t,className:r},o)=>{let{activeTab:n}=er();return n!==e?null:y__namespace.createElement("div",{ref:o,role:"tabpanel","aria-labelledby":`tab-${e}`,className:r},t)});ca.displayName="SimpleTabsPanel";var pa=y__namespace.forwardRef(({activeTab:e,defaultTab:t,onTabChange:r,children:o,className:n},i)=>{let[d,l]=y__namespace.useState(t||""),s=e??d,p=c=>{l(c),r?.(c);};return y__namespace.createElement(Qt.Provider,{value:{activeTab:s,setActiveTab:p}},y__namespace.createElement("div",{ref:i,className:a("space-y-6",n)},o))});pa.displayName="SimpleTabsRoot";var ma=y__namespace.forwardRef(({children:e,className:t},r)=>y__namespace.createElement("div",{ref:r,className:"border-b border-rds-gray-200 dark:border-rds-gray-800"},y__namespace.createElement("nav",{className:a("-mb-px flex gap-1 overflow-x-auto scrollbar-hide",t),role:"tablist","aria-label":"Tabs"},e)));ma.displayName="SimpleTabsList";var ua=y__namespace.forwardRef(({value:e,children:t,icon:r,disabled:o,className:n},i)=>{let{activeTab:d,setActiveTab:l}=er(),s=d===e;return y__namespace.createElement("button",{ref:i,role:"tab",id:`tab-${e}`,"aria-selected":s,"aria-controls":`panel-${e}`,onClick:()=>!o&&l(e),disabled:o,className:a("relative flex items-center gap-2 px-4 py-3 text-sm font-medium transition-colors whitespace-nowrap",s?"text-primary":"text-muted-foreground hover:text-foreground",o&&"opacity-50 cursor-not-allowed",n)},r&&y__namespace.createElement("span",{className:"h-4 w-4"},r),t,s&&y__namespace.createElement("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 bg-primary","aria-hidden":"true"}))});ua.displayName="SimpleTabsTrigger";var fa=y__namespace.forwardRef(({value:e,children:t,className:r},o)=>{let{activeTab:n}=er();return n!==e?null:y__namespace.createElement("div",{ref:o,role:"tabpanel",id:`panel-${e}`,"aria-labelledby":`tab-${e}`,className:r},t)});fa.displayName="SimpleTabsContent";var Zn={video:"aspect-video",square:"aspect-square",portrait:"aspect-[3/4]",wide:"aspect-[21/9]",auto:""},Jn={none:"0",sm:"var(--radius, 0.25rem)",md:"calc(var(--radius, 0.375rem) * 1.25)",lg:"calc(var(--radius, 0.5rem) * 1.5)",xl:"calc(var(--radius, 0.75rem) * 2)"},ue=y__namespace.forwardRef(({className:e,aspect:t="video",radius:r="lg",border:o=false,loading:n=false,onVisibilityChange:i,fallback:d,style:l,children:s,...p},c)=>{let m=y__namespace.useRef(null);return y__namespace.useImperativeHandle(c,()=>m.current),y__namespace.useEffect(()=>{if(!i||!m.current)return;let g=m.current,h=new IntersectionObserver(([T])=>i(T.isIntersecting),{threshold:.05});return h.observe(g),()=>h.disconnect()},[i]),y__namespace.createElement("div",{ref:m,"data-gds-part":"media-surface",className:a("rds-media-surface relative w-full overflow-hidden bg-muted",Zn[t],o&&"border border-border",e),style:{borderRadius:`var(--rds-media-radius, ${Jn[r]})`,...l},...p},s,n&&y__namespace.createElement("div",{className:"absolute inset-0 flex items-center justify-center bg-muted animate-pulse","aria-hidden":true},d))});ue.displayName="MediaSurface";function Le(){let[e,t]=y__namespace.useState(false);return y__namespace.useEffect(()=>{let r=window.matchMedia("(prefers-reduced-motion: reduce)");t(r.matches);let o=n=>t(n.matches);return r.addEventListener("change",o),()=>r.removeEventListener("change",o)},[]),e}var ga=y__namespace.forwardRef(({src:e,controls:t=true,autoPlay:r=false,loop:o=false,muted:n,pauseOffscreen:i=true,aspect:d="video",radius:l="lg",border:s=false,poster:p,label:c,className:m,style:g,playbackRate:h=1,objectFit:T="cover"},f)=>{let u=y__namespace.useRef(null),w=Le(),[N,E]=y__namespace.useState(!!p);y__namespace.useImperativeHandle(f,()=>u.current);let M=n??r,_=r&&!w;y__namespace.useEffect(()=>{u.current&&(u.current.playbackRate=h);},[h]),y__namespace.useEffect(()=>{E(!!p);},[p]);let J=y__namespace.useCallback(ve=>{!i||!u.current||(ve&&_?u.current.play().catch(()=>{}):u.current.pause());},[i,_]);return y__namespace.createElement(ue,{aspect:d,radius:l,border:s,"aria-label":c,className:m,style:g,onVisibilityChange:i?J:void 0},y__namespace.createElement("video",{ref:u,src:e,controls:t,autoPlay:_,loop:o,muted:M,playsInline:true,preload:_?"auto":"metadata",onPlaying:()=>E(false),className:a("w-full h-full",T==="cover"&&"object-cover",T==="contain"&&"object-contain",T==="fill"&&"object-fill")},"Your browser does not support the video tag."),p&&N&&y__namespace.createElement("img",{src:p,alt:"","aria-hidden":"true",loading:"lazy",decoding:"async","data-gds-part":"video-poster",className:a("absolute inset-0 w-full h-full pointer-events-none transition-opacity duration-200",T==="cover"&&"object-cover",T==="contain"&&"object-contain",T==="fill"&&"object-fill")}))});ga.displayName="VideoPlayer";var ha=y__namespace.forwardRef(({src:e,controls:t=false,autoPlay:r=true,loop:o=true,pauseOffscreen:n=true,aspect:i="square",radius:d="lg",border:l=false,poster:s,label:p,className:c,style:m,stateMachines:g,artboard:h,fit:T="contain",stateMachineInputs:f},u)=>{let w=Le(),[N,E]=y__namespace.useState(null),[M,_]=y__namespace.useState(null);return y__namespace.useEffect(()=>{let J=false;return import('@rive-app/react-canvas').then(ve=>{J||E(ve);}).catch(()=>{J||_("Rive runtime not installed. Run `npm install @rive-app/react-canvas`.");}),()=>{J=true;}},[]),y__namespace.createElement(ue,{ref:u,aspect:i,radius:d,border:l,"aria-label":p,className:c,style:m},M?y__namespace.createElement("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground p-4 text-center"},M):N&&e?y__namespace.createElement(ti,{Mod:N,src:e,stateMachines:g,artboard:h,fit:T,stateMachineInputs:f,autoPlay:r&&!w,loop:o,pauseOffscreen:n,controls:t,poster:s}):s&&y__namespace.createElement("img",{src:s,alt:"",className:"w-full h-full object-contain"}))});ha.displayName="RivePlayer";function ti({Mod:e,src:t,stateMachines:r,artboard:o,fit:n,autoPlay:i,loop:d,pauseOffscreen:l,controls:s,poster:p}){let{useRive:c,Layout:m,Fit:g,Alignment:h,EventType:T}=e,f={contain:g.Contain,cover:g.Cover,fill:g.Fill,fitWidth:g.FitWidth,fitHeight:g.FitHeight,none:g.None},{rive:u,RiveComponent:w}=c({src:t,stateMachines:r,artboard:o,autoplay:i,layout:new m({fit:f[n],alignment:h.Center})}),[N,E]=y__namespace.useState(i);y__namespace.useEffect(()=>{if(!u||!d)return;let _=()=>{u.play();};return u.on(T.Stop,_),()=>{u.off(T.Stop,_);}},[u,d,T]),y__namespace.useEffect(()=>{if(!l||!u)return;let _=u.canvas;if(!_)return;let J=new IntersectionObserver(([ve])=>{ve.isIntersecting&&i?u.play():u.pause();},{threshold:.05});return J.observe(_),()=>J.disconnect()},[u,l,i]);let M=()=>{u&&(N?(u.pause(),E(false)):(u.play(),E(true)));};return y__namespace.createElement(y__namespace.Fragment,null,y__namespace.createElement(w,{className:"w-full h-full"}),!u&&p&&y__namespace.createElement("img",{src:p,alt:"",className:"absolute inset-0 w-full h-full object-contain pointer-events-none"}),s&&y__namespace.createElement("div",{className:a("absolute inset-0 flex items-end justify-end p-2","opacity-0 hover:opacity-100 transition-opacity","bg-gradient-to-t from-black/40 to-transparent")},y__namespace.createElement(X,{size:"icon",variant:"secondary",onClick:M},N?y__namespace.createElement(lucideReact.Pause,{className:"h-4 w-4"}):y__namespace.createElement(lucideReact.Play,{className:"h-4 w-4"}))))}var va=({renderer:e,scene:t,camera:r,preset:o,width:n,height:i})=>{let d=new postprocessing.EffectComposer(e);d.setSize(n,i),d.addPass(new postprocessing.RenderPass(t,r));let l=new postprocessing.BloomEffect({intensity:0,luminanceThreshold:.6,radius:.6,kernelSize:postprocessing.KernelSize.MEDIUM}),s=new postprocessing.NoiseEffect({blendFunction:postprocessing.BlendFunction.OVERLAY});s.blendMode.opacity.value=0;let p=new postprocessing.ScanlineEffect({blendFunction:postprocessing.BlendFunction.OVERLAY,density:1.25});p.blendMode.opacity.value=0;let c=new postprocessing.VignetteEffect({darkness:0,offset:.5}),m=new postprocessing.ChromaticAberrationEffect({offset:new I__namespace.Vector2(0,0),radialModulation:false,modulationOffset:.15}),g=new postprocessing.GlitchEffect({chromaticAberrationOffset:new I__namespace.Vector2(0,0),columns:.05});g.minStrength=0,g.maxStrength=0,d.addPass(new postprocessing.EffectPass(r,l)),d.addPass(new postprocessing.EffectPass(r,s,p,c)),d.addPass(new postprocessing.EffectPass(r,m)),d.addPass(new postprocessing.EffectPass(r,g));function h(T){let f=T.effects;l.intensity=f.bloom?.intensity??0,l.luminanceMaterial&&f.bloom?.luminanceThreshold!==void 0&&(l.luminanceMaterial.threshold=f.bloom.luminanceThreshold),s.blendMode.opacity.value=f.noise?.intensity??0,p.density=f.scanlines?.density??1.25,p.blendMode.opacity.value=f.scanlines?.opacity??0,c.darkness=f.vignette?.darkness??0,c.offset=f.vignette?.offset??.5;let u=f.chromatic?.offset??0;m.offset?.set(u,u),f.glitch?(g.minStrength=f.glitch.strength?.[0]??0,g.maxStrength=f.glitch.strength?.[1]??0):(g.minStrength=0,g.maxStrength=0);}return h(o),{composer:d,setPreset:h,resize:(T,f)=>d.setSize(T,f),dispose:()=>{d.dispose();}}};var Ge=3e3,rr=400,pi=80,ba=({width:e,height:t,palette:r})=>{let o=new I__namespace.Scene;o.background=new I__namespace.Color(r.background);let n=new I__namespace.PerspectiveCamera(70,e/t,.1,rr*2);n.position.z=0;let i=new Float32Array(Ge*6),d=new Float32Array(Ge*6),l=new Float32Array(Ge),s=new I__namespace.Color(r.primary),p=new I__namespace.Color(r.accent);function c(u,w){let N=Math.random()*Math.PI*2,E=pi*Math.pow(Math.random(),.6),M=Math.cos(N)*E,_=Math.sin(N)*E,J=w?-Math.random()*rr:-rr;l[u]=J,i[u*6+0]=M,i[u*6+1]=_,i[u*6+2]=J,i[u*6+3]=M,i[u*6+4]=_,i[u*6+5]=J-2,d[u*6+0]=s.r,d[u*6+1]=s.g,d[u*6+2]=s.b,d[u*6+3]=p.r,d[u*6+4]=p.g,d[u*6+5]=p.b;}for(let u=0;u<Ge;u++)c(u,true);let m=new I__namespace.BufferGeometry;m.setAttribute("position",new I__namespace.BufferAttribute(i,3)),m.setAttribute("color",new I__namespace.BufferAttribute(d,3));let g=new I__namespace.LineBasicMaterial({vertexColors:true,transparent:true,opacity:.95,blending:I__namespace.AdditiveBlending}),h=new I__namespace.LineSegments(m,g);o.add(h);let T=60,f=6;return {scene:o,camera:n,update:(u,w)=>{let N=m.attributes.position.array;for(let E=0;E<Ge;E++){let M=E*6;N[M+2]+=T*w,N[M+5]=N[M+2]-f,N[M+2]>5&&c(E,false);}m.attributes.position.needsUpdate=true;},resize:(u,w)=>{let N=n;N.aspect=u/w,N.updateProjectionMatrix();},setPalette:u=>{o.background=new I__namespace.Color(u.background);let w=new I__namespace.Color(u.primary),N=new I__namespace.Color(u.accent),E=m.attributes.color.array;for(let M=0;M<Ge;M++)E[M*6+0]=w.r,E[M*6+1]=w.g,E[M*6+2]=w.b,E[M*6+3]=N.r,E[M*6+4]=N.g,E[M*6+5]=N.b;m.attributes.color.needsUpdate=true;},dispose:()=>{m.dispose(),g.dispose();}}};var mi=`
|
|
2
2
|
precision highp float;
|
|
3
3
|
varying vec2 vUv;
|
|
4
4
|
uniform float uTime;
|
|
@@ -36,19 +36,19 @@
|
|
|
36
36
|
|
|
37
37
|
gl_FragColor = vec4(col, 1.0);
|
|
38
38
|
}
|
|
39
|
-
`,
|
|
39
|
+
`,ui=`
|
|
40
40
|
varying vec2 vUv;
|
|
41
41
|
void main() {
|
|
42
42
|
vUv = uv;
|
|
43
43
|
gl_Position = vec4(position.xy, 0.0, 1.0);
|
|
44
44
|
}
|
|
45
|
-
`,
|
|
45
|
+
`,xa=({width:e,height:t,palette:r})=>{let o=new I__namespace.Scene,n=new I__namespace.OrthographicCamera(-1,1,1,-1,0,1),i={uTime:{value:0},uResolution:{value:new I__namespace.Vector2(e,t)},uBackground:{value:new I__namespace.Color(r.background)},uPrimary:{value:new I__namespace.Color(r.primary)},uSecondary:{value:new I__namespace.Color(r.secondary)},uAccent:{value:new I__namespace.Color(r.accent)}},d=new I__namespace.ShaderMaterial({uniforms:i,vertexShader:ui,fragmentShader:mi,depthTest:false,depthWrite:false}),l=new I__namespace.PlaneGeometry(2,2),s=new I__namespace.Mesh(l,d);return o.add(s),{scene:o,camera:n,update:c=>{i.uTime.value=c;},resize:(c,m)=>{i.uResolution.value.set(c,m);},setPalette:c=>{i.uBackground.value.set(c.background),i.uPrimary.value.set(c.primary),i.uSecondary.value.set(c.secondary),i.uAccent.value.set(c.accent);},dispose:()=>{l.dispose(),d.dispose();}}};var fi=`
|
|
46
46
|
varying vec2 vUv;
|
|
47
47
|
void main() {
|
|
48
48
|
vUv = uv;
|
|
49
49
|
gl_Position = vec4(position.xy, 0.0, 1.0);
|
|
50
50
|
}
|
|
51
|
-
`,
|
|
51
|
+
`,gi=`
|
|
52
52
|
precision highp float;
|
|
53
53
|
varying vec2 vUv;
|
|
54
54
|
uniform float uTime;
|
|
@@ -105,13 +105,13 @@
|
|
|
105
105
|
|
|
106
106
|
gl_FragColor = vec4(col, 1.0);
|
|
107
107
|
}
|
|
108
|
-
`,
|
|
108
|
+
`,Ra=({width:e,height:t,palette:r})=>{let o=new I__namespace.Scene,n=new I__namespace.OrthographicCamera(-1,1,1,-1,0,1),i={uTime:{value:0},uResolution:{value:new I__namespace.Vector2(e,t)},uBackground:{value:new I__namespace.Color(r.background)},uPrimary:{value:new I__namespace.Color(r.primary)},uSecondary:{value:new I__namespace.Color(r.secondary)},uAccent:{value:new I__namespace.Color(r.accent)}},d=new I__namespace.ShaderMaterial({uniforms:i,vertexShader:fi,fragmentShader:gi,depthTest:false,depthWrite:false}),l=new I__namespace.PlaneGeometry(2,2),s=new I__namespace.Mesh(l,d);return o.add(s),{scene:o,camera:n,update:c=>{i.uTime.value=c;},resize:(c,m)=>{i.uResolution.value.set(c,m);},setPalette:c=>{i.uBackground.value.set(c.background),i.uPrimary.value.set(c.primary),i.uSecondary.value.set(c.secondary),i.uAccent.value.set(c.accent);},dispose:()=>{l.dispose(),d.dispose();}}};var hi=`
|
|
109
109
|
varying vec2 vUv;
|
|
110
110
|
void main() {
|
|
111
111
|
vUv = uv;
|
|
112
112
|
gl_Position = vec4(position.xy, 0.0, 1.0);
|
|
113
113
|
}
|
|
114
|
-
`,
|
|
114
|
+
`,yi=`
|
|
115
115
|
precision highp float;
|
|
116
116
|
varying vec2 vUv;
|
|
117
117
|
uniform float uTime;
|
|
@@ -181,7 +181,7 @@
|
|
|
181
181
|
|
|
182
182
|
gl_FragColor = vec4(col, 1.0);
|
|
183
183
|
}
|
|
184
|
-
`,
|
|
184
|
+
`,Ta=({palette:e})=>{let t=new I__namespace.Scene,r=new I__namespace.OrthographicCamera(-1,1,1,-1,0,1),o={uTime:{value:0},uBackground:{value:new I__namespace.Color(e.background)},uPrimary:{value:new I__namespace.Color(e.primary)},uSecondary:{value:new I__namespace.Color(e.secondary)},uAccent:{value:new I__namespace.Color(e.accent)}},n=new I__namespace.ShaderMaterial({uniforms:o,vertexShader:hi,fragmentShader:yi,depthTest:false,depthWrite:false}),i=new I__namespace.PlaneGeometry(2,2),d=new I__namespace.Mesh(i,n);return t.add(d),{scene:t,camera:r,update:s=>{o.uTime.value=s;},setPalette:s=>{o.uBackground.value.set(s.background),o.uPrimary.value.set(s.primary),o.uSecondary.value.set(s.secondary),o.uAccent.value.set(s.accent);},dispose:()=>{i.dispose(),n.dispose();}}};var Je={space:ba,plasma:xa,voronoi:Ra,synthwave:Ta},Qe=[{id:"space",label:"Hyperspace",description:"Classic 'jump to hyperspace' \u2014 streaking stars flying past camera. Pairs well with VHS or Cinematic post-FX.",tags:["space","retro","motion","hero","background"],scene:"space",defaultPostPreset:"vhs"},{id:"plasma",label:"Plasma",description:"Soft rolling colour clouds \u2014 overlapping sines warping a palette ramp. Classic demoscene vibe. Pairs well with Synthwave or Cinematic.",tags:["abstract","soft","ambient","hero","background","gradient"],scene:"plasma",defaultPostPreset:"synthwave"},{id:"voronoi",label:"Voronoi",description:"Jittered cellular grid \u2014 orbiting seed points form animated cells with glowing edges. Great for data / organic / network moods. Pairs well with CRT or VHS.",tags:["abstract","cells","organic","network","hero","background"],scene:"voronoi",defaultPostPreset:"crt"},{id:"synthwave",label:"Synthwave Grid",description:"Retro-future perspective grid receding to a banded sun disc on the horizon. Pairs beautifully with the Synthwave post preset (its namesake).",tags:["retro","synthwave","80s","hero","background","grid","sun"],scene:"synthwave",defaultPostPreset:"synthwave"}],et=Object.fromEntries(Qe.map(e=>[e.id,e]));var tt={none:{id:"none",label:"Clean",effects:{}},vhs:{id:"vhs",label:"VHS",effects:{bloom:{intensity:.35,luminanceThreshold:.5,radius:.7},noise:{intensity:.04},scanlines:{density:1.5,opacity:.12},vignette:{darkness:.4,offset:.45},chromatic:{offset:.0015}}},cinematic:{id:"cinematic",label:"Cinematic",effects:{bloom:{intensity:.5,luminanceThreshold:.55,radius:.8},vignette:{darkness:.5,offset:.5}}},synthwave:{id:"synthwave",label:"Synthwave",effects:{bloom:{intensity:.8,luminanceThreshold:.3,radius:.9},chromatic:{offset:.002},vignette:{darkness:.3,offset:.55}}},crt:{id:"crt",label:"CRT",effects:{bloom:{intensity:.2,luminanceThreshold:.7,radius:.4},scanlines:{density:2,opacity:.25},vignette:{darkness:.6,offset:.4},chromatic:{offset:.0025}}}},St="vhs";var wa=`
|
|
185
185
|
precision highp float;
|
|
186
186
|
varying vec2 vUv;
|
|
187
187
|
uniform float uTime;
|
|
@@ -191,17 +191,17 @@
|
|
|
191
191
|
uniform vec3 uSecondary;
|
|
192
192
|
uniform vec3 uAccent;
|
|
193
193
|
uniform vec3 uBackground;
|
|
194
|
-
`,
|
|
194
|
+
`,vi=`
|
|
195
195
|
varying vec2 vUv;
|
|
196
196
|
void main() {
|
|
197
197
|
vUv = uv;
|
|
198
198
|
gl_Position = vec4(position.xy, 0.0, 1.0);
|
|
199
199
|
}
|
|
200
|
-
|
|
201
|
-
${t.trim()}`),this.name="ShaderCompileError",this.log=t,this.source=r;}};function
|
|
202
|
-
${e}`;ai(t,i);let d=new I__namespace.Scene,c=new I__namespace.OrthographicCamera(-1,1,1,-1,0,1),s={uTime:{value:0},uResolution:{value:new I__namespace.Vector2(r,o)},uMouse:{value:new I__namespace.Vector2(.5,.5)},uPrimary:{value:new I__namespace.Color(n.primary)},uSecondary:{value:new I__namespace.Color(n.secondary)},uAccent:{value:new I__namespace.Color(n.accent)},uBackground:{value:new I__namespace.Color(n.background)}},p=new I__namespace.ShaderMaterial({uniforms:s,vertexShader:oi,fragmentShader:i,depthTest:false,depthWrite:false}),l=new I__namespace.PlaneGeometry(2,2),m=new I__namespace.Mesh(l,p);return d.add(m),{scene:d,camera:c,update:h=>{s.uTime.value=h;},resize:(h,T)=>{s.uResolution.value.set(h,T);},setPalette:h=>{s.uPrimary.value.set(h.primary),s.uSecondary.value.set(h.secondary),s.uAccent.value.set(h.accent),s.uBackground.value.set(h.background);},setMouse:(h,T)=>{s.uMouse.value.set(h,T);},dispose:()=>{l.dispose(),p.dispose();}}}}var et={primary:"#ff5fb9",secondary:"#9fe8ff",accent:"#ffc857",background:"#0a0a14"},si=/^[\d.]+\s+[\d.]+\s+[\d.]+(?:\s*\/\s*[\d.%]+)?$/,di=/^[\d.]+\s+[\d.]+%\s+[\d.]+%(?:\s*\/\s*[\d.%]+)?$/,ci=/^\s*var\(\s*(--[^,)\s]+)(?:\s*,[^)]*)?\s*\)\s*$/;function Tt(e,t,r){if(typeof document>"u")return r;let o=e,n=ci.exec(e);if(n){let c=getComputedStyle(t).getPropertyValue(n[1]).trim();c&&(si.test(c)?o=`oklch(${c})`:di.test(c)&&(o=`hsl(${c})`));}let i=document.createElement("span");if(i.style.color="",i.style.color=o,i.style.color==="")return r;i.style.display="none",t.appendChild(i);let d=getComputedStyle(i).color;if(t.removeChild(i),!d)return r;if(d.startsWith("rgb"))return d;try{let c=document.createElement("canvas");c.width=1,c.height=1;let s=c.getContext("2d");if(!s)return d;s.clearRect(0,0,1,1),s.fillStyle=d,s.fillRect(0,0,1,1);let[p,l,m]=s.getImageData(0,0,1,1).data;return `rgb(${p}, ${l}, ${m})`}catch{return d}}function ua(e,t){return {primary:Tt(e.primary,t,et.primary),secondary:Tt(e.secondary,t,et.secondary),accent:Tt(e.accent,t,et.accent),background:Tt(e.background,t,et.background)}}var wt=y__namespace.forwardRef(({preset:e,fragmentShader:t,onShaderError:r,postPreset:o,palette:n,createScene:i,controls:d=false,autoPlay:c=true,pauseOffscreen:s=true,aspect:p="video",radius:l="lg",border:m=false,poster:g,label:h,className:T,style:f,maxDpr:u},w)=>{let N=y__namespace.useRef(null),[E,M]=y__namespace.useState(c),[_,J]=y__namespace.useState(false),ye=Ee(),Lt=y__namespace.useMemo(()=>({...et,...n}),[n]),Dt=y__namespace.useMemo(()=>i||(t?Qt(t):e&&Xe[e]?Xe[e]:null),[i,t,e]),mr=y__namespace.useMemo(()=>{if(o)return o;if(e){let A=Je[e];if(A?.defaultPostPreset)return A.defaultPostPreset}return Rt},[o,e]);y__namespace.useEffect(()=>{let A=N.current;if(!A||!Dt)return;let it=A.clientWidth||1,st=A.clientHeight||1,At=ua(Lt,A),$=new I__namespace.WebGLRenderer({antialias:true,alpha:false,powerPreference:"high-performance"}),Na=u??Math.min(window.devicePixelRatio||1,2);$.setPixelRatio(Na),$.setSize(it,st),$.setClearColor(new I__namespace.Color(At.background),1),$.domElement.dataset.gdsPart="shader-canvas",$.domElement.style.width="100%",$.domElement.style.height="100%",$.domElement.style.display="block",A.appendChild($.domElement);let pe;try{pe=Dt({renderer:$,width:it,height:st,palette:At});}catch(D){if(D instanceof Oe)r?.(D),pe=Xe.space({renderer:$,width:it,height:st,palette:At});else throw $.dispose(),$.domElement.parentElement===A&&A.removeChild($.domElement),D}let ka=Qe[mr]??Qe[Rt],dt=sa({renderer:$,scene:pe.scene,camera:pe.camera,preset:ka,width:it,height:st}),ur=new I__namespace.Clock,fr=0,Be=c&&!ye,gr=true,hr=()=>{if(fr=requestAnimationFrame(hr),!Be||s&&!gr)return;let D=ur.getDelta(),te=ur.getElapsedTime();pe.update?.(te,D),dt.composer.render(D);};hr(),Be&&J(true);let yr=new ResizeObserver(([D])=>{let te=Math.max(1,Math.floor(D.contentRect.width)),Ve=Math.max(1,Math.floor(D.contentRect.height));$.setSize(te,Ve),dt.resize(te,Ve),pe.resize?.(te,Ve);});yr.observe(A);let vr=new IntersectionObserver(([D])=>{gr=D.isIntersecting;},{threshold:.05});vr.observe(A);let br=new MutationObserver(()=>{if(!N.current)return;let D=ua(Lt,N.current);$.setClearColor(new I__namespace.Color(D.background),1),pe.setPalette?.(D);});br.observe(document.documentElement,{attributes:true,attributeFilter:["class","style","data-theme","data-gds-theme","data-grade-mode"]});let xr=pe,ct=xr.setMouse?D=>{let te=A.getBoundingClientRect(),Ve=(D.clientX-te.left)/te.width,Ma=1-(D.clientY-te.top)/te.height;xr.setMouse(Ve,Ma);}:null;return ct&&A.addEventListener("pointermove",ct),It.current={toggle:()=>{Be=!Be,M(Be);},setPalette:D=>{$.setClearColor(new I__namespace.Color(D.background),1),pe.setPalette?.(D);},setPostPreset:D=>{let te=Qe[D];te&&dt.setPreset(te);}},()=>{cancelAnimationFrame(fr),yr.disconnect(),vr.disconnect(),br.disconnect(),ct&&A.removeEventListener("pointermove",ct),dt.dispose(),pe.dispose?.(),$.dispose(),$.domElement.parentElement===A&&A.removeChild($.domElement),It.current=null;}},[Dt,mr,Lt,c,ye,s,u,r]);let It=y__namespace.useRef(null),Ca=()=>It.current?.toggle();return y__namespace.createElement(ue,{ref:A=>{N.current=A,typeof w=="function"?w(A):w&&(w.current=A);},aspect:p,radius:l,border:m,"aria-label":h,className:T,style:f,"data-gds-part":"three-scene"},!_&&g&&y__namespace.createElement("img",{src:g,alt:"",className:"absolute inset-0 w-full h-full object-cover","data-gds-part":"scene-poster"}),d&&y__namespace.createElement("div",{"data-gds-part":"scene-controls",className:a("absolute inset-0 flex items-end justify-end p-2","opacity-0 hover:opacity-100 transition-opacity","bg-gradient-to-t from-black/30 to-transparent")},y__namespace.createElement(X,{size:"icon",variant:"secondary",onClick:Ca},E?y__namespace.createElement(lucideReact.Pause,{className:"h-4 w-4"}):y__namespace.createElement(lucideReact.Play,{className:"h-4 w-4"}))))});wt.displayName="ThreeScene";var St=y__namespace.forwardRef(({preset:e,live:t="hover",postPreset:r,palette:o,className:n,aspect:i="video",radius:d="lg",label:c,hideLabel:s=false,onClick:p},l)=>{let m=Je[e],[g,h]=y__namespace.useState(false),T=t==="always"||t==="hover"&&g;return y__namespace.createElement("div",{ref:l,"data-gds-part":"picker-card","data-gds-preset":e,onMouseEnter:()=>h(true),onMouseLeave:()=>h(false),onClick:p,className:a("group cursor-pointer flex flex-col gap-2",n)},T?y__namespace.createElement(wt,{preset:e,postPreset:r,palette:o,aspect:i,radius:d,autoPlay:true,controls:false,pauseOffscreen:true,poster:m?.poster,maxDpr:1}):y__namespace.createElement(ue,{aspect:i,radius:d,"data-gds-part":"preset-poster",className:"bg-gradient-to-br from-muted to-muted/50"},m?.poster?y__namespace.createElement("img",{src:m.poster,alt:m.label,className:"w-full h-full object-cover"}):y__namespace.createElement("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-muted-foreground"},m?.label??e)),!s&&y__namespace.createElement("div",{className:"flex items-baseline justify-between text-xs"},y__namespace.createElement("span",{className:"font-medium text-foreground","data-gds-part":"preset-label"},c??m?.label??e),m?.tags?.[0]&&y__namespace.createElement("span",{className:"text-muted-foreground"},m.tags[0])))});St.displayName="ShaderPresetPreview";function pi({value:e,onChange:t,filterTags:r,live:o="hover",postPreset:n,palette:i,columns:d=3,className:c}){let s=y__namespace.useMemo(()=>r?.length?Ze.filter(l=>r.some(m=>l.tags.includes(m))):Ze,[r]);return y__namespace.createElement("div",{"data-gds-part":"preset-grid",role:"radiogroup",className:a("grid grid-cols-2 gap-3",d===2?"md:grid-cols-2":d===4?"md:grid-cols-4":"md:grid-cols-3",c)},s.map(l=>{let m=e===l.id;return y__namespace.createElement("div",{key:l.id,className:"relative",role:"radio","aria-checked":m},y__namespace.createElement(St,{preset:l.id,postPreset:n,palette:i,live:o,onClick:()=>t?.(l.id),className:a("transition-all",m&&"ring-2 ring-primary ring-offset-2 ring-offset-background rounded-lg")}),m&&y__namespace.createElement("div",{"data-gds-part":"picker-selected-badge",className:"absolute top-2 right-2 rounded-full bg-primary text-primary-foreground p-1 shadow-sm"},y__namespace.createElement(lucideReact.Check,{className:"h-3.5 w-3.5"})))}))}function gi({children:e}){let t=y.useRef(null);return y.useEffect(()=>{let r=new fi__default.default({duration:1.2,easing:n=>Math.min(1,1.001-Math.pow(2,-10*n)),orientation:"vertical",gestureOrientation:"vertical",smoothWheel:true});t.current=r;function o(n){r.raf(n),requestAnimationFrame(o);}return requestAnimationFrame(o),()=>{r.destroy(),t.current=null;}},[]),React.createElement(React.Fragment,null,e)}var Pe=[50,100,200,300,400,500,600,700,800,900,950],fa=[.985,.955,.895,.82,.72,.61,.51,.415,.325,.245,.17],hi=[.015,.04,.075,.11,.14,.17,.17,.15,.12,.08,.04];function Pt({hue:e,chromaScale:t=1}){let r=(e%360+360)%360,o={};for(let n=0;n<Pe.length;n++){let i=fa[n],d=hi[n]*t;o[Pe[n]]=`${i.toFixed(4)} ${d.toFixed(4)} ${r.toFixed(2)}`;}return o}function ga(){let e={};for(let t=0;t<Pe.length;t++){let r=fa[t];e[Pe[t]]=`${r.toFixed(4)} 0 0`;}return e}var er={light:{destructive:"0.560 0.220 27.0",destructiveFg:"0.990 0.005 27.0",success:"0.610 0.180 145.0",warning:"0.720 0.180 60.0",info:"0.580 0.200 240.0",highlight:"0.860 0.180 95.0"},dark:{destructive:"0.680 0.220 27.0",destructiveFg:"0.990 0.005 27.0",success:"0.720 0.180 145.0",warning:"0.800 0.180 60.0",info:"0.700 0.200 240.0",highlight:"0.880 0.180 95.0"}},tt="1 0 0",ha="0 0 0";function Ge(e,t){let[,r,o]=e.split(/\s+/).map(l=>l.trim()),n=Number(r),i=o;if(t==="light"){let m=Math.min(n*.22,.045),g=.38,h=n;return {soft:`${.965.toFixed(3)} ${m.toFixed(3)} ${i}`,deep:`${g.toFixed(3)} ${h.toFixed(3)} ${i}`}}let d=.22,c=Math.min(n*.45,.075),s=.82,p=n*.9;return {soft:`${d.toFixed(3)} ${c.toFixed(3)} ${i}`,deep:`${s.toFixed(3)} ${p.toFixed(3)} ${i}`}}var Ct={geist:"var(--font-geist), system-ui, sans-serif",inter:"var(--font-inter), system-ui, sans-serif",manrope:"var(--font-manrope), system-ui, sans-serif",figtree:"var(--font-figtree), system-ui, sans-serif",dmSans:"var(--font-dm-sans), system-ui, sans-serif",lexend:"var(--font-lexend), system-ui, sans-serif",outfit:"var(--font-outfit), system-ui, sans-serif",plusJakarta:"var(--font-plus-jakarta), system-ui, sans-serif",spaceGrotesk:"var(--font-space-grotesk), system-ui, sans-serif",fraunces:"var(--font-fraunces), Georgia, serif",instrumentSerif:"var(--font-instrument-serif), Georgia, serif",sourceSerif:"var(--font-source-serif), Georgia, serif",jetbrainsMono:"var(--font-jetbrains-mono), ui-monospace, monospace",geistMono:"var(--font-geist-mono), ui-monospace, monospace",ibmPlexMono:"var(--font-ibm-plex-mono), ui-monospace, monospace",system:"system-ui, -apple-system, sans-serif",serif:"Georgia, 'Times New Roman', serif",mono:"ui-monospace, Menlo, monospace"};var yi=["superLight","light","dark","superDark"],vi={muted:.6,default:1,vibrant:1.3};function bi(e,t,r){let o=t.primary*r,n=t.accent*r,i=(o+n)/2*.8,d=c=>(c%360+360)%360;return {1:`0.600 ${(.17*o).toFixed(4)} ${e.primary.toFixed(2)}`,2:`0.640 ${(.17*i).toFixed(4)} ${d(e.primary+140).toFixed(2)}`,3:`0.580 ${(.17*i).toFixed(4)} ${d(e.primary+220).toFixed(2)}`,4:`0.510 0.0250 ${e.neutral.toFixed(2)}`,5:`0.620 ${(.17*n).toFixed(4)} ${e.accent.toFixed(2)}`}}var v=e=>({source:"neutral",step:e}),ie=e=>({source:"primary",step:e}),Ce=e=>({source:"accent",step:e}),rt=e=>({source:"pure",value:e}),xi={superLight:{background:v(50),foreground:v(800),card:rt(tt),cardForeground:v(800),popover:rt(tt),popoverForeground:v(800),primary:ie(600),primaryForeground:ie(50),secondary:v(100),secondaryForeground:v(700),muted:v(100),mutedForeground:v(500),accent:Ce(600),accentForeground:Ce(50),border:v(200),input:v(200),ring:ie(500)},light:{background:v(50),foreground:v(950),card:rt(tt),cardForeground:v(950),popover:rt(tt),popoverForeground:v(950),primary:ie(500),primaryForeground:ie(50),secondary:v(100),secondaryForeground:v(700),muted:v(100),mutedForeground:v(500),accent:Ce(500),accentForeground:Ce(50),border:v(200),input:v(200),ring:ie(500)},dark:{background:v(950),foreground:v(50),card:v(900),cardForeground:v(50),popover:v(900),popoverForeground:v(50),primary:ie(400),primaryForeground:ie(950),secondary:v(800),secondaryForeground:v(200),muted:v(800),mutedForeground:v(400),accent:Ce(400),accentForeground:Ce(950),border:v(800),input:v(800),ring:ie(400)},superDark:{background:rt(ha),foreground:v(100),card:v(950),cardForeground:v(100),popover:v(950),popoverForeground:v(100),primary:ie(300),primaryForeground:ie(950),secondary:v(900),secondaryForeground:v(300),muted:v(900),mutedForeground:v(500),accent:Ce(300),accentForeground:Ce(950),border:v(900),input:v(900),ring:ie(300)}};function Y(e,t){return e.source==="pure"?e.value:t[e.source][e.step]}function Ri(e,t){let r=xi[t],o=t==="superLight"||t==="light",n=o?er.light:er.dark;return {background:Y(r.background,e),foreground:Y(r.foreground,e),card:Y(r.card,e),cardForeground:Y(r.cardForeground,e),popover:Y(r.popover,e),popoverForeground:Y(r.popoverForeground,e),primary:Y(r.primary,e),primaryForeground:Y(r.primaryForeground,e),secondary:Y(r.secondary,e),secondaryForeground:Y(r.secondaryForeground,e),muted:Y(r.muted,e),mutedForeground:Y(r.mutedForeground,e),accent:Y(r.accent,e),accentForeground:Y(r.accentForeground,e),border:Y(r.border,e),input:Y(r.input,e),ring:Y(r.ring,e),destructive:n.destructive,destructiveForeground:n.destructiveFg,success:n.success,warning:n.warning,info:n.info,highlight:n.highlight,...(()=>{let i=o?"light":"dark",d=Ge(n.destructive,i),c=Ge(n.success,i),s=Ge(n.warning,i),p=Ge(n.info,i),l=Ge(n.highlight,i);return {destructiveSoft:d.soft,destructiveDeep:d.deep,successSoft:c.soft,successDeep:c.deep,warningSoft:s.soft,warningDeep:s.deep,infoSoft:p.soft,infoDeep:p.deep,highlightSoft:l.soft,highlightDeep:l.deep}})()}}var he={display:3.75,h1:2.5,h2:2,h3:1.5,h4:1.25,h5:1.125,h6:1,body:1,bodySm:.875},Ti={compact:.85,default:1,spacious:1.18};function wi(e){let t=Ti[e.scale],r=o=>`${(o*t).toFixed(3)}rem`;return {fontSans:Ct[e.body],fontMono:Ct[e.mono],fontDisplay:Ct[e.display],headingWeight:e.headingWeight??600,bodyWeight:e.bodyWeight??400,headingTracking:e.headingTracking??"-0.01em",scale:{display:r(he.display),h1:r(he.h1),h2:r(he.h2),h3:r(he.h3),h4:r(he.h4),h5:r(he.h5),h6:r(he.h6),body:r(he.body),bodySm:r(he.bodySm)}}}var Si={sharp:0,subtle:.25,soft:.5,round:.875,pill:1.25};function Pi(e){let t=Si[e.style],r=o=>`${o.toFixed(3)}rem`;return {base:r(t),sm:r(Math.max(0,t-.25)),md:r(t),lg:r(t+.25),xl:r(t+.5),"2xl":r(t+1),full:"9999px"}}var Ci={tight:.85,default:1,roomy:1.2};function Ni(e){return {baseUnit:"1rem",densityFactor:Ci[e.density]}}var ki={none:{sm:"none",md:"none",lg:"none",xl:"none","2xl":"none",inner:"none"},subtle:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.03)",md:"0 2px 4px -1px rgb(0 0 0 / 0.04), 0 1px 2px -1px rgb(0 0 0 / 0.03)",lg:"0 6px 14px -2px rgb(0 0 0 / 0.05)",xl:"0 12px 24px -4px rgb(0 0 0 / 0.06)","2xl":"0 24px 48px -12px rgb(0 0 0 / 0.12)",inner:"inset 0 1px 2px 0 rgb(0 0 0 / 0.03)"},default:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},dramatic:{sm:"0 2px 4px 0 rgb(0 0 0 / 0.12)",md:"0 8px 16px -2px rgb(0 0 0 / 0.18), 0 4px 8px -4px rgb(0 0 0 / 0.12)",lg:"0 20px 32px -4px rgb(0 0 0 / 0.22), 0 8px 16px -8px rgb(0 0 0 / 0.18)",xl:"0 32px 48px -6px rgb(0 0 0 / 0.28), 0 12px 24px -10px rgb(0 0 0 / 0.22)","2xl":"0 48px 80px -16px rgb(0 0 0 / 0.45)",inner:"inset 0 4px 8px 0 rgb(0 0 0 / 0.1)"}};function Mi(e){let t=e?.shadows??"default",r=e?.motionIntensity??1,o=n=>`${Math.round(n*r)}ms`;return {shadows:ki[t],motion:{fast:o(150),base:o(200),slow:o(300),slower:o(500)},borderWidth:e?.borderWidth??"1px"}}function He(e){let t=vi[e.intensity??"default"],r=e.neutralPureGray??false,o=(e.chroma?.neutral??.08)*t,n=(e.chroma?.primary??1)*t,i=(e.chroma?.accent??1)*t,d=r?ga():Pt({hue:e.hues.neutral,chromaScale:o}),c=Pt({hue:e.hues.primary,chromaScale:n}),s=Pt({hue:e.hues.accent,chromaScale:i}),p={neutral:d,primary:c,accent:s},l=bi(e.hues,{primary:n,accent:i},t),m=Object.fromEntries(yi.map(w=>[w,Ri(p,w)])),g=wi(e.typography),h=Pi(e.radius),T=Ni(e.spacing),f=Mi(e.effects),u={buttonShape:e.components?.buttonShape??"default",inputStyle:e.components?.inputStyle??"outlined",cardStyle:e.components?.cardStyle??"flat"};return {id:e.id,name:e.name,description:e.description,tagline:e.tagline,input:e,ramps:p,colors:m,chart:l,typography:g,radius:h,spacing:T,effects:f,components:u}}var ot={id:"calm",name:"Calm",description:"Warm neutrals, terracotta primary, serif typography.",tagline:"Signature",hues:{neutral:40,primary:20,accent:40},chroma:{neutral:.15,primary:.75,accent:.8},intensity:"muted",typography:{display:"fraunces",body:"fraunces",mono:"jetbrainsMono",scale:"default",headingWeight:600,headingTracking:"-0.02em"},spacing:{density:"roomy"},radius:{style:"round"},effects:{shadows:"subtle",motionIntensity:1.25},components:{buttonShape:"pill",inputStyle:"outlined",cardStyle:"outlined"}},tr={id:"energy",name:"Energy",description:"Teal + indigo \u2014 punchy, cool-tone, modern sans.",tagline:"Alternate",hues:{neutral:175,primary:175,accent:235},chroma:{neutral:.08,primary:1,accent:1},intensity:"vibrant",typography:{display:"geist",body:"geist",mono:"geistMono",scale:"default",headingWeight:600},spacing:{density:"default"},radius:{style:"soft"},effects:{shadows:"default",motionIntensity:1},components:{buttonShape:"default",inputStyle:"outlined",cardStyle:"flat"}},Nt=[ot,tr];function Ei(e){return {"--background":e.background,"--foreground":e.foreground,"--card":e.card,"--card-foreground":e.cardForeground,"--popover":e.popover,"--popover-foreground":e.popoverForeground,"--primary":e.primary,"--primary-foreground":e.primaryForeground,"--secondary":e.secondary,"--secondary-foreground":e.secondaryForeground,"--muted":e.muted,"--muted-foreground":e.mutedForeground,"--accent":e.accent,"--accent-foreground":e.accentForeground,"--destructive":e.destructive,"--destructive-foreground":e.destructiveForeground,"--border":e.border,"--input":e.input,"--ring":e.ring,"--success":e.success,"--warning":e.warning,"--info":e.info,"--highlight":e.highlight,"--destructive-soft":e.destructiveSoft,"--destructive-deep":e.destructiveDeep,"--success-soft":e.successSoft,"--success-deep":e.successDeep,"--warning-soft":e.warningSoft,"--warning-deep":e.warningDeep,"--info-soft":e.infoSoft,"--info-deep":e.infoDeep,"--highlight-soft":e.highlightSoft,"--highlight-deep":e.highlightDeep}}function or(e,t){let r=e.colors[t];return {...Ei(r),...rr("neutral",e.ramps.neutral),...rr("primary",e.ramps.primary),...rr("accent",e.ramps.accent),"--chart-1":e.chart[1],"--chart-2":e.chart[2],"--chart-3":e.chart[3],"--chart-4":e.chart[4],"--chart-5":e.chart[5],"--font-sans":e.typography.fontSans,"--font-mono":e.typography.fontMono,"--font-display":e.typography.fontDisplay,"--font-heading-weight":String(e.typography.headingWeight),"--font-body-weight":String(e.typography.bodyWeight),"--font-heading-tracking":e.typography.headingTracking,"--text-display":e.typography.scale.display,"--text-h1":e.typography.scale.h1,"--text-h2":e.typography.scale.h2,"--text-h3":e.typography.scale.h3,"--text-h4":e.typography.scale.h4,"--text-h5":e.typography.scale.h5,"--text-h6":e.typography.scale.h6,"--text-body":e.typography.scale.body,"--text-body-sm":e.typography.scale.bodySm,"--radius":e.radius.base,"--rds-radius-sm":e.radius.sm,"--rds-radius-md":e.radius.md,"--rds-radius-lg":e.radius.lg,"--rds-radius-xl":e.radius.xl,"--rds-radius-2xl":e.radius["2xl"],"--rds-radius-full":e.radius.full,"--rds-density":String(e.spacing.densityFactor),"--rds-shadow-sm":e.effects.shadows.sm,"--rds-shadow-md":e.effects.shadows.md,"--rds-shadow-lg":e.effects.shadows.lg,"--rds-shadow-xl":e.effects.shadows.xl,"--rds-shadow-2xl":e.effects.shadows["2xl"],"--rds-shadow-inner":e.effects.shadows.inner,"--rds-transition-fast":e.effects.motion.fast,"--rds-transition-base":e.effects.motion.base,"--rds-transition-slow":e.effects.motion.slow,"--rds-transition-slower":e.effects.motion.slower,"--rds-border-width":e.effects.borderWidth}}function rr(e,t){let r={};for(let o of Pe)r[`--ramp-${e}-${o}`]=t[o];return r}function kt(e,t){if(typeof document>"u")return;let r=document.documentElement,o=or(e,t);for(let[n,i]of Object.entries(o))r.style.setProperty(n,i);r.setAttribute("data-ramp-theme",e.id),r.setAttribute("data-mode",t),r.setAttribute("data-button-shape",e.components.buttonShape??"default"),r.setAttribute("data-input-style",e.components.inputStyle??"outlined"),r.setAttribute("data-card-style",e.components.cardStyle??"flat");}function at(e){if(typeof document>"u")return "";let t=document.createElement("span");t.style.color=`oklch(${e})`,t.style.position="absolute",t.style.visibility="hidden",document.body.appendChild(t);let r=getComputedStyle(t).color;document.body.removeChild(t);let o=r.match(/\d+/g);if(!o||o.length<3)return "";let[n,i,d]=o.slice(0,3).map(Number);return "#"+[n,i,d].map(c=>Math.max(0,Math.min(255,c)).toString(16).padStart(2,"0")).join("").toUpperCase()}function Hi(e){let t=e.trim().split(/\s+/);if(t.length<3)return {oklch:e,hex:""};let[r,o,n]=t.map(Number),i=`${r.toFixed(3)} ${o.toFixed(3)} ${Math.round(n)}`,d=at(e);return {oklch:i,hex:d}}function ar(e,t,r){let o=[`### ${e} ramp (hue ${Math.round(r)}\xB0)`,"","| Step | OKLCH | Hex |","|------|-------|-----|"];for(let n of Pe){let{oklch:i,hex:d}=Hi(t[n]);o.push(`| ${n} | \`${i}\` | \`${d||"\u2014"}\` |`);}return o.join(`
|
|
203
|
-
`)}function
|
|
204
|
-
`)}function
|
|
200
|
+
`,$e=class extends Error{log;source;constructor(t,r){super(`Fragment shader failed to compile:
|
|
201
|
+
${t.trim()}`),this.name="ShaderCompileError",this.log=t,this.source=r;}};function bi(e,t){let r=e.getContext(),o=r.createShader(r.FRAGMENT_SHADER);if(!o)throw new Error("Unable to allocate fragment shader");r.shaderSource(o,t),r.compileShader(o);let n=r.getShaderParameter(o,r.COMPILE_STATUS),i=r.getShaderInfoLog(o)||"";if(r.deleteShader(o),!n)throw new $e(i,t)}function or(e){return ({renderer:t,width:r,height:o,palette:n})=>{let i=`${wa}
|
|
202
|
+
${e}`;bi(t,i);let d=new I__namespace.Scene,l=new I__namespace.OrthographicCamera(-1,1,1,-1,0,1),s={uTime:{value:0},uResolution:{value:new I__namespace.Vector2(r,o)},uMouse:{value:new I__namespace.Vector2(.5,.5)},uPrimary:{value:new I__namespace.Color(n.primary)},uSecondary:{value:new I__namespace.Color(n.secondary)},uAccent:{value:new I__namespace.Color(n.accent)},uBackground:{value:new I__namespace.Color(n.background)}},p=new I__namespace.ShaderMaterial({uniforms:s,vertexShader:vi,fragmentShader:i,depthTest:false,depthWrite:false}),c=new I__namespace.PlaneGeometry(2,2),m=new I__namespace.Mesh(c,p);return d.add(m),{scene:d,camera:l,update:h=>{s.uTime.value=h;},resize:(h,T)=>{s.uResolution.value.set(h,T);},setPalette:h=>{s.uPrimary.value.set(h.primary),s.uSecondary.value.set(h.secondary),s.uAccent.value.set(h.accent),s.uBackground.value.set(h.background);},setMouse:(h,T)=>{s.uMouse.value.set(h,T);},dispose:()=>{c.dispose(),p.dispose();}}}}var rt={primary:"#ff5fb9",secondary:"#9fe8ff",accent:"#ffc857",background:"#0a0a14"},Ti=/^[\d.]+\s+[\d.]+\s+[\d.]+(?:\s*\/\s*[\d.%]+)?$/,wi=/^[\d.]+\s+[\d.]+%\s+[\d.]+%(?:\s*\/\s*[\d.%]+)?$/,Pi=/^\s*var\(\s*(--[^,)\s]+)(?:\s*,[^)]*)?\s*\)\s*$/;function Ct(e,t,r){if(typeof document>"u")return r;let o=e,n=Pi.exec(e);if(n){let l=getComputedStyle(t).getPropertyValue(n[1]).trim();l&&(Ti.test(l)?o=`oklch(${l})`:wi.test(l)&&(o=`hsl(${l})`));}let i=document.createElement("span");if(i.style.color="",i.style.color=o,i.style.color==="")return r;i.style.display="none",t.appendChild(i);let d=getComputedStyle(i).color;if(t.removeChild(i),!d)return r;if(d.startsWith("rgb"))return d;try{let l=document.createElement("canvas");l.width=1,l.height=1;let s=l.getContext("2d");if(!s)return d;s.clearRect(0,0,1,1),s.fillStyle=d,s.fillRect(0,0,1,1);let[p,c,m]=s.getImageData(0,0,1,1).data;return `rgb(${p}, ${c}, ${m})`}catch{return d}}function Pa(e,t){return {primary:Ct(e.primary,t,rt.primary),secondary:Ct(e.secondary,t,rt.secondary),accent:Ct(e.accent,t,rt.accent),background:Ct(e.background,t,rt.background)}}var Nt=y__namespace.forwardRef(({preset:e,fragmentShader:t,onShaderError:r,postPreset:o,palette:n,createScene:i,controls:d=false,autoPlay:l=true,pauseOffscreen:s=true,aspect:p="video",radius:c="lg",border:m=false,poster:g,label:h,className:T,style:f,maxDpr:u},w)=>{let N=y__namespace.useRef(null),[E,M]=y__namespace.useState(l),[_,J]=y__namespace.useState(false),ve=Le(),Ft=y__namespace.useMemo(()=>({...rt,...n}),[n]),Ot=y__namespace.useMemo(()=>i||(t?or(t):e&&Je[e]?Je[e]:null),[i,t,e]),hr=y__namespace.useMemo(()=>{if(o)return o;if(e){let A=et[e];if(A?.defaultPostPreset)return A.defaultPostPreset}return St},[o,e]);y__namespace.useEffect(()=>{let A=N.current;if(!A||!Ot)return;let dt=A.clientWidth||1,lt=A.clientHeight||1,$t=Pa(Ft,A),$=new I__namespace.WebGLRenderer({antialias:true,alpha:false,powerPreference:"high-performance"}),Ga=u??Math.min(window.devicePixelRatio||1,2);$.setPixelRatio(Ga),$.setSize(dt,lt),$.setClearColor(new I__namespace.Color($t.background),1),$.domElement.dataset.gdsPart="shader-canvas",$.domElement.style.width="100%",$.domElement.style.height="100%",$.domElement.style.display="block",A.appendChild($.domElement);let pe;try{pe=Ot({renderer:$,width:dt,height:lt,palette:$t});}catch(D){if(D instanceof $e)r?.(D),pe=Je.space({renderer:$,width:dt,height:lt,palette:$t});else throw $.dispose(),$.domElement.parentElement===A&&A.removeChild($.domElement),D}let $a=tt[hr]??tt[St],ct=va({renderer:$,scene:pe.scene,camera:pe.camera,preset:$a,width:dt,height:lt}),yr=new I__namespace.Clock,vr=0,Ue=l&&!ve,br=true,xr=()=>{if(vr=requestAnimationFrame(xr),!Ue||s&&!br)return;let D=yr.getDelta(),te=yr.getElapsedTime();pe.update?.(te,D),ct.composer.render(D);};xr(),Ue&&J(true);let Rr=new ResizeObserver(([D])=>{let te=Math.max(1,Math.floor(D.contentRect.width)),_e=Math.max(1,Math.floor(D.contentRect.height));$.setSize(te,_e),ct.resize(te,_e),pe.resize?.(te,_e);});Rr.observe(A);let Tr=new IntersectionObserver(([D])=>{br=D.isIntersecting;},{threshold:.05});Tr.observe(A);let wr=new MutationObserver(()=>{if(!N.current)return;let D=Pa(Ft,N.current);$.setClearColor(new I__namespace.Color(D.background),1),pe.setPalette?.(D);});wr.observe(document.documentElement,{attributes:true,attributeFilter:["class","style","data-theme","data-gds-theme","data-grade-mode"]});let Pr=pe,pt=Pr.setMouse?D=>{let te=A.getBoundingClientRect(),_e=(D.clientX-te.left)/te.width,Va=1-(D.clientY-te.top)/te.height;Pr.setMouse(_e,Va);}:null;return pt&&A.addEventListener("pointermove",pt),Gt.current={toggle:()=>{Ue=!Ue,M(Ue);},setPalette:D=>{$.setClearColor(new I__namespace.Color(D.background),1),pe.setPalette?.(D);},setPostPreset:D=>{let te=tt[D];te&&ct.setPreset(te);}},()=>{cancelAnimationFrame(vr),Rr.disconnect(),Tr.disconnect(),wr.disconnect(),pt&&A.removeEventListener("pointermove",pt),ct.dispose(),pe.dispose?.(),$.dispose(),$.domElement.parentElement===A&&A.removeChild($.domElement),Gt.current=null;}},[Ot,hr,Ft,l,ve,s,u,r]);let Gt=y__namespace.useRef(null),Oa=()=>Gt.current?.toggle();return y__namespace.createElement(ue,{ref:A=>{N.current=A,typeof w=="function"?w(A):w&&(w.current=A);},aspect:p,radius:c,border:m,"aria-label":h,className:T,style:f,"data-gds-part":"three-scene"},!_&&g&&y__namespace.createElement("img",{src:g,alt:"",className:"absolute inset-0 w-full h-full object-cover","data-gds-part":"scene-poster"}),d&&y__namespace.createElement("div",{"data-gds-part":"scene-controls",className:a("absolute inset-0 flex items-end justify-end p-2","opacity-0 hover:opacity-100 transition-opacity","bg-gradient-to-t from-black/30 to-transparent")},y__namespace.createElement(X,{size:"icon",variant:"secondary",onClick:Oa},E?y__namespace.createElement(lucideReact.Pause,{className:"h-4 w-4"}):y__namespace.createElement(lucideReact.Play,{className:"h-4 w-4"}))))});Nt.displayName="ThreeScene";var kt=y__namespace.forwardRef(({preset:e,live:t="hover",postPreset:r,palette:o,className:n,aspect:i="video",radius:d="lg",label:l,hideLabel:s=false,onClick:p},c)=>{let m=et[e],[g,h]=y__namespace.useState(false),T=t==="always"||t==="hover"&&g;return y__namespace.createElement("div",{ref:c,"data-gds-part":"picker-card","data-gds-preset":e,onMouseEnter:()=>h(true),onMouseLeave:()=>h(false),onClick:p,className:a("group cursor-pointer flex flex-col gap-2",n)},T?y__namespace.createElement(Nt,{preset:e,postPreset:r,palette:o,aspect:i,radius:d,autoPlay:true,controls:false,pauseOffscreen:true,poster:m?.poster,maxDpr:1}):y__namespace.createElement(ue,{aspect:i,radius:d,"data-gds-part":"preset-poster",className:"bg-gradient-to-br from-muted to-muted/50"},m?.poster?y__namespace.createElement("img",{src:m.poster,alt:m.label,className:"w-full h-full object-cover"}):y__namespace.createElement("div",{className:"absolute inset-0 flex items-center justify-center text-xs text-muted-foreground"},m?.label??e)),!s&&y__namespace.createElement("div",{className:"flex items-baseline justify-between text-xs"},y__namespace.createElement("span",{className:"font-medium text-foreground","data-gds-part":"preset-label"},l??m?.label??e),m?.tags?.[0]&&y__namespace.createElement("span",{className:"text-muted-foreground"},m.tags[0])))});kt.displayName="ShaderPresetPreview";function Ci({value:e,onChange:t,filterTags:r,live:o="hover",postPreset:n,palette:i,columns:d=3,className:l}){let s=y__namespace.useMemo(()=>r?.length?Qe.filter(c=>r.some(m=>c.tags.includes(m))):Qe,[r]);return y__namespace.createElement("div",{"data-gds-part":"preset-grid",role:"radiogroup",className:a("grid grid-cols-2 gap-3",d===2?"md:grid-cols-2":d===4?"md:grid-cols-4":"md:grid-cols-3",l)},s.map(c=>{let m=e===c.id;return y__namespace.createElement("div",{key:c.id,className:"relative",role:"radio","aria-checked":m},y__namespace.createElement(kt,{preset:c.id,postPreset:n,palette:i,live:o,onClick:()=>t?.(c.id),className:a("transition-all",m&&"ring-2 ring-primary ring-offset-2 ring-offset-background rounded-lg")}),m&&y__namespace.createElement("div",{"data-gds-part":"picker-selected-badge",className:"absolute top-2 right-2 rounded-full bg-primary text-primary-foreground p-1 shadow-sm"},y__namespace.createElement(lucideReact.Check,{className:"h-3.5 w-3.5"})))}))}function Ei({children:e}){let t=y.useRef(null);return y.useEffect(()=>{let r=new Mi__default.default({duration:1.2,easing:n=>Math.min(1,1.001-Math.pow(2,-10*n)),orientation:"vertical",gestureOrientation:"vertical",smoothWheel:true});t.current=r;function o(n){r.raf(n),requestAnimationFrame(o);}return requestAnimationFrame(o),()=>{r.destroy(),t.current=null;}},[]),React.createElement(React.Fragment,null,e)}var Ne=[50,100,200,300,400,500,600,700,800,900,950],Sa=[.985,.955,.895,.82,.72,.61,.51,.415,.325,.245,.17],Hi=[.015,.04,.075,.11,.14,.17,.17,.15,.12,.08,.04];function Mt({hue:e,chromaScale:t=1}){let r=(e%360+360)%360,o={};for(let n=0;n<Ne.length;n++){let i=Sa[n],d=Hi[n]*t;o[Ne[n]]=`${i.toFixed(4)} ${d.toFixed(4)} ${r.toFixed(2)}`;}return o}function Ca(){let e={};for(let t=0;t<Ne.length;t++){let r=Sa[t];e[Ne[t]]=`${r.toFixed(4)} 0 0`;}return e}var ar={light:{destructive:"0.560 0.220 27.0",destructiveFg:"0.990 0.005 27.0",success:"0.610 0.180 145.0",warning:"0.720 0.180 60.0",info:"0.580 0.200 240.0",highlight:"0.860 0.180 95.0"},dark:{destructive:"0.680 0.220 27.0",destructiveFg:"0.990 0.005 27.0",success:"0.720 0.180 145.0",warning:"0.800 0.180 60.0",info:"0.700 0.200 240.0",highlight:"0.880 0.180 95.0"}},ot="1 0 0",Na="0 0 0";function Ve(e,t){let[,r,o]=e.split(/\s+/).map(c=>c.trim()),n=Number(r),i=o;if(t==="light"){let m=Math.min(n*.22,.045),g=.38,h=n;return {soft:`${.965.toFixed(3)} ${m.toFixed(3)} ${i}`,deep:`${g.toFixed(3)} ${h.toFixed(3)} ${i}`}}let d=.22,l=Math.min(n*.45,.075),s=.82,p=n*.9;return {soft:`${d.toFixed(3)} ${l.toFixed(3)} ${i}`,deep:`${s.toFixed(3)} ${p.toFixed(3)} ${i}`}}var Et={geist:"var(--font-geist), system-ui, sans-serif",inter:"var(--font-inter), system-ui, sans-serif",manrope:"var(--font-manrope), system-ui, sans-serif",figtree:"var(--font-figtree), system-ui, sans-serif",dmSans:"var(--font-dm-sans), system-ui, sans-serif",lexend:"var(--font-lexend), system-ui, sans-serif",outfit:"var(--font-outfit), system-ui, sans-serif",plusJakarta:"var(--font-plus-jakarta), system-ui, sans-serif",spaceGrotesk:"var(--font-space-grotesk), system-ui, sans-serif",fraunces:"var(--font-fraunces), Georgia, serif",instrumentSerif:"var(--font-instrument-serif), Georgia, serif",sourceSerif:"var(--font-source-serif), Georgia, serif",jetbrainsMono:"var(--font-jetbrains-mono), ui-monospace, monospace",geistMono:"var(--font-geist-mono), ui-monospace, monospace",ibmPlexMono:"var(--font-ibm-plex-mono), ui-monospace, monospace",system:"system-ui, -apple-system, sans-serif",serif:"Georgia, 'Times New Roman', serif",mono:"ui-monospace, Menlo, monospace"};var Li=["superLight","light","dark","superDark"],Di={muted:.6,default:1,vibrant:1.3};function Ii(e,t,r){let o=t.primary*r,n=t.accent*r,i=(o+n)/2*.8,d=l=>(l%360+360)%360;return {1:`0.600 ${(.17*o).toFixed(4)} ${e.primary.toFixed(2)}`,2:`0.640 ${(.17*i).toFixed(4)} ${d(e.primary+140).toFixed(2)}`,3:`0.580 ${(.17*i).toFixed(4)} ${d(e.primary+220).toFixed(2)}`,4:`0.510 0.0250 ${e.neutral.toFixed(2)}`,5:`0.620 ${(.17*n).toFixed(4)} ${e.accent.toFixed(2)}`}}var v=e=>({source:"neutral",step:e}),ie=e=>({source:"primary",step:e}),ke=e=>({source:"accent",step:e}),at=e=>({source:"pure",value:e}),Ai={superLight:{background:v(50),foreground:v(800),card:at(ot),cardForeground:v(800),popover:at(ot),popoverForeground:v(800),primary:ie(600),primaryForeground:ie(50),secondary:v(100),secondaryForeground:v(700),muted:v(100),mutedForeground:v(500),accent:ke(600),accentForeground:ke(50),border:v(200),input:v(200),ring:ie(500)},light:{background:v(50),foreground:v(950),card:at(ot),cardForeground:v(950),popover:at(ot),popoverForeground:v(950),primary:ie(500),primaryForeground:ie(50),secondary:v(100),secondaryForeground:v(700),muted:v(100),mutedForeground:v(500),accent:ke(500),accentForeground:ke(50),border:v(200),input:v(200),ring:ie(500)},dark:{background:v(950),foreground:v(50),card:v(900),cardForeground:v(50),popover:v(900),popoverForeground:v(50),primary:ie(400),primaryForeground:ie(950),secondary:v(800),secondaryForeground:v(200),muted:v(800),mutedForeground:v(400),accent:ke(400),accentForeground:ke(950),border:v(800),input:v(800),ring:ie(400)},superDark:{background:at(Na),foreground:v(100),card:v(950),cardForeground:v(100),popover:v(950),popoverForeground:v(100),primary:ie(300),primaryForeground:ie(950),secondary:v(900),secondaryForeground:v(300),muted:v(900),mutedForeground:v(500),accent:ke(300),accentForeground:ke(950),border:v(900),input:v(900),ring:ie(300)}};function Y(e,t){return e.source==="pure"?e.value:t[e.source][e.step]}function Fi(e,t){let r=Ai[t],o=t==="superLight"||t==="light",n=o?ar.light:ar.dark;return {background:Y(r.background,e),foreground:Y(r.foreground,e),card:Y(r.card,e),cardForeground:Y(r.cardForeground,e),popover:Y(r.popover,e),popoverForeground:Y(r.popoverForeground,e),primary:Y(r.primary,e),primaryForeground:Y(r.primaryForeground,e),secondary:Y(r.secondary,e),secondaryForeground:Y(r.secondaryForeground,e),muted:Y(r.muted,e),mutedForeground:Y(r.mutedForeground,e),accent:Y(r.accent,e),accentForeground:Y(r.accentForeground,e),border:Y(r.border,e),input:Y(r.input,e),ring:Y(r.ring,e),destructive:n.destructive,destructiveForeground:n.destructiveFg,success:n.success,warning:n.warning,info:n.info,highlight:n.highlight,...(()=>{let i=o?"light":"dark",d=Ve(n.destructive,i),l=Ve(n.success,i),s=Ve(n.warning,i),p=Ve(n.info,i),c=Ve(n.highlight,i);return {destructiveSoft:d.soft,destructiveDeep:d.deep,successSoft:l.soft,successDeep:l.deep,warningSoft:s.soft,warningDeep:s.deep,infoSoft:p.soft,infoDeep:p.deep,highlightSoft:c.soft,highlightDeep:c.deep}})()}}var ye={display:3.75,h1:2.5,h2:2,h3:1.5,h4:1.25,h5:1.125,h6:1,body:1,bodySm:.875},Oi={compact:.85,default:1,spacious:1.18};function Gi(e){let t=Oi[e.scale],r=o=>`${(o*t).toFixed(3)}rem`;return {fontSans:Et[e.body],fontMono:Et[e.mono],fontDisplay:Et[e.display],headingWeight:e.headingWeight??600,bodyWeight:e.bodyWeight??400,headingTracking:e.headingTracking??"-0.01em",scale:{display:r(ye.display),h1:r(ye.h1),h2:r(ye.h2),h3:r(ye.h3),h4:r(ye.h4),h5:r(ye.h5),h6:r(ye.h6),body:r(ye.body),bodySm:r(ye.bodySm)}}}var $i={sharp:0,subtle:.25,soft:.5,round:.875,pill:1.25};function Vi(e){let t=$i[e.style],r=o=>`${o.toFixed(3)}rem`;return {base:r(t),sm:r(Math.max(0,t-.25)),md:r(t),lg:r(t+.25),xl:r(t+.5),"2xl":r(t+1),full:"9999px"}}var Bi={tight:.85,default:1,roomy:1.2};function Ui(e){return {baseUnit:"1rem",densityFactor:Bi[e.density]}}var _i={none:{sm:"none",md:"none",lg:"none",xl:"none","2xl":"none",inner:"none"},subtle:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.03)",md:"0 2px 4px -1px rgb(0 0 0 / 0.04), 0 1px 2px -1px rgb(0 0 0 / 0.03)",lg:"0 6px 14px -2px rgb(0 0 0 / 0.05)",xl:"0 12px 24px -4px rgb(0 0 0 / 0.06)","2xl":"0 24px 48px -12px rgb(0 0 0 / 0.12)",inner:"inset 0 1px 2px 0 rgb(0 0 0 / 0.03)"},default:{sm:"0 1px 2px 0 rgb(0 0 0 / 0.05)",md:"0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",lg:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)",xl:"0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)","2xl":"0 25px 50px -12px rgb(0 0 0 / 0.25)",inner:"inset 0 2px 4px 0 rgb(0 0 0 / 0.05)"},dramatic:{sm:"0 2px 4px 0 rgb(0 0 0 / 0.12)",md:"0 8px 16px -2px rgb(0 0 0 / 0.18), 0 4px 8px -4px rgb(0 0 0 / 0.12)",lg:"0 20px 32px -4px rgb(0 0 0 / 0.22), 0 8px 16px -8px rgb(0 0 0 / 0.18)",xl:"0 32px 48px -6px rgb(0 0 0 / 0.28), 0 12px 24px -10px rgb(0 0 0 / 0.22)","2xl":"0 48px 80px -16px rgb(0 0 0 / 0.45)",inner:"inset 0 4px 8px 0 rgb(0 0 0 / 0.1)"}};function Ki(e){let t=e?.shadows??"default",r=e?.motionIntensity??1,o=n=>`${Math.round(n*r)}ms`;return {shadows:_i[t],motion:{fast:o(150),base:o(200),slow:o(300),slower:o(500)},borderWidth:e?.borderWidth??"1px"}}function De(e){let t=Di[e.intensity??"default"],r=e.neutralPureGray??false,o=(e.chroma?.neutral??.08)*t,n=(e.chroma?.primary??1)*t,i=(e.chroma?.accent??1)*t,d=r?Ca():Mt({hue:e.hues.neutral,chromaScale:o}),l=Mt({hue:e.hues.primary,chromaScale:n}),s=Mt({hue:e.hues.accent,chromaScale:i}),p={neutral:d,primary:l,accent:s},c=Ii(e.hues,{primary:n,accent:i},t),m=Object.fromEntries(Li.map(w=>[w,Fi(p,w)])),g=Gi(e.typography),h=Vi(e.radius),T=Ui(e.spacing),f=Ki(e.effects),u={buttonShape:e.components?.buttonShape??"default",inputStyle:e.components?.inputStyle??"outlined",cardStyle:e.components?.cardStyle??"flat"};return {id:e.id,name:e.name,description:e.description,tagline:e.tagline,input:e,ramps:p,colors:m,chart:c,typography:g,radius:h,spacing:T,effects:f,components:u}}var nt={id:"calm",name:"Calm",description:"Warm neutrals, terracotta primary, serif typography.",tagline:"Signature",hues:{neutral:40,primary:20,accent:40},chroma:{neutral:.15,primary:.75,accent:.8},intensity:"muted",typography:{display:"fraunces",body:"fraunces",mono:"jetbrainsMono",scale:"default",headingWeight:600,headingTracking:"-0.02em"},spacing:{density:"roomy"},radius:{style:"round"},effects:{shadows:"subtle",motionIntensity:1.25},components:{buttonShape:"pill",inputStyle:"outlined",cardStyle:"outlined"}},nr={id:"energy",name:"Energy",description:"Teal + indigo \u2014 punchy, cool-tone, modern sans.",tagline:"Alternate",hues:{neutral:175,primary:175,accent:235},chroma:{neutral:.08,primary:1,accent:1},intensity:"vibrant",typography:{display:"geist",body:"geist",mono:"geistMono",scale:"default",headingWeight:600},spacing:{density:"default"},radius:{style:"soft"},effects:{shadows:"default",motionIntensity:1},components:{buttonShape:"default",inputStyle:"outlined",cardStyle:"flat"}},Ht=[nt,nr];function zi(e){return {"--background":e.background,"--foreground":e.foreground,"--card":e.card,"--card-foreground":e.cardForeground,"--popover":e.popover,"--popover-foreground":e.popoverForeground,"--primary":e.primary,"--primary-foreground":e.primaryForeground,"--secondary":e.secondary,"--secondary-foreground":e.secondaryForeground,"--muted":e.muted,"--muted-foreground":e.mutedForeground,"--accent":e.accent,"--accent-foreground":e.accentForeground,"--destructive":e.destructive,"--destructive-foreground":e.destructiveForeground,"--border":e.border,"--input":e.input,"--ring":e.ring,"--success":e.success,"--warning":e.warning,"--info":e.info,"--highlight":e.highlight,"--destructive-soft":e.destructiveSoft,"--destructive-deep":e.destructiveDeep,"--success-soft":e.successSoft,"--success-deep":e.successDeep,"--warning-soft":e.warningSoft,"--warning-deep":e.warningDeep,"--info-soft":e.infoSoft,"--info-deep":e.infoDeep,"--highlight-soft":e.highlightSoft,"--highlight-deep":e.highlightDeep}}function sr(e,t){let r=e.colors[t];return {...zi(r),...ir("neutral",e.ramps.neutral),...ir("primary",e.ramps.primary),...ir("accent",e.ramps.accent),"--chart-1":e.chart[1],"--chart-2":e.chart[2],"--chart-3":e.chart[3],"--chart-4":e.chart[4],"--chart-5":e.chart[5],"--font-sans":e.typography.fontSans,"--font-mono":e.typography.fontMono,"--font-display":e.typography.fontDisplay,"--font-heading-weight":String(e.typography.headingWeight),"--font-body-weight":String(e.typography.bodyWeight),"--font-heading-tracking":e.typography.headingTracking,"--text-display":e.typography.scale.display,"--text-h1":e.typography.scale.h1,"--text-h2":e.typography.scale.h2,"--text-h3":e.typography.scale.h3,"--text-h4":e.typography.scale.h4,"--text-h5":e.typography.scale.h5,"--text-h6":e.typography.scale.h6,"--text-body":e.typography.scale.body,"--text-body-sm":e.typography.scale.bodySm,"--radius":e.radius.base,"--rds-radius-sm":e.radius.sm,"--rds-radius-md":e.radius.md,"--rds-radius-lg":e.radius.lg,"--rds-radius-xl":e.radius.xl,"--rds-radius-2xl":e.radius["2xl"],"--rds-radius-full":e.radius.full,"--rds-density":String(e.spacing.densityFactor),"--rds-shadow-sm":e.effects.shadows.sm,"--rds-shadow-md":e.effects.shadows.md,"--rds-shadow-lg":e.effects.shadows.lg,"--rds-shadow-xl":e.effects.shadows.xl,"--rds-shadow-2xl":e.effects.shadows["2xl"],"--rds-shadow-inner":e.effects.shadows.inner,"--rds-transition-fast":e.effects.motion.fast,"--rds-transition-base":e.effects.motion.base,"--rds-transition-slow":e.effects.motion.slow,"--rds-transition-slower":e.effects.motion.slower,"--rds-border-width":e.effects.borderWidth}}function ir(e,t){let r={};for(let o of Ne)r[`--ramp-${e}-${o}`]=t[o];return r}function Lt(e,t){if(typeof document>"u")return;let r=document.documentElement,o=sr(e,t);for(let[n,i]of Object.entries(o))r.style.setProperty(n,i);r.setAttribute("data-ramp-theme",e.id),r.setAttribute("data-mode",t),r.setAttribute("data-button-shape",e.components.buttonShape??"default"),r.setAttribute("data-input-style",e.components.inputStyle??"outlined"),r.setAttribute("data-card-style",e.components.cardStyle??"flat");}function it(e){if(typeof document>"u")return "";let t=document.createElement("span");t.style.color=`oklch(${e})`,t.style.position="absolute",t.style.visibility="hidden",document.body.appendChild(t);let r=getComputedStyle(t).color;document.body.removeChild(t);let o=r.match(/\d+/g);if(!o||o.length<3)return "";let[n,i,d]=o.slice(0,3).map(Number);return "#"+[n,i,d].map(l=>Math.max(0,Math.min(255,l)).toString(16).padStart(2,"0")).join("").toUpperCase()}function Wi(e){let t=e.trim().split(/\s+/);if(t.length<3)return {oklch:e,hex:""};let[r,o,n]=t.map(Number),i=`${r.toFixed(3)} ${o.toFixed(3)} ${Math.round(n)}`,d=it(e);return {oklch:i,hex:d}}function dr(e,t,r){let o=[`### ${e} ramp (hue ${Math.round(r)}\xB0)`,"","| Step | OKLCH | Hex |","|------|-------|-----|"];for(let n of Ne){let{oklch:i,hex:d}=Wi(t[n]);o.push(`| ${n} | \`${i}\` | \`${d||"\u2014"}\` |`);}return o.join(`
|
|
203
|
+
`)}function ka(e,t){let r=[`### ${e}`,"","| Token | Usage | Light (hex) | Dark (hex) |","|-------|-------|-------------|------------|"];for(let o of t){let n=it(o.light)||"\u2014",i=it(o.dark)||"\u2014";r.push(`| \`--${o.token}\` | ${o.usage} | \`${n}\` (\`${o.light}\`) | \`${i}\` (\`${o.dark}\`) |`);}return r.join(`
|
|
204
|
+
`)}function Ma(e){return JSON.stringify(e.input,null,2)}function Ea(e){let{input:t,ramps:r,colors:o,chart:n,typography:i,radius:d,spacing:l,effects:s,components:p}=e,c=t.intensity??"default",m=f=>({token:f,usage:ji[f]??"",light:o.light[f],dark:o.dark[f]}),g=["background","foreground","card","cardForeground","popover","popoverForeground","primary","primaryForeground","secondary","secondaryForeground","muted","mutedForeground","accent","accentForeground","border","input","ring"].map(m),h=["destructive","destructiveForeground","success","warning","info","highlight"].map(m),T=[1,2,3,4,5].map(f=>{let u=n[f];return {slot:f,triplet:u,hex:it(u)||"\u2014"}});return `# ${e.name} \u2014 Grade Design System Theme
|
|
205
205
|
|
|
206
206
|
> **Portable theme spec.** Paste this entire file into a fresh LLM prompt along with your design brief. The model will have everything it needs to produce UI that matches this exact theme \u2014 colors, typography, spacing, shapes, and the "feel" we're after.
|
|
207
207
|
|
|
@@ -211,7 +211,7 @@ ${e}`;ai(t,i);let d=new I__namespace.Scene,c=new I__namespace.OrthographicCamera
|
|
|
211
211
|
- **ID**: \`${t.id}\`
|
|
212
212
|
${t.description?`- **Description**: ${t.description}
|
|
213
213
|
`:""}- **Hues**: neutral \`${t.hues.neutral}\xB0\` \xB7 primary \`${t.hues.primary}\xB0\` \xB7 accent \`${t.hues.accent}\xB0\`
|
|
214
|
-
- **Intensity**: \`${
|
|
214
|
+
- **Intensity**: \`${c}\` ${c==="muted"?"(quieter chroma across the board)":c==="vibrant"?"(punchier chroma across the board)":"(balanced)"}
|
|
215
215
|
- **Typography**: ${t.typography.display} display \xB7 ${t.typography.body} body \xB7 ${t.typography.mono} mono \xB7 scale \`${t.typography.scale}\`
|
|
216
216
|
- **Spacing density**: \`${t.spacing.density}\`
|
|
217
217
|
- **Radius style**: \`${t.radius.style}\` (base \`${d.base}\`)
|
|
@@ -231,30 +231,30 @@ A \`ThemeInput\` is a small object (three hues plus a handful of presets). The g
|
|
|
231
231
|
## Full ThemeInput (round-trippable)
|
|
232
232
|
|
|
233
233
|
\`\`\`json
|
|
234
|
-
${
|
|
234
|
+
${Ma(e)}
|
|
235
235
|
\`\`\`
|
|
236
236
|
|
|
237
237
|
## Color ramps
|
|
238
238
|
|
|
239
239
|
Three 11-stop OKLCH ramps, generated from the input hues + chromas + global intensity. Every color elsewhere in the theme resolves back to one of these stops.
|
|
240
240
|
|
|
241
|
-
${
|
|
241
|
+
${dr("Neutral",r.neutral,t.hues.neutral)}
|
|
242
242
|
|
|
243
|
-
${
|
|
243
|
+
${dr("Primary",r.primary,t.hues.primary)}
|
|
244
244
|
|
|
245
|
-
${
|
|
245
|
+
${dr("Accent",r.accent,t.hues.accent)}
|
|
246
246
|
|
|
247
247
|
## Semantic tokens (hue-derived)
|
|
248
248
|
|
|
249
249
|
Purpose-based tokens drawn from the ramps. Two values per token \u2014 the generator produces them for all four brightness modes, but only light + dark are shown here for brevity.
|
|
250
250
|
|
|
251
|
-
${
|
|
251
|
+
${ka("Core semantic tokens",g)}
|
|
252
252
|
|
|
253
253
|
## Fixed semantic tokens (not hue-derived)
|
|
254
254
|
|
|
255
255
|
Status colors stay consistent across themes so users always read green as success, red as destructive, etc. Accessibility wins over brand cohesion.
|
|
256
256
|
|
|
257
|
-
${
|
|
257
|
+
${ka("Status colors",h)}
|
|
258
258
|
|
|
259
259
|
## Chart palette
|
|
260
260
|
|
|
@@ -304,8 +304,8 @@ ${T.map(f=>`| \`--chart-${f.slot}\` | \`${f.triplet}\` | \`${f.hex}\` |`).join(`
|
|
|
304
304
|
|
|
305
305
|
### Spacing
|
|
306
306
|
|
|
307
|
-
- **Density factor**: \`${
|
|
308
|
-
- **Base unit**: \`${
|
|
307
|
+
- **Density factor**: \`${l.densityFactor}\` (applied as \`var(--rds-density)\` on components that opt in)
|
|
308
|
+
- **Base unit**: \`${l.baseUnit}\`
|
|
309
309
|
|
|
310
310
|
### Motion
|
|
311
311
|
|
|
@@ -383,7 +383,7 @@ Every component accepts a \`className\` for layout tweaks. Variants are passed v
|
|
|
383
383
|
|
|
384
384
|
When generating UI in the ${e.name} theme, match this character:
|
|
385
385
|
|
|
386
|
-
${
|
|
386
|
+
${qi(e)}
|
|
387
387
|
|
|
388
388
|
## Instructions for the generating LLM
|
|
389
389
|
|
|
@@ -402,7 +402,7 @@ To recreate this theme in code:
|
|
|
402
402
|
\`\`\`ts
|
|
403
403
|
import { generateTheme, applyThemeToRoot, type ThemeInput } from "@gradeui/ui";
|
|
404
404
|
|
|
405
|
-
const input: ThemeInput = ${
|
|
405
|
+
const input: ThemeInput = ${Ma(e).replace(/\n/g,`
|
|
406
406
|
`)};
|
|
407
407
|
|
|
408
408
|
const theme = generateTheme(input);
|
|
@@ -411,11 +411,11 @@ applyThemeToRoot(theme, "light"); // or "dark" / "superLight" / "superDark"
|
|
|
411
411
|
|
|
412
412
|
---
|
|
413
413
|
*Generated from Grade Design System v1 \xB7 ${new Date().toISOString()}*
|
|
414
|
-
`}var
|
|
415
|
-
`)}function
|
|
414
|
+
`}var ji={background:"Page / body background",foreground:"Primary text",card:"Elevated surface background",cardForeground:"Text on cards",popover:"Floating menu background",popoverForeground:"Text inside floating menus",primary:"Primary actions, links, default button",primaryForeground:"Text on primary-tinted fills",secondary:"Secondary surfaces + quiet buttons",secondaryForeground:"Text on secondary surfaces",muted:"Subtle surfaces (hover states, skeletons)",mutedForeground:"Secondary / less-important text",accent:"Highlights, hover accents",accentForeground:"Text on accent surfaces",border:"Default borders",input:"Form input borders",ring:"Focus ring color",destructive:"Destructive actions, errors",destructiveForeground:"Text on destructive surfaces",success:"Success states",warning:"Warning states",info:"Informational states",highlight:"Emphasis, new features, callouts"};function qi(e){let t=[],{input:r,components:o}=e;r.intensity==="muted"?t.push("- **Quiet and restrained.** Avoid heavy saturation, glowing effects, or loud contrast jumps. Let whitespace do the work."):r.intensity==="vibrant"?t.push("- **Loud and confident.** Primary color wants to lead. Use it on hero CTAs, key metrics, empty states. Don't be shy."):t.push("- **Balanced.** Neither shouty nor sleepy \u2014 a workhorse feel suited to product interfaces."),r.spacing.density==="roomy"?t.push("- **Generous spacing.** Stretch things out \u2014 reach for `gap-6`, `gap-8`, `p-6`, `p-8`. Airy is the vibe."):r.spacing.density==="tight"?t.push("- **Dense layouts.** Pack information in \u2014 `gap-2`, `gap-3`, `p-3`, `p-4`. Scan-friendly dashboard energy."):t.push("- **Standard density.** Use Tailwind's default spacing ladder."),r.radius.style==="pill"?t.push("- **Fully rounded.** Controls are pill-shaped. Use `rounded-full` on custom chips / pills too."):r.radius.style==="sharp"?t.push("- **Square corners.** Zero radius everywhere \u2014 very architectural. Do not add curves."):r.radius.style==="round"?t.push("- **Rounded and friendly.** Corner radius is noticeable (\u224814px base). Avoid sharp edges."):t.push("- **Standard rounded corners.**");let n=r.typography.display;return n==="fraunces"||n==="instrumentSerif"||n==="sourceSerif"?t.push("- **Editorial serif headings.** Treat headings like magazine titles \u2014 give them space and weight. Serifs reward larger sizes."):(n==="geist"||n==="inter")&&t.push("- **Modern technical sans.** Clean, functional, neutral. Good for product UIs."),o.cardStyle==="outlined"?t.push("- **Cards are outlined**, not shadowed. Rely on borders + spacing for hierarchy."):o.cardStyle==="elevated"?t.push("- **Cards have real elevation.** Use shadows to stack content visually."):o.cardStyle==="glass"&&t.push("- **Glass / frosted cards.** Use translucent surfaces over background imagery or gradients."),o.buttonShape==="pill"&&t.push("- **Buttons are pills** \u2014 don't override with square corners."),t.join(`
|
|
415
|
+
`)}function lr(e){if(typeof window>"u"||typeof document>"u")return;let t=Ea(e),r=new Blob([t],{type:"text/markdown;charset=utf-8"}),o=URL.createObjectURL(r),n=document.createElement("a");n.href=o,n.download=`ramp-theme-${e.input.id}.md`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(o);}var fe=Object.fromEntries(Ht.map(e=>[e.id,De(e)])),Be=nt.id;function Ie(e){if(e in fe)return fe[e];let t=pr(e);if(t)return De(t)}function cr(){return [...Object.values(fe),...Da()]}var Ha="ramp-user-themes";function Dt(){if(typeof localStorage>"u")return {};try{let e=localStorage.getItem(Ha);if(!e)return {};let t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return {}}}function La(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Ha,JSON.stringify(e));}catch{}}function Da(){return Object.values(Dt()).map(De)}function pr(e){return Dt()[e]}function It(e){let t=Dt();return t[e.id]=e,La(t),De(e)}function mr(e){if(e in fe)return;let t=Dt();delete t[e],La(t);}function Yi(e,t,r){let o=fe[e]?.input??pr(e);if(!o)return;let n={...o,id:t,name:r};return It(n),n}var ur="ramp-theme",At="ramp-mode",Aa=["superLight","light","dark","superDark"],Ia=new Set(["dark","superDark"]),Xi=`
|
|
416
416
|
(function() {
|
|
417
417
|
try {
|
|
418
|
-
var mode = localStorage.getItem('${
|
|
418
|
+
var mode = localStorage.getItem('${At}');
|
|
419
419
|
var valid = ['superLight','light','dark','superDark'];
|
|
420
420
|
if (!mode || valid.indexOf(mode) === -1) {
|
|
421
421
|
mode = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
@@ -424,9 +424,9 @@ applyThemeToRoot(theme, "light"); // or "dark" / "superLight" / "superDark"
|
|
|
424
424
|
document.documentElement.classList.add('dark');
|
|
425
425
|
}
|
|
426
426
|
document.documentElement.setAttribute('data-mode', mode);
|
|
427
|
-
var themeId = localStorage.getItem('${
|
|
427
|
+
var themeId = localStorage.getItem('${ur}');
|
|
428
428
|
if (themeId) document.documentElement.setAttribute('data-ramp-theme', themeId);
|
|
429
429
|
} catch(e) {}
|
|
430
430
|
})();
|
|
431
|
-
`,lr=y__namespace.createContext(null);function Fi({children:e,defaultTheme:t=$e,defaultMode:r="light"}){let[o,n]=y__namespace.useState(t),[i,d]=y__namespace.useState(r),[c,s]=y__namespace.useState(0);y__namespace.useEffect(()=>{try{let f=localStorage.getItem(cr);f&&Le(f)&&n(f);let u=localStorage.getItem(Ht);if(u&&Sa.includes(u))d(u);else if(typeof window<"u"){let w=window.matchMedia("(prefers-color-scheme: dark)").matches;d(w?"dark":"light");}}catch{}},[]),y__namespace.useEffect(()=>{let f=Le(o)??Le($e);f&&(kt(f,i),typeof document<"u"&&document.documentElement.classList.toggle("dark",wa.has(i)));},[o,i,c]),y__namespace.useEffect(()=>{if(typeof window>"u")return;let f=window.matchMedia("(prefers-color-scheme: dark)"),u=w=>{try{if(localStorage.getItem(Ht))return}catch{return}d(w.matches?"dark":"light");};return f.addEventListener("change",u),()=>f.removeEventListener("change",u)},[]);let p=y__namespace.useCallback(f=>{n(f);try{localStorage.setItem(cr,f);}catch{}},[]),l=y__namespace.useCallback(f=>{d(f);try{localStorage.setItem(Ht,f);}catch{}},[]),m=y__namespace.useCallback(f=>{Et(f),s(u=>u+1),p(f.id);},[p]),g=y__namespace.useCallback(f=>{f in fe||(dr(f),s(u=>u+1),n(u=>u===f?$e:u));},[]),h=y__namespace.useCallback(()=>{s(f=>f+1);},[]),T=y__namespace.useMemo(()=>{let f=Le(o)??Le($e);return {theme:f,themeId:f.id,mode:i,isDark:wa.has(i),setThemeId:p,setMode:l,themes:ir(),saveAndActivate:m,deleteTheme:g,refresh:h}},[o,i,c,p,l,m,g,h]);return y__namespace.createElement(lr.Provider,{value:T},e)}function pr(){let e=y__namespace.useContext(lr);if(!e)throw new Error("useGradeTheme must be used inside <GradeThemeProvider>. Wrap your app (typically in app/layout.tsx).");return e}function nt(){return y__namespace.useContext(lr)}function Vi({className:e}){let t=nt();if(!t)return null;let{theme:r,themes:o,setThemeId:n,deleteTheme:i}=t;return y__namespace.createElement(Ie,null,y__namespace.createElement(Ae,{asChild:true},y__namespace.createElement(X,{variant:"ghost",size:"sm",className:a("gap-2",e),"aria-label":"Switch theme"},y__namespace.createElement(lucideReact.Palette,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"hidden sm:inline"},r.name))),y__namespace.createElement(ke,{className:"w-80 p-2",align:"end"},y__namespace.createElement("div",{className:"flex items-start justify-between gap-2 px-2 py-1.5 mb-1"},y__namespace.createElement("div",null,y__namespace.createElement("div",{className:"text-xs font-medium text-muted-foreground"},"Theme"),y__namespace.createElement("div",{className:"text-xs text-muted-foreground/80"},"Switch the skin applied site-wide.")),y__namespace.createElement("button",{type:"button",onClick:()=>nr(r),className:"flex items-center gap-1 rounded-md border border-border px-2 py-1 text-[10px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground transition-colors",title:"Download the active theme as a markdown spec \u2014 paste into a fresh LLM prompt"},y__namespace.createElement(lucideReact.Download,{className:"h-3 w-3"}),".md")),y__namespace.createElement("div",{className:"flex flex-col gap-0.5"},o.map(d=>{let c=d.id===r.id,s=d.id in fe,p=d.ramps.primary[500],l=d.ramps.accent[500],m=d.ramps.neutral[500];return y__namespace.createElement("div",{key:d.id,className:a("group flex items-start gap-3 rounded-md px-2 py-2 text-left transition-colors","hover:bg-muted",c&&"bg-muted")},y__namespace.createElement("button",{type:"button",onClick:()=>n(d.id),className:"flex items-start gap-3 flex-1 min-w-0 text-left"},y__namespace.createElement("div",{className:"mt-0.5 flex shrink-0 overflow-hidden rounded-md border border-border"},y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${p})`},"aria-hidden":true}),y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${l})`},"aria-hidden":true}),y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${m})`},"aria-hidden":true})),y__namespace.createElement("div",{className:"min-w-0 flex-1"},y__namespace.createElement("div",{className:"flex items-center gap-2"},y__namespace.createElement("span",{className:"text-sm font-medium truncate text-foreground"},d.name),d.tagline&&y__namespace.createElement("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground shrink-0"},d.tagline)),d.description&&y__namespace.createElement("div",{className:"text-xs text-muted-foreground line-clamp-2"},d.description))),c&&y__namespace.createElement(lucideReact.Check,{className:"mt-2 h-4 w-4 shrink-0 text-primary"}),!s&&!c&&y__namespace.createElement("button",{type:"button",onClick:g=>{g.stopPropagation(),i(d.id);},className:"mt-1 opacity-0 group-hover:opacity-100 transition-opacity rounded p-1 hover:bg-destructive/10 hover:text-destructive","aria-label":`Delete theme ${d.name}`},y__namespace.createElement(lucideReact.Trash2,{className:"h-3.5 w-3.5"})))}))))}var Pa=[{mode:"superLight",label:"Super light",icon:lucideReact.SunDim,tooltip:"Super light \u2014 airy, low contrast"},{mode:"light",label:"Light",icon:lucideReact.Sun,tooltip:"Light"},{mode:"dark",label:"Dark",icon:lucideReact.Moon,tooltip:"Dark"},{mode:"superDark",label:"Super dark",icon:lucideReact.MoonStar,tooltip:"Super dark \u2014 OLED, high contrast"}];function Wi({className:e,variant:t="icons"}){let r=nt();if(!r)return null;let{mode:o,setMode:n}=r;return t==="labeled"?y__namespace.createElement("div",{role:"radiogroup","aria-label":"Brightness mode",className:a("inline-flex flex-wrap gap-1 rounded-md border border-border bg-background p-1",e)},Pa.map(({mode:i,label:d,icon:c})=>{let s=o===i;return y__namespace.createElement("button",{key:i,type:"button",role:"radio","aria-checked":s,onClick:()=>n(i),className:a("flex items-center gap-2 rounded px-3 py-1.5 text-sm transition-colors",s?"bg-primary text-primary-foreground":"hover:bg-accent hover:text-accent-foreground")},y__namespace.createElement(c,{className:"h-4 w-4"}),y__namespace.createElement("span",null,d))})):y__namespace.createElement("div",{role:"radiogroup","aria-label":"Brightness mode",className:a("inline-flex items-center gap-0.5 rounded-md border border-border bg-background p-0.5",e)},Pa.map(({mode:i,icon:d,tooltip:c})=>{let s=o===i;return y__namespace.createElement("button",{key:i,type:"button",role:"radio","aria-checked":s,"aria-label":c,title:c,onClick:()=>n(i),className:a("flex h-7 w-7 items-center justify-center rounded transition-colors",s?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-accent hover:text-accent-foreground")},y__namespace.createElement(d,{className:"h-3.5 w-3.5"}))}))}function Yi(){let{isDark:e,setMode:t}=pr();return React.createElement(X,{variant:"ghost",size:"sm",onClick:()=>t(e?"light":"dark"),className:"gap-2","aria-label":e?"Switch to light mode":"Switch to dark mode"},e?React.createElement(React.Fragment,null,React.createElement(lucideReact.Sun,{className:"h-4 w-4"}),React.createElement("span",{className:"hidden sm:inline"},"Light")):React.createElement(React.Fragment,null,React.createElement(lucideReact.Moon,{className:"h-4 w-4"}),React.createElement("span",{className:"hidden sm:inline"},"Dark")))}exports.ALL_MODES=Sa;exports.Accordion=Da;exports.AccordionContent=wr;exports.AccordionItem=Rr;exports.AccordionTrigger=Tr;exports.Alert=Sr;exports.AlertDescription=Cr;exports.AlertTitle=Pr;exports.AppShell=Er;exports.AppShellMain=Lr;exports.AppShellNav=Hr;exports.BUILT_IN_INPUTS=Nt;exports.Badge=Oa;exports.Button=X;exports.Calendar=pt;exports.CalendarDayButton=Fr;exports.Card=Or;exports.CardContent=Vr;exports.CardDescription=Br;exports.CardFooter=Ur;exports.CardHeader=Gr;exports.CardTitle=$r;exports.Checkbox=_r;exports.DatePicker=qa;exports.DateRangePicker=Ya;exports.Dialog=Za;exports.DialogClose=Qa;exports.DialogContent=Wr;exports.DialogDescription=Xr;exports.DialogFooter=qr;exports.DialogHeader=jr;exports.DialogOverlay=Gt;exports.DialogPortal=zr;exports.DialogTitle=Yr;exports.DialogTrigger=Ja;exports.DropdownMenu=on;exports.DropdownMenuCheckboxItem=to;exports.DropdownMenuContent=Qr;exports.DropdownMenuGroup=nn;exports.DropdownMenuItem=eo;exports.DropdownMenuLabel=oo;exports.DropdownMenuPortal=sn;exports.DropdownMenuRadioGroup=cn;exports.DropdownMenuRadioItem=ro;exports.DropdownMenuSeparator=ao;exports.DropdownMenuShortcut=no;exports.DropdownMenuSub=dn;exports.DropdownMenuSubContent=Jr;exports.DropdownMenuSubTrigger=Zr;exports.DropdownMenuTrigger=an;exports.FRAGMENT_HEADER=ma;exports.GRADE_PRE_HYDRATION_SCRIPT=Ai;exports.GradeModeSwitcher=Wi;exports.GradeThemeProvider=Fi;exports.GradeThemeSwitcher=Vi;exports.Input=io;exports.Label=so;exports.LenisProvider=gi;exports.MediaSurface=ue;exports.Popover=Ie;exports.PopoverAnchor=za;exports.PopoverContent=ke;exports.PopoverTrigger=Ae;exports.Progress=co;exports.RadioGroup=lo;exports.RadioGroupItem=po;exports.RivePlayer=na;exports.Row=uo;exports.ScrollArea=fo;exports.ScrollBar=Bt;exports.Select=yn;exports.SelectContent=yo;exports.SelectGroup=vn;exports.SelectItem=bo;exports.SelectLabel=vo;exports.SelectScrollDownButton=Ut;exports.SelectScrollUpButton=Vt;exports.SelectSeparator=xo;exports.SelectTrigger=ho;exports.SelectValue=bn;exports.Separator=Ro;exports.ShaderCompileError=Oe;exports.ShaderPresetPicker=pi;exports.ShaderPresetPreview=St;exports.Sheet=Tn;exports.SheetClose=Sn;exports.SheetContent=wo;exports.SheetDescription=No;exports.SheetFooter=Po;exports.SheetHeader=So;exports.SheetOverlay=Kt;exports.SheetPortal=To;exports.SheetTitle=Co;exports.SheetTrigger=wn;exports.SideMenu=jo;exports.SimpleTabs=Jo;exports.SimpleTabsContent=oa;exports.SimpleTabsList=ta;exports.SimpleTabsPanel=Qo;exports.SimpleTabsRoot=ea;exports.SimpleTabsTrigger=ra;exports.Skeleton=Cn;exports.Slider=ko;exports.Stack=Eo;exports.Switch=Ho;exports.Table=Lo;exports.TableBody=Io;exports.TableCaption=$o;exports.TableCell=Go;exports.TableFooter=Ao;exports.TableHead=Oo;exports.TableHeader=Do;exports.TableRow=Fo;exports.Tabs=Mn;exports.TabsContent=Uo;exports.TabsList=Bo;exports.TabsTrigger=Vo;exports.Textarea=_o;exports.ThemeToggle=Yi;exports.ThreeScene=wt;exports.Tooltip=Wt;exports.TooltipContent=bt;exports.TooltipProvider=zt;exports.TooltipTrigger=jt;exports.TopMenu=qo;exports.TopMenuUser=Yo;exports.TopMenuUserItem=Xo;exports.TopMenuUserSection=Zo;exports.VideoPlayer=aa;exports.appShellMainVariants=Mr;exports.appShellNavVariants=kr;exports.applyThemeToRoot=kt;exports.badgeVariants=Ir;exports.buildFragmentShaderScene=Qt;exports.builtInThemes=fe;exports.buttonVariants=Ue;exports.calmInput=ot;exports.cn=a;exports.defaultPostPreset=Rt;exports.defaultThemeId=$e;exports.deleteUserTheme=dr;exports.duplicateTheme=Ii;exports.energyInput=tr;exports.generateTheme=He;exports.getTheme=Le;exports.listThemes=ir;exports.listUserThemes=Ta;exports.loadUserThemeInput=sr;exports.postPresets=Qe;exports.rowVariants=mo;exports.saveUserTheme=Et;exports.sceneRegistry=Xe;exports.shaderPresetById=Je;exports.shaderPresets=Ze;exports.shellVariants=Nr;exports.stackVariants=Mo;exports.themeToCSSVars=or;exports.useGradeTheme=pr;exports.useMaybeGradeTheme=nt;exports.usePrefersReducedMotion=Ee;//# sourceMappingURL=index.js.map
|
|
431
|
+
`,fr=y__namespace.createContext(null);function Zi({children:e,defaultTheme:t=Be,defaultMode:r="light"}){let[o,n]=y__namespace.useState(t),[i,d]=y__namespace.useState(r),[l,s]=y__namespace.useState(0);y__namespace.useEffect(()=>{try{let f=localStorage.getItem(ur);f&&Ie(f)&&n(f);let u=localStorage.getItem(At);if(u&&Aa.includes(u))d(u);else if(typeof window<"u"){let w=window.matchMedia("(prefers-color-scheme: dark)").matches;d(w?"dark":"light");}}catch{}},[]),y__namespace.useEffect(()=>{let f=Ie(o)??Ie(Be);f&&(Lt(f,i),typeof document<"u"&&document.documentElement.classList.toggle("dark",Ia.has(i)));},[o,i,l]),y__namespace.useEffect(()=>{if(typeof window>"u")return;let f=window.matchMedia("(prefers-color-scheme: dark)"),u=w=>{try{if(localStorage.getItem(At))return}catch{return}d(w.matches?"dark":"light");};return f.addEventListener("change",u),()=>f.removeEventListener("change",u)},[]);let p=y__namespace.useCallback(f=>{n(f);try{localStorage.setItem(ur,f);}catch{}},[]),c=y__namespace.useCallback(f=>{d(f);try{localStorage.setItem(At,f);}catch{}},[]),m=y__namespace.useCallback(f=>{It(f),s(u=>u+1),p(f.id);},[p]),g=y__namespace.useCallback(f=>{f in fe||(mr(f),s(u=>u+1),n(u=>u===f?Be:u));},[]),h=y__namespace.useCallback(()=>{s(f=>f+1);},[]),T=y__namespace.useMemo(()=>{let f=Ie(o)??Ie(Be);return {theme:f,themeId:f.id,mode:i,isDark:Ia.has(i),setThemeId:p,setMode:c,themes:cr(),saveAndActivate:m,deleteTheme:g,refresh:h}},[o,i,l,p,c,m,g,h]);return y__namespace.createElement(fr.Provider,{value:T},e)}function gr(){let e=y__namespace.useContext(fr);if(!e)throw new Error("useGradeTheme must be used inside <GradeThemeProvider>. Wrap your app (typically in app/layout.tsx).");return e}function st(){return y__namespace.useContext(fr)}function rs({className:e}){let t=st();if(!t)return null;let{theme:r,themes:o,setThemeId:n,deleteTheme:i}=t;return y__namespace.createElement(Fe,null,y__namespace.createElement(Oe,{asChild:true},y__namespace.createElement(X,{variant:"ghost",size:"sm",className:a("gap-2",e),"aria-label":"Switch theme"},y__namespace.createElement(lucideReact.Palette,{className:"h-4 w-4"}),y__namespace.createElement("span",{className:"hidden sm:inline"},r.name))),y__namespace.createElement(Ee,{className:"w-80 p-2",align:"end"},y__namespace.createElement("div",{className:"flex items-start justify-between gap-2 px-2 py-1.5 mb-1"},y__namespace.createElement("div",null,y__namespace.createElement("div",{className:"text-xs font-medium text-muted-foreground"},"Theme"),y__namespace.createElement("div",{className:"text-xs text-muted-foreground/80"},"Switch the skin applied site-wide.")),y__namespace.createElement("button",{type:"button",onClick:()=>lr(r),className:"flex items-center gap-1 rounded-md border border-border px-2 py-1 text-[10px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground transition-colors",title:"Download the active theme as a markdown spec \u2014 paste into a fresh LLM prompt"},y__namespace.createElement(lucideReact.Download,{className:"h-3 w-3"}),".md")),y__namespace.createElement("div",{className:"flex flex-col gap-0.5"},o.map(d=>{let l=d.id===r.id,s=d.id in fe,p=d.ramps.primary[500],c=d.ramps.accent[500],m=d.ramps.neutral[500];return y__namespace.createElement("div",{key:d.id,className:a("group flex items-start gap-3 rounded-md px-2 py-2 text-left transition-colors","hover:bg-muted",l&&"bg-muted")},y__namespace.createElement("button",{type:"button",onClick:()=>n(d.id),className:"flex items-start gap-3 flex-1 min-w-0 text-left"},y__namespace.createElement("div",{className:"mt-0.5 flex shrink-0 overflow-hidden rounded-md border border-border"},y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${p})`},"aria-hidden":true}),y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${c})`},"aria-hidden":true}),y__namespace.createElement("div",{className:"h-5 w-2.5",style:{background:`oklch(${m})`},"aria-hidden":true})),y__namespace.createElement("div",{className:"min-w-0 flex-1"},y__namespace.createElement("div",{className:"flex items-center gap-2"},y__namespace.createElement("span",{className:"text-sm font-medium truncate text-foreground"},d.name),d.tagline&&y__namespace.createElement("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground shrink-0"},d.tagline)),d.description&&y__namespace.createElement("div",{className:"text-xs text-muted-foreground line-clamp-2"},d.description))),l&&y__namespace.createElement(lucideReact.Check,{className:"mt-2 h-4 w-4 shrink-0 text-primary"}),!s&&!l&&y__namespace.createElement("button",{type:"button",onClick:g=>{g.stopPropagation(),i(d.id);},className:"mt-1 opacity-0 group-hover:opacity-100 transition-opacity rounded p-1 hover:bg-destructive/10 hover:text-destructive","aria-label":`Delete theme ${d.name}`},y__namespace.createElement(lucideReact.Trash2,{className:"h-3.5 w-3.5"})))}))))}var Fa=[{mode:"superLight",label:"Super light",icon:lucideReact.SunDim,tooltip:"Super light \u2014 airy, low contrast"},{mode:"light",label:"Light",icon:lucideReact.Sun,tooltip:"Light"},{mode:"dark",label:"Dark",icon:lucideReact.Moon,tooltip:"Dark"},{mode:"superDark",label:"Super dark",icon:lucideReact.MoonStar,tooltip:"Super dark \u2014 OLED, high contrast"}];function ss({className:e,variant:t="icons"}){let r=st();if(!r)return null;let{mode:o,setMode:n}=r;return t==="labeled"?y__namespace.createElement("div",{role:"radiogroup","aria-label":"Brightness mode",className:a("inline-flex flex-wrap gap-1 rounded-md border border-border bg-background p-1",e)},Fa.map(({mode:i,label:d,icon:l})=>{let s=o===i;return y__namespace.createElement("button",{key:i,type:"button",role:"radio","aria-checked":s,onClick:()=>n(i),className:a("flex items-center gap-2 rounded px-3 py-1.5 text-sm transition-colors",s?"bg-primary text-primary-foreground":"hover:bg-accent hover:text-accent-foreground")},y__namespace.createElement(l,{className:"h-4 w-4"}),y__namespace.createElement("span",null,d))})):y__namespace.createElement("div",{role:"radiogroup","aria-label":"Brightness mode",className:a("inline-flex items-center gap-0.5 rounded-md border border-border bg-background p-0.5",e)},Fa.map(({mode:i,icon:d,tooltip:l})=>{let s=o===i;return y__namespace.createElement("button",{key:i,type:"button",role:"radio","aria-checked":s,"aria-label":l,title:l,onClick:()=>n(i),className:a("flex h-7 w-7 items-center justify-center rounded transition-colors",s?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-accent hover:text-accent-foreground")},y__namespace.createElement(d,{className:"h-3.5 w-3.5"}))}))}function cs(){let{isDark:e,setMode:t}=gr();return React.createElement(X,{variant:"ghost",size:"sm",onClick:()=>t(e?"light":"dark"),className:"gap-2","aria-label":e?"Switch to light mode":"Switch to dark mode"},e?React.createElement(React.Fragment,null,React.createElement(lucideReact.Sun,{className:"h-4 w-4"}),React.createElement("span",{className:"hidden sm:inline"},"Light")):React.createElement(React.Fragment,null,React.createElement(lucideReact.Moon,{className:"h-4 w-4"}),React.createElement("span",{className:"hidden sm:inline"},"Dark")))}exports.ALL_MODES=Aa;exports.Accordion=Ka;exports.AccordionContent=Nr;exports.AccordionItem=Sr;exports.AccordionTrigger=Cr;exports.Alert=kr;exports.AlertDescription=Er;exports.AlertTitle=Mr;exports.AppShell=Ir;exports.AppShellMain=Fr;exports.AppShellNav=Ar;exports.Avatar=Or;exports.AvatarFallback=$r;exports.AvatarImage=Gr;exports.BUILT_IN_INPUTS=Ht;exports.Badge=qa;exports.Button=X;exports.Calendar=ut;exports.CalendarDayButton=_r;exports.Card=Kr;exports.CardContent=qr;exports.CardDescription=jr;exports.CardFooter=Yr;exports.CardHeader=zr;exports.CardTitle=Wr;exports.Checkbox=Xr;exports.DatePicker=nn;exports.DateRangePicker=sn;exports.Dialog=ln;exports.DialogClose=pn;exports.DialogContent=Qr;exports.DialogDescription=oo;exports.DialogFooter=to;exports.DialogHeader=eo;exports.DialogOverlay=Ut;exports.DialogPortal=Jr;exports.DialogTitle=ro;exports.DialogTrigger=cn;exports.DropdownMenu=gn;exports.DropdownMenuCheckboxItem=lo;exports.DropdownMenuContent=io;exports.DropdownMenuGroup=yn;exports.DropdownMenuItem=so;exports.DropdownMenuLabel=po;exports.DropdownMenuPortal=vn;exports.DropdownMenuRadioGroup=xn;exports.DropdownMenuRadioItem=co;exports.DropdownMenuSeparator=mo;exports.DropdownMenuShortcut=uo;exports.DropdownMenuSub=bn;exports.DropdownMenuSubContent=no;exports.DropdownMenuSubTrigger=ao;exports.DropdownMenuTrigger=hn;exports.FRAGMENT_HEADER=wa;exports.Flex=Po;exports.GRADE_PRE_HYDRATION_SCRIPT=Xi;exports.GradeModeSwitcher=ss;exports.GradeThemeProvider=Zi;exports.GradeThemeSwitcher=rs;exports.Grid=To;exports.Input=fo;exports.Label=go;exports.LenisProvider=Ei;exports.MediaSurface=ue;exports.Popover=Fe;exports.PopoverAnchor=rn;exports.PopoverContent=Ee;exports.PopoverTrigger=Oe;exports.Progress=ho;exports.RadioGroup=yo;exports.RadioGroupItem=vo;exports.RivePlayer=ha;exports.Row=xo;exports.ScrollArea=So;exports.ScrollBar=Kt;exports.Select=Ln;exports.SelectContent=ko;exports.SelectGroup=Dn;exports.SelectItem=Eo;exports.SelectLabel=Mo;exports.SelectScrollDownButton=Wt;exports.SelectScrollUpButton=zt;exports.SelectSeparator=Ho;exports.SelectTrigger=No;exports.SelectValue=In;exports.Separator=Lo;exports.ShaderCompileError=$e;exports.ShaderPresetPicker=Ci;exports.ShaderPresetPreview=kt;exports.Sheet=On;exports.SheetClose=$n;exports.SheetContent=Io;exports.SheetDescription=Go;exports.SheetFooter=Fo;exports.SheetHeader=Ao;exports.SheetOverlay=qt;exports.SheetPortal=Do;exports.SheetTitle=Oo;exports.SheetTrigger=Gn;exports.SideMenu=aa;exports.SimpleTabs=la;exports.SimpleTabsContent=fa;exports.SimpleTabsList=ma;exports.SimpleTabsPanel=ca;exports.SimpleTabsRoot=pa;exports.SimpleTabsTrigger=ua;exports.Skeleton=Bn;exports.Slider=$o;exports.Stack=Bo;exports.Switch=Uo;exports.Table=_o;exports.TableBody=zo;exports.TableCaption=Xo;exports.TableCell=Yo;exports.TableFooter=Wo;exports.TableHead=qo;exports.TableHeader=Ko;exports.TableRow=jo;exports.Tabs=Kn;exports.TabsContent=Qo;exports.TabsList=Zo;exports.TabsTrigger=Jo;exports.Textarea=ea;exports.ThemeToggle=cs;exports.ThreeScene=Nt;exports.Tooltip=Xt;exports.TooltipContent=wt;exports.TooltipProvider=Yt;exports.TooltipTrigger=Zt;exports.TopMenu=na;exports.TopMenuUser=ia;exports.TopMenuUserItem=sa;exports.TopMenuUserSection=da;exports.VideoPlayer=ga;exports.appShellMainVariants=Dr;exports.appShellNavVariants=Lr;exports.applyThemeToRoot=Lt;exports.badgeVariants=Br;exports.buildFragmentShaderScene=or;exports.builtInThemes=fe;exports.buttonVariants=Ke;exports.calmInput=nt;exports.cn=a;exports.defaultPostPreset=St;exports.defaultThemeId=Be;exports.deleteUserTheme=mr;exports.duplicateTheme=Yi;exports.energyInput=nr;exports.flexVariants=wo;exports.generateTheme=De;exports.getTheme=Ie;exports.gridVariants=Ro;exports.listThemes=cr;exports.listUserThemes=Da;exports.loadUserThemeInput=pr;exports.postPresets=tt;exports.rowVariants=bo;exports.saveUserTheme=It;exports.sceneRegistry=Je;exports.shaderPresetById=et;exports.shaderPresets=Qe;exports.shellVariants=Hr;exports.stackVariants=Vo;exports.themeToCSSVars=sr;exports.useGradeTheme=gr;exports.useMaybeGradeTheme=st;exports.usePrefersReducedMotion=Le;//# sourceMappingURL=index.js.map
|
|
432
432
|
//# sourceMappingURL=index.js.map
|