foss-design 0.4.0 → 0.4.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/viewer/assets/index-BL2Cxj98.css +2 -0
- package/dist/viewer/assets/{index-J92cmw_g.js → index-k3bj-XTr.js} +4 -4
- package/dist/viewer/index.html +2 -2
- package/dist/viewer-lib/index.js +34 -11
- package/dist/viewer-lib/styles.css +11 -7
- package/dist/viewer-lib/types/viewer/src/lib/viewer.d.ts +4 -1
- package/package.json +1 -1
- package/dist/viewer/assets/index-BYP2IITn.css +0 -2
|
@@ -54,7 +54,7 @@ Error generating stack: `+e.message+`
|
|
|
54
54
|
`},wh=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},Th=function(){v.useEffect(function(){return document.body.setAttribute(Sh,(wh()+1).toString()),function(){var e=wh()-1;e<=0?document.body.removeAttribute(Sh):document.body.setAttribute(Sh,e.toString())}},[])},Eh=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;Th();var a=v.useMemo(function(){return bh(i)},[i]);return v.createElement(xh,{styles:Ch(a,!t,i,n?``:`!important`)})},Dh=!1;if(typeof window<`u`)try{var Oh=Object.defineProperty({},"passive",{get:function(){return Dh=!0,!0}});window.addEventListener(`test`,Oh,Oh),window.removeEventListener(`test`,Oh,Oh)}catch{Dh=!1}var kh=Dh?{passive:!1}:!1,Ah=function(e){return e.tagName===`TEXTAREA`},jh=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Ah(e)&&n[t]===`visible`)},Mh=function(e){return jh(e,`overflowY`)},Nh=function(e){return jh(e,`overflowX`)},Ph=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Lh(e,r)){var i=Rh(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Fh=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},Ih=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Lh=function(e,t){return e===`v`?Mh(t):Nh(t)},Rh=function(e,t){return e===`v`?Fh(t):Ih(t)},zh=function(e,t){return e===`h`&&t===`rtl`?-1:1},Bh=function(e,t,n,r,i){var a=zh(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Rh(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Lh(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Vh=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Hh=function(e){return[e.deltaX,e.deltaY]},Uh=function(e){return e&&`current`in e?e.current:e},Wh=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Gh=function(e){return`
|
|
55
55
|
.block-interactivity-${e} {pointer-events: none;}
|
|
56
56
|
.allow-interactivity-${e} {pointer-events: all;}
|
|
57
|
-
`},Kh=0,qh=[];function Jh(e){var t=v.useRef([]),n=v.useRef([0,0]),r=v.useRef(),i=v.useState(Kh++)[0],a=v.useState(gh)[0],o=v.useRef(e);v.useEffect(function(){o.current=e},[e]),v.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Km([e.lockRef.current],(e.shards||[]).map(Uh),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=v.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Vh(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Ph(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Ph(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Bh(h,t,e,h===`h`?s:c,!0)},[]),c=v.useCallback(function(e){var n=e;if(qh.length&&qh[qh.length-1]===a){var r=`deltaY`in n?Hh(n):Vh(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Wh(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(Uh).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=v.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Yh(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=v.useCallback(function(e){n.current=Vh(e),r.current=void 0},[]),d=v.useCallback(function(t){l(t.type,Hh(t),t.target,s(t,e.lockRef.current))},[]),f=v.useCallback(function(t){l(t.type,Vh(t),t.target,s(t,e.lockRef.current))},[]);v.useEffect(function(){return qh.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,kh),document.addEventListener(`touchmove`,c,kh),document.addEventListener(`touchstart`,u,kh),function(){qh=qh.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,kh),document.removeEventListener(`touchmove`,c,kh),document.removeEventListener(`touchstart`,u,kh)}},[]);var p=e.removeScrollBar,m=e.inert;return v.createElement(v.Fragment,null,m?v.createElement(a,{styles:Gh(i)}):null,p?v.createElement(Eh,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Yh(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Xh=oh(sh,Jh),Zh=v.forwardRef(function(e,t){return v.createElement(lh,Wm({},e,{ref:t,sideCar:Xh}))});Zh.classNames=lh.classNames;var Qh=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},$h=new WeakMap,eg=new WeakMap,tg={},ng=0,rg=function(e){return e&&(e.host||rg(e.parentNode))},ig=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=rg(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},ag=function(e,t,n,r){var i=ig(t,Array.isArray(e)?e:[e]);tg[n]||(tg[n]=new WeakMap);var a=tg[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=($h.get(e)||0)+1,l=(a.get(e)||0)+1;$h.set(e,c),a.set(e,l),o.push(e),c===1&&i&&eg.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),ng++,function(){o.forEach(function(e){var t=$h.get(e)-1,i=a.get(e)-1;$h.set(e,t),a.set(e,i),t||(eg.has(e)||e.removeAttribute(r),eg.delete(e)),i||e.removeAttribute(n)}),ng--,ng||($h=new WeakMap,$h=new WeakMap,eg=new WeakMap,tg={})}},og=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Qh(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),ag(r,i,n,`aria-hidden`)):function(){return null}},sg=Object.defineProperty,cg=(e,t)=>sg(e,`name`,{value:t,configurable:!0}),lg=`Dialog`,[ug,dg]=ap(lg),[fg,pg]=ug(lg),mg=cg(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=v.useRef(null),c=v.useRef(null),[l,u]=xp({prop:r,defaultProp:i??!1,onChange:a,caller:lg}),[d,f]=v.useState(0),[p,m]=v.useState(0);return(0,R.jsx)(fg,{scope:t,triggerRef:s,contentRef:c,contentId:fp(),titleId:fp(),descriptionId:fp(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:v.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),hg=`DialogPortal`,[gg,_g]=ug(hg,{forceMount:void 0}),vg=cg(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=pg(hg,t);return(0,R.jsx)(gg,{scope:t,forceMount:n,children:v.Children.map(r,e=>(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),yg=`DialogOverlay`,bg=v.forwardRef(cg(function(e,t){let n=_g(yg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pg(yg,e.__scopeDialog);return a.modal?(0,R.jsx)(jm,{present:r||a.open,children:(0,R.jsx)(Sg,{...i,ref:t})}):null},`DialogOverlay`)),xg=kp(`DialogOverlay.RemoveScroll`),Sg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(yg,n),a=tp(t,rm());return(0,R.jsx)(Zh,{as:xg,allowPinchZoom:!0,shards:[i.contentRef],children:(0,R.jsx)(Wp.div,{"data-state":Mg(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),Cg=`DialogContent`,wg=v.forwardRef(cg(function(e,t){let n=_g(Cg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pg(Cg,e.__scopeDialog);return(0,R.jsx)(jm,{present:r||a.open,children:a.modal?(0,R.jsx)(Tg,{...i,ref:t}):(0,R.jsx)(Eg,{...i,ref:t})})},`DialogContent`)),Tg=v.forwardRef(cg(function(e,t){let n=pg(Cg,e.__scopeDialog),r=v.useRef(null),i=tp(t,n.contentRef,r);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Dg,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Y(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),Eg=v.forwardRef(cg(function(e,t){let n=pg(Cg,e.__scopeDialog),r=v.useRef(!1),i=v.useRef(!1);return(0,R.jsx)(Dg,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),Dg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=pg(Cg,n);return Hm(),(0,R.jsx)(R.Fragment,{children:(0,R.jsx)(mm,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,R.jsx)(nm,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":Mg(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),Og=`DialogTitle`,kg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(Og,n),{setTitleCount:a}=i;return sp(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,R.jsx)(Wp.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),Ag=`DialogClose`,jg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(Ag,n);return(0,R.jsx)(Wp.button,{type:`button`,...r,ref:t,onClick:Y(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function Mg(e){return e?`open`:`closed`}cg(Mg,`getState`);var Ng=window.__DESIGN_STATIC__===!0,Pg=class extends Error{status;constructor(e,t){super(t),this.status=e}};async function Fg(e,t){let n=await fetch(e,{cache:t});if(!n.ok){let e=`${n.status} ${n.statusText}`;try{let t=await n.json();t.error&&(e=t.error)}catch{}throw new Pg(n.status,e)}return await n.json()}async function Ig(e){try{return await e}catch(e){if(e instanceof Pg&&e.status===404)return null;throw e}}var Lg=``;function Rg(e){return Lg!==e.version&&(Lg=e.version,console.info(`foss-design ${e.version}${Ng?` (static build)`:``}`)),e}var zg={live:!0,project:()=>Fg(`/api/project`,`no-store`).then(Rg),canvas:async e=>({doc:await Fg(`/api/canvas/${encodeURIComponent(e)}`,`no-store`),base:``}),system:async()=>{let e=await Ig(Fg(`/api/system`,`no-store`));return e?{doc:e,base:``}:null},async source(e){let t=await fetch(`/api/source?path=${encodeURIComponent(e)}`,{cache:`no-store`});if(!t.ok)throw new Pg(t.status,`Could not read ${e}`);return t.text()}},Bg=null,Vg={live:!1,project:()=>Fg(`api/project.json`,`default`).then(Rg),canvas:async e=>({doc:await Fg(`api/canvas/${encodeURIComponent(e)}.json`,`default`),base:``}),system:async()=>{let e=await Ig(Fg(`api/system.json`,`default`));return e?{doc:e,base:``}:null},async source(e){Bg??=Fg(`api/sources.json`,`default`).catch(()=>({}));let t=(await Bg)[e];if(t===void 0)throw new Pg(404,`${e} is not in this build`);return t}};function Hg(e,t){if(!t)return e;try{let n=new URL(t.endsWith(`/`)?t:`${t}/`,document.baseURI);return new URL(e,n).href}catch{return e}}function Ug(e,t){if(!t)return e;let n=e=>Hg(e,t);return{...e,pages:e.pages.map(e=>({...e,sections:e.sections.map(e=>({...e,items:e.items.map(e=>{if(e.kind===`screen`){let t=e=>e?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t&&n(t)])):void 0;return{...e,url:n(e.url),snapshots:t(e.snapshots),thumbs:t(e.thumbs)}}return e.kind===`image`?{...e,url:n(e.url)}:e})}))}))}}function Wg(e,t){if(!t)return e;let n=e=>Hg(e,t);return{...e,components:e.components.map(e=>({...e,url:n(e.url)})),assets:e.assets.map(e=>({...e,url:n(e.url)})),typographyUrl:e.typographyUrl&&n(e.typographyUrl)}}function Gg(e){return{all:[`design`,e],project:[`design`,e,`project`],canvas:t=>[`design`,e,`canvas`,t],system:[`design`,e,`system`],sources:[`design`,e,`source`],source:(t,n)=>[`design`,e,`source`,t,n]}}var Kg=new WeakMap,qg=0;function Jg(e){let t=Kg.get(e);return t||(qg+=1,t=String(qg),Kg.set(e,t)),t}var Yg=(0,v.createContext)(null);function Xg(){let e=(0,v.useContext)(Yg);if(!e)throw Error(`foss-design: this component renders inside <DesignViewer>`);return e}function Zg(e,t){if(e===t)return!0;try{return decodeURIComponent(e)===t}catch{return!1}}function Qg(e){return new zt({defaultOptions:{queries:{staleTime:e?0:1/0,retry:1,refetchOnWindowFocus:!1}}})}function $g(){let{source:e,keys:t,scope:n}=Xg();return Zt({queryKey:t.project,queryFn:()=>e.project(),enabled:!n})}function e_(e,t=!0){let{source:n,keys:r}=Xg();return Zt({queryKey:r.canvas(e),queryFn:async()=>{let{doc:t,base:r}=await n.canvas(e);return Ug(t,r)},placeholderData:e=>e,enabled:t})}function t_(e=!0){let{source:t,keys:n}=Xg();return Zt({queryKey:n.system,queryFn:async()=>{let e=await t.system();return e?Wg(e.doc,e.base):null},enabled:e})}function n_(e,t=`system`){let{source:n,keys:r}=Xg();return Zt({queryKey:r.source(t,e??``),queryFn:()=>n.source(e,t),enabled:!!e})}function r_(e,t){let n=null,r=!1;return n=new EventSource(`/api/events`),n.onopen=()=>{r&&(r=!1,e.invalidateQueries({queryKey:t.all}))},n.onerror=()=>{r=!0},n.onmessage=n=>{let r;try{r=JSON.parse(n.data)}catch{return}if(r.type===`project`)e.invalidateQueries({queryKey:t.project});else if(r.type===`system`)e.invalidateQueries({queryKey:t.system}),e.invalidateQueries({queryKey:t.sources});else if(r.type===`canvas`||r.type===`snapshot`){let n=r.type===`canvas`?r.id:r.canvas;e.invalidateQueries({queryKey:t.canvas(n)}),r.type===`snapshot`&&e.invalidateQueries({queryKey:t.project})}},()=>n?.close()}function X(...e){return e.filter(Boolean).join(` `)}var i_=null;function a_(e,t){i_={canvas:e,item:t},window.dispatchEvent(new CustomEvent(`design:focus`,{detail:i_}))}function o_(e){if(!i_||i_.canvas!==e)return null;let t=i_.item;return i_=null,t}var s_=class{value;listeners=new Set;constructor(e){this.value=e}get=()=>this.value;set=e=>{let t=typeof e==`function`?e(this.value):e;if(!Object.is(t,this.value)){this.value=t;for(let e of this.listeners)e()}};subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})};function c_(e,t=e=>e){return(0,v.useSyncExternalStore)(e.subscribe,()=>t(e.get()),()=>t(e.get()))}var l_=`foss-design.theme`;function u_(){try{let e=localStorage.getItem(l_);if(e===`light`||e===`dark`||e===`system`)return e}catch{}return`system`}var d_=new s_(u_()),f_=window.matchMedia(`(prefers-color-scheme: dark)`);function p_(e){return e===`system`?f_.matches?`dark`:`light`:e}function m_(){document.documentElement.dataset.theme=p_(d_.get())}f_.addEventListener(`change`,m_),d_.subscribe(m_),m_();function h_(e){try{localStorage.setItem(l_,e)}catch{}d_.set(e)}function g_(){return c_(d_)}function __(){let e=c_(d_),t=(0,v.useSyncExternalStore)(e=>(f_.addEventListener(`change`,e),()=>f_.removeEventListener(`change`,e)),()=>f_.matches);return e===`system`?t?`dark`:`light`:e}var v_={plus:`<path d="M5 12h14"/><path d="M12 5v14"/>`,check:`<path d="M20 6 9 17l-5-5"/>`,x:`<path d="M18 6 6 18"/><path d="m6 6 12 12"/>`,"chevron-down":`<path d="m6 9 6 6 6-6"/>`,"chevron-up":`<path d="m18 15-6-6-6 6"/>`,"chevron-right":`<path d="m9 18 6-6-6-6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>`,chevrons:`<path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/>`,copy:`<rect width="14" height="14" x="8" y="8" rx="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`,search:`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>`,bell:`<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/>`,refresh:`<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/>`,"up-right":`<path d="M7 7h10v10"/><path d="M7 17 17 7"/>`,"down-left":`<path d="M17 7 7 17"/><path d="M17 17H7V7"/>`,external:`<path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>`,"user-plus":`<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M19 8v6"/><path d="M22 11h-6"/>`,user:`<circle cx="12" cy="8" r="5"/><path d="M20 21a8 8 0 0 0-16 0"/>`,trash:`<path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/>`,more:`<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>`,alert:`<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>`,info:`<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>`,upload:`<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m17 8-5-5-5 5"/><path d="M12 3v12"/>`,download:`<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m7 10 5 5 5-5"/><path d="M12 15V3"/>`,shield:`<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/>`,logout:`<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="m16 17 5-5-5-5"/><path d="M21 12H9"/>`,loader:`<path d="M21 12a9 9 0 1 1-6.219-8.56"/>`,"circle-check":`<circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/>`,"circle-dashed":`<circle cx="12" cy="12" r="9" stroke-dasharray="3 3"/>`,clock:`<circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/>`,mail:`<rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/>`,send:`<path d="m22 2-7 20-4-9-9-4Z"/><path d="M22 2 11 13"/>`,chat:`<path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"/>`,wallet:`<path d="M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1"/><path d="M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"/>`,"file-code":`<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="m10 13-2 2 2 2"/><path d="m14 17 2-2-2-2"/>`,ban:`<circle cx="12" cy="12" r="10"/><path d="m4.9 4.9 14.2 14.2"/>`,code:`<path d="m16 18 6-6-6-6"/><path d="m8 6-6 6 6 6"/>`,"chevron-left":`<path d="m15 18-6-6 6-6"/>`,bluetooth:`<path d="m7 7 10 10-5 5V2l5 5L7 17"/>`,face:`<path d="M3 7V5a2 2 0 0 1 2-2h2"/><path d="M17 3h2a2 2 0 0 1 2 2v2"/><path d="M21 17v2a2 2 0 0 1-2 2h-2"/><path d="M7 21H5a2 2 0 0 1-2-2v-2"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><path d="M9 9h.01"/><path d="M15 9h.01"/>`,eye:`<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>`,clipboard:`<rect width="8" height="4" x="8" y="2" rx="1" ry="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>`,grip:`<circle cx="9" cy="5" r="1"/><circle cx="9" cy="12" r="1"/><circle cx="9" cy="19" r="1"/><circle cx="15" cy="5" r="1"/><circle cx="15" cy="12" r="1"/><circle cx="15" cy="19" r="1"/>`,list:`<path d="M3 12h.01"/><path d="M3 18h.01"/><path d="M3 6h.01"/><path d="M8 12h13"/><path d="M8 18h13"/><path d="M8 6h13"/>`,lock:`<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>`,hw:`<rect width="20" height="10" x="2" y="7" rx="2"/><path d="M15 7v10"/><circle cx="8" cy="12" r="1.5"/>`,link:`<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>`,signal:`<path d="M2 20h.01"/><path d="M7 20v-4"/><path d="M12 20v-8"/><path d="M17 20V8"/>`,grid:`<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>`,coins:`<circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18"/><path d="M7 6h1v4"/><path d="m16.71 13.88.7.71-2.82 2.82"/>`,arrows:`<path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/>`,key:`<path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"/><path d="m21 2-9.6 9.6"/><circle cx="7.5" cy="15.5" r="5.5"/>`,blocks:`<rect width="7" height="7" x="14" y="3" rx="1"/><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"/>`,settings:`<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>`,qr:`<rect width="5" height="5" x="3" y="3" rx="1"/><rect width="5" height="5" x="16" y="3" rx="1"/><rect width="5" height="5" x="3" y="16" rx="1"/><path d="M21 16h-3a2 2 0 0 0-2 2v3"/><path d="M21 21v.01"/><path d="M12 7v3a2 2 0 0 1-2 2H7"/><path d="M3 12h.01"/><path d="M12 3h.01"/><path d="M12 16v.01"/><path d="M16 12h1"/><path d="M21 12v.01"/><path d="M12 21v-1"/>`,edit:`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/>`,star:`<path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"/>`,home:`<path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"/><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>`,moon:`<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>`,sun:`<circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>`,languages:`<path d="m5 8 6 6"/><path d="m4 14 6-6 2-3"/><path d="M2 5h12"/><path d="M7 2h1"/><path d="m22 22-5-10-5 10"/><path d="M14 18h6"/>`,"arrow-left":`<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>`,play:`<polygon points="6 3 20 12 6 21 6 3"/>`,"zoom-in":`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/><path d="M11 8v6"/><path d="M8 11h6"/>`,"zoom-out":`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/><path d="M8 11h6"/>`,fit:`<path d="M8 3H5a2 2 0 0 0-2 2v3"/><path d="M21 8V5a2 2 0 0 0-2-2h-3"/><path d="M3 16v3a2 2 0 0 0 2 2h3"/><path d="M16 21h3a2 2 0 0 0 2-2v-3"/>`,"panel-left":`<rect width="18" height="18" x="3" y="3" rx="2"/><path d="M9 3v18"/>`,layers:`<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"/><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"/>`,file:`<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/>`,palette:`<circle cx="13.5" cy="6.5" r="1"/><circle cx="17.5" cy="10.5" r="1"/><circle cx="8.5" cy="7.5" r="1"/><circle cx="6.5" cy="12.5" r="1"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.93 0 1.65-.75 1.65-1.69 0-.44-.18-.84-.44-1.13-.29-.29-.44-.65-.44-1.13a1.64 1.64 0 0 1 1.67-1.67h2c3.05 0 5.55-2.5 5.55-5.55C21.96 6.01 17.46 2 12 2z"/>`,type:`<path d="M4 7V4h16v3"/><path d="M9 20h6"/><path d="M12 4v16"/>`,shape:`<path d="M5 3a2 2 0 0 0-2 2"/><path d="M19 3a2 2 0 0 1 2 2"/><path d="M21 19a2 2 0 0 1-2 2"/><path d="M5 21a2 2 0 0 1-2-2"/><path d="M9 3h1"/><path d="M9 21h1"/><path d="M14 3h1"/><path d="M14 21h1"/><path d="M3 9v1"/><path d="M21 9v1"/><path d="M3 14v1"/><path d="M21 14v1"/>`,motion:`<path d="M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/><path d="M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/><path d="M2 6c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>`,book:`<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>`,image:`<rect width="18" height="18" x="3" y="3" rx="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.09-3.09a2 2 0 0 0-2.82 0L6 21"/>`,monitor:`<rect width="20" height="14" x="2" y="3" rx="2"/><path d="M8 21h8"/><path d="M12 17v4"/>`,smartphone:`<rect width="14" height="20" x="5" y="2" rx="2"/><path d="M12 18h.01"/>`,tablet:`<rect width="16" height="20" x="4" y="2" rx="2"/><path d="M12 18h.01"/>`,note:`<path d="M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z"/><path d="M15 3v4a2 2 0 0 0 2 2h4"/>`,globe:`<circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/>`,pointer:`<path d="M4.04 4.69a.5.5 0 0 1 .65-.65l16 6.5a.5.5 0 0 1-.06.95l-6.12 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.12a.5.5 0 0 1-.95.06z"/>`,component:`<path d="M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z"/><path d="m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z"/><path d="M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z"/><path d="m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z"/>`,keyboard:`<rect width="20" height="16" x="2" y="4" rx="2"/><path d="M6 8h.01"/><path d="M10 8h.01"/><path d="M14 8h.01"/><path d="M18 8h.01"/><path d="M8 12h.01"/><path d="M12 12h.01"/><path d="M16 12h.01"/><path d="M7 16h10"/>`,folder:`<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>`,canvas:`<rect width="7" height="9" x="3" y="3" rx="1"/><rect width="7" height="5" x="14" y="3" rx="1"/><rect width="7" height="9" x="14" y="12" rx="1"/><rect width="7" height="5" x="3" y="16" rx="1"/>`};function Z({name:e,size:t=16,strokeWidth:n=1.75,className:r}){return(0,R.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:n,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,className:`shrink-0 ${e===`loader`?`animate-spin`:``} ${r??``}`,dangerouslySetInnerHTML:{__html:v_[e]}})}function Q({children:e,size:t=12.5,className:n,title:r,wrap:i}){return(0,R.jsx)(`span`,{title:r,className:X(i?`break-all`:`whitespace-nowrap`,`font-mono`,n),style:{fontSize:t},children:e})}function y_({children:e}){return(0,R.jsx)(`kbd`,{className:`rounded-[4px] border border-rule bg-surface px-[5px] py-px font-mono text-[11px] text-ink2`,children:e})}function b_({top:e,bottom:t,weight:n=500}){return(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-px`,children:[(0,R.jsx)(`span`,{className:`truncate leading-[1.35]`,style:{fontWeight:n},children:e}),t?(0,R.jsx)(`span`,{className:`flex min-w-0 items-center gap-2.5 overflow-hidden whitespace-nowrap text-[12.5px] leading-[1.35] text-muted`,children:t}):null]})}var x_={canvas:`This canvas`,canvases:`Canvases`,system:`Design system`,actions:`Actions`};function S_(e){let t=/^\/c\/([^/]+)/.exec(e);return t?decodeURIComponent(t[1]):null}function C_({onClose:e}){let[t,n]=F(),r=Xg().scope,i=$g().data,a=r?.canvas??S_(t),o=e_(a??``,!!a).data,s=t_(!!i?.system).data,[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(0),f=t=>()=>{e(),t()},p=[];if(o)for(let e of o.pages){p.push({id:`page:${e.id}`,group:`canvas`,label:e.title,icon:`file`,hint:`Page`,run:f(()=>n(`/c/${encodeURIComponent(o.id)}/p/${encodeURIComponent(e.id)}`))});for(let t of e.sections)for(let r of t.items)(r.kind===`screen`||r.kind===`url`)&&p.push({id:`item:${e.id}:${r.id}`,group:`canvas`,label:r.title,icon:r.kind===`url`?`globe`:`monitor`,hint:t.title?`${e.title} · ${t.title}`:e.title,keywords:`${r.id} ${t.title??``}`,searchOnly:!0,run:f(()=>{n(`/c/${encodeURIComponent(o.id)}/p/${encodeURIComponent(e.id)}`),a_(o.id,r.id)})})}for(let e of i?.canvases??[])e.id!==a&&p.push({id:`canvas:${e.id}`,group:`canvases`,label:e.title,icon:`canvas`,hint:`${e.screens} screens`,keywords:e.id,run:f(()=>n(`/c/${encodeURIComponent(e.id)}`))});if(i?.system){for(let[e,t,r]of[[`Overview`,`/system`,`book`],[`Colors`,`/system/colors`,`palette`],[`Typography`,`/system/typography`,`type`],[`Spacing & shape`,`/system/shape`,`shape`]])p.push({id:`sys:${t}`,group:`system`,label:e,icon:r,run:f(()=>n(t))});for(let e of s?.components??[])p.push({id:`component:${e.id}`,group:`system`,label:e.title,icon:`component`,hint:e.group,searchOnly:!0,run:f(()=>n(`/system/components/${encodeURIComponent(e.id)}`))});for(let e of s?.guidelines??[])p.push({id:`guide:${e.slug}`,group:`system`,label:e.title,icon:`book`,hint:`Guideline`,searchOnly:!0,run:f(()=>n(`/system/guidelines/${encodeURIComponent(e.slug)}`))})}r||p.push({id:`home`,group:`actions`,label:`All canvases`,icon:`home`,run:f(()=>n(`/`))}),p.push({id:`light`,group:`actions`,label:`Light appearance`,icon:`sun`,searchOnly:!0,run:f(()=>h_(`light`))},{id:`dark`,group:`actions`,label:`Dark appearance`,icon:`moon`,searchOnly:!0,run:f(()=>h_(`dark`))},{id:`system-theme`,group:`actions`,label:`System appearance`,icon:`monitor`,searchOnly:!0,run:f(()=>h_(`system`))});let m=c.trim().toLowerCase(),h=p.filter(e=>m?`${e.label} ${e.keywords??``} ${typeof e.hint==`string`?e.hint:``}`.toLowerCase().includes(m):!e.searchOnly),g=[`canvas`,`canvases`,`system`,`actions`].map(e=>({group:e,items:h.filter(t=>t.group===e)})).filter(e=>e.items.length),_=g.flatMap(e=>e.items),y=Math.min(u,Math.max(_.length-1,0)),b=-1;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(kg,{className:`sr-only`,children:`Search and jump`}),(0,R.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-2.5 border-b border-rule px-4`,children:[(0,R.jsx)(Z,{name:`search`,size:16,className:`text-muted`}),(0,R.jsx)(`input`,{value:c,onChange:e=>{l(e.target.value),d(0)},onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),d((y+1)%Math.max(_.length,1))):e.key===`ArrowUp`?(e.preventDefault(),d((y-1+_.length)%Math.max(_.length,1))):e.key===`Enter`&&(e.preventDefault(),_[y]?.run())},placeholder:`Canvases, screens, components…`,"aria-label":`Search and jump`,role:`combobox`,"aria-expanded":`true`,"aria-controls":`palette-list`,autoComplete:`off`,spellCheck:!1,className:`h-full min-w-0 grow border-0 bg-transparent text-[15px] text-ink outline-none placeholder:text-muted`}),(0,R.jsx)(y_,{children:`esc`})]}),(0,R.jsx)(`div`,{id:`palette-list`,role:`listbox`,className:`min-h-0 grow overflow-y-auto py-1.5`,children:g.length?g.map(({group:e,items:t})=>(0,R.jsxs)(`div`,{role:`presentation`,children:[(0,R.jsx)(`div`,{className:`px-4 pt-2.5 pb-1 text-[12px] text-muted`,children:x_[e]}),t.map(e=>{b+=1;let t=b,n=t===y;return(0,R.jsxs)(`button`,{type:`button`,role:`option`,tabIndex:-1,"aria-selected":n,ref:n?e=>e?.scrollIntoView({block:`nearest`}):void 0,onMouseMove:()=>n?void 0:d(t),onClick:e.run,className:X(`flex h-10 w-full cursor-pointer items-center gap-3 border-0 px-4 text-left text-[13.5px] text-ink`,n?`bg-soft`:`bg-transparent`),children:[(0,R.jsx)(`span`,{className:`flex w-5 shrink-0 justify-center text-ink2`,children:(0,R.jsx)(Z,{name:e.icon,size:16})}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.label}),e.hint?(0,R.jsx)(`span`,{className:`flex shrink-0 items-center text-[12.5px] text-muted`,children:e.hint}):null]},e.id)})]},e)):(0,R.jsx)(`div`,{className:`px-6 py-10 text-center text-[13px] text-muted`,children:`Nothing matches.`})}),(0,R.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-4 border-t border-rule bg-soft px-4 text-[12px] text-muted`,children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(y_,{children:`↑`}),(0,R.jsx)(y_,{children:`↓`}),`move`]}),(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(y_,{children:`↵`}),`open`]})]})]})}function w_(){let[e,t]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{let e=()=>t(e=>!e),n=t=>{(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===`k`&&(t.preventDefault(),e())};return window.addEventListener(`keydown`,n),window.addEventListener(`design:palette`,e),()=>{window.removeEventListener(`keydown`,n),window.removeEventListener(`design:palette`,e)}},[]),(0,R.jsx)(mg,{open:e,onOpenChange:t,children:(0,R.jsx)($u,{children:e?(0,R.jsx)(vg,{forceMount:!0,children:(0,R.jsx)(bg,{asChild:!0,forceMount:!0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.14},className:`fixed inset-0 z-50 flex items-start justify-center bg-overlay p-6 pt-[12vh]`,children:(0,R.jsx)(wg,{asChild:!0,forceMount:!0,"aria-describedby":void 0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0,scale:.98,y:-6},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,transition:{duration:.1}},transition:{type:`spring`,stiffness:560,damping:40},className:`flex max-h-[min(560px,76vh)] w-[560px] max-w-full flex-col overflow-hidden rounded-[12px] border border-rule bg-surface shadow-pop outline-none`,children:(0,R.jsx)(C_,{onClose:()=>t(!1)})})})})})}):null})})}var T_=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘`:`Ctrl`;function E_(){window.dispatchEvent(new CustomEvent(`design:palette`))}function D_({width:e=240,label:t=`Search and jump`}){return(0,R.jsxs)(`button`,{type:`button`,onClick:E_,style:{width:e},"aria-label":t,className:`flex h-ctrl min-w-0 shrink cursor-pointer items-center gap-2 rounded-[6px] border border-rule bg-soft pr-1.5 pl-3 text-ctrl text-muted transition-colors hover:border-rule-strong max-lg:w-auto! max-md:w-ctrl! max-md:justify-center max-md:border-0 max-md:bg-transparent max-md:p-0`,children:[(0,R.jsx)(Z,{name:`search`,size:15}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate text-left max-lg:hidden`,children:t}),(0,R.jsx)(`span`,{className:`flex max-md:hidden`,children:(0,R.jsx)(y_,{children:T_===`⌘`?`⌘K`:`Ctrl K`})})]})}var O_={primary:`border border-primary bg-primary text-primary-ink hover:opacity-90`,secondary:`border border-rule-strong bg-surface text-ink hover:bg-soft`,ghost:`border border-transparent bg-transparent text-ink2 hover:bg-soft2`,dashed:`border border-dashed border-rule-strong bg-transparent text-ink2 hover:bg-soft`,danger:`border border-danger bg-danger text-on-danger hover:opacity-90`},k_=(e=`secondary`,t)=>X(`inline-flex h-ctrl shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-[6px] px-ctrl text-ctrl font-medium leading-none no-underline transition-[background-color,opacity] duration-100`,`disabled:cursor-not-allowed disabled:opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45`,O_[e],t),A_=(0,v.forwardRef)(function({kind:e=`secondary`,icon:t,loading:n,disabled:r,className:i,children:a,type:o=`button`,...s},c){return(0,R.jsxs)(`button`,{ref:c,type:o,disabled:r||n,"aria-busy":n||void 0,className:k_(e,i),...s,children:[n?(0,R.jsx)(Z,{name:`loader`,size:15,className:`animate-spin`}):t?(0,R.jsx)(Z,{name:t,size:15}):null,a]})}),j_={ghost:`border border-transparent bg-transparent text-muted hover:bg-soft2 hover:text-ink2`,secondary:`border border-rule-strong bg-surface text-ink2 hover:bg-soft`},M_=(e=`ghost`,t)=>X(`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] p-0 transition-colors duration-100 disabled:cursor-not-allowed disabled:opacity-45`,j_[e],t),N_=(0,v.forwardRef)(function({icon:e,label:t,kind:n=`ghost`,size:r=16,className:i,type:a=`button`,...o},s){return(0,R.jsx)(`button`,{ref:s,type:a,"aria-label":t,title:t,className:M_(n,i),...o,children:(0,R.jsx)(Z,{name:e,size:r})})});function P_({to:e,kind:t=`secondary`,icon:n,className:r,children:i}){return(0,R.jsxs)(ye,{href:e,className:k_(t,r),children:[n?(0,R.jsx)(Z,{name:n,size:15}):null,i]})}function F_({kind:e=`secondary`,icon:t,className:n,children:r,...i}){return(0,R.jsxs)(`a`,{className:k_(e,n),...i,children:[t?(0,R.jsx)(Z,{name:t,size:15}):null,r]})}var I_=Object.defineProperty,L_=(e,t)=>I_(e,`name`,{value:t,configurable:!0});function R_(e){let t=e+`CollectionProvider`,[n,r]=ap(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=L_(e=>{let{scope:t,children:n}=e,r=v.useRef(null),a=v.useRef(new Map).current;return(0,R.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=kp(s),l=v.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=tp(t,a(s,n).collectionRef);return(0,R.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=kp(u),p=v.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=v.useRef(null),s=tp(t,o),c=a(u,n);return v.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,R.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return v.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return L_(m,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},m,r]}L_(R_,`createCollection`);var z_=new WeakMap,B_=class e extends Map{static{L_(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],z_.set(this,!0)}set(e,t){return z_.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=U_(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=V_(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=V_(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return V_(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function V_(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=H_(e,t);return n===-1?void 0:e[n]}L_(V_,`at`);function H_(e,t){let n=e.length,r=U_(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}L_(H_,`toSafeIndex`);function U_(e){return e!==e||e===0?0:Math.trunc(e)}L_(U_,`toSafeInteger`);function W_(e){let t=e+`CollectionProvider`,[n,r]=ap(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new B_,setItemMap:L_(()=>void 0,`setItemMap`)}),o=L_(({state:e,...t})=>e?(0,R.jsx)(c,{...t,state:e}):(0,R.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=L_(e=>{let t=h();return(0,R.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=L_(e=>{let{scope:t,children:n,state:r}=e,a=v.useRef(null),[o,s]=v.useState(null),c=tp(a,s),[l,u]=r;return v.useEffect(()=>{if(!o)return;let e=J_(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,R.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=kp(l),d=v.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=tp(t,a(l,n).collectionRef);return(0,R.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=kp(f),m=v.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=v.useRef(null),[s,c]=v.useState(null),l=tp(t,o,c),{setItemMap:u}=a(f,n),d=v.useRef(i);G_(d.current,i)||(d.current=i);let m=d.current;return v.useEffect(()=>{let e=m;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(q_):(t.set(s,{...e,element:s}),t.toSorted(q_)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new B_(e)))}},[s,m,u]),(0,R.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});m.displayName=f;function h(){return v.useState(new B_)}L_(h,`useInitCollection`);function g(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return L_(g,`useCollection`),[{Provider:o,Slot:d,ItemSlot:m},{createCollectionScope:r,useCollection:g,useInitCollection:h}]}L_(W_,`createCollection`);function G_(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}L_(G_,`shallowEqual`);function K_(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}L_(K_,`isElementPreceding`);function q_(e,t){return!e[1].element||!t[1].element?0:K_(e[1].element,t[1].element)?-1:1}L_(q_,`sortByDocumentPosition`);function J_(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}L_(J_,`getChildListObserver`);var Y_=Object.defineProperty,X_=(e,t)=>Y_(e,`name`,{value:t,configurable:!0}),Z_=v.createContext(void 0);function Q_(e){let t=v.useContext(Z_);return e||t||`ltr`}X_(Q_,`useDirection`);var $_=[`top`,`right`,`bottom`,`left`],ev=Math.min,tv=Math.max,nv=Math.round,rv=Math.floor,iv=e=>({x:e,y:e}),av={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ov(e,t,n){return tv(e,ev(t,n))}function sv(e,t){return typeof e==`function`?e(t):e}function cv(e){return e.split(`-`)[0]}function lv(e){return e.split(`-`)[1]}function uv(e){return e===`x`?`y`:`x`}function dv(e){return e===`y`?`height`:`width`}function fv(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function pv(e){return uv(fv(e))}function mv(e,t,n){n===void 0&&(n=!1);let r=lv(e),i=pv(e),a=dv(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Cv(o)),[o,Cv(o)]}function hv(e){let t=Cv(e);return[gv(e),t,gv(t)]}function gv(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var _v=[`left`,`right`],vv=[`right`,`left`],yv=[`top`,`bottom`],bv=[`bottom`,`top`];function xv(e,t,n){switch(e){case`top`:case`bottom`:return n?t?vv:_v:t?_v:vv;case`left`:case`right`:return t?yv:bv;default:return[]}}function Sv(e,t,n,r){let i=lv(e),a=xv(cv(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(gv)))),a}function Cv(e){let t=cv(e);return av[t]+e.slice(t.length)}function wv(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function Tv(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:wv(e)}function Ev(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Dv(e,t,n){let{reference:r,floating:i}=e,a=fv(t),o=pv(t),s=dv(o),c=cv(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=lv(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function Ov(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=sv(t,e),p=Tv(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ev(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ev(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var kv=50,Av=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ov},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Dv(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<kv&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Dv(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},jv=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=sv(e,t)||{};if(l==null)return{};let d=Tv(u),f={x:n,y:r},p=pv(i),m=dv(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=ev(d[_],T),D=ev(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=ov(E,k,O),j=!c.arrow&&lv(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,ee=j?k<E?k-E:k-O:0;return{[p]:f[p]+ee,data:{[p]:A,centerOffset:k-A-ee,...j&&{alignmentOffset:ee}},reset:j}}}),Mv=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=sv(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=cv(r),_=fv(o),v=cv(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Cv(o)]:hv(o)),x=p!==`none`;!d&&x&&b.push(...Sv(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=mv(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===fv(t)||T.every(e=>fv(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=fv(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Nv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Pv(e){return $_.some(t=>e[t]>=0)}var Fv=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=sv(e,t);switch(i){case`referenceHidden`:{let e=Nv(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Pv(e)}}}case`escaped`:{let e=Nv(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Pv(e)}}}default:return{}}}}},Iv=new Set([`left`,`top`]);async function Lv(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=cv(n),s=lv(n),c=fv(n)===`y`,l=Iv.has(o)?-1:1,u=a&&c?-1:1,d=sv(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Rv=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Lv(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},zv=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=sv(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=fv(i),p=uv(f),m=u[p],h=u[f],g=(e,t)=>ov(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Bv=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=sv(e,t),u={x:n,y:r},d=fv(i),f=uv(d),p=u[f],m=u[d],h=sv(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Iv.has(cv(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Vv=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=sv(e,t),c=await i.detectOverflow(t,s),l=cv(n),u=lv(n),d=fv(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=ev(p-c[m],g),y=ev(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*tv(c.left,c.right):S=p-2*tv(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function Hv(){return typeof window<`u`}function Uv(e){return Kv(e)?(e.nodeName||``).toLowerCase():`#document`}function Wv(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Gv(e){return((Kv(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Kv(e){return Hv()?e instanceof Node||e instanceof Wv(e).Node:!1}function qv(e){return Hv()?e instanceof Element||e instanceof Wv(e).Element:!1}function Jv(e){return Hv()?e instanceof HTMLElement||e instanceof Wv(e).HTMLElement:!1}function Yv(e){return!Hv()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Wv(e).ShadowRoot}function Xv(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=sy(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Zv(e){return/^(table|td|th)$/.test(Uv(e))}function Qv(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var $v=/transform|translate|scale|rotate|perspective|filter/,ey=/paint|layout|strict|content/,ty=e=>!!e&&e!==`none`,ny;function ry(e){let t=qv(e)?sy(e):e;return ty(t.transform)||ty(t.translate)||ty(t.scale)||ty(t.rotate)||ty(t.perspective)||!ay()&&(ty(t.backdropFilter)||ty(t.filter))||$v.test(t.willChange||``)||ey.test(t.contain||``)}function iy(e){let t=ly(e);for(;Jv(t)&&!oy(t);){if(ry(t))return t;if(Qv(t))return null;t=ly(t)}return null}function ay(){return ny??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ny}function oy(e){return/^(html|body|#document)$/.test(Uv(e))}function sy(e){return Wv(e).getComputedStyle(e)}function cy(e){return qv(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ly(e){if(Uv(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Yv(e)&&e.host||Gv(e);return Yv(t)?t.host:t}function uy(e){let t=ly(e);return oy(t)?(e.ownerDocument||e).body:Jv(t)&&Xv(t)?t:uy(t)}function dy(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=uy(e),i=r===e.ownerDocument?.body,a=Wv(r);if(i){let e=fy(a);return t.concat(a,a.visualViewport||[],Xv(r)?r:[],e&&n?dy(e):[])}return t.concat(r,dy(r,[],n))}function fy(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function py(e){let t=sy(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Jv(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=nv(n)!==a||nv(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function my(e){return qv(e)?e:e.contextElement}function hy(e){let t=my(e);if(!Jv(t))return iv(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=py(t),o=(a?nv(n.width):n.width)/r,s=(a?nv(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var gy=iv(0);function _y(e){let t=Wv(e);return!ay()||!t.visualViewport?gy:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vy(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Wv(e)}function yy(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=my(e),o=iv(1);t&&(r?qv(r)&&(o=hy(r)):o=hy(e));let s=vy(a,n,r)?_y(a):iv(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=Wv(a),t=qv(r)?Wv(r):r,n=e,i=fy(n);for(;i&&t!==n;){let e=hy(i),t=i.getBoundingClientRect(),r=sy(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Wv(i),i=fy(n)}}return Ev({width:u,height:d,x:c,y:l})}function by(e,t){let n=cy(e).scrollLeft;return t?t.left+n:yy(Gv(e)).left+n}function xy(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-by(e,n),y:n.top+t.scrollTop}}function Sy(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Gv(r),s=t?Qv(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=iv(1),u=iv(0),d=Jv(r);if((d||!a)&&((Uv(r)!==`body`||Xv(o))&&(c=cy(r)),d)){let e=yy(r);l=hy(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?xy(o,c):iv(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Cy(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function wy(e){let t=cy(e),n=e.ownerDocument.body,r=tv(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=tv(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+by(e),o=-t.scrollTop;return sy(n).direction===`rtl`&&(a+=tv(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var Ty=25;function Ey(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=Wv(e),a=Gv(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!ay()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(by(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=Ty&&(s-=o)}return{width:s,height:c,x:l,y:u}}function Dy(e,t){let n=yy(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=hy(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Oy(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=Ey(e,n,t);else if(t===`document`)r=wy(Gv(e));else if(qv(t))r=Dy(t,n);else{let n=_y(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ev(r)}function ky(e,t){let n=t.get(e);if(n)return n;let r=dy(e,[],!1).filter(e=>qv(e)&&Uv(e)!==`body`),i=null,a=sy(e).position===`fixed`,o=a?ly(e):e;for(;qv(o)&&!oy(o);){let e=sy(o),t=ry(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=ly(o)}return t.set(e,r),r}function Ay(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Qv(t)?[]:ky(t,this._c):[].concat(n),r],o=Oy(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Oy(t,a[e],i);s=tv(n.top,s),c=ev(n.right,c),l=ev(n.bottom,l),u=tv(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function jy(e){let{width:t,height:n}=py(e);return{width:t,height:n}}function My(e,t,n){let r=Jv(t),i=Gv(t),a=n===`fixed`,o=yy(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=iv(0);if((r||!a)&&((Uv(t)!==`body`||Xv(i))&&(s=cy(t)),r)){let e=yy(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=by(i));let l=i&&!r&&!a?xy(i,s):iv(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Ny(e){return sy(e).position===`static`}function Py(e,t){if(!Jv(e)||sy(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Gv(e)===n&&(n=n.ownerDocument.body),n}function Fy(e,t){let n=Wv(e);if(Qv(e))return n;if(!Jv(e)){let t=ly(e);for(;t&&!oy(t);){if(qv(t)&&!Ny(t))return t;t=ly(t)}return n}let r=Py(e,t);for(;r&&Zv(r)&&Ny(r);)r=Py(r,t);return r&&oy(r)&&Ny(r)&&!ry(r)?n:r||iy(e)||n}var Iy=async function(e){let t=this.getOffsetParent||Fy,n=this.getDimensions,r=await n(e.floating);return{reference:My(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ly(e){return sy(e).direction===`rtl`}var Ry={convertOffsetParentRelativeRectToViewportRelativeRect:Sy,getDocumentElement:Gv,getClippingRect:Ay,getOffsetParent:Fy,getElementRects:Iy,getClientRects:Cy,getDimensions:jy,getScale:hy,isElement:qv,isRTL:Ly};function zy(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function By(e,t,n){let r=null,i,a=Gv(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=rv(d),h=rv(a.clientWidth-(u+f)),g=rv(a.clientHeight-(d+p)),_=rv(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:tv(0,ev(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!zy(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=Wv(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function Vy(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=my(e),u=i||a?[...l?dy(l):[],...t?dy(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?By(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?yy(e):null;c&&g();function g(){let t=yy(e);h&&!zy(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Hy=Rv,Uy=zv,Wy=Mv,Gy=Vv,Ky=Fv,qy=jv,Jy=Bv,Yy=(e,t,n)=>{let r=new Map,i=n??{},a={...Ry,...i.platform,_c:r};return Av(e,t,{...i,platform:a})},Xy=typeof document<`u`?v.useLayoutEffect:function(){};function Zy(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Zy(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Zy(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Qy(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function $y(e,t){let n=Qy(e);return Math.round(t*n)/n}function eb(e){let t=v.useRef(e);return Xy(()=>{t.current=e}),t}function tb(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=v.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=v.useState(r);Zy(f,r)||p(r);let[m,h]=v.useState(null),[g,_]=v.useState(null),y=v.useCallback(e=>{e!==C.current&&(C.current=e,h(e))},[]),b=v.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=a||m,S=o||g,C=v.useRef(null),w=v.useRef(null),T=v.useRef(u),E=c!=null,D=eb(c),O=eb(i),k=eb(l),A=v.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),Yy(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!Zy(T.current,t)&&(T.current=t,Ep.flushSync(()=>{d(t)}))})},[f,t,n,O,k]);Xy(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let j=v.useRef(!1);Xy(()=>(j.current=!0,()=>{j.current=!1}),[]),Xy(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let ee=v.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),te=v.useMemo(()=>({reference:x,floating:S}),[x,S]),M=v.useMemo(()=>{let e={position:n,left:0,top:0};if(!te.floating)return e;let t=$y(te.floating,u.x),r=$y(te.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Qy(te.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,te.floating,u.x,u.y]);return v.useMemo(()=>({...u,update:A,refs:ee,elements:te,floatingStyles:M}),[u,A,ee,te,M])}var nb=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:qy({element:r.current,padding:i}).fn(n):r?qy({element:r,padding:i}).fn(n):{}}}},rb=(e,t)=>{let n=Hy(e);return{name:n.name,fn:n.fn,options:[e,t]}},ib=(e,t)=>{let n=Uy(e);return{name:n.name,fn:n.fn,options:[e,t]}},ab=(e,t)=>({fn:Jy(e).fn,options:[e,t]}),ob=(e,t)=>{let n=Wy(e);return{name:n.name,fn:n.fn,options:[e,t]}},sb=(e,t)=>{let n=Gy(e);return{name:n.name,fn:n.fn,options:[e,t]}},cb=(e,t)=>{let n=Ky(e);return{name:n.name,fn:n.fn,options:[e,t]}},lb=(e,t)=>{let n=nb(e);return{name:n.name,fn:n.fn,options:[e,t]}},ub=Object.defineProperty,db=(e,t)=>ub(e,`name`,{value:t,configurable:!0});function fb(e){let[t,n]=v.useState(void 0);return sp(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}db(fb,`useSize`);var pb=Object.defineProperty,mb=(e,t)=>pb(e,`name`,{value:t,configurable:!0}),hb=`Popper`,[gb,_b]=ap(hb),[vb,yb]=gb(hb),bb=mb(e=>{let{__scopePopper:t,children:n}=e,[r,i]=v.useState(null),[a,o]=v.useState(void 0);return(0,R.jsx)(vb,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),xb=`PopperAnchor`,Sb=v.forwardRef(mb(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=yb(xb,n),o=v.useRef(null),s=a.onAnchorChange,c=tp(t,v.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=v.useRef(null);v.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&kb(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,R.jsx)(Wp.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),Cb=`PopperContent`,[wb,Tb]=gb(Cb),Eb=v.forwardRef(mb(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=yb(Cb,n),[_,y]=v.useState(null),b=tp(t,y),[x,S]=v.useState(null),C=fb(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},O=Array.isArray(l)?l:[l],k=O.length>0,A={padding:D,boundary:O.filter(Db),altBoundary:k},{refs:j,floatingStyles:ee,placement:te,isPositioned:M,middlewareData:N}=tb({strategy:`fixed`,placement:E,whileElementsMounted:mb((...e)=>Vy(...e,{animationFrame:p===`always`}),`whileElementsMounted`),elements:{reference:g.anchor},middleware:[rb({mainAxis:i+T,alignmentAxis:o}),c&&ib({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?ab():void 0,...A}),c&&ob({...A}),sb({...A,apply:mb(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),x&&lb({element:x,padding:s}),Ob({arrowWidth:w,arrowHeight:T}),f&&cb({strategy:`referenceHidden`,...A,boundary:k?A.boundary:void 0})]}),ne=g.setPlacementState;sp(()=>(ne(te),()=>{ne(void 0)}),[te,ne]);let[re,P]=kb(te),ie=Jp(m);sp(()=>{M&&ie?.()},[M,ie]);let ae=N.arrow?.x,oe=N.arrow?.y,se=N.arrow?.centerOffset!==0,[ce,le]=v.useState();return sp(()=>{_&&le(window.getComputedStyle(_).zIndex)},[_]),(0,R.jsx)(`div`,{ref:j.setFloating,"data-radix-popper-content-wrapper":``,style:{...ee,transform:M?ee.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[N.transformOrigin?.x,N.transformOrigin?.y].join(` `),...N.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,R.jsx)(wb,{scope:n,placedSide:re,placedAlign:P,onArrowChange:S,arrowX:ae,arrowY:oe,shouldHideArrow:se,children:(0,R.jsx)(Wp.div,{"data-side":re,"data-align":P,...h,ref:b,style:{...h.style,animation:M?h.style?.animation:`none`}})})})},`PopperContent`));function Db(e){return e!==null}mb(Db,`isNotNull`);var Ob=mb(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=kb(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function kb(e){let[t,n=`center`]=e.split(`-`);return[t,n]}mb(kb,`getSideAndAlignFromPlacement`);var Ab=bb,jb=Sb,Mb=Eb,Nb=Object.defineProperty,Pb=(e,t)=>Nb(e,`name`,{value:t,configurable:!0}),Fb=!1;function Ib(){let[e,t]=v.useState(Fb);return v.useEffect(()=>{Fb||(Fb=!0,t(!0))},[]),e}Pb(Ib,`useIsHydrated`);var Lb=v.useSyncExternalStore;function Rb(){return()=>{}}Pb(Rb,`subscribe`);function zb(){return Lb(Rb,()=>!0,()=>!1)}Pb(zb,`useIsHydratedModern`);var Bb=typeof Lb==`function`?zb:Ib,Vb=Object.defineProperty,Hb=(e,t)=>Vb(e,`name`,{value:t,configurable:!0}),Ub=`rovingFocusGroup.onEntryFocus`,Wb={bubbles:!1,cancelable:!0},Gb=`RovingFocusGroup`,[Kb,qb,Jb]=R_(Gb),[Yb,Xb]=ap(Gb,[Jb]),[Zb,Qb]=Yb(Gb),$b=v.forwardRef(Hb(function(e,t){return(0,R.jsx)(Kb.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,R.jsx)(Kb.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,R.jsx)(ex,{...e,ref:t})})})},`RovingFocusGroup`)),ex=v.forwardRef(Hb(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=v.useRef(null),p=tp(t,f),m=Q_(a),[h,g]=xp({prop:o,defaultProp:s??null,onChange:c,caller:Gb}),[_,y]=v.useState(!1),b=Jp(l),x=qb(n),S=v.useRef(!1),[C,w]=v.useState(0);return v.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(Ub,b),()=>e.removeEventListener(Ub,b)},[b]),(0,R.jsx)(Zb,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:h,onItemFocus:v.useCallback(e=>g(e),[g]),onItemShiftTab:v.useCallback(()=>y(!0),[]),onFocusableItemAdd:v.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:v.useCallback(()=>w(e=>e-1),[]),children:(0,R.jsx)(Wp.div,{tabIndex:_||C===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:Y(e.onMouseDown,()=>{S.current=!0}),onFocus:Y(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!_){let t=new CustomEvent(Ub,Wb);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);ox([e.find(e=>e.active),e.find(e=>e.id===h),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:Y(e.onBlur,()=>y(!1))})})},`RovingFocusGroupImpl`)),tx=`RovingFocusGroupItem`,nx=v.forwardRef(Hb(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=fp(),l=a||c,u=Qb(tx,n),d=u.currentTabStopId===l,f=qb(n),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:h}=u,g=Bb();return sp(()=>{if(g&&r)return p(),()=>m()},[g,r,p,m]),v.useEffect(()=>{if(!g&&r)return p(),()=>m()},[g,r,p,m]),(0,R.jsx)(Kb.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,R.jsx)(Wp.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:Y(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:Y(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:Y(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ax(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?sx(n,r+1):n.slice(r+1)}setTimeout(()=>ox(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:h!=null}):o})})},`RovingFocusGroupItem`)),rx={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ix(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}Hb(ix,`getDirectionAwareKey`);function ax(e,t,n){let r=ix(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return rx[r]}Hb(ax,`getFocusIntent`);function ox(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}Hb(ox,`focusFirst`);function sx(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Hb(sx,`wrapArray`);var cx=$b,lx=nx,ux=Object.defineProperty,dx=(e,t)=>ux(e,`name`,{value:t,configurable:!0}),fx=[`Enter`,` `],px=[`ArrowDown`,`PageUp`,`Home`],mx=[`ArrowUp`,`PageDown`,`End`],hx=[...px,...mx];[...fx],[...fx];var gx=`Menu`,[_x,vx,yx]=R_(gx),[bx,xx]=ap(gx,[yx,_b,Xb]),Sx=_b(),Cx=Xb(),[wx,Tx]=bx(gx),[Ex,Dx]=bx(gx),Ox=dx(e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Sx(t),[c,l]=v.useState(null),u=v.useRef(!1),d=Jp(a),f=Q_(i);return v.useEffect(()=>{let e=dx(()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},`handleKeyDown`),t=dx(()=>u.current=!1,`handlePointer`);return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),v.useEffect(()=>{if(!n)return;let e=dx(()=>d(!1),`handleBlur`);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[n,d]),(0,R.jsx)(Ab,{...s,children:(0,R.jsx)(wx,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,R.jsx)(Ex,{scope:t,onClose:v.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})},`Menu`),kx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e,i=Sx(n);return(0,R.jsx)(jb,{...i,...r,ref:t})},`MenuAnchor`)),Ax=`MenuPortal`,[jx,Mx]=bx(Ax,{forceMount:void 0}),Nx=dx(e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Tx(Ax,t);return(0,R.jsx)(jx,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`MenuPortal`),Px=`MenuContent`,[Fx,Ix]=bx(Px),Lx=v.forwardRef(dx(function(e,t){let n=Mx(Px,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Tx(Px,e.__scopeMenu),o=Dx(Px,e.__scopeMenu);return(0,R.jsx)(_x.Provider,{scope:e.__scopeMenu,children:(0,R.jsx)(jm,{present:r||a.open,children:(0,R.jsx)(_x.Slot,{scope:e.__scopeMenu,children:o.modal?(0,R.jsx)(Rx,{...i,ref:t}):(0,R.jsx)(zx,{...i,ref:t})})})})},`MenuContent`)),Rx=v.forwardRef(dx(function(e,t){let n=Tx(Px,e.__scopeMenu),r=v.useRef(null),i=tp(t,r);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Vx,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentModal`)),zx=v.forwardRef(dx(function(e,t){let n=Tx(Px,e.__scopeMenu);return(0,R.jsx)(Vx,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentNonModal`)),Bx=kp(`MenuContent.ScrollLock`),Vx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,g=Tx(Px,n),_=Dx(Px,n),y=Sx(n),b=Cx(n),x=vx(n),[S,C]=v.useState(null),w=v.useRef(null),T=tp(t,w,g.onContentChange),E=v.useRef(0),D=v.useRef(``),O=v.useRef(0),k=v.useRef(null),A=v.useRef(`right`),j=v.useRef(0),ee=m?Zh:v.Fragment,te=m?{as:Bx,allowPinchZoom:!0}:void 0,M=dx(e=>{let t=D.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=aS(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;dx((function e(t){D.current=t,window.clearTimeout(E.current),t!==``&&(E.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(t),o&&setTimeout(()=>o.focus())},`handleTypeaheadSearch`);v.useEffect(()=>()=>window.clearTimeout(E.current),[]),Hm();let N=v.useCallback(e=>A.current===k.current?.side&&sS(e,k.current?.area),[]);return(0,R.jsx)(Fx,{scope:n,searchRef:D,onItemEnter:v.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:v.useCallback(e=>{N(e)||(w.current?.focus(),C(null))},[N]),onTriggerLeave:v.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:O,onPointerGraceIntentChange:v.useCallback(e=>{k.current=e},[]),children:(0,R.jsx)(ee,{...te,children:(0,R.jsx)(mm,{asChild:!0,trapped:i,onMountAutoFocus:Y(a,e=>{e.preventDefault(),w.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,R.jsx)(cx,{asChild:!0,...b,dir:_.dir,orientation:`vertical`,loop:r,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:Y(c,e=>{_.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,R.jsx)(Mb,{role:`menu`,"aria-orientation":`vertical`,"data-state":eS(g.open),"data-radix-menu-content":``,dir:_.dir,...y,...h,ref:T,style:{outline:`none`,...h.style},onKeyDown:Y(h.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&M(e.key));let i=w.current;if(e.target!==i||!hx.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);mx.includes(e.key)&&a.reverse(),rS(a)}),onBlur:Y(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),D.current=``)}),onPointerMove:Y(e.onPointerMove,cS(e=>{let t=e.target,n=j.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>j.current?`right`:`left`;A.current=t,j.current=e.clientX}}))})})})})})})},`MenuContentImpl`)),Hx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e;return(0,R.jsx)(Wp.div,{...r,ref:t})},`MenuLabel`)),Ux=`MenuItem`,Wx=`menu.itemSelect`,Gx=v.forwardRef(dx(function(e,t){let{disabled:n=!1,onSelect:r,...i}=e,a=v.useRef(null),o=Dx(Ux,e.__scopeMenu),s=Ix(Ux,e.__scopeMenu),c=tp(t,a),l=v.useRef(!1),u=dx(()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Wx,{bubbles:!0,cancelable:!0});e.addEventListener(Wx,e=>r?.(e),{once:!0}),Gp(e,t),t.defaultPrevented?l.current=!1:o.onClose()}},`handleSelect`);return(0,R.jsx)(Kx,{...i,ref:c,disabled:n,onClick:Y(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:Y(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:Y(e.onKeyDown,e=>{n||e.target!==e.currentTarget||(s.searchRef.current===``||e.key!==` `)&&fx.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})},`MenuItem`)),Kx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=Ix(Ux,n),s=Cx(n),c=v.useRef(null),l=tp(t,c),[u,d]=v.useState(!1),[f,p]=v.useState(``);return v.useEffect(()=>{let e=c.current;e&&p((e.textContent??``).trim())},[a.children]),(0,R.jsx)(_x.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,R.jsx)(lx,{asChild:!0,...s,focusable:!r,children:(0,R.jsx)(Wp.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:Y(e.onPointerMove,cS(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Y(e.onPointerLeave,cS(e=>o.onItemLeave(e))),onFocus:Y(e.onFocus,()=>d(!0)),onBlur:Y(e.onBlur,()=>d(!1))})})})},`MenuItemImpl`)),[qx,Jx]=bx(`MenuRadioGroup`,{value:void 0,onValueChange:dx(()=>{},`onValueChange`)}),[Yx,Xx]=bx(`MenuItemIndicator`,{checked:!1}),Zx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e;return(0,R.jsx)(Wp.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})},`MenuSeparator`)),[Qx,$x]=bx(`MenuSub`);function eS(e){return e?`open`:`closed`}dx(eS,`getOpenState`);function tS(e){return e===`indeterminate`}dx(tS,`isIndeterminate`);function nS(e){return tS(e)?`indeterminate`:e?`checked`:`unchecked`}dx(nS,`getCheckedState`);function rS(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}dx(rS,`focusFirst`);function iS(e,t){return e.map((n,r)=>e[(t+r)%e.length])}dx(iS,`wrapArray`);function aS(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=iS(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}dx(aS,`getNextMatch`);function oS(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}dx(oS,`isPointInPolygon`);function sS(e,t){return t?oS({x:e.clientX,y:e.clientY},t):!1}dx(sS,`isPointerInGraceArea`);function cS(e){return t=>t.pointerType===`mouse`?e(t):void 0}dx(cS,`whenMouse`);var lS=Ox,uS=kx,dS=Nx,fS=Lx,pS=Hx,mS=Gx,hS=Zx,gS=Object.defineProperty,_S=(e,t)=>gS(e,`name`,{value:t,configurable:!0}),vS=`DropdownMenu`,[yS,bS]=ap(vS,[xx]),xS=xx(),[SS,CS]=yS(vS),wS=_S(e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=xS(t),l=v.useRef(null),[u,d]=xp({prop:i,defaultProp:a??!1,onChange:o,caller:vS});return(0,R.jsx)(SS,{scope:t,triggerId:fp(),triggerRef:l,contentId:fp(),open:u,onOpenChange:d,onOpenToggle:v.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,R.jsx)(lS,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})},`DropdownMenu`),TS=`DropdownMenuTrigger`,ES=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=CS(TS,n),o=xS(n),s=tp(t,a.triggerRef);return(0,R.jsx)(uS,{asChild:!0,...o,children:(0,R.jsx)(Wp.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:Y(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:Y(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})},`DropdownMenuTrigger`)),DS=_S(e=>{let{__scopeDropdownMenu:t,...n}=e,r=xS(t);return(0,R.jsx)(dS,{...r,...n})},`DropdownMenuPortal`),OS=`DropdownMenuContent`,kS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=CS(OS,n),a=xS(n),o=v.useRef(!1);return(0,R.jsx)(fS,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:Y(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuContent`)),AS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(pS,{...i,...r,ref:t})},`DropdownMenuLabel`)),jS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(mS,{...i,...r,ref:t})},`DropdownMenuItem`)),MS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(hS,{...i,...r,ref:t})},`DropdownMenuSeparator`)),NS=wS,PS=ES,FS=DS,IS=kS,LS=AS,RS=jS,zS=MS,BS=`z-50 overflow-hidden rounded-[8px] border border-rule bg-surface shadow-pop outline-none py-1 data-[state=open]:animate-[q-pop_120ms_ease-out] data-[state=closed]:animate-[q-pop-out_100ms_ease-in_forwards]`;function VS({trigger:e,children:t,width:n=220,align:r=`start`,side:i=`bottom`,sideOffset:a=6,open:o,onOpenChange:s}){return(0,R.jsxs)(NS,{open:o,onOpenChange:s,modal:!1,children:[(0,R.jsx)(PS,{asChild:!0,children:e}),(0,R.jsx)(FS,{children:(0,R.jsx)(IS,{align:r,side:i,sideOffset:a,collisionPadding:12,className:BS,style:{width:n},children:t})})]})}var HS=(e,t)=>X(`flex min-h-9 w-full cursor-pointer items-center gap-2.5 border-0 px-3 py-1.5 text-left text-[13.5px] outline-none select-none`,`data-[highlighted]:bg-soft data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,t?`bg-soft`:`bg-transparent`,e?`text-danger-text`:`text-ink`);function US({children:e,onSelect:t,danger:n,active:r,disabled:i,hint:a,className:o}){return(0,R.jsxs)(RS,{disabled:i,onSelect:t,className:X(HS(n,r),o),children:[e,a?(0,R.jsx)(`span`,{className:`ml-auto pl-3 text-[12px] text-muted`,children:a}):null]})}function WS(){return(0,R.jsx)(zS,{className:`my-1 h-px bg-rule`})}function GS({children:e}){return(0,R.jsx)(LS,{className:`px-3 pt-1.5 pb-1 text-[12px] text-muted`,children:e})}var KS=[{value:`system`,label:`System`,icon:`monitor`},{value:`light`,label:`Light`,icon:`sun`},{value:`dark`,label:`Dark`,icon:`moon`}];function qS(){let e=g_(),t=__();return(0,R.jsxs)(VS,{align:`end`,width:180,trigger:(0,R.jsx)(N_,{icon:t===`dark`?`moon`:`sun`,label:`Appearance`}),children:[(0,R.jsx)(GS,{children:`Appearance`}),KS.map(t=>(0,R.jsxs)(US,{active:e===t.value,onSelect:()=>h_(t.value),children:[(0,R.jsx)(Z,{name:t.icon,size:15,className:`text-ink2`}),t.label,e===t.value?(0,R.jsx)(Z,{name:`check`,size:15,className:`ml-auto text-ink2`}):null]},t.value))]})}function JS({size:e=24}){return(0,R.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 32 32`,"aria-hidden":`true`,className:`shrink-0`,children:[(0,R.jsx)(`rect`,{width:`32`,height:`32`,rx:`7`,className:`fill-primary`}),(0,R.jsx)(`rect`,{x:`7`,y:`7`,width:`8`,height:`11`,rx:`1.5`,className:`fill-primary-ink`}),(0,R.jsx)(`rect`,{x:`17`,y:`7`,width:`8`,height:`6`,rx:`1.5`,fill:`#f0a040`}),(0,R.jsx)(`rect`,{x:`17`,y:`15`,width:`8`,height:`10`,rx:`1.5`,className:`fill-primary-ink`}),(0,R.jsx)(`rect`,{x:`7`,y:`20`,width:`8`,height:`5`,rx:`1.5`,className:`fill-primary-ink`})]})}function YS({name:e,version:t}){return(0,R.jsxs)(ye,{href:`/`,title:t?`foss-design ${t}`:void 0,className:`flex min-w-0 items-center gap-2 text-[14px] font-semibold text-ink no-underline`,children:[(0,R.jsx)(JS,{}),(0,R.jsx)(`span`,{className:`truncate`,children:e??`Design`})]})}function XS({children:e,className:t}){return(0,R.jsx)(`header`,{className:X(`sticky top-0 z-30 flex h-[52px] shrink-0 items-center gap-3 border-b border-rule bg-surface px-4`,t),children:e})}var ZS=[{to:`/`,label:`Canvases`,match:e=>e===`/`||e.startsWith(`/c/`)},{to:`/system`,label:`Design system`,match:e=>e.startsWith(`/system`)}];function QS({location:e}){let t=(0,v.useRef)(null),n=ZS.findIndex(t=>t.match(e)),[r,i]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{let t=e.children[n];if(!t?.offsetWidth){i(null);return}let r=t.offsetLeft+10,a=t.offsetWidth-20;i(e=>e?.tab===n&&e.x===r&&e.width===a?e:{tab:n,x:r,width:a,slide:e!==null&&e.tab!==n})};r();let a=new ResizeObserver(r);return a.observe(e),()=>a.disconnect()},[n]),(0,R.jsxs)(`nav`,{ref:t,className:`relative flex h-[52px] items-stretch gap-0.5 max-md:hidden`,children:[ZS.map((e,t)=>(0,R.jsx)(ye,{href:e.to,"aria-current":t===n?`page`:void 0,className:X(`flex items-center px-2.5 text-[14px] no-underline transition-colors`,t===n?`font-medium text-ink`:`text-ink2 hover:text-ink`),children:e.label},e.to)),r?(0,R.jsx)(Wf.span,{"aria-hidden":!0,className:`pointer-events-none absolute bottom-0 left-0 h-[2px] bg-action`,initial:!1,animate:{x:r.x,width:r.width},transition:r.slide?{type:`spring`,stiffness:520,damping:42}:{duration:0}}):null]})}function $S(){let e=$g().data,{slots:t}=Xg(),[n]=F();return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(XS,{children:[t.barStart,(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-6`,children:[t.brand??(0,R.jsx)(YS,{name:e?.name,version:e?.version}),(0,R.jsx)(QS,{location:n})]}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,R.jsx)(D_,{}),(0,R.jsx)(qS,{}),t.barEnd]})]}),(0,R.jsx)(eC,{location:n}),t.belowBar]})}function eC({location:e}){return(0,R.jsx)(`nav`,{className:`sticky top-[52px] z-30 hidden h-10 shrink-0 items-stretch border-b border-rule bg-surface px-2 max-md:flex`,children:ZS.map(t=>{let n=t.match(e);return(0,R.jsxs)(ye,{href:t.to,"aria-current":n?`page`:void 0,className:X(`relative flex grow items-center justify-center text-[13.5px] no-underline`,n?`font-medium text-ink`:`text-ink2`),children:[t.label,n?(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-x-6 bottom-0 h-[2px] rounded-full bg-action`}):null]},t.to)})})}var tC=window.matchMedia(`(max-width: 767px)`),nC=e=>(tC.addEventListener(`change`,e),()=>tC.removeEventListener(`change`,e));function rC(){return(0,v.useSyncExternalStore)(nC,()=>tC.matches)}var iC=Object.defineProperty,aC=(e,t)=>iC(e,`name`,{value:t,configurable:!0}),oC=`Popover`,[sC,cC]=ap(oC,[_b]),lC=_b(),[uC,dC]=sC(oC),fC=aC(e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=lC(t),c=v.useRef(null),[l,u]=v.useState(!1),[d,f]=xp({prop:r,defaultProp:i??!1,onChange:a,caller:oC});return(0,R.jsx)(Ab,{...s,children:(0,R.jsx)(uC,{scope:t,contentId:fp(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:v.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:v.useCallback(()=>u(!0),[]),onCustomAnchorRemove:v.useCallback(()=>u(!1),[]),modal:o,children:n})})},`Popover`),pC=`PopoverTrigger`,mC=v.forwardRef(aC(function(e,t){let{__scopePopover:n,...r}=e,i=dC(pC,n),a=lC(n),o=tp(t,i.triggerRef),s=(0,R.jsx)(Wp.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":TC(i.open),...r,ref:o,onClick:Y(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,R.jsx)(jb,{asChild:!0,...a,children:s})},`PopoverTrigger`)),hC=`PopoverPortal`,[gC,_C]=sC(hC,{forceMount:void 0}),vC=aC(e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=dC(hC,t);return(0,R.jsx)(gC,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`PopoverPortal`),yC=`PopoverContent`,bC=v.forwardRef(aC(function(e,t){let n=_C(yC,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=dC(yC,e.__scopePopover);return(0,R.jsx)(jm,{present:r||a.open,children:a.modal?(0,R.jsx)(SC,{...i,ref:t}):(0,R.jsx)(CC,{...i,ref:t})})},`PopoverContent`)),xC=kp(`PopoverContent.RemoveScroll`),SC=v.forwardRef(aC(function(e,t){let n=dC(yC,e.__scopePopover),r=v.useRef(null),i=tp(t,r),a=v.useRef(!1);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Zh,{as:xC,allowPinchZoom:!0,children:(0,R.jsx)(wC,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Y(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;a.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})},`PopoverContentModal`)),CC=v.forwardRef(aC(function(e,t){let n=dC(yC,e.__scopePopover),r=v.useRef(!1),i=v.useRef(!1);return(0,R.jsx)(wC,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`PopoverContentNonModal`)),wC=v.forwardRef(aC(function(e,t){let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=dC(yC,n),p=lC(n);return Hm(),(0,R.jsx)(mm,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,R.jsx)(Mb,{"data-state":TC(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})},`PopoverContentImpl`));function TC(e){return e?`open`:`closed`}aC(TC,`getState`);var EC=fC,DC=mC,OC=vC,kC=bC,AC=new s_([]),jC=1;function MC(e,t,n=`ok`){let r=jC++;AC.set(i=>[...i.slice(-2),{id:r,title:e,text:t,tone:n}]),setTimeout(()=>AC.set(e=>e.filter(e=>e.id!==r)),n===`error`?4200:2200)}var NC=new s_([]),PC=1;function FC(){let[e]=(0,v.useState)(()=>PC++);(0,v.useEffect)(()=>(NC.set(t=>[...t,e]),()=>NC.set(t=>t.filter(t=>t!==e))),[e]);let t=c_(NC,t=>t[0]===e),n=c_(AC);return t?(0,R.jsx)(`div`,{className:`pointer-events-none fixed bottom-5 left-1/2 z-[60] flex -translate-x-1/2 flex-col items-center gap-2`,children:(0,R.jsx)($u,{mode:`popLayout`,children:n.map(e=>(0,R.jsxs)(Wf.div,{layout:!0,initial:{opacity:0,y:8,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:4,transition:{duration:.12}},transition:{type:`spring`,stiffness:520,damping:40},className:`flex max-w-[min(420px,calc(100vw-32px))] min-w-0 items-center gap-2.5 rounded-[8px] border border-rule bg-surface px-3 py-2 text-[13px] text-ink shadow-pop`,children:[e.tone===`error`?(0,R.jsx)(Z,{name:`alert`,size:15,className:`text-danger-text`}):e.tone===`info`?(0,R.jsx)(Z,{name:`info`,size:15,className:`text-muted`}):(0,R.jsx)(Z,{name:`check`,size:15,className:`text-ok-text`}),(0,R.jsx)(`span`,{className:`shrink-0 font-medium whitespace-nowrap`,children:e.title}),e.text?(0,R.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[12px] text-muted`,children:e.text}):null]},e.id))})}):null}async function IC(e,t=`Copied`){try{await navigator.clipboard.writeText(e),MC(t,e.length>64?void 0:e)}catch{MC(`Could not copy`,`The browser blocked clipboard access`,`error`)}}var LC=new Map;window.addEventListener(`message`,e=>{let t=e.data;if(t?.source===`design-runtime`&&e.source)for(let n of LC.get(e.source)??[])n(t)});function RC(e,t){let n=null,r=()=>{if(!n)return;let e=LC.get(n);e?.delete(t),e?.size||LC.delete(n),n=null},i=()=>{if(r(),n=e.contentWindow,!n)return;let i=LC.get(n)??new Set;i.add(t),LC.set(n,i)};return i(),e.addEventListener(`load`,i),()=>{e.removeEventListener(`load`,i),r()}}function zC(e,t){e?.contentWindow?.postMessage({source:`design-viewer`,...t},`*`)}function BC(e){zC(e,{type:`canvas`})}function VC(e,t){zC(e,{type:`theme`,theme:t})}function HC(e){e&&(e.src=e.src)}var UC=(()=>{if(Ng)return``;let{protocol:e,hostname:t,port:n}=window.location,r=t===`localhost`?`127.0.0.1`:t===`127.0.0.1`?`localhost`:null;return r?`${e}//${r}${n?`:${n}`:``}`:``})();function WC(e,t,n){let[r=``,i=``]=e.split(`?`),a=new URLSearchParams(i);a.set(`theme`,t);for(let[e,t]of Object.entries(n??{}))a.set(e,t);return`${r.startsWith(`/`)?UC:``}${r}?${a.toString()}`}function GC(e){return new URL(e,document.baseURI).toString()}function KC(e,t,n){if(e.form){MC(`Forms are not sent from a screen`,void 0,`info`);return}if(e.path===null){let t=window.open(e.href,`_blank`);t?t.opener=null:MC(`Link to another site`,e.href,`info`);return}let r=e.path.split(/[?#]/)[0].replace(/\/+$/,``),i=r.slice(r.lastIndexOf(`/`)+1).replace(/\.html?$/,``);try{i=decodeURIComponent(i)}catch{}let a=new Set(t.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`).map(e=>e.id))));i&&a.has(i)?n(i):MC(`Not a screen on this canvas`,e.path,`info`)}function qC(e,t,n){let r=$g().data,i=t_(!!r?.system).data?.tokens,[a,o]=(0,v.useState)(null),s=(0,v.useRef)({enabled:t,tokens:i});s.current={enabled:t,tokens:i};let c=(0,v.useRef)(n.onEscape);c.current=n.onEscape;let l=(0,v.useRef)(e);l.current=e;let u=(0,v.useRef)(new Map),d=(e,t=!1)=>{let{enabled:n,tokens:r}=s.current,i=u.current.get(e);(t||i?.on!==n||i.tokens!==r)&&(u.current.set(e,{on:n,tokens:r}),zC(e,{type:`inspect`,on:n,tokens:n?r??[]:void 0}))};(0,v.useEffect)(()=>{for(let t of e)d(t);for(let t of u.current.keys())e.includes(t)||u.current.delete(t)},[e,t,i]),(0,v.useEffect)(()=>{let t=e.map(e=>RC(e,t=>{if(t.type===`ready`)s.current.enabled?d(e,!0):u.current.set(e,{on:!1});else if(t.type===`inspect`){if(t.info){for(let t of l.current)t!==e&&zC(t,{type:`inspect-select`,ref:null});o({info:t.info,frame:e})}else o(t=>t?.frame===e?null:t)}else t.type===`inspect-escape`&&c.current()}));return()=>{for(let e of t)e()}},[e]);let f=a&&e.includes(a.frame)?a.frame:null;return{info:f?a.info:null,frame:f,select(e){if(e===null){for(let e of l.current)zC(e,{type:`inspect-select`,ref:null});o(null)}else a&&zC(a.frame,{type:`inspect-select`,ref:e})}}}function JC(e){let[t,n]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{let t=e=>e===`Meta`||e===`Control`,r=!1,i=!1,a,o=()=>{r=!1,clearTimeout(a),n(!1)},s=e=>{if(t(e)){if(r)return;r=!0,i=!1,a=setTimeout(()=>{r&&!i&&n(!0)},150)}else r&&(i=!0,clearTimeout(a),n(!1))},c=e=>s(e.key),l=e=>{t(e.key)&&o()};window.addEventListener(`keydown`,c,!0),window.addEventListener(`keyup`,l,!0),window.addEventListener(`blur`,o);let u=e.map(e=>RC(e,e=>{e.type===`key`?e.down?s(e.name):t(e.name)&&o():e.type===`blur`&&o()}));return()=>{window.removeEventListener(`keydown`,c,!0),window.removeEventListener(`keyup`,l,!0),window.removeEventListener(`blur`,o);for(let e of u)e();clearTimeout(a)}},[e]),t}function YC({title:e,children:t,right:n}){return(0,R.jsxs)(`section`,{className:`border-t border-rule pb-2 first:border-t-0`,children:[(0,R.jsxs)(`div`,{className:`flex h-9 items-center justify-between px-4 text-[12px] font-medium text-muted`,children:[e,n]}),t]})}function XC({label:e,children:t}){return(0,R.jsxs)(`div`,{className:`grid min-h-7 grid-cols-[92px_minmax(0,1fr)] items-center gap-x-3 px-4 py-0.5 text-[12.5px]`,children:[(0,R.jsx)(`span`,{className:`text-muted`,children:e}),(0,R.jsx)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-ink`,children:t})]})}function ZC({name:e}){return e?(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(`var(${e})`,`Token copied`),title:`Copy var()`,className:`shrink-0 cursor-pointer truncate rounded-[4px] border-0 bg-action-soft px-1.5 py-px font-mono text-[11px] text-action`,children:e}):null}function QC({children:e,title:t}){return(0,R.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[12px]`,title:t,children:e})}function $C({label:e,color:t}){return(0,R.jsxs)(XC,{label:e,children:[(0,R.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-[3px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.12)]`,style:{background:t.css}}),(0,R.jsx)(QC,{title:t.css,children:t.value}),(0,R.jsx)(ZC,{name:t.token})]})}var ew=e=>e?String(e):`–`;function tw({label:e,values:t,className:n,children:r}){let[i,a,o,s]=t;return(0,R.jsxs)(`div`,{className:X(`relative grid grid-cols-[28px_minmax(0,1fr)_28px] grid-rows-[20px_auto_20px] rounded-[4px]`,n),children:[(0,R.jsx)(`span`,{className:`absolute top-1 left-1.5 text-[9.5px] tracking-wide text-muted uppercase`,children:e}),(0,R.jsx)(`span`,{className:`col-start-2 self-center text-center`,children:ew(i)}),(0,R.jsx)(`span`,{className:`row-start-2 self-center text-center`,children:ew(s)}),(0,R.jsx)(`div`,{className:`row-start-2 col-start-2`,children:r}),(0,R.jsx)(`span`,{className:`row-start-2 col-start-3 self-center text-center`,children:ew(a)}),(0,R.jsx)(`span`,{className:`row-start-3 col-start-2 self-center text-center`,children:ew(o)})]})}function nw({info:e}){let t={w:Math.max(0,e.rect.w-e.border[1]-e.border[3]-e.padding[1]-e.padding[3]),h:Math.max(0,e.rect.h-e.border[0]-e.border[2]-e.padding[0]-e.padding[2])};return(0,R.jsx)(`div`,{className:`px-4 pt-1 pb-2 font-mono text-[11px] text-ink2`,children:(0,R.jsx)(tw,{label:`margin`,values:e.margin,className:`border border-dashed border-rule-strong bg-[#f6b26b]/15`,children:(0,R.jsx)(tw,{label:`border`,values:e.border,className:`border border-rule-strong bg-[#f9e27d]/15`,children:(0,R.jsx)(tw,{label:`padding`,values:e.padding,className:`border border-rule-strong bg-[#93c47d]/20`,children:(0,R.jsxs)(`div`,{className:`flex h-8 items-center justify-center rounded-[3px] border border-rule-strong bg-[#6fa8dc]/25 text-ink`,children:[Math.round(t.w*100)/100,` × `,Math.round(t.h*100)/100]})})})})})}function rw({info:e,onSelect:t}){return(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 px-4 pb-2`,children:[e.path.slice(-4).map((e,n)=>(0,R.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>t(e.ref),className:`cursor-pointer rounded-[4px] border-0 bg-soft2 px-1.5 py-0.5 font-mono text-[11px] text-ink2 hover:text-ink`,children:e.label}),(0,R.jsx)(Z,{name:`chevron-right`,size:11,className:`text-muted`})]},n)),(0,R.jsx)(`span`,{className:`rounded-[4px] bg-action-soft px-1.5 py-0.5 font-mono text-[11px] text-action`,children:e.label})]})}function iw({info:e,onSelect:t,onClose:n,active:r}){return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[320px] shrink-0 flex-col overflow-hidden border-l border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex h-[46px] shrink-0 items-center justify-between border-b border-rule pr-2 pl-4`,children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-2 text-[14px] font-semibold`,children:[(0,R.jsx)(Z,{name:`pointer`,size:15,className:`text-action`}),` Inspect`]}),(0,R.jsx)(N_,{icon:`x`,label:`Close inspector (I)`,onClick:n})]}),e?(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto`,children:[(0,R.jsxs)(YC,{title:`Element`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 px-4 pb-2`,children:[(0,R.jsx)(`div`,{className:`flex min-w-0 items-baseline gap-1.5`,children:e.component?.owners[0]?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`span`,{className:`truncate font-mono text-[14px] font-medium text-ink`,children:[`<`,e.component.owners[0],`>`]}),(0,R.jsx)(`span`,{className:`truncate font-mono text-[12px] text-muted`,children:e.tag})]}):(0,R.jsx)(`span`,{className:`truncate font-mono text-[14px] font-medium text-ink`,children:e.label})}),e.component&&e.component.owners.length>1?(0,R.jsxs)(`span`,{className:`truncate text-[12px] text-muted`,children:[`in `,e.component.owners.slice(1).join(` ← `)]}):null,e.component?.file?(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(e.component.file,`Path copied`),className:`w-fit max-w-full cursor-pointer truncate border-0 bg-transparent p-0 text-left font-mono text-[11.5px] text-muted hover:text-ink2`,title:`Copy path`,children:e.component.file}):null,e.text?(0,R.jsxs)(`span`,{className:`line-clamp-2 text-[12.5px] text-ink2`,children:[`“`,e.text,`”`]}):null]}),(0,R.jsx)(rw,{info:e,onSelect:t})]}),(0,R.jsxs)(YC,{title:`Box`,children:[(0,R.jsx)(nw,{info:e}),(0,R.jsx)(XC,{label:`Size`,children:(0,R.jsxs)(QC,{children:[e.rect.w,` × `,e.rect.h]})}),(0,R.jsx)(XC,{label:`Position`,children:(0,R.jsxs)(QC,{children:[`x `,e.rect.x,` · y `,e.rect.y]})})]}),e.layout.length?(0,R.jsx)(YC,{title:`Layout`,children:e.layout.map(([e,t])=>(0,R.jsx)(XC,{label:e,children:(0,R.jsx)(QC,{title:t,children:t})},e))}):null,e.typography?(0,R.jsxs)(YC,{title:`Typography`,children:[(0,R.jsxs)(XC,{label:`Font`,children:[(0,R.jsx)(QC,{title:e.typography.family,children:e.typography.family.split(`,`)[0]?.replace(/["']/g,``)}),(0,R.jsx)(ZC,{name:e.typography.familyToken})]}),(0,R.jsxs)(XC,{label:`Size`,children:[(0,R.jsxs)(QC,{children:[e.typography.size,` / `,e.typography.lineHeight]}),(0,R.jsx)(ZC,{name:e.typography.sizeToken})]}),(0,R.jsx)(XC,{label:`Weight`,children:(0,R.jsx)(QC,{children:e.typography.weight})}),e.typography.letterSpacing===`normal`?null:(0,R.jsx)(XC,{label:`Tracking`,children:(0,R.jsx)(QC,{children:e.typography.letterSpacing})}),(0,R.jsx)($C,{label:`Color`,color:e.typography.color}),e.typography.align===`start`?null:(0,R.jsx)(XC,{label:`Align`,children:(0,R.jsx)(QC,{children:e.typography.align})}),e.typography.transform?(0,R.jsx)(XC,{label:`Transform`,children:(0,R.jsx)(QC,{children:e.typography.transform})}):null]}):null,Object.values(e.appearance).some(Boolean)?(0,R.jsxs)(YC,{title:`Appearance`,children:[e.appearance.background?(0,R.jsx)($C,{label:`Background`,color:e.appearance.background}):null,e.appearance.backgroundImage?(0,R.jsx)(XC,{label:`Image`,children:(0,R.jsx)(QC,{title:e.appearance.backgroundImage,children:e.appearance.backgroundImage})}):null,e.appearance.border?(0,R.jsxs)(XC,{label:`Border`,children:[(0,R.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-[3px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.12)]`,style:{background:e.appearance.border.color.css}}),(0,R.jsxs)(QC,{children:[e.appearance.border.width,` `,e.appearance.border.style,` `,e.appearance.border.color.value]}),(0,R.jsx)(ZC,{name:e.appearance.border.color.token})]}):null,e.appearance.radius?(0,R.jsxs)(XC,{label:`Radius`,children:[(0,R.jsx)(QC,{children:e.appearance.radius.value}),(0,R.jsx)(ZC,{name:e.appearance.radius.token})]}):null,e.appearance.shadow?(0,R.jsxs)(XC,{label:`Shadow`,children:[(0,R.jsx)(QC,{title:e.appearance.shadow.value,children:e.appearance.shadow.value}),(0,R.jsx)(ZC,{name:e.appearance.shadow.token})]}):null,e.appearance.opacity?(0,R.jsx)(XC,{label:`Opacity`,children:(0,R.jsx)(QC,{children:e.appearance.opacity})}):null]}):null,e.classes.length?(0,R.jsx)(YC,{title:`Classes`,right:(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(e.classes.join(` `),`Classes copied`),className:`cursor-pointer border-0 bg-transparent text-[12px] text-muted hover:text-ink2`,children:`Copy`}),children:(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1 px-4 pb-1`,children:e.classes.map(e=>(0,R.jsx)(`span`,{className:`rounded-[4px] bg-soft2 px-1.5 py-0.5 font-mono text-[11px] text-ink2`,children:e},e))})}):null,e.attributes.length?(0,R.jsx)(YC,{title:`Attributes`,children:e.attributes.map(([e,t])=>(0,R.jsx)(XC,{label:e,children:(0,R.jsx)(QC,{title:t,children:t})},e))}):null,e.children.length?(0,R.jsx)(YC,{title:`Children · ${e.children.length}`,children:(0,R.jsx)(`div`,{className:`flex flex-col px-2 pb-1`,children:e.children.map((e,n)=>(0,R.jsxs)(`button`,{type:`button`,onClick:()=>t(e.ref),className:`flex h-7 cursor-pointer items-center gap-2 rounded-[6px] border-0 bg-transparent px-2 text-left font-mono text-[12px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(Z,{name:`chevron-right`,size:12,className:`text-muted`}),(0,R.jsx)(`span`,{className:`truncate`,children:e.label})]},n))})}):null]}):(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-6 py-10 text-center`,children:[(0,R.jsx)(Z,{name:`pointer`,size:22,className:`text-muted`}),(0,R.jsx)(`span`,{className:`text-[13.5px] text-ink2`,children:r?`Click an element in any screen.`:`Hold ${T_} to highlight, click to inspect.`}),(0,R.jsx)(`span`,{className:`text-[12.5px] leading-[1.5] text-muted`,children:`Hover shows margin, padding and content. Clicks go to the inspector, not the screen.`}),(0,R.jsxs)(`span`,{className:`mt-2 flex items-center gap-1.5 text-[12px] text-muted`,children:[(0,R.jsx)(y_,{children:`I`}),` toggle · hold `,(0,R.jsx)(y_,{children:T_}),` · `,(0,R.jsx)(y_,{children:`esc`}),` clear`]})]}),e?(0,R.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-rule bg-soft px-4 py-2.5`,children:(0,R.jsx)(A_,{icon:`copy`,onClick:()=>void IC(e.css,`CSS copied`),className:`grow`,children:`Copy CSS`})}):null]})}var aw={neutral:`bg-soft2 text-ink2`,action:`bg-action-soft text-action`,ok:`bg-ok-soft text-ok-text`,danger:`bg-danger-soft text-danger-text`};function ow({tone:e=`neutral`,children:t,className:n}){return(0,R.jsx)(`span`,{className:X(`inline-flex h-[22px] shrink-0 items-center gap-1 whitespace-nowrap rounded-[6px] px-2 text-[12px] font-medium`,aw[e],n),children:t})}function sw({value:e,tone:t=`neutral`}){return(0,R.jsx)(`span`,{className:X(`inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-[4px] px-[5px] text-[11.5px] font-semibold tabular`,t===`action`?`bg-action-soft text-action`:t===`danger`?`bg-danger-soft text-danger-text`:`bg-soft2 text-ink2`),children:e})}function cw({children:e,className:t,style:n}){return(0,R.jsx)(`section`,{className:X(`min-w-0 shrink-0 overflow-hidden rounded-[10px] border border-rule bg-surface`,t),style:n,children:e})}function lw({title:e,count:t,sub:n,right:r,as:i=`h2`}){return(0,R.jsxs)(`div`,{className:`flex min-h-[46px] items-center justify-between gap-3 px-4`,children:[(0,R.jsxs)(i,{className:`m-0 flex min-w-0 items-center gap-2 whitespace-nowrap text-[14px] font-semibold`,children:[e,t===void 0?null:(0,R.jsx)(sw,{value:t}),n?(0,R.jsx)(`span`,{className:`truncate text-[12.5px] font-normal text-muted`,children:n}):null]}),r?(0,R.jsx)(`div`,{className:`flex items-center gap-2`,children:r}):null]})}function uw({items:e,value:t,onChange:n,right:r}){let i=(0,v.useId)();return(0,R.jsxs)(`div`,{className:`flex h-[46px] items-center justify-between gap-3 px-4`,children:[(0,R.jsx)(`div`,{role:`tablist`,className:`flex gap-5`,children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":r,onClick:()=>n(e.value),className:X(`relative flex h-[46px] cursor-pointer items-center gap-1.5 border-0 bg-transparent px-0.5 text-[14px] transition-colors`,r?`font-semibold text-ink`:`font-medium text-ink2 hover:text-ink`),children:[e.label,e.count===void 0?null:(0,R.jsx)(sw,{value:e.count}),r?(0,R.jsx)(Wf.span,{layoutId:i,className:`absolute inset-x-0 bottom-0 h-[2px] bg-ink`,transition:{type:`spring`,stiffness:520,damping:42}}):null]},e.value)})}),r?(0,R.jsx)(`div`,{className:`flex items-center gap-2`,children:r}):null]})}function dw({align:e,children:t}){return(0,R.jsx)(`div`,{className:X(`flex min-w-0 items-center gap-2`,e===`r`&&`justify-end text-right`,e===`c`&&`justify-center`),children:t})}function fw(e,t){return v.Children.toArray(e).map((e,n)=>(0,R.jsx)(dw,{align:t?.[n]??`l`,children:e},n))}function pw({cols:e,align:t,labels:n}){return(0,R.jsx)(`div`,{className:`grid h-8 items-center gap-x-4 border-t border-rule bg-soft px-4 text-[12.5px] text-muted`,style:{gridTemplateColumns:e},children:n.map((e,n)=>(0,R.jsx)(dw,{align:t?.[n]??`l`,children:(0,R.jsx)(`span`,{className:`whitespace-nowrap`,children:e})},n))})}var mw=(e,t,n)=>X(`grid items-center gap-x-4 border-rule`,!e&&`border-t`,t&&`cursor-pointer transition-colors hover:bg-soft`,n);function hw({cols:e,align:t,minH:n=44,pad:r=`10px 16px`,children:i,first:a,className:o,onClick:s,title:c}){return(0,R.jsx)(`div`,{className:mw(a,!!s,o),style:{gridTemplateColumns:e,minHeight:n,padding:r},onClick:s,title:c,children:fw(i,t)})}function gw({to:e,cols:t,align:n,minH:r=44,pad:i=`10px 16px`,first:a,className:o,children:s}){return(0,R.jsx)(ye,{href:e,className:X(mw(a,!0,o),`text-inherit no-underline`),style:{gridTemplateColumns:t,minHeight:r,padding:i},children:fw(s,n)})}function _w({label:e,children:t,labelWidth:n=180,minH:r=40,end:i=!1}){return(0,R.jsxs)(`div`,{className:`grid content-center items-baseline gap-x-4 border-t border-rule px-4 py-2`,style:{gridTemplateColumns:`min(${n}px, 42%) minmax(0, 1fr)`,minHeight:r},children:[(0,R.jsx)(`span`,{className:`text-[13px] text-muted`,children:e}),(0,R.jsx)(`div`,{className:X(`flex min-w-0 flex-wrap items-center gap-2`,i&&`justify-end`),children:t})]})}function vw({children:e,pad:t=`16px`,gap:n=16,top:r=!0,className:i}){return(0,R.jsx)(`div`,{className:X(`flex flex-col`,r&&`border-t border-rule`,i),style:{padding:t,gap:n},children:e})}function yw({issues:e,className:t}){return(0,R.jsx)(`div`,{className:X(`flex flex-col`,t),children:e.map((e,t)=>(0,R.jsxs)(`div`,{className:`flex items-start gap-2.5 border-t border-rule px-4 py-2.5 text-[13px] first:border-t-0`,children:[(0,R.jsx)(Z,{name:e.severity===`error`?`alert`:`info`,size:15,className:X(`mt-0.5`,e.severity===`error`?`text-danger-text`:`text-action`)}),(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsx)(`span`,{className:`text-ink`,children:e.message}),(0,R.jsxs)(`span`,{className:`font-mono text-[12px] break-all text-muted`,children:[e.file,e.at?` · ${e.at}`:``]})]})]},t))})}function bw({issues:e,title:t=`Problems`}){if(!e.length)return null;let n=e.filter(e=>e.severity===`error`).length;return(0,R.jsxs)(cw,{className:n?`border-danger/40`:void 0,children:[(0,R.jsx)(lw,{title:t,count:e.length,sub:n?`${n} blocking`:`warnings`}),(0,R.jsx)(`div`,{className:`border-t border-rule`,children:(0,R.jsx)(yw,{issues:e})})]})}var xw=[.2,.7,.2,1];function Sw({open:e,side:t,width:n,children:r}){return(0,R.jsx)($u,{initial:!1,children:e?(0,R.jsx)(Wf.div,{initial:{width:0,opacity:.6},animate:{width:n,opacity:1},exit:{width:0,opacity:.6},transition:{duration:.22,ease:xw},className:X(`flex min-h-0 shrink-0 overflow-hidden`,t===`right`?`justify-start`:`justify-end`),children:(0,R.jsx)(`div`,{className:`flex min-h-0 shrink-0`,style:{width:n},children:r})},`panel`):null})}function Cw({children:e,className:t,gap:n=20,wide:r=!1}){return(0,R.jsx)(`main`,{className:X(`mx-auto flex w-full min-h-0 grow flex-col px-8 pt-6 pb-7 animate-[q-fade-in_160ms_ease-out] max-md:px-4 max-md:pt-4`,r?`max-w-[1440px]`:`max-w-[1200px]`,t),style:{gap:n},children:e})}function ww({title:e,sub:t,right:n,badge:r,crumbs:i}){return(0,R.jsxs)(`div`,{className:`flex shrink-0 items-end justify-between gap-6 max-md:flex-col max-md:items-stretch max-md:gap-3`,children:[(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[i?(0,R.jsx)(`div`,{className:`flex items-center gap-1.5 text-[13px] text-muted`,children:i}):null,(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`h1`,{className:`m-0 text-[22px] font-semibold tracking-[-0.01em]`,children:e}),r]}),t?(0,R.jsx)(`div`,{className:`text-[13px] [overflow-wrap:anywhere] text-muted`,children:t}):null]}),n?(0,R.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:n}):null]})}function Tw({items:e,label:t}){return(0,R.jsx)(`nav`,{"aria-label":t,className:`flex flex-col gap-0.5`,children:e.map(e=>(0,R.jsxs)(ye,{href:e.to,className:e=>X(`flex h-8 items-center gap-2 whitespace-nowrap rounded-[6px] px-3 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,e?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(`span`,{className:`min-w-0 truncate`,children:e.label}),e.hint?(0,R.jsx)(`span`,{className:`ml-auto text-[12px] font-normal text-muted`,children:e.hint}):null]},e.to))})}function Ew({children:e}){return(0,R.jsx)(`div`,{className:`px-3 pt-4 pb-1 text-[12px] text-muted`,children:e})}function Dw({title:e,text:t,action:n}){return(0,R.jsxs)(cw,{className:`flex w-[480px] max-w-full flex-col items-center gap-2 px-6 py-8 text-center`,children:[(0,R.jsx)(`h1`,{className:`m-0 text-[16px] font-semibold`,children:e}),t?(0,R.jsx)(`div`,{className:`m-0 max-w-[400px] text-[14px] text-ink2`,children:t}):null,n?(0,R.jsx)(`div`,{className:`mt-3 flex flex-wrap justify-center gap-2`,children:n}):null]})}function Ow(e){return(0,R.jsx)(`div`,{className:`flex min-h-[50vh] grow items-center justify-center p-6 max-md:px-4`,children:(0,R.jsx)(Dw,{...e})})}function kw({title:e=`Nothing here`,text:t}){let n=!!Xg().scope;return(0,R.jsx)(Ow,{title:e,text:t??`This address does not match a canvas or a page of the design system.`,action:n?void 0:(0,R.jsx)(P_,{to:`/`,children:`All canvases`})})}var Aw=.1,jw=(e,t=Aw)=>Math.min(8,Math.max(t,e)),Mw=class{camera={x:0,y:0,z:1};minZoom=Aw;listeners=new Set;animation=0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}set(e){this.camera={x:e.x,y:e.y,z:jw(e.z,this.minZoom)};for(let e of this.listeners)e(this.camera)}interrupt(){cancelAnimationFrame(this.animation),this.animation=0}panBy(e,t){this.interrupt();let{x:n,y:r,z:i}=this.camera;this.set({x:n+e,y:r+t,z:i})}zoomAt(e,t,n){this.interrupt();let{x:r,y:i,z:a}=this.camera,o=jw(a*n,this.minZoom),s=(e-r)/a,c=(t-i)/a;this.set({x:e-s*o,y:t-c*o,z:o})}animateTo(e,t=320){this.interrupt();let n={...this.camera},r={...e,z:jw(e.z,this.minZoom)};if(t<=0||matchMedia(`(prefers-reduced-motion: reduce)`).matches){this.set(r);return}let i=performance.now(),a=e=>{let o=Math.min(1,(e-i)/t),s=1-(1-o)**3,c=n.z*(r.z/n.z)**s,l=n.z===r.z?s:(c-n.z)/(r.z-n.z);this.set({x:n.x+(r.x-n.x)*l,y:n.y+(r.y-n.y)*l,z:c}),this.animation=o<1?requestAnimationFrame(a):0};this.animation=requestAnimationFrame(a)}toWorld(e,t){let{x:n,y:r,z:i}=this.camera;return{x:(e-n)/i,y:(t-r)/i}}};function Nw(e,t,n,r=72,i=1,a=Aw){let o=jw(Math.min((t-r*2)/Math.max(e.w,1),(n-r*2)/Math.max(e.h,1),i),a),s=(e,t,n)=>t*o<=n-r*2?n/2-(e+t/2)*o:r-e*o;return{z:o,x:s(e.x,e.w,t),y:s(e.y,e.h,n)}}function Pw(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function Fw({items:e,value:t,onChange:n,label:r,stretch:i,size:a=`ctrl`}){let o=(0,v.useId)();return(0,R.jsx)(`div`,{role:`group`,"aria-label":r,className:X(`shrink-0 items-center gap-0.5 rounded-[6px] bg-track p-[3px]`,a===`ctrl`?`h-ctrl`:`h-7`,i?`flex`:`inline-flex`),children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":r,title:e.title,onClick:()=>n(e.value),className:X(`relative flex h-full cursor-pointer items-center justify-center whitespace-nowrap rounded-[4px] border-0 bg-transparent font-medium transition-colors`,a===`ctrl`?`px-2.5 text-ctrl`:`px-2 text-[12.5px]`,i&&`flex-1`,r?`text-ink`:`text-muted hover:text-ink2`),children:[r?(0,R.jsx)(Wf.span,{layoutId:o,className:`absolute inset-0 rounded-[4px] bg-surface shadow-[0_1px_2px_rgba(0,0,0,0.10)]`,transition:{type:`spring`,stiffness:520,damping:42}}):null,(0,R.jsx)(`span`,{className:`relative flex items-center gap-1.5`,children:e.label})]},e.value)})})}var Iw=Object.defineProperty,Lw=(e,t)=>Iw(e,`name`,{value:t,configurable:!0}),Rw=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),zw=v.forwardRef(Lw(function(e,t){return(0,R.jsx)(Wp.span,{...e,ref:t,style:{...Rw,...e.style}})},`VisuallyHidden`)),Bw=Object.defineProperty,Vw=(e,t)=>Bw(e,`name`,{value:t,configurable:!0}),[Hw,Uw]=ap(`Tooltip`,[_b]),Ww=_b(),Gw=`TooltipProvider`,Kw=700,qw=`tooltip.open`,[Jw,Yw]=Hw(Gw),Xw=Vw(e=>{let{__scopeTooltip:t,delayDuration:n=Kw,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=v.useRef(!0),s=v.useRef(!1),c=v.useRef(0);return v.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,R.jsx)(Jw,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:v.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:v.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:v.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),Zw=`Tooltip`,[Qw,$w]=Hw(Zw),eT=Vw(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Yw(Zw,e.__scopeTooltip),l=Ww(t),[u,d]=v.useState(null),[f,p]=v.useState(void 0),m=fp(),h=v.useRef(0),g=o??c.disableHoverableContent,_=s??c.delayDuration,y=v.useRef(!1),[b,x]=xp({prop:r,defaultProp:i??!1,onChange:Vw(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(qw))):c.onClose(),a?.(e)},`onChange`),caller:Zw}),S=v.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),C=v.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,x(!0)},[x]),w=v.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x(!1)},[x]),T=v.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,x(!0),h.current=0},_)},[_,x]);v.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let E=f??m;return(0,R.jsx)(Ab,{...l,children:(0,R.jsx)(Qw,{scope:t,contentId:E,setContentId:p,open:b,stateAttribute:S,trigger:u,onTriggerChange:d,onTriggerEnter:v.useCallback(()=>{c.isOpenDelayedRef.current?T():C()},[c.isOpenDelayedRef,T,C]),onTriggerLeave:v.useCallback(()=>{g?w():(window.clearTimeout(h.current),h.current=0)},[w,g]),onOpen:C,onClose:w,disableHoverableContent:g,children:n})})},`Tooltip`),tT=`TooltipTrigger`,nT=v.forwardRef(Vw(function(e,t){let{__scopeTooltip:n,...r}=e,i=$w(tT,n),a=Yw(tT,n),o=Ww(n),s=tp(t,v.useRef(null),i.onTriggerChange),c=v.useRef(!1),l=v.useRef(!1),u=v.useCallback(()=>c.current=!1,[]);return v.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,R.jsx)(jb,{asChild:!0,...o,children:(0,R.jsx)(Wp.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:Y(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:Y(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:Y(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:Y(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Y(e.onBlur,i.onClose),onClick:Y(e.onClick,i.onClose)})})},`TooltipTrigger`)),rT=`TooltipPortal`,[iT,aT]=Hw(rT,{forceMount:void 0}),oT=Vw(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=$w(rT,t);return(0,R.jsx)(iT,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),sT=`TooltipContent`,cT=v.forwardRef(Vw(function(e,t){let n=aT(sT,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=$w(sT,e.__scopeTooltip);return(0,R.jsx)(jm,{present:r||o.open,children:o.disableHoverableContent?(0,R.jsx)(dT,{side:i,...a,ref:t}):(0,R.jsx)(lT,{side:i,...a,ref:t})})},`TooltipContent`)),lT=v.forwardRef(Vw(function(e,t){let n=$w(sT,e.__scopeTooltip),r=Yw(sT,e.__scopeTooltip),i=v.useRef(null),a=tp(t,i),[o,s]=v.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=v.useCallback(()=>{s(null),d(!1)},[d]),p=v.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=pT(r,fT(r,n.getBoundingClientRect())),a=mT(t.getBoundingClientRect()),o=gT([...i,...a]);s(o),d(!0)},[d]);return v.useEffect(()=>()=>f(),[f]),v.useEffect(()=>{if(c&&u){let e=Vw(e=>p(e,u),`handleTriggerLeave`),t=Vw(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),v.useEffect(()=>{if(o){let e=Vw(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!hT(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,R.jsx)(dT,{...e,ref:a})},`TooltipContentHoverable`)),uT=jp(`TooltipContent`),dT=v.forwardRef(Vw(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=$w(sT,n),u=Ww(n),{onClose:d}=l;v.useEffect(()=>(document.addEventListener(qw,d),()=>document.removeEventListener(qw,d)),[d]),v.useEffect(()=>{if(l.trigger){let e=Vw(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return sp(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,R.jsxs)(Mb,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,R.jsx)(uT,{children:r}),i?(0,R.jsx)(zw,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`));function fT(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}Vw(fT,`getExitSideFromRect`);function pT(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}Vw(pT,`getPaddedExitPoints`);function mT(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}Vw(mT,`getPointsFromRect`);function hT(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}Vw(hT,`isPointInPolygon`);function gT(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),_T(t)}Vw(gT,`getHull`);function _T(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}Vw(_T,`getHullPresorted`);var vT=Xw,yT=eT,bT=nT,xT=oT,ST=cT;function CT({children:e}){return(0,R.jsx)(vT,{delayDuration:250,children:e})}var wT=`z-50 max-w-[280px] rounded-[8px] border border-rule bg-surface px-[10px] py-[7px] text-[12.5px] leading-[1.35] text-ink shadow-pop outline-none data-[state=delayed-open]:animate-[q-pop_120ms_ease-out] data-[state=closed]:animate-[q-pop-out_100ms_ease-in_forwards]`;function TT({content:e,children:t,side:n=`top`,align:r=`center`,className:i}){return(0,R.jsxs)(yT,{children:[(0,R.jsx)(bT,{asChild:!0,children:t}),(0,R.jsx)(xT,{children:(0,R.jsx)(ST,{side:n,align:r,sideOffset:6,collisionPadding:12,className:X(wT,i),children:e})})]})}var ET=(e,t,n)=>`/c/${encodeURIComponent(e)}/full/${encodeURIComponent(t)}?theme=${n}`;function DT(e,t,n){let{frameSandbox:r}=Xg(),{base:i}=ue();return t?t.kind===`url`?t.url:GC(r?`${i}${ET(e,t.id,t.theme??n)}`:WC(t.url,t.theme??n)):null}function OT({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=e_(e),[,a]=F(),{frameSandbox:o}=Xg(),s=__(),c=(0,v.useRef)(null),l=new URLSearchParams(window.location.search).get(`theme`),u=n?n.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`))):[],d=u.find(e=>e.id===t),f=(d?.kind===`screen`?d.theme:void 0)??(l===`light`||l===`dark`?l:n?.theme??s),p=d?d.kind===`screen`?WC(d.url,f):d.url:``,m=`/c/${encodeURIComponent(e)}`;return(0,v.useEffect)(()=>{d&&(document.title=`${d.title} · ${n?.title??``}`)},[d,n?.title]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a(m)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,m]),(0,v.useEffect)(()=>{let t=c.current;if(t&&d?.kind===`screen`)return RC(t,t=>{if(t.type===`keydown`&&t.code===`Escape`)a(m);else if(t.type===`go`){let n=t.target.includes(`/`)?t.target.split(`/`)[1]:t.target;u.some(e=>e.id===n)&&a(ET(e,n,f),{replace:!0})}else t.type===`link`&&n&&KC(t,n,t=>a(ET(e,t,f),{replace:!0}))})},[p,d?.kind]),r?(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message}):i||!n?(0,R.jsx)(`div`,{className:`h-dvh bg-surface`}):d?(0,R.jsxs)(`div`,{className:`group fixed inset-0 bg-surface`,children:[(0,R.jsx)(`iframe`,{ref:c,src:p,title:d.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:o,className:`block h-full w-full border-0`,style:{colorScheme:f},onLoad:()=>d.kind===`screen`&&VC(c.current,f)},`${d.id}:${d.kind===`screen`?d.rev:d.url}`),(0,R.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 flex justify-end p-3 opacity-0 transition-opacity duration-200 group-hover:opacity-100 focus-within:opacity-100`,children:(0,R.jsxs)(ye,{href:m,className:`pointer-events-auto flex h-8 items-center gap-2 rounded-[8px] border border-rule bg-surface px-3 text-[12.5px] text-ink2 no-underline shadow-pop hover:text-ink`,children:[(0,R.jsx)(Z,{name:`x`,size:14}),`Back to `,n.title,(0,R.jsx)(y_,{children:`esc`})]})})]}):(0,R.jsx)(kw,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`})}function kT(e){return e.kind===`note`?`note`:e.kind===`image`?`image`:e.kind===`url`?`globe`:e.frame.width<600?`smartphone`:e.frame.width<1100?`tablet`:`monitor`}function AT(e,t){return`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(t.id)}`}function jT({canvas:e,page:t,store:n,onPick:r}){let i=c_(n,e=>e.selected),a=c_(n,e=>e.frames);return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[264px] shrink-0 flex-col overflow-hidden border-r border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-rule px-4 py-3.5`,children:[(0,R.jsx)(`div`,{className:`truncate text-[14px] font-semibold`,children:e.title}),e.description?(0,R.jsx)(`div`,{className:`line-clamp-3 text-[12.5px] leading-[1.45] text-muted`,children:e.description}):null]}),(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto pb-4`,children:[e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:`Pages`}),(0,R.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2`,children:e.pages.map(n=>{let r=n.sections.reduce((e,t)=>e+t.items.filter(e=>e.kind===`screen`||e.kind===`url`).length,0);return(0,R.jsxs)(ye,{href:AT(e,n),className:X(`flex h-8 items-center gap-2 rounded-[6px] px-2.5 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,n.id===t.id?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(Z,{name:`file`,size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:n.title}),(0,R.jsx)(`span`,{className:`text-[12px] text-muted tabular`,children:r})]},n.id)})})]}):null,(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.pages.length>1?t.title:`Layers`}),(0,R.jsx)(`div`,{className:`flex flex-col px-2`,children:t.sections.map(e=>(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsxs)(`div`,{className:`flex h-7 items-center gap-2 px-2.5 pt-1 text-[12px] font-medium text-ink2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:e.title}),(0,R.jsx)(sw,{value:e.items.length})]}):null,e.items.map(t=>{let n=(a[t.id]?.errors.length??0)>0||t.kind===`screen`&&t.missing;return(0,R.jsxs)(`button`,{type:`button`,onClick:()=>r(t.id),className:X(`flex h-8 w-full cursor-pointer items-center gap-2 rounded-[6px] border-0 px-2.5 text-left text-[13px] transition-colors focus-visible:outline-offset-[-2px]`,e.title&&`pl-4`,i===t.id?`bg-action-soft text-ink`:`bg-transparent text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(Z,{name:kT(t),size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:t.title||(t.kind===`note`?`Note`:t.id)}),n?(0,R.jsx)(`span`,{className:`size-[7px] shrink-0 rounded-full bg-danger`}):null]},t.id)})]},e.id))})]})]})}function MT({canvas:e,page:t,theme:n,onTheme:r,sidebar:i,onSidebar:a,onPlay:o,canPlay:s,inspect:c,onInspect:l}){let[,u]=F(),{slots:d,scope:f}=Xg();return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(XS,{children:[d.barStart,d.brand?d.brand:f?(0,R.jsx)(JS,{}):(0,R.jsx)(TT,{content:`All canvases`,children:(0,R.jsx)(ye,{href:`/`,className:`flex items-center`,"aria-label":`All canvases`,children:(0,R.jsx)(JS,{})})}),(0,R.jsx)(N_,{icon:`panel-left`,label:i?`Hide sidebar (⌘\\)`:`Show sidebar (⌘\\)`,onClick:()=>a(!i)}),(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-[14px]`,children:[(0,R.jsx)(`span`,{className:`truncate font-semibold`,children:e.title}),t&&e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Z,{name:`chevron-right`,size:14,className:`shrink-0 text-muted`}),(0,R.jsxs)(VS,{width:240,trigger:(0,R.jsxs)(`button`,{type:`button`,className:`flex h-ctrl cursor-pointer items-center gap-1 rounded-[6px] border-0 bg-transparent px-2 text-[14px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:t.title}),(0,R.jsx)(Z,{name:`chevron-down`,size:14,className:`text-muted`})]}),children:[(0,R.jsx)(GS,{children:`Pages`}),e.pages.map(n=>(0,R.jsxs)(US,{active:n.id===t.id,onSelect:()=>u(AT(e,n)),children:[(0,R.jsx)(Z,{name:`file`,size:15,className:`text-muted`}),n.title]},n.id))]})]}):null]}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,R.jsx)(Fw,{label:`Screen theme`,value:n,onChange:r,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:15}),title:`Light screens`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:15}),title:`Dark screens`}]}),(0,R.jsx)(PT,{on:c,onChange:l}),(0,R.jsx)(A_,{kind:`secondary`,icon:`play`,onClick:o,disabled:!s,children:`Play`}),(0,R.jsx)(D_,{width:200,label:`Search`}),(0,R.jsx)(qS,{}),d.barEnd]})]}),d.belowBar]})}function NT({canvas:e,store:t,layoutItems:n,theme:r,onPlay:i,inspect:a}){let o=c_(t,e=>e.selected),s=c_(t,e=>e.active),c=c_(t,e=>o?e.frames[o]:void 0),l=n.find(e=>e.id===o),u=DT(e.id,l?.kind===`screen`||l?.kind===`url`?l:void 0,r);if(!l)return null;let d=l.kind===`screen`||l.kind===`url`,f=()=>HC(document.querySelector(`[data-item="${CSS.escape(l.id)}"] iframe`)),p=c?.errors??[];return(0,R.jsx)(`div`,{"data-ui":!0,className:`pointer-events-none absolute inset-x-0 bottom-5 z-20 flex justify-center px-4`,children:(0,R.jsxs)(`div`,{className:`pointer-events-auto flex max-w-full flex-col overflow-hidden rounded-[10px] border border-rule bg-surface shadow-pop animate-[q-pop_120ms_ease-out]`,children:[p.length?(0,R.jsxs)(`div`,{className:`flex max-h-40 items-start gap-2 overflow-y-auto border-b border-rule bg-danger-soft px-3.5 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:p.join(`
|
|
57
|
+
`},Kh=0,qh=[];function Jh(e){var t=v.useRef([]),n=v.useRef([0,0]),r=v.useRef(),i=v.useState(Kh++)[0],a=v.useState(gh)[0],o=v.useRef(e);v.useEffect(function(){o.current=e},[e]),v.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Km([e.lockRef.current],(e.shards||[]).map(Uh),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=v.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Vh(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Ph(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Ph(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Bh(h,t,e,h===`h`?s:c,!0)},[]),c=v.useCallback(function(e){var n=e;if(qh.length&&qh[qh.length-1]===a){var r=`deltaY`in n?Hh(n):Vh(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Wh(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map(Uh).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=v.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Yh(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=v.useCallback(function(e){n.current=Vh(e),r.current=void 0},[]),d=v.useCallback(function(t){l(t.type,Hh(t),t.target,s(t,e.lockRef.current))},[]),f=v.useCallback(function(t){l(t.type,Vh(t),t.target,s(t,e.lockRef.current))},[]);v.useEffect(function(){return qh.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,kh),document.addEventListener(`touchmove`,c,kh),document.addEventListener(`touchstart`,u,kh),function(){qh=qh.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,kh),document.removeEventListener(`touchmove`,c,kh),document.removeEventListener(`touchstart`,u,kh)}},[]);var p=e.removeScrollBar,m=e.inert;return v.createElement(v.Fragment,null,m?v.createElement(a,{styles:Gh(i)}):null,p?v.createElement(Eh,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Yh(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Xh=oh(sh,Jh),Zh=v.forwardRef(function(e,t){return v.createElement(lh,Wm({},e,{ref:t,sideCar:Xh}))});Zh.classNames=lh.classNames;var Qh=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},$h=new WeakMap,eg=new WeakMap,tg={},ng=0,rg=function(e){return e&&(e.host||rg(e.parentNode))},ig=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=rg(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},ag=function(e,t,n,r){var i=ig(t,Array.isArray(e)?e:[e]);tg[n]||(tg[n]=new WeakMap);var a=tg[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=($h.get(e)||0)+1,l=(a.get(e)||0)+1;$h.set(e,c),a.set(e,l),o.push(e),c===1&&i&&eg.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),ng++,function(){o.forEach(function(e){var t=$h.get(e)-1,i=a.get(e)-1;$h.set(e,t),a.set(e,i),t||(eg.has(e)||e.removeAttribute(r),eg.delete(e)),i||e.removeAttribute(n)}),ng--,ng||($h=new WeakMap,$h=new WeakMap,eg=new WeakMap,tg={})}},og=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Qh(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),ag(r,i,n,`aria-hidden`)):function(){return null}},sg=Object.defineProperty,cg=(e,t)=>sg(e,`name`,{value:t,configurable:!0}),lg=`Dialog`,[ug,dg]=ap(lg),[fg,pg]=ug(lg),mg=cg(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=v.useRef(null),c=v.useRef(null),[l,u]=xp({prop:r,defaultProp:i??!1,onChange:a,caller:lg}),[d,f]=v.useState(0),[p,m]=v.useState(0);return(0,R.jsx)(fg,{scope:t,triggerRef:s,contentRef:c,contentId:fp(),titleId:fp(),descriptionId:fp(),titlePresent:d>0,descriptionPresent:p>0,setTitleCount:f,setDescriptionCount:m,open:l,onOpenChange:u,onOpenToggle:v.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})},`Dialog`),hg=`DialogPortal`,[gg,_g]=ug(hg,{forceMount:void 0}),vg=cg(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=pg(hg,t);return(0,R.jsx)(gg,{scope:t,forceMount:n,children:v.Children.map(r,e=>(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),yg=`DialogOverlay`,bg=v.forwardRef(cg(function(e,t){let n=_g(yg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pg(yg,e.__scopeDialog);return a.modal?(0,R.jsx)(jm,{present:r||a.open,children:(0,R.jsx)(Sg,{...i,ref:t})}):null},`DialogOverlay`)),xg=kp(`DialogOverlay.RemoveScroll`),Sg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(yg,n),a=tp(t,rm());return(0,R.jsx)(Zh,{as:xg,allowPinchZoom:!0,shards:[i.contentRef],children:(0,R.jsx)(Wp.div,{"data-state":Mg(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),Cg=`DialogContent`,wg=v.forwardRef(cg(function(e,t){let n=_g(Cg,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=pg(Cg,e.__scopeDialog);return(0,R.jsx)(jm,{present:r||a.open,children:a.modal?(0,R.jsx)(Tg,{...i,ref:t}):(0,R.jsx)(Eg,{...i,ref:t})})},`DialogContent`)),Tg=v.forwardRef(cg(function(e,t){let n=pg(Cg,e.__scopeDialog),r=v.useRef(null),i=tp(t,n.contentRef,r);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Dg,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Y(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),Eg=v.forwardRef(cg(function(e,t){let n=pg(Cg,e.__scopeDialog),r=v.useRef(!1),i=v.useRef(!1);return(0,R.jsx)(Dg,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`DialogContentNonModal`)),Dg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=pg(Cg,n);return Hm(),(0,R.jsx)(R.Fragment,{children:(0,R.jsx)(mm,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,R.jsx)(nm,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":Mg(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),Og=`DialogTitle`,kg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(Og,n),{setTitleCount:a}=i;return sp(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,R.jsx)(Wp.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),Ag=`DialogClose`,jg=v.forwardRef(cg(function(e,t){let{__scopeDialog:n,...r}=e,i=pg(Ag,n);return(0,R.jsx)(Wp.button,{type:`button`,...r,ref:t,onClick:Y(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function Mg(e){return e?`open`:`closed`}cg(Mg,`getState`);var Ng=window.__DESIGN_STATIC__===!0,Pg=class extends Error{status;constructor(e,t){super(t),this.status=e}};async function Fg(e,t){let n=await fetch(e,{cache:t});if(!n.ok){let e=`${n.status} ${n.statusText}`;try{let t=await n.json();t.error&&(e=t.error)}catch{}throw new Pg(n.status,e)}return await n.json()}async function Ig(e){try{return await e}catch(e){if(e instanceof Pg&&e.status===404)return null;throw e}}var Lg=``;function Rg(e){return Lg!==e.version&&(Lg=e.version,console.info(`foss-design ${e.version}${Ng?` (static build)`:``}`)),e}var zg={live:!0,project:()=>Fg(`/api/project`,`no-store`).then(Rg),canvas:async e=>({doc:await Fg(`/api/canvas/${encodeURIComponent(e)}`,`no-store`),base:``}),system:async()=>{let e=await Ig(Fg(`/api/system`,`no-store`));return e?{doc:e,base:``}:null},async source(e){let t=await fetch(`/api/source?path=${encodeURIComponent(e)}`,{cache:`no-store`});if(!t.ok)throw new Pg(t.status,`Could not read ${e}`);return t.text()}},Bg=null,Vg={live:!1,project:()=>Fg(`api/project.json`,`default`).then(Rg),canvas:async e=>({doc:await Fg(`api/canvas/${encodeURIComponent(e)}.json`,`default`),base:``}),system:async()=>{let e=await Ig(Fg(`api/system.json`,`default`));return e?{doc:e,base:``}:null},async source(e){Bg??=Fg(`api/sources.json`,`default`).catch(()=>({}));let t=(await Bg)[e];if(t===void 0)throw new Pg(404,`${e} is not in this build`);return t}};function Hg(e,t){if(!t)return e;try{let n=new URL(t.endsWith(`/`)?t:`${t}/`,document.baseURI);return new URL(e,n).href}catch{return e}}function Ug(e,t){if(!t)return e;let n=e=>Hg(e,t);return{...e,pages:e.pages.map(e=>({...e,sections:e.sections.map(e=>({...e,items:e.items.map(e=>{if(e.kind===`screen`){let t=e=>e?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t&&n(t)])):void 0;return{...e,url:n(e.url),snapshots:t(e.snapshots),thumbs:t(e.thumbs)}}return e.kind===`image`?{...e,url:n(e.url)}:e})}))}))}}function Wg(e,t){if(!t)return e;let n=e=>Hg(e,t);return{...e,components:e.components.map(e=>({...e,url:n(e.url)})),assets:e.assets.map(e=>({...e,url:n(e.url)})),typographyUrl:e.typographyUrl&&n(e.typographyUrl)}}function Gg(e){return{all:[`design`,e],project:[`design`,e,`project`],canvas:t=>[`design`,e,`canvas`,t],system:[`design`,e,`system`],sources:[`design`,e,`source`],source:(t,n)=>[`design`,e,`source`,t,n]}}var Kg=new WeakMap,qg=0;function Jg(e){let t=Kg.get(e);return t||(qg+=1,t=String(qg),Kg.set(e,t)),t}var Yg=(0,v.createContext)(null);function Xg(){let e=(0,v.useContext)(Yg);if(!e)throw Error(`foss-design: this component renders inside <DesignViewer>`);return e}function Zg(e,t){if(e===t)return!0;try{return decodeURIComponent(e)===t}catch{return!1}}function Qg(e){return new zt({defaultOptions:{queries:{staleTime:e?0:1/0,retry:1,refetchOnWindowFocus:!1}}})}function $g(){let{source:e,keys:t,scope:n}=Xg();return Zt({queryKey:t.project,queryFn:()=>e.project(),enabled:!n})}function e_(e,t=!0){let{source:n,keys:r}=Xg();return Zt({queryKey:r.canvas(e),queryFn:async()=>{let{doc:t,base:r}=await n.canvas(e);return Ug(t,r)},placeholderData:e=>e,enabled:t})}function t_(e=!0){let{source:t,keys:n}=Xg();return Zt({queryKey:n.system,queryFn:async()=>{let e=await t.system();return e?Wg(e.doc,e.base):null},enabled:e})}function n_(e,t=`system`){let{source:n,keys:r}=Xg();return Zt({queryKey:r.source(t,e??``),queryFn:()=>n.source(e,t),enabled:!!e})}function r_(e,t){let n=null,r=!1;return n=new EventSource(`/api/events`),n.onopen=()=>{r&&(r=!1,e.invalidateQueries({queryKey:t.all}))},n.onerror=()=>{r=!0},n.onmessage=n=>{let r;try{r=JSON.parse(n.data)}catch{return}if(r.type===`project`)e.invalidateQueries({queryKey:t.project});else if(r.type===`system`)e.invalidateQueries({queryKey:t.system}),e.invalidateQueries({queryKey:t.sources});else if(r.type===`canvas`||r.type===`snapshot`){let n=r.type===`canvas`?r.id:r.canvas;e.invalidateQueries({queryKey:t.canvas(n)}),r.type===`snapshot`&&e.invalidateQueries({queryKey:t.project})}},()=>n?.close()}function X(...e){return e.filter(Boolean).join(` `)}var i_=null;function a_(e,t){i_={canvas:e,item:t},window.dispatchEvent(new CustomEvent(`design:focus`,{detail:i_}))}function o_(e){if(!i_||i_.canvas!==e)return null;let t=i_.item;return i_=null,t}var s_=class{value;listeners=new Set;constructor(e){this.value=e}get=()=>this.value;set=e=>{let t=typeof e==`function`?e(this.value):e;if(!Object.is(t,this.value)){this.value=t;for(let e of this.listeners)e()}};subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})};function c_(e,t=e=>e){return(0,v.useSyncExternalStore)(e.subscribe,()=>t(e.get()),()=>t(e.get()))}var l_=`foss-design.theme`;function u_(){try{let e=localStorage.getItem(l_);if(e===`light`||e===`dark`||e===`system`)return e}catch{}return`system`}var d_=new s_(u_()),f_=window.matchMedia(`(prefers-color-scheme: dark)`);function p_(e){return e===`system`?f_.matches?`dark`:`light`:e}function m_(){document.documentElement.dataset.theme=p_(d_.get())}f_.addEventListener(`change`,m_),d_.subscribe(m_),m_();function h_(e){try{localStorage.setItem(l_,e)}catch{}d_.set(e)}function g_(){return c_(d_)}function __(){let e=c_(d_),t=(0,v.useSyncExternalStore)(e=>(f_.addEventListener(`change`,e),()=>f_.removeEventListener(`change`,e)),()=>f_.matches);return e===`system`?t?`dark`:`light`:e}var v_={plus:`<path d="M5 12h14"/><path d="M12 5v14"/>`,check:`<path d="M20 6 9 17l-5-5"/>`,x:`<path d="M18 6 6 18"/><path d="m6 6 12 12"/>`,"chevron-down":`<path d="m6 9 6 6 6-6"/>`,"chevron-up":`<path d="m18 15-6-6-6 6"/>`,"chevron-right":`<path d="m9 18 6-6-6-6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>`,chevrons:`<path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/>`,copy:`<rect width="14" height="14" x="8" y="8" rx="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/>`,search:`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>`,bell:`<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/>`,refresh:`<path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M8 16H3v5"/>`,"up-right":`<path d="M7 7h10v10"/><path d="M7 17 17 7"/>`,"down-left":`<path d="M17 7 7 17"/><path d="M17 17H7V7"/>`,external:`<path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>`,"user-plus":`<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M19 8v6"/><path d="M22 11h-6"/>`,user:`<circle cx="12" cy="8" r="5"/><path d="M20 21a8 8 0 0 0-16 0"/>`,trash:`<path d="M3 6h18"/><path d="M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"/><path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"/>`,more:`<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>`,alert:`<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/>`,info:`<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>`,upload:`<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m17 8-5-5-5 5"/><path d="M12 3v12"/>`,download:`<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m7 10 5 5 5-5"/><path d="M12 15V3"/>`,shield:`<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/>`,logout:`<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="m16 17 5-5-5-5"/><path d="M21 12H9"/>`,loader:`<path d="M21 12a9 9 0 1 1-6.219-8.56"/>`,"circle-check":`<circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/>`,"circle-dashed":`<circle cx="12" cy="12" r="9" stroke-dasharray="3 3"/>`,clock:`<circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/>`,mail:`<rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/>`,send:`<path d="m22 2-7 20-4-9-9-4Z"/><path d="M22 2 11 13"/>`,chat:`<path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"/>`,wallet:`<path d="M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1"/><path d="M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4"/>`,"file-code":`<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="m10 13-2 2 2 2"/><path d="m14 17 2-2-2-2"/>`,ban:`<circle cx="12" cy="12" r="10"/><path d="m4.9 4.9 14.2 14.2"/>`,code:`<path d="m16 18 6-6-6-6"/><path d="m8 6-6 6 6 6"/>`,"chevron-left":`<path d="m15 18-6-6 6-6"/>`,bluetooth:`<path d="m7 7 10 10-5 5V2l5 5L7 17"/>`,face:`<path d="M3 7V5a2 2 0 0 1 2-2h2"/><path d="M17 3h2a2 2 0 0 1 2 2v2"/><path d="M21 17v2a2 2 0 0 1-2 2h-2"/><path d="M7 21H5a2 2 0 0 1-2-2v-2"/><path d="M8 14s1.5 2 4 2 4-2 4-2"/><path d="M9 9h.01"/><path d="M15 9h.01"/>`,eye:`<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>`,clipboard:`<rect width="8" height="4" x="8" y="2" rx="1" ry="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/>`,grip:`<circle cx="9" cy="5" r="1"/><circle cx="9" cy="12" r="1"/><circle cx="9" cy="19" r="1"/><circle cx="15" cy="5" r="1"/><circle cx="15" cy="12" r="1"/><circle cx="15" cy="19" r="1"/>`,list:`<path d="M3 12h.01"/><path d="M3 18h.01"/><path d="M3 6h.01"/><path d="M8 12h13"/><path d="M8 18h13"/><path d="M8 6h13"/>`,lock:`<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>`,hw:`<rect width="20" height="10" x="2" y="7" rx="2"/><path d="M15 7v10"/><circle cx="8" cy="12" r="1.5"/>`,link:`<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/>`,signal:`<path d="M2 20h.01"/><path d="M7 20v-4"/><path d="M12 20v-8"/><path d="M17 20V8"/>`,grid:`<rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>`,coins:`<circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18"/><path d="M7 6h1v4"/><path d="m16.71 13.88.7.71-2.82 2.82"/>`,arrows:`<path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/>`,key:`<path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4"/><path d="m21 2-9.6 9.6"/><circle cx="7.5" cy="15.5" r="5.5"/>`,blocks:`<rect width="7" height="7" x="14" y="3" rx="1"/><path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3"/>`,settings:`<path d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"/><circle cx="12" cy="12" r="3"/>`,qr:`<rect width="5" height="5" x="3" y="3" rx="1"/><rect width="5" height="5" x="16" y="3" rx="1"/><rect width="5" height="5" x="3" y="16" rx="1"/><path d="M21 16h-3a2 2 0 0 0-2 2v3"/><path d="M21 21v.01"/><path d="M12 7v3a2 2 0 0 1-2 2H7"/><path d="M3 12h.01"/><path d="M12 3h.01"/><path d="M12 16v.01"/><path d="M16 12h1"/><path d="M21 12v.01"/><path d="M12 21v-1"/>`,edit:`<path d="M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"/>`,star:`<path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"/>`,home:`<path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"/><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>`,moon:`<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>`,sun:`<circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>`,languages:`<path d="m5 8 6 6"/><path d="m4 14 6-6 2-3"/><path d="M2 5h12"/><path d="M7 2h1"/><path d="m22 22-5-10-5 10"/><path d="M14 18h6"/>`,"arrow-left":`<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>`,play:`<polygon points="6 3 20 12 6 21 6 3"/>`,"zoom-in":`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/><path d="M11 8v6"/><path d="M8 11h6"/>`,"zoom-out":`<circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/><path d="M8 11h6"/>`,fit:`<path d="M8 3H5a2 2 0 0 0-2 2v3"/><path d="M21 8V5a2 2 0 0 0-2-2h-3"/><path d="M3 16v3a2 2 0 0 0 2 2h3"/><path d="M16 21h3a2 2 0 0 0 2-2v-3"/>`,"panel-left":`<rect width="18" height="18" x="3" y="3" rx="2"/><path d="M9 3v18"/>`,layers:`<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65"/><path d="m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65"/>`,file:`<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/>`,palette:`<circle cx="13.5" cy="6.5" r="1"/><circle cx="17.5" cy="10.5" r="1"/><circle cx="8.5" cy="7.5" r="1"/><circle cx="6.5" cy="12.5" r="1"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.93 0 1.65-.75 1.65-1.69 0-.44-.18-.84-.44-1.13-.29-.29-.44-.65-.44-1.13a1.64 1.64 0 0 1 1.67-1.67h2c3.05 0 5.55-2.5 5.55-5.55C21.96 6.01 17.46 2 12 2z"/>`,type:`<path d="M4 7V4h16v3"/><path d="M9 20h6"/><path d="M12 4v16"/>`,shape:`<path d="M5 3a2 2 0 0 0-2 2"/><path d="M19 3a2 2 0 0 1 2 2"/><path d="M21 19a2 2 0 0 1-2 2"/><path d="M5 21a2 2 0 0 1-2-2"/><path d="M9 3h1"/><path d="M9 21h1"/><path d="M14 3h1"/><path d="M14 21h1"/><path d="M3 9v1"/><path d="M21 9v1"/><path d="M3 14v1"/><path d="M21 14v1"/>`,motion:`<path d="M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/><path d="M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/><path d="M2 6c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1 .6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1"/>`,book:`<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>`,image:`<rect width="18" height="18" x="3" y="3" rx="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.09-3.09a2 2 0 0 0-2.82 0L6 21"/>`,monitor:`<rect width="20" height="14" x="2" y="3" rx="2"/><path d="M8 21h8"/><path d="M12 17v4"/>`,smartphone:`<rect width="14" height="20" x="5" y="2" rx="2"/><path d="M12 18h.01"/>`,tablet:`<rect width="16" height="20" x="4" y="2" rx="2"/><path d="M12 18h.01"/>`,note:`<path d="M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z"/><path d="M15 3v4a2 2 0 0 0 2 2h4"/>`,globe:`<circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/>`,pointer:`<path d="M4.04 4.69a.5.5 0 0 1 .65-.65l16 6.5a.5.5 0 0 1-.06.95l-6.12 1.58a2 2 0 0 0-1.44 1.44l-1.58 6.12a.5.5 0 0 1-.95.06z"/>`,component:`<path d="M5.5 8.5 9 12l-3.5 3.5L2 12l3.5-3.5Z"/><path d="m12 2 3.5 3.5L12 9 8.5 5.5 12 2Z"/><path d="M18.5 8.5 22 12l-3.5 3.5L15 12l3.5-3.5Z"/><path d="m12 15 3.5 3.5L12 22l-3.5-3.5L12 15Z"/>`,keyboard:`<rect width="20" height="16" x="2" y="4" rx="2"/><path d="M6 8h.01"/><path d="M10 8h.01"/><path d="M14 8h.01"/><path d="M18 8h.01"/><path d="M8 12h.01"/><path d="M12 12h.01"/><path d="M16 12h.01"/><path d="M7 16h10"/>`,folder:`<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>`,canvas:`<rect width="7" height="9" x="3" y="3" rx="1"/><rect width="7" height="5" x="14" y="3" rx="1"/><rect width="7" height="9" x="14" y="12" rx="1"/><rect width="7" height="5" x="3" y="16" rx="1"/>`};function Z({name:e,size:t=16,strokeWidth:n=1.75,className:r}){return(0,R.jsx)(`svg`,{width:t,height:t,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:n,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,className:`shrink-0 ${e===`loader`?`animate-spin`:``} ${r??``}`,dangerouslySetInnerHTML:{__html:v_[e]}})}function Q({children:e,size:t=12.5,className:n,title:r,wrap:i}){return(0,R.jsx)(`span`,{title:r,className:X(i?`break-all`:`whitespace-nowrap`,`font-mono`,n),style:{fontSize:t},children:e})}function y_({children:e}){return(0,R.jsx)(`kbd`,{className:`rounded-[4px] border border-rule bg-surface px-[5px] py-px font-mono text-[11px] text-ink2`,children:e})}function b_({top:e,bottom:t,weight:n=500}){return(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-px`,children:[(0,R.jsx)(`span`,{className:`truncate leading-[1.35]`,style:{fontWeight:n},children:e}),t?(0,R.jsx)(`span`,{className:`flex min-w-0 items-center gap-2.5 overflow-hidden whitespace-nowrap text-[12.5px] leading-[1.35] text-muted`,children:t}):null]})}var x_={canvas:`This canvas`,canvases:`Canvases`,system:`Design system`,actions:`Actions`};function S_(e){let t=/^\/c\/([^/]+)/.exec(e);return t?decodeURIComponent(t[1]):null}function C_({onClose:e}){let[t,n]=F(),r=Xg().scope,i=$g().data,a=r?.canvas??S_(t),o=e_(a??``,!!a).data,s=t_(!!i?.system).data,[c,l]=(0,v.useState)(``),[u,d]=(0,v.useState)(0),f=t=>()=>{e(),t()},p=[];if(o)for(let e of o.pages){p.push({id:`page:${e.id}`,group:`canvas`,label:e.title,icon:`file`,hint:`Page`,run:f(()=>n(`/c/${encodeURIComponent(o.id)}/p/${encodeURIComponent(e.id)}`))});for(let t of e.sections)for(let r of t.items)(r.kind===`screen`||r.kind===`url`)&&p.push({id:`item:${e.id}:${r.id}`,group:`canvas`,label:r.title,icon:r.kind===`url`?`globe`:`monitor`,hint:t.title?`${e.title} · ${t.title}`:e.title,keywords:`${r.id} ${t.title??``}`,searchOnly:!0,run:f(()=>{n(`/c/${encodeURIComponent(o.id)}/p/${encodeURIComponent(e.id)}`),a_(o.id,r.id)})})}for(let e of i?.canvases??[])e.id!==a&&p.push({id:`canvas:${e.id}`,group:`canvases`,label:e.title,icon:`canvas`,hint:`${e.screens} screens`,keywords:e.id,run:f(()=>n(`/c/${encodeURIComponent(e.id)}`))});if(i?.system){for(let[e,t,r]of[[`Overview`,`/system`,`book`],[`Colors`,`/system/colors`,`palette`],[`Typography`,`/system/typography`,`type`],[`Spacing & shape`,`/system/shape`,`shape`]])p.push({id:`sys:${t}`,group:`system`,label:e,icon:r,run:f(()=>n(t))});for(let e of s?.components??[])p.push({id:`component:${e.id}`,group:`system`,label:e.title,icon:`component`,hint:e.group,searchOnly:!0,run:f(()=>n(`/system/components/${encodeURIComponent(e.id)}`))});for(let e of s?.guidelines??[])p.push({id:`guide:${e.slug}`,group:`system`,label:e.title,icon:`book`,hint:`Guideline`,searchOnly:!0,run:f(()=>n(`/system/guidelines/${encodeURIComponent(e.slug)}`))})}r||p.push({id:`home`,group:`actions`,label:`All canvases`,icon:`home`,run:f(()=>n(`/`))}),p.push({id:`light`,group:`actions`,label:`Light appearance`,icon:`sun`,searchOnly:!0,run:f(()=>h_(`light`))},{id:`dark`,group:`actions`,label:`Dark appearance`,icon:`moon`,searchOnly:!0,run:f(()=>h_(`dark`))},{id:`system-theme`,group:`actions`,label:`System appearance`,icon:`monitor`,searchOnly:!0,run:f(()=>h_(`system`))});let m=c.trim().toLowerCase(),h=p.filter(e=>m?`${e.label} ${e.keywords??``} ${typeof e.hint==`string`?e.hint:``}`.toLowerCase().includes(m):!e.searchOnly),g=[`canvas`,`canvases`,`system`,`actions`].map(e=>({group:e,items:h.filter(t=>t.group===e)})).filter(e=>e.items.length),_=g.flatMap(e=>e.items),y=Math.min(u,Math.max(_.length-1,0)),b=-1;return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(kg,{className:`sr-only`,children:`Search and jump`}),(0,R.jsxs)(`div`,{className:`flex h-12 shrink-0 items-center gap-2.5 border-b border-rule px-4`,children:[(0,R.jsx)(Z,{name:`search`,size:16,className:`text-muted`}),(0,R.jsx)(`input`,{value:c,onChange:e=>{l(e.target.value),d(0)},onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),d((y+1)%Math.max(_.length,1))):e.key===`ArrowUp`?(e.preventDefault(),d((y-1+_.length)%Math.max(_.length,1))):e.key===`Enter`&&(e.preventDefault(),_[y]?.run())},placeholder:`Canvases, screens, components…`,"aria-label":`Search and jump`,role:`combobox`,"aria-expanded":`true`,"aria-controls":`palette-list`,autoComplete:`off`,spellCheck:!1,className:`h-full min-w-0 grow border-0 bg-transparent text-[15px] text-ink outline-none placeholder:text-muted`}),(0,R.jsx)(y_,{children:`esc`})]}),(0,R.jsx)(`div`,{id:`palette-list`,role:`listbox`,className:`min-h-0 grow overflow-y-auto py-1.5`,children:g.length?g.map(({group:e,items:t})=>(0,R.jsxs)(`div`,{role:`presentation`,children:[(0,R.jsx)(`div`,{className:`px-4 pt-2.5 pb-1 text-[12px] text-muted`,children:x_[e]}),t.map(e=>{b+=1;let t=b,n=t===y;return(0,R.jsxs)(`button`,{type:`button`,role:`option`,tabIndex:-1,"aria-selected":n,ref:n?e=>e?.scrollIntoView({block:`nearest`}):void 0,onMouseMove:()=>n?void 0:d(t),onClick:e.run,className:X(`flex h-10 w-full cursor-pointer items-center gap-3 border-0 px-4 text-left text-[13.5px] text-ink`,n?`bg-soft`:`bg-transparent`),children:[(0,R.jsx)(`span`,{className:`flex w-5 shrink-0 justify-center text-ink2`,children:(0,R.jsx)(Z,{name:e.icon,size:16})}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.label}),e.hint?(0,R.jsx)(`span`,{className:`flex shrink-0 items-center text-[12.5px] text-muted`,children:e.hint}):null]},e.id)})]},e)):(0,R.jsx)(`div`,{className:`px-6 py-10 text-center text-[13px] text-muted`,children:`Nothing matches.`})}),(0,R.jsxs)(`div`,{className:`flex h-9 shrink-0 items-center gap-4 border-t border-rule bg-soft px-4 text-[12px] text-muted`,children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(y_,{children:`↑`}),(0,R.jsx)(y_,{children:`↓`}),`move`]}),(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(y_,{children:`↵`}),`open`]})]})]})}function w_(){let[e,t]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{let e=()=>t(e=>!e),n=t=>{(t.metaKey||t.ctrlKey)&&t.key.toLowerCase()===`k`&&(t.preventDefault(),e())};return window.addEventListener(`keydown`,n),window.addEventListener(`design:palette`,e),()=>{window.removeEventListener(`keydown`,n),window.removeEventListener(`design:palette`,e)}},[]),(0,R.jsx)(mg,{open:e,onOpenChange:t,children:(0,R.jsx)($u,{children:e?(0,R.jsx)(vg,{forceMount:!0,children:(0,R.jsx)(bg,{asChild:!0,forceMount:!0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.14},className:`fixed inset-0 z-50 flex items-start justify-center bg-overlay p-6 pt-[12vh]`,children:(0,R.jsx)(wg,{asChild:!0,forceMount:!0,"aria-describedby":void 0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0,scale:.98,y:-6},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.98,transition:{duration:.1}},transition:{type:`spring`,stiffness:560,damping:40},className:`flex max-h-[min(560px,76vh)] w-[560px] max-w-full flex-col overflow-hidden rounded-[12px] border border-rule bg-surface shadow-pop outline-none`,children:(0,R.jsx)(C_,{onClose:()=>t(!1)})})})})})}):null})})}var T_=/Mac|iPhone|iPad/.test(navigator.platform)?`⌘`:`Ctrl`;function E_(){window.dispatchEvent(new CustomEvent(`design:palette`))}function D_({width:e=240,label:t=`Search and jump`}){return(0,R.jsxs)(`button`,{type:`button`,onClick:E_,style:{width:e},"aria-label":t,className:`flex h-ctrl min-w-0 shrink cursor-pointer items-center gap-2 rounded-[6px] border border-rule bg-soft pr-1.5 pl-3 text-ctrl text-muted transition-colors hover:border-rule-strong max-lg:w-auto! max-md:w-ctrl! max-md:justify-center max-md:border-0! max-md:bg-transparent! max-md:p-0!`,children:[(0,R.jsx)(Z,{name:`search`,size:15}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate text-left max-lg:hidden`,children:t}),(0,R.jsx)(`span`,{className:`flex max-md:hidden`,children:(0,R.jsx)(y_,{children:T_===`⌘`?`⌘K`:`Ctrl K`})})]})}var O_={primary:`border border-primary bg-primary text-primary-ink hover:opacity-90`,secondary:`border border-rule-strong bg-surface text-ink hover:bg-soft`,ghost:`border border-transparent bg-transparent text-ink2 hover:bg-soft2`,dashed:`border border-dashed border-rule-strong bg-transparent text-ink2 hover:bg-soft`,danger:`border border-danger bg-danger text-on-danger hover:opacity-90`},k_=(e=`secondary`,t)=>X(`inline-flex h-ctrl shrink-0 cursor-pointer items-center justify-center gap-1.5 whitespace-nowrap rounded-[6px] px-ctrl text-ctrl font-medium leading-none no-underline transition-[background-color,opacity] duration-100`,`disabled:cursor-not-allowed disabled:opacity-45 aria-disabled:cursor-not-allowed aria-disabled:opacity-45`,O_[e],t),A_=(0,v.forwardRef)(function({kind:e=`secondary`,icon:t,loading:n,disabled:r,className:i,children:a,type:o=`button`,...s},c){return(0,R.jsxs)(`button`,{ref:c,type:o,disabled:r||n,"aria-busy":n||void 0,className:k_(e,i),...s,children:[n?(0,R.jsx)(Z,{name:`loader`,size:15,className:`animate-spin`}):t?(0,R.jsx)(Z,{name:t,size:15}):null,a]})}),j_={ghost:`border border-transparent bg-transparent text-muted hover:bg-soft2 hover:text-ink2`,secondary:`border border-rule-strong bg-surface text-ink2 hover:bg-soft`},M_=(e=`ghost`,t)=>X(`inline-flex h-ctrl w-ctrl shrink-0 cursor-pointer items-center justify-center rounded-[6px] p-0 transition-colors duration-100 disabled:cursor-not-allowed disabled:opacity-45`,j_[e],t),N_=(0,v.forwardRef)(function({icon:e,label:t,kind:n=`ghost`,size:r=16,className:i,type:a=`button`,...o},s){return(0,R.jsx)(`button`,{ref:s,type:a,"aria-label":t,title:t,className:M_(n,i),...o,children:(0,R.jsx)(Z,{name:e,size:r})})});function P_({to:e,kind:t=`secondary`,icon:n,className:r,children:i}){return(0,R.jsxs)(ye,{href:e,className:k_(t,r),children:[n?(0,R.jsx)(Z,{name:n,size:15}):null,i]})}function F_({kind:e=`secondary`,icon:t,className:n,children:r,...i}){return(0,R.jsxs)(`a`,{className:k_(e,n),...i,children:[t?(0,R.jsx)(Z,{name:t,size:15}):null,r]})}var I_=Object.defineProperty,L_=(e,t)=>I_(e,`name`,{value:t,configurable:!0});function R_(e){let t=e+`CollectionProvider`,[n,r]=ap(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=L_(e=>{let{scope:t,children:n}=e,r=v.useRef(null),a=v.useRef(new Map).current;return(0,R.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=kp(s),l=v.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=tp(t,a(s,n).collectionRef);return(0,R.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=kp(u),p=v.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=v.useRef(null),s=tp(t,o),c=a(u,n);return v.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,R.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return v.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return L_(m,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},m,r]}L_(R_,`createCollection`);var z_=new WeakMap,B_=class e extends Map{static{L_(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],z_.set(this,!0)}set(e,t){return z_.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=U_(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=V_(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=V_(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return V_(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function V_(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=H_(e,t);return n===-1?void 0:e[n]}L_(V_,`at`);function H_(e,t){let n=e.length,r=U_(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}L_(H_,`toSafeIndex`);function U_(e){return e!==e||e===0?0:Math.trunc(e)}L_(U_,`toSafeInteger`);function W_(e){let t=e+`CollectionProvider`,[n,r]=ap(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new B_,setItemMap:L_(()=>void 0,`setItemMap`)}),o=L_(({state:e,...t})=>e?(0,R.jsx)(c,{...t,state:e}):(0,R.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=L_(e=>{let t=h();return(0,R.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=L_(e=>{let{scope:t,children:n,state:r}=e,a=v.useRef(null),[o,s]=v.useState(null),c=tp(a,s),[l,u]=r;return v.useEffect(()=>{if(!o)return;let e=J_(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,R.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=kp(l),d=v.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=tp(t,a(l,n).collectionRef);return(0,R.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=kp(f),m=v.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=v.useRef(null),[s,c]=v.useState(null),l=tp(t,o,c),{setItemMap:u}=a(f,n),d=v.useRef(i);G_(d.current,i)||(d.current=i);let m=d.current;return v.useEffect(()=>{let e=m;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(q_):(t.set(s,{...e,element:s}),t.toSorted(q_)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new B_(e)))}},[s,m,u]),(0,R.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});m.displayName=f;function h(){return v.useState(new B_)}L_(h,`useInitCollection`);function g(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return L_(g,`useCollection`),[{Provider:o,Slot:d,ItemSlot:m},{createCollectionScope:r,useCollection:g,useInitCollection:h}]}L_(W_,`createCollection`);function G_(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}L_(G_,`shallowEqual`);function K_(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}L_(K_,`isElementPreceding`);function q_(e,t){return!e[1].element||!t[1].element?0:K_(e[1].element,t[1].element)?-1:1}L_(q_,`sortByDocumentPosition`);function J_(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}L_(J_,`getChildListObserver`);var Y_=Object.defineProperty,X_=(e,t)=>Y_(e,`name`,{value:t,configurable:!0}),Z_=v.createContext(void 0);function Q_(e){let t=v.useContext(Z_);return e||t||`ltr`}X_(Q_,`useDirection`);var $_=[`top`,`right`,`bottom`,`left`],ev=Math.min,tv=Math.max,nv=Math.round,rv=Math.floor,iv=e=>({x:e,y:e}),av={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ov(e,t,n){return tv(e,ev(t,n))}function sv(e,t){return typeof e==`function`?e(t):e}function cv(e){return e.split(`-`)[0]}function lv(e){return e.split(`-`)[1]}function uv(e){return e===`x`?`y`:`x`}function dv(e){return e===`y`?`height`:`width`}function fv(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function pv(e){return uv(fv(e))}function mv(e,t,n){n===void 0&&(n=!1);let r=lv(e),i=pv(e),a=dv(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Cv(o)),[o,Cv(o)]}function hv(e){let t=Cv(e);return[gv(e),t,gv(t)]}function gv(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var _v=[`left`,`right`],vv=[`right`,`left`],yv=[`top`,`bottom`],bv=[`bottom`,`top`];function xv(e,t,n){switch(e){case`top`:case`bottom`:return n?t?vv:_v:t?_v:vv;case`left`:case`right`:return t?yv:bv;default:return[]}}function Sv(e,t,n,r){let i=lv(e),a=xv(cv(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(gv)))),a}function Cv(e){let t=cv(e);return av[t]+e.slice(t.length)}function wv(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function Tv(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:wv(e)}function Ev(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Dv(e,t,n){let{reference:r,floating:i}=e,a=fv(t),o=pv(t),s=dv(o),c=cv(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=lv(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function Ov(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=sv(t,e),p=Tv(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ev(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ev(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var kv=50,Av=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ov},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Dv(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<kv&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Dv(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},jv=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=sv(e,t)||{};if(l==null)return{};let d=Tv(u),f={x:n,y:r},p=pv(i),m=dv(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=ev(d[_],T),D=ev(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=ov(E,k,O),j=!c.arrow&&lv(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,ee=j?k<E?k-E:k-O:0;return{[p]:f[p]+ee,data:{[p]:A,centerOffset:k-A-ee,...j&&{alignmentOffset:ee}},reset:j}}}),Mv=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=sv(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=cv(r),_=fv(o),v=cv(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Cv(o)]:hv(o)),x=p!==`none`;!d&&x&&b.push(...Sv(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=mv(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===fv(t)||T.every(e=>fv(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=fv(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Nv(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Pv(e){return $_.some(t=>e[t]>=0)}var Fv=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=sv(e,t);switch(i){case`referenceHidden`:{let e=Nv(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:Pv(e)}}}case`escaped`:{let e=Nv(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:Pv(e)}}}default:return{}}}}},Iv=new Set([`left`,`top`]);async function Lv(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=cv(n),s=lv(n),c=fv(n)===`y`,l=Iv.has(o)?-1:1,u=a&&c?-1:1,d=sv(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Rv=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Lv(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},zv=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=sv(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=fv(i),p=uv(f),m=u[p],h=u[f],g=(e,t)=>ov(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Bv=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=sv(e,t),u={x:n,y:r},d=fv(i),f=uv(d),p=u[f],m=u[d],h=sv(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Iv.has(cv(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Vv=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=sv(e,t),c=await i.detectOverflow(t,s),l=cv(n),u=lv(n),d=fv(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=ev(p-c[m],g),y=ev(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*tv(c.left,c.right):S=p-2*tv(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function Hv(){return typeof window<`u`}function Uv(e){return Kv(e)?(e.nodeName||``).toLowerCase():`#document`}function Wv(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Gv(e){return((Kv(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Kv(e){return Hv()?e instanceof Node||e instanceof Wv(e).Node:!1}function qv(e){return Hv()?e instanceof Element||e instanceof Wv(e).Element:!1}function Jv(e){return Hv()?e instanceof HTMLElement||e instanceof Wv(e).HTMLElement:!1}function Yv(e){return!Hv()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof Wv(e).ShadowRoot}function Xv(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=sy(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Zv(e){return/^(table|td|th)$/.test(Uv(e))}function Qv(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var $v=/transform|translate|scale|rotate|perspective|filter/,ey=/paint|layout|strict|content/,ty=e=>!!e&&e!==`none`,ny;function ry(e){let t=qv(e)?sy(e):e;return ty(t.transform)||ty(t.translate)||ty(t.scale)||ty(t.rotate)||ty(t.perspective)||!ay()&&(ty(t.backdropFilter)||ty(t.filter))||$v.test(t.willChange||``)||ey.test(t.contain||``)}function iy(e){let t=ly(e);for(;Jv(t)&&!oy(t);){if(ry(t))return t;if(Qv(t))return null;t=ly(t)}return null}function ay(){return ny??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ny}function oy(e){return/^(html|body|#document)$/.test(Uv(e))}function sy(e){return Wv(e).getComputedStyle(e)}function cy(e){return qv(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ly(e){if(Uv(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Yv(e)&&e.host||Gv(e);return Yv(t)?t.host:t}function uy(e){let t=ly(e);return oy(t)?(e.ownerDocument||e).body:Jv(t)&&Xv(t)?t:uy(t)}function dy(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=uy(e),i=r===e.ownerDocument?.body,a=Wv(r);if(i){let e=fy(a);return t.concat(a,a.visualViewport||[],Xv(r)?r:[],e&&n?dy(e):[])}return t.concat(r,dy(r,[],n))}function fy(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function py(e){let t=sy(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Jv(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=nv(n)!==a||nv(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function my(e){return qv(e)?e:e.contextElement}function hy(e){let t=my(e);if(!Jv(t))return iv(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=py(t),o=(a?nv(n.width):n.width)/r,s=(a?nv(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var gy=iv(0);function _y(e){let t=Wv(e);return!ay()||!t.visualViewport?gy:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vy(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===Wv(e)}function yy(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=my(e),o=iv(1);t&&(r?qv(r)&&(o=hy(r)):o=hy(e));let s=vy(a,n,r)?_y(a):iv(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=Wv(a),t=qv(r)?Wv(r):r,n=e,i=fy(n);for(;i&&t!==n;){let e=hy(i),t=i.getBoundingClientRect(),r=sy(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=Wv(i),i=fy(n)}}return Ev({width:u,height:d,x:c,y:l})}function by(e,t){let n=cy(e).scrollLeft;return t?t.left+n:yy(Gv(e)).left+n}function xy(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-by(e,n),y:n.top+t.scrollTop}}function Sy(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Gv(r),s=t?Qv(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=iv(1),u=iv(0),d=Jv(r);if((d||!a)&&((Uv(r)!==`body`||Xv(o))&&(c=cy(r)),d)){let e=yy(r);l=hy(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?xy(o,c):iv(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Cy(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function wy(e){let t=cy(e),n=e.ownerDocument.body,r=tv(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=tv(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+by(e),o=-t.scrollTop;return sy(n).direction===`rtl`&&(a+=tv(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var Ty=25;function Ey(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=Wv(e),a=Gv(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!ay()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(by(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=Ty&&(s-=o)}return{width:s,height:c,x:l,y:u}}function Dy(e,t){let n=yy(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=hy(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Oy(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=Ey(e,n,t);else if(t===`document`)r=wy(Gv(e));else if(qv(t))r=Dy(t,n);else{let n=_y(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ev(r)}function ky(e,t){let n=t.get(e);if(n)return n;let r=dy(e,[],!1).filter(e=>qv(e)&&Uv(e)!==`body`),i=null,a=sy(e).position===`fixed`,o=a?ly(e):e;for(;qv(o)&&!oy(o);){let e=sy(o),t=ry(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=ly(o)}return t.set(e,r),r}function Ay(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Qv(t)?[]:ky(t,this._c):[].concat(n),r],o=Oy(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Oy(t,a[e],i);s=tv(n.top,s),c=ev(n.right,c),l=ev(n.bottom,l),u=tv(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function jy(e){let{width:t,height:n}=py(e);return{width:t,height:n}}function My(e,t,n){let r=Jv(t),i=Gv(t),a=n===`fixed`,o=yy(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=iv(0);if((r||!a)&&((Uv(t)!==`body`||Xv(i))&&(s=cy(t)),r)){let e=yy(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=by(i));let l=i&&!r&&!a?xy(i,s):iv(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Ny(e){return sy(e).position===`static`}function Py(e,t){if(!Jv(e)||sy(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Gv(e)===n&&(n=n.ownerDocument.body),n}function Fy(e,t){let n=Wv(e);if(Qv(e))return n;if(!Jv(e)){let t=ly(e);for(;t&&!oy(t);){if(qv(t)&&!Ny(t))return t;t=ly(t)}return n}let r=Py(e,t);for(;r&&Zv(r)&&Ny(r);)r=Py(r,t);return r&&oy(r)&&Ny(r)&&!ry(r)?n:r||iy(e)||n}var Iy=async function(e){let t=this.getOffsetParent||Fy,n=this.getDimensions,r=await n(e.floating);return{reference:My(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ly(e){return sy(e).direction===`rtl`}var Ry={convertOffsetParentRelativeRectToViewportRelativeRect:Sy,getDocumentElement:Gv,getClippingRect:Ay,getOffsetParent:Fy,getElementRects:Iy,getClientRects:Cy,getDimensions:jy,getScale:hy,isElement:qv,isRTL:Ly};function zy(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function By(e,t,n){let r=null,i,a=Gv(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=rv(d),h=rv(a.clientWidth-(u+f)),g=rv(a.clientHeight-(d+p)),_=rv(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:tv(0,ev(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!zy(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=Wv(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function Vy(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=my(e),u=i||a?[...l?dy(l):[],...t?dy(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?By(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?yy(e):null;c&&g();function g(){let t=yy(e);h&&!zy(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Hy=Rv,Uy=zv,Wy=Mv,Gy=Vv,Ky=Fv,qy=jv,Jy=Bv,Yy=(e,t,n)=>{let r=new Map,i=n??{},a={...Ry,...i.platform,_c:r};return Av(e,t,{...i,platform:a})},Xy=typeof document<`u`?v.useLayoutEffect:function(){};function Zy(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Zy(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Zy(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Qy(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function $y(e,t){let n=Qy(e);return Math.round(t*n)/n}function eb(e){let t=v.useRef(e);return Xy(()=>{t.current=e}),t}function tb(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=v.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=v.useState(r);Zy(f,r)||p(r);let[m,h]=v.useState(null),[g,_]=v.useState(null),y=v.useCallback(e=>{e!==C.current&&(C.current=e,h(e))},[]),b=v.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=a||m,S=o||g,C=v.useRef(null),w=v.useRef(null),T=v.useRef(u),E=c!=null,D=eb(c),O=eb(i),k=eb(l),A=v.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),Yy(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!Zy(T.current,t)&&(T.current=t,Ep.flushSync(()=>{d(t)}))})},[f,t,n,O,k]);Xy(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let j=v.useRef(!1);Xy(()=>(j.current=!0,()=>{j.current=!1}),[]),Xy(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let ee=v.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),te=v.useMemo(()=>({reference:x,floating:S}),[x,S]),M=v.useMemo(()=>{let e={position:n,left:0,top:0};if(!te.floating)return e;let t=$y(te.floating,u.x),r=$y(te.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Qy(te.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,te.floating,u.x,u.y]);return v.useMemo(()=>({...u,update:A,refs:ee,elements:te,floatingStyles:M}),[u,A,ee,te,M])}var nb=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:qy({element:r.current,padding:i}).fn(n):r?qy({element:r,padding:i}).fn(n):{}}}},rb=(e,t)=>{let n=Hy(e);return{name:n.name,fn:n.fn,options:[e,t]}},ib=(e,t)=>{let n=Uy(e);return{name:n.name,fn:n.fn,options:[e,t]}},ab=(e,t)=>({fn:Jy(e).fn,options:[e,t]}),ob=(e,t)=>{let n=Wy(e);return{name:n.name,fn:n.fn,options:[e,t]}},sb=(e,t)=>{let n=Gy(e);return{name:n.name,fn:n.fn,options:[e,t]}},cb=(e,t)=>{let n=Ky(e);return{name:n.name,fn:n.fn,options:[e,t]}},lb=(e,t)=>{let n=nb(e);return{name:n.name,fn:n.fn,options:[e,t]}},ub=Object.defineProperty,db=(e,t)=>ub(e,`name`,{value:t,configurable:!0});function fb(e){let[t,n]=v.useState(void 0);return sp(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}db(fb,`useSize`);var pb=Object.defineProperty,mb=(e,t)=>pb(e,`name`,{value:t,configurable:!0}),hb=`Popper`,[gb,_b]=ap(hb),[vb,yb]=gb(hb),bb=mb(e=>{let{__scopePopper:t,children:n}=e,[r,i]=v.useState(null),[a,o]=v.useState(void 0);return(0,R.jsx)(vb,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),xb=`PopperAnchor`,Sb=v.forwardRef(mb(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=yb(xb,n),o=v.useRef(null),s=a.onAnchorChange,c=tp(t,v.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=v.useRef(null);v.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&kb(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,R.jsx)(Wp.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),Cb=`PopperContent`,[wb,Tb]=gb(Cb),Eb=v.forwardRef(mb(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=yb(Cb,n),[_,y]=v.useState(null),b=tp(t,y),[x,S]=v.useState(null),C=fb(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},O=Array.isArray(l)?l:[l],k=O.length>0,A={padding:D,boundary:O.filter(Db),altBoundary:k},{refs:j,floatingStyles:ee,placement:te,isPositioned:M,middlewareData:N}=tb({strategy:`fixed`,placement:E,whileElementsMounted:mb((...e)=>Vy(...e,{animationFrame:p===`always`}),`whileElementsMounted`),elements:{reference:g.anchor},middleware:[rb({mainAxis:i+T,alignmentAxis:o}),c&&ib({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?ab():void 0,...A}),c&&ob({...A}),sb({...A,apply:mb(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),x&&lb({element:x,padding:s}),Ob({arrowWidth:w,arrowHeight:T}),f&&cb({strategy:`referenceHidden`,...A,boundary:k?A.boundary:void 0})]}),ne=g.setPlacementState;sp(()=>(ne(te),()=>{ne(void 0)}),[te,ne]);let[re,P]=kb(te),ie=Jp(m);sp(()=>{M&&ie?.()},[M,ie]);let ae=N.arrow?.x,oe=N.arrow?.y,se=N.arrow?.centerOffset!==0,[ce,le]=v.useState();return sp(()=>{_&&le(window.getComputedStyle(_).zIndex)},[_]),(0,R.jsx)(`div`,{ref:j.setFloating,"data-radix-popper-content-wrapper":``,style:{...ee,transform:M?ee.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[N.transformOrigin?.x,N.transformOrigin?.y].join(` `),...N.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,R.jsx)(wb,{scope:n,placedSide:re,placedAlign:P,onArrowChange:S,arrowX:ae,arrowY:oe,shouldHideArrow:se,children:(0,R.jsx)(Wp.div,{"data-side":re,"data-align":P,...h,ref:b,style:{...h.style,animation:M?h.style?.animation:`none`}})})})},`PopperContent`));function Db(e){return e!==null}mb(Db,`isNotNull`);var Ob=mb(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=kb(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function kb(e){let[t,n=`center`]=e.split(`-`);return[t,n]}mb(kb,`getSideAndAlignFromPlacement`);var Ab=bb,jb=Sb,Mb=Eb,Nb=Object.defineProperty,Pb=(e,t)=>Nb(e,`name`,{value:t,configurable:!0}),Fb=!1;function Ib(){let[e,t]=v.useState(Fb);return v.useEffect(()=>{Fb||(Fb=!0,t(!0))},[]),e}Pb(Ib,`useIsHydrated`);var Lb=v.useSyncExternalStore;function Rb(){return()=>{}}Pb(Rb,`subscribe`);function zb(){return Lb(Rb,()=>!0,()=>!1)}Pb(zb,`useIsHydratedModern`);var Bb=typeof Lb==`function`?zb:Ib,Vb=Object.defineProperty,Hb=(e,t)=>Vb(e,`name`,{value:t,configurable:!0}),Ub=`rovingFocusGroup.onEntryFocus`,Wb={bubbles:!1,cancelable:!0},Gb=`RovingFocusGroup`,[Kb,qb,Jb]=R_(Gb),[Yb,Xb]=ap(Gb,[Jb]),[Zb,Qb]=Yb(Gb),$b=v.forwardRef(Hb(function(e,t){return(0,R.jsx)(Kb.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,R.jsx)(Kb.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,R.jsx)(ex,{...e,ref:t})})})},`RovingFocusGroup`)),ex=v.forwardRef(Hb(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=v.useRef(null),p=tp(t,f),m=Q_(a),[h,g]=xp({prop:o,defaultProp:s??null,onChange:c,caller:Gb}),[_,y]=v.useState(!1),b=Jp(l),x=qb(n),S=v.useRef(!1),[C,w]=v.useState(0);return v.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(Ub,b),()=>e.removeEventListener(Ub,b)},[b]),(0,R.jsx)(Zb,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:h,onItemFocus:v.useCallback(e=>g(e),[g]),onItemShiftTab:v.useCallback(()=>y(!0),[]),onFocusableItemAdd:v.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:v.useCallback(()=>w(e=>e-1),[]),children:(0,R.jsx)(Wp.div,{tabIndex:_||C===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:Y(e.onMouseDown,()=>{S.current=!0}),onFocus:Y(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!_){let t=new CustomEvent(Ub,Wb);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);ox([e.find(e=>e.active),e.find(e=>e.id===h),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:Y(e.onBlur,()=>y(!1))})})},`RovingFocusGroupImpl`)),tx=`RovingFocusGroupItem`,nx=v.forwardRef(Hb(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=fp(),l=a||c,u=Qb(tx,n),d=u.currentTabStopId===l,f=qb(n),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:h}=u,g=Bb();return sp(()=>{if(g&&r)return p(),()=>m()},[g,r,p,m]),v.useEffect(()=>{if(!g&&r)return p(),()=>m()},[g,r,p,m]),(0,R.jsx)(Kb.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,R.jsx)(Wp.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:Y(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:Y(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:Y(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ax(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?sx(n,r+1):n.slice(r+1)}setTimeout(()=>ox(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:h!=null}):o})})},`RovingFocusGroupItem`)),rx={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ix(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}Hb(ix,`getDirectionAwareKey`);function ax(e,t,n){let r=ix(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return rx[r]}Hb(ax,`getFocusIntent`);function ox(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}Hb(ox,`focusFirst`);function sx(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Hb(sx,`wrapArray`);var cx=$b,lx=nx,ux=Object.defineProperty,dx=(e,t)=>ux(e,`name`,{value:t,configurable:!0}),fx=[`Enter`,` `],px=[`ArrowDown`,`PageUp`,`Home`],mx=[`ArrowUp`,`PageDown`,`End`],hx=[...px,...mx];[...fx],[...fx];var gx=`Menu`,[_x,vx,yx]=R_(gx),[bx,xx]=ap(gx,[yx,_b,Xb]),Sx=_b(),Cx=Xb(),[wx,Tx]=bx(gx),[Ex,Dx]=bx(gx),Ox=dx(e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Sx(t),[c,l]=v.useState(null),u=v.useRef(!1),d=Jp(a),f=Q_(i);return v.useEffect(()=>{let e=dx(()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},`handleKeyDown`),t=dx(()=>u.current=!1,`handlePointer`);return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),v.useEffect(()=>{if(!n)return;let e=dx(()=>d(!1),`handleBlur`);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[n,d]),(0,R.jsx)(Ab,{...s,children:(0,R.jsx)(wx,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,R.jsx)(Ex,{scope:t,onClose:v.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})},`Menu`),kx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e,i=Sx(n);return(0,R.jsx)(jb,{...i,...r,ref:t})},`MenuAnchor`)),Ax=`MenuPortal`,[jx,Mx]=bx(Ax,{forceMount:void 0}),Nx=dx(e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Tx(Ax,t);return(0,R.jsx)(jx,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`MenuPortal`),Px=`MenuContent`,[Fx,Ix]=bx(Px),Lx=v.forwardRef(dx(function(e,t){let n=Mx(Px,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Tx(Px,e.__scopeMenu),o=Dx(Px,e.__scopeMenu);return(0,R.jsx)(_x.Provider,{scope:e.__scopeMenu,children:(0,R.jsx)(jm,{present:r||a.open,children:(0,R.jsx)(_x.Slot,{scope:e.__scopeMenu,children:o.modal?(0,R.jsx)(Rx,{...i,ref:t}):(0,R.jsx)(zx,{...i,ref:t})})})})},`MenuContent`)),Rx=v.forwardRef(dx(function(e,t){let n=Tx(Px,e.__scopeMenu),r=v.useRef(null),i=tp(t,r);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Vx,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentModal`)),zx=v.forwardRef(dx(function(e,t){let n=Tx(Px,e.__scopeMenu);return(0,R.jsx)(Vx,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentNonModal`)),Bx=kp(`MenuContent.ScrollLock`),Vx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEntryFocus:c,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:m,...h}=e,g=Tx(Px,n),_=Dx(Px,n),y=Sx(n),b=Cx(n),x=vx(n),[S,C]=v.useState(null),w=v.useRef(null),T=tp(t,w,g.onContentChange),E=v.useRef(0),D=v.useRef(``),O=v.useRef(0),k=v.useRef(null),A=v.useRef(`right`),j=v.useRef(0),ee=m?Zh:v.Fragment,te=m?{as:Bx,allowPinchZoom:!0}:void 0,M=dx(e=>{let t=D.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=aS(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;dx((function e(t){D.current=t,window.clearTimeout(E.current),t!==``&&(E.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(t),o&&setTimeout(()=>o.focus())},`handleTypeaheadSearch`);v.useEffect(()=>()=>window.clearTimeout(E.current),[]),Hm();let N=v.useCallback(e=>A.current===k.current?.side&&sS(e,k.current?.area),[]);return(0,R.jsx)(Fx,{scope:n,searchRef:D,onItemEnter:v.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:v.useCallback(e=>{N(e)||(w.current?.focus(),C(null))},[N]),onTriggerLeave:v.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:O,onPointerGraceIntentChange:v.useCallback(e=>{k.current=e},[]),children:(0,R.jsx)(ee,{...te,children:(0,R.jsx)(mm,{asChild:!0,trapped:i,onMountAutoFocus:Y(a,e=>{e.preventDefault(),w.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:s,onEscapeKeyDown:l,onPointerDownOutside:u,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:(0,R.jsx)(cx,{asChild:!0,...b,dir:_.dir,orientation:`vertical`,loop:r,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:Y(c,e=>{_.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,R.jsx)(Mb,{role:`menu`,"aria-orientation":`vertical`,"data-state":eS(g.open),"data-radix-menu-content":``,dir:_.dir,...y,...h,ref:T,style:{outline:`none`,...h.style},onKeyDown:Y(h.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&M(e.key));let i=w.current;if(e.target!==i||!hx.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);mx.includes(e.key)&&a.reverse(),rS(a)}),onBlur:Y(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),D.current=``)}),onPointerMove:Y(e.onPointerMove,cS(e=>{let t=e.target,n=j.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>j.current?`right`:`left`;A.current=t,j.current=e.clientX}}))})})})})})})},`MenuContentImpl`)),Hx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e;return(0,R.jsx)(Wp.div,{...r,ref:t})},`MenuLabel`)),Ux=`MenuItem`,Wx=`menu.itemSelect`,Gx=v.forwardRef(dx(function(e,t){let{disabled:n=!1,onSelect:r,...i}=e,a=v.useRef(null),o=Dx(Ux,e.__scopeMenu),s=Ix(Ux,e.__scopeMenu),c=tp(t,a),l=v.useRef(!1),u=dx(()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Wx,{bubbles:!0,cancelable:!0});e.addEventListener(Wx,e=>r?.(e),{once:!0}),Gp(e,t),t.defaultPrevented?l.current=!1:o.onClose()}},`handleSelect`);return(0,R.jsx)(Kx,{...i,ref:c,disabled:n,onClick:Y(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:Y(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:Y(e.onKeyDown,e=>{n||e.target!==e.currentTarget||(s.searchRef.current===``||e.key!==` `)&&fx.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})},`MenuItem`)),Kx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=Ix(Ux,n),s=Cx(n),c=v.useRef(null),l=tp(t,c),[u,d]=v.useState(!1),[f,p]=v.useState(``);return v.useEffect(()=>{let e=c.current;e&&p((e.textContent??``).trim())},[a.children]),(0,R.jsx)(_x.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,R.jsx)(lx,{asChild:!0,...s,focusable:!r,children:(0,R.jsx)(Wp.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:Y(e.onPointerMove,cS(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Y(e.onPointerLeave,cS(e=>o.onItemLeave(e))),onFocus:Y(e.onFocus,()=>d(!0)),onBlur:Y(e.onBlur,()=>d(!1))})})})},`MenuItemImpl`)),[qx,Jx]=bx(`MenuRadioGroup`,{value:void 0,onValueChange:dx(()=>{},`onValueChange`)}),[Yx,Xx]=bx(`MenuItemIndicator`,{checked:!1}),Zx=v.forwardRef(dx(function(e,t){let{__scopeMenu:n,...r}=e;return(0,R.jsx)(Wp.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})},`MenuSeparator`)),[Qx,$x]=bx(`MenuSub`);function eS(e){return e?`open`:`closed`}dx(eS,`getOpenState`);function tS(e){return e===`indeterminate`}dx(tS,`isIndeterminate`);function nS(e){return tS(e)?`indeterminate`:e?`checked`:`unchecked`}dx(nS,`getCheckedState`);function rS(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}dx(rS,`focusFirst`);function iS(e,t){return e.map((n,r)=>e[(t+r)%e.length])}dx(iS,`wrapArray`);function aS(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=iS(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}dx(aS,`getNextMatch`);function oS(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}dx(oS,`isPointInPolygon`);function sS(e,t){return t?oS({x:e.clientX,y:e.clientY},t):!1}dx(sS,`isPointerInGraceArea`);function cS(e){return t=>t.pointerType===`mouse`?e(t):void 0}dx(cS,`whenMouse`);var lS=Ox,uS=kx,dS=Nx,fS=Lx,pS=Hx,mS=Gx,hS=Zx,gS=Object.defineProperty,_S=(e,t)=>gS(e,`name`,{value:t,configurable:!0}),vS=`DropdownMenu`,[yS,bS]=ap(vS,[xx]),xS=xx(),[SS,CS]=yS(vS),wS=_S(e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=xS(t),l=v.useRef(null),[u,d]=xp({prop:i,defaultProp:a??!1,onChange:o,caller:vS});return(0,R.jsx)(SS,{scope:t,triggerId:fp(),triggerRef:l,contentId:fp(),open:u,onOpenChange:d,onOpenToggle:v.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,R.jsx)(lS,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})},`DropdownMenu`),TS=`DropdownMenuTrigger`,ES=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=CS(TS,n),o=xS(n),s=tp(t,a.triggerRef);return(0,R.jsx)(uS,{asChild:!0,...o,children:(0,R.jsx)(Wp.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:Y(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:Y(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})},`DropdownMenuTrigger`)),DS=_S(e=>{let{__scopeDropdownMenu:t,...n}=e,r=xS(t);return(0,R.jsx)(dS,{...r,...n})},`DropdownMenuPortal`),OS=`DropdownMenuContent`,kS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=CS(OS,n),a=xS(n),o=v.useRef(!1);return(0,R.jsx)(fS,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:Y(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuContent`)),AS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(pS,{...i,...r,ref:t})},`DropdownMenuLabel`)),jS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(mS,{...i,...r,ref:t})},`DropdownMenuItem`)),MS=v.forwardRef(_S(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=xS(n);return(0,R.jsx)(hS,{...i,...r,ref:t})},`DropdownMenuSeparator`)),NS=wS,PS=ES,FS=DS,IS=kS,LS=AS,RS=jS,zS=MS,BS=`z-50 overflow-hidden rounded-[8px] border border-rule bg-surface shadow-pop outline-none py-1 data-[state=open]:animate-[q-pop_120ms_ease-out] data-[state=closed]:animate-[q-pop-out_100ms_ease-in_forwards]`;function VS({trigger:e,children:t,width:n=220,align:r=`start`,side:i=`bottom`,sideOffset:a=6,open:o,onOpenChange:s}){return(0,R.jsxs)(NS,{open:o,onOpenChange:s,modal:!1,children:[(0,R.jsx)(PS,{asChild:!0,children:e}),(0,R.jsx)(FS,{children:(0,R.jsx)(IS,{align:r,side:i,sideOffset:a,collisionPadding:12,className:BS,style:{width:n,maxWidth:`calc(100vw - 24px)`},children:t})})]})}var HS=(e,t)=>X(`flex min-h-9 w-full cursor-pointer items-center gap-2.5 border-0 px-3 py-1.5 text-left text-[13.5px] outline-none select-none`,`data-[highlighted]:bg-soft data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,t?`bg-soft`:`bg-transparent`,e?`text-danger-text`:`text-ink`);function US({children:e,onSelect:t,danger:n,active:r,disabled:i,hint:a,className:o}){return(0,R.jsxs)(RS,{disabled:i,onSelect:t,className:X(HS(n,r),o),children:[e,a?(0,R.jsx)(`span`,{className:`ml-auto pl-3 text-[12px] text-muted`,children:a}):null]})}function WS(){return(0,R.jsx)(zS,{className:`my-1 h-px bg-rule`})}function GS({children:e}){return(0,R.jsx)(LS,{className:`px-3 pt-1.5 pb-1 text-[12px] text-muted`,children:e})}var KS=[{value:`system`,label:`System`,icon:`monitor`},{value:`light`,label:`Light`,icon:`sun`},{value:`dark`,label:`Dark`,icon:`moon`}];function qS(){let e=g_(),t=__();return(0,R.jsxs)(VS,{align:`end`,width:180,trigger:(0,R.jsx)(N_,{icon:t===`dark`?`moon`:`sun`,label:`Appearance`}),children:[(0,R.jsx)(GS,{children:`Appearance`}),KS.map(t=>(0,R.jsxs)(US,{active:e===t.value,onSelect:()=>h_(t.value),children:[(0,R.jsx)(Z,{name:t.icon,size:15,className:`text-ink2`}),t.label,e===t.value?(0,R.jsx)(Z,{name:`check`,size:15,className:`ml-auto text-ink2`}):null]},t.value))]})}function JS({size:e=24}){return(0,R.jsxs)(`svg`,{width:e,height:e,viewBox:`0 0 32 32`,"aria-hidden":`true`,className:`shrink-0`,children:[(0,R.jsx)(`rect`,{width:`32`,height:`32`,rx:`7`,className:`fill-primary`}),(0,R.jsx)(`rect`,{x:`7`,y:`7`,width:`8`,height:`11`,rx:`1.5`,className:`fill-primary-ink`}),(0,R.jsx)(`rect`,{x:`17`,y:`7`,width:`8`,height:`6`,rx:`1.5`,fill:`#f0a040`}),(0,R.jsx)(`rect`,{x:`17`,y:`15`,width:`8`,height:`10`,rx:`1.5`,className:`fill-primary-ink`}),(0,R.jsx)(`rect`,{x:`7`,y:`20`,width:`8`,height:`5`,rx:`1.5`,className:`fill-primary-ink`})]})}function YS({name:e,version:t}){return(0,R.jsxs)(ye,{href:`/`,title:t?`foss-design ${t}`:void 0,className:`flex min-w-0 items-center gap-2 text-[14px] font-semibold text-ink no-underline`,children:[(0,R.jsx)(JS,{}),(0,R.jsx)(`span`,{className:`truncate`,children:e??`Design`})]})}function XS({children:e,className:t}){return(0,R.jsx)(`header`,{className:X(`sticky top-0 z-30 flex h-[52px] shrink-0 items-center gap-3 border-b border-rule bg-surface px-4`,t),children:e})}var ZS=[{to:`/`,label:`Canvases`,match:e=>e===`/`||e.startsWith(`/c/`)},{to:`/system`,label:`Design system`,match:e=>e.startsWith(`/system`)}];function QS({location:e}){let t=(0,v.useRef)(null),n=ZS.findIndex(t=>t.match(e)),[r,i]=(0,v.useState)(null);return(0,v.useLayoutEffect)(()=>{let e=t.current;if(!e)return;let r=()=>{let t=e.children[n];if(!t?.offsetWidth){i(null);return}let r=t.offsetLeft+10,a=t.offsetWidth-20;i(e=>e?.tab===n&&e.x===r&&e.width===a?e:{tab:n,x:r,width:a,slide:e!==null&&e.tab!==n})};r();let a=new ResizeObserver(r);return a.observe(e),()=>a.disconnect()},[n]),(0,R.jsxs)(`nav`,{ref:t,className:`relative flex h-[52px] items-stretch gap-0.5 max-md:hidden`,children:[ZS.map((e,t)=>(0,R.jsx)(ye,{href:e.to,"aria-current":t===n?`page`:void 0,className:X(`flex items-center px-2.5 text-[14px] no-underline transition-colors`,t===n?`font-medium text-ink`:`text-ink2 hover:text-ink`),children:e.label},e.to)),r?(0,R.jsx)(Wf.span,{"aria-hidden":!0,className:`pointer-events-none absolute bottom-0 left-0 h-[2px] bg-action`,initial:!1,animate:{x:r.x,width:r.width},transition:r.slide?{type:`spring`,stiffness:520,damping:42}:{duration:0}}):null]})}function $S(){let e=$g().data,{slots:t}=Xg(),[n]=F();return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(XS,{children:[t.barStart,(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-6`,children:[t.brand??(0,R.jsx)(YS,{name:e?.name,version:e?.version}),(0,R.jsx)(QS,{location:n})]}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,R.jsx)(D_,{}),(0,R.jsx)(`span`,{className:X(`flex`,t.barEnd?`max-md:hidden`:void 0),children:(0,R.jsx)(qS,{})}),t.barEnd]})]}),(0,R.jsx)(eC,{location:n}),t.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:t.belowBar}):null]})}function eC({location:e}){return(0,R.jsx)(`nav`,{className:`sticky top-[52px] z-30 hidden h-10 shrink-0 items-stretch border-b border-rule bg-surface px-2 max-md:flex`,children:ZS.map(t=>{let n=t.match(e);return(0,R.jsxs)(ye,{href:t.to,"aria-current":n?`page`:void 0,className:X(`relative flex grow items-center justify-center text-[13.5px] no-underline`,n?`font-medium text-ink`:`text-ink2`),children:[t.label,n?(0,R.jsx)(`span`,{"aria-hidden":!0,className:`absolute inset-x-6 bottom-0 h-[2px] rounded-full bg-action`}):null]},t.to)})})}var tC=window.matchMedia(`(max-width: 767px)`),nC=e=>(tC.addEventListener(`change`,e),()=>tC.removeEventListener(`change`,e));function rC(){return(0,v.useSyncExternalStore)(nC,()=>tC.matches)}var iC=Object.defineProperty,aC=(e,t)=>iC(e,`name`,{value:t,configurable:!0}),oC=`Popover`,[sC,cC]=ap(oC,[_b]),lC=_b(),[uC,dC]=sC(oC),fC=aC(e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=lC(t),c=v.useRef(null),[l,u]=v.useState(!1),[d,f]=xp({prop:r,defaultProp:i??!1,onChange:a,caller:oC});return(0,R.jsx)(Ab,{...s,children:(0,R.jsx)(uC,{scope:t,contentId:fp(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:v.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:v.useCallback(()=>u(!0),[]),onCustomAnchorRemove:v.useCallback(()=>u(!1),[]),modal:o,children:n})})},`Popover`),pC=`PopoverTrigger`,mC=v.forwardRef(aC(function(e,t){let{__scopePopover:n,...r}=e,i=dC(pC,n),a=lC(n),o=tp(t,i.triggerRef),s=(0,R.jsx)(Wp.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":TC(i.open),...r,ref:o,onClick:Y(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,R.jsx)(jb,{asChild:!0,...a,children:s})},`PopoverTrigger`)),hC=`PopoverPortal`,[gC,_C]=sC(hC,{forceMount:void 0}),vC=aC(e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=dC(hC,t);return(0,R.jsx)(gC,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`PopoverPortal`),yC=`PopoverContent`,bC=v.forwardRef(aC(function(e,t){let n=_C(yC,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=dC(yC,e.__scopePopover);return(0,R.jsx)(jm,{present:r||a.open,children:a.modal?(0,R.jsx)(SC,{...i,ref:t}):(0,R.jsx)(CC,{...i,ref:t})})},`PopoverContent`)),xC=kp(`PopoverContent.RemoveScroll`),SC=v.forwardRef(aC(function(e,t){let n=dC(yC,e.__scopePopover),r=v.useRef(null),i=tp(t,r),a=v.useRef(!1);return v.useEffect(()=>{let e=r.current;if(e)return og(e)},[]),(0,R.jsx)(Zh,{as:xC,allowPinchZoom:!0,children:(0,R.jsx)(wC,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Y(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Y(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;a.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:Y(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})},`PopoverContentModal`)),CC=v.forwardRef(aC(function(e,t){let n=dC(yC,e.__scopePopover),r=v.useRef(!1),i=v.useRef(!1);return(0,R.jsx)(wC,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`PopoverContentNonModal`)),wC=v.forwardRef(aC(function(e,t){let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=dC(yC,n),p=lC(n);return Hm(),(0,R.jsx)(mm,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,R.jsx)(Mb,{"data-state":TC(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})},`PopoverContentImpl`));function TC(e){return e?`open`:`closed`}aC(TC,`getState`);var EC=fC,DC=mC,OC=vC,kC=bC,AC=new s_([]),jC=1;function MC(e,t,n=`ok`){let r=jC++;AC.set(i=>[...i.slice(-2),{id:r,title:e,text:t,tone:n}]),setTimeout(()=>AC.set(e=>e.filter(e=>e.id!==r)),n===`error`?4200:2200)}var NC=new s_([]),PC=1;function FC(){let[e]=(0,v.useState)(()=>PC++);(0,v.useEffect)(()=>(NC.set(t=>[...t,e]),()=>NC.set(t=>t.filter(t=>t!==e))),[e]);let t=c_(NC,t=>t[0]===e),n=c_(AC);return t?(0,R.jsx)(`div`,{className:`pointer-events-none fixed bottom-5 left-1/2 z-[60] flex -translate-x-1/2 flex-col items-center gap-2`,children:(0,R.jsx)($u,{mode:`popLayout`,children:n.map(e=>(0,R.jsxs)(Wf.div,{layout:!0,initial:{opacity:0,y:8,scale:.98},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:4,transition:{duration:.12}},transition:{type:`spring`,stiffness:520,damping:40},className:`flex max-w-[min(420px,calc(100vw-32px))] min-w-0 items-center gap-2.5 rounded-[8px] border border-rule bg-surface px-3 py-2 text-[13px] text-ink shadow-pop`,children:[e.tone===`error`?(0,R.jsx)(Z,{name:`alert`,size:15,className:`text-danger-text`}):e.tone===`info`?(0,R.jsx)(Z,{name:`info`,size:15,className:`text-muted`}):(0,R.jsx)(Z,{name:`check`,size:15,className:`text-ok-text`}),(0,R.jsx)(`span`,{className:`shrink-0 font-medium whitespace-nowrap`,children:e.title}),e.text?(0,R.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[12px] text-muted`,children:e.text}):null]},e.id))})}):null}async function IC(e,t=`Copied`){try{await navigator.clipboard.writeText(e),MC(t,e.length>64?void 0:e)}catch{MC(`Could not copy`,`The browser blocked clipboard access`,`error`)}}var LC=new Map;window.addEventListener(`message`,e=>{let t=e.data;if(t?.source===`design-runtime`&&e.source)for(let n of LC.get(e.source)??[])n(t)});function RC(e,t){let n=null,r=()=>{if(!n)return;let e=LC.get(n);e?.delete(t),e?.size||LC.delete(n),n=null},i=()=>{if(r(),n=e.contentWindow,!n)return;let i=LC.get(n)??new Set;i.add(t),LC.set(n,i)};return i(),e.addEventListener(`load`,i),()=>{e.removeEventListener(`load`,i),r()}}function zC(e,t){e?.contentWindow?.postMessage({source:`design-viewer`,...t},`*`)}function BC(e){zC(e,{type:`canvas`})}function VC(e,t){zC(e,{type:`theme`,theme:t})}function HC(e){e&&(e.src=e.src)}var UC=(()=>{if(Ng)return``;let{protocol:e,hostname:t,port:n}=window.location,r=t===`localhost`?`127.0.0.1`:t===`127.0.0.1`?`localhost`:null;return r?`${e}//${r}${n?`:${n}`:``}`:``})();function WC(e,t,n){let[r=``,i=``]=e.split(`?`),a=new URLSearchParams(i);a.set(`theme`,t);for(let[e,t]of Object.entries(n??{}))a.set(e,t);return`${r.startsWith(`/`)?UC:``}${r}?${a.toString()}`}function GC(e){return new URL(e,document.baseURI).toString()}function KC(e,t,n){if(e.form){MC(`Forms are not sent from a screen`,void 0,`info`);return}if(e.path===null){let t=window.open(e.href,`_blank`);t?t.opener=null:MC(`Link to another site`,e.href,`info`);return}let r=e.path.split(/[?#]/)[0].replace(/\/+$/,``),i=r.slice(r.lastIndexOf(`/`)+1).replace(/\.html?$/,``);try{i=decodeURIComponent(i)}catch{}let a=new Set(t.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`).map(e=>e.id))));i&&a.has(i)?n(i):MC(`Not a screen on this canvas`,e.path,`info`)}function qC(e,t,n){let r=$g().data,i=t_(!!r?.system).data?.tokens,[a,o]=(0,v.useState)(null),s=(0,v.useRef)({enabled:t,tokens:i});s.current={enabled:t,tokens:i};let c=(0,v.useRef)(n.onEscape);c.current=n.onEscape;let l=(0,v.useRef)(e);l.current=e;let u=(0,v.useRef)(new Map),d=(e,t=!1)=>{let{enabled:n,tokens:r}=s.current,i=u.current.get(e);(t||i?.on!==n||i.tokens!==r)&&(u.current.set(e,{on:n,tokens:r}),zC(e,{type:`inspect`,on:n,tokens:n?r??[]:void 0}))};(0,v.useEffect)(()=>{for(let t of e)d(t);for(let t of u.current.keys())e.includes(t)||u.current.delete(t)},[e,t,i]),(0,v.useEffect)(()=>{let t=e.map(e=>RC(e,t=>{if(t.type===`ready`)s.current.enabled?d(e,!0):u.current.set(e,{on:!1});else if(t.type===`inspect`){if(t.info){for(let t of l.current)t!==e&&zC(t,{type:`inspect-select`,ref:null});o({info:t.info,frame:e})}else o(t=>t?.frame===e?null:t)}else t.type===`inspect-escape`&&c.current()}));return()=>{for(let e of t)e()}},[e]);let f=a&&e.includes(a.frame)?a.frame:null;return{info:f?a.info:null,frame:f,select(e){if(e===null){for(let e of l.current)zC(e,{type:`inspect-select`,ref:null});o(null)}else a&&zC(a.frame,{type:`inspect-select`,ref:e})}}}function JC(e){let[t,n]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{let t=e=>e===`Meta`||e===`Control`,r=!1,i=!1,a,o=()=>{r=!1,clearTimeout(a),n(!1)},s=e=>{if(t(e)){if(r)return;r=!0,i=!1,a=setTimeout(()=>{r&&!i&&n(!0)},150)}else r&&(i=!0,clearTimeout(a),n(!1))},c=e=>s(e.key),l=e=>{t(e.key)&&o()};window.addEventListener(`keydown`,c,!0),window.addEventListener(`keyup`,l,!0),window.addEventListener(`blur`,o);let u=e.map(e=>RC(e,e=>{e.type===`key`?e.down?s(e.name):t(e.name)&&o():e.type===`blur`&&o()}));return()=>{window.removeEventListener(`keydown`,c,!0),window.removeEventListener(`keyup`,l,!0),window.removeEventListener(`blur`,o);for(let e of u)e();clearTimeout(a)}},[e]),t}function YC({title:e,children:t,right:n}){return(0,R.jsxs)(`section`,{className:`border-t border-rule pb-2 first:border-t-0`,children:[(0,R.jsxs)(`div`,{className:`flex h-9 items-center justify-between px-4 text-[12px] font-medium text-muted`,children:[e,n]}),t]})}function XC({label:e,children:t}){return(0,R.jsxs)(`div`,{className:`grid min-h-7 grid-cols-[92px_minmax(0,1fr)] items-center gap-x-3 px-4 py-0.5 text-[12.5px]`,children:[(0,R.jsx)(`span`,{className:`text-muted`,children:e}),(0,R.jsx)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-ink`,children:t})]})}function ZC({name:e}){return e?(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(`var(${e})`,`Token copied`),title:`Copy var()`,className:`shrink-0 cursor-pointer truncate rounded-[4px] border-0 bg-action-soft px-1.5 py-px font-mono text-[11px] text-action`,children:e}):null}function QC({children:e,title:t}){return(0,R.jsx)(`span`,{className:`min-w-0 truncate font-mono text-[12px]`,title:t,children:e})}function $C({label:e,color:t}){return(0,R.jsxs)(XC,{label:e,children:[(0,R.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-[3px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.12)]`,style:{background:t.css}}),(0,R.jsx)(QC,{title:t.css,children:t.value}),(0,R.jsx)(ZC,{name:t.token})]})}var ew=e=>e?String(e):`–`;function tw({label:e,values:t,className:n,children:r}){let[i,a,o,s]=t;return(0,R.jsxs)(`div`,{className:X(`relative grid grid-cols-[28px_minmax(0,1fr)_28px] grid-rows-[20px_auto_20px] rounded-[4px]`,n),children:[(0,R.jsx)(`span`,{className:`absolute top-1 left-1.5 text-[9.5px] tracking-wide text-muted uppercase`,children:e}),(0,R.jsx)(`span`,{className:`col-start-2 self-center text-center`,children:ew(i)}),(0,R.jsx)(`span`,{className:`row-start-2 self-center text-center`,children:ew(s)}),(0,R.jsx)(`div`,{className:`row-start-2 col-start-2`,children:r}),(0,R.jsx)(`span`,{className:`row-start-2 col-start-3 self-center text-center`,children:ew(a)}),(0,R.jsx)(`span`,{className:`row-start-3 col-start-2 self-center text-center`,children:ew(o)})]})}function nw({info:e}){let t={w:Math.max(0,e.rect.w-e.border[1]-e.border[3]-e.padding[1]-e.padding[3]),h:Math.max(0,e.rect.h-e.border[0]-e.border[2]-e.padding[0]-e.padding[2])};return(0,R.jsx)(`div`,{className:`px-4 pt-1 pb-2 font-mono text-[11px] text-ink2`,children:(0,R.jsx)(tw,{label:`margin`,values:e.margin,className:`border border-dashed border-rule-strong bg-[#f6b26b]/15`,children:(0,R.jsx)(tw,{label:`border`,values:e.border,className:`border border-rule-strong bg-[#f9e27d]/15`,children:(0,R.jsx)(tw,{label:`padding`,values:e.padding,className:`border border-rule-strong bg-[#93c47d]/20`,children:(0,R.jsxs)(`div`,{className:`flex h-8 items-center justify-center rounded-[3px] border border-rule-strong bg-[#6fa8dc]/25 text-ink`,children:[Math.round(t.w*100)/100,` × `,Math.round(t.h*100)/100]})})})})})}function rw({info:e,onSelect:t}){return(0,R.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 px-4 pb-2`,children:[e.path.slice(-4).map((e,n)=>(0,R.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>t(e.ref),className:`cursor-pointer rounded-[4px] border-0 bg-soft2 px-1.5 py-0.5 font-mono text-[11px] text-ink2 hover:text-ink`,children:e.label}),(0,R.jsx)(Z,{name:`chevron-right`,size:11,className:`text-muted`})]},n)),(0,R.jsx)(`span`,{className:`rounded-[4px] bg-action-soft px-1.5 py-0.5 font-mono text-[11px] text-action`,children:e.label})]})}function iw({info:e,onSelect:t,onClose:n,active:r}){return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[320px] shrink-0 flex-col overflow-hidden border-l border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex h-[46px] shrink-0 items-center justify-between border-b border-rule pr-2 pl-4`,children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-2 text-[14px] font-semibold`,children:[(0,R.jsx)(Z,{name:`pointer`,size:15,className:`text-action`}),` Inspect`]}),(0,R.jsx)(N_,{icon:`x`,label:`Close inspector (I)`,onClick:n})]}),e?(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto`,children:[(0,R.jsxs)(YC,{title:`Element`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 px-4 pb-2`,children:[(0,R.jsx)(`div`,{className:`flex min-w-0 items-baseline gap-1.5`,children:e.component?.owners[0]?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`span`,{className:`truncate font-mono text-[14px] font-medium text-ink`,children:[`<`,e.component.owners[0],`>`]}),(0,R.jsx)(`span`,{className:`truncate font-mono text-[12px] text-muted`,children:e.tag})]}):(0,R.jsx)(`span`,{className:`truncate font-mono text-[14px] font-medium text-ink`,children:e.label})}),e.component&&e.component.owners.length>1?(0,R.jsxs)(`span`,{className:`truncate text-[12px] text-muted`,children:[`in `,e.component.owners.slice(1).join(` ← `)]}):null,e.component?.file?(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(e.component.file,`Path copied`),className:`w-fit max-w-full cursor-pointer truncate border-0 bg-transparent p-0 text-left font-mono text-[11.5px] text-muted hover:text-ink2`,title:`Copy path`,children:e.component.file}):null,e.text?(0,R.jsxs)(`span`,{className:`line-clamp-2 text-[12.5px] text-ink2`,children:[`“`,e.text,`”`]}):null]}),(0,R.jsx)(rw,{info:e,onSelect:t})]}),(0,R.jsxs)(YC,{title:`Box`,children:[(0,R.jsx)(nw,{info:e}),(0,R.jsx)(XC,{label:`Size`,children:(0,R.jsxs)(QC,{children:[e.rect.w,` × `,e.rect.h]})}),(0,R.jsx)(XC,{label:`Position`,children:(0,R.jsxs)(QC,{children:[`x `,e.rect.x,` · y `,e.rect.y]})})]}),e.layout.length?(0,R.jsx)(YC,{title:`Layout`,children:e.layout.map(([e,t])=>(0,R.jsx)(XC,{label:e,children:(0,R.jsx)(QC,{title:t,children:t})},e))}):null,e.typography?(0,R.jsxs)(YC,{title:`Typography`,children:[(0,R.jsxs)(XC,{label:`Font`,children:[(0,R.jsx)(QC,{title:e.typography.family,children:e.typography.family.split(`,`)[0]?.replace(/["']/g,``)}),(0,R.jsx)(ZC,{name:e.typography.familyToken})]}),(0,R.jsxs)(XC,{label:`Size`,children:[(0,R.jsxs)(QC,{children:[e.typography.size,` / `,e.typography.lineHeight]}),(0,R.jsx)(ZC,{name:e.typography.sizeToken})]}),(0,R.jsx)(XC,{label:`Weight`,children:(0,R.jsx)(QC,{children:e.typography.weight})}),e.typography.letterSpacing===`normal`?null:(0,R.jsx)(XC,{label:`Tracking`,children:(0,R.jsx)(QC,{children:e.typography.letterSpacing})}),(0,R.jsx)($C,{label:`Color`,color:e.typography.color}),e.typography.align===`start`?null:(0,R.jsx)(XC,{label:`Align`,children:(0,R.jsx)(QC,{children:e.typography.align})}),e.typography.transform?(0,R.jsx)(XC,{label:`Transform`,children:(0,R.jsx)(QC,{children:e.typography.transform})}):null]}):null,Object.values(e.appearance).some(Boolean)?(0,R.jsxs)(YC,{title:`Appearance`,children:[e.appearance.background?(0,R.jsx)($C,{label:`Background`,color:e.appearance.background}):null,e.appearance.backgroundImage?(0,R.jsx)(XC,{label:`Image`,children:(0,R.jsx)(QC,{title:e.appearance.backgroundImage,children:e.appearance.backgroundImage})}):null,e.appearance.border?(0,R.jsxs)(XC,{label:`Border`,children:[(0,R.jsx)(`span`,{className:`size-3.5 shrink-0 rounded-[3px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.12)]`,style:{background:e.appearance.border.color.css}}),(0,R.jsxs)(QC,{children:[e.appearance.border.width,` `,e.appearance.border.style,` `,e.appearance.border.color.value]}),(0,R.jsx)(ZC,{name:e.appearance.border.color.token})]}):null,e.appearance.radius?(0,R.jsxs)(XC,{label:`Radius`,children:[(0,R.jsx)(QC,{children:e.appearance.radius.value}),(0,R.jsx)(ZC,{name:e.appearance.radius.token})]}):null,e.appearance.shadow?(0,R.jsxs)(XC,{label:`Shadow`,children:[(0,R.jsx)(QC,{title:e.appearance.shadow.value,children:e.appearance.shadow.value}),(0,R.jsx)(ZC,{name:e.appearance.shadow.token})]}):null,e.appearance.opacity?(0,R.jsx)(XC,{label:`Opacity`,children:(0,R.jsx)(QC,{children:e.appearance.opacity})}):null]}):null,e.classes.length?(0,R.jsx)(YC,{title:`Classes`,right:(0,R.jsx)(`button`,{type:`button`,onClick:()=>void IC(e.classes.join(` `),`Classes copied`),className:`cursor-pointer border-0 bg-transparent text-[12px] text-muted hover:text-ink2`,children:`Copy`}),children:(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1 px-4 pb-1`,children:e.classes.map(e=>(0,R.jsx)(`span`,{className:`rounded-[4px] bg-soft2 px-1.5 py-0.5 font-mono text-[11px] text-ink2`,children:e},e))})}):null,e.attributes.length?(0,R.jsx)(YC,{title:`Attributes`,children:e.attributes.map(([e,t])=>(0,R.jsx)(XC,{label:e,children:(0,R.jsx)(QC,{title:t,children:t})},e))}):null,e.children.length?(0,R.jsx)(YC,{title:`Children · ${e.children.length}`,children:(0,R.jsx)(`div`,{className:`flex flex-col px-2 pb-1`,children:e.children.map((e,n)=>(0,R.jsxs)(`button`,{type:`button`,onClick:()=>t(e.ref),className:`flex h-7 cursor-pointer items-center gap-2 rounded-[6px] border-0 bg-transparent px-2 text-left font-mono text-[12px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(Z,{name:`chevron-right`,size:12,className:`text-muted`}),(0,R.jsx)(`span`,{className:`truncate`,children:e.label})]},n))})}):null]}):(0,R.jsxs)(`div`,{className:`flex flex-col items-center gap-2 px-6 py-10 text-center`,children:[(0,R.jsx)(Z,{name:`pointer`,size:22,className:`text-muted`}),(0,R.jsx)(`span`,{className:`text-[13.5px] text-ink2`,children:r?`Click an element in any screen.`:`Hold ${T_} to highlight, click to inspect.`}),(0,R.jsx)(`span`,{className:`text-[12.5px] leading-[1.5] text-muted`,children:`Hover shows margin, padding and content. Clicks go to the inspector, not the screen.`}),(0,R.jsxs)(`span`,{className:`mt-2 flex items-center gap-1.5 text-[12px] text-muted`,children:[(0,R.jsx)(y_,{children:`I`}),` toggle · hold `,(0,R.jsx)(y_,{children:T_}),` · `,(0,R.jsx)(y_,{children:`esc`}),` clear`]})]}),e?(0,R.jsx)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-rule bg-soft px-4 py-2.5`,children:(0,R.jsx)(A_,{icon:`copy`,onClick:()=>void IC(e.css,`CSS copied`),className:`grow`,children:`Copy CSS`})}):null]})}var aw={neutral:`bg-soft2 text-ink2`,action:`bg-action-soft text-action`,ok:`bg-ok-soft text-ok-text`,danger:`bg-danger-soft text-danger-text`};function ow({tone:e=`neutral`,children:t,className:n}){return(0,R.jsx)(`span`,{className:X(`inline-flex h-[22px] shrink-0 items-center gap-1 whitespace-nowrap rounded-[6px] px-2 text-[12px] font-medium`,aw[e],n),children:t})}function sw({value:e,tone:t=`neutral`}){return(0,R.jsx)(`span`,{className:X(`inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-[4px] px-[5px] text-[11.5px] font-semibold tabular`,t===`action`?`bg-action-soft text-action`:t===`danger`?`bg-danger-soft text-danger-text`:`bg-soft2 text-ink2`),children:e})}function cw({children:e,className:t,style:n}){return(0,R.jsx)(`section`,{className:X(`min-w-0 shrink-0 overflow-hidden rounded-[10px] border border-rule bg-surface`,t),style:n,children:e})}function lw({title:e,count:t,sub:n,right:r,as:i=`h2`}){return(0,R.jsxs)(`div`,{className:`flex min-h-[46px] items-center justify-between gap-3 px-4`,children:[(0,R.jsxs)(i,{className:`m-0 flex min-w-0 items-center gap-2 whitespace-nowrap text-[14px] font-semibold`,children:[e,t===void 0?null:(0,R.jsx)(sw,{value:t}),n?(0,R.jsx)(`span`,{className:`truncate text-[12.5px] font-normal text-muted`,children:n}):null]}),r?(0,R.jsx)(`div`,{className:`flex items-center gap-2`,children:r}):null]})}function uw({items:e,value:t,onChange:n,right:r}){let i=(0,v.useId)();return(0,R.jsxs)(`div`,{className:`flex h-[46px] items-center justify-between gap-3 px-4`,children:[(0,R.jsx)(`div`,{role:`tablist`,className:`flex gap-5`,children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":r,onClick:()=>n(e.value),className:X(`relative flex h-[46px] cursor-pointer items-center gap-1.5 border-0 bg-transparent px-0.5 text-[14px] transition-colors`,r?`font-semibold text-ink`:`font-medium text-ink2 hover:text-ink`),children:[e.label,e.count===void 0?null:(0,R.jsx)(sw,{value:e.count}),r?(0,R.jsx)(Wf.span,{layoutId:i,className:`absolute inset-x-0 bottom-0 h-[2px] bg-ink`,transition:{type:`spring`,stiffness:520,damping:42}}):null]},e.value)})}),r?(0,R.jsx)(`div`,{className:`flex items-center gap-2`,children:r}):null]})}function dw({align:e,children:t}){return(0,R.jsx)(`div`,{className:X(`flex min-w-0 items-center gap-2`,e===`r`&&`justify-end text-right`,e===`c`&&`justify-center`),children:t})}function fw(e,t){return v.Children.toArray(e).map((e,n)=>(0,R.jsx)(dw,{align:t?.[n]??`l`,children:e},n))}function pw({cols:e,align:t,labels:n}){return(0,R.jsx)(`div`,{className:`grid h-8 items-center gap-x-4 border-t border-rule bg-soft px-4 text-[12.5px] text-muted`,style:{gridTemplateColumns:e},children:n.map((e,n)=>(0,R.jsx)(dw,{align:t?.[n]??`l`,children:(0,R.jsx)(`span`,{className:`whitespace-nowrap`,children:e})},n))})}var mw=(e,t,n)=>X(`grid items-center gap-x-4 border-rule`,!e&&`border-t`,t&&`cursor-pointer transition-colors hover:bg-soft`,n);function hw({cols:e,align:t,minH:n=44,pad:r=`10px 16px`,children:i,first:a,className:o,onClick:s,title:c}){return(0,R.jsx)(`div`,{className:mw(a,!!s,o),style:{gridTemplateColumns:e,minHeight:n,padding:r},onClick:s,title:c,children:fw(i,t)})}function gw({to:e,cols:t,align:n,minH:r=44,pad:i=`10px 16px`,first:a,className:o,children:s}){return(0,R.jsx)(ye,{href:e,className:X(mw(a,!0,o),`text-inherit no-underline`),style:{gridTemplateColumns:t,minHeight:r,padding:i},children:fw(s,n)})}function _w({label:e,children:t,labelWidth:n=180,minH:r=40,end:i=!1}){return(0,R.jsxs)(`div`,{className:`grid content-center items-baseline gap-x-4 border-t border-rule px-4 py-2`,style:{gridTemplateColumns:`min(${n}px, 42%) minmax(0, 1fr)`,minHeight:r},children:[(0,R.jsx)(`span`,{className:`text-[13px] text-muted`,children:e}),(0,R.jsx)(`div`,{className:X(`flex min-w-0 flex-wrap items-center gap-2`,i&&`justify-end`),children:t})]})}function vw({children:e,pad:t=`16px`,gap:n=16,top:r=!0,className:i}){return(0,R.jsx)(`div`,{className:X(`flex flex-col`,r&&`border-t border-rule`,i),style:{padding:t,gap:n},children:e})}function yw({issues:e,className:t}){return(0,R.jsx)(`div`,{className:X(`flex flex-col`,t),children:e.map((e,t)=>(0,R.jsxs)(`div`,{className:`flex items-start gap-2.5 border-t border-rule px-4 py-2.5 text-[13px] first:border-t-0`,children:[(0,R.jsx)(Z,{name:e.severity===`error`?`alert`:`info`,size:15,className:X(`mt-0.5`,e.severity===`error`?`text-danger-text`:`text-action`)}),(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsx)(`span`,{className:`text-ink`,children:e.message}),(0,R.jsxs)(`span`,{className:`font-mono text-[12px] break-all text-muted`,children:[e.file,e.at?` · ${e.at}`:``]})]})]},t))})}function bw({issues:e,title:t=`Problems`}){if(!e.length)return null;let n=e.filter(e=>e.severity===`error`).length;return(0,R.jsxs)(cw,{className:n?`border-danger/40`:void 0,children:[(0,R.jsx)(lw,{title:t,count:e.length,sub:n?`${n} blocking`:`warnings`}),(0,R.jsx)(`div`,{className:`border-t border-rule`,children:(0,R.jsx)(yw,{issues:e})})]})}var xw=[.2,.7,.2,1];function Sw({open:e,side:t,width:n,children:r}){return(0,R.jsx)($u,{initial:!1,children:e?(0,R.jsx)(Wf.div,{initial:{width:0,opacity:.6},animate:{width:n,opacity:1},exit:{width:0,opacity:.6},transition:{duration:.22,ease:xw},className:X(`flex min-h-0 shrink-0 overflow-hidden`,t===`right`?`justify-start`:`justify-end`),children:(0,R.jsx)(`div`,{className:`flex min-h-0 shrink-0`,style:{width:n},children:r})},`panel`):null})}function Cw({children:e,className:t,gap:n=20,wide:r=!1}){return(0,R.jsx)(`main`,{className:X(`mx-auto flex w-full min-h-0 grow flex-col px-8 pt-6 pb-7 animate-[q-fade-in_160ms_ease-out] max-md:px-4 max-md:pt-4`,r?`max-w-[1440px]`:`max-w-[1200px]`,t),style:{gap:n},children:e})}function ww({title:e,sub:t,right:n,badge:r,crumbs:i}){return(0,R.jsxs)(`div`,{className:`flex shrink-0 items-end justify-between gap-6 max-md:flex-col max-md:items-stretch max-md:gap-3`,children:[(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[i?(0,R.jsx)(`div`,{className:`flex items-center gap-1.5 text-[13px] text-muted`,children:i}):null,(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`h1`,{className:`m-0 text-[22px] font-semibold tracking-[-0.01em]`,children:e}),r]}),t?(0,R.jsx)(`div`,{className:`text-[13px] [overflow-wrap:anywhere] text-muted`,children:t}):null]}),n?(0,R.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:n}):null]})}function Tw({items:e,label:t}){return(0,R.jsx)(`nav`,{"aria-label":t,className:`flex flex-col gap-0.5`,children:e.map(e=>(0,R.jsxs)(ye,{href:e.to,className:e=>X(`flex h-8 items-center gap-2 whitespace-nowrap rounded-[6px] px-3 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,e?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(`span`,{className:`min-w-0 truncate`,children:e.label}),e.hint?(0,R.jsx)(`span`,{className:`ml-auto text-[12px] font-normal text-muted`,children:e.hint}):null]},e.to))})}function Ew({children:e}){return(0,R.jsx)(`div`,{className:`px-3 pt-4 pb-1 text-[12px] text-muted`,children:e})}function Dw({title:e,text:t,action:n}){return(0,R.jsxs)(cw,{className:`flex w-[480px] max-w-full flex-col items-center gap-2 px-6 py-8 text-center`,children:[(0,R.jsx)(`h1`,{className:`m-0 text-[16px] font-semibold`,children:e}),t?(0,R.jsx)(`div`,{className:`m-0 max-w-[400px] text-[14px] text-ink2`,children:t}):null,n?(0,R.jsx)(`div`,{className:`mt-3 flex flex-wrap justify-center gap-2`,children:n}):null]})}function Ow(e){return(0,R.jsx)(`div`,{className:`flex min-h-[50vh] grow items-center justify-center p-6 max-md:px-4`,children:(0,R.jsx)(Dw,{...e})})}function kw({title:e=`Nothing here`,text:t}){let n=!!Xg().scope;return(0,R.jsx)(Ow,{title:e,text:t??`This address does not match a canvas or a page of the design system.`,action:n?void 0:(0,R.jsx)(P_,{to:`/`,children:`All canvases`})})}var Aw=.1,jw=(e,t=Aw)=>Math.min(8,Math.max(t,e)),Mw=class{camera={x:0,y:0,z:1};minZoom=Aw;listeners=new Set;animation=0;subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}set(e){this.camera={x:e.x,y:e.y,z:jw(e.z,this.minZoom)};for(let e of this.listeners)e(this.camera)}interrupt(){cancelAnimationFrame(this.animation),this.animation=0}panBy(e,t){this.interrupt();let{x:n,y:r,z:i}=this.camera;this.set({x:n+e,y:r+t,z:i})}zoomAt(e,t,n){this.interrupt();let{x:r,y:i,z:a}=this.camera,o=jw(a*n,this.minZoom),s=(e-r)/a,c=(t-i)/a;this.set({x:e-s*o,y:t-c*o,z:o})}animateTo(e,t=320){this.interrupt();let n={...this.camera},r={...e,z:jw(e.z,this.minZoom)};if(t<=0||matchMedia(`(prefers-reduced-motion: reduce)`).matches){this.set(r);return}let i=performance.now(),a=e=>{let o=Math.min(1,(e-i)/t),s=1-(1-o)**3,c=n.z*(r.z/n.z)**s,l=n.z===r.z?s:(c-n.z)/(r.z-n.z);this.set({x:n.x+(r.x-n.x)*l,y:n.y+(r.y-n.y)*l,z:c}),this.animation=o<1?requestAnimationFrame(a):0};this.animation=requestAnimationFrame(a)}toWorld(e,t){let{x:n,y:r,z:i}=this.camera;return{x:(e-n)/i,y:(t-r)/i}}};function Nw(e,t,n,r=72,i=1,a=Aw){let o=jw(Math.min((t-r*2)/Math.max(e.w,1),(n-r*2)/Math.max(e.h,1),i),a),s=(e,t,n)=>t*o<=n-r*2?n/2-(e+t/2)*o:r-e*o;return{z:o,x:s(e.x,e.w,t),y:s(e.y,e.h,n)}}function Pw(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function Fw({items:e,value:t,onChange:n,label:r,stretch:i,size:a=`ctrl`}){let o=(0,v.useId)();return(0,R.jsx)(`div`,{role:`group`,"aria-label":r,className:X(`shrink-0 items-center gap-0.5 rounded-[6px] bg-track p-[3px]`,a===`ctrl`?`h-ctrl`:`h-7`,i?`flex`:`inline-flex`),children:e.map(e=>{let r=e.value===t;return(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":r,title:e.title,onClick:()=>n(e.value),className:X(`relative flex h-full cursor-pointer items-center justify-center whitespace-nowrap rounded-[4px] border-0 bg-transparent font-medium transition-colors`,a===`ctrl`?`px-2.5 text-ctrl`:`px-2 text-[12.5px]`,i&&`flex-1`,r?`text-ink`:`text-muted hover:text-ink2`),children:[r?(0,R.jsx)(Wf.span,{layoutId:o,className:`absolute inset-0 rounded-[4px] bg-surface shadow-[0_1px_2px_rgba(0,0,0,0.10)]`,transition:{type:`spring`,stiffness:520,damping:42}}):null,(0,R.jsx)(`span`,{className:`relative flex items-center gap-1.5`,children:e.label})]},e.value)})})}var Iw=Object.defineProperty,Lw=(e,t)=>Iw(e,`name`,{value:t,configurable:!0}),Rw=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),zw=v.forwardRef(Lw(function(e,t){return(0,R.jsx)(Wp.span,{...e,ref:t,style:{...Rw,...e.style}})},`VisuallyHidden`)),Bw=Object.defineProperty,Vw=(e,t)=>Bw(e,`name`,{value:t,configurable:!0}),[Hw,Uw]=ap(`Tooltip`,[_b]),Ww=_b(),Gw=`TooltipProvider`,Kw=700,qw=`tooltip.open`,[Jw,Yw]=Hw(Gw),Xw=Vw(e=>{let{__scopeTooltip:t,delayDuration:n=Kw,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=v.useRef(!0),s=v.useRef(!1),c=v.useRef(0);return v.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,R.jsx)(Jw,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:v.useCallback(()=>{r<=0||(window.clearTimeout(c.current),o.current=!1)},[r]),onClose:v.useCallback(()=>{r<=0||(window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:s,onPointerInTransitChange:v.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),Zw=`Tooltip`,[Qw,$w]=Hw(Zw),eT=Vw(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=Yw(Zw,e.__scopeTooltip),l=Ww(t),[u,d]=v.useState(null),[f,p]=v.useState(void 0),m=fp(),h=v.useRef(0),g=o??c.disableHoverableContent,_=s??c.delayDuration,y=v.useRef(!1),[b,x]=xp({prop:r,defaultProp:i??!1,onChange:Vw(e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(qw))):c.onClose(),a?.(e)},`onChange`),caller:Zw}),S=v.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),C=v.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,x(!0)},[x]),w=v.useCallback(()=>{window.clearTimeout(h.current),h.current=0,x(!1)},[x]),T=v.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,x(!0),h.current=0},_)},[_,x]);v.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]);let E=f??m;return(0,R.jsx)(Ab,{...l,children:(0,R.jsx)(Qw,{scope:t,contentId:E,setContentId:p,open:b,stateAttribute:S,trigger:u,onTriggerChange:d,onTriggerEnter:v.useCallback(()=>{c.isOpenDelayedRef.current?T():C()},[c.isOpenDelayedRef,T,C]),onTriggerLeave:v.useCallback(()=>{g?w():(window.clearTimeout(h.current),h.current=0)},[w,g]),onOpen:C,onClose:w,disableHoverableContent:g,children:n})})},`Tooltip`),tT=`TooltipTrigger`,nT=v.forwardRef(Vw(function(e,t){let{__scopeTooltip:n,...r}=e,i=$w(tT,n),a=Yw(tT,n),o=Ww(n),s=tp(t,v.useRef(null),i.onTriggerChange),c=v.useRef(!1),l=v.useRef(!1),u=v.useCallback(()=>c.current=!1,[]);return v.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,R.jsx)(jb,{asChild:!0,...o,children:(0,R.jsx)(Wp.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:Y(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:Y(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:Y(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:Y(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:Y(e.onBlur,i.onClose),onClick:Y(e.onClick,i.onClose)})})},`TooltipTrigger`)),rT=`TooltipPortal`,[iT,aT]=Hw(rT,{forceMount:void 0}),oT=Vw(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=$w(rT,t);return(0,R.jsx)(iT,{scope:t,forceMount:n,children:(0,R.jsx)(jm,{present:n||a.open,children:(0,R.jsx)(Dm,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),sT=`TooltipContent`,cT=v.forwardRef(Vw(function(e,t){let n=aT(sT,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=$w(sT,e.__scopeTooltip);return(0,R.jsx)(jm,{present:r||o.open,children:o.disableHoverableContent?(0,R.jsx)(dT,{side:i,...a,ref:t}):(0,R.jsx)(lT,{side:i,...a,ref:t})})},`TooltipContent`)),lT=v.forwardRef(Vw(function(e,t){let n=$w(sT,e.__scopeTooltip),r=Yw(sT,e.__scopeTooltip),i=v.useRef(null),a=tp(t,i),[o,s]=v.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=v.useCallback(()=>{s(null),d(!1)},[d]),p=v.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=pT(r,fT(r,n.getBoundingClientRect())),a=mT(t.getBoundingClientRect()),o=gT([...i,...a]);s(o),d(!0)},[d]);return v.useEffect(()=>()=>f(),[f]),v.useEffect(()=>{if(c&&u){let e=Vw(e=>p(e,u),`handleTriggerLeave`),t=Vw(e=>p(e,c),`handleContentLeave`);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),v.useEffect(()=>{if(o){let e=Vw(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!hT(n,o);r?f():i&&(f(),l())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,R.jsx)(dT,{...e,ref:a})},`TooltipContentHoverable`)),uT=jp(`TooltipContent`),dT=v.forwardRef(Vw(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=$w(sT,n),u=Ww(n),{onClose:d}=l;v.useEffect(()=>(document.addEventListener(qw,d),()=>document.removeEventListener(qw,d)),[d]),v.useEffect(()=>{if(l.trigger){let e=Vw(e=>{e.target instanceof Node&&e.target.contains(l.trigger)&&d()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]);let{setContentId:f}=l;return sp(()=>(f(a),()=>{f(void 0)}),[a,f]),(0,R.jsx)(nm,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,R.jsxs)(Mb,{"data-state":l.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:l.contentId,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,R.jsx)(uT,{children:r}),i?(0,R.jsx)(zw,{id:l.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`));function fT(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}Vw(fT,`getExitSideFromRect`);function pT(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}Vw(pT,`getPaddedExitPoints`);function mT(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}Vw(mT,`getPointsFromRect`);function hT(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}Vw(hT,`isPointInPolygon`);function gT(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),_T(t)}Vw(gT,`getHull`);function _T(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}Vw(_T,`getHullPresorted`);var vT=Xw,yT=eT,bT=nT,xT=oT,ST=cT;function CT({children:e}){return(0,R.jsx)(vT,{delayDuration:250,children:e})}var wT=`z-50 max-w-[280px] rounded-[8px] border border-rule bg-surface px-[10px] py-[7px] text-[12.5px] leading-[1.35] text-ink shadow-pop outline-none data-[state=delayed-open]:animate-[q-pop_120ms_ease-out] data-[state=closed]:animate-[q-pop-out_100ms_ease-in_forwards]`;function TT({content:e,children:t,side:n=`top`,align:r=`center`,className:i}){return(0,R.jsxs)(yT,{children:[(0,R.jsx)(bT,{asChild:!0,children:t}),(0,R.jsx)(xT,{children:(0,R.jsx)(ST,{side:n,align:r,sideOffset:6,collisionPadding:12,className:X(wT,i),children:e})})]})}var ET=(e,t,n)=>`/c/${encodeURIComponent(e)}/full/${encodeURIComponent(t)}?theme=${n}`;function DT(e,t,n){let{frameSandbox:r}=Xg(),{base:i}=ue();return t?t.kind===`url`?t.url:GC(r?`${i}${ET(e,t.id,t.theme??n)}`:WC(t.url,t.theme??n)):null}function OT({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=e_(e),[,a]=F(),{frameSandbox:o}=Xg(),s=__(),c=(0,v.useRef)(null),l=new URLSearchParams(window.location.search).get(`theme`),u=n?n.pages.flatMap(e=>e.sections.flatMap(e=>e.items.filter(e=>e.kind===`screen`||e.kind===`url`))):[],d=u.find(e=>e.id===t),f=(d?.kind===`screen`?d.theme:void 0)??(l===`light`||l===`dark`?l:n?.theme??s),p=d?d.kind===`screen`?WC(d.url,f):d.url:``,m=`/c/${encodeURIComponent(e)}`;return(0,v.useEffect)(()=>{d&&(document.title=`${d.title} · ${n?.title??``}`)},[d,n?.title]),(0,v.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a(m)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,m]),(0,v.useEffect)(()=>{let t=c.current;if(t&&d?.kind===`screen`)return RC(t,t=>{if(t.type===`keydown`&&t.code===`Escape`)a(m);else if(t.type===`go`){let n=t.target.includes(`/`)?t.target.split(`/`)[1]:t.target;u.some(e=>e.id===n)&&a(ET(e,n,f),{replace:!0})}else t.type===`link`&&n&&KC(t,n,t=>a(ET(e,t,f),{replace:!0}))})},[p,d?.kind]),r?(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message}):i||!n?(0,R.jsx)(`div`,{className:`h-dvh bg-surface`}):d?(0,R.jsxs)(`div`,{className:`group fixed inset-0 bg-surface`,children:[(0,R.jsx)(`iframe`,{ref:c,src:p,title:d.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:o,className:`block h-full w-full border-0`,style:{colorScheme:f},onLoad:()=>d.kind===`screen`&&VC(c.current,f)},`${d.id}:${d.kind===`screen`?d.rev:d.url}`),(0,R.jsx)(`div`,{className:`pointer-events-none absolute inset-x-0 top-0 flex justify-end p-3 opacity-0 transition-opacity duration-200 group-hover:opacity-100 focus-within:opacity-100`,children:(0,R.jsxs)(ye,{href:m,className:`pointer-events-auto flex h-8 items-center gap-2 rounded-[8px] border border-rule bg-surface px-3 text-[12.5px] text-ink2 no-underline shadow-pop hover:text-ink`,children:[(0,R.jsx)(Z,{name:`x`,size:14}),`Back to `,n.title,(0,R.jsx)(y_,{children:`esc`})]})})]}):(0,R.jsx)(kw,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`})}function kT(e){return e.kind===`note`?`note`:e.kind===`image`?`image`:e.kind===`url`?`globe`:e.frame.width<600?`smartphone`:e.frame.width<1100?`tablet`:`monitor`}function AT(e,t){return`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(t.id)}`}function jT({canvas:e,page:t,store:n,onPick:r}){let i=c_(n,e=>e.selected),a=c_(n,e=>e.frames);return(0,R.jsxs)(`aside`,{"data-ui":!0,className:`flex w-[264px] shrink-0 flex-col overflow-hidden border-r border-rule bg-surface`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-1 border-b border-rule px-4 py-3.5`,children:[(0,R.jsx)(`div`,{className:`truncate text-[14px] font-semibold`,children:e.title}),e.description?(0,R.jsx)(`div`,{className:`line-clamp-3 text-[12.5px] leading-[1.45] text-muted`,children:e.description}):null]}),(0,R.jsxs)(`div`,{className:`min-h-0 grow overflow-y-auto pb-4`,children:[e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:`Pages`}),(0,R.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2`,children:e.pages.map(n=>{let r=n.sections.reduce((e,t)=>e+t.items.filter(e=>e.kind===`screen`||e.kind===`url`).length,0);return(0,R.jsxs)(ye,{href:AT(e,n),className:X(`flex h-8 items-center gap-2 rounded-[6px] px-2.5 text-[13.5px] no-underline transition-colors focus-visible:outline-offset-[-2px]`,n.id===t.id?`bg-soft2 font-medium text-ink`:`text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(Z,{name:`file`,size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:n.title}),(0,R.jsx)(`span`,{className:`text-[12px] text-muted tabular`,children:r})]},n.id)})})]}):null,(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.pages.length>1?t.title:`Layers`}),(0,R.jsx)(`div`,{className:`flex flex-col px-2`,children:t.sections.map(e=>(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsxs)(`div`,{className:`flex h-7 items-center gap-2 px-2.5 pt-1 text-[12px] font-medium text-ink2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:e.title}),(0,R.jsx)(sw,{value:e.items.length})]}):null,e.items.map(t=>{let n=(a[t.id]?.errors.length??0)>0||t.kind===`screen`&&t.missing;return(0,R.jsxs)(`button`,{type:`button`,onClick:()=>r(t.id),className:X(`flex h-8 w-full cursor-pointer items-center gap-2 rounded-[6px] border-0 px-2.5 text-left text-[13px] transition-colors focus-visible:outline-offset-[-2px]`,e.title&&`pl-4`,i===t.id?`bg-action-soft text-ink`:`bg-transparent text-ink2 hover:bg-soft2`),children:[(0,R.jsx)(Z,{name:kT(t),size:15,className:`text-muted`}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:t.title||(t.kind===`note`?`Note`:t.id)}),n?(0,R.jsx)(`span`,{className:`size-[7px] shrink-0 rounded-full bg-danger`}):null]},t.id)})]},e.id))})]})]})}function MT({canvas:e,page:t,theme:n,onTheme:r,sidebar:i,onSidebar:a,onPlay:o,canPlay:s,inspect:c,onInspect:l}){let[,u]=F(),{slots:d,scope:f}=Xg();return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(XS,{children:[d.barStart,d.brand?d.brand:f?(0,R.jsx)(JS,{}):(0,R.jsx)(TT,{content:`All canvases`,children:(0,R.jsx)(ye,{href:`/`,className:`flex items-center`,"aria-label":`All canvases`,children:(0,R.jsx)(JS,{})})}),(0,R.jsx)(N_,{icon:`panel-left`,label:i?`Hide sidebar (⌘\\)`:`Show sidebar (⌘\\)`,onClick:()=>a(!i)}),(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-[14px]`,children:[(0,R.jsx)(`span`,{className:`truncate font-semibold`,children:e.title}),t&&e.pages.length>1?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(Z,{name:`chevron-right`,size:14,className:`shrink-0 text-muted`}),(0,R.jsxs)(VS,{width:240,trigger:(0,R.jsxs)(`button`,{type:`button`,className:`flex h-ctrl cursor-pointer items-center gap-1 rounded-[6px] border-0 bg-transparent px-2 text-[14px] text-ink2 hover:bg-soft2`,children:[(0,R.jsx)(`span`,{className:`truncate`,children:t.title}),(0,R.jsx)(Z,{name:`chevron-down`,size:14,className:`text-muted`})]}),children:[(0,R.jsx)(GS,{children:`Pages`}),e.pages.map(n=>(0,R.jsxs)(US,{active:n.id===t.id,onSelect:()=>u(AT(e,n)),children:[(0,R.jsx)(Z,{name:`file`,size:15,className:`text-muted`}),n.title]},n.id))]})]}):null]}),(0,R.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,R.jsx)(Fw,{label:`Screen theme`,value:n,onChange:r,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:15}),title:`Light screens`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:15}),title:`Dark screens`}]}),(0,R.jsx)(PT,{on:c,onChange:l}),(0,R.jsx)(A_,{kind:`secondary`,icon:`play`,onClick:o,disabled:!s,children:`Play`}),(0,R.jsx)(D_,{width:200,label:`Search`}),(0,R.jsx)(qS,{}),d.barEnd]})]}),d.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:d.belowBar}):null]})}function NT({canvas:e,store:t,layoutItems:n,theme:r,onPlay:i,inspect:a}){let o=c_(t,e=>e.selected),s=c_(t,e=>e.active),c=c_(t,e=>o?e.frames[o]:void 0),l=n.find(e=>e.id===o),u=DT(e.id,l?.kind===`screen`||l?.kind===`url`?l:void 0,r);if(!l)return null;let d=l.kind===`screen`||l.kind===`url`,f=()=>HC(document.querySelector(`[data-item="${CSS.escape(l.id)}"] iframe`)),p=c?.errors??[];return(0,R.jsx)(`div`,{"data-ui":!0,className:`pointer-events-none absolute inset-x-0 bottom-5 z-20 flex justify-center px-4`,children:(0,R.jsxs)(`div`,{className:`pointer-events-auto flex max-w-full flex-col overflow-hidden rounded-[10px] border border-rule bg-surface shadow-pop animate-[q-pop_120ms_ease-out]`,children:[p.length?(0,R.jsxs)(`div`,{className:`flex max-h-40 items-start gap-2 overflow-y-auto border-b border-rule bg-danger-soft px-3.5 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px`}),(0,R.jsx)(`span`,{className:`min-w-0`,children:p.join(`
|
|
58
58
|
`)})]}):null,(0,R.jsxs)(`div`,{className:`flex h-[44px] items-center gap-1 pr-1.5 pl-3.5`,children:[(0,R.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 pr-2`,children:[(0,R.jsx)(`span`,{className:`truncate text-[13.5px] font-medium`,children:l.title||l.id}),d&&s===l.id?(0,R.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5 text-[12px] text-muted`,children:[(0,R.jsx)(Z,{name:`pointer`,size:13}),` `,a?`Inspecting`:`Interacting`,` `,(0,R.jsx)(y_,{children:`esc`})]}):d?(0,R.jsx)(`span`,{className:`shrink-0 text-[12px] text-muted`,children:a?`Click an element to inspect it`:`Click the screen to interact`}):null]}),d?(0,R.jsx)(TT,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Play `,(0,R.jsx)(y_,{children:`↵`})]}),children:(0,R.jsx)(N_,{icon:`play`,label:`Play`,onClick:()=>i(l.id)})}):null,u?(0,R.jsx)(TT,{content:`Open in a new tab`,children:(0,R.jsx)(`a`,{href:u,target:`_blank`,rel:`noreferrer`,"aria-label":`Open in a new tab`,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,children:(0,R.jsx)(Z,{name:`external`,size:16})})}):null,d?(0,R.jsx)(TT,{content:`Reload`,children:(0,R.jsx)(N_,{icon:`refresh`,label:`Reload`,onClick:f})}):null,l.kind===`screen`?(0,R.jsx)(TT,{content:`Copy source path`,children:(0,R.jsx)(N_,{icon:`copy`,label:`Copy source path`,onClick:()=>void IC(l.file,`Path copied`)})}):null,(0,R.jsx)(TT,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Zoom to `,(0,R.jsx)(y_,{children:`⇧2`})]}),children:(0,R.jsx)(N_,{icon:`fit`,label:`Zoom to`,onClick:()=>window.dispatchEvent(new CustomEvent(`design:focus`,{detail:{canvas:e.id,item:l.id}}))})})]})]})})}function PT({on:e,onChange:t}){return(0,R.jsx)(TT,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Inspect elements `,(0,R.jsx)(y_,{children:`I`})]}),children:(0,R.jsxs)(`button`,{type:`button`,"aria-pressed":e,onClick:()=>t(!e),className:e?`inline-flex h-ctrl cursor-pointer items-center gap-1.5 rounded-[6px] border border-action-line bg-action-soft px-ctrl text-ctrl font-medium text-action`:`inline-flex h-ctrl cursor-pointer items-center gap-1.5 rounded-[6px] border border-rule-strong bg-surface px-ctrl text-ctrl font-medium text-ink hover:bg-soft`,children:[(0,R.jsx)(Z,{name:`pointer`,size:15}),`Inspect`]})})}var FT=280,IT=96,LT=150,RT=110,zT=720,BT=e=>e.kind===`screen`||e.kind===`url`;function VT(e,t){let n=t[e.id];if(e.kind===`screen`||e.kind===`url`){let t=e.frame.width;if(e.frame.height!==`auto`)return{w:t,h:e.frame.height};let r=e.kind===`screen`?e.measuredHeight:void 0;return{w:t,h:n?.h??r??900}}if(e.kind===`note`)return{w:e.width,h:n?.h??Math.max(80,Math.ceil(e.text.length/38)*26+40)};let r=e.width??n?.w??480;return{w:r,h:n?.w?n.h/n.w*r:n?.h??r*.62}}function HT(e,t){return!e.title&&!e.description?0:t[`section:${e.id}`]?.h??(e.title?56:0)+(e.description?60:0)}function UT(e,t){let n=[],r=[];if(e.layout===`free`){let r=0;for(let i of e.sections)for(let e of i.items){let{w:a,h:o}=VT(e,t),s=e.x??r,c=e.y??0;r=Math.max(r,s+a+IT),n.push({item:e,section:i,x:s,y:c,w:a,h:o})}}else{let i=0;for(let a of e.sections){let e=HT(a,t),o=i,s=i+(e?e+RT:0),c=0,l=0,u=0,d=0;for(let e of a.items){a.columns&&d===a.columns&&(s+=l+LT,c=0,l=0,d=0);let{w:r,h:i}=VT(e,t);n.push({item:e,section:a,x:c,y:s,w:r,h:i}),c+=r+IT,u=Math.max(u,c-IT),l=Math.max(l,i),d++}let f=s+l;r.push({section:a,x:0,y:o,w:Math.max(u,e?zT:0),h:f-o,header:e}),i=f+FT}}let i=0,a=0,o=0,s=0,c=[...n,...r];return c.length&&(i=Math.min(...c.map(e=>e.x)),a=Math.min(...c.map(e=>e.y)),o=Math.max(...c.map(e=>e.x+e.w)),s=Math.max(...c.map(e=>e.y+e.h))),{items:n,sections:r,bounds:{x:i,y:a,w:o-i,h:s-a}}}function WT(e){return e.items.filter(e=>BT(e.item))}function GT(){return new s_({selected:null,active:null,hovered:null,sizes:{},frames:{},live:[],panning:!1,zoomTiny:!1,frameEls:{},inspecting:!1})}function KT(e,t,n){e.set(e=>{let r=e.sizes[t];return r&&Math.abs(r.h-n.h)<1&&r.w===n.w?e:{...e,sizes:{...e.sizes,[t]:n}}})}function qT(e,t,n){e.set(e=>{let r=e.frames[t]??{ready:!1,errors:[]};return{...e,frames:{...e.frames,[t]:{...r,...n}}}})}function JT(e,t,n){e.set(e=>e.frameEls[t]===n?e:{...e,frameEls:{...e.frameEls,[t]:n}})}function YT(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var XT=YT();function ZT(e){XT=e}var QT={exec:()=>null};function $T(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function $(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(tE.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var eE=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),tE={codeRemoveIndent:/^(?: {0,3}\t| {1,4})/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,endingSpaceTabChar:/[ \t]$/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,leadingSpaceTab:/^[ \t]+/,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,numericCharacterReference:/&#(?:(\d{1,7})|[Xx]([A-Fa-f0-9]{1,6}));/g,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:$T(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:$T(e=>RegExp(`^ {0,${e}}((?:-[ ]*){3,}|(?:_[ ]*){3,}|(?:\\*[ ]*){3,})(?:\\n+|$)`)),fencesBeginRegex:$T(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:$T(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:$T(e=>RegExp(`^ {0,${e}}(?:</?(?:${gE})(?: +|$|/?>)|<(?:script|pre|style|textarea|!--))`,`i`)),blockquoteBeginRegex:$T(e=>RegExp(`^ {0,${e}}>`))},nE=/^(?:[ \t]*(?:\n|$))+/,rE=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,iE=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,aE=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,oE=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,sE=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,cE=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |fences|blockquote|heading|hr|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,lE=$(cE).replace(/bull/g,sE).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),uE=$(cE).replace(/bull/g,sE).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}(?:\s|$)/).replace(/hr/g,/ {0,3}(?:(?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),dE=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table|[ \t]+\n)[^\n]+)*)/,fE=/^[^\n]+/,pE=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,mE=$(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,pE).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),hE=$(/^(bull)([ \t][^\n]*?)?(?:\n|$)/).replace(/bull/g,sE).getRegex(),gE=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,_E=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,vE=$(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n*|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>[^\\n]*\\n*|$)|<![A-Z][\\s\\S]*?(?:>[^\\n]*\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>[^\\n]*\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][a-z0-9-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][a-z0-9-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,_E).replace(`tag`,gE).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),yE=e=>$(dE).replace(`hr`,aE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,e).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,gE).getRegex(),bE=yE(/ {0,3}(?:[*+-]|1[.)])[ \t]+[^ \t\n]/),xE=yE(/ {0,3}(?:[*+-]|\d{1,9}[.)])(?:[ \t]|\n|$)/),SE={blockquote:$(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,xE).getRegex(),code:rE,def:mE,fences:iE,heading:oE,hr:aE,html:vE,lheading:lE,list:hE,newline:nE,paragraph:bE,table:QT,text:fE},CE=$(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,aE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,gE).getRegex(),wE={...SE,lheading:uE,table:CE,paragraph:$(dE).replace(`hr`,aE).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,CE).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*(?:\\n|$))|~~~)[^\\n]*(?:\\n|$)").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]+[^ \\t\\n]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,gE).getRegex()},TE={...SE,html:$(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,_E).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:QT,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:$(dE).replace(`hr`,aE).replace(`heading`,` *#{1,6} *[^
|
|
59
59
|
]`).replace(`lheading`,lE).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},EE=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,DE=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,OE=/^( {2,}|\\)\n(?!\s*$)[ \t]*/,kE=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,AE=/[\p{P}\p{S}]/u,jE=/[\s\p{P}\p{S}]/u,ME=/[^\s\p{P}\p{S}]/u,NE=$(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,jE).getRegex(),PE=/[\p{Pi}\p{Ps}"']/u,FE=/(?!~)[\p{P}\p{S}]/u,IE=/(?!~)[\s\p{P}\p{S}]/u,LE=/(?:[^\s\p{P}\p{S}]|~)/u,RE=$(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,eE?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),zE=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,BE=$(zE,`u`).replace(/punct/g,AE).getRegex(),VE=$(zE,`u`).replace(/punct/g,FE).getRegex(),HE=$(/^(?:\*+(?:((?!\*)(?!openQuote)punct)|([^\s*]))?)|^_+(?:((?!_)(?!openQuote)punct)|([^\s_]))?/,`u`).replace(/openQuote/g,PE).replace(/punct/g,AE).getRegex(),UE=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,WE=$(UE,`gu`).replace(/notPunctSpace/g,ME).replace(/punctSpace/g,jE).replace(/punct/g,AE).getRegex(),GE=$(UE,`gu`).replace(/notPunctSpace/g,LE).replace(/punctSpace/g,IE).replace(/punct/g,FE).getRegex(),KE=$(`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)[\\s](\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|(?:(?!\\*)punct|notPunctSpace)(\\*+)(?!\\*)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,ME).replace(/punctSpace/g,jE).replace(/punct/g,AE).getRegex(),qE=$(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,ME).replace(/punctSpace/g,jE).replace(/punct/g,AE).getRegex(),JE=$(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)[\\s](_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)|(?:(?!_)punct|notPunctSpace)(_+)(?!_)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,ME).replace(/punctSpace/g,jE).replace(/punct/g,AE).getRegex(),YE=$(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,AE).getRegex(),XE=$(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,ME).replace(/punctSpace/g,jE).replace(/punct/g,AE).getRegex(),ZE=$(/\\(punct)/,`gu`).replace(/punct/g,AE).getRegex(),QE=$(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),$E=$(_E).replace(`(?:-->|$)`,`-->`).getRegex(),eD=$(`^comment|^</[a-zA-Z][a-zA-Z0-9-]*\\s*>|^<[a-zA-Z][a-zA-Z0-9-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,$E).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),tD=/\[(?:\\[\s\S]|[^\[\]\\])*\]/,nD=$(/(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/).replace(`brackets`,tD).getRegex(),rD=$(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,nD).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]+|(?=\))/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),iD=$(/^!?\[(label)\]\[(ref)\]/).replace(`label`,nD).replace(`ref`,pE).getRegex(),aD=$(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,pE).getRegex(),oD=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\]){1,999}/,sD=$(/(?:[^\[\]\\`]*(?:\[(?:brackets|\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\]))){0,999}?[^\[\]\\`]*?/).replace(`brackets`,tD).getRegex(),cD=$(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,$(/^!?\[(label)\]\[(ref)\]/).replace(`label`,sD).replace(`ref`,oD).getRegex()).replace(`nolink`,$(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,oD).getRegex()).getRegex(),lD=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,uD=$(/(?:mailto:email|xmpp:email(?:\/[A-Za-z0-9@.]+)?)/).replace(/email/g,/[A-Za-z0-9._+-]+@[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),dD={_backpedal:QT,anyPunctuation:ZE,autolink:QE,blockSkip:RE,br:OE,code:DE,del:QT,delLDelim:QT,delRDelim:QT,emStrongLDelim:BE,emStrongRDelimAst:WE,emStrongRDelimUnd:qE,escape:EE,link:rD,nolink:aD,punctuation:NE,reflink:iD,reflinkSearch:cD,tag:eD,text:kE,url:QT},fD={...dD,emStrongLDelim:HE,emStrongRDelimAst:KE,emStrongRDelimUnd:JE,link:$(/^!?\[(label)\]\((.*?)\)/).replace(`label`,nD).getRegex(),reflink:$(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,nD).getRegex()},pD={...dD,emStrongRDelimAst:GE,emStrongLDelim:VE,delLDelim:YE,delRDelim:XE,url:$(/^emailProtocol|^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`emailProtocol`,uD).replace(`protocol`,lD).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![\w-])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:$(/^(?:[^a-zA-Z0-9](?=emailProtocol)|(`+|~+|[^`~])(?:(?=[`~])|(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9](?=emailProtocol)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@))))/).replace(`protocol`,lD).replace(/emailProtocol/g,/(?:mailto|xmpp):/).getRegex()},mD={...pD,br:$(OE).replace(`{2,}`,`*`).getRegex(),text:$(pD.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},hD={normal:SE,gfm:wE,pedantic:TE},gD={normal:dD,gfm:pD,breaks:mD,pedantic:fD},_D={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},vD=e=>_D[e];function yD(e,t){if(t){if(tE.escapeTest.test(e))return e.replace(tE.escapeReplace,vD)}else if(tE.escapeTestNoEncode.test(e))return e.replace(tE.escapeReplaceNoEncode,vD);return e}function bD(e){return e.replace(tE.numericCharacterReference,(e,t,n)=>{let r=t===void 0?Number.parseInt(n,16):Number.parseInt(t,10);return r===0||r>1114111||r>=55296&&r<=57343?`�`:String.fromCodePoint(r)})}function xD(e){try{e=encodeURI(e).replace(tE.percentDecode,`%`)}catch{return null}return e}function SD(e,t){let n=e.replace(tE.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(tE.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t){if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``)}for(;r<n.length;r++)n[r]=n[r].trim().replace(tE.slashPipe,`|`);return n}function CD(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function wD(e){let t=e.split(`
|
|
60
60
|
`),n=t.length-1;for(;n>=0&&tE.blankLine.test(t[n]);)n--;return t.length-n<=2?e:t.slice(0,n+1).join(`
|
|
@@ -124,9 +124,9 @@ ${e}</tr>
|
|
|
124
124
|
Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error occurred:</p><pre>`+yD(n.message+``,!0)+`</pre>`;return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},RD=new LD;function zD(e,t){return RD.parse(e,t)}zD.options=zD.setOptions=function(e){return RD.setOptions(e),zD.defaults=RD.defaults,ZT(zD.defaults),zD},zD.getDefaults=YT,zD.defaults=XT;function BD(...e){return RD.use(...e),zD.defaults=RD.defaults,ZT(zD.defaults),zD}zD.use=BD,zD.walkTokens=function(e,t){return RD.walkTokens(e,t)},zD.parseInline=RD.parseInline,zD.Parser=FD,zD.parser=FD.parse,zD.Renderer=ND,zD.TextRenderer=PD,zD.Lexer=MD,zD.lexer=MD.lex,zD.Tokenizer=jD,zD.Hooks=ID,zD.parse=zD,zD.options,zD.setOptions,zD.walkTokens,zD.parseInline,FD.parse,MD.lex;var VD=new Set([`http:`,`https:`,`mailto:`]);function HD(e){let t=e.replace(/[\u0000- \u007f]/g,``),n=/^([a-z][a-z0-9+.-]*):/i.exec(t)?.[1];return!n||VD.has(`${n.toLowerCase()}:`)}function UD(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}var WD=new LD({gfm:!0,breaks:!1},{renderer:{html:({text:e})=>UD(e),link(e){return!HD(e.href)&&this.parser.parseInline(e.tokens)},image(e){return!HD(e.href)&&UD(e.text)}}});function GD(e){return WD.parse(e,{async:!1}).replace(/<a href=/g,`<a target="_blank" rel="noreferrer" href=`)}function KD({text:e,className:t}){let n=(0,v.useMemo)(()=>GD(e),[e]);return(0,R.jsx)(`div`,{className:X(`prose`,t),dangerouslySetInnerHTML:{__html:n}})}function qD(e,t,n=!0){let r=(0,v.useRef)(null);return(0,v.useLayoutEffect)(()=>{let i=r.current;if(!i||!n)return;let a=new ResizeObserver(()=>KT(e,t,{h:i.offsetHeight}));return a.observe(i),()=>a.disconnect()},[e,t,n]),r}function JD(e){return e<600?`smartphone`:e<1100?`tablet`:`monitor`}var YD=(0,v.memo)(function({placed:e,mode:t,thumb:n,theme:r,store:i,events:a,capture:o}){let{item:s,x:c,y:l,w:u,h:d}=e,f=(0,v.useRef)(null),{frameSandbox:p}=Xg(),m=(0,v.useCallback)(e=>{f.current=e,JT(i,s.id,e)},[i,s.id]),h=c_(i,e=>e.frames[s.id]),g=c_(i,e=>e.active===s.id),_=c_(i,e=>e.inspecting&&s.kind===`screen`),y=s.frame.height===`auto`,b=s.kind===`screen`?s.theme??r:r,x=s.kind===`screen`?s.rev:s.url,[S]=(0,v.useState)(b),C=s.kind===`screen`?WC(s.url,S,o?{capture:`1`}:void 0):s.url,w=!!h?.ready,T=t===`off`,E=!T&&!(s.kind===`screen`&&s.missing);(0,v.useEffect)(()=>{T&&qT(i,s.id,{ready:!1})},[T,i,s.id]),(0,v.useEffect)(()=>{let e=f.current;if(e&&!T&&s.kind===`screen`)return RC(e,t=>{switch(t.type){case`ready`:qT(i,s.id,{ready:!0}),BC(e);break;case`size`:y&&KT(i,s.id,{h:Math.max(200,t.height)});break;case`error`:{let e=i.get().frames[s.id]?.errors??[];e.includes(t.message)||qT(i,s.id,{errors:[...e,t.message]});break}case`updated`:qT(i,s.id,{errors:[]});break;case`go`:a.onGo(s.id,t.target);break;case`link`:a.onLink(s.id,t);break;case`wheel`:a.onWheel(e,t);break;case`keydown`:t.code===`Escape`&&a.onEscape()}})},[T,s.id,s.kind,y,i,a,C,x]),(0,v.useEffect)(()=>{s.kind===`screen`&&VC(f.current,b)},[b,s.kind]);let D=b===`dark`?`light`:`dark`,O=e=>e?.[b]??e?.[D],k=s.kind===`screen`?O(s.snapshots):void 0,A=n&&s.kind===`screen`?O(s.thumbs)??k:k,j=t===`asleep`&&w&&!!A;return(0,R.jsxs)(`div`,{"data-item":s.id,className:`absolute overflow-hidden bg-surface`,style:{left:c,top:l,width:u,height:d,boxShadow:`var(--shadow-frame), 0 0 0 1px var(--rule)`},children:[(!w||j)&&A?(0,R.jsx)(`img`,{src:A,alt:``,draggable:!1,loading:`lazy`,decoding:`async`,className:`absolute inset-0 h-full w-full object-cover object-top select-none`}):null,!w&&!A?(0,R.jsx)(XD,{item:s,loading:E}):null,E?(0,R.jsx)(`div`,{className:`absolute inset-0`,style:{contentVisibility:j?`hidden`:`visible`},children:(0,R.jsx)(`iframe`,{ref:m,src:C,title:s.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:p,className:X(`absolute top-0 left-0 block border-0 transition-opacity duration-200`,w?`opacity-100`:`opacity-0`),style:{width:u,height:d,colorScheme:b},onLoad:()=>{s.kind===`url`?qT(i,s.id,{ready:!0}):(VC(f.current,b),BC(f.current))}},x)}):null,g||_?null:(0,R.jsx)(`div`,{"data-shield":s.id,className:`absolute inset-0`})]})});function XD({item:e,loading:t}){let n=e.kind===`screen`&&e.missing;return(0,R.jsxs)(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-3 bg-soft text-muted`,children:[(0,R.jsx)(Z,{name:n?`alert`:e.kind===`url`?`globe`:JD(e.frame.width),size:Math.max(24,Math.min(96,e.frame.width/12)),strokeWidth:1.25,className:n?`text-danger-text`:void 0}),(0,R.jsx)(`div`,{className:`max-w-[80%] truncate text-center`,style:{fontSize:Math.max(14,e.frame.width/40)},children:n?`Missing file: ${e.kind===`screen`?e.src:``}`:t?`Loading…`:e.title})]})}var ZD=(0,v.memo)(function({placed:e,store:t}){let{item:n,x:r,y:i,w:a}=e,o=qD(t,n.id),s=n.tone===`plain`;return(0,R.jsxs)(`div`,{ref:o,"data-item":n.id,className:X(`absolute`,s?``:`rounded-[10px] border border-note-line bg-note px-6 py-5 shadow-frame`),style:{left:r,top:i,width:a},children:[n.title?(0,R.jsx)(`div`,{className:`mb-2 font-semibold text-ink`,style:{fontSize:s?26:19},children:n.title}):null,(0,R.jsx)(KD,{text:n.text,className:s?`prose-plain`:`prose-note`})]})}),QD=(0,v.memo)(function({placed:e,store:t}){let{item:n,x:r,y:i,w:a,h:o}=e;return(0,R.jsx)(`div`,{"data-item":n.id,className:`absolute overflow-hidden rounded-[6px] bg-surface`,style:{left:r,top:i,width:a,height:o,boxShadow:`0 0 0 1px var(--rule)`},children:n.missing?(0,R.jsxs)(`div`,{className:`flex h-full items-center justify-center gap-2 text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:20}),` Missing image`]}):(0,R.jsx)(`img`,{src:n.url,alt:n.title,draggable:!1,className:`block h-full w-full object-contain select-none`,onLoad:e=>{let r=e.currentTarget;KT(t,n.id,{w:r.naturalWidth,h:r.naturalHeight})}})})}),$D=(0,v.memo)(function({section:e,x:t,y:n,w:r,store:i}){let a=qD(i,`section:${e.id}`);return!e.title&&!e.description?null:(0,R.jsxs)(`div`,{ref:a,className:`canvas-section absolute`,style:{left:t,top:n,width:Math.min(Math.max(r,720),1400)},children:[e.title?(0,R.jsx)(`div`,{className:`text-[40px] leading-[1.15] font-semibold tracking-[-0.015em] text-ink`,children:e.title}):null,e.description?(0,R.jsx)(`div`,{className:`mt-3 max-w-[1100px]`,children:(0,R.jsx)(KD,{text:e.description,className:`prose-plain`})}):null]})}),eO={phone:{width:390,height:844,label:`Phone`},"phone-sm":{width:375,height:667,label:`Phone S`},"phone-lg":{width:430,height:932,label:`Phone L`},tablet:{width:834,height:1194,label:`Tablet`},"tablet-landscape":{width:1194,height:834,label:`Tablet landscape`},laptop:{width:1280,height:800,label:`Laptop`},desktop:{width:1440,height:900,label:`Desktop`},wide:{width:1920,height:1080,label:`Wide`}};Object.keys(eO);var tO=e=>({"--x":e.x,"--y":e.y,"--w":e.w,"--h":e.h});function nO(e){let t=e.item;if(t.kind!==`screen`&&t.kind!==`url`)return``;let n=t.frame.device?eO[t.frame.device]?.label:void 0,r=`${t.frame.width} × ${t.frame.height===`auto`?`auto`:t.frame.height}`;return n?`${n} · ${r}`:r}var rO=(0,v.memo)(function({placed:e,store:t}){let n=e.item.id,r=c_(t,e=>e.selected===n),i=c_(t,e=>e.frames[n]?.errors.length??0);return(0,R.jsxs)(`div`,{"data-at":``,"data-label":n,style:tO(e),className:X(`frame-label pointer-events-auto flex cursor-default items-center gap-1.5 overflow-hidden pb-1.5 text-[12.5px] leading-none whitespace-nowrap select-none`,r?`text-ink`:`text-muted hover:text-ink2`),children:[i?(0,R.jsx)(`span`,{className:`size-[7px] shrink-0 rounded-full bg-danger`,title:`${i} errors`}):null,(0,R.jsx)(`span`,{className:X(`min-w-[3ch] truncate`,r?`font-semibold`:`font-medium`),children:e.item.title}),(0,R.jsx)(`span`,{className:`frame-device min-w-0 shrink-[20] truncate text-[11.5px] text-muted opacity-80`,children:nO(e)})]})});function iO({placed:e,kind:t}){return(0,R.jsx)(`div`,{"data-at":``,style:tO(e),className:X(`frame-outline rounded-[1px]`,t===`hover`?`outline outline-[1.5px] outline-action/60`:`outline-2 outline-action outline`)})}function aO({layout:e,view:t,store:n,overlayRef:r}){let i=c_(n,e=>e.selected),a=c_(n,e=>e.active),o=c_(n,e=>e.hovered),s=c_(n,e=>e.zoomTiny),c=(0,v.useMemo)(()=>e.items.filter(e=>BT(e.item)),[e]),l=(0,v.useMemo)(()=>{if(!t||s)return[];let{x:e,y:n,z:r,w:i,h:a}=t,o={x:-e/r-i/r,y:-n/r-a/r,w:i/r*3,h:a/r*3};return c.filter(e=>Pw(e,o))},[c,t,s]),u=t=>t?e.items.find(e=>e.item.id===t):void 0,d=u(i),f=o&&o!==i?u(o):void 0;return(0,R.jsxs)(`div`,{ref:r,className:`canvas-overlay`,"data-tiny":s,children:[l.map(e=>(0,R.jsx)(rO,{placed:e,store:n},e.item.id)),f?(0,R.jsx)(iO,{placed:f,kind:`hover`}):null,d?(0,R.jsx)(iO,{placed:d,kind:a===i?`active`:`selected`}):null]})}var oO=12,sO=20,cO=110,lO=.2,uO=400,dO=.2,fO=3,pO=8e3,mO=14,hO=96;function gO({layout:e,theme:t,store:n,camera:r,events:i,capture:a,apiRef:o,onPlay:s,onSelect:c}){let l=(0,v.useRef)(null),u=(0,v.useRef)(null),d=(0,v.useRef)(null),f=(0,v.useRef)(null),[p,m]=(0,v.useState)(null),h=c_(n,e=>e.panning),g=c_(n,e=>e.selected),_=c_(n,e=>e.active),y=(0,v.useMemo)(()=>e.items.filter(e=>BT(e.item)),[e]);(0,v.useLayoutEffect)(()=>{let e=l.current,t=u.current,i=d.current,a,o,s=!1,c=0,p=()=>m({...r.camera,w:e.clientWidth,h:e.clientHeight,moving:s}),h=e=>{t.style.transform=`translate3d(${e.x}px, ${e.y}px, 0) scale(${e.z})`,s||(s=!0,t.classList.add(`moving`)),clearTimeout(a),a=setTimeout(()=>{s=!1,t.classList.remove(`moving`),p()},160);let r=f.current;r&&(r.style.setProperty(`--tx`,String(e.x)),r.style.setProperty(`--ty`,String(e.y)),r.style.setProperty(`--z`,String(e.z)));let l=24*e.z;for(;l<mO;)l*=4;for(;l>hO;)l/=4;l!==c&&(c=l,i.style.backgroundSize=`${l}px ${l}px`);let u=e=>((e+hO)%l+l)%l-l;i.style.transform=`translate3d(${u(e.x)}px, ${u(e.y)}px, 0)`;let d=e.z<.09;n.get().zoomTiny!==d&&n.set(e=>({...e,zoomTiny:d})),t.classList.toggle(`far`,e.z<.15),o??=setTimeout(()=>{o=void 0,p()},90)};h(r.camera),p();let g=r.subscribe(h),_=e.getBoundingClientRect().left,v=new ResizeObserver(()=>{let t=e.getBoundingClientRect().left;if(t!==_){let e=r.camera;r.set({...e,x:e.x-(t-_)}),_=t}p()});return v.observe(e),()=>{g(),v.disconnect(),clearTimeout(a),clearTimeout(o)}},[r,n]),(0,v.useEffect)(()=>{let t=l.current,n=()=>{let{w:n,h:i}={w:t.clientWidth,h:t.clientHeight},o=e.bounds,s=o.w&&n?Math.min((n-160)/o.w,(i-160)/Math.max(o.h,1)):1;r.minZoom=a?.01:Math.min(.25,Math.max(Aw,s*.5))};n();let i=new ResizeObserver(n);return i.observe(t),()=>i.disconnect()},[r,e.bounds,a]),(0,v.useEffect)(()=>{let t=l.current,n=()=>({w:t.clientWidth,h:t.clientHeight});o.current={size:n,openView(){let{w:t,h:i}=n(),a=e.bounds;if(!a.w)return;if(Math.min((t-160)/a.w,(i-160)/Math.max(a.h,1))>=dO)return this.fitAll(!1);let o=e.sections[0]??a,s=Math.min(.5,Math.max(.25,(t-160)/Math.max(o.w,1)));r.set({z:s,x:80-a.x*s,y:80-a.y*s})},fitAll(t=!0){let{w:i,h:a}=n();if(!e.bounds.w)return;let o=Nw(e.bounds,i,a,80,1,r.minZoom);t?r.animateTo(o):r.set(o)},fitItem(t,i=!0){let a=e.items.find(e=>e.item.id===t);if(!a)return;let{w:o,h:s}=n(),c=Nw(a,o,s,64,1,r.minZoom);i?r.animateTo(c):r.set(c)},zoomBy(e){let{w:t,h:i}=n(),a=r.camera,o=a.z*e,s=(t/2-a.x)/a.z,c=(i/2-a.y)/a.z;r.animateTo({z:o,x:t/2-s*o,y:i/2-c*o},180)},zoomTo(e){let{w:t,h:i}=n(),a=r.camera,o=(t/2-a.x)/a.z,s=(i/2-a.y)/a.z;r.animateTo({z:e,x:t/2-o*e,y:i/2-s*e},220)}}},[o,r,e]);let b=(0,v.useRef)([]),x=(0,v.useRef)(new Map),[S,C]=(0,v.useState)(0),w=c_(n,e=>_O(e.frames)),T=(0,v.useMemo)(()=>{let e=new Map;if(a){for(let t of y)e.set(t.item.id,`live`);return e}if(!p)return e;let{x:t,y:n,z:r,w:i,h:o}=p,s={x:-t/r,y:-n/r,w:i/r,h:o/r},c={x:s.x-s.w*.25,y:s.y-s.h*.25,w:s.w*1.5,h:s.h*1.5},l=s.x+s.w/2,u=s.y+s.h/2,d=e=>Math.max(0,Math.min(e.x+e.w,s.x+s.w)-Math.max(e.x,s.x))*Math.max(0,Math.min(e.y+e.h,s.y+s.h)-Math.max(e.y,s.y)),f=e=>Math.hypot(e.x+e.w/2-l,e.y+e.h/2-u),m=y.filter(e=>r>=lO&&Pw(e,c)&&e.w*r>=cO).sort((e,t)=>d(t)-d(e)||f(e)-f(t)).slice(0,oO).map(e=>e.item.id),h=[_,g].filter(e=>!!e),v=new Set(y.map(e=>e.item.id)),S=new Set(w.split(`
|
|
125
125
|
`)),C=new Set(b.current),T=performance.now(),E=e=>!S.has(e)&&T-(x.current.get(e)??0)<pO,D=fO-[...C].filter(E).length,O=[];for(let e of new Set([...h,...m]))v.has(e)&&(C.has(e)?O.push(e):(h.includes(e)||!p.moving&&D>0)&&(O.push(e),x.current.set(e,T),D--));let k=[...new Set([...O,...b.current])].filter(e=>v.has(e)).slice(0,sO);b.current=k;for(let e of x.current.keys())k.includes(e)||x.current.delete(e);for(let t of k)e.set(t,O.includes(t)?`live`:`asleep`);return e},[p,y,_,g,a,w,S]);(0,v.useEffect)(()=>{let e=performance.now(),t=new Set(w.split(`
|
|
126
126
|
`)),n=[...x.current].filter(([e])=>!t.has(e)).map(([,t])=>t+pO-e).filter(e=>e>0);if(!n.length)return;let r=setTimeout(()=>C(e=>e+1),Math.min(...n)+20);return()=>clearTimeout(r)},[T,w]);let E=(0,v.useRef)(null),D=(0,v.useRef)(new Map),O=(0,v.useRef)(null),k=(0,v.useRef)(!1),A=e=>{n.get().panning!==e&&n.set(t=>({...t,panning:e}))};(0,v.useEffect)(()=>{let e=e=>{e.code===`Space`&&!vO(e.target)&&(k.current=!0,l.current?.classList.add(`cursor-grab`),e.preventDefault())},t=e=>{e.code===`Space`&&(k.current=!1,l.current?.classList.remove(`cursor-grab`))};return window.addEventListener(`keydown`,e),window.addEventListener(`keyup`,t),()=>{window.removeEventListener(`keydown`,e),window.removeEventListener(`keyup`,t)}},[]);let j=e=>{let t=e;return(t?.closest(`[data-shield]`))?.dataset.shield??(t?.closest(`[data-label]`))?.dataset.label??(t?.closest(`[data-item]`))?.dataset.item??null},ee=e=>{if(e.target.closest(`[data-ui]`)||e.button!==0&&e.button!==1)return;if(l.current.setPointerCapture(e.pointerId),D.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),r.interrupt(),D.current.size===2){let[e,t]=[...D.current.values()];O.current={dist:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2},E.current=null,A(!0);return}let t=e.button===1||k.current;E.current={id:t?null:j(e.target),startX:e.clientX,startY:e.clientY,lastX:e.clientX,lastY:e.clientY,moved:t},t&&A(!0)},te=e=>{if(D.current.has(e.pointerId)&&D.current.set(e.pointerId,{x:e.clientX,y:e.clientY}),O.current&&D.current.size===2){let[e,t]=[...D.current.values()],n=Math.hypot(e.x-t.x,e.y-t.y),i=(e.x+t.x)/2,a=(e.y+t.y)/2,o=l.current.getBoundingClientRect();r.panBy(i-O.current.midX,a-O.current.midY),r.zoomAt(i-o.left,a-o.top,n/Math.max(O.current.dist,1)),O.current={dist:n,midX:i,midY:a};return}let t=E.current;if(!t){if(!n.get().panning){let t=j(e.target);n.get().hovered!==t&&n.set(e=>({...e,hovered:t}))}return}!t.moved&&Math.hypot(e.clientX-t.startX,e.clientY-t.startY)>3&&(t.moved=!0,A(!0)),t.moved&&r.panBy(e.clientX-t.lastX,e.clientY-t.lastY),t.lastX=e.clientX,t.lastY=e.clientY},M=e=>{D.current.delete(e.pointerId),D.current.size<2&&(O.current=null);let t=E.current;E.current=null,t&&!t.moved&&c(t.id,{x:e.clientX,y:e.clientY}),D.current.size||A(!1)};(0,v.useEffect)(()=>{let e=l.current,t=t=>{if(t.target.closest(`[data-ui]`))return;t.preventDefault();let n=e.getBoundingClientRect(),i=t.deltaMode===1?16:t.deltaMode===2?n.height:1;if(t.ctrlKey||t.metaKey){let e=t.deltaY*i,a=Math.abs(e)<40?.012:.0025;r.zoomAt(t.clientX-n.left,t.clientY-n.top,Math.exp(-e*a))}else r.panBy(-t.deltaX*i,-t.deltaY*i)};return e.addEventListener(`wheel`,t,{passive:!1}),()=>e.removeEventListener(`wheel`,t)},[r]);let N=e.sections;return(0,R.jsxs)(`div`,{ref:l,className:X(`canvas-root relative h-full w-full touch-none overflow-hidden select-none`,h&&`canvas-panning cursor-grabbing`),onPointerDown:ee,onPointerMove:te,onPointerUp:M,onPointerCancel:M,onPointerLeave:()=>n.get().hovered&&n.set(e=>({...e,hovered:null})),onDoubleClick:t=>{let n=j(t.target),r=n?e.items.find(e=>e.item.id===n):void 0;r&&BT(r.item)&&s(r.item.id)},children:[(0,R.jsx)(`div`,{ref:d,className:`canvas-grid`}),(0,R.jsxs)(`div`,{ref:u,className:`canvas-world`,children:[N.map(e=>(0,R.jsx)($D,{section:e.section,x:e.x,y:e.y,w:e.w,store:n},`section:${e.section.id}`)),e.items.map(e=>{let{item:r}=e;return r.kind===`screen`||r.kind===`url`?(0,R.jsx)(YD,{placed:e,mode:T.get(r.id)??`off`,thumb:!a&&!!p&&e.w*p.z*devicePixelRatio<=uO,theme:t,store:n,events:i,capture:a},r.id):r.kind===`note`?(0,R.jsx)(ZD,{placed:e,store:n},r.id):(0,R.jsx)(QD,{placed:e,store:n},r.id)})]}),(0,R.jsx)(aO,{layout:e,view:p,store:n,overlayRef:f})]})}function _O(e){return Object.keys(e).filter(t=>e[t].ready).sort().join(`
|
|
127
|
-
`)}function vO(e){let t=e;return!!t&&(t.isContentEditable||/^(input|textarea|select)$/i.test(t.tagName))}var yO=new URLSearchParams(window.location.search),bO=yO.has(`capture`),xO=(e,t)=>`foss-design.camera.${e}.${t}`;function SO(e){try{let t=JSON.parse(sessionStorage.getItem(e)??`null`);if(t&&Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(t.z))return t}catch{}return null}function CO(e){let t=__(),n=yO.get(`theme`),[r,i]=(0,v.useState)(n===`dark`||n===`light`?n:null);return[r??e?.theme??t,i]}function wO({canvasId:e,pageId:t}){let{data:n,error:r,isLoading:i}=e_(e);if(r)return(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message});if(i||!n)return(0,R.jsx)(`div`,{className:`canvas-dots grow`});let a=t??yO.get(`page`)??void 0,o=n.pages.find(e=>e.id===a)??n.pages[0];return(0,R.jsx)(TO,{canvas:n,page:o},`${n.id}/${o?.id??``}`)}function TO({canvas:e,page:t}){let[,n]=F(),r=(0,v.useMemo)(()=>GT(),[]),i=(0,v.useMemo)(()=>new Mw,[]),a=(0,v.useRef)(null),[o,s]=CO(e),[c,l]=(0,v.useState)(()=>!bO&&window.innerWidth>900),[u,d]=(0,v.useState)(!1),f=c_(r,e=>e.sizes),p=(0,v.useMemo)(()=>t?UT(t,f):{items:[],sections:[],bounds:{x:0,y:0,w:0,h:0}},[t,f]),m=kO(c_(r,e=>e.frameEls),p),h=JC(m),g=u||h;(0,v.useEffect)(()=>{r.set(e=>e.inspecting===g?e:{...e,inspecting:g,active:null})},[g,r]);let _=qC(m,g,{onEscape:()=>d(!1)}),y=!!_.info;(0,v.useEffect)(()=>{y&&d(!0)},[y]),(0,v.useEffect)(()=>{let e=_.frame;if(!e)return;let t=Object.entries(r.get().frameEls).find(([,t])=>t===e)?.[0];t&&r.get().selected!==t&&r.set(e=>({...e,selected:t}))},[_.frame,r]);let b=(0,v.useMemo)(()=>WT(p),[p]),x=xO(e.id,t?.id??``),S=(0,v.useRef)(!1);(0,v.useEffect)(()=>{if(S.current||!p.bounds.w)return;S.current=!0;let t=o_(e.id),n=bO?null:SO(x);t?(r.set(e=>({...e,selected:t})),requestAnimationFrame(()=>a.current?.fitItem(t,!1))):n&&n.z>=i.minZoom?i.set(n):requestAnimationFrame(()=>bO?a.current?.fitAll(!1):a.current?.openView())},[p,i,x,e.id,r]),(0,v.useEffect)(()=>{if(bO)return;let e,t=i.subscribe(t=>{clearTimeout(e),e=setTimeout(()=>sessionStorage.setItem(x,JSON.stringify(t)),250)});return()=>{t(),clearTimeout(e)}},[i,x]);let C=(0,v.useCallback)(e=>{let t=e?p.items.find(t=>t.item.id===e)?.item:void 0;r.set(e=>({...e,selected:t?t.id:null,active:t&&BT(t)?t.id:null,hovered:null}))},[p,r]),w=(0,v.useCallback)(e=>{C(e),a.current?.fitItem(e)},[C]),T=(0,v.useCallback)(r=>n(`/c/${encodeURIComponent(e.id)}/play/${encodeURIComponent(r)}${t?`?page=${encodeURIComponent(t.id)}`:``}`),[e.id,t,n]);(0,v.useEffect)(()=>{let t=t=>{let n=t.detail;n.canvas===e.id&&p.items.some(e=>e.item.id===n.item)&&(o_(e.id),w(n.item))};return window.addEventListener(`design:focus`,t),()=>window.removeEventListener(`design:focus`,t)},[e.id,p,w]);let E=(0,v.useMemo)(()=>({onGo(r,i){let[a,o]=i.includes(`/`)?i.split(`/`):[null,i],s=a?e.pages.filter(e=>e.id===a):[t,...e.pages.filter(e=>e!==t)];for(let r of s)if(r&&r.sections.some(e=>e.items.some(e=>e.id===o))){r===t?w(o):(n(AT(e,r)),window.dispatchEvent(new CustomEvent(`design:focus`,{detail:{canvas:e.id,item:o}})));return}console.warn(`[design] go("${i}"): no such screen`)},onLink(t,n){KC(n,e,e=>this.onGo(t,e))},onWheel(e,t){let n=e.closest(`.canvas-root`);if(!n)return;let r=n.getBoundingClientRect(),a=e.getBoundingClientRect(),o=i.camera.z;if(t.zoom){let e=Math.abs(t.deltaY)<40?.012:.0025;i.zoomAt(a.left-r.left+t.x*o,a.top-r.top+t.y*o,Math.exp(-t.deltaY*e))}else i.panBy(-t.deltaX,-t.deltaY)},onEscape(){r.set(e=>({...e,active:null}))}}),[e,t,i,r,w,n]);return(0,v.useEffect)(()=>{if(!bO)return;let e=Date.now(),t=setInterval(()=>{let n=r.get().frames;(b.every(e=>n[e.item.id]?.ready||e.item.kind===`screen`&&e.item.missing)||Date.now()-e>6e4)&&(clearInterval(t),a.current?.fitAll(!1),requestAnimationFrame(()=>requestAnimationFrame(()=>window.__DESIGN_CANVAS_READY__=!0)))},250);return()=>clearInterval(t)},[b,r]),(0,v.useEffect)(()=>{let i=i=>{if(vO(i.target)||document.querySelector(`[role="dialog"]`))return;let o=a.current,s=r.get(),c=i.metaKey||i.ctrlKey;if(i.key===`Escape`)_.info?_.select(null):u?d(!1):s.active?r.set(e=>({...e,active:null})):s.selected&&r.set(e=>({...e,selected:null}));else if(i.key===`i`&&!c&&!i.altKey)d(e=>!e);else if(i.shiftKey&&i.code===`Digit1`)o?.fitAll();else if(i.shiftKey&&i.code===`Digit2`&&s.selected)o?.fitItem(s.selected);else if(i.shiftKey&&i.code===`Digit0`)o?.zoomTo(1);else if((i.key===`=`||i.key===`+`)&&!i.altKey)i.preventDefault(),o?.zoomBy(1.4);else if(i.key===`-`&&!i.altKey)i.preventDefault(),o?.zoomBy(1/1.4);else if(c&&i.key===`0`)i.preventDefault(),o?.zoomTo(1);else if(c&&i.key===`\\`)i.preventDefault(),l(e=>!e);else if([`ArrowRight`,`ArrowDown`,`ArrowLeft`,`ArrowUp`].includes(i.key)&&b.length){i.preventDefault();let e=b.findIndex(e=>e.item.id===s.selected),t=i.key===`ArrowRight`||i.key===`ArrowDown`?1:-1,n=b[e===-1?0:(e+t+b.length)%b.length];r.set(e=>({...e,selected:n.item.id,active:null})),o?.fitItem(n.item.id)}else if(i.key===`Enter`&&s.selected){let e=p.items.find(e=>e.item.id===s.selected)?.item;e&&BT(e)&&T(e.id)}else if(i.key===`]`||i.key===`[`){let r=t?e.pages.indexOf(t):-1,a=e.pages[r+(i.key===`]`?1:-1)];a&&n(AT(e,a))}};return window.addEventListener(`keydown`,i),()=>window.removeEventListener(`keydown`,i)},[r,b,p,T,e,t,n,u,_]),bO?(0,R.jsx)(`div`,{className:`flex h-dvh`,children:(0,R.jsx)(gO,{layout:p,theme:o,store:r,camera:i,events:E,capture:!0,apiRef:a,onPlay:()=>{},onSelect:()=>{}})}):(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(MT,{canvas:e,page:t,theme:o,onTheme:s,sidebar:c,onSidebar:l,inspect:u,onInspect:d,onPlay:()=>{let e=r.get().selected,t=e&&b.find(t=>t.item.id===e)||b[0];t&&T(t.item.id)},canPlay:b.length>0}),(0,R.jsxs)(`div`,{className:`flex min-h-0 grow`,children:[(0,R.jsx)(Sw,{open:c&&!!t,side:`left`,width:264,children:t?(0,R.jsx)(jT,{canvas:e,page:t,store:r,onPick:w}):null}),(0,R.jsxs)(`div`,{className:`relative min-w-0 grow`,children:[t&&p.items.length?(0,R.jsx)(gO,{layout:p,theme:o,store:r,camera:i,events:E,capture:!1,apiRef:a,onPlay:T,onSelect:C}):(0,R.jsx)(`div`,{className:`canvas-dots flex h-full`,children:(0,R.jsx)(Ow,{title:t?`This page is empty`:`This canvas has no pages`,text:(0,R.jsxs)(R.Fragment,{children:[`Add sections and screens to`,` `,(0,R.jsxs)(`code`,{className:`font-mono text-[13px]`,children:[`.design/canvas/`,e.id,`/canvas.json`]}),`.`]})})}),(0,R.jsx)(NT,{canvas:e,store:r,layoutItems:p.items.map(e=>e.item),theme:o,onPlay:T,inspect:g}),(0,R.jsx)(DO,{camera:i,apiRef:a}),e.issues.length?(0,R.jsx)(OO,{canvas:e}):null]}),(0,R.jsx)(Sw,{open:u,side:`right`,width:320,children:(0,R.jsx)(iw,{info:_.info,active:!0,onSelect:e=>_.select(e),onClose:()=>{d(!1),_.select(null)}})})]})]})}function EO({camera:e}){let[t,n]=(0,v.useState)(e.camera.z);return(0,v.useEffect)(()=>{let t=0;return e.subscribe(e=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>n(e.z))})},[e]),(0,R.jsxs)(R.Fragment,{children:[Math.round(t*100),`%`]})}function DO({camera:e,apiRef:t}){return(0,R.jsxs)(`div`,{"data-ui":!0,className:`absolute right-4 bottom-5 z-20 flex h-[46px] items-center gap-0.5 rounded-[10px] border border-rule bg-surface px-1.5 shadow-pop`,children:[(0,R.jsx)(N_,{icon:`zoom-out`,label:`Zoom out (−)`,onClick:()=>t.current?.zoomBy(1/1.4)}),(0,R.jsxs)(VS,{side:`top`,align:`end`,width:210,trigger:(0,R.jsx)(`button`,{type:`button`,className:`h-ctrl min-w-[56px] cursor-pointer rounded-[6px] border-0 bg-transparent px-1.5 text-[12.5px] font-medium text-ink2 tabular hover:bg-soft2`,children:(0,R.jsx)(EO,{camera:e})}),children:[(0,R.jsx)(US,{onSelect:()=>t.current?.fitAll(),hint:`⇧1`,children:`Zoom to fit`}),(0,R.jsx)(US,{onSelect:()=>t.current?.zoomTo(1),hint:`⇧0`,children:`100%`}),(0,R.jsx)(WS,{}),[.25,.5,2].map(e=>(0,R.jsxs)(US,{onSelect:()=>t.current?.zoomTo(e),children:[e*100,`%`]},e))]}),(0,R.jsx)(N_,{icon:`zoom-in`,label:`Zoom in (+)`,onClick:()=>t.current?.zoomBy(1.4)}),(0,R.jsx)(`div`,{className:`mx-0.5 h-5 w-px bg-rule`}),(0,R.jsx)(N_,{icon:`fit`,label:`Zoom to fit (⇧1)`,onClick:()=>t.current?.fitAll()})]})}function OO({canvas:e}){let t=e.issues.filter(e=>e.severity===`error`).length;return(0,R.jsxs)(EC,{children:[(0,R.jsx)(DC,{asChild:!0,children:(0,R.jsxs)(`button`,{type:`button`,"data-ui":!0,className:`absolute bottom-5 left-4 z-20 flex h-[46px] cursor-pointer items-center gap-2 rounded-[10px] border border-rule bg-surface px-3.5 text-[13px] font-medium shadow-pop hover:bg-soft`,children:[(0,R.jsx)(Z,{name:`alert`,size:15,className:t?`text-danger-text`:`text-action`}),e.issues.length,` `,e.issues.length===1?`problem`:`problems`,` in canvas.json`]})}),(0,R.jsx)(OC,{children:(0,R.jsx)(kC,{side:`top`,align:`start`,sideOffset:8,collisionPadding:12,className:`z-50 max-h-[50vh] w-[460px] max-w-[calc(100vw-24px)] overflow-y-auto rounded-[10px] border border-rule bg-surface shadow-pop outline-none data-[state=open]:animate-[q-pop_120ms_ease-out]`,children:(0,R.jsx)(yw,{issues:e.issues})})})]})}function kO(e,t){let n=(0,v.useRef)([]);return(0,v.useMemo)(()=>{let r=new Set(t.items.filter(e=>e.item.kind===`screen`).map(e=>e.item.id)),i=Object.entries(e).filter(e=>!!e[1]&&r.has(e[0])).map(([,e])=>e);return i.length===n.current.length&&i.every((e,t)=>e===n.current[t])||(n.current=i),n.current},[e,t])}function AO({open:e,onOpenChange:t,title:n,children:r}){return(0,R.jsx)(mg,{open:e,onOpenChange:t,children:(0,R.jsx)($u,{children:e?(0,R.jsxs)(vg,{forceMount:!0,children:[(0,R.jsx)(bg,{asChild:!0,forceMount:!0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.16},className:`fixed inset-0 z-50 bg-overlay`})}),(0,R.jsx)(wg,{asChild:!0,forceMount:!0,"aria-describedby":void 0,children:(0,R.jsxs)(Wf.div,{initial:{y:`100%`},animate:{y:0},exit:{y:`100%`,transition:{duration:.18,ease:`easeIn`}},transition:{type:`spring`,stiffness:420,damping:40},className:`fixed inset-x-0 bottom-0 z-50 flex max-h-[82dvh] flex-col rounded-t-[14px] border-t border-rule bg-surface pb-[env(safe-area-inset-bottom)] shadow-pop outline-none`,children:[(0,R.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,R.jsx)(`span`,{"aria-hidden":!0,className:`h-1 w-9 rounded-full bg-rule-strong`})}),(0,R.jsxs)(`div`,{className:`flex min-h-[48px] items-center justify-between gap-3 pr-2 pl-4`,children:[(0,R.jsx)(kg,{className:`m-0 truncate text-[15px] font-semibold`,children:n}),(0,R.jsx)(jg,{asChild:!0,children:(0,R.jsx)(N_,{icon:`x`,label:`Close`})})]}),(0,R.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain border-t border-rule`,children:r})]})})]}):null})})}function jO(e,t){return(t?e.pages.filter(e=>e.id===t):e.pages).flatMap(t=>t.sections.flatMap(n=>n.items.filter(e=>e.kind===`screen`||e.kind===`url`).map(r=>({item:r,pageId:t.id,where:[e.pages.length>1?t.title:null,n.title].filter(Boolean).join(` · `)}))))}var MO=(e,t,n)=>`/c/${encodeURIComponent(e)}/play/${encodeURIComponent(t)}?page=${encodeURIComponent(n)}`;function NO({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=e_(e);return r?(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message}):i||!n?null:(0,R.jsx)(PO,{canvas:n,itemId:t})}function PO({canvas:e,itemId:t}){let[,n]=F(),{frameSandbox:r,slots:i}=Xg(),a=new URLSearchParams(window.location.search).get(`page`)??(window.location.hash.split(`?`)[1]?new URLSearchParams(window.location.hash.split(`?`)[1]).get(`page`):null),o=(0,v.useMemo)(()=>jO(e,null),[e]),s=o.find(e=>e.item.id===t),c=a??s?.pageId??null,l=(0,v.useMemo)(()=>c?jO(e,c):o,[e,c,o]),u=l.findIndex(e=>e.item.id===t),d=__(),[f,p]=(0,v.useState)(e.theme??d),[m,h]=(0,v.useState)(`fit`),g=(0,v.useRef)(null),_=(0,v.useRef)(null),[y,b]=(0,v.useState)(null),x=(0,v.useCallback)(e=>{_.current=e,b(e)},[]),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)({w:0,h:0}),[E,D]=(0,v.useState)([]),O=c?`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(c)}`:`/c/${encodeURIComponent(e.id)}`,k=t=>{if(!l.length)return;let r=l[(u+t+l.length)%l.length];n(MO(e.id,r.item.id,r.pageId),{replace:!0})};(0,v.useLayoutEffect)(()=>{let e=g.current;if(!e)return;let t=new ResizeObserver(()=>T({w:e.clientWidth,h:e.clientHeight}));return t.observe(e),()=>t.disconnect()},[]),(0,v.useEffect)(()=>{let e=e=>{vO(e.target)||document.querySelector(`[role="dialog"]`)||(e.key===`ArrowRight`?k(1):e.key===`ArrowLeft`?k(-1):e.key===`i`&&!e.metaKey&&!e.ctrlKey&&!e.altKey?C(e=>!e):e.key===`Escape`&&(P.info?P.select(null):S?C(!1):n(O)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let A=l[u],j=A?.item,ee=j?.kind===`screen`?j.theme??f:f,te=DT(e.id,j,ee),[M]=(0,v.useState)(ee),N=j?j.kind===`screen`?WC(j.url,M):j.url:``,ne=(0,v.useMemo)(()=>y&&j?.kind===`screen`?[y]:[],[y,j?.kind]),re=JC(ne),P=qC(ne,S||re,{onEscape:()=>C(!1)}),ie=!!P.info;if((0,v.useEffect)(()=>{ie&&C(!0)},[ie]),(0,v.useEffect)(()=>{let t=_.current;if(t&&j?.kind===`screen`)return D([]),RC(t,t=>{if(t.type===`error`)D(e=>e.includes(t.message)?e:[...e,t.message]);else if(t.type===`updated`)D([]);else if(t.type===`keydown`&&t.code===`Escape`)n(O);else if(t.type===`go`){let[r,i]=t.target.includes(`/`)?t.target.split(`/`):[null,t.target],a=o.find(e=>e.item.id===i&&(!r||e.pageId===r));a&&n(MO(e.id,a.item.id,a.pageId))}else t.type===`link`&&KC(t,e,t=>{let r=o.find(e=>e.item.id===t);r&&n(MO(e.id,r.item.id,r.pageId))})})},[j,N,o,e.id,n,O]),(0,v.useEffect)(()=>{j?.kind===`screen`&&VC(_.current,ee)},[ee,j]),!j)return(0,R.jsx)(kw,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`});let ae=j.frame.width,oe=j.frame.height===`auto`?Math.max(w.h-48,400):j.frame.height,se=m===`fit`?Math.min(1,(w.w-48)/ae,(w.h-48)/oe):1,ce=ae<=w.w-48&&oe<=w.h-48;return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsxs)(XS,{children:[i.barStart,(0,R.jsx)(TT,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Back to canvas `,(0,R.jsx)(y_,{children:`esc`})]}),children:(0,R.jsx)(ye,{href:O,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,"aria-label":`Back to canvas`,children:(0,R.jsx)(Z,{name:`arrow-left`,size:16})})}),(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[(0,R.jsx)(`span`,{className:`truncate text-[14px] font-semibold`,children:j.title}),(0,R.jsx)(`span`,{className:`truncate text-[12px] text-muted`,children:[e.title,A.where].filter(Boolean).join(` · `)})]}),(0,R.jsxs)(`div`,{className:`mx-auto flex items-center gap-1`,children:[(0,R.jsx)(N_,{icon:`chevron-left`,label:`Previous screen (←)`,onClick:()=>k(-1),disabled:l.length<2}),(0,R.jsxs)(`span`,{className:`min-w-[52px] text-center text-[12.5px] text-muted tabular`,children:[u+1,` / `,l.length]}),(0,R.jsx)(N_,{icon:`chevron-right`,label:`Next screen (→)`,onClick:()=>k(1),disabled:l.length<2})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ce?null:(0,R.jsx)(Fw,{label:`Scale`,value:m,onChange:h,items:[{value:`fit`,label:`Fit`},{value:`actual`,label:`100%`}]}),j.kind===`screen`&&!j.theme?(0,R.jsx)(Fw,{label:`Screen theme`,value:f,onChange:p,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:15}),title:`Light`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:15}),title:`Dark`}]}):null,j.kind===`screen`?(0,R.jsx)(PT,{on:S,onChange:C}):null,(0,R.jsx)(N_,{icon:`refresh`,label:`Reload`,onClick:()=>HC(_.current)}),te?(0,R.jsx)(`a`,{href:te,target:`_blank`,rel:`noreferrer`,title:`Open in a new tab`,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,children:(0,R.jsx)(Z,{name:`external`,size:16})}):null,(0,R.jsx)(qS,{}),i.barEnd]})]}),i.belowBar,(0,R.jsxs)(`div`,{className:`flex min-h-0 grow`,children:[(0,R.jsxs)(`div`,{ref:g,className:`canvas-dots relative min-w-0 grow ${m===`actual`?`overflow-auto`:`overflow-hidden`}`,children:[E.length?(0,R.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px`}),E.join(`
|
|
128
|
-
`)]}):null,(0,R.jsx)(`div`,{className:`flex min-h-full min-w-full items-center justify-center p-6`,style:{width:m===`actual`?ae+48:void 0},children:(0,R.jsx)(`div`,{className:`shrink-0 overflow-hidden bg-surface`,style:{width:ae*se,height:oe*se,boxShadow:`var(--shadow-frame), 0 0 0 1px var(--rule)`},children:(0,R.jsx)(`iframe`,{ref:x,src:N,title:j.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:r,className:`block border-0`,style:{width:ae,height:oe,transform:`scale(${se})`,transformOrigin:`0 0`,colorScheme:ee},onLoad:()=>j.kind===`screen`&&VC(_.current,ee)},`${j.id}:${j.kind===`screen`?j.rev:j.url}`)})})]}),(0,R.jsx)(Sw,{open:S,side:`right`,width:320,children:(0,R.jsx)(iw,{info:P.info,active:!0,onSelect:e=>P.select(e),onClose:()=>{C(!1),P.select(null)}})})]})]})}var FO=12;function IO({canvasId:e,pageId:t,itemId:n}){let{data:r,error:i,isLoading:a}=e_(e);return i?(0,R.jsx)(kw,{title:`Canvas not found`,text:i.message}):a||!r?(0,R.jsx)(`div`,{className:`canvas-dots h-dvh`}):(0,R.jsx)(LO,{canvas:r,pageId:t,itemId:n})}function LO({canvas:e,pageId:t,itemId:n}){let[,r]=F(),{frameSandbox:i,slots:a,scope:o}=Xg(),s=__(),c=(0,v.useMemo)(()=>jO(e,null),[e]),l=Math.max(0,n?c.findIndex(e=>e.item.id===n):t?c.findIndex(e=>e.pageId===t):0),u=c[l],d=u?.item,[f,p]=(0,v.useState)(e.theme??s),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)([]),[y,b]=(0,v.useState)(0),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(0),[T,E]=(0,v.useState)(!1),D=(0,v.useRef)(null),O=(0,v.useRef)(null),[k,A]=(0,v.useState)(null),j=(0,v.useCallback)(e=>{e&&(O.current=e,A(e))},[]),ee=(0,v.useCallback)((t,n=0)=>{w(n),r(MO(e.id,t.item.id,t.pageId),{replace:!0})},[e.id,r]),te=e=>{c.length<2||ee(c[(l+e+c.length)%c.length],e)},M=e=>{let t=c.find(t=>t.item.id===e);t&&ee(t,c.indexOf(t)>l?1:-1)};(0,v.useLayoutEffect)(()=>{let e=D.current;if(!e)return;let t=new ResizeObserver(()=>b(e.clientWidth));return t.observe(e),()=>t.disconnect()},[]);let N=d?.kind===`screen`?d.theme??f:f,[ne]=(0,v.useState)(N),re=d?d.kind===`screen`?WC(d.url,ne):d.url:``,P=DT(e.id,d,N);(0,v.useEffect)(()=>{_([]),S(d?.kind===`screen`?d.measuredHeight??null:null),D.current?.scrollTo({top:0});let t=O.current;if(t&&d?.kind===`screen`)return RC(t,t=>{t.type===`size`?S(t.height):t.type===`error`?_(e=>e.includes(t.message)?e:[...e,t.message]):t.type===`updated`?_([]):t.type===`go`?M(t.target.includes(`/`)?t.target.split(`/`)[1]:t.target):t.type===`link`&&KC(t,e,M)})},[k,re]),(0,v.useEffect)(()=>{d?.kind===`screen`&&VC(O.current,N)},[N,d]),(0,v.useEffect)(()=>{let e=e=>{document.querySelector(`[role="dialog"]`)||(e.key===`ArrowRight`?te(1):e.key===`ArrowLeft`&&te(-1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let ie=(0,v.useRef)(null),ae=e=>{let t=e.touches[0];ie.current=t?{x:t.clientX,y:t.clientY}:null},oe=e=>{let t=ie.current,n=e.changedTouches[0];if(ie.current=null,!t||!n)return;let r=n.clientX-t.x,i=n.clientY-t.y;Math.abs(r)>56&&Math.abs(r)>Math.abs(i)*1.5&&te(r<0?1:-1)};if(!d||!u)return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(zO,{canvas:e,title:e.title,sub:null}),(0,R.jsx)(kw,{title:`No screens here`,text:`This canvas has no screens to show yet.`})]});let se=d.frame.width,ce=y?Math.min(1,(y-24)/se):0,le=ce>0&&ce<.8,ue=le&&T?1:ce,de=d.frame.height===`auto`?Math.max(x??0,480):d.frame.height,fe=d.kind===`screen`&&!d.theme;return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(zO,{canvas:e,title:d.title||d.id,sub:[e.title,u.where].filter(Boolean).join(` · `),back:o?void 0:`/`,end:(0,R.jsxs)(R.Fragment,{children:[le?(0,R.jsx)(N_,{icon:T?`zoom-out`:`zoom-in`,label:T?`Fit to width`:`Actual size`,onClick:()=>E(e=>!e)}):null,(0,R.jsxs)(VS,{align:`end`,width:220,trigger:(0,R.jsx)(N_,{icon:`more`,label:`Screen options`}),children:[fe?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(GS,{children:`Screen theme`}),(0,R.jsx)(RO,{value:`light`,current:f,onPick:p}),(0,R.jsx)(RO,{value:`dark`,current:f,onPick:p}),(0,R.jsx)(WS,{})]}):null,(0,R.jsxs)(US,{onSelect:()=>HC(O.current),children:[(0,R.jsx)(Z,{name:`refresh`,size:15,className:`text-ink2`}),`Reload screen`]}),P?(0,R.jsxs)(US,{onSelect:()=>window.open(P,`_blank`,`noopener`),children:[(0,R.jsx)(Z,{name:`external`,size:15,className:`text-ink2`}),`Open in a new tab`]}):null,(0,R.jsxs)(US,{onSelect:()=>h_(s===`dark`?`light`:`dark`),children:[(0,R.jsx)(Z,{name:s===`dark`?`sun`:`moon`,size:15,className:`text-ink2`}),s===`dark`?`Light appearance`:`Dark appearance`]})]}),a.barEnd]})}),a.belowBar,(0,R.jsxs)(`div`,{ref:D,onTouchStart:ae,onTouchEnd:oe,className:X(`canvas-dots relative min-h-0 grow overflow-y-auto overscroll-contain`,le&&T?`overflow-x-auto`:`overflow-x-hidden`),children:[g.length?(0,R.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px shrink-0`}),(0,R.jsx)(`span`,{className:`min-w-0 break-words`,children:g.join(`
|
|
129
|
-
`)})]}):null,(0,R.jsx)($u,{initial:!1,mode:`popLayout`,custom:C,children:(0,R.jsx)(Wf.div,{custom:C,initial:{opacity:0,x:C*40},animate:{opacity:1,x:0},exit:{opacity:0,x:C*-40,transition:{duration:.12}},transition:{type:`spring`,stiffness:420,damping:38},className:X(`flex`,le&&T?`w-max`:`justify-center`),style:{padding:FO},children:ue?(0,R.jsx)(`div`,{className:`shrink-0 overflow-hidden rounded-[6px] bg-surface`,style:{width:se*ue,height:de*ue,boxShadow:`var(--shadow-frame), 0 0 0 1px var(--rule)`},children:(0,R.jsx)(`iframe`,{ref:j,src:re,title:d.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:i,className:`block border-0`,style:{width:se,height:de,transform:`scale(${ue})`,transformOrigin:`0 0`,colorScheme:N},onLoad:()=>d.kind===`screen`&&VC(O.current,N)},`${d.id}:${d.kind===`screen`?d.rev:d.url}`)}):null},d.id)})]}),(0,R.jsxs)(`nav`,{"aria-label":`Screens`,className:`flex shrink-0 items-center gap-1 border-t border-rule bg-surface px-2 pt-1.5 pb-[max(6px,env(safe-area-inset-bottom))]`,children:[(0,R.jsx)(N_,{icon:`chevron-left`,label:`Previous screen`,onClick:()=>te(-1),disabled:c.length<2}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>h(!0),className:`flex h-10 min-w-0 grow cursor-pointer items-center justify-center gap-2 rounded-[8px] border-0 bg-transparent px-3 text-[13.5px] text-ink active:bg-soft2`,children:[(0,R.jsx)(Z,{name:`list`,size:15,className:`shrink-0 text-muted`}),(0,R.jsxs)(`span`,{className:`tabular shrink-0 text-muted`,children:[l+1,` / `,c.length]}),(0,R.jsx)(`span`,{className:`min-w-0 truncate font-medium`,children:d.title||d.id})]}),(0,R.jsx)(N_,{icon:`chevron-right`,label:`Next screen`,onClick:()=>te(1),disabled:c.length<2})]}),(0,R.jsx)(AO,{open:m,onOpenChange:h,title:e.title,children:(0,R.jsx)(VO,{canvas:e,current:d.id,onPick:e=>{h(!1),M(e)}})})]})}function RO({value:e,current:t,onPick:n}){return(0,R.jsxs)(US,{active:t===e,onSelect:()=>n(e),children:[(0,R.jsx)(Z,{name:e===`dark`?`moon`:`sun`,size:15,className:`text-ink2`}),e===`dark`?`Dark`:`Light`,t===e?(0,R.jsx)(Z,{name:`check`,size:15,className:`ml-auto text-ink2`}):null]})}function zO({canvas:e,title:t,sub:n,back:r,end:i}){let{slots:a}=Xg();return(0,R.jsxs)(`header`,{className:`flex h-[52px] shrink-0 items-center gap-2 border-b border-rule bg-surface pr-2 pl-2 pt-[env(safe-area-inset-top)]`,children:[a.barStart,r?(0,R.jsx)(ye,{href:r,"aria-label":`All canvases, leaving ${e.title}`,className:`inline-flex size-10 shrink-0 items-center justify-center rounded-[8px] text-ink2 active:bg-soft2`,children:(0,R.jsx)(Z,{name:`arrow-left`,size:18})}):(0,R.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center`,children:(0,R.jsx)(JS,{})}),(0,R.jsxs)(`div`,{className:`flex min-w-0 grow flex-col leading-tight`,children:[(0,R.jsx)(`span`,{className:`truncate text-[14.5px] font-semibold`,children:t}),n?(0,R.jsx)(`span`,{className:`truncate text-[12px] text-muted`,children:n}):null]}),(0,R.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:i})]})}var BO=e=>e.item.kind===`url`?`globe`:e.item.frame.device===`phone`?`smartphone`:e.item.frame.device===`tablet`?`tablet`:`monitor`;function VO({canvas:e,current:t,onPick:n}){let r=(0,v.useRef)(null);(0,v.useEffect)(()=>{r.current?.scrollIntoView({block:`center`})},[]);let i=e.pages.length>1;return(0,R.jsx)(`div`,{className:`flex flex-col pb-2`,children:e.pages.map(a=>{let o=jO(e,a.id);return o.length?(0,R.jsxs)(`section`,{className:`flex flex-col`,children:[i?(0,R.jsx)(`h3`,{className:`sticky top-0 z-[1] m-0 border-b border-rule bg-soft px-4 py-2 text-[12px] font-semibold text-ink2`,children:a.title}):null,a.sections.map(e=>{let i=o.filter(t=>e.items.includes(t.item));return i.length?(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.title}):null,i.map(e=>{let i=e.item.id===t;return(0,R.jsxs)(`button`,{ref:i?r:void 0,type:`button`,"aria-current":i?`true`:void 0,onClick:()=>n(e.item.id),className:X(`flex min-h-[48px] cursor-pointer items-center gap-3 border-0 bg-transparent px-4 text-left text-[14px] active:bg-soft2`,i?`font-medium text-ink`:`text-ink2`),children:[(0,R.jsx)(`span`,{className:X(`flex size-8 shrink-0 items-center justify-center rounded-[8px]`,i?`bg-action-soft text-action`:`bg-soft2 text-muted`),children:(0,R.jsx)(Z,{name:BO(e),size:15})}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.item.title||e.item.id}),i?(0,R.jsx)(Z,{name:`check`,size:16,className:`shrink-0 text-action`}):null]},e.item.id)})]},e.id):null})]},a.id):null})})}var HO=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60]],UO=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`});function WO(e){if(!e)return``;let t=(e-Date.now())/1e3;for(let[e,n]of HO)if(Math.abs(t)>=n)return UO.format(Math.round(t/n),e);return`just now`}function GO(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(+(e<10240))} KB`:`${(e/1024/1024).toFixed(1)} MB`}function KO(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function qO({className:e,style:t}){return(0,R.jsx)(`span`,{"aria-hidden":`true`,className:X(`block animate-pulse rounded-[6px] bg-soft2`,e),style:t})}function JO({rows:e=3,lead:t=28,minH:n=56}){return(0,R.jsx)(`div`,{role:`status`,"aria-label":`Loading`,children:Array.from({length:e},(e,r)=>(0,R.jsxs)(`div`,{className:`flex items-center gap-3 border-t border-rule px-4`,style:{minHeight:n,opacity:1-r*.18},children:[t?(0,R.jsx)(qO,{style:{width:t,height:Math.min(t,n-20)}}):null,(0,R.jsxs)(`span`,{className:`flex min-w-0 grow flex-col gap-1.5`,children:[(0,R.jsx)(qO,{className:`h-3 w-[38%]`}),(0,R.jsx)(qO,{className:`h-2.5 w-[62%]`})]}),(0,R.jsx)(qO,{className:`h-3 w-14`})]},r))})}function YO({canvas:e}){return(0,R.jsx)(`div`,{className:`flex h-[54px] w-[86px] shrink-0 items-center justify-center overflow-hidden rounded-[6px] border border-rule bg-soft`,children:e.cover?(0,R.jsx)(`img`,{src:e.cover,alt:``,className:`h-full w-full object-cover object-top`}):(0,R.jsx)(Z,{name:`canvas`,size:18,className:`text-muted`})})}function XO({actions:e,children:t}){return e?(0,R.jsxs)(`div`,{className:`grid items-center border-t border-rule transition-colors hover:bg-soft`,style:{gridTemplateColumns:`minmax(0,1fr) auto`},children:[t,(0,R.jsx)(`div`,{className:`flex items-center gap-2 pr-4`,children:e})]}):t}function ZO({children:e}){return e?(0,R.jsx)(`div`,{className:`flex items-center gap-2.5 border-t border-rule bg-soft px-4 py-3 text-[12.5px] text-muted`,children:e}):null}function QO({project:e}){let{canvasRowActions:t,canvasesFoot:n}=Xg().slots,r=rC();return e.canvases.length?(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`,count:e.canvases.length}),e.canvases.map(e=>{let n=t?.(e.id);return(0,R.jsx)(XO,{actions:n,children:r?(0,R.jsxs)(gw,{to:`/c/${encodeURIComponent(e.id)}`,cols:`86px minmax(0,1fr)`,align:`ll`,pad:`10px 16px`,minH:74,first:!!n,children:[(0,R.jsx)(YO,{canvas:e}),(0,R.jsx)(b_,{top:e.title,bottom:(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[e.issues?(0,R.jsx)(ow,{tone:`danger`,children:KO(e.issues,`problem`)}):null,(0,R.jsxs)(`span`,{className:`truncate`,children:[KO(e.screens,`screen`),` · `,WO(e.updatedAt)]})]})})]}):(0,R.jsxs)(gw,{to:`/c/${encodeURIComponent(e.id)}`,cols:`86px minmax(0,1fr) auto auto`,align:`llrr`,pad:`10px 16px`,minH:74,first:!!n,children:[(0,R.jsx)(YO,{canvas:e}),(0,R.jsx)(b_,{top:e.title,bottom:(0,R.jsx)(`span`,{className:`truncate`,children:e.description??e.id})}),(0,R.jsxs)(`span`,{className:`flex items-center gap-2 text-[12.5px] whitespace-nowrap text-muted`,children:[e.issues?(0,R.jsx)(ow,{tone:`danger`,children:KO(e.issues,`problem`)}):null,KO(e.screens,`screen`),` · `,KO(e.pages,`page`)]}),(0,R.jsx)(`span`,{className:`w-[92px] text-[12.5px] whitespace-nowrap text-muted`,children:WO(e.updatedAt)})]})},e.id)}),(0,R.jsx)(ZO,{children:n})]}):(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`,count:0}),(0,R.jsx)(vw,{children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-2 py-6 text-center`,children:[(0,R.jsx)(`span`,{className:`text-[14px] text-ink2`,children:`No canvases yet.`}),(0,R.jsxs)(`span`,{className:`text-[13px] text-muted`,children:[`Ask your agent to design something, or run `,(0,R.jsx)(Q,{children:`design new <name>`}),` in the project.`]})]})}),(0,R.jsx)(ZO,{children:n})]})}function $O({project:e}){let t=e.system;return t?(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`,right:(0,R.jsx)(P_,{to:`/system`,children:`Open`})}),(0,R.jsxs)(vw,{gap:6,children:[(0,R.jsx)(`span`,{className:`text-[15px] font-semibold`,children:t.name}),t.description?(0,R.jsx)(`span`,{className:`text-[13px] text-ink2`,children:t.description}):null]}),(0,R.jsx)(_w,{label:`Tokens`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.tokens})}),(0,R.jsx)(_w,{label:`Components`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.components})}),(0,R.jsx)(_w,{label:`Guidelines`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.guidelines})}),t.issues?(0,R.jsx)(_w,{label:`Problems`,labelWidth:120,end:!0,children:(0,R.jsx)(ow,{tone:`danger`,children:t.issues})}):null]}):(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`}),(0,R.jsx)(vw,{children:(0,R.jsxs)(`span`,{className:`text-[13px] text-muted`,children:[`No design system yet. Ask your agent to build one from the codebase, or run `,(0,R.jsx)(Q,{children:`design system init`}),`.`]})})]})}function ek(){return(0,R.jsxs)(Cw,{children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-2.5 pt-1 pb-1`,children:[(0,R.jsx)(qO,{className:`h-6 w-[220px]`}),(0,R.jsx)(qO,{className:`h-3.5 w-[300px]`})]}),(0,R.jsxs)(`div`,{className:`grid items-start gap-5 max-lg:grid-cols-1!`,style:{gridTemplateColumns:`minmax(0,1fr) 340px`},children:[(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`}),(0,R.jsx)(JO,{rows:3,lead:86,minH:74})]}),(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`}),(0,R.jsx)(JO,{rows:3,lead:0,minH:40})]})]})]})}function tk(){let{data:e,error:t,isLoading:n}=$g(),{slots:r}=Xg();return t?(0,R.jsx)(Ow,{title:`Could not load the project`,text:t.message}):n||!e?(0,R.jsx)(ek,{}):(0,R.jsxs)(Cw,{children:[(0,R.jsx)(ww,{title:e.name,right:r.homeActions,sub:r.homeSub?r.homeSub:e.static?`Snapshot built with foss-design ${e.version}`:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(Q,{size:12.5,wrap:!0,children:[e.root,`/.design`]}),` `,`· foss-design `,e.version]})}),(0,R.jsx)(bw,{issues:e.issues,title:`Problems in design.json`}),(0,R.jsxs)(`div`,{className:`grid items-start gap-5 max-lg:grid-cols-1!`,style:{gridTemplateColumns:`minmax(0,1fr) 340px`},children:[(0,R.jsx)(QO,{project:e}),(0,R.jsx)($O,{project:e})]}),r.homeAfter]})}function nk(e){let t=e.utility;if(t===void 0)return[];let n=t?`-${t}`:``;switch(e.kind){case`color`:return[`bg${n}`,`text${n}`,`border${n}`];case`font`:return[`font${n}`];case`text`:return[`text${n}`];case`weight`:return[`font${n}`];case`leading`:return[`leading${n}`];case`tracking`:return[`tracking${n}`];case`spacing`:return t?[`p${n}`,`gap${n}`]:[`p-1`,`gap-4`,`m-2`];case`radius`:return[`rounded${n}`];case`shadow`:return e.name.startsWith(`--inset-shadow-`)?[`inset-shadow${n}`]:e.name.startsWith(`--drop-shadow-`)?[`drop-shadow${n}`]:e.name.startsWith(`--text-shadow-`)?[`text-shadow${n}`]:[`shadow${n}`];case`blur`:return[`blur${n}`,`backdrop-blur${n}`];case`ease`:return[`ease${n}`];case`animation`:return[`animate${n}`];case`breakpoint`:return e.name.startsWith(`--container-`)?[`@${t}:`,`max-w${n}`]:[`${t}:`];default:return[]}}function rk(e,...t){return e.filter(e=>t.includes(e.kind))}function ik(e){let t=new Map;for(let n of e){let e=t.get(n.group)??[];e.push(n),t.set(n.group,e)}return[...t].map(([e,t])=>({group:e,tokens:t}))}function ak(e){let t=/^(-?[\d.]+)(px|rem|em)?$/.exec(e.trim());if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?t[2]===`rem`||t[2]===`em`?n*16:n:null}function ok(e,t){return(t===`dark`?e.dark?.value:void 0)??e.light?.value}function sk(){let e=__(),[t,n]=(0,v.useState)(null);return[t??e,n]}function ck({value:e,onChange:t}){return(0,R.jsx)(Fw,{label:`Theme`,size:`sm`,value:e,onChange:t,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:14}),title:`Light`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:14}),title:`Dark`}]})}function lk({items:e}){return e.length?(0,R.jsx)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 gap-y-0.5`,children:e.map(e=>(0,R.jsx)(Q,{size:12,className:`text-muted`,children:e},e))}):null}function uk({title:e,children:t}){return(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:e}),(0,R.jsx)(vw,{children:(0,R.jsx)(`div`,{className:`py-4 text-[13px] text-muted`,children:t})})]})}var dk=`.design/system/tokens.css`;function fk({children:e,className:t}){return(0,R.jsx)(`span`,{className:`font-mono text-[12px] text-muted [overflow-wrap:anywhere] ${t??``}`,children:e})}function pk({asset:e,index:t}){if(e.kind===`image`)return(0,R.jsx)(`span`,{className:`checker flex h-[132px] items-center justify-center overflow-hidden border-b border-rule`,children:(0,R.jsx)(`img`,{src:e.url,alt:``,className:`max-h-[96px] max-w-[80%] object-contain`})});if(e.kind===`font`){let n=`design-asset-font-${t}`;return(0,R.jsxs)(`span`,{className:`flex h-[132px] items-center justify-center border-b border-rule bg-soft`,children:[(0,R.jsx)(`style`,{children:`@font-face{font-family:"${n}";src:url("${e.url.replace(/"/g,`%22`)}")}`}),(0,R.jsx)(`span`,{className:`text-[52px] leading-none text-ink`,style:{fontFamily:`"${n}", var(--font-sans)`},children:`Aa`})]})}return(0,R.jsx)(`span`,{className:`flex h-[132px] items-center justify-center border-b border-rule bg-soft text-muted`,children:(0,R.jsx)(Z,{name:`file`,size:28})})}function mk({system:e}){return e.assets.length?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Assets`,sub:`Click an asset to copy its import path.`}),(0,R.jsx)(`div`,{className:`grid gap-4`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(210px, 1fr))`},children:e.assets.map((e,t)=>(0,R.jsx)(`button`,{type:`button`,title:`Copy the import path`,onClick:()=>IC(`@system/${e.path}`),className:`block cursor-pointer border-0 bg-transparent p-0 text-left`,children:(0,R.jsxs)(cw,{className:`transition-colors hover:border-rule-strong`,children:[(0,R.jsx)(pk,{asset:e,index:t}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5 px-3.5 py-2.5`,children:[(0,R.jsx)(`span`,{className:`truncate text-[13.5px] font-medium text-ink`,children:e.name}),(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-[12.5px] text-muted`,children:[(0,R.jsx)(`span`,{className:`shrink-0`,children:GO(e.size)}),(0,R.jsx)(Q,{size:12,className:`truncate`,children:e.path})]})]})]})},e.path))})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Assets`}),(0,R.jsxs)(uk,{title:`No assets`,children:[`Put logos, icons, images and font files in `,(0,R.jsx)(Q,{children:`.design/system/assets`}),`; screens import them as`,` `,(0,R.jsx)(Q,{children:`@system/assets/…`}),`.`]})]})}function hk({color:e,label:t,className:n}){return e?(0,R.jsx)(`span`,{title:`${t}: ${e}`,className:X(`checker relative h-[30px] w-[44px] shrink-0 overflow-hidden rounded-[6px]`,n),children:(0,R.jsx)(`span`,{className:`absolute inset-0 rounded-[6px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.1)] dark:shadow-[inset_0_0_0_1px_rgba(255,255,255,0.12)]`,style:{background:e}})}):(0,R.jsx)(`span`,{className:X(`h-[30px] w-[44px] shrink-0`,n)})}function gk({tokens:e}){let t=e.some(e=>e.dark),n=t=>(0,R.jsxs)(`div`,{className:`relative flex h-9 min-w-0 grow overflow-hidden rounded-[6px]`,children:[(0,R.jsx)(`span`,{className:`pointer-events-none absolute inset-0 z-10 rounded-[6px] shadow-[inset_0_0_0_1px_var(--rule-strong)] opacity-60`}),e.map(e=>{let n=t===`dark`?e.dark?.value??e.light?.value:e.light?.value;return(0,R.jsx)(`button`,{type:`button`,title:`${e.name}: ${n}`,onClick:()=>IC(`var(${e.name})`),className:`h-full min-w-0 flex-1 cursor-pointer border-0 p-0 transition-[flex-grow] duration-150 hover:grow-[1.6]`,style:{background:n}},e.name)})]});return(0,R.jsxs)(`div`,{className:`flex flex-col gap-1.5 border-t border-rule px-4 py-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[t?(0,R.jsx)(`span`,{className:`w-9 shrink-0 text-[12px] text-muted`,children:`Light`}):null,n(`light`)]}),t?(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`span`,{className:`w-9 shrink-0 text-[12px] text-muted`,children:`Dark`}),n(`dark`)]}):null]})}function _k({token:e}){return(0,R.jsxs)(hw,{cols:`100px minmax(170px, 0.9fr) minmax(0, 1.4fr)`,minH:56,title:`Copy the variable`,onClick:()=>IC(`var(${e.name})`),children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(hk,{color:e.light?.value,label:`Light`}),e.dark?(0,R.jsx)(hk,{color:e.dark.value,label:`Dark`}):null]}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsx)(Q,{size:12.5,className:`truncate text-ink`,children:e.name}),(0,R.jsx)(lk,{items:nk(e).slice(0,2)})]}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-wrap gap-x-3`,children:[(0,R.jsx)(Q,{size:12,className:`text-muted`,children:e.light?.value}),e.dark?(0,R.jsxs)(Q,{size:12,className:`text-muted`,children:[`dark `,e.dark.value]}):null]}),e.description?(0,R.jsx)(`span`,{className:`text-[13px] text-ink2`,children:e.description}):null]})]})}function vk({system:e}){let t=rk(e.tokens,`color`),n=ik(t);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Colors`,sub:t.length?`${t.length} tokens · click a color to copy its variable`:void 0}),n.length?n.map(({group:e,tokens:t})=>(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:e,count:t.length}),(0,R.jsx)(gk,{tokens:t}),t.map(e=>(0,R.jsx)(_k,{token:e},e.name))]},e)):(0,R.jsxs)(uk,{title:`No color tokens`,children:[`Add them to `,(0,R.jsx)(Q,{children:dk}),`: light values in `,(0,R.jsx)(Q,{children:`:root`}),`, dark ones in`,` `,(0,R.jsx)(Q,{children:`:root[data-theme="dark"]`}),`, and map them to Tailwind with `,(0,R.jsx)(Q,{children:`--color-*`}),` in`,` `,(0,R.jsx)(Q,{children:`@theme inline`}),`.`]})]})}function yk({src:e,theme:t,title:n,minHeight:r=120,width:i,className:a}){let o=(0,v.useRef)(null),{frameSandbox:s}=Xg(),[c]=(0,v.useState)(()=>({src:e,theme:t})),l=WC(e,c.src===e?c.theme:t),[u,d]=(0,v.useState)(r),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)([]);return(0,v.useEffect)(()=>{let e=o.current;if(e)return p(!1),h([]),RC(e,e=>{e.type===`size`?d(Math.max(r,e.height)):e.type===`ready`?p(!0):e.type===`error`?h(t=>t.includes(e.message)?t:[...t,e.message]):e.type===`updated`&&h([])})},[r,l]),(0,v.useEffect)(()=>{VC(o.current,t)},[t]),(0,R.jsxs)(`div`,{className:X(`relative`,a),style:{width:i},children:[m.length?(0,R.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2.5 text-[12.5px] text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:15,className:`mt-px`}),(0,R.jsx)(`div`,{className:`min-w-0 font-mono break-words`,children:m.join(`
|
|
127
|
+
`)}function vO(e){let t=e;return!!t&&(t.isContentEditable||/^(input|textarea|select)$/i.test(t.tagName))}var yO=new URLSearchParams(window.location.search),bO=yO.has(`capture`),xO=(e,t)=>`foss-design.camera.${e}.${t}`;function SO(e){try{let t=JSON.parse(sessionStorage.getItem(e)??`null`);if(t&&Number.isFinite(t.x)&&Number.isFinite(t.y)&&Number.isFinite(t.z))return t}catch{}return null}function CO(e){let t=__(),n=yO.get(`theme`),[r,i]=(0,v.useState)(n===`dark`||n===`light`?n:null);return[r??e?.theme??t,i]}function wO({canvasId:e,pageId:t}){let{data:n,error:r,isLoading:i}=e_(e);if(r)return(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message});if(i||!n)return(0,R.jsx)(`div`,{className:`canvas-dots grow`});let a=t??yO.get(`page`)??void 0,o=n.pages.find(e=>e.id===a)??n.pages[0];return(0,R.jsx)(TO,{canvas:n,page:o},`${n.id}/${o?.id??``}`)}function TO({canvas:e,page:t}){let[,n]=F(),r=(0,v.useMemo)(()=>GT(),[]),i=(0,v.useMemo)(()=>new Mw,[]),a=(0,v.useRef)(null),[o,s]=CO(e),[c,l]=(0,v.useState)(()=>!bO&&window.innerWidth>900),[u,d]=(0,v.useState)(!1),f=c_(r,e=>e.sizes),p=(0,v.useMemo)(()=>t?UT(t,f):{items:[],sections:[],bounds:{x:0,y:0,w:0,h:0}},[t,f]),m=kO(c_(r,e=>e.frameEls),p),h=JC(m),g=u||h;(0,v.useEffect)(()=>{r.set(e=>e.inspecting===g?e:{...e,inspecting:g,active:null})},[g,r]);let _=qC(m,g,{onEscape:()=>d(!1)}),y=!!_.info;(0,v.useEffect)(()=>{y&&d(!0)},[y]),(0,v.useEffect)(()=>{let e=_.frame;if(!e)return;let t=Object.entries(r.get().frameEls).find(([,t])=>t===e)?.[0];t&&r.get().selected!==t&&r.set(e=>({...e,selected:t}))},[_.frame,r]);let b=(0,v.useMemo)(()=>WT(p),[p]),x=xO(e.id,t?.id??``),S=(0,v.useRef)(!1);(0,v.useEffect)(()=>{if(S.current||!p.bounds.w)return;S.current=!0;let t=o_(e.id),n=bO?null:SO(x);t?(r.set(e=>({...e,selected:t})),requestAnimationFrame(()=>a.current?.fitItem(t,!1))):n&&n.z>=i.minZoom?i.set(n):requestAnimationFrame(()=>bO?a.current?.fitAll(!1):a.current?.openView())},[p,i,x,e.id,r]),(0,v.useEffect)(()=>{if(bO)return;let e,t=i.subscribe(t=>{clearTimeout(e),e=setTimeout(()=>sessionStorage.setItem(x,JSON.stringify(t)),250)});return()=>{t(),clearTimeout(e)}},[i,x]);let C=(0,v.useCallback)(e=>{let t=e?p.items.find(t=>t.item.id===e)?.item:void 0;r.set(e=>({...e,selected:t?t.id:null,active:t&&BT(t)?t.id:null,hovered:null}))},[p,r]),w=(0,v.useCallback)(e=>{C(e),a.current?.fitItem(e)},[C]),T=(0,v.useCallback)(r=>n(`/c/${encodeURIComponent(e.id)}/play/${encodeURIComponent(r)}${t?`?page=${encodeURIComponent(t.id)}`:``}`),[e.id,t,n]);(0,v.useEffect)(()=>{let t=t=>{let n=t.detail;n.canvas===e.id&&p.items.some(e=>e.item.id===n.item)&&(o_(e.id),w(n.item))};return window.addEventListener(`design:focus`,t),()=>window.removeEventListener(`design:focus`,t)},[e.id,p,w]);let E=(0,v.useMemo)(()=>({onGo(r,i){let[a,o]=i.includes(`/`)?i.split(`/`):[null,i],s=a?e.pages.filter(e=>e.id===a):[t,...e.pages.filter(e=>e!==t)];for(let r of s)if(r&&r.sections.some(e=>e.items.some(e=>e.id===o))){r===t?w(o):(n(AT(e,r)),window.dispatchEvent(new CustomEvent(`design:focus`,{detail:{canvas:e.id,item:o}})));return}console.warn(`[design] go("${i}"): no such screen`)},onLink(t,n){KC(n,e,e=>this.onGo(t,e))},onWheel(e,t){let n=e.closest(`.canvas-root`);if(!n)return;let r=n.getBoundingClientRect(),a=e.getBoundingClientRect(),o=i.camera.z;if(t.zoom){let e=Math.abs(t.deltaY)<40?.012:.0025;i.zoomAt(a.left-r.left+t.x*o,a.top-r.top+t.y*o,Math.exp(-t.deltaY*e))}else i.panBy(-t.deltaX,-t.deltaY)},onEscape(){r.set(e=>({...e,active:null}))}}),[e,t,i,r,w,n]);return(0,v.useEffect)(()=>{if(!bO)return;let e=Date.now(),t=setInterval(()=>{let n=r.get().frames;(b.every(e=>n[e.item.id]?.ready||e.item.kind===`screen`&&e.item.missing)||Date.now()-e>6e4)&&(clearInterval(t),a.current?.fitAll(!1),requestAnimationFrame(()=>requestAnimationFrame(()=>window.__DESIGN_CANVAS_READY__=!0)))},250);return()=>clearInterval(t)},[b,r]),(0,v.useEffect)(()=>{let i=i=>{if(vO(i.target)||document.querySelector(`[role="dialog"]`))return;let o=a.current,s=r.get(),c=i.metaKey||i.ctrlKey;if(i.key===`Escape`)_.info?_.select(null):u?d(!1):s.active?r.set(e=>({...e,active:null})):s.selected&&r.set(e=>({...e,selected:null}));else if(i.key===`i`&&!c&&!i.altKey)d(e=>!e);else if(i.shiftKey&&i.code===`Digit1`)o?.fitAll();else if(i.shiftKey&&i.code===`Digit2`&&s.selected)o?.fitItem(s.selected);else if(i.shiftKey&&i.code===`Digit0`)o?.zoomTo(1);else if((i.key===`=`||i.key===`+`)&&!i.altKey)i.preventDefault(),o?.zoomBy(1.4);else if(i.key===`-`&&!i.altKey)i.preventDefault(),o?.zoomBy(1/1.4);else if(c&&i.key===`0`)i.preventDefault(),o?.zoomTo(1);else if(c&&i.key===`\\`)i.preventDefault(),l(e=>!e);else if([`ArrowRight`,`ArrowDown`,`ArrowLeft`,`ArrowUp`].includes(i.key)&&b.length){i.preventDefault();let e=b.findIndex(e=>e.item.id===s.selected),t=i.key===`ArrowRight`||i.key===`ArrowDown`?1:-1,n=b[e===-1?0:(e+t+b.length)%b.length];r.set(e=>({...e,selected:n.item.id,active:null})),o?.fitItem(n.item.id)}else if(i.key===`Enter`&&s.selected){let e=p.items.find(e=>e.item.id===s.selected)?.item;e&&BT(e)&&T(e.id)}else if(i.key===`]`||i.key===`[`){let r=t?e.pages.indexOf(t):-1,a=e.pages[r+(i.key===`]`?1:-1)];a&&n(AT(e,a))}};return window.addEventListener(`keydown`,i),()=>window.removeEventListener(`keydown`,i)},[r,b,p,T,e,t,n,u,_]),bO?(0,R.jsx)(`div`,{className:`flex h-dvh`,children:(0,R.jsx)(gO,{layout:p,theme:o,store:r,camera:i,events:E,capture:!0,apiRef:a,onPlay:()=>{},onSelect:()=>{}})}):(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(MT,{canvas:e,page:t,theme:o,onTheme:s,sidebar:c,onSidebar:l,inspect:u,onInspect:d,onPlay:()=>{let e=r.get().selected,t=e&&b.find(t=>t.item.id===e)||b[0];t&&T(t.item.id)},canPlay:b.length>0}),(0,R.jsxs)(`div`,{className:`flex min-h-0 grow basis-0`,children:[(0,R.jsx)(Sw,{open:c&&!!t,side:`left`,width:264,children:t?(0,R.jsx)(jT,{canvas:e,page:t,store:r,onPick:w}):null}),(0,R.jsxs)(`div`,{className:`relative min-w-0 grow`,children:[t&&p.items.length?(0,R.jsx)(gO,{layout:p,theme:o,store:r,camera:i,events:E,capture:!1,apiRef:a,onPlay:T,onSelect:C}):(0,R.jsx)(`div`,{className:`canvas-dots flex h-full`,children:(0,R.jsx)(Ow,{title:t?`This page is empty`:`This canvas has no pages`,text:(0,R.jsxs)(R.Fragment,{children:[`Add sections and screens to`,` `,(0,R.jsxs)(`code`,{className:`font-mono text-[13px]`,children:[`.design/canvas/`,e.id,`/canvas.json`]}),`.`]})})}),(0,R.jsx)(NT,{canvas:e,store:r,layoutItems:p.items.map(e=>e.item),theme:o,onPlay:T,inspect:g}),(0,R.jsx)(DO,{camera:i,apiRef:a}),e.issues.length?(0,R.jsx)(OO,{canvas:e}):null]}),(0,R.jsx)(Sw,{open:u,side:`right`,width:320,children:(0,R.jsx)(iw,{info:_.info,active:!0,onSelect:e=>_.select(e),onClose:()=>{d(!1),_.select(null)}})})]})]})}function EO({camera:e}){let[t,n]=(0,v.useState)(e.camera.z);return(0,v.useEffect)(()=>{let t=0;return e.subscribe(e=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>n(e.z))})},[e]),(0,R.jsxs)(R.Fragment,{children:[Math.round(t*100),`%`]})}function DO({camera:e,apiRef:t}){return(0,R.jsxs)(`div`,{"data-ui":!0,className:`absolute right-4 bottom-5 z-20 flex h-[46px] items-center gap-0.5 rounded-[10px] border border-rule bg-surface px-1.5 shadow-pop`,children:[(0,R.jsx)(N_,{icon:`zoom-out`,label:`Zoom out (−)`,onClick:()=>t.current?.zoomBy(1/1.4)}),(0,R.jsxs)(VS,{side:`top`,align:`end`,width:210,trigger:(0,R.jsx)(`button`,{type:`button`,className:`h-ctrl min-w-[56px] cursor-pointer rounded-[6px] border-0 bg-transparent px-1.5 text-[12.5px] font-medium text-ink2 tabular hover:bg-soft2`,children:(0,R.jsx)(EO,{camera:e})}),children:[(0,R.jsx)(US,{onSelect:()=>t.current?.fitAll(),hint:`⇧1`,children:`Zoom to fit`}),(0,R.jsx)(US,{onSelect:()=>t.current?.zoomTo(1),hint:`⇧0`,children:`100%`}),(0,R.jsx)(WS,{}),[.25,.5,2].map(e=>(0,R.jsxs)(US,{onSelect:()=>t.current?.zoomTo(e),children:[e*100,`%`]},e))]}),(0,R.jsx)(N_,{icon:`zoom-in`,label:`Zoom in (+)`,onClick:()=>t.current?.zoomBy(1.4)}),(0,R.jsx)(`div`,{className:`mx-0.5 h-5 w-px bg-rule`}),(0,R.jsx)(N_,{icon:`fit`,label:`Zoom to fit (⇧1)`,onClick:()=>t.current?.fitAll()})]})}function OO({canvas:e}){let t=e.issues.filter(e=>e.severity===`error`).length;return(0,R.jsxs)(EC,{children:[(0,R.jsx)(DC,{asChild:!0,children:(0,R.jsxs)(`button`,{type:`button`,"data-ui":!0,className:`absolute bottom-5 left-4 z-20 flex h-[46px] cursor-pointer items-center gap-2 rounded-[10px] border border-rule bg-surface px-3.5 text-[13px] font-medium shadow-pop hover:bg-soft`,children:[(0,R.jsx)(Z,{name:`alert`,size:15,className:t?`text-danger-text`:`text-action`}),e.issues.length,` `,e.issues.length===1?`problem`:`problems`,` in canvas.json`]})}),(0,R.jsx)(OC,{children:(0,R.jsx)(kC,{side:`top`,align:`start`,sideOffset:8,collisionPadding:12,className:`z-50 max-h-[50vh] w-[460px] max-w-[calc(100vw-24px)] overflow-y-auto rounded-[10px] border border-rule bg-surface shadow-pop outline-none data-[state=open]:animate-[q-pop_120ms_ease-out]`,children:(0,R.jsx)(yw,{issues:e.issues})})})]})}function kO(e,t){let n=(0,v.useRef)([]);return(0,v.useMemo)(()=>{let r=new Set(t.items.filter(e=>e.item.kind===`screen`).map(e=>e.item.id)),i=Object.entries(e).filter(e=>!!e[1]&&r.has(e[0])).map(([,e])=>e);return i.length===n.current.length&&i.every((e,t)=>e===n.current[t])||(n.current=i),n.current},[e,t])}function AO({open:e,onOpenChange:t,title:n,children:r}){return(0,R.jsx)(mg,{open:e,onOpenChange:t,children:(0,R.jsx)($u,{children:e?(0,R.jsxs)(vg,{forceMount:!0,children:[(0,R.jsx)(bg,{asChild:!0,forceMount:!0,children:(0,R.jsx)(Wf.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.16},className:`fixed inset-0 z-50 bg-overlay`})}),(0,R.jsx)(wg,{asChild:!0,forceMount:!0,"aria-describedby":void 0,children:(0,R.jsxs)(Wf.div,{initial:{y:`100%`},animate:{y:0},exit:{y:`100%`,transition:{duration:.18,ease:`easeIn`}},transition:{type:`spring`,stiffness:420,damping:40},className:`fixed inset-x-0 bottom-0 z-50 flex max-h-[82dvh] flex-col rounded-t-[14px] border-t border-rule bg-surface pb-[env(safe-area-inset-bottom)] shadow-pop outline-none`,children:[(0,R.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,R.jsx)(`span`,{"aria-hidden":!0,className:`h-1 w-9 rounded-full bg-rule-strong`})}),(0,R.jsxs)(`div`,{className:`flex min-h-[48px] items-center justify-between gap-3 pr-2 pl-4`,children:[(0,R.jsx)(kg,{className:`m-0 truncate text-[15px] font-semibold`,children:n}),(0,R.jsx)(jg,{asChild:!0,children:(0,R.jsx)(N_,{icon:`x`,label:`Close`})})]}),(0,R.jsx)(`div`,{className:`min-h-0 overflow-y-auto overscroll-contain border-t border-rule`,children:r})]})})]}):null})})}function jO(e,t){return(t?e.pages.filter(e=>e.id===t):e.pages).flatMap(t=>t.sections.flatMap(n=>n.items.filter(e=>e.kind===`screen`||e.kind===`url`).map(r=>({item:r,pageId:t.id,where:[e.pages.length>1?t.title:null,n.title].filter(Boolean).join(` · `)}))))}var MO=(e,t,n)=>`/c/${encodeURIComponent(e)}/play/${encodeURIComponent(t)}?page=${encodeURIComponent(n)}`;function NO({canvasId:e,itemId:t}){let{data:n,error:r,isLoading:i}=e_(e);return r?(0,R.jsx)(kw,{title:`Canvas not found`,text:r.message}):i||!n?null:(0,R.jsx)(PO,{canvas:n,itemId:t})}function PO({canvas:e,itemId:t}){let[,n]=F(),{frameSandbox:r,slots:i}=Xg(),a=new URLSearchParams(window.location.search).get(`page`)??(window.location.hash.split(`?`)[1]?new URLSearchParams(window.location.hash.split(`?`)[1]).get(`page`):null),o=(0,v.useMemo)(()=>jO(e,null),[e]),s=o.find(e=>e.item.id===t),c=a??s?.pageId??null,l=(0,v.useMemo)(()=>c?jO(e,c):o,[e,c,o]),u=l.findIndex(e=>e.item.id===t),d=__(),[f,p]=(0,v.useState)(e.theme??d),[m,h]=(0,v.useState)(`fit`),g=(0,v.useRef)(null),_=(0,v.useRef)(null),[y,b]=(0,v.useState)(null),x=(0,v.useCallback)(e=>{_.current=e,b(e)},[]),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)({w:0,h:0}),[E,D]=(0,v.useState)([]),O=c?`/c/${encodeURIComponent(e.id)}/p/${encodeURIComponent(c)}`:`/c/${encodeURIComponent(e.id)}`,k=t=>{if(!l.length)return;let r=l[(u+t+l.length)%l.length];n(MO(e.id,r.item.id,r.pageId),{replace:!0})};(0,v.useLayoutEffect)(()=>{let e=g.current;if(!e)return;let t=new ResizeObserver(()=>T({w:e.clientWidth,h:e.clientHeight}));return t.observe(e),()=>t.disconnect()},[]),(0,v.useEffect)(()=>{let e=e=>{vO(e.target)||document.querySelector(`[role="dialog"]`)||(e.key===`ArrowRight`?k(1):e.key===`ArrowLeft`?k(-1):e.key===`i`&&!e.metaKey&&!e.ctrlKey&&!e.altKey?C(e=>!e):e.key===`Escape`&&(P.info?P.select(null):S?C(!1):n(O)))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let A=l[u],j=A?.item,ee=j?.kind===`screen`?j.theme??f:f,te=DT(e.id,j,ee),[M]=(0,v.useState)(ee),N=j?j.kind===`screen`?WC(j.url,M):j.url:``,ne=(0,v.useMemo)(()=>y&&j?.kind===`screen`?[y]:[],[y,j?.kind]),re=JC(ne),P=qC(ne,S||re,{onEscape:()=>C(!1)}),ie=!!P.info;if((0,v.useEffect)(()=>{ie&&C(!0)},[ie]),(0,v.useEffect)(()=>{let t=_.current;if(t&&j?.kind===`screen`)return D([]),RC(t,t=>{if(t.type===`error`)D(e=>e.includes(t.message)?e:[...e,t.message]);else if(t.type===`updated`)D([]);else if(t.type===`keydown`&&t.code===`Escape`)n(O);else if(t.type===`go`){let[r,i]=t.target.includes(`/`)?t.target.split(`/`):[null,t.target],a=o.find(e=>e.item.id===i&&(!r||e.pageId===r));a&&n(MO(e.id,a.item.id,a.pageId))}else t.type===`link`&&KC(t,e,t=>{let r=o.find(e=>e.item.id===t);r&&n(MO(e.id,r.item.id,r.pageId))})})},[j,N,o,e.id,n,O]),(0,v.useEffect)(()=>{j?.kind===`screen`&&VC(_.current,ee)},[ee,j]),!j)return(0,R.jsx)(kw,{title:`Screen not found`,text:`No screen "${t}" on this canvas.`});let ae=j.frame.width,oe=j.frame.height===`auto`?Math.max(w.h-48,400):j.frame.height,se=m===`fit`?Math.min(1,(w.w-48)/ae,(w.h-48)/oe):1,ce=ae<=w.w-48&&oe<=w.h-48;return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsxs)(XS,{children:[i.barStart,(0,R.jsx)(TT,{content:(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[`Back to canvas `,(0,R.jsx)(y_,{children:`esc`})]}),children:(0,R.jsx)(ye,{href:O,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,"aria-label":`Back to canvas`,children:(0,R.jsx)(Z,{name:`arrow-left`,size:16})})}),(0,R.jsxs)(`div`,{className:`flex min-w-0 flex-col leading-tight`,children:[(0,R.jsx)(`span`,{className:`truncate text-[14px] font-semibold`,children:j.title}),(0,R.jsx)(`span`,{className:`truncate text-[12px] text-muted`,children:[e.title,A.where].filter(Boolean).join(` · `)})]}),(0,R.jsxs)(`div`,{className:`mx-auto flex items-center gap-1`,children:[(0,R.jsx)(N_,{icon:`chevron-left`,label:`Previous screen (←)`,onClick:()=>k(-1),disabled:l.length<2}),(0,R.jsxs)(`span`,{className:`min-w-[52px] text-center text-[12.5px] text-muted tabular`,children:[u+1,` / `,l.length]}),(0,R.jsx)(N_,{icon:`chevron-right`,label:`Next screen (→)`,onClick:()=>k(1),disabled:l.length<2})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[ce?null:(0,R.jsx)(Fw,{label:`Scale`,value:m,onChange:h,items:[{value:`fit`,label:`Fit`},{value:`actual`,label:`100%`}]}),j.kind===`screen`&&!j.theme?(0,R.jsx)(Fw,{label:`Screen theme`,value:f,onChange:p,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:15}),title:`Light`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:15}),title:`Dark`}]}):null,j.kind===`screen`?(0,R.jsx)(PT,{on:S,onChange:C}):null,(0,R.jsx)(N_,{icon:`refresh`,label:`Reload`,onClick:()=>HC(_.current)}),te?(0,R.jsx)(`a`,{href:te,target:`_blank`,rel:`noreferrer`,title:`Open in a new tab`,className:`inline-flex h-ctrl w-ctrl items-center justify-center rounded-[6px] text-muted hover:bg-soft2 hover:text-ink2`,children:(0,R.jsx)(Z,{name:`external`,size:16})}):null,(0,R.jsx)(qS,{}),i.barEnd]})]}),i.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:i.belowBar}):null,(0,R.jsxs)(`div`,{className:`flex min-h-0 grow basis-0`,children:[(0,R.jsxs)(`div`,{ref:g,className:`canvas-dots relative min-w-0 grow ${m===`actual`?`overflow-auto`:`overflow-hidden`}`,children:[E.length?(0,R.jsxs)(`div`,{className:`absolute inset-x-0 top-0 z-10 flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px`}),E.join(`
|
|
128
|
+
`)]}):null,(0,R.jsx)(`div`,{className:`flex min-h-full min-w-full items-center justify-center p-6`,style:{width:m===`actual`?ae+48:void 0},children:(0,R.jsx)(`div`,{className:`shrink-0 overflow-hidden bg-surface`,style:{width:ae*se,height:oe*se,boxShadow:`var(--shadow-frame), 0 0 0 1px var(--rule)`},children:(0,R.jsx)(`iframe`,{ref:x,src:N,title:j.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:r,className:`block border-0`,style:{width:ae,height:oe,transform:`scale(${se})`,transformOrigin:`0 0`,colorScheme:ee},onLoad:()=>j.kind===`screen`&&VC(_.current,ee)},`${j.id}:${j.kind===`screen`?j.rev:j.url}`)})})]}),(0,R.jsx)(Sw,{open:S,side:`right`,width:320,children:(0,R.jsx)(iw,{info:P.info,active:!0,onSelect:e=>P.select(e),onClose:()=>{C(!1),P.select(null)}})})]})]})}var FO=12;function IO({canvasId:e,pageId:t,itemId:n}){let{data:r,error:i,isLoading:a}=e_(e);return i?(0,R.jsx)(kw,{title:`Canvas not found`,text:i.message}):a||!r?(0,R.jsx)(`div`,{className:`canvas-dots h-dvh`}):(0,R.jsx)(LO,{canvas:r,pageId:t,itemId:n})}function LO({canvas:e,pageId:t,itemId:n}){let[,r]=F(),{frameSandbox:i,slots:a,scope:o}=Xg(),s=__(),c=(0,v.useMemo)(()=>jO(e,null),[e]),l=Math.max(0,n?c.findIndex(e=>e.item.id===n):t?c.findIndex(e=>e.pageId===t):0),u=c[l],d=u?.item,[f,p]=(0,v.useState)(e.theme??s),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)([]),[y,b]=(0,v.useState)(0),[x,S]=(0,v.useState)(null),[C,w]=(0,v.useState)(0),[T,E]=(0,v.useState)(!1),D=(0,v.useRef)(null),O=(0,v.useRef)(null),[k,A]=(0,v.useState)(null),j=(0,v.useCallback)(e=>{e&&(O.current=e,A(e))},[]),ee=(0,v.useCallback)((t,n=0)=>{w(n),r(MO(e.id,t.item.id,t.pageId),{replace:!0})},[e.id,r]),te=e=>{c.length<2||ee(c[(l+e+c.length)%c.length],e)},M=e=>{let t=c.find(t=>t.item.id===e);t&&ee(t,c.indexOf(t)>l?1:-1)};(0,v.useLayoutEffect)(()=>{let e=D.current;if(!e)return;let t=new ResizeObserver(()=>b(e.clientWidth));return t.observe(e),()=>t.disconnect()},[]);let N=d?.kind===`screen`?d.theme??f:f,[ne]=(0,v.useState)(N),re=d?d.kind===`screen`?WC(d.url,ne):d.url:``,P=DT(e.id,d,N);(0,v.useEffect)(()=>{_([]),S(d?.kind===`screen`?d.measuredHeight??null:null),D.current?.scrollTo({top:0});let t=O.current;if(t&&d?.kind===`screen`)return RC(t,t=>{t.type===`size`?S(t.height):t.type===`error`?_(e=>e.includes(t.message)?e:[...e,t.message]):t.type===`updated`?_([]):t.type===`go`?M(t.target.includes(`/`)?t.target.split(`/`)[1]:t.target):t.type===`link`&&KC(t,e,M)})},[k,re]),(0,v.useEffect)(()=>{d?.kind===`screen`&&VC(O.current,N)},[N,d]),(0,v.useEffect)(()=>{let e=e=>{document.querySelector(`[role="dialog"]`)||(e.key===`ArrowRight`?te(1):e.key===`ArrowLeft`&&te(-1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)});let ie=(0,v.useRef)(null),ae=e=>{let t=e.touches[0];ie.current=t?{x:t.clientX,y:t.clientY}:null},oe=e=>{let t=ie.current,n=e.changedTouches[0];if(ie.current=null,!t||!n)return;let r=n.clientX-t.x,i=n.clientY-t.y;Math.abs(r)>56&&Math.abs(r)>Math.abs(i)*1.5&&te(r<0?1:-1)};if(!d||!u)return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(zO,{canvas:e,title:e.title,sub:null}),(0,R.jsx)(kw,{title:`No screens here`,text:`This canvas has no screens to show yet.`})]});let se=d.frame.width,ce=y?Math.min(1,(y-24)/se):0,le=ce>0&&ce<.8,ue=le&&T?1:ce,de=d.frame.height===`auto`?Math.max(x??0,480):d.frame.height,fe=d.kind===`screen`&&!d.theme;return(0,R.jsxs)(`div`,{className:`flex h-dvh flex-col`,children:[(0,R.jsx)(zO,{canvas:e,title:d.title||d.id,sub:[e.title,u.where].filter(Boolean).join(` · `),back:o?void 0:`/`,end:(0,R.jsxs)(R.Fragment,{children:[le?(0,R.jsx)(N_,{icon:T?`zoom-out`:`zoom-in`,label:T?`Fit to width`:`Actual size`,onClick:()=>E(e=>!e)}):null,(0,R.jsxs)(VS,{align:`end`,width:220,trigger:(0,R.jsx)(N_,{icon:`more`,label:`Screen options`}),children:[fe?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(GS,{children:`Screen theme`}),(0,R.jsx)(RO,{value:`light`,current:f,onPick:p}),(0,R.jsx)(RO,{value:`dark`,current:f,onPick:p}),(0,R.jsx)(WS,{})]}):null,(0,R.jsxs)(US,{onSelect:()=>HC(O.current),children:[(0,R.jsx)(Z,{name:`refresh`,size:15,className:`text-ink2`}),`Reload screen`]}),P?(0,R.jsxs)(US,{onSelect:()=>window.open(P,`_blank`,`noopener`),children:[(0,R.jsx)(Z,{name:`external`,size:15,className:`text-ink2`}),`Open in a new tab`]}):null,(0,R.jsxs)(US,{onSelect:()=>h_(s===`dark`?`light`:`dark`),children:[(0,R.jsx)(Z,{name:s===`dark`?`sun`:`moon`,size:15,className:`text-ink2`}),s===`dark`?`Light appearance`:`Dark appearance`]})]}),a.barEnd]})}),a.belowBar?(0,R.jsx)(`div`,{className:`shrink-0`,children:a.belowBar}):null,(0,R.jsxs)(`div`,{ref:D,onTouchStart:ae,onTouchEnd:oe,className:X(`canvas-dots relative min-h-0 grow overflow-y-auto overscroll-contain`,le&&T?`overflow-x-auto`:`overflow-x-hidden`),children:[g.length?(0,R.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2 font-mono text-[12px] whitespace-pre-wrap text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:14,className:`mt-px shrink-0`}),(0,R.jsx)(`span`,{className:`min-w-0 break-words`,children:g.join(`
|
|
129
|
+
`)})]}):null,(0,R.jsx)($u,{initial:!1,mode:`popLayout`,custom:C,children:(0,R.jsx)(Wf.div,{custom:C,initial:{opacity:0,x:C*40},animate:{opacity:1,x:0},exit:{opacity:0,x:C*-40,transition:{duration:.12}},transition:{type:`spring`,stiffness:420,damping:38},className:X(`flex`,le&&T?`w-max`:`justify-center`),style:{padding:FO},children:ue?(0,R.jsx)(`div`,{className:`shrink-0 overflow-hidden rounded-[6px] bg-surface`,style:{width:se*ue,height:de*ue,boxShadow:`var(--shadow-frame), 0 0 0 1px var(--rule)`},children:(0,R.jsx)(`iframe`,{ref:j,src:re,title:d.title,allow:`clipboard-read; clipboard-write; fullscreen`,sandbox:i,className:`block border-0`,style:{width:se,height:de,transform:`scale(${ue})`,transformOrigin:`0 0`,colorScheme:N},onLoad:()=>d.kind===`screen`&&VC(O.current,N)},`${d.id}:${d.kind===`screen`?d.rev:d.url}`)}):null},d.id)})]}),(0,R.jsxs)(`nav`,{"aria-label":`Screens`,className:`flex shrink-0 items-center gap-1 border-t border-rule bg-surface px-2 pt-1.5 pb-[max(6px,env(safe-area-inset-bottom))]`,children:[(0,R.jsx)(N_,{icon:`chevron-left`,label:`Previous screen`,onClick:()=>te(-1),disabled:c.length<2}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>h(!0),className:`flex h-10 min-w-0 grow cursor-pointer items-center justify-center gap-2 rounded-[8px] border-0 bg-transparent px-3 text-[13.5px] text-ink active:bg-soft2`,children:[(0,R.jsx)(Z,{name:`list`,size:15,className:`shrink-0 text-muted`}),(0,R.jsxs)(`span`,{className:`tabular shrink-0 text-muted`,children:[l+1,` / `,c.length]}),(0,R.jsx)(`span`,{className:`min-w-0 truncate font-medium`,children:d.title||d.id})]}),(0,R.jsx)(N_,{icon:`chevron-right`,label:`Next screen`,onClick:()=>te(1),disabled:c.length<2})]}),(0,R.jsx)(AO,{open:m,onOpenChange:h,title:e.title,children:(0,R.jsx)(VO,{canvas:e,current:d.id,onPick:e=>{h(!1),M(e)}})})]})}function RO({value:e,current:t,onPick:n}){return(0,R.jsxs)(US,{active:t===e,onSelect:()=>n(e),children:[(0,R.jsx)(Z,{name:e===`dark`?`moon`:`sun`,size:15,className:`text-ink2`}),e===`dark`?`Dark`:`Light`,t===e?(0,R.jsx)(Z,{name:`check`,size:15,className:`ml-auto text-ink2`}):null]})}function zO({canvas:e,title:t,sub:n,back:r,end:i}){let{slots:a}=Xg();return(0,R.jsxs)(`header`,{className:`flex h-[52px] shrink-0 items-center gap-2 border-b border-rule bg-surface pr-2 pl-2 pt-[env(safe-area-inset-top)]`,children:[a.barStart,r?(0,R.jsx)(ye,{href:r,"aria-label":`All canvases, leaving ${e.title}`,className:`inline-flex size-10 shrink-0 items-center justify-center rounded-[8px] text-ink2 active:bg-soft2`,children:(0,R.jsx)(Z,{name:`arrow-left`,size:18})}):(0,R.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center`,children:(0,R.jsx)(JS,{})}),(0,R.jsxs)(`div`,{className:`flex min-w-0 grow flex-col leading-tight`,children:[(0,R.jsx)(`span`,{className:`truncate text-[14.5px] font-semibold`,children:t}),n?(0,R.jsx)(`span`,{className:`truncate text-[12px] text-muted`,children:n}):null]}),(0,R.jsx)(`div`,{className:`flex shrink-0 items-center gap-1`,children:i})]})}var BO=e=>e.item.kind===`url`?`globe`:e.item.frame.device===`phone`?`smartphone`:e.item.frame.device===`tablet`?`tablet`:`monitor`;function VO({canvas:e,current:t,onPick:n}){let r=(0,v.useRef)(null);(0,v.useEffect)(()=>{r.current?.scrollIntoView({block:`center`})},[]);let i=e.pages.length>1;return(0,R.jsx)(`div`,{className:`flex flex-col pb-2`,children:e.pages.map(a=>{let o=jO(e,a.id);return o.length?(0,R.jsxs)(`section`,{className:`flex flex-col`,children:[i?(0,R.jsx)(`h3`,{className:`sticky top-0 z-[1] m-0 border-b border-rule bg-soft px-4 py-2 text-[12px] font-semibold text-ink2`,children:a.title}):null,a.sections.map(e=>{let i=o.filter(t=>e.items.includes(t.item));return i.length?(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[e.title?(0,R.jsx)(`div`,{className:`px-4 pt-3 pb-1 text-[12px] text-muted`,children:e.title}):null,i.map(e=>{let i=e.item.id===t;return(0,R.jsxs)(`button`,{ref:i?r:void 0,type:`button`,"aria-current":i?`true`:void 0,onClick:()=>n(e.item.id),className:X(`flex min-h-[48px] cursor-pointer items-center gap-3 border-0 bg-transparent px-4 text-left text-[14px] active:bg-soft2`,i?`font-medium text-ink`:`text-ink2`),children:[(0,R.jsx)(`span`,{className:X(`flex size-8 shrink-0 items-center justify-center rounded-[8px]`,i?`bg-action-soft text-action`:`bg-soft2 text-muted`),children:(0,R.jsx)(Z,{name:BO(e),size:15})}),(0,R.jsx)(`span`,{className:`min-w-0 grow truncate`,children:e.item.title||e.item.id}),i?(0,R.jsx)(Z,{name:`check`,size:16,className:`shrink-0 text-action`}):null]},e.item.id)})]},e.id):null})]},a.id):null})})}var HO=[[`year`,31536e3],[`month`,2592e3],[`week`,604800],[`day`,86400],[`hour`,3600],[`minute`,60]],UO=new Intl.RelativeTimeFormat(`en`,{numeric:`auto`});function WO(e){if(!e)return``;let t=(e-Date.now())/1e3;for(let[e,n]of HO)if(Math.abs(t)>=n)return UO.format(Math.round(t/n),e);return`just now`}function GO(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(+(e<10240))} KB`:`${(e/1024/1024).toFixed(1)} MB`}function KO(e,t,n=`${t}s`){return`${e} ${e===1?t:n}`}function qO({className:e,style:t}){return(0,R.jsx)(`span`,{"aria-hidden":`true`,className:X(`block animate-pulse rounded-[6px] bg-soft2`,e),style:t})}function JO({rows:e=3,lead:t=28,minH:n=56}){return(0,R.jsx)(`div`,{role:`status`,"aria-label":`Loading`,children:Array.from({length:e},(e,r)=>(0,R.jsxs)(`div`,{className:`flex items-center gap-3 border-t border-rule px-4`,style:{minHeight:n,opacity:1-r*.18},children:[t?(0,R.jsx)(qO,{style:{width:t,height:Math.min(t,n-20)}}):null,(0,R.jsxs)(`span`,{className:`flex min-w-0 grow flex-col gap-1.5`,children:[(0,R.jsx)(qO,{className:`h-3 w-[38%]`}),(0,R.jsx)(qO,{className:`h-2.5 w-[62%]`})]}),(0,R.jsx)(qO,{className:`h-3 w-14`})]},r))})}function YO({canvas:e}){return(0,R.jsx)(`div`,{className:`flex h-[54px] w-[86px] shrink-0 items-center justify-center overflow-hidden rounded-[6px] border border-rule bg-soft`,children:e.cover?(0,R.jsx)(`img`,{src:e.cover,alt:``,className:`h-full w-full object-cover object-top`}):(0,R.jsx)(Z,{name:`canvas`,size:18,className:`text-muted`})})}function XO({actions:e,children:t}){return e?(0,R.jsxs)(`div`,{className:`grid items-center border-t border-rule transition-colors hover:bg-soft`,style:{gridTemplateColumns:`minmax(0,1fr) auto`},children:[t,(0,R.jsx)(`div`,{className:`flex items-center gap-2 pr-4`,children:e})]}):t}function ZO({children:e}){return e?(0,R.jsx)(`div`,{className:`flex items-center gap-2.5 border-t border-rule bg-soft px-4 py-3 text-[12.5px] text-muted`,children:e}):null}function QO({project:e}){let{canvasRowActions:t,canvasesFoot:n}=Xg().slots,r=rC();return e.canvases.length?(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`,count:e.canvases.length}),e.canvases.map(e=>{let n=t?.(e.id);return(0,R.jsx)(XO,{actions:n,children:r?(0,R.jsxs)(gw,{to:`/c/${encodeURIComponent(e.id)}`,cols:`86px minmax(0,1fr)`,align:`ll`,pad:`10px 16px`,minH:74,first:!!n,children:[(0,R.jsx)(YO,{canvas:e}),(0,R.jsx)(b_,{top:e.title,bottom:(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[e.issues?(0,R.jsx)(ow,{tone:`danger`,children:KO(e.issues,`problem`)}):null,(0,R.jsxs)(`span`,{className:`truncate`,children:[KO(e.screens,`screen`),` · `,WO(e.updatedAt)]})]})})]}):(0,R.jsxs)(gw,{to:`/c/${encodeURIComponent(e.id)}`,cols:`86px minmax(0,1fr) auto auto`,align:`llrr`,pad:`10px 16px`,minH:74,first:!!n,children:[(0,R.jsx)(YO,{canvas:e}),(0,R.jsx)(b_,{top:e.title,bottom:(0,R.jsx)(`span`,{className:`truncate`,children:e.description??e.id})}),(0,R.jsxs)(`span`,{className:`flex items-center gap-2 text-[12.5px] whitespace-nowrap text-muted`,children:[e.issues?(0,R.jsx)(ow,{tone:`danger`,children:KO(e.issues,`problem`)}):null,KO(e.screens,`screen`),` · `,KO(e.pages,`page`)]}),(0,R.jsx)(`span`,{className:`w-[92px] text-[12.5px] whitespace-nowrap text-muted`,children:WO(e.updatedAt)})]})},e.id)}),(0,R.jsx)(ZO,{children:n})]}):(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`,count:0}),(0,R.jsx)(vw,{children:(0,R.jsxs)(`div`,{className:`flex flex-col gap-2 py-6 text-center`,children:[(0,R.jsx)(`span`,{className:`text-[14px] text-ink2`,children:`No canvases yet.`}),(0,R.jsxs)(`span`,{className:`text-[13px] text-muted`,children:[`Ask your agent to design something, or run `,(0,R.jsx)(Q,{children:`design new <name>`}),` in the project.`]})]})}),(0,R.jsx)(ZO,{children:n})]})}function $O({project:e}){let t=e.system;return t?(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`,right:(0,R.jsx)(P_,{to:`/system`,children:`Open`})}),(0,R.jsxs)(vw,{gap:6,children:[(0,R.jsx)(`span`,{className:`text-[15px] font-semibold`,children:t.name}),t.description?(0,R.jsx)(`span`,{className:`text-[13px] text-ink2`,children:t.description}):null]}),(0,R.jsx)(_w,{label:`Tokens`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.tokens})}),(0,R.jsx)(_w,{label:`Components`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.components})}),(0,R.jsx)(_w,{label:`Guidelines`,labelWidth:120,end:!0,children:(0,R.jsx)(sw,{value:t.guidelines})}),t.issues?(0,R.jsx)(_w,{label:`Problems`,labelWidth:120,end:!0,children:(0,R.jsx)(ow,{tone:`danger`,children:t.issues})}):null]}):(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`}),(0,R.jsx)(vw,{children:(0,R.jsxs)(`span`,{className:`text-[13px] text-muted`,children:[`No design system yet. Ask your agent to build one from the codebase, or run `,(0,R.jsx)(Q,{children:`design system init`}),`.`]})})]})}function ek(){return(0,R.jsxs)(Cw,{children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-2.5 pt-1 pb-1`,children:[(0,R.jsx)(qO,{className:`h-6 w-[220px]`}),(0,R.jsx)(qO,{className:`h-3.5 w-[300px]`})]}),(0,R.jsxs)(`div`,{className:`grid items-start gap-5 max-lg:grid-cols-1!`,style:{gridTemplateColumns:`minmax(0,1fr) 340px`},children:[(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Canvases`}),(0,R.jsx)(JO,{rows:3,lead:86,minH:74})]}),(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:`Design system`}),(0,R.jsx)(JO,{rows:3,lead:0,minH:40})]})]})]})}function tk(){let{data:e,error:t,isLoading:n}=$g(),{slots:r}=Xg(),i=rC();return t?(0,R.jsx)(Ow,{title:`Could not load the project`,text:t.message}):n||!e?(0,R.jsx)(ek,{}):(0,R.jsxs)(Cw,{children:[(0,R.jsx)(ww,{title:e.name,right:i?void 0:r.homeActions,badge:i&&r.homeActions?(0,R.jsx)(`span`,{className:`ml-auto flex`,children:r.homeActions}):void 0,sub:r.homeSub?r.homeSub:e.static?`Snapshot built with foss-design ${e.version}`:(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(Q,{size:12.5,wrap:!0,children:[e.root,`/.design`]}),` `,`· foss-design `,e.version]})}),(0,R.jsx)(bw,{issues:e.issues,title:`Problems in design.json`}),(0,R.jsxs)(`div`,{className:`grid items-start gap-5 max-lg:grid-cols-1!`,style:{gridTemplateColumns:`minmax(0,1fr) 340px`},children:[(0,R.jsx)(QO,{project:e}),(0,R.jsx)($O,{project:e})]}),r.homeAfter]})}function nk(e){let t=e.utility;if(t===void 0)return[];let n=t?`-${t}`:``;switch(e.kind){case`color`:return[`bg${n}`,`text${n}`,`border${n}`];case`font`:return[`font${n}`];case`text`:return[`text${n}`];case`weight`:return[`font${n}`];case`leading`:return[`leading${n}`];case`tracking`:return[`tracking${n}`];case`spacing`:return t?[`p${n}`,`gap${n}`]:[`p-1`,`gap-4`,`m-2`];case`radius`:return[`rounded${n}`];case`shadow`:return e.name.startsWith(`--inset-shadow-`)?[`inset-shadow${n}`]:e.name.startsWith(`--drop-shadow-`)?[`drop-shadow${n}`]:e.name.startsWith(`--text-shadow-`)?[`text-shadow${n}`]:[`shadow${n}`];case`blur`:return[`blur${n}`,`backdrop-blur${n}`];case`ease`:return[`ease${n}`];case`animation`:return[`animate${n}`];case`breakpoint`:return e.name.startsWith(`--container-`)?[`@${t}:`,`max-w${n}`]:[`${t}:`];default:return[]}}function rk(e,...t){return e.filter(e=>t.includes(e.kind))}function ik(e){let t=new Map;for(let n of e){let e=t.get(n.group)??[];e.push(n),t.set(n.group,e)}return[...t].map(([e,t])=>({group:e,tokens:t}))}function ak(e){let t=/^(-?[\d.]+)(px|rem|em)?$/.exec(e.trim());if(!t)return null;let n=Number(t[1]);return Number.isFinite(n)?t[2]===`rem`||t[2]===`em`?n*16:n:null}function ok(e,t){return(t===`dark`?e.dark?.value:void 0)??e.light?.value}function sk(){let e=__(),[t,n]=(0,v.useState)(null);return[t??e,n]}function ck({value:e,onChange:t}){return(0,R.jsx)(Fw,{label:`Theme`,size:`sm`,value:e,onChange:t,items:[{value:`light`,label:(0,R.jsx)(Z,{name:`sun`,size:14}),title:`Light`},{value:`dark`,label:(0,R.jsx)(Z,{name:`moon`,size:14}),title:`Dark`}]})}function lk({items:e}){return e.length?(0,R.jsx)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 gap-y-0.5`,children:e.map(e=>(0,R.jsx)(Q,{size:12,className:`text-muted`,children:e},e))}):null}function uk({title:e,children:t}){return(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:e}),(0,R.jsx)(vw,{children:(0,R.jsx)(`div`,{className:`py-4 text-[13px] text-muted`,children:t})})]})}var dk=`.design/system/tokens.css`;function fk({children:e,className:t}){return(0,R.jsx)(`span`,{className:`font-mono text-[12px] text-muted [overflow-wrap:anywhere] ${t??``}`,children:e})}function pk({asset:e,index:t}){if(e.kind===`image`)return(0,R.jsx)(`span`,{className:`checker flex h-[132px] items-center justify-center overflow-hidden border-b border-rule`,children:(0,R.jsx)(`img`,{src:e.url,alt:``,className:`max-h-[96px] max-w-[80%] object-contain`})});if(e.kind===`font`){let n=`design-asset-font-${t}`;return(0,R.jsxs)(`span`,{className:`flex h-[132px] items-center justify-center border-b border-rule bg-soft`,children:[(0,R.jsx)(`style`,{children:`@font-face{font-family:"${n}";src:url("${e.url.replace(/"/g,`%22`)}")}`}),(0,R.jsx)(`span`,{className:`text-[52px] leading-none text-ink`,style:{fontFamily:`"${n}", var(--font-sans)`},children:`Aa`})]})}return(0,R.jsx)(`span`,{className:`flex h-[132px] items-center justify-center border-b border-rule bg-soft text-muted`,children:(0,R.jsx)(Z,{name:`file`,size:28})})}function mk({system:e}){return e.assets.length?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Assets`,sub:`Click an asset to copy its import path.`}),(0,R.jsx)(`div`,{className:`grid gap-4`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(210px, 1fr))`},children:e.assets.map((e,t)=>(0,R.jsx)(`button`,{type:`button`,title:`Copy the import path`,onClick:()=>IC(`@system/${e.path}`),className:`block cursor-pointer border-0 bg-transparent p-0 text-left`,children:(0,R.jsxs)(cw,{className:`transition-colors hover:border-rule-strong`,children:[(0,R.jsx)(pk,{asset:e,index:t}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5 px-3.5 py-2.5`,children:[(0,R.jsx)(`span`,{className:`truncate text-[13.5px] font-medium text-ink`,children:e.name}),(0,R.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2 text-[12.5px] text-muted`,children:[(0,R.jsx)(`span`,{className:`shrink-0`,children:GO(e.size)}),(0,R.jsx)(Q,{size:12,className:`truncate`,children:e.path})]})]})]})},e.path))})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Assets`}),(0,R.jsxs)(uk,{title:`No assets`,children:[`Put logos, icons, images and font files in `,(0,R.jsx)(Q,{children:`.design/system/assets`}),`; screens import them as`,` `,(0,R.jsx)(Q,{children:`@system/assets/…`}),`.`]})]})}function hk({color:e,label:t,className:n}){return e?(0,R.jsx)(`span`,{title:`${t}: ${e}`,className:X(`checker relative h-[30px] w-[44px] shrink-0 overflow-hidden rounded-[6px]`,n),children:(0,R.jsx)(`span`,{className:`absolute inset-0 rounded-[6px] shadow-[inset_0_0_0_1px_rgba(0,0,0,0.1)] dark:shadow-[inset_0_0_0_1px_rgba(255,255,255,0.12)]`,style:{background:e}})}):(0,R.jsx)(`span`,{className:X(`h-[30px] w-[44px] shrink-0`,n)})}function gk({tokens:e}){let t=e.some(e=>e.dark),n=t=>(0,R.jsxs)(`div`,{className:`relative flex h-9 min-w-0 grow overflow-hidden rounded-[6px]`,children:[(0,R.jsx)(`span`,{className:`pointer-events-none absolute inset-0 z-10 rounded-[6px] shadow-[inset_0_0_0_1px_var(--rule-strong)] opacity-60`}),e.map(e=>{let n=t===`dark`?e.dark?.value??e.light?.value:e.light?.value;return(0,R.jsx)(`button`,{type:`button`,title:`${e.name}: ${n}`,onClick:()=>IC(`var(${e.name})`),className:`h-full min-w-0 flex-1 cursor-pointer border-0 p-0 transition-[flex-grow] duration-150 hover:grow-[1.6]`,style:{background:n}},e.name)})]});return(0,R.jsxs)(`div`,{className:`flex flex-col gap-1.5 border-t border-rule px-4 py-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[t?(0,R.jsx)(`span`,{className:`w-9 shrink-0 text-[12px] text-muted`,children:`Light`}):null,n(`light`)]}),t?(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`span`,{className:`w-9 shrink-0 text-[12px] text-muted`,children:`Dark`}),n(`dark`)]}):null]})}function _k({token:e}){return(0,R.jsxs)(hw,{cols:`100px minmax(170px, 0.9fr) minmax(0, 1.4fr)`,minH:56,title:`Copy the variable`,onClick:()=>IC(`var(${e.name})`),children:[(0,R.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,R.jsx)(hk,{color:e.light?.value,label:`Light`}),e.dark?(0,R.jsx)(hk,{color:e.dark.value,label:`Dark`}):null]}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsx)(Q,{size:12.5,className:`truncate text-ink`,children:e.name}),(0,R.jsx)(lk,{items:nk(e).slice(0,2)})]}),(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-col gap-0.5`,children:[(0,R.jsxs)(`span`,{className:`flex min-w-0 flex-wrap gap-x-3`,children:[(0,R.jsx)(Q,{size:12,className:`text-muted`,children:e.light?.value}),e.dark?(0,R.jsxs)(Q,{size:12,className:`text-muted`,children:[`dark `,e.dark.value]}):null]}),e.description?(0,R.jsx)(`span`,{className:`text-[13px] text-ink2`,children:e.description}):null]})]})}function vk({system:e}){let t=rk(e.tokens,`color`),n=ik(t);return(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(ww,{title:`Colors`,sub:t.length?`${t.length} tokens · click a color to copy its variable`:void 0}),n.length?n.map(({group:e,tokens:t})=>(0,R.jsxs)(cw,{children:[(0,R.jsx)(lw,{title:e,count:t.length}),(0,R.jsx)(gk,{tokens:t}),t.map(e=>(0,R.jsx)(_k,{token:e},e.name))]},e)):(0,R.jsxs)(uk,{title:`No color tokens`,children:[`Add them to `,(0,R.jsx)(Q,{children:dk}),`: light values in `,(0,R.jsx)(Q,{children:`:root`}),`, dark ones in`,` `,(0,R.jsx)(Q,{children:`:root[data-theme="dark"]`}),`, and map them to Tailwind with `,(0,R.jsx)(Q,{children:`--color-*`}),` in`,` `,(0,R.jsx)(Q,{children:`@theme inline`}),`.`]})]})}function yk({src:e,theme:t,title:n,minHeight:r=120,width:i,className:a}){let o=(0,v.useRef)(null),{frameSandbox:s}=Xg(),[c]=(0,v.useState)(()=>({src:e,theme:t})),l=WC(e,c.src===e?c.theme:t),[u,d]=(0,v.useState)(r),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)([]);return(0,v.useEffect)(()=>{let e=o.current;if(e)return p(!1),h([]),RC(e,e=>{e.type===`size`?d(Math.max(r,e.height)):e.type===`ready`?p(!0):e.type===`error`?h(t=>t.includes(e.message)?t:[...t,e.message]):e.type===`updated`&&h([])})},[r,l]),(0,v.useEffect)(()=>{VC(o.current,t)},[t]),(0,R.jsxs)(`div`,{className:X(`relative`,a),style:{width:i},children:[m.length?(0,R.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-rule bg-danger-soft px-4 py-2.5 text-[12.5px] text-danger-text`,children:[(0,R.jsx)(Z,{name:`alert`,size:15,className:`mt-px`}),(0,R.jsx)(`div`,{className:`min-w-0 font-mono break-words`,children:m.join(`
|
|
130
130
|
`)})]}):null,(0,R.jsx)(`iframe`,{ref:o,src:l,title:n,sandbox:s,className:X(`block w-full border-0 transition-opacity duration-150`,f?`opacity-100`:`opacity-0`),style:{height:u,colorScheme:t},onLoad:()=>VC(o.current,t)},l),f?null:(0,R.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center text-muted`,children:(0,R.jsx)(Z,{name:`loader`,size:18})})]})}var bk=`identifier keyword string class property entity jsxliterals sign comment break space`.split(` `),[xk,Sk,Ck,wk,Tk,Ek,Dk,Ok,kk,Ak,jk]=bk.map((e,t)=>t);new Map(bk.map((e,t)=>[e,t]));function Mk(e,t){let n=[],r=0,i=[],a=!1;function o(e){n.push({index:r++,value:e.map(([,e])=>e).join(``),tokens:e.map(([e,t])=>({type:bk[e],value:t})),annotations:[]})}for(let e=0;e<t.length;e++){let n=t[e],[r,s]=n;if(r!==Ak){if(s.includes(`
|
|
131
131
|
`)){let e=s.split(`
|
|
132
132
|
`);for(let t=0;t<e.length;t++)i.push([r,e[t]]),t<e.length-1&&(o(i),i.length=0)}else i.push(n);a=!1}else a?o([]):(o(i),i.length=0),e===t.length-1&&o([]),a=!0}return i.length&&o(i),{value:e,lines:n}}function Nk(e,t){let n={index:e.index,value:e.value,tokens:e.tokens,annotations:e.annotations,className:`sh__line${e.annotations.map(e=>` sh__line--${e}`).join(``)}`,style:{},properties:{}};return t?.(n),n}function Pk({type:e,value:t},n,r){let i=n?.[e],a={type:e,value:t,className:`sh__token--${e}${i?` ${i}`:``}`,style:{color:`var(--sh-${e})`},properties:{}};return r?.(a),a}function Fk(e,t){let n=t?.cx,r=t?.mark,i=t?.markLine;return!n&&!r&&!i?e.lines.map(e=>{let t=`sh__line${e.annotations.map(e=>` sh__line--${e}`).join(``)}`,n=e.tokens.map(({type:e,value:t})=>`<span class="sh__token--${e}" style="color:var(--sh-${e})">${Lk(t)}</span>`).join(``);return`<span class="${Lk(t)}">${n}</span>`}).join(`
|