@lerret/cli 0.1.8 → 0.1.9

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.
@@ -1,4 +1,4 @@
1
- import{i as e,n as t,s as n}from"./index-DUcLZ6GX.js";var r=n(e(),1),i=t();async function a(e){try{return await e.getDirectoryHandle(`.lerret`),!0}catch{return!1}}var o={width:`100vw`,height:`100vh`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`var(--lm-bg-secondary, #F2EEE6)`,fontFamily:`var(--lm-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif)`,color:`var(--lm-text-primary, #1A1714)`,padding:`var(--lm-space-8, 32px)`,boxSizing:`border-box`},s={display:`flex`,flexDirection:`column`,alignItems:`center`,textAlign:`center`,maxWidth:`480px`,width:`100%`,gap:`var(--lm-space-6, 24px)`},c={fontSize:`var(--lm-size-badge, 11px)`,fontWeight:`var(--lm-weight-semibold, 600)`,letterSpacing:`0.18em`,textTransform:`uppercase`,color:`var(--lm-text-tertiary, #6E6960)`,margin:0},l={fontSize:`var(--lm-size-h2, 20px)`,fontWeight:`var(--lm-weight-semibold, 600)`,lineHeight:`var(--lm-lh-tight, 1.2)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},u={fontSize:`var(--lm-size-body-lg, 14px)`,lineHeight:`var(--lm-lh-relaxed, 1.6)`,color:`var(--lm-text-secondary, #3A3530)`,maxWidth:`40ch`,margin:0},d={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`var(--lm-accent, #B85B33)`,color:`var(--lm-bg-primary, #FAF8F2)`,border:`none`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},f={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`transparent`,color:`var(--lm-accent-text, #92421E)`,border:`1px solid var(--lm-accent-border, rgba(184,91,51,0.20))`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},p={background:`var(--lm-bg-primary, #FAF8F2)`,border:`1px solid var(--lm-border, #DDD7CA)`,borderRadius:`var(--lm-radius-lg, 12px)`,padding:`var(--lm-space-6, 24px)`,maxWidth:`40ch`,display:`flex`,flexDirection:`column`,gap:`var(--lm-space-4, 16px)`,alignItems:`center`},m={fontSize:`var(--lm-size-h3, 16px)`,fontWeight:`var(--lm-weight-semibold, 600)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},h={fontSize:`var(--lm-size-body, 13px)`,lineHeight:`var(--lm-lh-body, 1.45)`,color:`var(--lm-text-secondary, #3A3530)`,margin:0};function g(){return(0,i.jsxs)(`svg`,{width:`40`,height:`40`,viewBox:`0 0 40 40`,fill:`none`,"aria-hidden":`true`,style:{flex:`none`},children:[(0,i.jsx)(`rect`,{x:`3`,y:`10`,width:`34`,height:`24`,rx:`3`,fill:`var(--lm-accent-light, rgba(184,91,51,0.10))`}),(0,i.jsx)(`path`,{d:`M3 16h34M3 14c0-2.2 1.8-4 4-4h8l3 4`,stroke:`var(--lm-accent, #B85B33)`,strokeWidth:`1.8`,strokeLinejoin:`round`,fill:`none`})]})}function _({onFolderPicked:e,cliMode:t=!1}){let[n,_]=r.useState(`idle`),[v,y]=r.useState(null),[b,x]=r.useState(!1),[S,C]=r.useState(!1);async function w(){if(t){_(`cli-guide`);return}_(`picking`);let n;try{n=await window.showDirectoryPicker({mode:`readwrite`})}catch{_(`idle`);return}if(!await a(n)){y(n),_(`not-lerret-project`);return}_(`idle`),y(null),typeof e==`function`&&await e(n)}async function T(){await w()}function E(){return(0,i.jsxs)(`div`,{role:`alert`,style:p,"data-testid":`not-lerret-project-message`,children:[(0,i.jsx)(`h2`,{style:m,children:`Not a Lerret project`}),(0,i.jsxs)(`p`,{style:h,children:[`The folder you picked doesn't contain a `,(0,i.jsx)(`code`,{children:`.lerret/`}),` `,`directory. Open a folder that has one, or create a new project with`,` `,(0,i.jsx)(`code`,{children:`npx create-lerret my-canvas`}),`.`]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:T,onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),onFocus:()=>C(!1),"aria-label":`Pick another folder`,"data-testid":`pick-another-folder-button`,children:`Pick another folder`})]})}function D(){return(0,i.jsxs)(`div`,{style:p,"data-testid":`cli-mode-guide`,children:[(0,i.jsx)(`h2`,{style:m,children:`Open in your terminal`}),(0,i.jsxs)(`p`,{style:h,children:[`In CLI mode the folder is set by the`,` `,(0,i.jsx)(`code`,{children:`lerret dev`}),` command.`,` `,`Run the following from inside your project:`]}),(0,i.jsx)(`pre`,{style:{background:`var(--lm-bg-tertiary, #E8E2D4)`,borderRadius:`var(--lm-radius-sm, 6px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-4, 16px)`,fontSize:`var(--lm-size-body-sm, 12px)`,fontFamily:`var(--lm-font-mono, monospace)`,color:`var(--lm-text-primary, #1A1714)`,margin:0,whiteSpace:`pre`,overflowX:`auto`,width:`100%`,boxSizing:`border-box`},children:`lerret dev`}),(0,i.jsxs)(`p`,{style:{...h,fontSize:`var(--lm-size-body-sm, 12px)`,color:`var(--lm-text-tertiary, #6E6960)`},children:[`Or pass a path: `,(0,i.jsx)(`code`,{children:`lerret dev --folder ./my-project`})]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:()=>_(`idle`),onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),"data-testid":`back-to-entry-button`,children:`Back`})]})}let O=n===`picking`;return(0,i.jsxs)(`main`,{style:o,"aria-label":`Open a Lerret folder`,"data-testid":`open-folder-screen`,children:[(0,i.jsxs)(`div`,{style:s,children:[(0,i.jsx)(g,{}),(0,i.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--lm-space-3, 12px)`,alignItems:`center`},children:[(0,i.jsx)(`p`,{style:c,"aria-hidden":`true`,children:`Lerret`}),(0,i.jsx)(`h1`,{style:l,children:`Open a Lerret folder`}),(0,i.jsx)(`p`,{style:u,children:t?`Run your project with the Lerret CLI — no account or signup needed.`:`Pick a local folder that contains a .lerret/ project. No account or signup needed — your files stay on your machine.`})]}),n===`not-lerret-project`&&E(),n===`cli-guide`&&D(),(n===`idle`||n===`picking`)&&(0,i.jsx)(`button`,{type:`button`,style:{...d,...b&&!O?{background:`var(--lm-accent-hover, #92421E)`}:{},...O?{opacity:.7,cursor:`wait`}:{}},onClick:w,disabled:O,onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),"aria-label":t?`Open in terminal`:`Open a Lerret folder`,"data-testid":`open-folder-button`,children:O?`Opening…`:t?`How to open`:`Open a Lerret folder`})]}),(0,i.jsx)(`style`,{children:`
1
+ import{i as e,n as t,s as n}from"./index-CXzX4BtL.js";var r=n(e(),1),i=t();async function a(e){try{return await e.getDirectoryHandle(`.lerret`),!0}catch{return!1}}var o={width:`100vw`,height:`100vh`,display:`flex`,alignItems:`center`,justifyContent:`center`,background:`var(--lm-bg-secondary, #F2EEE6)`,fontFamily:`var(--lm-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif)`,color:`var(--lm-text-primary, #1A1714)`,padding:`var(--lm-space-8, 32px)`,boxSizing:`border-box`},s={display:`flex`,flexDirection:`column`,alignItems:`center`,textAlign:`center`,maxWidth:`480px`,width:`100%`,gap:`var(--lm-space-6, 24px)`},c={fontSize:`var(--lm-size-badge, 11px)`,fontWeight:`var(--lm-weight-semibold, 600)`,letterSpacing:`0.18em`,textTransform:`uppercase`,color:`var(--lm-text-tertiary, #6E6960)`,margin:0},l={fontSize:`var(--lm-size-h2, 20px)`,fontWeight:`var(--lm-weight-semibold, 600)`,lineHeight:`var(--lm-lh-tight, 1.2)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},u={fontSize:`var(--lm-size-body-lg, 14px)`,lineHeight:`var(--lm-lh-relaxed, 1.6)`,color:`var(--lm-text-secondary, #3A3530)`,maxWidth:`40ch`,margin:0},d={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`var(--lm-accent, #B85B33)`,color:`var(--lm-bg-primary, #FAF8F2)`,border:`none`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},f={display:`inline-flex`,alignItems:`center`,gap:`var(--lm-space-2, 8px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-6, 24px)`,background:`transparent`,color:`var(--lm-accent-text, #92421E)`,border:`1px solid var(--lm-accent-border, rgba(184,91,51,0.20))`,borderRadius:`var(--lm-radius-md, 8px)`,fontSize:`var(--lm-size-body-lg, 14px)`,fontWeight:`var(--lm-weight-semibold, 600)`,fontFamily:`inherit`,cursor:`pointer`,transition:`background var(--lm-duration-fast, 120ms)`},p={background:`var(--lm-bg-primary, #FAF8F2)`,border:`1px solid var(--lm-border, #DDD7CA)`,borderRadius:`var(--lm-radius-lg, 12px)`,padding:`var(--lm-space-6, 24px)`,maxWidth:`40ch`,display:`flex`,flexDirection:`column`,gap:`var(--lm-space-4, 16px)`,alignItems:`center`},m={fontSize:`var(--lm-size-h3, 16px)`,fontWeight:`var(--lm-weight-semibold, 600)`,color:`var(--lm-text-primary, #1A1714)`,margin:0},h={fontSize:`var(--lm-size-body, 13px)`,lineHeight:`var(--lm-lh-body, 1.45)`,color:`var(--lm-text-secondary, #3A3530)`,margin:0};function g(){return(0,i.jsxs)(`svg`,{width:`40`,height:`40`,viewBox:`0 0 40 40`,fill:`none`,"aria-hidden":`true`,style:{flex:`none`},children:[(0,i.jsx)(`rect`,{x:`3`,y:`10`,width:`34`,height:`24`,rx:`3`,fill:`var(--lm-accent-light, rgba(184,91,51,0.10))`}),(0,i.jsx)(`path`,{d:`M3 16h34M3 14c0-2.2 1.8-4 4-4h8l3 4`,stroke:`var(--lm-accent, #B85B33)`,strokeWidth:`1.8`,strokeLinejoin:`round`,fill:`none`})]})}function _({onFolderPicked:e,cliMode:t=!1}){let[n,_]=r.useState(`idle`),[v,y]=r.useState(null),[b,x]=r.useState(!1),[S,C]=r.useState(!1);async function w(){if(t){_(`cli-guide`);return}_(`picking`);let n;try{n=await window.showDirectoryPicker({mode:`readwrite`})}catch{_(`idle`);return}if(!await a(n)){y(n),_(`not-lerret-project`);return}_(`idle`),y(null),typeof e==`function`&&await e(n)}async function T(){await w()}function E(){return(0,i.jsxs)(`div`,{role:`alert`,style:p,"data-testid":`not-lerret-project-message`,children:[(0,i.jsx)(`h2`,{style:m,children:`Not a Lerret project`}),(0,i.jsxs)(`p`,{style:h,children:[`The folder you picked doesn't contain a `,(0,i.jsx)(`code`,{children:`.lerret/`}),` `,`directory. Open a folder that has one, or create a new project with`,` `,(0,i.jsx)(`code`,{children:`npx create-lerret my-canvas`}),`.`]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:T,onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),onFocus:()=>C(!1),"aria-label":`Pick another folder`,"data-testid":`pick-another-folder-button`,children:`Pick another folder`})]})}function D(){return(0,i.jsxs)(`div`,{style:p,"data-testid":`cli-mode-guide`,children:[(0,i.jsx)(`h2`,{style:m,children:`Open in your terminal`}),(0,i.jsxs)(`p`,{style:h,children:[`In CLI mode the folder is set by the`,` `,(0,i.jsx)(`code`,{children:`@lerret/cli dev`}),` command.`,` `,`Run the following from inside your project:`]}),(0,i.jsx)(`pre`,{style:{background:`var(--lm-bg-tertiary, #E8E2D4)`,borderRadius:`var(--lm-radius-sm, 6px)`,padding:`var(--lm-space-3, 12px) var(--lm-space-4, 16px)`,fontSize:`var(--lm-size-body-sm, 12px)`,fontFamily:`var(--lm-font-mono, monospace)`,color:`var(--lm-text-primary, #1A1714)`,margin:0,whiteSpace:`pre`,overflowX:`auto`,width:`100%`,boxSizing:`border-box`},children:`@lerret/cli dev`}),(0,i.jsxs)(`p`,{style:{...h,fontSize:`var(--lm-size-body-sm, 12px)`,color:`var(--lm-text-tertiary, #6E6960)`},children:[`Or pass a path: `,(0,i.jsx)(`code`,{children:`@lerret/cli dev --folder ./my-project`})]}),(0,i.jsx)(`button`,{type:`button`,style:{...f,...S?{background:`var(--lm-accent-light, rgba(184,91,51,0.10))`}:{}},onClick:()=>_(`idle`),onMouseEnter:()=>C(!0),onMouseLeave:()=>C(!1),"data-testid":`back-to-entry-button`,children:`Back`})]})}let O=n===`picking`;return(0,i.jsxs)(`main`,{style:o,"aria-label":`Open a Lerret folder`,"data-testid":`open-folder-screen`,children:[(0,i.jsxs)(`div`,{style:s,children:[(0,i.jsx)(g,{}),(0,i.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:`var(--lm-space-3, 12px)`,alignItems:`center`},children:[(0,i.jsx)(`p`,{style:c,"aria-hidden":`true`,children:`Lerret`}),(0,i.jsx)(`h1`,{style:l,children:`Open a Lerret folder`}),(0,i.jsx)(`p`,{style:u,children:t?`Run your project with the Lerret CLI — no account or signup needed.`:`Pick a local folder that contains a .lerret/ project. No account or signup needed — your files stay on your machine.`})]}),n===`not-lerret-project`&&E(),n===`cli-guide`&&D(),(n===`idle`||n===`picking`)&&(0,i.jsx)(`button`,{type:`button`,style:{...d,...b&&!O?{background:`var(--lm-accent-hover, #92421E)`}:{},...O?{opacity:.7,cursor:`wait`}:{}},onClick:w,disabled:O,onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),"aria-label":t?`Open in terminal`:`Open a Lerret folder`,"data-testid":`open-folder-button`,children:O?`Opening…`:t?`How to open`:`Open a Lerret folder`})]}),(0,i.jsx)(`style`,{children:`
2
2
  [data-testid="open-folder-button"]:focus-visible,
3
3
  [data-testid="pick-another-folder-button"]:focus-visible,
4
4
  [data-testid="back-to-entry-button"]:focus-visible {
@@ -1,4 +1,4 @@
1
- import{i as e,n as t,o as n,r,s as i,t as a}from"./index-DUcLZ6GX.js";import{_ as o,a as s,c,d as l,g as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b}from"./asset-runtime-DQ3i9Nr6.js";function x(e,t,n,r){let i;if(n){let r=t&&t.path||``,a=e.path;r&&a.startsWith(r)&&(a=a.slice(r.length)),a=a.replace(/^\/+/,``),i=n.replace(/\/+$/,``)+`/`+a}else i=e.path;return r!=null&&(i+=(i.includes(`?`)?`&`:`?`)+`t=`+encodeURIComponent(String(r))),i}async function S(e,t,n){let r=x(e,t,n.assetBaseUrl,n.reloadToken),i;try{i=await n.importModule(r)}catch(t){return[_(e,h(t,`evaluate`))]}let a=p(i);if(a.length===0)return[_(e,h(Error(`Asset "${e.fileName}" exports no React component. A component asset must \`export default\` a component, or export one or more component-valued named exports as variants.`),`evaluate`))];let o=g(i&&i.meta);return a.map(t=>s(e,t,o))}async function C(e,t,n){let r=x(e,t,n.assetBaseUrl,n.reloadToken),i=r+(r.includes(`?`)?`&raw`:`?raw`),a;try{a=await n.importModule(i)}catch(t){return[_(e,h(t,`load`))]}let o=a&&typeof a==`object`&&`default`in a?a.default:typeof a==`string`?a:``;return[d(e,typeof o==`string`?o:``)]}function w(e,t={}){let n=t.assetBaseUrl,r=t.importModule||(e=>a(()=>import(e),[],import.meta.url)),i=new Set,o=new Map,s=0,c=!1;function l(e){return o.get(e)}return{async loadAsset(t){if(c)return[_(t,h(Error(`asset runtime has been disposed`),`load`))];if(t==null||typeof t.path!=`string`)return[_(t||{kind:`asset`,name:`?`,fileName:`?`,path:`?`,assetKind:`component`,ext:``},h(Error(`loadAsset: expected an AssetNode with a path`),`load`))];let i=l(t.path);return t.assetKind===`markdown`?C(t,e,{assetBaseUrl:n,importModule:r,reloadToken:i}):S(t,e,{assetBaseUrl:n,importModule:r,reloadToken:i})},subscribe(e){return typeof e==`function`&&i.add(e),()=>i.delete(e)},notifyChange(e){if(!c&&!(typeof e!=`string`||e.length===0)){s+=1,o.set(e,s);for(let t of i)try{t(e)}catch(e){console.error(`[vite-runtime] subscribe listener threw:`,e)}}},dispose(){c=!0,i.clear(),o.clear()}}}var T=i(e(),1),E=i(r(),1),D=t();function O({open:e}){return(0,D.jsx)(`svg`,{width:`9`,height:`9`,viewBox:`0 0 11 11`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,"aria-hidden":`true`,style:{opacity:.55,transform:e?`rotate(180deg)`:`none`,transition:`transform 120ms ease`,flex:`none`},children:(0,D.jsx)(`path`,{d:`M2 4l3.5 3.5L9 4`})})}function k(){return(0,D.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`none`,opacity:.8},children:[(0,D.jsx)(`path`,{d:`M3.5 1.5h3L9 4v6.5h-5.5z`}),(0,D.jsx)(`path`,{d:`M2.5 3.5v6.5H8`})]})}function A({pages:e,current:t,onNavigate:n}){let r=Array.isArray(e)?e:[];return r.length===0?null:r.length===1?(0,D.jsx)(j,{label:r[0].label}):(0,D.jsx)(M,{pages:r,current:t,onNavigate:n})}function j({label:e}){return(0,D.jsxs)(`span`,{"data-tour":`dock-pages`,"data-page-picker":`static`,style:{display:`inline-flex`,alignItems:`center`,gap:7,padding:`8px 12px`,fontFamily:`inherit`,fontSize:13,fontWeight:600,color:`var(--lm-text-secondary, #3a3530)`,whiteSpace:`nowrap`},children:[(0,D.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--lm-text-tertiary, #6e6960)`},children:(0,D.jsx)(k,{})}),(0,D.jsx)(`span`,{children:e})]})}function M({pages:e,current:t,onNavigate:n}){let[r,i]=T.useState(!1),[a,o]=T.useState(0),[s,c]=T.useState(null),l=T.useRef(null),u=T.useRef(null),d=T.useRef(null),f=Math.max(0,e.findIndex(e=>e.id===t)),p=e[f]||e[0],m=T.useCallback(()=>{if(!u.current)return;let e=u.current.getBoundingClientRect();c({left:e.left,bottom:window.innerHeight-e.top})},[]),h=T.useCallback(()=>{o(f),m(),i(!0)},[f,m]),g=T.useCallback((e=!0)=>{i(!1),e&&u.current&&u.current.focus()},[]),_=T.useCallback(r=>{let i=e[r];i&&i.id!==t&&n(i.id),g()},[e,t,n,g]);T.useEffect(()=>{if(!r)return;let e=e=>{let t=l.current&&l.current.contains(e.target),n=d.current&&d.current.contains(e.target);!t&&!n&&i(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[r]),T.useEffect(()=>{if(!r)return;let e=()=>m();return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,m]),T.useEffect(()=>{r&&d.current&&d.current.focus()},[r]),T.useEffect(()=>{if(!r||!d.current)return;let e=d.current.querySelector(`[data-page-active="true"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})},[r,a]);let v=e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),h())},y=T.useCallback(t=>{switch(t.key){case`ArrowDown`:t.preventDefault(),o(t=>(t+1)%e.length);break;case`ArrowUp`:t.preventDefault(),o(t=>(t-1+e.length)%e.length);break;case`Home`:t.preventDefault(),o(0);break;case`End`:t.preventDefault(),o(e.length-1);break;case`Enter`:case` `:t.preventDefault(),_(a);break;case`Escape`:t.preventDefault(),g();break;case`Tab`:g(!1);break;default:break}},[e.length,a,_,g]);T.useEffect(()=>{if(!r)return;let e=d.current;if(e)return e.addEventListener(`keydown`,y),()=>e.removeEventListener(`keydown`,y)},[r,y]);let b=e=>`lerret-page-picker-option-${e}`;return(0,D.jsxs)(`span`,{ref:l,"data-tour":`dock-pages`,"data-page-picker":`dropdown`,style:{position:`relative`,display:`inline-flex`},children:[(0,D.jsxs)(`button`,{ref:u,type:`button`,onClick:()=>r?g():h(),onKeyDown:v,"aria-haspopup":`listbox`,"aria-expanded":r,"aria-label":`Page: ${p.label}. Switch page`,title:`Switch page`,style:{display:`inline-flex`,alignItems:`center`,gap:7,padding:`8px 12px`,borderRadius:8,border:`none`,background:r?`rgba(0,0,0,0.06)`:`transparent`,color:`var(--lm-text-secondary, #3a3530)`,fontFamily:`inherit`,fontSize:13,fontWeight:600,cursor:`pointer`,transition:`background 120ms ease`,whiteSpace:`nowrap`,maxWidth:240},onMouseEnter:e=>{r||(e.currentTarget.style.background=`rgba(0,0,0,0.05)`)},onMouseLeave:e=>{r||(e.currentTarget.style.background=`transparent`)},children:[(0,D.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--lm-text-tertiary, #6e6960)`},children:(0,D.jsx)(k,{})}),(0,D.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`},children:p.label}),(0,D.jsx)(O,{open:r})]}),r&&s&&E.createPortal((0,D.jsxs)(`ul`,{ref:d,id:`lerret-page-picker-listbox`,role:`listbox`,tabIndex:-1,"aria-label":`Pages`,"aria-activedescendant":b(a),style:{position:`fixed`,bottom:s.bottom+8,left:s.left,listStyle:`none`,margin:0,minWidth:200,maxWidth:300,maxHeight:280,overflowY:`auto`,background:`rgba(255,255,255,0.97)`,backdropFilter:`blur(16px) saturate(120%)`,WebkitBackdropFilter:`blur(16px) saturate(120%)`,border:`1px solid rgba(26,23,20,0.10)`,borderRadius:12,padding:6,boxShadow:`0 12px 32px rgba(15,23,42,0.18), 0 1px 3px rgba(15,23,42,0.06)`,zIndex:80,outline:`none`,fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`},children:[(0,D.jsx)(`li`,{"aria-hidden":`true`,style:{fontSize:9.5,fontWeight:600,letterSpacing:`0.14em`,textTransform:`uppercase`,color:`var(--lm-text-muted, #9a958c)`,padding:`6px 12px 6px`},children:`Pages`}),e.map((e,n)=>{let r=e.id===t,i=n===a;return(0,D.jsxs)(`li`,{id:b(n),role:`option`,"aria-selected":r,"data-page-active":i,onClick:()=>_(n),onMouseEnter:()=>o(n),style:{display:`flex`,alignItems:`center`,gap:8,padding:`8px 12px`,borderRadius:8,cursor:`pointer`,fontSize:13,fontWeight:r?600:500,color:`var(--lm-text-primary, #1a1714)`,background:i?`var(--lm-accent-light, rgba(184,91,51,0.10))`:`transparent`,boxShadow:i?`inset 0 0 0 1.5px var(--lm-accent, #B85B33)`:`none`},children:[(0,D.jsx)(`span`,{"aria-hidden":`true`,style:{width:12,display:`inline-flex`,justifyContent:`center`,color:`var(--lm-accent, #B85B33)`},children:r?(0,D.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 11 11`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,D.jsx)(`path`,{d:`M2 5.8L4.4 8.2 9 2.8`})}):null}),(0,D.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.label})]},e.id)})]}),document.body)]})}var N=T.createContext(null);function P(){return T.useContext(N)}var F=T.createContext(null);function I(){return T.useContext(F)}var L=Uint8Array,R=Uint16Array,ee=Int32Array,te=new L([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ne=new L([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),z=new L([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),B=function(e,t){for(var n=new R(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new ee(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},V=B(te,2),H=V.b,U=V.r;H[28]=258,U[258]=28;var W=B(ne,0);W.b;for(var re=W.r,ie=new R(32768),G=0;G<32768;++G){var K=(G&43690)>>1|(G&21845)<<1;K=(K&52428)>>2|(K&13107)<<2,K=(K&61680)>>4|(K&3855)<<4,ie[G]=((K&65280)>>8|(K&255)<<8)>>1}for(var ae=(function(e,t,n){for(var r=e.length,i=0,a=new R(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new R(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new R(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[ie[d]>>c]=l}else for(s=new R(r),i=0;i<r;++i)e[i]&&(s[i]=ie[o[e[i]-1]++]>>15-e[i]);return s}),oe=new L(288),G=0;G<144;++G)oe[G]=8;for(var G=144;G<256;++G)oe[G]=9;for(var G=256;G<280;++G)oe[G]=7;for(var G=280;G<288;++G)oe[G]=8;for(var se=new L(32),G=0;G<32;++G)se[G]=5;var ce=ae(oe,9,0),le=ae(se,5,0),ue=function(e){return(e+7)/8|0},de=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new L(e.subarray(t,n))},fe=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],pe=function(e,t,n){var r=Error(t||fe[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,pe),!n)throw r;return r},me=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},he=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},ge=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,a=n.slice();if(!i)return{t:Ce,l:0};if(i==1){var o=new L(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var s=n[0],c=n[1],l=0,u=1,d=2;for(n[0]={s:-1,f:s.f+c.f,l:s,r:c};u!=i-1;)s=n[n[l].f<n[d].f?l++:d++],c=n[l!=u&&n[l].f<n[d].f?l++:d++],n[u++]={s:-1,f:s.f+c.f,l:s,r:c};for(var f=a[0].s,r=1;r<i;++r)a[r].s>f&&(f=a[r].s);var p=new R(f+1),m=_e(n[u-1],p,0);if(m>t){var r=0,h=0,g=m-t,_=1<<g;for(a.sort(function(e,t){return p[t.s]-p[e.s]||e.f-t.f});r<i;++r){var v=a[r].s;if(p[v]>t)h+=_-(1<<m-p[v]),p[v]=t;else break}for(h>>=g;h>0;){var y=a[r].s;p[y]<t?h-=1<<t-p[y]++-1:++r}for(;r>=0&&h;--r){var b=a[r].s;p[b]==t&&(--p[b],++h)}m=t}return{t:new L(p),l:m}},_e=function(e,t,n){return e.s==-1?Math.max(_e(e.l,t,n+1),_e(e.r,t,n+1)):t[e.s]=n},ve=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new R(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},s=1;s<=t;++s)if(e[s]==i&&s!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[s]}return{c:n.subarray(0,r),n:t}},ye=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},be=function(e,t,n){var r=n.length,i=ue(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var a=0;a<r;++a)e[i+a+4]=n[a];return(i+4+r)*8},xe=function(e,t,n,r,i,a,o,s,c,l,u){me(t,u++,n),++i[256];for(var d=ge(i,15),f=d.t,p=d.l,m=ge(a,15),h=m.t,g=m.l,_=ve(f),v=_.c,y=_.n,b=ve(h),x=b.c,S=b.n,C=new R(19),w=0;w<v.length;++w)++C[v[w]&31];for(var w=0;w<x.length;++w)++C[x[w]&31];for(var T=ge(C,7),E=T.t,D=T.l,O=19;O>4&&!E[z[O-1]];--O);var k=l+5<<3,A=ye(i,oe)+ye(a,se)+o,j=ye(i,f)+ye(a,h)+o+14+3*O+ye(C,E)+2*C[16]+3*C[17]+7*C[18];if(c>=0&&k<=A&&k<=j)return be(t,u,e.subarray(c,c+l));var M,N,P,F;if(me(t,u,1+(j<A)),u+=2,j<A){M=ae(f,p,0),N=f,P=ae(h,g,0),F=h;var I=ae(E,D,0);me(t,u,y-257),me(t,u+5,S-1),me(t,u+10,O-4),u+=14;for(var w=0;w<O;++w)me(t,u+3*w,E[z[w]]);u+=3*O;for(var L=[v,x],ee=0;ee<2;++ee)for(var B=L[ee],w=0;w<B.length;++w){var V=B[w]&31;me(t,u,I[V]),u+=E[V],V>15&&(me(t,u,B[w]>>5&127),u+=B[w]>>12)}}else M=ce,N=oe,P=le,F=se;for(var w=0;w<s;++w){var H=r[w];if(H>255){var V=H>>18&31;he(t,u,M[V+257]),u+=N[V+257],V>7&&(me(t,u,H>>23&31),u+=te[V]);var U=H&31;he(t,u,P[U]),u+=F[U],U>3&&(he(t,u,H>>5&8191),u+=ne[U])}else he(t,u,M[H]),u+=N[H]}return he(t,u,M[256]),u+N[256]},Se=new ee([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ce=new L(0),we=function(e,t,n,r,i,a){var o=a.z||e.length,s=new L(r+o+5*(1+Math.ceil(o/7e3))+i),c=s.subarray(r,s.length-i),l=a.l,u=(a.r||0)&7;if(t){u&&(c[0]=a.r>>3);for(var d=Se[t-1],f=d>>13,p=d&8191,m=(1<<n)-1,h=a.p||new R(32768),g=a.h||new R(m+1),_=Math.ceil(n/3),v=2*_,y=function(t){return(e[t]^e[t+1]<<_^e[t+2]<<v)&m},b=new ee(25e3),x=new R(288),S=new R(32),C=0,w=0,T=a.i||0,E=0,D=a.w||0,O=0;T+2<o;++T){var k=y(T),A=T&32767,j=g[k];if(h[A]=j,g[k]=A,D<=T){var M=o-T;if((C>7e3||E>24576)&&(M>423||!l)){u=xe(e,c,0,b,x,S,w,E,O,T-O,u),E=C=w=0,O=T;for(var N=0;N<286;++N)x[N]=0;for(var N=0;N<30;++N)S[N]=0}var P=2,F=0,I=p,z=A-j&32767;if(M>2&&k==y(T-z))for(var B=Math.min(f,M)-1,V=Math.min(32767,T),H=Math.min(258,M);z<=V&&--I&&A!=j;){if(e[T+P]==e[T+P-z]){for(var W=0;W<H&&e[T+W]==e[T+W-z];++W);if(W>P){if(P=W,F=z,W>B)break;for(var ie=Math.min(z,W-2),G=0,N=0;N<ie;++N){var K=T-z+N&32767,ae=K-h[K]&32767;ae>G&&(G=ae,j=K)}}}A=j,j=h[A],z+=A-j&32767}if(F){b[E++]=268435456|U[P]<<18|re[F];var oe=U[P]&31,se=re[F]&31;w+=te[oe]+ne[se],++x[257+oe],++S[se],D=T+P,++C}else b[E++]=e[T],++x[e[T]]}}for(T=Math.max(T,D);T<o;++T)b[E++]=e[T],++x[e[T]];u=xe(e,c,l,b,x,S,w,E,O,T-O,u),l||(a.r=u&7|c[u/8|0]<<3,u-=7,a.h=g,a.p=h,a.i=T,a.w=D)}else{for(var T=a.w||0;T<o+l;T+=65535){var ce=T+65535;ce>=o&&(c[u/8|0]=l,ce=o),u=be(c,u+1,e.subarray(T,ce))}a.i=o}return de(s,0,r+ue(u)+i)},Te=(function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(n&1&&-306674912)^n>>>1;e[t]=n}return e})(),Ee=function(){var e=-1;return{p:function(t){for(var n=e,r=0;r<t.length;++r)n=Te[n&255^t[r]]^n>>>8;e=n},d:function(){return~e}}},De=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),o=new L(a.length+e.length);o.set(a),o.set(e,a.length),e=o,i.w=a.length}return we(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)},Oe=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n},q=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function ke(e,t){return De(e,t||{},0,0)}var Ae=function(e,t,n,r){for(var i in e){var a=e[i],o=t+i,s=r;Array.isArray(a)&&(s=Oe(r,a[1]),a=a[0]),ArrayBuffer.isView(a)?n[o]=[a,s]:(n[o+=`/`]=[new L(0),s],Ae(a,o,n,r))}},je=typeof TextEncoder<`u`&&new TextEncoder,Me=typeof TextDecoder<`u`&&new TextDecoder;try{Me.decode(Ce,{stream:!0})}catch{}function Ne(e,t){if(t){for(var n=new L(e.length),r=0;r<e.length;++r)n[r]=e.charCodeAt(r);return n}if(je)return je.encode(e);for(var i=e.length,a=new L(e.length+(e.length>>1)),o=0,s=function(e){a[o++]=e},r=0;r<i;++r){if(o+5>a.length){var c=new L(o+8+(i-r<<1));c.set(a),a=c}var l=e.charCodeAt(r);l<128||t?s(l):l<2048?(s(192|l>>6),s(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|e.charCodeAt(++r)&1023,s(240|l>>18),s(128|l>>12&63),s(128|l>>6&63),s(128|l&63)):(s(224|l>>12),s(128|l>>6&63),s(128|l&63))}return de(a,0,o)}var Pe=function(e){var t=0;if(e)for(var n in e){var r=e[n].length;r>65535&&pe(9),t+=r+4}return t},Fe=function(e,t,n,r,i,a,o,s){var c=r.length,l=n.extra,u=s&&s.length,d=Pe(l);q(e,t,o==null?67324752:33639248),t+=4,o!=null&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(a<0&&8),e[t++]=i&&8,e[t++]=n.compression&255,e[t++]=n.compression>>8;var f=new Date(n.mtime==null?Date.now():n.mtime),p=f.getFullYear()-1980;if((p<0||p>119)&&pe(10),q(e,t,p<<25|f.getMonth()+1<<21|f.getDate()<<16|f.getHours()<<11|f.getMinutes()<<5|f.getSeconds()>>1),t+=4,a!=-1&&(q(e,t,n.crc),q(e,t+4,a<0?-a-2:a),q(e,t+8,n.size)),q(e,t+12,c),q(e,t+14,d),t+=16,o!=null&&(q(e,t,u),q(e,t+6,n.attrs),q(e,t+10,o),t+=14),e.set(r,t),t+=c,d)for(var m in l){var h=l[m],g=h.length;q(e,t,+m),q(e,t+2,g),e.set(h,t+4),t+=4+g}return u&&(e.set(s,t),t+=u),t},Ie=function(e,t,n,r,i){q(e,t,101010256),q(e,t+8,n),q(e,t+10,n),q(e,t+12,r),q(e,t+16,i)};function Le(e,t){t||={};var n={},r=[];Ae(e,``,n,t);var i=0,a=0;for(var o in n){var s=n[o],c=s[0],l=s[1],u=l.level==0?0:8,d=Ne(o),f=d.length,p=l.comment,m=p&&Ne(p),h=m&&m.length,g=Pe(l.extra);f>65535&&pe(11);var _=u?ke(c,l):c,v=_.length,y=Ee();y.p(c),r.push(Oe(l,{size:c.length,crc:y.d(),c:_,f:d,m,u:f!=o.length||m&&p.length!=h,o:i,compression:u})),i+=30+f+g+v,a+=76+2*(f+g)+(h||0)+v}for(var b=new L(a+22),x=i,S=a-i,C=0;C<r.length;++C){var d=r[C];Fe(b,d.o,d,d.f,d.u,d.c.length);var w=30+d.f.length+Pe(d.extra);b.set(d.c,d.o+w),Fe(b,i,d,d.f,d.u,d.c.length,d.o,d.m),i+=16+w+(d.m?d.m.length:0)}return Ie(b,i,r.length,S,x),b}function Re(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let n=document.implementation.createHTMLDocument(),r=n.createElement(`base`),i=n.createElement(`a`);return n.head.appendChild(r),n.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}var ze=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function Be(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var Ve=null;function He(e={}){return Ve||(e.includeStyleProperties?(Ve=e.includeStyleProperties,Ve):(Ve=Be(window.getComputedStyle(document.documentElement)),Ve))}function Ue(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function We(e){let t=Ue(e,`border-left-width`),n=Ue(e,`border-right-width`);return e.clientWidth+t+n}function Ge(e){let t=Ue(e,`border-top-width`),n=Ue(e,`border-bottom-width`);return e.clientHeight+t+n}function Ke(e,t={}){return{width:t.width||We(e),height:t.height||Ge(e)}}function qe(){let e,t;try{t=process}catch{}let n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var J=16384;function Je(e){(e.width>J||e.height>J)&&(e.width>J&&e.height>J?e.width>e.height?(e.height*=J/e.width,e.width=J):(e.width*=J/e.height,e.height=J):e.width>J?(e.height*=J/e.width,e.width=J):(e.width*=J/e.height,e.height=J))}function Ye(e,t={}){return e.toBlob?new Promise(n=>{e.toBlob(n,t.type?t.type:`image/png`,t.quality?t.quality:1)}):new Promise(n=>{let r=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(`,`)[1]),i=r.length,a=new Uint8Array(i);for(let e=0;e<i;e+=1)a[e]=r.charCodeAt(e);n(new Blob([a],{type:t.type?t.type:`image/png`}))})}function Xe(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin=`anonymous`,r.decoding=`async`,r.src=e})}async function Ze(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function Qe(e,t,n){let r=`http://www.w3.org/2000/svg`,i=document.createElementNS(r,`svg`),a=document.createElementNS(r,`foreignObject`);return i.setAttribute(`width`,`${t}`),i.setAttribute(`height`,`${n}`),i.setAttribute(`viewBox`,`0 0 ${t} ${n}`),a.setAttribute(`width`,`100%`),a.setAttribute(`height`,`100%`),a.setAttribute(`x`,`0`),a.setAttribute(`y`,`0`),a.setAttribute(`externalResourcesRequired`,`true`),i.appendChild(a),a.appendChild(e),Ze(i)}var Y=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||Y(n,t)};function $e(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function et(e,t){return He(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function tt(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?$e(n):et(n,r);return document.createTextNode(`${i}{${a}}`)}function nt(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=ze();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(tt(o,n,i,r)),t.appendChild(s)}function rt(e,t,n){nt(e,t,`:before`,n),nt(e,t,`:after`,n)}var it=`application/font-woff`,at=`image/jpeg`,ot={woff:it,woff2:it,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:at,jpeg:at,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function st(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function ct(e){return ot[st(e).toLowerCase()]||``}function lt(e){return e.split(/,/)[1]}function ut(e){return e.search(/^(data:)/)!==-1}function dt(e,t){return`data:${t};base64,${e}`}async function ft(e,t,n){let r=await fetch(e,t);if(r.status===404)throw Error(`Resource "${r.url}" not found`);let i=await r.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(n({res:r,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(i)})}var pt={};function mt(e,t,n){let r=e.replace(/\?.*/,``);return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,``)),t?`[${t}]${r}`:r}async function ht(e,t,n){let r=mt(e,t,n.includeQueryParams);if(pt[r]!=null)return pt[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=dt(await ft(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,lt(n))),t)}catch(t){i=n.imagePlaceholder||``;let r=`Failed to fetch resource: ${e}`;t&&(r=typeof t==`string`?t:t.message),r&&console.warn(r)}return pt[r]=i,i}async function gt(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):Xe(t)}async function _t(e,t){if(e.currentSrc){let t=document.createElement(`canvas`),n=t.getContext(`2d`);return t.width=e.clientWidth,t.height=e.clientHeight,n?.drawImage(e,0,0,t.width,t.height),Xe(t.toDataURL())}let n=e.poster;return Xe(await ht(n,ct(n),t))}async function vt(e,t){try{if(e?.contentDocument?.body)return await Ot(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function yt(e,t){return Y(e,HTMLCanvasElement)?gt(e):Y(e,HTMLVideoElement)?_t(e,t):Y(e,HTMLIFrameElement)?vt(e,t):e.cloneNode(xt(e))}var bt=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,xt=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function St(e,t,n){if(xt(t))return t;let r=[];return r=bt(e)&&e.assignedNodes?Be(e.assignedNodes()):Y(e,HTMLIFrameElement)&&e.contentDocument?.body?Be(e.contentDocument.body.childNodes):Be((e.shadowRoot??e).childNodes),r.length===0||Y(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>Ot(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function Ct(e,t,n){let r=t.style;if(!r)return;let i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):He(n).forEach(n=>{let a=i.getPropertyValue(n);n===`font-size`&&a.endsWith(`px`)&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),Y(e,HTMLIFrameElement)&&n===`display`&&a===`inline`&&(a=`block`),n===`d`&&t.getAttribute(`d`)&&(a=`path(${t.getAttribute(`d`)})`),r.setProperty(n,a,i.getPropertyPriority(n))})}function wt(e,t){Y(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),Y(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function Tt(e,t){if(Y(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function Et(e,t,n){return Y(t,Element)&&(Ct(e,t,n),rt(e,t,n),wt(e,t),Tt(e,t)),t}async function Dt(e,t){let n=e.querySelectorAll?e.querySelectorAll(`use`):[];if(n.length===0)return e;let r={};for(let i=0;i<n.length;i++){let a=n[i].getAttribute(`xlink:href`);if(a){let n=e.querySelector(a),i=document.querySelector(a);!n&&i&&!r[a]&&(r[a]=await Ot(i,t,!0))}}let i=Object.values(r);if(i.length){let t=`http://www.w3.org/1999/xhtml`,n=document.createElementNS(t,`svg`);n.setAttribute(`xmlns`,t),n.style.position=`absolute`,n.style.width=`0`,n.style.height=`0`,n.style.overflow=`hidden`,n.style.display=`none`;let r=document.createElementNS(t,`defs`);n.appendChild(r);for(let e=0;e<i.length;e++)r.appendChild(i[e]);e.appendChild(n)}return e}async function Ot(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>yt(e,t)).then(n=>St(e,n,t)).then(n=>Et(e,n,t)).then(e=>Dt(e,t))}var kt=/url\((['"]?)([^'"]+?)\1\)/g,At=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,jt=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function Mt(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function Nt(e){let t=[];return e.replace(kt,(e,n,r)=>(t.push(r),e)),t.filter(e=>!ut(e))}async function Pt(e,t,n,r,i){try{let a=n?Re(t,n):t,o=ct(t),s;return s=i?dt(await i(a),o):await ht(a,o,r),e.replace(Mt(t),`$1${s}$3`)}catch{}return e}function Ft(e,{preferredFontFormat:t}){return t?e.replace(jt,e=>{for(;;){let[n,,r]=At.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function It(e){return e.search(kt)!==-1}async function Lt(e,t,n){if(!It(e))return e;let r=Ft(e,n);return Nt(r).reduce((e,r)=>e.then(e=>Pt(e,r,t,n)),Promise.resolve(r))}async function Rt(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await Lt(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function zt(e,t){await Rt(`background`,e,t)||await Rt(`background-image`,e,t),await Rt(`mask`,e,t)||await Rt(`-webkit-mask`,e,t)||await Rt(`mask-image`,e,t)||await Rt(`-webkit-mask-image`,e,t)}async function Bt(e,t){let n=Y(e,HTMLImageElement);if(!(n&&!ut(e.src))&&!(Y(e,SVGImageElement)&&!ut(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await ht(r,ct(r),t);await new Promise((r,a)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a;let o=e;o.decode&&=r,o.loading===`lazy`&&(o.loading=`eager`),n?(e.srcset=``,e.src=i):e.href.baseVal=i})}async function Vt(e,t){let n=Be(e.childNodes).map(e=>Ht(e,t));await Promise.all(n).then(()=>e)}async function Ht(e,t){Y(e,Element)&&(await zt(e,t),await Bt(e,t),await Vt(e,t))}function Ut(e,t){let{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);let r=t.style;return r!=null&&Object.keys(r).forEach(e=>{n[e]=r[e]}),e}var Wt={};async function Gt(e){let t=Wt[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},Wt[e]=t,t)}async function Kt(e,t){let n=e.cssText,r=/url\(["']?([^"')]+)["']?\)/g,i=(n.match(/url\([^)]+\)/g)||[]).map(async i=>{let a=i.replace(r,`$1`);return a.startsWith(`https://`)||(a=new URL(a,e.url).href),ft(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function qt(e){if(e==null)return[];let t=[],n=e.replace(/(\/\*[\s\S]*?\*\/)/gi,``),r=RegExp(`((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})`,`gi`);for(;;){let e=r.exec(n);if(e===null)break;t.push(e[0])}n=n.replace(r,``);let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp(`((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})`,`gi`);for(;;){let e=i.exec(n);if(e===null){if(e=a.exec(n),e===null)break;i.lastIndex=a.lastIndex}else a.lastIndex=i.lastIndex;t.push(e[0])}return t}async function Jt(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{Be(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=Gt(o).then(e=>Kt(e,t)).then(e=>qt(e).forEach(e=>{try{n.insertRule(e,e.startsWith(`@import`)?a+=1:n.cssRules.length)}catch(t){console.error(`Error inserting rule from remote css`,{rule:e,error:t})}})).catch(e=>{console.error(`Error loading remote css`,e.toString())});r.push(s)}})}catch(i){let a=e.find(e=>e.href==null)||document.styleSheets[0];n.href!=null&&r.push(Gt(n.href).then(e=>Kt(e,t)).then(e=>qt(e).forEach(e=>{a.insertRule(e,a.cssRules.length)})).catch(e=>{console.error(`Error loading remote stylesheet`,e)})),console.error(`Error inlining remote css file`,i)}}),Promise.all(r).then(()=>(e.forEach(e=>{if(`cssRules`in e)try{Be(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function Yt(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>It(e.style.getPropertyValue(`src`)))}async function Xt(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return Yt(await Jt(Be(e.ownerDocument.styleSheets),t))}function Zt(e){return e.trim().replace(/["']/g,``)}function Qt(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(Zt(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function $t(e,t){let n=await Xt(e,t),r=Qt(e);return(await Promise.all(n.filter(e=>r.has(Zt(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return Lt(e.cssText,n,t)}))).join(`
1
+ import{i as e,n as t,o as n,r,s as i,t as a}from"./index-CXzX4BtL.js";import{_ as o,a as s,c,d as l,g as u,i as d,l as f,m as p,n as m,o as h,p as g,r as _,s as v,t as y,u as b}from"./asset-runtime-B5cPbIor.js";function x(e,t,n,r){let i;if(n){let r=t&&t.path||``,a=e.path;r&&a.startsWith(r)&&(a=a.slice(r.length)),a=a.replace(/^\/+/,``),i=n.replace(/\/+$/,``)+`/`+a}else i=e.path;return r!=null&&(i+=(i.includes(`?`)?`&`:`?`)+`t=`+encodeURIComponent(String(r))),i}async function S(e,t,n){let r=x(e,t,n.assetBaseUrl,n.reloadToken),i;try{i=await n.importModule(r)}catch(t){return[_(e,h(t,`evaluate`))]}let a=p(i);if(a.length===0)return[_(e,h(Error(`Asset "${e.fileName}" exports no React component. A component asset must \`export default\` a component, or export one or more component-valued named exports as variants.`),`evaluate`))];let o=g(i&&i.meta);return a.map(t=>s(e,t,o))}async function C(e,t,n){let r=x(e,t,n.assetBaseUrl,n.reloadToken),i=r+(r.includes(`?`)?`&raw`:`?raw`),a;try{a=await n.importModule(i)}catch(t){return[_(e,h(t,`load`))]}let o=a&&typeof a==`object`&&`default`in a?a.default:typeof a==`string`?a:``;return[d(e,typeof o==`string`?o:``)]}function w(e,t={}){let n=t.assetBaseUrl,r=t.importModule||(e=>a(()=>import(e),[],import.meta.url)),i=new Set,o=new Map,s=0,c=!1;function l(e){return o.get(e)}return{async loadAsset(t){if(c)return[_(t,h(Error(`asset runtime has been disposed`),`load`))];if(t==null||typeof t.path!=`string`)return[_(t||{kind:`asset`,name:`?`,fileName:`?`,path:`?`,assetKind:`component`,ext:``},h(Error(`loadAsset: expected an AssetNode with a path`),`load`))];let i=l(t.path);return t.assetKind===`markdown`?C(t,e,{assetBaseUrl:n,importModule:r,reloadToken:i}):S(t,e,{assetBaseUrl:n,importModule:r,reloadToken:i})},subscribe(e){return typeof e==`function`&&i.add(e),()=>i.delete(e)},notifyChange(e){if(!c&&!(typeof e!=`string`||e.length===0)){s+=1,o.set(e,s);for(let t of i)try{t(e)}catch(e){console.error(`[vite-runtime] subscribe listener threw:`,e)}}},dispose(){c=!0,i.clear(),o.clear()}}}var T=i(e(),1),E=i(r(),1),D=t();function O({open:e}){return(0,D.jsx)(`svg`,{width:`9`,height:`9`,viewBox:`0 0 11 11`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`,"aria-hidden":`true`,style:{opacity:.55,transform:e?`rotate(180deg)`:`none`,transition:`transform 120ms ease`,flex:`none`},children:(0,D.jsx)(`path`,{d:`M2 4l3.5 3.5L9 4`})})}function k(){return(0,D.jsxs)(`svg`,{width:`12`,height:`12`,viewBox:`0 0 12 12`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinejoin:`round`,"aria-hidden":`true`,style:{flex:`none`,opacity:.8},children:[(0,D.jsx)(`path`,{d:`M3.5 1.5h3L9 4v6.5h-5.5z`}),(0,D.jsx)(`path`,{d:`M2.5 3.5v6.5H8`})]})}function A({pages:e,current:t,onNavigate:n}){let r=Array.isArray(e)?e:[];return r.length===0?null:r.length===1?(0,D.jsx)(j,{label:r[0].label}):(0,D.jsx)(M,{pages:r,current:t,onNavigate:n})}function j({label:e}){return(0,D.jsxs)(`span`,{"data-tour":`dock-pages`,"data-page-picker":`static`,style:{display:`inline-flex`,alignItems:`center`,gap:7,padding:`8px 12px`,fontFamily:`inherit`,fontSize:13,fontWeight:600,color:`var(--lm-text-secondary, #3a3530)`,whiteSpace:`nowrap`},children:[(0,D.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--lm-text-tertiary, #6e6960)`},children:(0,D.jsx)(k,{})}),(0,D.jsx)(`span`,{children:e})]})}function M({pages:e,current:t,onNavigate:n}){let[r,i]=T.useState(!1),[a,o]=T.useState(0),[s,c]=T.useState(null),l=T.useRef(null),u=T.useRef(null),d=T.useRef(null),f=Math.max(0,e.findIndex(e=>e.id===t)),p=e[f]||e[0],m=T.useCallback(()=>{if(!u.current)return;let e=u.current.getBoundingClientRect();c({left:e.left,bottom:window.innerHeight-e.top})},[]),h=T.useCallback(()=>{o(f),m(),i(!0)},[f,m]),g=T.useCallback((e=!0)=>{i(!1),e&&u.current&&u.current.focus()},[]),_=T.useCallback(r=>{let i=e[r];i&&i.id!==t&&n(i.id),g()},[e,t,n,g]);T.useEffect(()=>{if(!r)return;let e=e=>{let t=l.current&&l.current.contains(e.target),n=d.current&&d.current.contains(e.target);!t&&!n&&i(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[r]),T.useEffect(()=>{if(!r)return;let e=()=>m();return window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[r,m]),T.useEffect(()=>{r&&d.current&&d.current.focus()},[r]),T.useEffect(()=>{if(!r||!d.current)return;let e=d.current.querySelector(`[data-page-active="true"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})},[r,a]);let v=e=>{(e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`Enter`||e.key===` `)&&(e.preventDefault(),h())},y=T.useCallback(t=>{switch(t.key){case`ArrowDown`:t.preventDefault(),o(t=>(t+1)%e.length);break;case`ArrowUp`:t.preventDefault(),o(t=>(t-1+e.length)%e.length);break;case`Home`:t.preventDefault(),o(0);break;case`End`:t.preventDefault(),o(e.length-1);break;case`Enter`:case` `:t.preventDefault(),_(a);break;case`Escape`:t.preventDefault(),g();break;case`Tab`:g(!1);break;default:break}},[e.length,a,_,g]);T.useEffect(()=>{if(!r)return;let e=d.current;if(e)return e.addEventListener(`keydown`,y),()=>e.removeEventListener(`keydown`,y)},[r,y]);let b=e=>`lerret-page-picker-option-${e}`;return(0,D.jsxs)(`span`,{ref:l,"data-tour":`dock-pages`,"data-page-picker":`dropdown`,style:{position:`relative`,display:`inline-flex`},children:[(0,D.jsxs)(`button`,{ref:u,type:`button`,onClick:()=>r?g():h(),onKeyDown:v,"aria-haspopup":`listbox`,"aria-expanded":r,"aria-label":`Page: ${p.label}. Switch page`,title:`Switch page`,style:{display:`inline-flex`,alignItems:`center`,gap:7,padding:`8px 12px`,borderRadius:8,border:`none`,background:r?`rgba(0,0,0,0.06)`:`transparent`,color:`var(--lm-text-secondary, #3a3530)`,fontFamily:`inherit`,fontSize:13,fontWeight:600,cursor:`pointer`,transition:`background 120ms ease`,whiteSpace:`nowrap`,maxWidth:240},onMouseEnter:e=>{r||(e.currentTarget.style.background=`rgba(0,0,0,0.05)`)},onMouseLeave:e=>{r||(e.currentTarget.style.background=`transparent`)},children:[(0,D.jsx)(`span`,{style:{display:`inline-flex`,color:`var(--lm-text-tertiary, #6e6960)`},children:(0,D.jsx)(k,{})}),(0,D.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`},children:p.label}),(0,D.jsx)(O,{open:r})]}),r&&s&&E.createPortal((0,D.jsxs)(`ul`,{ref:d,id:`lerret-page-picker-listbox`,role:`listbox`,tabIndex:-1,"aria-label":`Pages`,"aria-activedescendant":b(a),style:{position:`fixed`,bottom:s.bottom+8,left:s.left,listStyle:`none`,margin:0,minWidth:200,maxWidth:300,maxHeight:280,overflowY:`auto`,background:`rgba(255,255,255,0.97)`,backdropFilter:`blur(16px) saturate(120%)`,WebkitBackdropFilter:`blur(16px) saturate(120%)`,border:`1px solid rgba(26,23,20,0.10)`,borderRadius:12,padding:6,boxShadow:`0 12px 32px rgba(15,23,42,0.18), 0 1px 3px rgba(15,23,42,0.06)`,zIndex:80,outline:`none`,fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`},children:[(0,D.jsx)(`li`,{"aria-hidden":`true`,style:{fontSize:9.5,fontWeight:600,letterSpacing:`0.14em`,textTransform:`uppercase`,color:`var(--lm-text-muted, #9a958c)`,padding:`6px 12px 6px`},children:`Pages`}),e.map((e,n)=>{let r=e.id===t,i=n===a;return(0,D.jsxs)(`li`,{id:b(n),role:`option`,"aria-selected":r,"data-page-active":i,onClick:()=>_(n),onMouseEnter:()=>o(n),style:{display:`flex`,alignItems:`center`,gap:8,padding:`8px 12px`,borderRadius:8,cursor:`pointer`,fontSize:13,fontWeight:r?600:500,color:`var(--lm-text-primary, #1a1714)`,background:i?`var(--lm-accent-light, rgba(184,91,51,0.10))`:`transparent`,boxShadow:i?`inset 0 0 0 1.5px var(--lm-accent, #B85B33)`:`none`},children:[(0,D.jsx)(`span`,{"aria-hidden":`true`,style:{width:12,display:`inline-flex`,justifyContent:`center`,color:`var(--lm-accent, #B85B33)`},children:r?(0,D.jsx)(`svg`,{width:`11`,height:`11`,viewBox:`0 0 11 11`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,D.jsx)(`path`,{d:`M2 5.8L4.4 8.2 9 2.8`})}):null}),(0,D.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},children:e.label})]},e.id)})]}),document.body)]})}var N=T.createContext(null);function P(){return T.useContext(N)}var F=T.createContext(null);function I(){return T.useContext(F)}var L=Uint8Array,R=Uint16Array,ee=Int32Array,te=new L([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ne=new L([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),z=new L([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),B=function(e,t){for(var n=new R(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new ee(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},V=B(te,2),H=V.b,U=V.r;H[28]=258,U[258]=28;var W=B(ne,0);W.b;for(var re=W.r,ie=new R(32768),G=0;G<32768;++G){var K=(G&43690)>>1|(G&21845)<<1;K=(K&52428)>>2|(K&13107)<<2,K=(K&61680)>>4|(K&3855)<<4,ie[G]=((K&65280)>>8|(K&255)<<8)>>1}for(var ae=(function(e,t,n){for(var r=e.length,i=0,a=new R(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new R(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new R(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[ie[d]>>c]=l}else for(s=new R(r),i=0;i<r;++i)e[i]&&(s[i]=ie[o[e[i]-1]++]>>15-e[i]);return s}),oe=new L(288),G=0;G<144;++G)oe[G]=8;for(var G=144;G<256;++G)oe[G]=9;for(var G=256;G<280;++G)oe[G]=7;for(var G=280;G<288;++G)oe[G]=8;for(var se=new L(32),G=0;G<32;++G)se[G]=5;var ce=ae(oe,9,0),le=ae(se,5,0),ue=function(e){return(e+7)/8|0},de=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new L(e.subarray(t,n))},fe=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],pe=function(e,t,n){var r=Error(t||fe[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,pe),!n)throw r;return r},me=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},he=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},ge=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,a=n.slice();if(!i)return{t:Ce,l:0};if(i==1){var o=new L(n[0].s+1);return o[n[0].s]=1,{t:o,l:1}}n.sort(function(e,t){return e.f-t.f}),n.push({s:-1,f:25001});var s=n[0],c=n[1],l=0,u=1,d=2;for(n[0]={s:-1,f:s.f+c.f,l:s,r:c};u!=i-1;)s=n[n[l].f<n[d].f?l++:d++],c=n[l!=u&&n[l].f<n[d].f?l++:d++],n[u++]={s:-1,f:s.f+c.f,l:s,r:c};for(var f=a[0].s,r=1;r<i;++r)a[r].s>f&&(f=a[r].s);var p=new R(f+1),m=_e(n[u-1],p,0);if(m>t){var r=0,h=0,g=m-t,_=1<<g;for(a.sort(function(e,t){return p[t.s]-p[e.s]||e.f-t.f});r<i;++r){var v=a[r].s;if(p[v]>t)h+=_-(1<<m-p[v]),p[v]=t;else break}for(h>>=g;h>0;){var y=a[r].s;p[y]<t?h-=1<<t-p[y]++-1:++r}for(;r>=0&&h;--r){var b=a[r].s;p[b]==t&&(--p[b],++h)}m=t}return{t:new L(p),l:m}},_e=function(e,t,n){return e.s==-1?Math.max(_e(e.l,t,n+1),_e(e.r,t,n+1)):t[e.s]=n},ve=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new R(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},s=1;s<=t;++s)if(e[s]==i&&s!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[s]}return{c:n.subarray(0,r),n:t}},ye=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},be=function(e,t,n){var r=n.length,i=ue(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var a=0;a<r;++a)e[i+a+4]=n[a];return(i+4+r)*8},xe=function(e,t,n,r,i,a,o,s,c,l,u){me(t,u++,n),++i[256];for(var d=ge(i,15),f=d.t,p=d.l,m=ge(a,15),h=m.t,g=m.l,_=ve(f),v=_.c,y=_.n,b=ve(h),x=b.c,S=b.n,C=new R(19),w=0;w<v.length;++w)++C[v[w]&31];for(var w=0;w<x.length;++w)++C[x[w]&31];for(var T=ge(C,7),E=T.t,D=T.l,O=19;O>4&&!E[z[O-1]];--O);var k=l+5<<3,A=ye(i,oe)+ye(a,se)+o,j=ye(i,f)+ye(a,h)+o+14+3*O+ye(C,E)+2*C[16]+3*C[17]+7*C[18];if(c>=0&&k<=A&&k<=j)return be(t,u,e.subarray(c,c+l));var M,N,P,F;if(me(t,u,1+(j<A)),u+=2,j<A){M=ae(f,p,0),N=f,P=ae(h,g,0),F=h;var I=ae(E,D,0);me(t,u,y-257),me(t,u+5,S-1),me(t,u+10,O-4),u+=14;for(var w=0;w<O;++w)me(t,u+3*w,E[z[w]]);u+=3*O;for(var L=[v,x],ee=0;ee<2;++ee)for(var B=L[ee],w=0;w<B.length;++w){var V=B[w]&31;me(t,u,I[V]),u+=E[V],V>15&&(me(t,u,B[w]>>5&127),u+=B[w]>>12)}}else M=ce,N=oe,P=le,F=se;for(var w=0;w<s;++w){var H=r[w];if(H>255){var V=H>>18&31;he(t,u,M[V+257]),u+=N[V+257],V>7&&(me(t,u,H>>23&31),u+=te[V]);var U=H&31;he(t,u,P[U]),u+=F[U],U>3&&(he(t,u,H>>5&8191),u+=ne[U])}else he(t,u,M[H]),u+=N[H]}return he(t,u,M[256]),u+N[256]},Se=new ee([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ce=new L(0),we=function(e,t,n,r,i,a){var o=a.z||e.length,s=new L(r+o+5*(1+Math.ceil(o/7e3))+i),c=s.subarray(r,s.length-i),l=a.l,u=(a.r||0)&7;if(t){u&&(c[0]=a.r>>3);for(var d=Se[t-1],f=d>>13,p=d&8191,m=(1<<n)-1,h=a.p||new R(32768),g=a.h||new R(m+1),_=Math.ceil(n/3),v=2*_,y=function(t){return(e[t]^e[t+1]<<_^e[t+2]<<v)&m},b=new ee(25e3),x=new R(288),S=new R(32),C=0,w=0,T=a.i||0,E=0,D=a.w||0,O=0;T+2<o;++T){var k=y(T),A=T&32767,j=g[k];if(h[A]=j,g[k]=A,D<=T){var M=o-T;if((C>7e3||E>24576)&&(M>423||!l)){u=xe(e,c,0,b,x,S,w,E,O,T-O,u),E=C=w=0,O=T;for(var N=0;N<286;++N)x[N]=0;for(var N=0;N<30;++N)S[N]=0}var P=2,F=0,I=p,z=A-j&32767;if(M>2&&k==y(T-z))for(var B=Math.min(f,M)-1,V=Math.min(32767,T),H=Math.min(258,M);z<=V&&--I&&A!=j;){if(e[T+P]==e[T+P-z]){for(var W=0;W<H&&e[T+W]==e[T+W-z];++W);if(W>P){if(P=W,F=z,W>B)break;for(var ie=Math.min(z,W-2),G=0,N=0;N<ie;++N){var K=T-z+N&32767,ae=K-h[K]&32767;ae>G&&(G=ae,j=K)}}}A=j,j=h[A],z+=A-j&32767}if(F){b[E++]=268435456|U[P]<<18|re[F];var oe=U[P]&31,se=re[F]&31;w+=te[oe]+ne[se],++x[257+oe],++S[se],D=T+P,++C}else b[E++]=e[T],++x[e[T]]}}for(T=Math.max(T,D);T<o;++T)b[E++]=e[T],++x[e[T]];u=xe(e,c,l,b,x,S,w,E,O,T-O,u),l||(a.r=u&7|c[u/8|0]<<3,u-=7,a.h=g,a.p=h,a.i=T,a.w=D)}else{for(var T=a.w||0;T<o+l;T+=65535){var ce=T+65535;ce>=o&&(c[u/8|0]=l,ce=o),u=be(c,u+1,e.subarray(T,ce))}a.i=o}return de(s,0,r+ue(u)+i)},Te=(function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(n&1&&-306674912)^n>>>1;e[t]=n}return e})(),Ee=function(){var e=-1;return{p:function(t){for(var n=e,r=0;r<t.length;++r)n=Te[n&255^t[r]]^n>>>8;e=n},d:function(){return~e}}},De=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var a=t.dictionary.subarray(-32768),o=new L(a.length+e.length);o.set(a),o.set(e,a.length),e=o,i.w=a.length}return we(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)},Oe=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n},q=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function ke(e,t){return De(e,t||{},0,0)}var Ae=function(e,t,n,r){for(var i in e){var a=e[i],o=t+i,s=r;Array.isArray(a)&&(s=Oe(r,a[1]),a=a[0]),ArrayBuffer.isView(a)?n[o]=[a,s]:(n[o+=`/`]=[new L(0),s],Ae(a,o,n,r))}},je=typeof TextEncoder<`u`&&new TextEncoder,Me=typeof TextDecoder<`u`&&new TextDecoder;try{Me.decode(Ce,{stream:!0})}catch{}function Ne(e,t){if(t){for(var n=new L(e.length),r=0;r<e.length;++r)n[r]=e.charCodeAt(r);return n}if(je)return je.encode(e);for(var i=e.length,a=new L(e.length+(e.length>>1)),o=0,s=function(e){a[o++]=e},r=0;r<i;++r){if(o+5>a.length){var c=new L(o+8+(i-r<<1));c.set(a),a=c}var l=e.charCodeAt(r);l<128||t?s(l):l<2048?(s(192|l>>6),s(128|l&63)):l>55295&&l<57344?(l=65536+(l&1047552)|e.charCodeAt(++r)&1023,s(240|l>>18),s(128|l>>12&63),s(128|l>>6&63),s(128|l&63)):(s(224|l>>12),s(128|l>>6&63),s(128|l&63))}return de(a,0,o)}var Pe=function(e){var t=0;if(e)for(var n in e){var r=e[n].length;r>65535&&pe(9),t+=r+4}return t},Fe=function(e,t,n,r,i,a,o,s){var c=r.length,l=n.extra,u=s&&s.length,d=Pe(l);q(e,t,o==null?67324752:33639248),t+=4,o!=null&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(a<0&&8),e[t++]=i&&8,e[t++]=n.compression&255,e[t++]=n.compression>>8;var f=new Date(n.mtime==null?Date.now():n.mtime),p=f.getFullYear()-1980;if((p<0||p>119)&&pe(10),q(e,t,p<<25|f.getMonth()+1<<21|f.getDate()<<16|f.getHours()<<11|f.getMinutes()<<5|f.getSeconds()>>1),t+=4,a!=-1&&(q(e,t,n.crc),q(e,t+4,a<0?-a-2:a),q(e,t+8,n.size)),q(e,t+12,c),q(e,t+14,d),t+=16,o!=null&&(q(e,t,u),q(e,t+6,n.attrs),q(e,t+10,o),t+=14),e.set(r,t),t+=c,d)for(var m in l){var h=l[m],g=h.length;q(e,t,+m),q(e,t+2,g),e.set(h,t+4),t+=4+g}return u&&(e.set(s,t),t+=u),t},Ie=function(e,t,n,r,i){q(e,t,101010256),q(e,t+8,n),q(e,t+10,n),q(e,t+12,r),q(e,t+16,i)};function Le(e,t){t||={};var n={},r=[];Ae(e,``,n,t);var i=0,a=0;for(var o in n){var s=n[o],c=s[0],l=s[1],u=l.level==0?0:8,d=Ne(o),f=d.length,p=l.comment,m=p&&Ne(p),h=m&&m.length,g=Pe(l.extra);f>65535&&pe(11);var _=u?ke(c,l):c,v=_.length,y=Ee();y.p(c),r.push(Oe(l,{size:c.length,crc:y.d(),c:_,f:d,m,u:f!=o.length||m&&p.length!=h,o:i,compression:u})),i+=30+f+g+v,a+=76+2*(f+g)+(h||0)+v}for(var b=new L(a+22),x=i,S=a-i,C=0;C<r.length;++C){var d=r[C];Fe(b,d.o,d,d.f,d.u,d.c.length);var w=30+d.f.length+Pe(d.extra);b.set(d.c,d.o+w),Fe(b,i,d,d.f,d.u,d.c.length,d.o,d.m),i+=16+w+(d.m?d.m.length:0)}return Ie(b,i,r.length,S,x),b}function Re(e,t){if(e.match(/^[a-z]+:\/\//i))return e;if(e.match(/^\/\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i))return e;let n=document.implementation.createHTMLDocument(),r=n.createElement(`base`),i=n.createElement(`a`);return n.head.appendChild(r),n.body.appendChild(i),t&&(r.href=t),i.href=e,i.href}var ze=(()=>{let e=0,t=()=>`0000${(Math.random()*36**4<<0).toString(36)}`.slice(-4);return()=>(e+=1,`u${t()}${e}`)})();function Be(e){let t=[];for(let n=0,r=e.length;n<r;n++)t.push(e[n]);return t}var Ve=null;function He(e={}){return Ve||(e.includeStyleProperties?(Ve=e.includeStyleProperties,Ve):(Ve=Be(window.getComputedStyle(document.documentElement)),Ve))}function Ue(e,t){let n=(e.ownerDocument.defaultView||window).getComputedStyle(e).getPropertyValue(t);return n?parseFloat(n.replace(`px`,``)):0}function We(e){let t=Ue(e,`border-left-width`),n=Ue(e,`border-right-width`);return e.clientWidth+t+n}function Ge(e){let t=Ue(e,`border-top-width`),n=Ue(e,`border-bottom-width`);return e.clientHeight+t+n}function Ke(e,t={}){return{width:t.width||We(e),height:t.height||Ge(e)}}function qe(){let e,t;try{t=process}catch{}let n=t&&t.env?t.env.devicePixelRatio:null;return n&&(e=parseInt(n,10),Number.isNaN(e)&&(e=1)),e||window.devicePixelRatio||1}var J=16384;function Je(e){(e.width>J||e.height>J)&&(e.width>J&&e.height>J?e.width>e.height?(e.height*=J/e.width,e.width=J):(e.width*=J/e.height,e.height=J):e.width>J?(e.height*=J/e.width,e.width=J):(e.width*=J/e.height,e.height=J))}function Ye(e,t={}){return e.toBlob?new Promise(n=>{e.toBlob(n,t.type?t.type:`image/png`,t.quality?t.quality:1)}):new Promise(n=>{let r=window.atob(e.toDataURL(t.type?t.type:void 0,t.quality?t.quality:void 0).split(`,`)[1]),i=r.length,a=new Uint8Array(i);for(let e=0;e<i;e+=1)a[e]=r.charCodeAt(e);n(new Blob([a],{type:t.type?t.type:`image/png`}))})}function Xe(e){return new Promise((t,n)=>{let r=new Image;r.onload=()=>{r.decode().then(()=>{requestAnimationFrame(()=>t(r))})},r.onerror=n,r.crossOrigin=`anonymous`,r.decoding=`async`,r.src=e})}async function Ze(e){return Promise.resolve().then(()=>new XMLSerializer().serializeToString(e)).then(encodeURIComponent).then(e=>`data:image/svg+xml;charset=utf-8,${e}`)}async function Qe(e,t,n){let r=`http://www.w3.org/2000/svg`,i=document.createElementNS(r,`svg`),a=document.createElementNS(r,`foreignObject`);return i.setAttribute(`width`,`${t}`),i.setAttribute(`height`,`${n}`),i.setAttribute(`viewBox`,`0 0 ${t} ${n}`),a.setAttribute(`width`,`100%`),a.setAttribute(`height`,`100%`),a.setAttribute(`x`,`0`),a.setAttribute(`y`,`0`),a.setAttribute(`externalResourcesRequired`,`true`),i.appendChild(a),a.appendChild(e),Ze(i)}var Y=(e,t)=>{if(e instanceof t)return!0;let n=Object.getPrototypeOf(e);return n===null?!1:n.constructor.name===t.name||Y(n,t)};function $e(e){let t=e.getPropertyValue(`content`);return`${e.cssText} content: '${t.replace(/'|"/g,``)}';`}function et(e,t){return He(t).map(t=>`${t}: ${e.getPropertyValue(t)}${e.getPropertyPriority(t)?` !important`:``};`).join(` `)}function tt(e,t,n,r){let i=`.${e}:${t}`,a=n.cssText?$e(n):et(n,r);return document.createTextNode(`${i}{${a}}`)}function nt(e,t,n,r){let i=window.getComputedStyle(e,n),a=i.getPropertyValue(`content`);if(a===``||a===`none`)return;let o=ze();try{t.className=`${t.className} ${o}`}catch{return}let s=document.createElement(`style`);s.appendChild(tt(o,n,i,r)),t.appendChild(s)}function rt(e,t,n){nt(e,t,`:before`,n),nt(e,t,`:after`,n)}var it=`application/font-woff`,at=`image/jpeg`,ot={woff:it,woff2:it,ttf:`application/font-truetype`,eot:`application/vnd.ms-fontobject`,png:`image/png`,jpg:at,jpeg:at,gif:`image/gif`,tiff:`image/tiff`,svg:`image/svg+xml`,webp:`image/webp`};function st(e){let t=/\.([^./]*?)$/g.exec(e);return t?t[1]:``}function ct(e){return ot[st(e).toLowerCase()]||``}function lt(e){return e.split(/,/)[1]}function ut(e){return e.search(/^(data:)/)!==-1}function dt(e,t){return`data:${t};base64,${e}`}async function ft(e,t,n){let r=await fetch(e,t);if(r.status===404)throw Error(`Resource "${r.url}" not found`);let i=await r.blob();return new Promise((e,t)=>{let a=new FileReader;a.onerror=t,a.onloadend=()=>{try{e(n({res:r,result:a.result}))}catch(e){t(e)}},a.readAsDataURL(i)})}var pt={};function mt(e,t,n){let r=e.replace(/\?.*/,``);return n&&(r=e),/ttf|otf|eot|woff2?/i.test(r)&&(r=r.replace(/.*\//,``)),t?`[${t}]${r}`:r}async function ht(e,t,n){let r=mt(e,t,n.includeQueryParams);if(pt[r]!=null)return pt[r];n.cacheBust&&(e+=(/\?/.test(e)?`&`:`?`)+new Date().getTime());let i;try{i=dt(await ft(e,n.fetchRequestInit,({res:e,result:n})=>(t||=e.headers.get(`Content-Type`)||``,lt(n))),t)}catch(t){i=n.imagePlaceholder||``;let r=`Failed to fetch resource: ${e}`;t&&(r=typeof t==`string`?t:t.message),r&&console.warn(r)}return pt[r]=i,i}async function gt(e){let t=e.toDataURL();return t===`data:,`?e.cloneNode(!1):Xe(t)}async function _t(e,t){if(e.currentSrc){let t=document.createElement(`canvas`),n=t.getContext(`2d`);return t.width=e.clientWidth,t.height=e.clientHeight,n?.drawImage(e,0,0,t.width,t.height),Xe(t.toDataURL())}let n=e.poster;return Xe(await ht(n,ct(n),t))}async function vt(e,t){try{if(e?.contentDocument?.body)return await Ot(e.contentDocument.body,t,!0)}catch{}return e.cloneNode(!1)}async function yt(e,t){return Y(e,HTMLCanvasElement)?gt(e):Y(e,HTMLVideoElement)?_t(e,t):Y(e,HTMLIFrameElement)?vt(e,t):e.cloneNode(xt(e))}var bt=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SLOT`,xt=e=>e.tagName!=null&&e.tagName.toUpperCase()===`SVG`;async function St(e,t,n){if(xt(t))return t;let r=[];return r=bt(e)&&e.assignedNodes?Be(e.assignedNodes()):Y(e,HTMLIFrameElement)&&e.contentDocument?.body?Be(e.contentDocument.body.childNodes):Be((e.shadowRoot??e).childNodes),r.length===0||Y(e,HTMLVideoElement)||await r.reduce((e,r)=>e.then(()=>Ot(r,n)).then(e=>{e&&t.appendChild(e)}),Promise.resolve()),t}function Ct(e,t,n){let r=t.style;if(!r)return;let i=window.getComputedStyle(e);i.cssText?(r.cssText=i.cssText,r.transformOrigin=i.transformOrigin):He(n).forEach(n=>{let a=i.getPropertyValue(n);n===`font-size`&&a.endsWith(`px`)&&(a=`${Math.floor(parseFloat(a.substring(0,a.length-2)))-.1}px`),Y(e,HTMLIFrameElement)&&n===`display`&&a===`inline`&&(a=`block`),n===`d`&&t.getAttribute(`d`)&&(a=`path(${t.getAttribute(`d`)})`),r.setProperty(n,a,i.getPropertyPriority(n))})}function wt(e,t){Y(e,HTMLTextAreaElement)&&(t.innerHTML=e.value),Y(e,HTMLInputElement)&&t.setAttribute(`value`,e.value)}function Tt(e,t){if(Y(e,HTMLSelectElement)){let n=t,r=Array.from(n.children).find(t=>e.value===t.getAttribute(`value`));r&&r.setAttribute(`selected`,``)}}function Et(e,t,n){return Y(t,Element)&&(Ct(e,t,n),rt(e,t,n),wt(e,t),Tt(e,t)),t}async function Dt(e,t){let n=e.querySelectorAll?e.querySelectorAll(`use`):[];if(n.length===0)return e;let r={};for(let i=0;i<n.length;i++){let a=n[i].getAttribute(`xlink:href`);if(a){let n=e.querySelector(a),i=document.querySelector(a);!n&&i&&!r[a]&&(r[a]=await Ot(i,t,!0))}}let i=Object.values(r);if(i.length){let t=`http://www.w3.org/1999/xhtml`,n=document.createElementNS(t,`svg`);n.setAttribute(`xmlns`,t),n.style.position=`absolute`,n.style.width=`0`,n.style.height=`0`,n.style.overflow=`hidden`,n.style.display=`none`;let r=document.createElementNS(t,`defs`);n.appendChild(r);for(let e=0;e<i.length;e++)r.appendChild(i[e]);e.appendChild(n)}return e}async function Ot(e,t,n){return!n&&t.filter&&!t.filter(e)?null:Promise.resolve(e).then(e=>yt(e,t)).then(n=>St(e,n,t)).then(n=>Et(e,n,t)).then(e=>Dt(e,t))}var kt=/url\((['"]?)([^'"]+?)\1\)/g,At=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,jt=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g;function Mt(e){let t=e.replace(/([.*+?^${}()|\[\]\/\\])/g,`\\$1`);return RegExp(`(url\\(['"]?)(${t})(['"]?\\))`,`g`)}function Nt(e){let t=[];return e.replace(kt,(e,n,r)=>(t.push(r),e)),t.filter(e=>!ut(e))}async function Pt(e,t,n,r,i){try{let a=n?Re(t,n):t,o=ct(t),s;return s=i?dt(await i(a),o):await ht(a,o,r),e.replace(Mt(t),`$1${s}$3`)}catch{}return e}function Ft(e,{preferredFontFormat:t}){return t?e.replace(jt,e=>{for(;;){let[n,,r]=At.exec(e)||[];if(!r)return``;if(r===t)return`src: ${n};`}}):e}function It(e){return e.search(kt)!==-1}async function Lt(e,t,n){if(!It(e))return e;let r=Ft(e,n);return Nt(r).reduce((e,r)=>e.then(e=>Pt(e,r,t,n)),Promise.resolve(r))}async function Rt(e,t,n){let r=t.style?.getPropertyValue(e);if(r){let i=await Lt(r,null,n);return t.style.setProperty(e,i,t.style.getPropertyPriority(e)),!0}return!1}async function zt(e,t){await Rt(`background`,e,t)||await Rt(`background-image`,e,t),await Rt(`mask`,e,t)||await Rt(`-webkit-mask`,e,t)||await Rt(`mask-image`,e,t)||await Rt(`-webkit-mask-image`,e,t)}async function Bt(e,t){let n=Y(e,HTMLImageElement);if(!(n&&!ut(e.src))&&!(Y(e,SVGImageElement)&&!ut(e.href.baseVal)))return;let r=n?e.src:e.href.baseVal,i=await ht(r,ct(r),t);await new Promise((r,a)=>{e.onload=r,e.onerror=t.onImageErrorHandler?(...e)=>{try{r(t.onImageErrorHandler(...e))}catch(e){a(e)}}:a;let o=e;o.decode&&=r,o.loading===`lazy`&&(o.loading=`eager`),n?(e.srcset=``,e.src=i):e.href.baseVal=i})}async function Vt(e,t){let n=Be(e.childNodes).map(e=>Ht(e,t));await Promise.all(n).then(()=>e)}async function Ht(e,t){Y(e,Element)&&(await zt(e,t),await Bt(e,t),await Vt(e,t))}function Ut(e,t){let{style:n}=e;t.backgroundColor&&(n.backgroundColor=t.backgroundColor),t.width&&(n.width=`${t.width}px`),t.height&&(n.height=`${t.height}px`);let r=t.style;return r!=null&&Object.keys(r).forEach(e=>{n[e]=r[e]}),e}var Wt={};async function Gt(e){let t=Wt[e];return t??(t={url:e,cssText:await(await fetch(e)).text()},Wt[e]=t,t)}async function Kt(e,t){let n=e.cssText,r=/url\(["']?([^"')]+)["']?\)/g,i=(n.match(/url\([^)]+\)/g)||[]).map(async i=>{let a=i.replace(r,`$1`);return a.startsWith(`https://`)||(a=new URL(a,e.url).href),ft(a,t.fetchRequestInit,({result:e})=>(n=n.replace(i,`url(${e})`),[i,e]))});return Promise.all(i).then(()=>n)}function qt(e){if(e==null)return[];let t=[],n=e.replace(/(\/\*[\s\S]*?\*\/)/gi,``),r=RegExp(`((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})`,`gi`);for(;;){let e=r.exec(n);if(e===null)break;t.push(e[0])}n=n.replace(r,``);let i=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,a=RegExp(`((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})`,`gi`);for(;;){let e=i.exec(n);if(e===null){if(e=a.exec(n),e===null)break;i.lastIndex=a.lastIndex}else a.lastIndex=i.lastIndex;t.push(e[0])}return t}async function Jt(e,t){let n=[],r=[];return e.forEach(n=>{if(`cssRules`in n)try{Be(n.cssRules||[]).forEach((e,i)=>{if(e.type===CSSRule.IMPORT_RULE){let a=i+1,o=e.href,s=Gt(o).then(e=>Kt(e,t)).then(e=>qt(e).forEach(e=>{try{n.insertRule(e,e.startsWith(`@import`)?a+=1:n.cssRules.length)}catch(t){console.error(`Error inserting rule from remote css`,{rule:e,error:t})}})).catch(e=>{console.error(`Error loading remote css`,e.toString())});r.push(s)}})}catch(i){let a=e.find(e=>e.href==null)||document.styleSheets[0];n.href!=null&&r.push(Gt(n.href).then(e=>Kt(e,t)).then(e=>qt(e).forEach(e=>{a.insertRule(e,a.cssRules.length)})).catch(e=>{console.error(`Error loading remote stylesheet`,e)})),console.error(`Error inlining remote css file`,i)}}),Promise.all(r).then(()=>(e.forEach(e=>{if(`cssRules`in e)try{Be(e.cssRules||[]).forEach(e=>{n.push(e)})}catch(t){console.error(`Error while reading CSS rules from ${e.href}`,t)}}),n))}function Yt(e){return e.filter(e=>e.type===CSSRule.FONT_FACE_RULE).filter(e=>It(e.style.getPropertyValue(`src`)))}async function Xt(e,t){if(e.ownerDocument==null)throw Error(`Provided element is not within a Document`);return Yt(await Jt(Be(e.ownerDocument.styleSheets),t))}function Zt(e){return e.trim().replace(/["']/g,``)}function Qt(e){let t=new Set;function n(e){(e.style.fontFamily||getComputedStyle(e).fontFamily).split(`,`).forEach(e=>{t.add(Zt(e))}),Array.from(e.children).forEach(e=>{e instanceof HTMLElement&&n(e)})}return n(e),t}async function $t(e,t){let n=await Xt(e,t),r=Qt(e);return(await Promise.all(n.filter(e=>r.has(Zt(e.style.fontFamily))).map(e=>{let n=e.parentStyleSheet?e.parentStyleSheet.href:null;return Lt(e.cssText,n,t)}))).join(`
2
2
  `)}async function en(e,t){let n=t.fontEmbedCSS==null?t.skipFonts?null:await $t(e,t):t.fontEmbedCSS;if(n){let t=document.createElement(`style`),r=document.createTextNode(n);t.appendChild(r),e.firstChild?e.insertBefore(t,e.firstChild):e.appendChild(t)}}var tn=n({getFontEmbedCSS:()=>ln,toBlob:()=>cn,toCanvas:()=>rn,toJpeg:()=>sn,toPixelData:()=>an,toPng:()=>on,toSvg:()=>nn});async function nn(e,t={}){let{width:n,height:r}=Ke(e,t),i=await Ot(e,t,!0);return await en(i,t),await Ht(i,t),Ut(i,t),await Qe(i,n,r)}async function rn(e,t={}){let{width:n,height:r}=Ke(e,t),i=await Xe(await nn(e,t)),a=document.createElement(`canvas`),o=a.getContext(`2d`),s=t.pixelRatio||qe(),c=t.canvasWidth||n,l=t.canvasHeight||r;return a.width=c*s,a.height=l*s,t.skipAutoScale||Je(a),a.style.width=`${c}`,a.style.height=`${l}`,t.backgroundColor&&(o.fillStyle=t.backgroundColor,o.fillRect(0,0,a.width,a.height)),o.drawImage(i,0,0,a.width,a.height),a}async function an(e,t={}){let{width:n,height:r}=Ke(e,t);return(await rn(e,t)).getContext(`2d`).getImageData(0,0,n,r).data}async function on(e,t={}){return(await rn(e,t)).toDataURL()}async function sn(e,t={}){return(await rn(e,t)).toDataURL(`image/jpeg`,t.quality||1)}async function cn(e,t={}){return await Ye(await rn(e,t))}async function ln(e,t={}){return $t(e,t)}var un={png:{mimeType:`image/png`,extension:`.png`},jpg:{mimeType:`image/jpeg`,extension:`.jpg`}},dn={jpeg:`jpg`},fn=Object.keys(un).sort().join(`, `);function pn(e){if(e==null||e===``)return{format:`png`,...un.png};let t=String(e).toLowerCase(),n=dn[t]??t;if(!un[n])throw Error(`captureArtboard: unsupported format "${e}". Supported formats: ${fn}.`);return{format:n,...un[n]}}function mn(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r)n+=String.fromCharCode.apply(null,t.subarray(e,e+r));return btoa(n)}function hn(e){return e.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``).trim()).filter(Boolean)}function gn(e){let t=new Set([`IMG`,`VIDEO`,`CANVAS`,`SVG`]),n=new Set,r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode(e){return t.has(e.tagName)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),i=e;for(;i;){let e=window.getComputedStyle(i).getPropertyValue(`font-family`);if(e)for(let t of hn(e))n.add(t);for(let e of[`::before`,`::after`])try{let t=window.getComputedStyle(i,e).getPropertyValue(`font-family`);if(t)for(let e of hn(t))n.add(e)}catch{}i=r.nextNode()}return n}function _n(){let e=new Set;for(let t of document.querySelectorAll(`link[rel="stylesheet"]`))t.href&&t.href.includes(`fonts.googleapis.com`)&&e.add(t.href);for(let t of document.querySelectorAll(`style`)){let n=(t.textContent||``).matchAll(/@import\s+url\(\s*["']?(https:\/\/fonts\.googleapis\.com\/[^"')]+)["']?\s*\)/g);for(let t of n)e.add(t[1])}return[...e]}async function vn(e){let t=await fetch(e,{mode:`cors`});if(!t.ok)throw Error(`Google Fonts CSS fetch failed: ${t.status}`);let n=await t.text(),r=[...new Set(Array.from(n.matchAll(/url\((https:\/\/fonts\.gstatic\.com\/[^)]+)\)/g)).map(e=>e[1]))],i=await Promise.all(r.map(async e=>{try{let t=await fetch(e,{mode:`cors`});return t.ok?[e,`data:font/woff2;base64,${mn(await t.arrayBuffer())}`]:[e,null]}catch{return[e,null]}}));for(let[e,t]of i)t&&(n=n.split(e).join(t));return n}function yn(e,t,n){let r=n===`truetype`?`font/ttf`:n===`opentype`?`font/otf`:`font/${n}`;return`@font-face {\n font-family: '${e.replace(/'/g,`\\'`)}' ;\n src: url('data:${r};base64,${t}') format('${n}');\n font-display: swap;\n}`}async function bn(e,t={}){let{format:n,quality:r=.92,pixelRatio:i=2,backgroundColor:a,fontResolver:o=null}=t,{format:s}=pn(n);if(typeof document<`u`&&document.fonts?.ready)try{await document.fonts.ready}catch{}let c=gn(e),l=[],u=[...c].sort(),d=[];if(o)for(let e of u){let t;try{t=await o(e)}catch(n){console.warn(`captureArtboard: fontResolver threw for "${e}":`,n),t=null}if(!t)continue;let{url:n,format:r}=t;try{let t=await fetch(n);if(!t.ok)throw Error(`HTTP ${t.status}`);let i=mn(await t.arrayBuffer());d.push({family:e,rule:yn(e,i,r||`woff2`)})}catch(t){console.warn(`captureArtboard: failed to embed custom font "${e}":`,t),l.push(e)}}let f=``,p=_n();for(let e of p)try{let t=await vn(e);f+=`
3
3
  `+t}catch(t){console.warn(`captureArtboard: Google Fonts CSS fetch failed for ${e}:`,t)}let m=[d.sort((e,t)=>e.family.localeCompare(t.family)).map(e=>e.rule).join(`
4
4
 
@@ -262,7 +262,7 @@ import{i as e,n as t,o as n,r,s as i,t as a}from"./index-DUcLZ6GX.js";import{_ a
262
262
 
263
263
  @media (prefers-reduced-motion: reduce) {
264
264
  .lm-variant-tab { transition: none !important; }
265
- }`,document.head.appendChild(e)}function Mi({variants:e,activeVariant:t,onChange:n}){let r=T.useRef([]),i=T.useCallback((t,i)=>{if(t.key===`ArrowRight`){t.preventDefault();let a=(i+1)%e.length;n(e[a]),setTimeout(()=>{r.current[a]?.focus()},0)}else if(t.key===`ArrowLeft`){t.preventDefault();let a=(i-1+e.length)%e.length;n(e[a]),setTimeout(()=>{r.current[a]?.focus()},0)}},[e,n]);return(0,D.jsx)(`div`,{role:`tablist`,"aria-label":`Variants`,className:`lm-variant-tabs`,"data-testid":`lm-variant-tabs`,children:e.map((e,a)=>{let o=e===t;return(0,D.jsxs)(`button`,{role:`tab`,"aria-selected":o,tabIndex:o?0:-1,className:`lm-variant-tab`,"data-testid":`lm-variant-tab-${e}`,ref:e=>{r.current[a]=e},onClick:()=>n(e),onKeyDown:e=>i(e,a),children:[(0,D.jsx)(`span`,{className:`lm-variant-tab__dot`,"aria-hidden":`true`}),e]},e)})})}function Ni(e,t){if(!t||typeof t!=`object`)return{valid:!0,message:null};let n=e==null||e===``;if(t.required&&n)return{valid:!1,message:`This field is required.`};if(n)return{valid:!0,message:null};switch(t.type){case`string`:return typeof e==`string`?{valid:!0,message:null}:{valid:!1,message:`Expected a text value, got ${typeof e}.`};case`number`:return typeof e!=`number`||!Number.isFinite(e)?{valid:!1,message:`Expected a valid number.`}:t.min!==void 0&&e<t.min?{valid:!1,message:`Value must be at least ${t.min}.`}:t.max!==void 0&&e>t.max?{valid:!1,message:`Value must be at most ${t.max}.`}:{valid:!0,message:null};case`boolean`:return typeof e==`boolean`?{valid:!0,message:null}:{valid:!1,message:`Expected a boolean (on/off) value.`};case`select`:{let n=Array.isArray(t.options)?t.options:[];return n.includes(e)?{valid:!0,message:null}:{valid:!1,message:n.length?`Expected one of: ${n.join(`, `)}.`:`No options defined for this field.`}}case`array`:return Array.isArray(e)?{valid:!0,message:null}:{valid:!1,message:`Expected a list of values.`};case`object`:return typeof e!=`object`||!e||Array.isArray(e)?{valid:!1,message:`Expected a set of named fields.`}:{valid:!0,message:null};default:return{valid:!0,message:null}}}function Pi(){return(0,D.jsxs)(`svg`,{className:`lm-field__invalid-icon`,"aria-hidden":`true`,focusable:`false`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,D.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7.25`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,D.jsx)(`line`,{x1:`8`,y1:`4.5`,x2:`8`,y2:`9`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,D.jsx)(`circle`,{cx:`8`,cy:`11.5`,r:`0.875`,fill:`currentColor`})]})}function Fi({fieldKey:e,inputId:t,required:n,description:r,invalid:i,invalidMessage:a,children:o}){return(0,D.jsxs)(`div`,{className:`lm-field`,"data-field-key":e,children:[(0,D.jsxs)(`div`,{className:`lm-field__label-row`,children:[(0,D.jsx)(`label`,{className:`lm-field__label`,htmlFor:t,children:e?e.replace(/([A-Z])/g,` $1`).replace(/_/g,` `).trim():``}),n&&(0,D.jsx)(`span`,{className:`lm-field__required`,"aria-label":`required`,title:`This field is required`,children:`*`})]}),o,r&&(0,D.jsx)(`p`,{className:`lm-field__description`,children:r}),i&&a&&(0,D.jsxs)(`div`,{className:`lm-field__invalid-msg`,role:`alert`,"aria-live":`polite`,"data-invalid-message":!0,children:[(0,D.jsx)(Pi,{}),(0,D.jsxs)(`span`,{children:[`Invalid: `,a]})]})]})}var Ii=300;function Li({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),[s,c]=(0,T.useState)(n??``),l=(0,T.useRef)(null);(0,T.useEffect)(()=>{c(n??``)},[n]);let u=Ni(s===``?void 0:s,t),d=!u.valid,f=(0,T.useCallback)(()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)},[]),p=(0,T.useCallback)(e=>{let t=e.target.value;c(t),f(),l.current=setTimeout(()=>{r?.(t)},Ii)},[r,f]),m=(0,T.useCallback)(e=>{f();let t=e.target.value;r?.(t),i?.(t)},[r,i,f]),h=t?.default!==void 0&&t.default!==null?String(t.default):void 0;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:d,invalidMessage:u.message,children:(0,D.jsx)(`input`,{id:o,type:`text`,className:[`lm-input`,d?`lm-input--invalid`:``].filter(Boolean).join(` `),value:s,onChange:p,onBlur:m,disabled:a,placeholder:h,"aria-invalid":d?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`text`})})}var Ri=300;function zi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),[s,c]=(0,T.useState)(n==null?``:String(n)),l=(0,T.useRef)(null);(0,T.useEffect)(()=>{c(n==null?``:String(n))},[n]);let u=e=>{let t=parseFloat(e);return Number.isFinite(t)?t:void 0},d=Ni(u(s),t),f=!d.valid,p=(0,T.useCallback)(()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)},[]),m=(0,T.useCallback)(e=>{let t=e.target.value;c(t),p(),l.current=setTimeout(()=>{let e=u(t);e!==void 0&&r?.(e)},Ri)},[r,p]),h=(0,T.useCallback)(e=>{p();let t=e.target.value,n=u(t);n!==void 0&&(r?.(n),i?.(n))},[r,i,p]),g=t?.default!==void 0&&t.default!==null?String(t.default):void 0;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:f,invalidMessage:d.message,children:(0,D.jsx)(`input`,{id:o,type:`number`,className:[`lm-input`,f?`lm-input--invalid`:``].filter(Boolean).join(` `),value:s,onChange:m,onBlur:h,disabled:a,placeholder:g,min:t?.min,max:t?.max,"aria-invalid":f?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`number`})})}function Bi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),s=typeof t?.default==`boolean`?t.default:!1,c=n==null?s:!!n,l=Ni(n??void 0,t),u=!l.valid,d=()=>{if(a)return;let e=!c;r?.(e),i?.(e)},f=e=>{(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),d())},p=[`lm-toggle__track`,c?`lm-toggle__track--on`:``,u?`lm-toggle__track--invalid`:``,a?`lm-toggle__track--disabled`:``].filter(Boolean).join(` `);return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:u,invalidMessage:l.message,children:(0,D.jsxs)(`div`,{className:`lm-toggle`,children:[(0,D.jsx)(`button`,{id:o,role:`switch`,"aria-checked":c,"aria-required":t?.required?`true`:void 0,"aria-invalid":u?`true`:void 0,"aria-label":e,className:p,onClick:d,onKeyDown:f,disabled:a,type:`button`,"data-control-type":`boolean`,children:(0,D.jsx)(`span`,{className:`lm-toggle__thumb`,"aria-hidden":`true`})}),(0,D.jsx)(`span`,{className:`lm-toggle__label`,"aria-hidden":`true`,children:c?`On`:`Off`})]})})}function Vi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),s=Array.isArray(t?.options)?t.options:[],c=Ni(n??void 0,t),l=!c.valid,u=e=>{let t=e.target.value;r?.(t),i?.(t)},d=n!=null&&n!==``,f=typeof t?.default==`string`?t.default:``;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:l,invalidMessage:c.message,children:(0,D.jsxs)(`select`,{id:o,className:[`lm-input`,`lm-select`,l?`lm-input--invalid`:``].filter(Boolean).join(` `),value:d?n:``,onChange:u,onBlur:u,disabled:a,"aria-invalid":l?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`select`,children:[!d&&(0,D.jsx)(`option`,{value:``,disabled:t?.required,children:f===``?`Select…`:f}),s.map(e=>(0,D.jsx)(`option`,{value:e,children:e},e))]})})}function Hi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=Array.isArray(n)?n:[],s=t?.itemSchema??{type:`string`},c=Ni(n??void 0,t),l=!c.valid,u=(0,T.useCallback)(e=>{r?.(e),i?.(e)},[r,i]),d=(0,T.useCallback)((e,t)=>{let n=o.slice();n[e]=t,u(n)},[o,u]),f=(0,T.useCallback)(()=>{let e=s?.default===void 0?s?.type===`boolean`?!1:s?.type===`number`?0:``:s.default;u([...o,e])},[o,s,u]),p=(0,T.useCallback)(e=>{u(o.filter((t,n)=>n!==e))},[o,u]),m=(0,T.useCallback)(e=>{if(e===0)return;let t=o.slice();[t[e-1],t[e]]=[t[e],t[e-1]],u(t)},[o,u]),h=(0,T.useCallback)(e=>{if(e===o.length-1)return;let t=o.slice();[t[e],t[e+1]]=[t[e+1],t[e]],u(t)},[o,u]);return(0,D.jsx)(Fi,{fieldKey:e,required:t?.required,description:t?.description,invalid:l,invalidMessage:c.message,children:(0,D.jsxs)(`div`,{className:`lm-array`,"data-control-type":`array`,children:[(0,D.jsx)(`div`,{className:`lm-array__items`,role:`list`,children:o.map((t,n)=>(0,D.jsxs)(`div`,{className:`lm-array__item`,role:`listitem`,"data-array-index":n,children:[(0,D.jsx)(`div`,{className:`lm-array__item-field`,children:(0,D.jsx)(Wi,{fieldKey:`${e}[${n}]`,schema:s,value:t,onChange:e=>d(n,e),onCommit:e=>d(n,e),disabled:a})}),(0,D.jsxs)(`div`,{className:`lm-array__item-actions`,children:[(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn`,onClick:()=>m(n),disabled:a||n===0,"aria-label":`Move item ${n+1} up`,title:`Move up`,"data-array-move-up":n,children:`↑`}),(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn`,onClick:()=>h(n),disabled:a||n===o.length-1,"aria-label":`Move item ${n+1} down`,title:`Move down`,"data-array-move-down":n,children:`↓`}),(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn lm-icon-btn--danger`,onClick:()=>p(n),disabled:a,"aria-label":`Remove item ${n+1}`,title:`Remove`,"data-array-remove":n,children:`×`})]})]},n))}),(0,D.jsx)(`button`,{type:`button`,className:`lm-array__add`,onClick:f,disabled:a,"aria-label":`Add item to ${e}`,"data-array-add":!0,children:`+ Add item`})]})})}function Ui({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=typeof n==`object`&&n&&!Array.isArray(n)?n:{},s=Ni(n??void 0,t),c=!s.valid,l=t?.properties??{},u=Object.keys(l).length>0?Object.keys(l):Object.keys(o),d=(e,t)=>{let n={...o,[e]:t};r?.(n),i?.(n)};return(0,D.jsx)(Fi,{fieldKey:e,required:t?.required,description:t?.description,invalid:c,invalidMessage:s.message,children:(0,D.jsxs)(`div`,{className:`lm-object`,"data-control-type":`object`,children:[u.map(e=>(0,D.jsx)(Wi,{fieldKey:e,schema:l[e]??{type:`string`},value:Object.prototype.hasOwnProperty.call(o,e)?o[e]:void 0,onChange:t=>d(e,t),onCommit:t=>d(e,t),disabled:a},e)),u.length===0&&(0,D.jsx)(`p`,{style:{margin:0,fontFamily:`var(--lm-font-sans)`,fontSize:`var(--lm-size-body-sm, 12px)`,color:`var(--lm-text-muted, #B8B3A8)`},children:`No properties defined.`})]})})}function Wi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=t?.type??`string`,s={fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a};switch(o){case`string`:return(0,D.jsx)(Li,{...s});case`number`:return(0,D.jsx)(zi,{...s});case`boolean`:return(0,D.jsx)(Bi,{...s});case`select`:return(0,D.jsx)(Vi,{...s});case`array`:return(0,D.jsx)(Hi,{...s});case`object`:return(0,D.jsx)(Ui,{...s});default:return(0,D.jsx)(Li,{...s,schema:{...t,type:`string`}})}}var Gi=`/__lerret/write`,Ki=`/__lerret/rename`,qi=`/__lerret/duplicate`,Ji=`/__lerret/delete`,Yi=`/__lerret/reveal`;function Xi(){return typeof globalThis<`u`&&globalThis.__LERRET_CLI_MODE__===!0}async function Zi(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`writeProjectFile: path must be a non-empty string`};if(typeof t!=`string`)return{ok:!1,error:`writeProjectFile: content must be a string`};if(!Xi())return{ok:!1,error:"writes are disabled in standalone mode (run `lerret dev` to enable)"};let r=n.fetch||(typeof globalThis<`u`?globalThis.fetch:void 0);if(typeof r!=`function`)return{ok:!1,error:`no fetch implementation available`};let i;try{i=await r(Gi,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e,content:t})})}catch(e){return{ok:!1,error:`network error: ${e instanceof Error?e.message:String(e)}`}}let a;try{a=await i.json()}catch{return{ok:!1,error:`server returned non-JSON response (status ${i.status})`}}return a&&a.ok===!0?{ok:!0}:{ok:!1,error:a&&typeof a.error==`string`&&a.error||`write failed (status ${i.status})`}}async function Qi(e,t,n={}){if(!Xi())return{ok:!1,error:"lifecycle actions are disabled in standalone mode (run `lerret dev` to enable)"};let r=n.fetch||(typeof globalThis<`u`?globalThis.fetch:void 0);if(typeof r!=`function`)return{ok:!1,error:`no fetch implementation available`};let i;try{i=await r(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})}catch(e){return{ok:!1,error:`network error: ${e instanceof Error?e.message:String(e)}`}}let a;try{a=await i.json()}catch{return{ok:!1,error:`server returned non-JSON response (status ${i.status})`}}return a&&a.ok===!0?a:{ok:!1,error:a&&typeof a.error==`string`&&a.error||`request failed (status ${i.status})`}}async function $i(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`renameProjectFile: from must be a non-empty string`};if(typeof t!=`string`||t.length===0)return{ok:!1,error:`renameProjectFile: to must be a non-empty string`};let r=await Qi(Ki,{from:e,to:t},n);return r.ok?{ok:!0}:{ok:!1,error:r.error}}async function ea(e,t={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`duplicateProjectFile: path must be a non-empty string`};let n=await Qi(qi,{path:e},t);return n.ok?{ok:!0,path:typeof n.path==`string`?n.path:void 0}:{ok:!1,error:n.error}}async function ta(e,t={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`deleteProjectFile: path must be a non-empty string`};let n=await Qi(Ji,{path:e},t);return n.ok?{ok:!0}:{ok:!1,error:n.error}}async function na(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`revealProjectFile: path must be a non-empty string`};if(t!==`editor`&&t!==`finder`)return{ok:!1,error:`revealProjectFile: target must be "editor" or "finder"`};let r=await Qi(Yi,{path:e,target:t},n);return r.ok?{ok:!0}:{ok:!1,error:r.error}}function ra(){return Xi()}async function ia(e){if(typeof globalThis>`u`||typeof globalThis.fetch!=`function`)return{ok:!1,value:{},error:`no fetch implementation available`};let t=e.indexOf(`/.lerret/`),n=t===-1?e.replace(/^\/+/,``):e.slice(t+9),r=[`/@lerret-project/${n}`,`/@fixture-lerret/${n}`];for(let e of r)try{let t=await globalThis.fetch(e,{method:`GET`,cache:`no-store`});if(t.status===404||!t.ok)continue;let n=t.headers.get(`content-type`)||``;if(!n.includes(`json`)&&!n.includes(`text/plain`))continue;let r=await t.text();try{return{ok:!0,value:JSON.parse(r)}}catch(e){return{ok:!1,value:{},error:e instanceof Error?e.message:String(e)}}}catch{}return{ok:!0,value:{},missing:!0}}if(typeof document<`u`&&!document.getElementById(`data-editor-styles`)){let e=document.createElement(`style`);e.id=`data-editor-styles`,e.textContent=`.lm-data-editor {
265
+ }`,document.head.appendChild(e)}function Mi({variants:e,activeVariant:t,onChange:n}){let r=T.useRef([]),i=T.useCallback((t,i)=>{if(t.key===`ArrowRight`){t.preventDefault();let a=(i+1)%e.length;n(e[a]),setTimeout(()=>{r.current[a]?.focus()},0)}else if(t.key===`ArrowLeft`){t.preventDefault();let a=(i-1+e.length)%e.length;n(e[a]),setTimeout(()=>{r.current[a]?.focus()},0)}},[e,n]);return(0,D.jsx)(`div`,{role:`tablist`,"aria-label":`Variants`,className:`lm-variant-tabs`,"data-testid":`lm-variant-tabs`,children:e.map((e,a)=>{let o=e===t;return(0,D.jsxs)(`button`,{role:`tab`,"aria-selected":o,tabIndex:o?0:-1,className:`lm-variant-tab`,"data-testid":`lm-variant-tab-${e}`,ref:e=>{r.current[a]=e},onClick:()=>n(e),onKeyDown:e=>i(e,a),children:[(0,D.jsx)(`span`,{className:`lm-variant-tab__dot`,"aria-hidden":`true`}),e]},e)})})}function Ni(e,t){if(!t||typeof t!=`object`)return{valid:!0,message:null};let n=e==null||e===``;if(t.required&&n)return{valid:!1,message:`This field is required.`};if(n)return{valid:!0,message:null};switch(t.type){case`string`:return typeof e==`string`?{valid:!0,message:null}:{valid:!1,message:`Expected a text value, got ${typeof e}.`};case`number`:return typeof e!=`number`||!Number.isFinite(e)?{valid:!1,message:`Expected a valid number.`}:t.min!==void 0&&e<t.min?{valid:!1,message:`Value must be at least ${t.min}.`}:t.max!==void 0&&e>t.max?{valid:!1,message:`Value must be at most ${t.max}.`}:{valid:!0,message:null};case`boolean`:return typeof e==`boolean`?{valid:!0,message:null}:{valid:!1,message:`Expected a boolean (on/off) value.`};case`select`:{let n=Array.isArray(t.options)?t.options:[];return n.includes(e)?{valid:!0,message:null}:{valid:!1,message:n.length?`Expected one of: ${n.join(`, `)}.`:`No options defined for this field.`}}case`array`:return Array.isArray(e)?{valid:!0,message:null}:{valid:!1,message:`Expected a list of values.`};case`object`:return typeof e!=`object`||!e||Array.isArray(e)?{valid:!1,message:`Expected a set of named fields.`}:{valid:!0,message:null};default:return{valid:!0,message:null}}}function Pi(){return(0,D.jsxs)(`svg`,{className:`lm-field__invalid-icon`,"aria-hidden":`true`,focusable:`false`,viewBox:`0 0 16 16`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,D.jsx)(`circle`,{cx:`8`,cy:`8`,r:`7.25`,stroke:`currentColor`,strokeWidth:`1.5`}),(0,D.jsx)(`line`,{x1:`8`,y1:`4.5`,x2:`8`,y2:`9`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`}),(0,D.jsx)(`circle`,{cx:`8`,cy:`11.5`,r:`0.875`,fill:`currentColor`})]})}function Fi({fieldKey:e,inputId:t,required:n,description:r,invalid:i,invalidMessage:a,children:o}){return(0,D.jsxs)(`div`,{className:`lm-field`,"data-field-key":e,children:[(0,D.jsxs)(`div`,{className:`lm-field__label-row`,children:[(0,D.jsx)(`label`,{className:`lm-field__label`,htmlFor:t,children:e?e.replace(/([A-Z])/g,` $1`).replace(/_/g,` `).trim():``}),n&&(0,D.jsx)(`span`,{className:`lm-field__required`,"aria-label":`required`,title:`This field is required`,children:`*`})]}),o,r&&(0,D.jsx)(`p`,{className:`lm-field__description`,children:r}),i&&a&&(0,D.jsxs)(`div`,{className:`lm-field__invalid-msg`,role:`alert`,"aria-live":`polite`,"data-invalid-message":!0,children:[(0,D.jsx)(Pi,{}),(0,D.jsxs)(`span`,{children:[`Invalid: `,a]})]})]})}var Ii=300;function Li({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),[s,c]=(0,T.useState)(n??``),l=(0,T.useRef)(null);(0,T.useEffect)(()=>{c(n??``)},[n]);let u=Ni(s===``?void 0:s,t),d=!u.valid,f=(0,T.useCallback)(()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)},[]),p=(0,T.useCallback)(e=>{let t=e.target.value;c(t),f(),l.current=setTimeout(()=>{r?.(t)},Ii)},[r,f]),m=(0,T.useCallback)(e=>{f();let t=e.target.value;r?.(t),i?.(t)},[r,i,f]),h=t?.default!==void 0&&t.default!==null?String(t.default):void 0;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:d,invalidMessage:u.message,children:(0,D.jsx)(`input`,{id:o,type:`text`,className:[`lm-input`,d?`lm-input--invalid`:``].filter(Boolean).join(` `),value:s,onChange:p,onBlur:m,disabled:a,placeholder:h,"aria-invalid":d?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`text`})})}var Ri=300;function zi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),[s,c]=(0,T.useState)(n==null?``:String(n)),l=(0,T.useRef)(null);(0,T.useEffect)(()=>{c(n==null?``:String(n))},[n]);let u=e=>{let t=parseFloat(e);return Number.isFinite(t)?t:void 0},d=Ni(u(s),t),f=!d.valid,p=(0,T.useCallback)(()=>{l.current!==null&&(clearTimeout(l.current),l.current=null)},[]),m=(0,T.useCallback)(e=>{let t=e.target.value;c(t),p(),l.current=setTimeout(()=>{let e=u(t);e!==void 0&&r?.(e)},Ri)},[r,p]),h=(0,T.useCallback)(e=>{p();let t=e.target.value,n=u(t);n!==void 0&&(r?.(n),i?.(n))},[r,i,p]),g=t?.default!==void 0&&t.default!==null?String(t.default):void 0;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:f,invalidMessage:d.message,children:(0,D.jsx)(`input`,{id:o,type:`number`,className:[`lm-input`,f?`lm-input--invalid`:``].filter(Boolean).join(` `),value:s,onChange:m,onBlur:h,disabled:a,placeholder:g,min:t?.min,max:t?.max,"aria-invalid":f?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`number`})})}function Bi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),s=typeof t?.default==`boolean`?t.default:!1,c=n==null?s:!!n,l=Ni(n??void 0,t),u=!l.valid,d=()=>{if(a)return;let e=!c;r?.(e),i?.(e)},f=e=>{(e.key===` `||e.key===`Enter`)&&(e.preventDefault(),d())},p=[`lm-toggle__track`,c?`lm-toggle__track--on`:``,u?`lm-toggle__track--invalid`:``,a?`lm-toggle__track--disabled`:``].filter(Boolean).join(` `);return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:u,invalidMessage:l.message,children:(0,D.jsxs)(`div`,{className:`lm-toggle`,children:[(0,D.jsx)(`button`,{id:o,role:`switch`,"aria-checked":c,"aria-required":t?.required?`true`:void 0,"aria-invalid":u?`true`:void 0,"aria-label":e,className:p,onClick:d,onKeyDown:f,disabled:a,type:`button`,"data-control-type":`boolean`,children:(0,D.jsx)(`span`,{className:`lm-toggle__thumb`,"aria-hidden":`true`})}),(0,D.jsx)(`span`,{className:`lm-toggle__label`,"aria-hidden":`true`,children:c?`On`:`Off`})]})})}function Vi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=(0,T.useId)(),s=Array.isArray(t?.options)?t.options:[],c=Ni(n??void 0,t),l=!c.valid,u=e=>{let t=e.target.value;r?.(t),i?.(t)},d=n!=null&&n!==``,f=typeof t?.default==`string`?t.default:``;return(0,D.jsx)(Fi,{fieldKey:e,inputId:o,required:t?.required,description:t?.description,invalid:l,invalidMessage:c.message,children:(0,D.jsxs)(`select`,{id:o,className:[`lm-input`,`lm-select`,l?`lm-input--invalid`:``].filter(Boolean).join(` `),value:d?n:``,onChange:u,onBlur:u,disabled:a,"aria-invalid":l?`true`:void 0,"aria-required":t?.required?`true`:void 0,"data-control-type":`select`,children:[!d&&(0,D.jsx)(`option`,{value:``,disabled:t?.required,children:f===``?`Select…`:f}),s.map(e=>(0,D.jsx)(`option`,{value:e,children:e},e))]})})}function Hi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=Array.isArray(n)?n:[],s=t?.itemSchema??{type:`string`},c=Ni(n??void 0,t),l=!c.valid,u=(0,T.useCallback)(e=>{r?.(e),i?.(e)},[r,i]),d=(0,T.useCallback)((e,t)=>{let n=o.slice();n[e]=t,u(n)},[o,u]),f=(0,T.useCallback)(()=>{let e=s?.default===void 0?s?.type===`boolean`?!1:s?.type===`number`?0:``:s.default;u([...o,e])},[o,s,u]),p=(0,T.useCallback)(e=>{u(o.filter((t,n)=>n!==e))},[o,u]),m=(0,T.useCallback)(e=>{if(e===0)return;let t=o.slice();[t[e-1],t[e]]=[t[e],t[e-1]],u(t)},[o,u]),h=(0,T.useCallback)(e=>{if(e===o.length-1)return;let t=o.slice();[t[e],t[e+1]]=[t[e+1],t[e]],u(t)},[o,u]);return(0,D.jsx)(Fi,{fieldKey:e,required:t?.required,description:t?.description,invalid:l,invalidMessage:c.message,children:(0,D.jsxs)(`div`,{className:`lm-array`,"data-control-type":`array`,children:[(0,D.jsx)(`div`,{className:`lm-array__items`,role:`list`,children:o.map((t,n)=>(0,D.jsxs)(`div`,{className:`lm-array__item`,role:`listitem`,"data-array-index":n,children:[(0,D.jsx)(`div`,{className:`lm-array__item-field`,children:(0,D.jsx)(Wi,{fieldKey:`${e}[${n}]`,schema:s,value:t,onChange:e=>d(n,e),onCommit:e=>d(n,e),disabled:a})}),(0,D.jsxs)(`div`,{className:`lm-array__item-actions`,children:[(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn`,onClick:()=>m(n),disabled:a||n===0,"aria-label":`Move item ${n+1} up`,title:`Move up`,"data-array-move-up":n,children:`↑`}),(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn`,onClick:()=>h(n),disabled:a||n===o.length-1,"aria-label":`Move item ${n+1} down`,title:`Move down`,"data-array-move-down":n,children:`↓`}),(0,D.jsx)(`button`,{type:`button`,className:`lm-icon-btn lm-icon-btn--danger`,onClick:()=>p(n),disabled:a,"aria-label":`Remove item ${n+1}`,title:`Remove`,"data-array-remove":n,children:`×`})]})]},n))}),(0,D.jsx)(`button`,{type:`button`,className:`lm-array__add`,onClick:f,disabled:a,"aria-label":`Add item to ${e}`,"data-array-add":!0,children:`+ Add item`})]})})}function Ui({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=typeof n==`object`&&n&&!Array.isArray(n)?n:{},s=Ni(n??void 0,t),c=!s.valid,l=t?.properties??{},u=Object.keys(l).length>0?Object.keys(l):Object.keys(o),d=(e,t)=>{let n={...o,[e]:t};r?.(n),i?.(n)};return(0,D.jsx)(Fi,{fieldKey:e,required:t?.required,description:t?.description,invalid:c,invalidMessage:s.message,children:(0,D.jsxs)(`div`,{className:`lm-object`,"data-control-type":`object`,children:[u.map(e=>(0,D.jsx)(Wi,{fieldKey:e,schema:l[e]??{type:`string`},value:Object.prototype.hasOwnProperty.call(o,e)?o[e]:void 0,onChange:t=>d(e,t),onCommit:t=>d(e,t),disabled:a},e)),u.length===0&&(0,D.jsx)(`p`,{style:{margin:0,fontFamily:`var(--lm-font-sans)`,fontSize:`var(--lm-size-body-sm, 12px)`,color:`var(--lm-text-muted, #B8B3A8)`},children:`No properties defined.`})]})})}function Wi({fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a}){let o=t?.type??`string`,s={fieldKey:e,schema:t,value:n,onChange:r,onCommit:i,disabled:a};switch(o){case`string`:return(0,D.jsx)(Li,{...s});case`number`:return(0,D.jsx)(zi,{...s});case`boolean`:return(0,D.jsx)(Bi,{...s});case`select`:return(0,D.jsx)(Vi,{...s});case`array`:return(0,D.jsx)(Hi,{...s});case`object`:return(0,D.jsx)(Ui,{...s});default:return(0,D.jsx)(Li,{...s,schema:{...t,type:`string`}})}}var Gi=`/__lerret/write`,Ki=`/__lerret/rename`,qi=`/__lerret/duplicate`,Ji=`/__lerret/delete`,Yi=`/__lerret/reveal`;function Xi(){return typeof globalThis<`u`&&globalThis.__LERRET_CLI_MODE__===!0}async function Zi(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`writeProjectFile: path must be a non-empty string`};if(typeof t!=`string`)return{ok:!1,error:`writeProjectFile: content must be a string`};if(!Xi())return{ok:!1,error:"writes are disabled in standalone mode (run `@lerret/cli dev` to enable)"};let r=n.fetch||(typeof globalThis<`u`?globalThis.fetch:void 0);if(typeof r!=`function`)return{ok:!1,error:`no fetch implementation available`};let i;try{i=await r(Gi,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:e,content:t})})}catch(e){return{ok:!1,error:`network error: ${e instanceof Error?e.message:String(e)}`}}let a;try{a=await i.json()}catch{return{ok:!1,error:`server returned non-JSON response (status ${i.status})`}}return a&&a.ok===!0?{ok:!0}:{ok:!1,error:a&&typeof a.error==`string`&&a.error||`write failed (status ${i.status})`}}async function Qi(e,t,n={}){if(!Xi())return{ok:!1,error:"lifecycle actions are disabled in standalone mode (run `@lerret/cli dev` to enable)"};let r=n.fetch||(typeof globalThis<`u`?globalThis.fetch:void 0);if(typeof r!=`function`)return{ok:!1,error:`no fetch implementation available`};let i;try{i=await r(e,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})}catch(e){return{ok:!1,error:`network error: ${e instanceof Error?e.message:String(e)}`}}let a;try{a=await i.json()}catch{return{ok:!1,error:`server returned non-JSON response (status ${i.status})`}}return a&&a.ok===!0?a:{ok:!1,error:a&&typeof a.error==`string`&&a.error||`request failed (status ${i.status})`}}async function $i(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`renameProjectFile: from must be a non-empty string`};if(typeof t!=`string`||t.length===0)return{ok:!1,error:`renameProjectFile: to must be a non-empty string`};let r=await Qi(Ki,{from:e,to:t},n);return r.ok?{ok:!0}:{ok:!1,error:r.error}}async function ea(e,t={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`duplicateProjectFile: path must be a non-empty string`};let n=await Qi(qi,{path:e},t);return n.ok?{ok:!0,path:typeof n.path==`string`?n.path:void 0}:{ok:!1,error:n.error}}async function ta(e,t={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`deleteProjectFile: path must be a non-empty string`};let n=await Qi(Ji,{path:e},t);return n.ok?{ok:!0}:{ok:!1,error:n.error}}async function na(e,t,n={}){if(typeof e!=`string`||e.length===0)return{ok:!1,error:`revealProjectFile: path must be a non-empty string`};if(t!==`editor`&&t!==`finder`)return{ok:!1,error:`revealProjectFile: target must be "editor" or "finder"`};let r=await Qi(Yi,{path:e,target:t},n);return r.ok?{ok:!0}:{ok:!1,error:r.error}}function ra(){return Xi()}async function ia(e){if(typeof globalThis>`u`||typeof globalThis.fetch!=`function`)return{ok:!1,value:{},error:`no fetch implementation available`};let t=e.indexOf(`/.lerret/`),n=t===-1?e.replace(/^\/+/,``):e.slice(t+9),r=[`/@lerret-project/${n}`,`/@fixture-lerret/${n}`];for(let e of r)try{let t=await globalThis.fetch(e,{method:`GET`,cache:`no-store`});if(t.status===404||!t.ok)continue;let n=t.headers.get(`content-type`)||``;if(!n.includes(`json`)&&!n.includes(`text/plain`))continue;let r=await t.text();try{return{ok:!0,value:JSON.parse(r)}}catch(e){return{ok:!1,value:{},error:e instanceof Error?e.message:String(e)}}}catch{}return{ok:!0,value:{},missing:!0}}if(typeof document<`u`&&!document.getElementById(`data-editor-styles`)){let e=document.createElement(`style`);e.id=`data-editor-styles`,e.textContent=`.lm-data-editor {
266
266
  display: flex;
267
267
  flex-direction: column;
268
268
  gap: var(--lm-space-4, 16px);
@@ -24,7 +24,7 @@
24
24
  `injectReactImportMap()` helper, called by the hosted entry layer
25
25
  once it knows the right URLs. The placeholder here is left
26
26
  empty so that:
27
- - in CLI mode (`lerret dev`) it doesn't shadow Vite's own
27
+ - in CLI mode (`@lerret/cli dev`) it doesn't shadow Vite's own
28
28
  dependency-pre-bundle resolution (which handles bare specifiers
29
29
  via the bundler, not via the import map);
30
30
  - the hosted entry layer's injected import map takes effect first,
@@ -46,7 +46,7 @@
46
46
  <script type="importmap" id="lerret-import-map">
47
47
  { "imports": {} }
48
48
  </script>
49
- <script type="module" crossorigin src="./assets/index-DUcLZ6GX.js"></script>
49
+ <script type="module" crossorigin src="./assets/index-CXzX4BtL.js"></script>
50
50
  <link rel="stylesheet" crossorigin href="./assets/index-BNmJ8c2t.css">
51
51
  </head>
52
52
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lerret/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "The `lerret` design canvas CLI — a folder of plain React component files renders as a visual canvas. Includes the Vite dev server, headless export, and the bundled studio.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/dev.js CHANGED
@@ -1,4 +1,4 @@
1
- // `lerret dev` — run the studio against a project folder.
1
+ // `@lerret/cli dev` — run the studio against a project folder.
2
2
  //
3
3
  // Boots a Node-side Vite dev server that serves the bundled studio plus the
4
4
  // user's `.lerret/` folder, opens the studio in the browser (per `--open`),
@@ -42,7 +42,7 @@ import {
42
42
  } from './vite-plugin-lerret-project.js';
43
43
 
44
44
  /**
45
- * The argv shape `parseArgs` produces for `lerret dev`.
45
+ * The argv shape `parseArgs` produces for `@lerret/cli dev`.
46
46
  *
47
47
  * @typedef {object} DevFlags
48
48
  * @property {number | undefined} port
@@ -58,9 +58,9 @@ import {
58
58
  */
59
59
  function printUsage() {
60
60
  const lines = [
61
- 'lerret dev — run the studio against a project folder.',
61
+ '@lerret/cli dev — run the studio against a project folder.',
62
62
  '',
63
- 'Usage: lerret dev [options]',
63
+ 'Usage: @lerret/cli dev [options]',
64
64
  '',
65
65
  'Options:',
66
66
  ' --port <n> Dev-server port (default: Vite default)',
@@ -73,7 +73,7 @@ function printUsage() {
73
73
  }
74
74
 
75
75
  /**
76
- * Parse `lerret dev`'s argv. A separate function so tests can verify flag
76
+ * Parse `@lerret/cli dev`'s argv. A separate function so tests can verify flag
77
77
  * handling without spinning up a server.
78
78
  *
79
79
  * @param {string[]} argv
@@ -171,7 +171,7 @@ export function parseDevArgs(argv) {
171
171
  *
172
172
  * In the published npm tarball only `dist-studio/` exists (the source is not
173
173
  * shipped), so path 1 is the only option for end users. Path 2 is a dev
174
- * convenience — it keeps `lerret dev` usable in the monorepo even without
174
+ * convenience — it keeps `@lerret/cli dev` usable in the monorepo even without
175
175
  * a preceding build step.
176
176
  *
177
177
  * @returns {string} An absolute path to the studio root (static or source).
@@ -198,7 +198,7 @@ export function resolveStudioRoot() {
198
198
  }
199
199
 
200
200
  /**
201
- * Run `lerret dev`. Resolves the project, starts the Vite server, waits for
201
+ * Run `@lerret/cli dev`. Resolves the project, starts the Vite server, waits for
202
202
  * Ctrl-C, and returns an exit code.
203
203
  *
204
204
  * @param {string[]} argv Argv slice after the `dev` subcommand.
@@ -208,7 +208,7 @@ export function resolveStudioRoot() {
208
208
  export async function runDev(argv) {
209
209
  const { flags, error } = parseDevArgs(argv);
210
210
  if (error) {
211
- process.stderr.write(`lerret dev: ${error}\n\n`);
211
+ process.stderr.write(`@lerret/cli dev: ${error}\n\n`);
212
212
  printUsage();
213
213
  return 1;
214
214
  }
@@ -227,7 +227,7 @@ export async function runDev(argv) {
227
227
  //
228
228
  // A NOT-FOUND result is NOT a crash (FR43). We still start
229
229
  // the dev server, but the plugin exposes `project: null` and the studio
230
- // mounts its no-folder placeholder. This makes `lerret dev` always
230
+ // mounts its no-folder placeholder. This makes `@lerret/cli dev` always
231
231
  // reachable — even invoked from the wrong directory, the user sees the
232
232
  // studio and is guided to open a folder.
233
233
  const startDir = flags.folder
@@ -250,10 +250,10 @@ export async function runDev(argv) {
250
250
  : null;
251
251
 
252
252
  if (projectResolution.found) {
253
- process.stdout.write(`lerret dev: project ${projectRoot}\n`);
253
+ process.stdout.write(`@lerret/cli dev: project ${projectRoot}\n`);
254
254
  } else {
255
255
  process.stdout.write(
256
- `lerret dev: no \`.lerret/\` project found from ${startDir} — starting in no-folder mode.\n`,
256
+ `@lerret/cli dev: no \`.lerret/\` project found from ${startDir} — starting in no-folder mode.\n`,
257
257
  );
