@stacksjs/components 0.2.264 → 0.2.266

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.
Files changed (27) hide show
  1. package/dist/{Combobox-fdkr6cdq.stx → Combobox-06x0nywb.stx} +1 -1
  2. package/dist/{CommandPalette-36mxf05w.stx → CommandPalette-fzfv1pme.stx} +1 -1
  3. package/dist/{Drawer-mth21q5d.stx → Drawer-9jx39xef.stx} +1 -1
  4. package/dist/{Dropdown-vvhemtc0.stx → Dropdown-cmwge7vx.stx} +1 -1
  5. package/dist/{Listbox-q49tnr90.stx → Listbox-0cyysv0f.stx} +1 -1
  6. package/dist/{Popover-et2q44m7.stx → Popover-3g8rgxt1.stx} +1 -1
  7. package/dist/{Portal-1vf14s4x.stx → Portal-yghnqdj8.stx} +1 -1
  8. package/dist/{RadioGroup-eerw9gq7.stx → RadioGroup-82ytfqdb.stx} +1 -1
  9. package/dist/{Sidebar-dbwp6rnk.stx → Sidebar-vzxq5smy.stx} +11 -2
  10. package/dist/{SidebarSpaceSwitcher-az9wqm87.stx → SidebarSpaceSwitcher-v5e472j0.stx} +6 -1
  11. package/dist/{SidebarSpaces-h1564zm6.stx → SidebarSpaces-6v3p9htw.stx} +6 -1
  12. package/dist/{Teleport-tsx4bt4n.stx → Teleport-3gnjtsjf.stx} +1 -1
  13. package/dist/index.js +1 -1
  14. package/package.json +3 -3
  15. package/src/ui/combobox/Combobox.stx +1 -1
  16. package/src/ui/command-palette/CommandPalette.stx +1 -1
  17. package/src/ui/drawer/Drawer.stx +1 -1
  18. package/src/ui/dropdown/Dropdown.stx +1 -1
  19. package/src/ui/heatmap/Heatmap.stx +1 -1
  20. package/src/ui/listbox/Listbox.stx +1 -1
  21. package/src/ui/popover/Popover.stx +1 -1
  22. package/src/ui/portal/Portal.stx +1 -1
  23. package/src/ui/radio-group/RadioGroup.stx +1 -1
  24. package/src/ui/sidebar/Sidebar.stx +11 -2
  25. package/src/ui/sidebar/SidebarSpaceSwitcher.stx +6 -1
  26. package/src/ui/sidebar/SidebarSpaces.stx +6 -1
  27. package/src/ui/teleport/Teleport.stx +1 -1
@@ -5,7 +5,7 @@ export const as = $props.as || 'div'
5
5
 
6
6
  const baseClasses = 'relative'
7
7
  export const comboboxClasses = `${baseClasses} ${className}`.trim()
8
- export const comboboxInstanceId = `stx-cb-${Math.random().toString(36).slice(2, 11)}`
8
+ export const comboboxInstanceId = $uid
9
9
  </script>
10
10
 
11
11
  <script client>
@@ -5,7 +5,7 @@ export const className = $props.className || ''
5
5
 
6
6
  const baseClasses = 'fixed inset-0 z-50 overflow-y-auto p-4 sm:p-6 md:p-20'
7
7
  export const paletteClasses = `${baseClasses} ${className}`.trim()
8
- export const paletteInstanceId = `stx-cmd-${Math.random().toString(36).slice(2, 11)}`
8
+ export const paletteInstanceId = $uid
9
9
  </script>
10
10
 
11
11
  <script client>
@@ -60,7 +60,7 @@ export const closeButtonClasses = `absolute top-0 ${closeButtonPosition[position
60
60
  * focused the first, which is hidden, so focus went nowhere and the retry
61
61
  * spent its ten frames failing. Same idiom as Dropdown and Popover.
62
62
  */
63
- export const drawerInstanceId = `stx-drawer-${Math.random().toString(36).slice(2, 11)}`
63
+ export const drawerInstanceId = $uid
64
64
  </script>
65
65
 
66
66
  <script client>
@@ -4,7 +4,7 @@ export const as = $props.as || 'div'
4
4
 
5
5
  const baseClasses = 'relative inline-block text-left'
6
6
  export const dropdownClasses = `${baseClasses} ${className}`.trim()
7
- export const dropdownInstanceId = `stx-dd-${Math.random().toString(36).slice(2, 11)}`
7
+ export const dropdownInstanceId = $uid
8
8
  </script>
9
9
 
10
10
  <script client>
@@ -6,7 +6,7 @@ export const as = $props.as || 'div'
6
6
 
7
7
  const baseClasses = 'relative'
8
8
  export const listboxClasses = `${baseClasses} ${className}`.trim()
9
- export const listboxInstanceId = `stx-lb-${Math.random().toString(36).slice(2, 11)}`
9
+ export const listboxInstanceId = $uid
10
10
  </script>
11
11
 
12
12
  <script client>
@@ -4,7 +4,7 @@ export const as = $props.as || 'div'
4
4
 
5
5
  const baseClasses = 'relative'
6
6
  export const popoverClasses = `${baseClasses} ${className}`.trim()
7
- export const popoverInstanceId = `stx-pop-${Math.random().toString(36).slice(2, 11)}`
7
+ export const popoverInstanceId = $uid
8
8
  </script>
9
9
 
10
10
  <script client>
@@ -2,7 +2,7 @@
2
2
  export const target = $props.target || 'body'
3
3
  export const disabled = $props.disabled || false
4
4
 
5
- export const portalId = `portal-content-${Math.random().toString(36).slice(2, 11)}`
5
+ export const portalId = $uid
6
6
  </script>
7
7
 
8
8
  <script client>
@@ -29,7 +29,7 @@ export const optionDisabledClasses = `${optionBaseClasses} opacity-50 cursor-not
29
29
 
30
30
  const baseClasses = 'w-full'
31
31
  export const groupClasses = `${baseClasses} ${className}`.trim()
32
- export const radioGroupInstanceId = `stx-rg-${Math.random().toString(36).slice(2, 11)}`
32
+ export const radioGroupInstanceId = $uid
33
33
  </script>
34
34
 
35
35
  <script client>
@@ -1,4 +1,13 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), the helpers it
5
+ // imports hold no module state, and nothing here reads the clock, the request
6
+ // or the route -- selecting the active row from the URL is client-side, in the
7
+ // <script client> block below. Because a hit serves this component's whole
8
+ // SUBTREE from one entry, that last point covers the rows too: if any of them
9
+ // ever resolved the active item on the server, this could not be cached.
10
+ // Adding a server-side read of anything else means dropping `cache` again.
2
11
  import { normalizeSpaces, spaceIndexOf } from './spaces'
3
12
  import { resolveSidebarTheme } from './themes'
4
13
 
@@ -47,7 +56,7 @@ export const followSystemAppearance = $props.followSystemAppearance ?? true
47
56
 
48
57
  // Unique id so the client controller can find this pane even with several
49
58
  // sidebars on the page.
50
- export const sidebarUid = $props.id || `stx-sidebar-${Math.random().toString(36).slice(2, 8)}`
59
+ export const sidebarUid = $props.id || $uid
51
60
 
52
61
  const themeStyle = resolveSidebarTheme(theme)
53
62
  export const selectionModel = themeStyle.selection
@@ -1,4 +1,9 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), and nothing here
5
+ // reads the clock, the request or the route. Adding a server-side read of
6
+ // anything else means dropping `cache` again.
2
7
  // The indicator along the bottom of an Arc-style sidebar: one dot per space,
3
8
  // plus an optional trailing "+".
4
9
  //
@@ -1,4 +1,9 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), and nothing here
5
+ // reads the clock, the request or the route. Adding a server-side read of
6
+ // anything else means dropping `cache` again.
2
7
  import { normalizeSpaces, spaceIndexOf } from './spaces'
3
8
 
4
9
  // Arc's swipeable spaces.
@@ -3,7 +3,7 @@ export const to = $props.to || 'body'
3
3
  export const disabled = $props.disabled || false
4
4
  export const defer = $props.defer || false
5
5
 
6
- export const teleportId = `teleport-${Math.random().toString(36).slice(2, 11)}`
6
+ export const teleportId = $uid
7
7
  </script>
8
8
 