258
258
  }
259
259
 
@@ -325,7 +325,7 @@ export async function runDev(argv) {
325
325
  },
326
326
  // `host` left undefined so Vite uses its default (localhost). Users
327
327
  // who need network access can re-run with --port and Vite's own
328
- // --host knob in a future change; for `lerret dev` against a local
328
+ // --host knob in a future change; for `@lerret/cli dev` against a local
329
329
  // user folder the default localhost behavior is right.
330
330
  },
331
331
  });
@@ -336,7 +336,7 @@ export async function runDev(argv) {
336
336
  // The asset base URL the studio expects — log so a curious user can see
337
337
  // it (and to help debugging if a future change touches the contract).
338
338
  if (projectRoot) {
339
- process.stdout.write(`lerret dev: serving project at ${PROJECT_ASSET_BASE_URL}/\n`);
339
+ process.stdout.write(`@lerret/cli dev: serving project at ${PROJECT_ASSET_BASE_URL}/\n`);
340
340
  }
341
341
 
342
342
  // 4. Hold the process open until SIGINT/SIGTERM, then close cleanly.
@@ -362,7 +362,7 @@ function waitForShutdown(server) {
362
362
  const onSignal = async (signal) => {
363
363
  if (shuttingDown) return;
364
364
  shuttingDown = true;
365
- process.stdout.write(`\nlerret dev: ${signal} received, shutting down…\n`);
365
+ process.stdout.write(`\n@lerret/cli dev: ${signal} received, shutting down…\n`);
366
366
  try {
367
367
  await server.close();
368
368
  } catch {