9
9
  <script client>
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ var be={__stx:!0,src:"./components/CodeBlock.stx"};var ge={__stx:!0,src:"./compo
8
8
  Documentation: ${s.docsUrl}`;else if(e)a+=`
9
9
  Documentation: ${We}/${e.toLowerCase()}`;return a}toJSON(){return{name:this.name,message:this.message,component:this.component,context:this.context,stack:this.stack}}}var M={invalidProp(e,t,s,a){return new N(e,`Invalid prop value for "${t}"`,{prop:t,received:s,expected:a,details:Array.isArray(a)?`The "${t}" prop must be one of the allowed values`:`The "${t}" prop does not match the expected type`})},requiredProp(e,t){return new N(e,`Required prop "${t}" is missing`,{prop:t,details:`The "${t}" prop is required for ${e} to function correctly`})},invalidType(e,t,s,a){return new N(e,`Invalid type for prop "${t}"`,{prop:t,received:typeof s,expected:a,details:`Expected "${t}" to be of type ${a}, but received ${typeof s}`})},componentNotFound(e){return new N("ComponentLoader",`Component "${e}" not found`,{component:e,details:"Make sure the component is properly imported and registered"})},invalidChildren(e,t,s){return new N(e,"Invalid children",{received:typeof t,expected:s,details:`${e} expects ${s} as children`})},stateUpdate(e,t,s){return new N(e,`Failed to update state "${t}"`,{details:s.message})},eventHandler(e,t,s){return new N(e,`Error in "${t}" event handler`,{details:s.message})},render(e,t){return new N(e,"Failed to render component",{details:t.message})}},H=null;function pr(e){H=e}function ur(){H=null}function V(e,t={}){let{throwError:s=!0,logError:a=!0}=t;if(a&&B.env.NODE_ENV!=="production"){if(console.error("Component Error:",e),e instanceof N)console.group("Error Details"),console.log("Component:",e.component),console.log("Context:",e.context),console.groupEnd()}if(H)try{H(e)}catch(o){console.error("Error in error handler:",o)}if(s)throw e}function ne(e,t,s){return(...a)=>{try{let o=e(...a);if(o instanceof Promise)return o.catch((i)=>{let r=M.eventHandler(t,s,i);throw V(r,{throwError:!1}),r});return o}catch(o){let i=M.eventHandler(t,s,o);throw V(i,{throwError:!1}),i}}}function He(e,t){if(!e)throw t}function Ve(e,t,s={}){if(B.env.NODE_ENV==="production")return;let a=N.formatMessage(e,t,s);console.warn(`\u26A0\uFE0F ${a}`)}function hr(e,t){if(B.env.NODE_ENV==="production")return;He(e,t)}function fr(e){let t=typeof B<"u"&&B.env.DEBUG==="true";return{log(...s){if(t)console.log(`[${e}]`,...s)},warn(s,a){Ve(e,s,a)},error(s,a){let o=new N(e,s,a);V(o,{throwError:!1})}}}function br(e,t,s){try{return t()}catch(a){let o=M.render(e,a);return V(o,{throwError:!1}),s}}import Fe from"process";var F=Fe.env.NODE_ENV!=="production";class ${validate;message;isRequired;constructor(e,t,s=!1){this.validate=e;this.message=t;this.isRequired=s}get required(){return new $(this.validate,this.message,!0)}}var l={string:new $((e)=>typeof e==="string",(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`string\`.`),number:new $((e)=>typeof e==="number"&&!Number.isNaN(e),(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`number\`.`),boolean:new $((e)=>typeof e==="boolean",(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`boolean\`.`),func:new $((e)=>typeof e==="function",(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`function\`.`),object:new $((e)=>typeof e==="object"&&e!==null&&!Array.isArray(e),(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`object\`.`),array:new $((e)=>Array.isArray(e),(e,t,s)=>`Invalid prop \`${t}\` of type \`${typeof e}\` supplied to \`${s}\`, expected \`array\`.`),any:new $(()=>!0,()=>""),oneOf(e){return new $((t)=>e.includes(t),(t,s,a)=>`Invalid prop \`${s}\` of value \`${t}\` supplied to \`${a}\`, expected one of [${e.map((o)=>JSON.stringify(o)).join(", ")}].`)},oneOfType(e){return new $((t,s,a)=>e.some((o)=>o.validate(t,s,a)),(t,s,a)=>`Invalid prop \`${s}\` supplied to \`${a}\`, expected one of the specified types.`)},arrayOf(e){return new $((t,s,a)=>{if(!Array.isArray(t))return!1;return t.every((o,i)=>e.validate(o,`${s}[${i}]`,a))},(t,s,a)=>`Invalid prop \`${s}\` supplied to \`${a}\`, expected array of specified type.`)},shape(e){return new $((t,s,a)=>{if(typeof t!=="object"||t===null||Array.isArray(t))return!1;for(let[o,i]of Object.entries(e)){if(i.isRequired&&!(o in t))return!1;if(o in t&&!i.validate(t[o],`${s}.${o}`,a))return!1}return!0},(t,s,a)=>`Invalid prop \`${s}\` supplied to \`${a}\`, expected object matching specified shape.`)},instanceOf(e){return new $((t)=>t instanceof e,(t,s,a)=>`Invalid prop \`${s}\` supplied to \`${a}\`, expected instance of \`${e.name}\`.`)},custom(e,t){return new $(e,typeof t==="string"?()=>t:t)},min(e){return new $((t)=>typeof t==="number"&&t>=e,(t,s,a)=>`Invalid prop \`${s}\` of value \`${t}\` supplied to \`${a}\`, expected value >= ${e}.`)},max(e){return new $((t)=>typeof t==="number"&&t<=e,(t,s,a)=>`Invalid prop \`${s}\` of value \`${t}\` supplied to \`${a}\`, expected value <= ${e}.`)},range(e,t){return new $((s)=>typeof s==="number"&&s>=e&&s<=t,(s,a,o)=>`Invalid prop \`${a}\` of value \`${s}\` supplied to \`${o}\`, expected value between ${e} and ${t}.`)},pattern(e){return new $((t)=>typeof t==="string"&&e.test(t),(t,s,a)=>`Invalid prop \`${s}\` of value \`${t}\` supplied to \`${a}\`, expected value matching pattern ${e}.`)},email:new $((e)=>typeof e==="string"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e),(e,t,s)=>`Invalid prop \`${t}\` of value \`${e}\` supplied to \`${s}\`, expected valid email address.`),url:new $((e)=>{if(typeof e!=="string")return!1;try{let t=new URL(e);return!0}catch{return!1}},(e,t,s)=>`Invalid prop \`${t}\` of value \`${e}\` supplied to \`${s}\`, expected valid URL.`)};function _e(e,t,s,a={}){let{throwOnError:o=!1,logWarnings:i=F}=a,r=[];if(!F)return{valid:!0,errors:[]};for(let[n,c]of Object.entries(s)){let d=t[n],h=d===void 0;if(c.isRequired&&h){let p=`Required prop \`${n}\` was not specified in \`${e}\`.`;r.push(p);continue}if(h)continue;if(!c.validate(d,n,e)){let p=c.message(d,n,e);r.push(p)}}if(r.length>0){if(i)console.group(`\u26A0\uFE0F Prop validation failed for \`${e}\``),r.forEach((n)=>console.warn(n)),console.groupEnd();if(o)throw Error(`Prop validation failed for \`${e}\`:
10
10
  ${r.join(`
11
- `)}`)}return{valid:r.length===0,errors:r}}function D(e,t,s){return(a)=>_e(e,a,t,s)}function xr(e,t,s="value"){if(!F)return;if(!t.validate(e,s,"assertion"))throw Error(t.message(e,s,"assertion"))}function vr(e,t,s="value"){if(!F)return;if(!t.validate(e,s,"warning"))console.warn(t.message(e,s,"warning"))}var Ge="./Button-wrwmnfpf.stx";var Ue={variant:l.oneOf(["primary","secondary","outline","ghost","danger"]),size:l.oneOf(["xs","sm","md","lg","xl"]),disabled:l.boolean,loading:l.boolean,type:l.oneOf(["button","submit","reset"]),fullWidth:l.boolean,leftIcon:l.string,rightIcon:l.string,className:l.string,onClick:l.func},kr=D("Button",Ue);function Sr(e){return ne(e,"Button","onClick")}function Tr(e){if(e&&!["primary","secondary","outline","ghost","danger"].includes(e))throw M.invalidProp("Button","variant",e,["primary","secondary","outline","ghost","danger"])}function Nr(e){if(e&&!["xs","sm","md","lg","xl"].includes(e))throw M.invalidProp("Button","size",e,["xs","sm","md","lg","xl"])}var Je="./Calendar-gjjhhfnt.stx";var Ze="./Card-473a02fy.stx";var et="./Checkbox-2s2a7n4h.stx";var st="./Combobox-fdkr6cdq.stx";var ot="./ComboboxButton-g76stp1e.stx";var rt="./ComboboxInput-z1293bbh.stx";var lt="./ComboboxOption-6yh7xk7q.stx";var dt="./ComboboxOptions-sq5360ae.stx";var ut="./CommandPalette-36mxf05w.stx";var ft="./CommandPaletteItem-chdw0070.stx";var gt="./Dialog-y5rz2vrq.stx";var xt="./DialogBackdrop-rxax3sec.stx";var wt="./DialogDescription-gth4c2kx.stx";var Ct="./DialogPanel-44d8jeqy.stx";var kt="./DialogTitle-x0r6k8x9.stx";var Tt="./Drawer-mth21q5d.stx";var It="./Dropdown-vvhemtc0.stx";var Dt="./DropdownButton-wcz67dxy.stx";var Lt="./DropdownItem-d8ht2bp5.stx";var Et="./DropdownItems-1sxnd5qn.stx";var Mt="./Form-vbag14t1.stx";var Rt={action:l.string,method:l.oneOf(["GET","POST","PUT","DELETE","PATCH"]),validationSchema:l.object,initialValues:l.object,validateOnChange:l.boolean,validateOnBlur:l.boolean,onSubmit:l.func,onError:l.func,className:l.string},Nn=D("Form",Rt);var Bt="./Image-4ezne2xj.stx";var Wt="./EmailInput-vak3kkmk.stx";var Vt="./NumberInput-j9p5bm5y.stx";var _t="./PasswordInput-4qykq1dz.stx";var Gt="./SearchInput-pdx7agn0.stx";var Yt="./TextInput-cefyyprt.stx";var Jt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string},Xt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,leftIcon:l.string,rightIcon:l.string,clearable:l.boolean,maxLength:l.number,showCount:l.boolean},Zt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,min:l.number,max:l.number,step:l.number,showControls:l.boolean},Qt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,showStrength:l.boolean},es={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,onSearch:l.func,loading:l.boolean},Bn=D("TextInput",Xt),jn=D("EmailInput",Jt),Wn=D("PasswordInput",Qt),Hn=D("NumberInput",Zt),Vn=D("SearchInput",es);var ss="./Listbox-q49tnr90.stx";var os="./ListboxButton-keb8gm0q.stx";var rs="./ListboxLabel-7mymt1b8.stx";var ls="./ListboxOption-4j070101.stx";var ds="./ListboxOptions-ejkatcfg.stx";var us="./FilterChip-h896vrxm.stx";var fs="./FilterChips-7pnzycfd.stx";var gs="./ListRow-v45ymhcn.stx";var xs="./NavBar-wcb6f2d3.stx";var ws="./SectionCard-r73hvvbc.stx";var Cs="./TabBar-8143650x.stx";var ks="./TabBarItem-hd2r2ayy.stx";var Ts="./Navigator-smpa7my4.stx";var Is="./Notification-03vfh3k6.stx";var Ds="./Pagination-jbcjrfcs.stx";var Ls="./Checkout-22wh3s22.stx";var Es="./DefaultPaymentMethod-6qrem3sg.stx";var Ms="./PaymentMethods-2xy66bwk.stx";var qs="./SubscriptionCheckout-7fdkwf04.stx";var js="./Popover-et2q44m7.stx";var Hs="./PopoverButton-mffzc9pr.stx";var Fs="./PopoverPanel-054yh38h.stx";var Ks="./Portal-1vf14s4x.stx";var Us="./Progress-4h7dytq5.stx";var Js="./Radio-ccm07b2m.stx";var Zs="./RadioGroup-eerw9gq7.stx";var ea="./RadioGroupDescription-z34r9avr.stx";var sa="./RadioGroupLabel-7mymt1b8.stx";var oa="./RadioGroupOption-7pq7rw84.stx";var ra="./Select-zt72gg1e.stx";var la="./Sidebar-dbwp6rnk.stx";var da="./SidebarFooter-s7skj92y.stx";var ua="./SidebarHeader-3dppxxjh.stx";var fa="./SidebarItem-5v8atp7p.stx";var ga="./SidebarPinned-48kyk193.stx";var xa="./SidebarSection-sqz49ary.stx";var wa="./SidebarSpace-nmbvgrky.stx";var Ca="./SidebarSpaces-h1564zm6.stx";var ka="./SidebarSpaceSwitcher-az9wqm87.stx";var _={blue:"#0088ff",red:"#ff383c",pink:"#ff2d55",orange:"#ff8d28",yellow:"#ffcc00",green:"#34c759",teal:"#00c3d0",cyan:"#00c0e8",indigo:"#6155f5",purple:"#cb30e0",brown:"#ac7f5e",gray:"#8e8e93"},O={pane:["bg-[#f2f2f4]/90 dark:bg-[#1c1c1e]/88","backdrop-blur-[50px] backdrop-saturate-[180%]","text-black dark:text-white","select-none"].join(" "),selection:"accent",layers:{shimmerRim:!0},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-[10px] pb-[10px]",sectionHeader:["group/section flex w-full items-center","pl-[8px] pr-[6px] pt-[16px] pb-[5px]","text-[11px] font-semibold leading-[13px]","text-[#3c3c43]/60 dark:text-[#ebebf5]/60"].join(" "),sectionChevron:["i-f7-chevron-down h-[11px] w-[11px] ml-auto","text-[#3c3c43]/45 dark:text-[#ebebf5]/45","opacity-0 group-hover/section:opacity-100 transition-opacity duration-150","transition-transform duration-200"].join(" "),sectionGroup:"flex flex-col",item:{base:["flex w-full items-center","h-[32px] rounded-[8px] pl-[4px] pr-[8px]","text-[13px] leading-[16px] font-normal","text-black dark:text-white","transition-colors duration-150 ease-out","cursor-default"].join(" "),hover:"hover:bg-black/4 dark:hover:bg-white/6",active:"",pressed:"active:bg-black/10 dark:active:bg-white/18",disabled:"opacity-40 pointer-events-none",disclosure:"flex h-[16px] w-[18px] shrink-0 items-center justify-center",chevron:["i-f7-chevron-right h-[11px] w-[11px]","text-[#3c3c43]/55 dark:text-[#ebebf5]/55","transition-transform duration-200 ease-out"].join(" "),iconSlot:"flex h-[20px] w-[22px] shrink-0 items-center justify-center mr-[7px]",icon:"h-[17px] w-[17px]",image:"h-[20px] w-[20px] rounded-[4px] object-cover shadow-sm",label:"flex-1 truncate text-left",count:["ml-[8px] shrink-0 tabular-nums","text-[13px] leading-[16px]","text-[#3c3c43]/60 dark:text-[#ebebf5]/60"].join(" "),indentPerLevel:16}},Sa={selection:"classes",pane:"bg-[#f4f4f3] dark:bg-neutral-950 text-zinc-950 dark:text-white select-none",layers:{},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-5 py-5",sectionHeader:"group/section flex w-full items-center gap-2.5 px-4 pb-2 pt-5 text-[13px] font-semibold uppercase tracking-[0.12em] text-zinc-400 dark:text-zinc-500",sectionChevron:"i-f7-chevron-down h-3 w-3 ml-auto opacity-0 group-hover/section:opacity-100 transition-opacity duration-150 transition-transform duration-200",sectionGroup:"flex flex-col space-y-1",item:{base:"flex w-full items-center gap-3 rounded-[16px] px-3.5 py-2 text-[14px] leading-tight transition-colors duration-150",hover:"hover:bg-[#ececea] hover:text-zinc-950 dark:hover:bg-white/10",active:"bg-[#e7e7e5] text-zinc-950 dark:bg-white/12 dark:text-white",pressed:"active:bg-[#e2e2e0] dark:active:bg-white/15",disabled:"opacity-50 pointer-events-none",disclosure:"flex h-4 w-4 shrink-0 items-center justify-center",chevron:"i-f7-chevron-right h-3 w-3 opacity-50 transition-transform duration-200",iconSlot:"flex h-5 w-5 shrink-0 items-center justify-center",icon:"h-[18px] w-[18px] text-zinc-500 dark:text-zinc-500",image:"h-5 w-5 rounded object-cover",label:"flex-1 truncate text-left text-zinc-700 dark:text-zinc-300",count:"ml-auto grid h-5 min-w-5 place-items-center rounded-full bg-white/70 px-1.5 text-[11px] font-medium text-zinc-500 shadow-sm dark:bg-white/10 dark:text-zinc-400",indentPerLevel:12}},Ta={selection:"classes",pane:"bg-[#f3f3f1]/48 dark:bg-neutral-950/32 backdrop-blur-3xl backdrop-saturate-150 text-zinc-950 dark:text-white select-none",layers:{tint:"bg-[linear-gradient(112deg,rgba(255,255,255,0.20)_0%,rgba(255,255,255,0.04)_45%,rgba(226,226,222,0.16)_100%)] dark:bg-[linear-gradient(112deg,rgba(255,255,255,0.08)_0%,rgba(255,255,255,0.02)_46%,rgba(255,255,255,0.06)_100%)]"},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-5 py-2",sectionHeader:"group/section flex w-full items-center gap-2.5 px-3 pb-1.5 pt-3 rounded-[14px] text-[12px] font-semibold uppercase tracking-[0.10em] text-zinc-500/80 dark:text-zinc-400/80",sectionChevron:"i-f7-chevron-down h-3 w-3 ml-auto opacity-0 group-hover/section:opacity-100 transition-opacity duration-150 transition-transform duration-200",sectionGroup:"flex flex-col space-y-1",item:{base:"flex w-full items-center gap-3 rounded-[14px] px-3 py-1.5 text-[13.5px] leading-tight transition-colors duration-150",hover:"hover:bg-white/38 hover:text-zinc-950 dark:hover:bg-white/10",active:"bg-[#e8e8e6]/90 text-zinc-950 dark:bg-white/12 dark:text-white",pressed:"active:bg-white/50 dark:active:bg-white/15",disabled:"opacity-50 pointer-events-none",disclosure:"flex h-4 w-4 shrink-0 items-center justify-center",chevron:"i-f7-chevron-right h-3 w-3 opacity-50 transition-transform duration-200",iconSlot:"flex h-5 w-5 shrink-0 items-center justify-center",icon:"h-[18px] w-[18px] text-zinc-600 dark:text-zinc-400",image:"h-5 w-5 rounded object-cover",label:"flex-1 truncate text-left text-zinc-700 dark:text-zinc-300",count:"ml-auto grid h-5 min-w-5 place-items-center rounded-full bg-white/72 px-1.5 text-[11px] font-medium text-zinc-500 shadow-sm dark:bg-white/10 dark:text-zinc-400",indentPerLevel:12}},Na={selection:"classes",pane:["bg-[#f7f5f1]/92 dark:bg-[#1a1a1c]/92","backdrop-blur-[40px] backdrop-saturate-[160%]","text-[#2c2a28] dark:text-[#ededf0]","select-none"].join(" "),layers:{tint:["bg-[linear-gradient(180deg,var(--stx-sidebar-tint,rgba(255,251,242,0.55))_0%,rgba(255,255,255,0)_38%)]","dark:bg-[linear-gradient(180deg,var(--stx-sidebar-tint,rgba(255,255,255,0.05))_0%,rgba(255,255,255,0)_42%)]"].join(" ")},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-[16px] pb-[8px]",sectionHeader:["group/section flex w-full items-center","px-[8px] pt-[14px] pb-[4px]","text-[11px] font-medium leading-[13px]","opacity-55"].join(" "),sectionChevron:["i-f7-chevron-down h-[10px] w-[10px] ml-auto","opacity-0 group-hover/section:opacity-100 transition-opacity duration-150","transition-transform duration-200"].join(" "),sectionGroup:"flex flex-col space-y-[2px]",item:{base:["flex w-full items-center","h-[30px] rounded-[8px] pl-[6px] pr-[8px]","text-[13px] leading-[16px] font-normal","text-current","transition-[background-color,box-shadow,color] duration-150 ease-out","cursor-default"].join(" "),hover:"hover:bg-white/55 dark:hover:bg-white/8",active:["bg-white dark:bg-white/14","font-medium","shadow-[0_1px_2px_rgba(0,0,0,0.08)] dark:shadow-[0_1px_2px_rgba(0,0,0,0.35)]","ring-1 ring-black/5 dark:ring-white/8"].join(" "),pressed:"active:bg-white/80 dark:active:bg-white/18",disabled:"opacity-40 pointer-events-none",disclosure:"flex h-[16px] w-[16px] shrink-0 items-center justify-center",chevron:["i-f7-chevron-right h-[10px] w-[10px] opacity-45","transition-transform duration-200 ease-out"].join(" "),iconSlot:"flex h-[18px] w-[18px] shrink-0 items-center justify-center mr-[8px]",icon:"h-[16px] w-[16px]",image:"h-[18px] w-[18px] rounded-[5px] object-cover shadow-sm",label:"flex-1 truncate text-left",count:["ml-[8px] shrink-0 tabular-nums","text-[12px] leading-[16px] opacity-45"].join(" "),indentPerLevel:14}},Ia={...O,pane:"bg-stone-100 dark:bg-neutral-900 text-black dark:text-white select-none",layers:{}},Aa={...O,pane:"bg-transparent text-black dark:text-white select-none",layers:{}},Da={...O,pane:"bg-white/50 dark:bg-black/40 backdrop-blur-3xl backdrop-saturate-200 text-black dark:text-white select-none",layers:{}},le={macos:O,tahoe:O,"macos-tahoe":O,"macos-latest":O,arc:Na,workspace:Sa,desktop:Ta,solid:Ia,transparent:Aa,vibrancy:Da};function $c(e){return le[e||"macos"]||le.macos}function kc(e){if(!e)return;return _[e]||e}var Pa=_.gray;function z(e,t,s){return`color-mix(in oklab, ${e} ${t}%, ${s})`}function ce(e){return{light:{from:z(e,35,"#ffffff"),to:z(e,12.5,"#ffffff"),ink:z(e,22,"#17171b"),accent:z(e,88,"#2a2a30")},dark:{from:z(e,27,"#101014"),to:z(e,10,"#08080b"),ink:z(e,12,"#f4f4f7"),accent:z(e,74,"#ffffff")}}}function Nc(e,t){return`linear-gradient(180deg, ${e} 0%, ${t} 100%)`}function La(e){if(!e)return ce(Pa);if(typeof e!=="string")return e;return ce(_[e]||e)}function za(e){return[`--stx-space-light-from: ${e.light.from}`,`--stx-space-light-to: ${e.light.to}`,`--stx-space-light-ink: ${e.light.ink}`,`--stx-space-light-accent: ${e.light.accent}`,`--stx-space-dark-from: ${e.dark.from}`,`--stx-space-dark-to: ${e.dark.to}`,`--stx-space-dark-ink: ${e.dark.ink}`,`--stx-space-dark-accent: ${e.dark.accent}`].join("; ")}function de(e,t,s,a){if(!e||!e.label)return null;return{id:e.id||`${t}-${s}`,label:e.label,icon:e.icon||a}}function Ea(e){let t=La(e.tint);return{id:e.id,label:e.label||"",icon:e.icon||"",pinned:e.pinned||[],sections:e.sections||[],action:de(e.action,e.id,"action","i-f7-plus"),clear:de(e.clear,e.id,"clear","i-f7-arrow-down"),tint:t,style:za(t),deferred:e.deferred===!0,showTitle:e.showTitle??!0}}function Ic(e){return(e||[]).map(Ea)}function Ac(e,t){if(!t)return 0;let s=e.findIndex((a)=>a.id===t);return s===-1?0:s}function Dc(e){return e.map((t)=>t.tint)}var Ma="./Skeleton-wtwb97xd.stx";var qa="./Spinner-ypya5tt2.stx";var ja="./Stepper-rgbk76hd.stx";var Ha="./StepperStep-3ahq4d9m.stx";class K{storage;namespace;watchers=new Map;encryptionKey="stx-storage-key";constructor(e="local",t=""){if(this.storage=e==="local"?globalThis.localStorage:globalThis.sessionStorage,this.namespace=t,typeof window<"u")window.addEventListener("storage",this.handleStorageEvent.bind(this))}handleStorageEvent(e){if(!e.key)return;let t=this.namespace&&e.key.startsWith(`${this.namespace}:`)?e.key.slice(this.namespace.length+1):e.key,s=this.watchers.get(t);if(s){let a=e.oldValue?JSON.parse(e.oldValue).value:null,o=e.newValue?JSON.parse(e.newValue).value:null;s.forEach((i)=>i(o,a,t))}}encrypt(e){let t="";for(let s=0;s<e.length;s++)t+=String.fromCharCode(e.charCodeAt(s)^this.encryptionKey.charCodeAt(s%this.encryptionKey.length));return btoa(t)}decrypt(e){try{let t=atob(e),s="";for(let a=0;a<t.length;a++)s+=String.fromCharCode(t.charCodeAt(a)^this.encryptionKey.charCodeAt(a%this.encryptionKey.length));return s}catch{return e}}compress(e){if(e.length<100)return e;let t={},s=256,a=[],o="";for(let i=0;i<e.length;i++){let r=e.charAt(i),n=o+r;if(t[n]!==void 0)o=n;else a.push(o.length>1?t[o]:o.charCodeAt(0)),t[n]=s++,o=r}if(o!=="")a.push(o.length>1?t[o]:o.charCodeAt(0));return JSON.stringify(a)}decompress(e){try{let t=JSON.parse(e);if(!Array.isArray(t))return e;let s={},a=256,o=String.fromCharCode(t[0]),i=o;for(let r=1;r<t.length;r++){let n=t[r],c;if(s[n]!==void 0)c=s[n];else if(n===a)c=o+o.charAt(0);else return e;i+=c,s[a++]=o+c.charAt(0),o=c}return i}catch{return e}}getKey(e){return this.namespace?`${this.namespace}:${e}`:e}set(e,t,s){let a=this.getKey(e),o=this.get(e),i={value:t,timestamp:Date.now(),expire:s?.expire,encrypted:s?.encrypt||!1,compressed:s?.compress||!1};try{let r=JSON.stringify(i);if(s?.compress)r=this.compress(r);if(s?.encrypt)r=this.encrypt(r);this.storage.setItem(a,r),this.notifyWatchers(e,t,o)}catch(r){console.error("Storage set error:",r)}}get(e){let t=this.getKey(e);try{let s=this.storage.getItem(t);if(!s)return null;if(s.match(/^[A-Z0-9+/]+=*$/i))try{s=this.decrypt(s)}catch{}if(s.startsWith("["))try{s=this.decompress(s)}catch{}let a=JSON.parse(s);if(a.expire&&Date.now()-a.timestamp>a.expire)return this.remove(e),null;return a.value}catch(s){return console.error("Storage get error:",s),null}}watch(e,t){if(!this.watchers.has(e))this.watchers.set(e,new Set);return this.watchers.get(e).add(t),()=>{let s=this.watchers.get(e);if(s){if(s.delete(t),s.size===0)this.watchers.delete(e)}}}notifyWatchers(e,t,s){let a=this.watchers.get(e);if(a)a.forEach((o)=>o(t,s,e))}remove(e){let t=this.getKey(e),s=this.get(e);this.storage.removeItem(t),this.notifyWatchers(e,null,s)}clear(){if(this.namespace)this.keys().forEach((t)=>this.remove(t));else this.storage.clear()}has(e){return this.get(e)!==null}keys(){let e=Object.keys(this.storage);if(this.namespace){let t=`${this.namespace}:`;return e.filter((s)=>s.startsWith(t)).map((s)=>s.slice(t.length))}return e}size(){return this.keys().length}getQuota(){if("storage"in navigator&&"estimate"in navigator.storage)return null;try{let e=0;for(let s=0;s<this.storage.length;s++){let a=this.storage.key(s);if(a){let o=this.storage.getItem(a)||"";e+=a.length+o.length}}let t=5242880;return{usage:e*2,quota:t,percentage:e*2/t*100}}catch{return null}}setMany(e,t){Object.entries(e).forEach(([s,a])=>{this.set(s,a,t)})}getMany(e){let t={};return e.forEach((s)=>{t[s]=this.get(s)}),t}removeMany(e){e.forEach((t)=>this.remove(t))}}var sd={local:new K("local"),session:new K("session")};function ad(e="local",t){return new K(e,t)}var Fa="./Switch-hdta55a8.stx";var Ka="./Table-0mc3fdek.stx";var Ua="./TableBody-drxyz5jh.stx";var Ja="./TableCell-8swtcq8s.stx";var Za="./TableHead-e9xvjx2j.stx";var eo="./TableHeader-sxc77b4d.stx";var so="./TableRow-xd542nvb.stx";var oo="./TabPanel-5htevsq6.stx";var ro="./Tabs-b4xsba1w.stx";var lo="./Teleport-tsx4bt4n.stx";var po="./Textarea-xcdym703.stx";var ho="./Tooltip-y61h04gp.stx";var bo="./Transition-7smenaz8.stx";var mo="./Video-a0aeyexv.stx";var vo="./VirtualList-fa7v5a3h.stx";var yo="./VirtualTable-jvm1784g.stx";var Co=0;function pe(e="a11y"){return`${e}-${++Co}-${Date.now()}`}function Gd(e,t,s={}){let{visible:a=!1,id:o=pe("label")}=s,i=document.createElement(a?"label":"span");if(i.id=o,i.textContent=e,!a)Object.assign(i.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"});if(t)if(t.setAttribute("aria-labelledby",o),t.parentElement)t.parentElement.insertBefore(i,t);else document.body.appendChild(i);return o}function Ud(e,t){let s=pe("desc"),a=document.createElement("span");if(a.id=s,a.textContent=e,Object.assign(a.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),t)if(t.setAttribute("aria-describedby",s),t.parentElement)t.parentElement.insertBefore(a,t);else document.body.appendChild(a);return s}function Yd(e,t="polite"){let s=document.createElement("div");s.setAttribute("role","status"),s.setAttribute("aria-live",t),s.setAttribute("aria-atomic","true"),Object.assign(s.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),document.body.appendChild(s),setTimeout(()=>{s.textContent=e},100),setTimeout(()=>{s.parentNode?.removeChild(s)},1000)}function ee(e){let t=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(",");return Array.from(e.querySelectorAll(t)).filter((s)=>s.offsetParent!==null)}function Jd(e,t={}){let{initialFocus:s,returnFocus:a,escapeDeactivates:o=!0,clickOutsideDeactivates:i=!0,allowOutsideClick:r=!1,onActivate:n,onDeactivate:c}=t,d=!1,h=!1,p=null,g=(x)=>{if(h)return;if(o&&x.key==="Escape"){x.preventDefault(),v();return}if(x.key==="Tab"){let C=ee(e);if(C.length===0){x.preventDefault();return}let I=C[0],L=C[C.length-1];if(x.shiftKey){if(document.activeElement===I)x.preventDefault(),L.focus()}else if(document.activeElement===L)x.preventDefault(),I.focus()}},f=(x)=>{if(h)return;if(!e.contains(x.target)){if(typeof r==="function"){if(!r(x)&&i)v()}else if(!r&&i)v()}};function w(){if(d)return;d=!0,p=document.activeElement;let x=s||ee(e)[0];if(x&&typeof x.focus==="function")x.focus();document.addEventListener("keydown",g),document.addEventListener("click",f),n?.()}function v(){if(!d)return;d=!1;let x=a||p;if(x&&typeof x.focus==="function")x.focus();document.removeEventListener("keydown",g),document.removeEventListener("click",f),c?.()}function k(){h=!0}function m(){h=!1}return{activate:w,deactivate:v,pause:k,unpause:m}}function Xd(e,t={}){let{selector:s='[role="option"], [role="menuitem"], [role="tab"], button',initialIndex:a=0,orientation:o="both",loop:i=!0,onFocusChange:r}=t,n=a,c=()=>{return Array.from(e.querySelectorAll(s))},d=(p)=>{let g=c();if(p<0||p>=g.length)return;g.forEach((f,w)=>{if(w===p){if(f.setAttribute("tabindex","0"),typeof f.focus==="function")f.focus()}else f.setAttribute("tabindex","-1")}),n=p,r?.(p,g[p])},h=(p)=>{let f=c().length-1,w=!1,v=n;switch(p.key){case"ArrowRight":if(o==="horizontal"||o==="both"){if(v=n+1,v>f)v=i?0:f;w=!0}break;case"ArrowLeft":if(o==="horizontal"||o==="both"){if(v=n-1,v<0)v=i?f:0;w=!0}break;case"ArrowDown":if(o==="vertical"||o==="both"){if(v=n+1,v>f)v=i?0:f;w=!0}break;case"ArrowUp":if(o==="vertical"||o==="both"){if(v=n-1,v<0)v=i?f:0;w=!0}break;case"Home":v=0,w=!0;break;case"End":v=f,w=!0;break}if(w)p.preventDefault(),d(v)};return d(a),e.addEventListener("keydown",h),()=>{e.removeEventListener("keydown",h)}}var Zd={Enter:"Enter",Space:" ",Escape:"Escape",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",Tab:"Tab",Home:"Home",End:"End",PageUp:"PageUp",PageDown:"PageDown"};function Qd(e){return document.activeElement===e}function ep(e,t){let s=t||document.activeElement,a=ee(document.body),o=a.indexOf(s);if(o===-1)return;let i=e==="next"?o+1:o-1,r=a[i];if(r)r.focus()}function tp(e){if(e.getAttribute("aria-hidden")==="true")return!1;let t=window.getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1;return!0}var sp={setExpanded(e,t){e.setAttribute("aria-expanded",String(t))},setSelected(e,t){e.setAttribute("aria-selected",String(t))},setChecked(e,t){e.setAttribute("aria-checked",String(t))},setDisabled(e,t){if(e.setAttribute("aria-disabled",String(t)),t)e.setAttribute("tabindex","-1");else e.removeAttribute("tabindex")},setHidden(e,t){if(t)e.setAttribute("aria-hidden","true");else e.removeAttribute("aria-hidden")},setPressed(e,t){e.setAttribute("aria-pressed",String(t))},setInvalid(e,t){e.setAttribute("aria-invalid",String(t))},setRequired(e,t){e.setAttribute("aria-required",String(t))},setLive(e,t){e.setAttribute("aria-live",t)},setBusy(e,t){e.setAttribute("aria-busy",String(t))}};function ap(e){let t=document.createElement("span");return t.textContent=e,t.className="sr-only",Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),t}function op(){if(typeof window.matchMedia==="function")return window.matchMedia("(prefers-reduced-motion: reduce)").matches;return!1}function ip(){if(typeof window.matchMedia==="function")return window.matchMedia("(prefers-contrast: high)").matches;return!1}function rp(){if(typeof window.matchMedia==="function"){if(window.matchMedia("(prefers-color-scheme: dark)").matches)return"dark";if(window.matchMedia("(prefers-color-scheme: light)").matches)return"light"}return null}function np(e,t="Skip to main content"){let s=document.createElement("a");return s.href=`#${e}`,s.textContent=t,s.className="skip-link",Object.assign(s.style,{position:"absolute",top:"-40px",left:"0",background:"#000",color:"#fff",padding:"8px",textDecoration:"none",zIndex:"100"}),s.addEventListener("focus",()=>{s.style.top="0"}),s.addEventListener("blur",()=>{s.style.top="-40px"}),s}function lp(e){let t=[],s=(a)=>{let o=e.getAttribute(a);if(o){let i=o.split(" ");for(let r of i)if(!document.getElementById(r))t.push(`${a} references non-existent ID: ${r}`)}};return s("aria-labelledby"),s("aria-describedby"),s("aria-controls"),s("aria-owns"),s("aria-activedescendant"),t}var $o=(e,t,s,a)=>{return s*e/a+t},ko=(e,t,s,a)=>{return e/=a,s*e*e+t},So=(e,t,s,a)=>{return e/=a,-s*e*(e-2)+t},To=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e+t;return e--,-s/2*(e*(e-2)-1)+t},No=(e,t,s,a)=>{return e/=a,s*e*e*e+t},Io=(e,t,s,a)=>{return e/=a,e--,s*(e*e*e+1)+t},Ao=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e+t;return e-=2,s/2*(e*e*e+2)+t},Do=(e,t,s,a)=>{return e/=a,s*e*e*e*e+t},Po=(e,t,s,a)=>{return e/=a,e--,-s*(e*e*e*e-1)+t},Lo=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e*e+t;return e-=2,-s/2*(e*e*e*e-2)+t},zo=(e,t,s,a)=>{return e/=a,s*e*e*e*e*e+t},Eo=(e,t,s,a)=>{return e/=a,e--,s*(e*e*e*e*e+1)+t},Oo=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e*e*e+t;return e-=2,s/2*(e*e*e*e*e+2)+t},Mo=(e,t,s,a)=>{return-s*Math.cos(e/a*(Math.PI/2))+s+t},Ro=(e,t,s,a)=>{return s*Math.sin(e/a*(Math.PI/2))+t},qo=(e,t,s,a)=>{return-s/2*(Math.cos(Math.PI*e/a)-1)+t},Bo=(e,t,s,a)=>{return e===0?t:s*2**(10*(e/a-1))+t},jo=(e,t,s,a)=>{return e===a?t+s:s*(-(2**(-10*e/a))+1)+t},Wo=(e,t,s,a)=>{if(e===0)return t;if(e===a)return t+s;if(e/=a/2,e<1)return s/2*2**(10*(e-1))+t;return e--,s/2*(-(2**(-10*e))+2)+t},Ho=(e,t,s,a)=>{return e/=a,-s*(Math.sqrt(1-e*e)-1)+t},Vo=(e,t,s,a)=>{return e/=a,e--,s*Math.sqrt(1-e*e)+t},Fo=(e,t,s,a)=>{if(e/=a/2,e<1)return-s/2*(Math.sqrt(1-e*e)-1)+t;return e-=2,s/2*(Math.sqrt(1-e*e)+1)+t},_o=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a,e===1)return t+s;if(!i)i=a*0.3;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);return e-=1,-(r*2**(10*e)*Math.sin((e*a-o)*(2*Math.PI)/i))+t},Ko=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a,e===1)return t+s;if(!i)i=a*0.3;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);return r*2**(-10*e)*Math.sin((e*a-o)*(2*Math.PI)/i)+s+t},Go=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a/2,e===2)return t+s;if(!i)i=a*0.44999999999999996;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);if(e<1)return e-=1,-0.5*(r*2**(10*e)*Math.sin((e*a-o)*(2*Math.PI)/i))+t;return e-=1,r*2**(-10*e)*Math.sin((e*a-o)*(2*Math.PI)/i)*0.5+s+t},Uo=(e,t,s,a)=>{return e/=a,s*e*e*(2.70158*e-1.70158)+t},Yo=(e,t,s,a)=>{return e/=a,e--,s*(e*e*(2.70158*e+1.70158)+1)+t},Jo=(e,t,s,a)=>{let o=1.70158;if(e/=a/2,e<1)return o*=1.525,s/2*(e*e*((o+1)*e-o))+t;return e-=2,o*=1.525,s/2*(e*e*((o+1)*e+o)+2)+t},te=(e,t,s,a)=>{if(e/=a,e<0.36363636363636365)return s*(7.5625*e*e)+t;else if(e<0.7272727272727273)return e-=0.5454545454545454,s*(7.5625*e*e+0.75)+t;else if(e<0.9090909090909091)return e-=0.8181818181818182,s*(7.5625*e*e+0.9375)+t;else return e-=0.9545454545454546,s*(7.5625*e*e+0.984375)+t},ue=(e,t,s,a)=>{return s-te(a-e,0,s,a)+t},Xo=(e,t,s,a)=>{if(e<a/2)return ue(e*2,0,s,a)*0.5+t;return te(e*2-a,0,s,a)*0.5+s*0.5+t},dp={linear:$o,easeInQuad:ko,easeOutQuad:So,easeInOutQuad:To,easeInCubic:No,easeOutCubic:Io,easeInOutCubic:Ao,easeInQuart:Do,easeOutQuart:Po,easeInOutQuart:Lo,easeInQuint:zo,easeOutQuint:Eo,easeInOutQuint:Oo,easeInSine:Mo,easeOutSine:Ro,easeInOutSine:qo,easeInExpo:Bo,easeOutExpo:jo,easeInOutExpo:Wo,easeInCirc:Ho,easeOutCirc:Vo,easeInOutCirc:Fo,easeInElastic:_o,easeOutElastic:Ko,easeInOutElastic:Go,easeInBack:Uo,easeOutBack:Yo,easeInOutBack:Jo,easeInBounce:ue,easeOutBounce:te,easeInOutBounce:Xo};function Zo(e,t={}){let{duration:s="1s",timing:a="ease",delay:o="0s",iteration:i="1",direction:r="normal",fill:n="both",playState:c="running"}=t;return`${e} ${s} ${a} ${o} ${i} ${r} ${n} ${c}`}function he(e,t,s={}){e.style.animation=Zo(t,s)}function up(e){e.style.animation=""}function Qo(e){return new Promise((t)=>{let s=()=>{e.removeEventListener("animationend",s),t()};e.addEventListener("animationend",s)})}function hp(e,t,s={}){let{stagger:a=100,...o}=s;e.forEach((i,r)=>{let n=`${r*a}ms`;he(i,t,{...o,delay:n})})}async function fp(e,t){for(let s of t)he(e,s.name,s.options),await Qo(e)}var bp={fadeIn:"animate-fade-in",fadeOut:"animate-fade-out",slideInUp:"animate-slide-in-up",slideInDown:"animate-slide-in-down",slideInLeft:"animate-slide-in-left",slideInRight:"animate-slide-in-right",zoomIn:"animate-zoom-in",zoomOut:"animate-zoom-out",bounce:"animate-bounce",spin:"animate-spin",ping:"animate-ping",pulse:"animate-pulse"};function gp(e,t,s=1000){return new Promise((a)=>{e.classList.add(t),setTimeout(()=>{e.classList.remove(t),a()},s)})}function mp(e,t){let s=`
11
+ `)}`)}return{valid:r.length===0,errors:r}}function D(e,t,s){return(a)=>_e(e,a,t,s)}function xr(e,t,s="value"){if(!F)return;if(!t.validate(e,s,"assertion"))throw Error(t.message(e,s,"assertion"))}function vr(e,t,s="value"){if(!F)return;if(!t.validate(e,s,"warning"))console.warn(t.message(e,s,"warning"))}var Ge="./Button-wrwmnfpf.stx";var Ue={variant:l.oneOf(["primary","secondary","outline","ghost","danger"]),size:l.oneOf(["xs","sm","md","lg","xl"]),disabled:l.boolean,loading:l.boolean,type:l.oneOf(["button","submit","reset"]),fullWidth:l.boolean,leftIcon:l.string,rightIcon:l.string,className:l.string,onClick:l.func},kr=D("Button",Ue);function Sr(e){return ne(e,"Button","onClick")}function Tr(e){if(e&&!["primary","secondary","outline","ghost","danger"].includes(e))throw M.invalidProp("Button","variant",e,["primary","secondary","outline","ghost","danger"])}function Nr(e){if(e&&!["xs","sm","md","lg","xl"].includes(e))throw M.invalidProp("Button","size",e,["xs","sm","md","lg","xl"])}var Je="./Calendar-gjjhhfnt.stx";var Ze="./Card-473a02fy.stx";var et="./Checkbox-2s2a7n4h.stx";var st="./Combobox-06x0nywb.stx";var ot="./ComboboxButton-g76stp1e.stx";var rt="./ComboboxInput-z1293bbh.stx";var lt="./ComboboxOption-6yh7xk7q.stx";var dt="./ComboboxOptions-sq5360ae.stx";var ut="./CommandPalette-fzfv1pme.stx";var ft="./CommandPaletteItem-chdw0070.stx";var gt="./Dialog-y5rz2vrq.stx";var xt="./DialogBackdrop-rxax3sec.stx";var wt="./DialogDescription-gth4c2kx.stx";var Ct="./DialogPanel-44d8jeqy.stx";var kt="./DialogTitle-x0r6k8x9.stx";var Tt="./Drawer-9jx39xef.stx";var It="./Dropdown-cmwge7vx.stx";var Dt="./DropdownButton-wcz67dxy.stx";var Lt="./DropdownItem-d8ht2bp5.stx";var Et="./DropdownItems-1sxnd5qn.stx";var Mt="./Form-vbag14t1.stx";var Rt={action:l.string,method:l.oneOf(["GET","POST","PUT","DELETE","PATCH"]),validationSchema:l.object,initialValues:l.object,validateOnChange:l.boolean,validateOnBlur:l.boolean,onSubmit:l.func,onError:l.func,className:l.string},Nn=D("Form",Rt);var Bt="./Image-4ezne2xj.stx";var Wt="./EmailInput-vak3kkmk.stx";var Vt="./NumberInput-j9p5bm5y.stx";var _t="./PasswordInput-4qykq1dz.stx";var Gt="./SearchInput-pdx7agn0.stx";var Yt="./TextInput-cefyyprt.stx";var Jt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string},Xt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,leftIcon:l.string,rightIcon:l.string,clearable:l.boolean,maxLength:l.number,showCount:l.boolean},Zt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,min:l.number,max:l.number,step:l.number,showControls:l.boolean},Qt={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,showStrength:l.boolean},es={value:l.string,onChange:l.func,placeholder:l.string,disabled:l.boolean,readonly:l.boolean,size:l.oneOf(["sm","md","lg"]),error:l.boolean,label:l.string,helperText:l.string,required:l.boolean,className:l.string,inputClassName:l.string,onSearch:l.func,loading:l.boolean},Bn=D("TextInput",Xt),jn=D("EmailInput",Jt),Wn=D("PasswordInput",Qt),Hn=D("NumberInput",Zt),Vn=D("SearchInput",es);var ss="./Listbox-0cyysv0f.stx";var os="./ListboxButton-keb8gm0q.stx";var rs="./ListboxLabel-7mymt1b8.stx";var ls="./ListboxOption-4j070101.stx";var ds="./ListboxOptions-ejkatcfg.stx";var us="./FilterChip-h896vrxm.stx";var fs="./FilterChips-7pnzycfd.stx";var gs="./ListRow-v45ymhcn.stx";var xs="./NavBar-wcb6f2d3.stx";var ws="./SectionCard-r73hvvbc.stx";var Cs="./TabBar-8143650x.stx";var ks="./TabBarItem-hd2r2ayy.stx";var Ts="./Navigator-smpa7my4.stx";var Is="./Notification-03vfh3k6.stx";var Ds="./Pagination-jbcjrfcs.stx";var Ls="./Checkout-22wh3s22.stx";var Es="./DefaultPaymentMethod-6qrem3sg.stx";var Ms="./PaymentMethods-2xy66bwk.stx";var qs="./SubscriptionCheckout-7fdkwf04.stx";var js="./Popover-3g8rgxt1.stx";var Hs="./PopoverButton-mffzc9pr.stx";var Fs="./PopoverPanel-054yh38h.stx";var Ks="./Portal-yghnqdj8.stx";var Us="./Progress-4h7dytq5.stx";var Js="./Radio-ccm07b2m.stx";var Zs="./RadioGroup-82ytfqdb.stx";var ea="./RadioGroupDescription-z34r9avr.stx";var sa="./RadioGroupLabel-7mymt1b8.stx";var oa="./RadioGroupOption-7pq7rw84.stx";var ra="./Select-zt72gg1e.stx";var la="./Sidebar-vzxq5smy.stx";var da="./SidebarFooter-s7skj92y.stx";var ua="./SidebarHeader-3dppxxjh.stx";var fa="./SidebarItem-5v8atp7p.stx";var ga="./SidebarPinned-48kyk193.stx";var xa="./SidebarSection-sqz49ary.stx";var wa="./SidebarSpace-nmbvgrky.stx";var Ca="./SidebarSpaces-6v3p9htw.stx";var ka="./SidebarSpaceSwitcher-v5e472j0.stx";var _={blue:"#0088ff",red:"#ff383c",pink:"#ff2d55",orange:"#ff8d28",yellow:"#ffcc00",green:"#34c759",teal:"#00c3d0",cyan:"#00c0e8",indigo:"#6155f5",purple:"#cb30e0",brown:"#ac7f5e",gray:"#8e8e93"},O={pane:["bg-[#f2f2f4]/90 dark:bg-[#1c1c1e]/88","backdrop-blur-[50px] backdrop-saturate-[180%]","text-black dark:text-white","select-none"].join(" "),selection:"accent",layers:{shimmerRim:!0},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-[10px] pb-[10px]",sectionHeader:["group/section flex w-full items-center","pl-[8px] pr-[6px] pt-[16px] pb-[5px]","text-[11px] font-semibold leading-[13px]","text-[#3c3c43]/60 dark:text-[#ebebf5]/60"].join(" "),sectionChevron:["i-f7-chevron-down h-[11px] w-[11px] ml-auto","text-[#3c3c43]/45 dark:text-[#ebebf5]/45","opacity-0 group-hover/section:opacity-100 transition-opacity duration-150","transition-transform duration-200"].join(" "),sectionGroup:"flex flex-col",item:{base:["flex w-full items-center","h-[32px] rounded-[8px] pl-[4px] pr-[8px]","text-[13px] leading-[16px] font-normal","text-black dark:text-white","transition-colors duration-150 ease-out","cursor-default"].join(" "),hover:"hover:bg-black/4 dark:hover:bg-white/6",active:"",pressed:"active:bg-black/10 dark:active:bg-white/18",disabled:"opacity-40 pointer-events-none",disclosure:"flex h-[16px] w-[18px] shrink-0 items-center justify-center",chevron:["i-f7-chevron-right h-[11px] w-[11px]","text-[#3c3c43]/55 dark:text-[#ebebf5]/55","transition-transform duration-200 ease-out"].join(" "),iconSlot:"flex h-[20px] w-[22px] shrink-0 items-center justify-center mr-[7px]",icon:"h-[17px] w-[17px]",image:"h-[20px] w-[20px] rounded-[4px] object-cover shadow-sm",label:"flex-1 truncate text-left",count:["ml-[8px] shrink-0 tabular-nums","text-[13px] leading-[16px]","text-[#3c3c43]/60 dark:text-[#ebebf5]/60"].join(" "),indentPerLevel:16}},Sa={selection:"classes",pane:"bg-[#f4f4f3] dark:bg-neutral-950 text-zinc-950 dark:text-white select-none",layers:{},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-5 py-5",sectionHeader:"group/section flex w-full items-center gap-2.5 px-4 pb-2 pt-5 text-[13px] font-semibold uppercase tracking-[0.12em] text-zinc-400 dark:text-zinc-500",sectionChevron:"i-f7-chevron-down h-3 w-3 ml-auto opacity-0 group-hover/section:opacity-100 transition-opacity duration-150 transition-transform duration-200",sectionGroup:"flex flex-col space-y-1",item:{base:"flex w-full items-center gap-3 rounded-[16px] px-3.5 py-2 text-[14px] leading-tight transition-colors duration-150",hover:"hover:bg-[#ececea] hover:text-zinc-950 dark:hover:bg-white/10",active:"bg-[#e7e7e5] text-zinc-950 dark:bg-white/12 dark:text-white",pressed:"active:bg-[#e2e2e0] dark:active:bg-white/15",disabled:"opacity-50 pointer-events-none",disclosure:"flex h-4 w-4 shrink-0 items-center justify-center",chevron:"i-f7-chevron-right h-3 w-3 opacity-50 transition-transform duration-200",iconSlot:"flex h-5 w-5 shrink-0 items-center justify-center",icon:"h-[18px] w-[18px] text-zinc-500 dark:text-zinc-500",image:"h-5 w-5 rounded object-cover",label:"flex-1 truncate text-left text-zinc-700 dark:text-zinc-300",count:"ml-auto grid h-5 min-w-5 place-items-center rounded-full bg-white/70 px-1.5 text-[11px] font-medium text-zinc-500 shadow-sm dark:bg-white/10 dark:text-zinc-400",indentPerLevel:12}},Ta={selection:"classes",pane:"bg-[#f3f3f1]/48 dark:bg-neutral-950/32 backdrop-blur-3xl backdrop-saturate-150 text-zinc-950 dark:text-white select-none",layers:{tint:"bg-[linear-gradient(112deg,rgba(255,255,255,0.20)_0%,rgba(255,255,255,0.04)_45%,rgba(226,226,222,0.16)_100%)] dark:bg-[linear-gradient(112deg,rgba(255,255,255,0.08)_0%,rgba(255,255,255,0.02)_46%,rgba(255,255,255,0.06)_100%)]"},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-5 py-2",sectionHeader:"group/section flex w-full items-center gap-2.5 px-3 pb-1.5 pt-3 rounded-[14px] text-[12px] font-semibold uppercase tracking-[0.10em] text-zinc-500/80 dark:text-zinc-400/80",sectionChevron:"i-f7-chevron-down h-3 w-3 ml-auto opacity-0 group-hover/section:opacity-100 transition-opacity duration-150 transition-transform duration-200",sectionGroup:"flex flex-col space-y-1",item:{base:"flex w-full items-center gap-3 rounded-[14px] px-3 py-1.5 text-[13.5px] leading-tight transition-colors duration-150",hover:"hover:bg-white/38 hover:text-zinc-950 dark:hover:bg-white/10",active:"bg-[#e8e8e6]/90 text-zinc-950 dark:bg-white/12 dark:text-white",pressed:"active:bg-white/50 dark:active:bg-white/15",disabled:"opacity-50 pointer-events-none",disclosure:"flex h-4 w-4 shrink-0 items-center justify-center",chevron:"i-f7-chevron-right h-3 w-3 opacity-50 transition-transform duration-200",iconSlot:"flex h-5 w-5 shrink-0 items-center justify-center",icon:"h-[18px] w-[18px] text-zinc-600 dark:text-zinc-400",image:"h-5 w-5 rounded object-cover",label:"flex-1 truncate text-left text-zinc-700 dark:text-zinc-300",count:"ml-auto grid h-5 min-w-5 place-items-center rounded-full bg-white/72 px-1.5 text-[11px] font-medium text-zinc-500 shadow-sm dark:bg-white/10 dark:text-zinc-400",indentPerLevel:12}},Na={selection:"classes",pane:["bg-[#f7f5f1]/92 dark:bg-[#1a1a1c]/92","backdrop-blur-[40px] backdrop-saturate-[160%]","text-[#2c2a28] dark:text-[#ededf0]","select-none"].join(" "),layers:{tint:["bg-[linear-gradient(180deg,var(--stx-sidebar-tint,rgba(255,251,242,0.55))_0%,rgba(255,255,255,0)_38%)]","dark:bg-[linear-gradient(180deg,var(--stx-sidebar-tint,rgba(255,255,255,0.05))_0%,rgba(255,255,255,0)_42%)]"].join(" ")},scrollArea:"flex-1 overflow-y-auto overflow-x-hidden px-[16px] pb-[8px]",sectionHeader:["group/section flex w-full items-center","px-[8px] pt-[14px] pb-[4px]","text-[11px] font-medium leading-[13px]","opacity-55"].join(" "),sectionChevron:["i-f7-chevron-down h-[10px] w-[10px] ml-auto","opacity-0 group-hover/section:opacity-100 transition-opacity duration-150","transition-transform duration-200"].join(" "),sectionGroup:"flex flex-col space-y-[2px]",item:{base:["flex w-full items-center","h-[30px] rounded-[8px] pl-[6px] pr-[8px]","text-[13px] leading-[16px] font-normal","text-current","transition-[background-color,box-shadow,color] duration-150 ease-out","cursor-default"].join(" "),hover:"hover:bg-white/55 dark:hover:bg-white/8",active:["bg-white dark:bg-white/14","font-medium","shadow-[0_1px_2px_rgba(0,0,0,0.08)] dark:shadow-[0_1px_2px_rgba(0,0,0,0.35)]","ring-1 ring-black/5 dark:ring-white/8"].join(" "),pressed:"active:bg-white/80 dark:active:bg-white/18",disabled:"opacity-40 pointer-events-none",disclosure:"flex h-[16px] w-[16px] shrink-0 items-center justify-center",chevron:["i-f7-chevron-right h-[10px] w-[10px] opacity-45","transition-transform duration-200 ease-out"].join(" "),iconSlot:"flex h-[18px] w-[18px] shrink-0 items-center justify-center mr-[8px]",icon:"h-[16px] w-[16px]",image:"h-[18px] w-[18px] rounded-[5px] object-cover shadow-sm",label:"flex-1 truncate text-left",count:["ml-[8px] shrink-0 tabular-nums","text-[12px] leading-[16px] opacity-45"].join(" "),indentPerLevel:14}},Ia={...O,pane:"bg-stone-100 dark:bg-neutral-900 text-black dark:text-white select-none",layers:{}},Aa={...O,pane:"bg-transparent text-black dark:text-white select-none",layers:{}},Da={...O,pane:"bg-white/50 dark:bg-black/40 backdrop-blur-3xl backdrop-saturate-200 text-black dark:text-white select-none",layers:{}},le={macos:O,tahoe:O,"macos-tahoe":O,"macos-latest":O,arc:Na,workspace:Sa,desktop:Ta,solid:Ia,transparent:Aa,vibrancy:Da};function $c(e){return le[e||"macos"]||le.macos}function kc(e){if(!e)return;return _[e]||e}var Pa=_.gray;function z(e,t,s){return`color-mix(in oklab, ${e} ${t}%, ${s})`}function ce(e){return{light:{from:z(e,35,"#ffffff"),to:z(e,12.5,"#ffffff"),ink:z(e,22,"#17171b"),accent:z(e,88,"#2a2a30")},dark:{from:z(e,27,"#101014"),to:z(e,10,"#08080b"),ink:z(e,12,"#f4f4f7"),accent:z(e,74,"#ffffff")}}}function Nc(e,t){return`linear-gradient(180deg, ${e} 0%, ${t} 100%)`}function La(e){if(!e)return ce(Pa);if(typeof e!=="string")return e;return ce(_[e]||e)}function za(e){return[`--stx-space-light-from: ${e.light.from}`,`--stx-space-light-to: ${e.light.to}`,`--stx-space-light-ink: ${e.light.ink}`,`--stx-space-light-accent: ${e.light.accent}`,`--stx-space-dark-from: ${e.dark.from}`,`--stx-space-dark-to: ${e.dark.to}`,`--stx-space-dark-ink: ${e.dark.ink}`,`--stx-space-dark-accent: ${e.dark.accent}`].join("; ")}function de(e,t,s,a){if(!e||!e.label)return null;return{id:e.id||`${t}-${s}`,label:e.label,icon:e.icon||a}}function Ea(e){let t=La(e.tint);return{id:e.id,label:e.label||"",icon:e.icon||"",pinned:e.pinned||[],sections:e.sections||[],action:de(e.action,e.id,"action","i-f7-plus"),clear:de(e.clear,e.id,"clear","i-f7-arrow-down"),tint:t,style:za(t),deferred:e.deferred===!0,showTitle:e.showTitle??!0}}function Ic(e){return(e||[]).map(Ea)}function Ac(e,t){if(!t)return 0;let s=e.findIndex((a)=>a.id===t);return s===-1?0:s}function Dc(e){return e.map((t)=>t.tint)}var Ma="./Skeleton-wtwb97xd.stx";var qa="./Spinner-ypya5tt2.stx";var ja="./Stepper-rgbk76hd.stx";var Ha="./StepperStep-3ahq4d9m.stx";class K{storage;namespace;watchers=new Map;encryptionKey="stx-storage-key";constructor(e="local",t=""){if(this.storage=e==="local"?globalThis.localStorage:globalThis.sessionStorage,this.namespace=t,typeof window<"u")window.addEventListener("storage",this.handleStorageEvent.bind(this))}handleStorageEvent(e){if(!e.key)return;let t=this.namespace&&e.key.startsWith(`${this.namespace}:`)?e.key.slice(this.namespace.length+1):e.key,s=this.watchers.get(t);if(s){let a=e.oldValue?JSON.parse(e.oldValue).value:null,o=e.newValue?JSON.parse(e.newValue).value:null;s.forEach((i)=>i(o,a,t))}}encrypt(e){let t="";for(let s=0;s<e.length;s++)t+=String.fromCharCode(e.charCodeAt(s)^this.encryptionKey.charCodeAt(s%this.encryptionKey.length));return btoa(t)}decrypt(e){try{let t=atob(e),s="";for(let a=0;a<t.length;a++)s+=String.fromCharCode(t.charCodeAt(a)^this.encryptionKey.charCodeAt(a%this.encryptionKey.length));return s}catch{return e}}compress(e){if(e.length<100)return e;let t={},s=256,a=[],o="";for(let i=0;i<e.length;i++){let r=e.charAt(i),n=o+r;if(t[n]!==void 0)o=n;else a.push(o.length>1?t[o]:o.charCodeAt(0)),t[n]=s++,o=r}if(o!=="")a.push(o.length>1?t[o]:o.charCodeAt(0));return JSON.stringify(a)}decompress(e){try{let t=JSON.parse(e);if(!Array.isArray(t))return e;let s={},a=256,o=String.fromCharCode(t[0]),i=o;for(let r=1;r<t.length;r++){let n=t[r],c;if(s[n]!==void 0)c=s[n];else if(n===a)c=o+o.charAt(0);else return e;i+=c,s[a++]=o+c.charAt(0),o=c}return i}catch{return e}}getKey(e){return this.namespace?`${this.namespace}:${e}`:e}set(e,t,s){let a=this.getKey(e),o=this.get(e),i={value:t,timestamp:Date.now(),expire:s?.expire,encrypted:s?.encrypt||!1,compressed:s?.compress||!1};try{let r=JSON.stringify(i);if(s?.compress)r=this.compress(r);if(s?.encrypt)r=this.encrypt(r);this.storage.setItem(a,r),this.notifyWatchers(e,t,o)}catch(r){console.error("Storage set error:",r)}}get(e){let t=this.getKey(e);try{let s=this.storage.getItem(t);if(!s)return null;if(s.match(/^[A-Z0-9+/]+=*$/i))try{s=this.decrypt(s)}catch{}if(s.startsWith("["))try{s=this.decompress(s)}catch{}let a=JSON.parse(s);if(a.expire&&Date.now()-a.timestamp>a.expire)return this.remove(e),null;return a.value}catch(s){return console.error("Storage get error:",s),null}}watch(e,t){if(!this.watchers.has(e))this.watchers.set(e,new Set);return this.watchers.get(e).add(t),()=>{let s=this.watchers.get(e);if(s){if(s.delete(t),s.size===0)this.watchers.delete(e)}}}notifyWatchers(e,t,s){let a=this.watchers.get(e);if(a)a.forEach((o)=>o(t,s,e))}remove(e){let t=this.getKey(e),s=this.get(e);this.storage.removeItem(t),this.notifyWatchers(e,null,s)}clear(){if(this.namespace)this.keys().forEach((t)=>this.remove(t));else this.storage.clear()}has(e){return this.get(e)!==null}keys(){let e=Object.keys(this.storage);if(this.namespace){let t=`${this.namespace}:`;return e.filter((s)=>s.startsWith(t)).map((s)=>s.slice(t.length))}return e}size(){return this.keys().length}getQuota(){if("storage"in navigator&&"estimate"in navigator.storage)return null;try{let e=0;for(let s=0;s<this.storage.length;s++){let a=this.storage.key(s);if(a){let o=this.storage.getItem(a)||"";e+=a.length+o.length}}let t=5242880;return{usage:e*2,quota:t,percentage:e*2/t*100}}catch{return null}}setMany(e,t){Object.entries(e).forEach(([s,a])=>{this.set(s,a,t)})}getMany(e){let t={};return e.forEach((s)=>{t[s]=this.get(s)}),t}removeMany(e){e.forEach((t)=>this.remove(t))}}var sd={local:new K("local"),session:new K("session")};function ad(e="local",t){return new K(e,t)}var Fa="./Switch-hdta55a8.stx";var Ka="./Table-0mc3fdek.stx";var Ua="./TableBody-drxyz5jh.stx";var Ja="./TableCell-8swtcq8s.stx";var Za="./TableHead-e9xvjx2j.stx";var eo="./TableHeader-sxc77b4d.stx";var so="./TableRow-xd542nvb.stx";var oo="./TabPanel-5htevsq6.stx";var ro="./Tabs-b4xsba1w.stx";var lo="./Teleport-3gnjtsjf.stx";var po="./Textarea-xcdym703.stx";var ho="./Tooltip-y61h04gp.stx";var bo="./Transition-7smenaz8.stx";var mo="./Video-a0aeyexv.stx";var vo="./VirtualList-fa7v5a3h.stx";var yo="./VirtualTable-jvm1784g.stx";var Co=0;function pe(e="a11y"){return`${e}-${++Co}-${Date.now()}`}function Gd(e,t,s={}){let{visible:a=!1,id:o=pe("label")}=s,i=document.createElement(a?"label":"span");if(i.id=o,i.textContent=e,!a)Object.assign(i.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"});if(t)if(t.setAttribute("aria-labelledby",o),t.parentElement)t.parentElement.insertBefore(i,t);else document.body.appendChild(i);return o}function Ud(e,t){let s=pe("desc"),a=document.createElement("span");if(a.id=s,a.textContent=e,Object.assign(a.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),t)if(t.setAttribute("aria-describedby",s),t.parentElement)t.parentElement.insertBefore(a,t);else document.body.appendChild(a);return s}function Yd(e,t="polite"){let s=document.createElement("div");s.setAttribute("role","status"),s.setAttribute("aria-live",t),s.setAttribute("aria-atomic","true"),Object.assign(s.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),document.body.appendChild(s),setTimeout(()=>{s.textContent=e},100),setTimeout(()=>{s.parentNode?.removeChild(s)},1000)}function ee(e){let t=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"])',"select:not([disabled])","textarea:not([disabled])","button:not([disabled])","iframe","object","embed","[contenteditable]",'[tabindex]:not([tabindex="-1"])'].join(",");return Array.from(e.querySelectorAll(t)).filter((s)=>s.offsetParent!==null)}function Jd(e,t={}){let{initialFocus:s,returnFocus:a,escapeDeactivates:o=!0,clickOutsideDeactivates:i=!0,allowOutsideClick:r=!1,onActivate:n,onDeactivate:c}=t,d=!1,h=!1,p=null,g=(x)=>{if(h)return;if(o&&x.key==="Escape"){x.preventDefault(),v();return}if(x.key==="Tab"){let C=ee(e);if(C.length===0){x.preventDefault();return}let I=C[0],L=C[C.length-1];if(x.shiftKey){if(document.activeElement===I)x.preventDefault(),L.focus()}else if(document.activeElement===L)x.preventDefault(),I.focus()}},f=(x)=>{if(h)return;if(!e.contains(x.target)){if(typeof r==="function"){if(!r(x)&&i)v()}else if(!r&&i)v()}};function w(){if(d)return;d=!0,p=document.activeElement;let x=s||ee(e)[0];if(x&&typeof x.focus==="function")x.focus();document.addEventListener("keydown",g),document.addEventListener("click",f),n?.()}function v(){if(!d)return;d=!1;let x=a||p;if(x&&typeof x.focus==="function")x.focus();document.removeEventListener("keydown",g),document.removeEventListener("click",f),c?.()}function k(){h=!0}function m(){h=!1}return{activate:w,deactivate:v,pause:k,unpause:m}}function Xd(e,t={}){let{selector:s='[role="option"], [role="menuitem"], [role="tab"], button',initialIndex:a=0,orientation:o="both",loop:i=!0,onFocusChange:r}=t,n=a,c=()=>{return Array.from(e.querySelectorAll(s))},d=(p)=>{let g=c();if(p<0||p>=g.length)return;g.forEach((f,w)=>{if(w===p){if(f.setAttribute("tabindex","0"),typeof f.focus==="function")f.focus()}else f.setAttribute("tabindex","-1")}),n=p,r?.(p,g[p])},h=(p)=>{let f=c().length-1,w=!1,v=n;switch(p.key){case"ArrowRight":if(o==="horizontal"||o==="both"){if(v=n+1,v>f)v=i?0:f;w=!0}break;case"ArrowLeft":if(o==="horizontal"||o==="both"){if(v=n-1,v<0)v=i?f:0;w=!0}break;case"ArrowDown":if(o==="vertical"||o==="both"){if(v=n+1,v>f)v=i?0:f;w=!0}break;case"ArrowUp":if(o==="vertical"||o==="both"){if(v=n-1,v<0)v=i?f:0;w=!0}break;case"Home":v=0,w=!0;break;case"End":v=f,w=!0;break}if(w)p.preventDefault(),d(v)};return d(a),e.addEventListener("keydown",h),()=>{e.removeEventListener("keydown",h)}}var Zd={Enter:"Enter",Space:" ",Escape:"Escape",ArrowUp:"ArrowUp",ArrowDown:"ArrowDown",ArrowLeft:"ArrowLeft",ArrowRight:"ArrowRight",Tab:"Tab",Home:"Home",End:"End",PageUp:"PageUp",PageDown:"PageDown"};function Qd(e){return document.activeElement===e}function ep(e,t){let s=t||document.activeElement,a=ee(document.body),o=a.indexOf(s);if(o===-1)return;let i=e==="next"?o+1:o-1,r=a[i];if(r)r.focus()}function tp(e){if(e.getAttribute("aria-hidden")==="true")return!1;let t=window.getComputedStyle(e);if(t.display==="none"||t.visibility==="hidden")return!1;return!0}var sp={setExpanded(e,t){e.setAttribute("aria-expanded",String(t))},setSelected(e,t){e.setAttribute("aria-selected",String(t))},setChecked(e,t){e.setAttribute("aria-checked",String(t))},setDisabled(e,t){if(e.setAttribute("aria-disabled",String(t)),t)e.setAttribute("tabindex","-1");else e.removeAttribute("tabindex")},setHidden(e,t){if(t)e.setAttribute("aria-hidden","true");else e.removeAttribute("aria-hidden")},setPressed(e,t){e.setAttribute("aria-pressed",String(t))},setInvalid(e,t){e.setAttribute("aria-invalid",String(t))},setRequired(e,t){e.setAttribute("aria-required",String(t))},setLive(e,t){e.setAttribute("aria-live",t)},setBusy(e,t){e.setAttribute("aria-busy",String(t))}};function ap(e){let t=document.createElement("span");return t.textContent=e,t.className="sr-only",Object.assign(t.style,{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:"0"}),t}function op(){if(typeof window.matchMedia==="function")return window.matchMedia("(prefers-reduced-motion: reduce)").matches;return!1}function ip(){if(typeof window.matchMedia==="function")return window.matchMedia("(prefers-contrast: high)").matches;return!1}function rp(){if(typeof window.matchMedia==="function"){if(window.matchMedia("(prefers-color-scheme: dark)").matches)return"dark";if(window.matchMedia("(prefers-color-scheme: light)").matches)return"light"}return null}function np(e,t="Skip to main content"){let s=document.createElement("a");return s.href=`#${e}`,s.textContent=t,s.className="skip-link",Object.assign(s.style,{position:"absolute",top:"-40px",left:"0",background:"#000",color:"#fff",padding:"8px",textDecoration:"none",zIndex:"100"}),s.addEventListener("focus",()=>{s.style.top="0"}),s.addEventListener("blur",()=>{s.style.top="-40px"}),s}function lp(e){let t=[],s=(a)=>{let o=e.getAttribute(a);if(o){let i=o.split(" ");for(let r of i)if(!document.getElementById(r))t.push(`${a} references non-existent ID: ${r}`)}};return s("aria-labelledby"),s("aria-describedby"),s("aria-controls"),s("aria-owns"),s("aria-activedescendant"),t}var $o=(e,t,s,a)=>{return s*e/a+t},ko=(e,t,s,a)=>{return e/=a,s*e*e+t},So=(e,t,s,a)=>{return e/=a,-s*e*(e-2)+t},To=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e+t;return e--,-s/2*(e*(e-2)-1)+t},No=(e,t,s,a)=>{return e/=a,s*e*e*e+t},Io=(e,t,s,a)=>{return e/=a,e--,s*(e*e*e+1)+t},Ao=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e+t;return e-=2,s/2*(e*e*e+2)+t},Do=(e,t,s,a)=>{return e/=a,s*e*e*e*e+t},Po=(e,t,s,a)=>{return e/=a,e--,-s*(e*e*e*e-1)+t},Lo=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e*e+t;return e-=2,-s/2*(e*e*e*e-2)+t},zo=(e,t,s,a)=>{return e/=a,s*e*e*e*e*e+t},Eo=(e,t,s,a)=>{return e/=a,e--,s*(e*e*e*e*e+1)+t},Oo=(e,t,s,a)=>{if(e/=a/2,e<1)return s/2*e*e*e*e*e+t;return e-=2,s/2*(e*e*e*e*e+2)+t},Mo=(e,t,s,a)=>{return-s*Math.cos(e/a*(Math.PI/2))+s+t},Ro=(e,t,s,a)=>{return s*Math.sin(e/a*(Math.PI/2))+t},qo=(e,t,s,a)=>{return-s/2*(Math.cos(Math.PI*e/a)-1)+t},Bo=(e,t,s,a)=>{return e===0?t:s*2**(10*(e/a-1))+t},jo=(e,t,s,a)=>{return e===a?t+s:s*(-(2**(-10*e/a))+1)+t},Wo=(e,t,s,a)=>{if(e===0)return t;if(e===a)return t+s;if(e/=a/2,e<1)return s/2*2**(10*(e-1))+t;return e--,s/2*(-(2**(-10*e))+2)+t},Ho=(e,t,s,a)=>{return e/=a,-s*(Math.sqrt(1-e*e)-1)+t},Vo=(e,t,s,a)=>{return e/=a,e--,s*Math.sqrt(1-e*e)+t},Fo=(e,t,s,a)=>{if(e/=a/2,e<1)return-s/2*(Math.sqrt(1-e*e)-1)+t;return e-=2,s/2*(Math.sqrt(1-e*e)+1)+t},_o=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a,e===1)return t+s;if(!i)i=a*0.3;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);return e-=1,-(r*2**(10*e)*Math.sin((e*a-o)*(2*Math.PI)/i))+t},Ko=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a,e===1)return t+s;if(!i)i=a*0.3;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);return r*2**(-10*e)*Math.sin((e*a-o)*(2*Math.PI)/i)+s+t},Go=(e,t,s,a)=>{let o=1.70158,i=0,r=s;if(e===0)return t;if(e/=a/2,e===2)return t+s;if(!i)i=a*0.44999999999999996;if(r<Math.abs(s))r=s,o=i/4;else o=i/(2*Math.PI)*Math.asin(s/r);if(e<1)return e-=1,-0.5*(r*2**(10*e)*Math.sin((e*a-o)*(2*Math.PI)/i))+t;return e-=1,r*2**(-10*e)*Math.sin((e*a-o)*(2*Math.PI)/i)*0.5+s+t},Uo=(e,t,s,a)=>{return e/=a,s*e*e*(2.70158*e-1.70158)+t},Yo=(e,t,s,a)=>{return e/=a,e--,s*(e*e*(2.70158*e+1.70158)+1)+t},Jo=(e,t,s,a)=>{let o=1.70158;if(e/=a/2,e<1)return o*=1.525,s/2*(e*e*((o+1)*e-o))+t;return e-=2,o*=1.525,s/2*(e*e*((o+1)*e+o)+2)+t},te=(e,t,s,a)=>{if(e/=a,e<0.36363636363636365)return s*(7.5625*e*e)+t;else if(e<0.7272727272727273)return e-=0.5454545454545454,s*(7.5625*e*e+0.75)+t;else if(e<0.9090909090909091)return e-=0.8181818181818182,s*(7.5625*e*e+0.9375)+t;else return e-=0.9545454545454546,s*(7.5625*e*e+0.984375)+t},ue=(e,t,s,a)=>{return s-te(a-e,0,s,a)+t},Xo=(e,t,s,a)=>{if(e<a/2)return ue(e*2,0,s,a)*0.5+t;return te(e*2-a,0,s,a)*0.5+s*0.5+t},dp={linear:$o,easeInQuad:ko,easeOutQuad:So,easeInOutQuad:To,easeInCubic:No,easeOutCubic:Io,easeInOutCubic:Ao,easeInQuart:Do,easeOutQuart:Po,easeInOutQuart:Lo,easeInQuint:zo,easeOutQuint:Eo,easeInOutQuint:Oo,easeInSine:Mo,easeOutSine:Ro,easeInOutSine:qo,easeInExpo:Bo,easeOutExpo:jo,easeInOutExpo:Wo,easeInCirc:Ho,easeOutCirc:Vo,easeInOutCirc:Fo,easeInElastic:_o,easeOutElastic:Ko,easeInOutElastic:Go,easeInBack:Uo,easeOutBack:Yo,easeInOutBack:Jo,easeInBounce:ue,easeOutBounce:te,easeInOutBounce:Xo};function Zo(e,t={}){let{duration:s="1s",timing:a="ease",delay:o="0s",iteration:i="1",direction:r="normal",fill:n="both",playState:c="running"}=t;return`${e} ${s} ${a} ${o} ${i} ${r} ${n} ${c}`}function he(e,t,s={}){e.style.animation=Zo(t,s)}function up(e){e.style.animation=""}function Qo(e){return new Promise((t)=>{let s=()=>{e.removeEventListener("animationend",s),t()};e.addEventListener("animationend",s)})}function hp(e,t,s={}){let{stagger:a=100,...o}=s;e.forEach((i,r)=>{let n=`${r*a}ms`;he(i,t,{...o,delay:n})})}async function fp(e,t){for(let s of t)he(e,s.name,s.options),await Qo(e)}var bp={fadeIn:"animate-fade-in",fadeOut:"animate-fade-out",slideInUp:"animate-slide-in-up",slideInDown:"animate-slide-in-down",slideInLeft:"animate-slide-in-left",slideInRight:"animate-slide-in-right",zoomIn:"animate-zoom-in",zoomOut:"animate-zoom-out",bounce:"animate-bounce",spin:"animate-spin",ping:"animate-ping",pulse:"animate-pulse"};function gp(e,t,s=1000){return new Promise((a)=>{e.classList.add(t),setTimeout(()=>{e.classList.remove(t),a()},s)})}function mp(e,t){let s=`
12
12
  @keyframes ${e} {
13
13
  ${Object.entries(t).map(([o,i])=>{let r=Object.entries(i).map(([n,c])=>`${n}: ${c};`).join(" ");return`${o} { ${r} }`}).join(`
14
14
  `)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/components",
3
3
  "type": "module",
4
- "version": "0.2.264",
4
+ "version": "0.2.266",
5
5
  "description": "A modern component library built with STX, featuring headwind utility classes and TypeScript syntax highlighting.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
@@ -64,8 +64,8 @@
64
64
  "dependencies": {
65
65
  "@iconify-json/f7": "^1.2.2",
66
66
  "@cwcss/crosswind": "^0.2.19",
67
- "@stacksjs/stx": "0.2.264",
68
- "bun-plugin-stx": "0.2.264",
67
+ "@stacksjs/stx": "0.2.266",
68
+ "bun-plugin-stx": "0.2.266",
69
69
  "ts-syntax-highlighter": "^0.2.1"
70
70
  },
71
71
  "devDependencies": {
@@ -5,7 +5,7 @@ export const as = $props.as || 'div'
5
5
 
6
6
  const baseClasses = 'relative'
7
7
  export const comboboxClasses = `${baseClasses} ${className}`.trim()
8
- export const comboboxInstanceId = `stx-cb-${Math.random().toString(36).slice(2, 11)}`
8
+ export const comboboxInstanceId = $uid
9
9
  </script>
10
10
 
11
11
  <script client>
@@ -5,7 +5,7 @@ export const className = $props.className || ''
5
5
 
6
6
  const baseClasses = 'fixed inset-0 z-50 overflow-y-auto p-4 sm:p-6 md:p-20'
7
7
  export const paletteClasses = `${baseClasses} ${className}`.trim()
8
- export const paletteInstanceId = `stx-cmd-${Math.random().toString(36).slice(2, 11)}`
8
+ export const paletteInstanceId = $uid
9
9
  </script>
10
10
 
11
11
  <script client>
@@ -60,7 +60,7 @@ export const closeButtonClasses = `absolute top-0 ${closeButtonPosition[position
60
60
  * focused the first, which is hidden, so focus went nowhere and the retry
61
61
  * spent its ten frames failing. Same idiom as Dropdown and Popover.
62
62
  */
63
- export const drawerInstanceId = `stx-drawer-${Math.random().toString(36).slice(2, 11)}`
63
+ export const drawerInstanceId = $uid
64
64
  </script>
65
65
 
66
66
  <script client>
@@ -4,7 +4,7 @@ export const as = $props.as || 'div'
4
4
 
5
5
  const baseClasses = 'relative inline-block text-left'
6
6
  export const dropdownClasses = `${baseClasses} ${className}`.trim()
7
- export const dropdownInstanceId = `stx-dd-${Math.random().toString(36).slice(2, 11)}`
7
+ export const dropdownInstanceId = $uid
8
8
  </script>
9
9
 
10
10
  <script client>
@@ -1,5 +1,5 @@
1
1
  <script server>
2
- export const id = $props.id || `stx-heatmap-${Math.random().toString(36).slice(2, 8)}`
2
+ export const id = $props.id || $uid
3
3
  export const mode = $props.mode || 'overlay'
4
4
  export const width = $props.width || null
5
5
  export const height = $props.height || null
@@ -6,7 +6,7 @@ export const as = $props.as || 'div'
6
6
 
7
7
  const baseClasses = 'relative'
8
8
  export const listboxClasses = `${baseClasses} ${className}`.trim()
9
- export const listboxInstanceId = `stx-lb-${Math.random().toString(36).slice(2, 11)}`
9
+ export const listboxInstanceId = $uid
10
10
  </script>
11
11
 
12
12
  <script client>
@@ -4,7 +4,7 @@ export const as = $props.as || 'div'
4
4
 
5
5
  const baseClasses = 'relative'
6
6
  export const popoverClasses = `${baseClasses} ${className}`.trim()
7
- export const popoverInstanceId = `stx-pop-${Math.random().toString(36).slice(2, 11)}`
7
+ export const popoverInstanceId = $uid
8
8
  </script>
9
9
 
10
10
  <script client>
@@ -2,7 +2,7 @@
2
2
  export const target = $props.target || 'body'
3
3
  export const disabled = $props.disabled || false
4
4
 
5
- export const portalId = `portal-content-${Math.random().toString(36).slice(2, 11)}`
5
+ export const portalId = $uid
6
6
  </script>
7
7
 
8
8
  <script client>
@@ -29,7 +29,7 @@ export const optionDisabledClasses = `${optionBaseClasses} opacity-50 cursor-not
29
29
 
30
30
  const baseClasses = 'w-full'
31
31
  export const groupClasses = `${baseClasses} ${className}`.trim()
32
- export const radioGroupInstanceId = `stx-rg-${Math.random().toString(36).slice(2, 11)}`
32
+ export const radioGroupInstanceId = $uid
33
33
  </script>
34
34
 
35
35
  <script client>
@@ -1,4 +1,13 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), the helpers it
5
+ // imports hold no module state, and nothing here reads the clock, the request
6
+ // or the route -- selecting the active row from the URL is client-side, in the
7
+ // <script client> block below. Because a hit serves this component's whole
8
+ // SUBTREE from one entry, that last point covers the rows too: if any of them
9
+ // ever resolved the active item on the server, this could not be cached.
10
+ // Adding a server-side read of anything else means dropping `cache` again.
2
11
  import { normalizeSpaces, spaceIndexOf } from './spaces'
3
12
  import { resolveSidebarTheme } from './themes'
4
13
 
@@ -47,7 +56,7 @@ export const followSystemAppearance = $props.followSystemAppearance ?? true
47
56
 
48
57
  // Unique id so the client controller can find this pane even with several
49
58
  // sidebars on the page.
50
- export const sidebarUid = $props.id || `stx-sidebar-${Math.random().toString(36).slice(2, 8)}`
59
+ export const sidebarUid = $props.id || $uid
51
60
 
52
61
  const themeStyle = resolveSidebarTheme(theme)
53
62
  export const selectionModel = themeStyle.selection
@@ -1,4 +1,9 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), and nothing here
5
+ // reads the clock, the request or the route. Adding a server-side read of
6
+ // anything else means dropping `cache` again.
2
7
  // The indicator along the bottom of an Arc-style sidebar: one dot per space,
3
8
  // plus an optional trailing "+".
4
9
  //
@@ -1,4 +1,9 @@
1
- <script server>
1
+ <script server cache>
2
+ // `cache` is a promise that what this renders is a function of its props and
3
+ // slots alone, and it is kept: everything below reads $props (plus $uid, which
4
+ // the cache keys on, so two instances never share an entry), and nothing here
5
+ // reads the clock, the request or the route. Adding a server-side read of
6
+ // anything else means dropping `cache` again.
2
7
  import { normalizeSpaces, spaceIndexOf } from './spaces'
3
8
 
4
9
  // Arc's swipeable spaces.
@@ -3,7 +3,7 @@ export const to = $props.to || 'body'
3
3
  export const disabled = $props.disabled || false
4
4
  export const defer = $props.defer || false
5
5
 
6
- export const teleportId = `teleport-${Math.random().toString(36).slice(2, 11)}`
6
+ export const teleportId = $uid
7
7
  </script>
8
8
 
9
9
  <script client>