@lerret/cli 0.1.7 → 0.1.8

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-DDZr-wEU.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-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:`
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-DDZr-wEU.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-BkKE6v8L.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-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(`
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
 
@@ -792,4 +792,4 @@ import{i as e,n as t,o as n,r,s as i,t as a}from"./index-DDZr-wEU.js";import{_ a
792
792
  .lm-section-kebab { transition: none !important; }
793
793
  }`,document.head.appendChild(e)}function bo(e){return typeof CSS<`u`&&typeof CSS.escape==`function`?CSS.escape(e):String(e).replace(/[^\w-]/g,`\\$&`)}function xo({format:e,flat:t,onFormatChange:n,onFlatChange:r,progress:i,notice:a,onExport:o,onClose:s}){let c=T.useRef(null);T.useEffect(()=>{let e=e=>{e.key===`Escape`&&s()},t=e=>{c.current&&!c.current.contains(e.target)&&s()};return document.addEventListener(`keydown`,e),document.addEventListener(`pointerdown`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`pointerdown`,t)}},[s]);let l=i!==null;return(0,D.jsxs)(`div`,{ref:c,"data-testid":`lm-section-export-popover`,style:{position:`absolute`,top:0,left:32,zIndex:50,background:`rgba(255,255,255,0.97)`,backdropFilter:`blur(12px) saturate(120%)`,WebkitBackdropFilter:`blur(12px) saturate(120%)`,border:`1px solid rgba(26,23,20,0.10)`,borderRadius:10,padding:`10px 12px`,boxShadow:`0 8px 24px rgba(15,23,42,0.14), 0 1px 3px rgba(15,23,42,0.06)`,minWidth:180,fontFamily:`-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`,fontSize:12,color:`#1A1714`},children:[(0,D.jsx)(`div`,{style:{display:`flex`,gap:4,marginBottom:6},children:[`png`,`jpg`].map(t=>(0,D.jsx)(`button`,{type:`button`,onClick:()=>n(t),style:{flex:1,padding:`4px 0`,borderRadius:6,border:`1px solid`,borderColor:e===t?`#B85B33`:`rgba(26,23,20,0.14)`,background:e===t?`#B85B33`:`transparent`,color:e===t?`#FAF8F2`:`#3A3530`,fontFamily:`inherit`,fontSize:11,fontWeight:600,cursor:`pointer`,letterSpacing:`0.04em`,textTransform:`uppercase`},children:t},t))}),(0,D.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:6,marginBottom:8,cursor:`pointer`},children:[(0,D.jsx)(`input`,{type:`checkbox`,checked:t,onChange:e=>r(e.target.checked),style:{margin:0}}),(0,D.jsx)(`span`,{style:{fontSize:11,color:`#6E6960`},children:`Flat (no folders)`})]}),(0,D.jsx)(`button`,{type:`button`,onClick:o,disabled:l,style:{width:`100%`,padding:`6px 10px`,borderRadius:7,border:`none`,background:l?`rgba(184,91,51,0.35)`:`#B85B33`,color:`#FAF8F2`,fontFamily:`inherit`,fontSize:12,fontWeight:600,cursor:l?`default`:`pointer`,transition:`background .12s`},children:i===null?`Export ZIP`:i}),a&&(0,D.jsx)(`div`,{style:{marginTop:6,fontSize:11,color:`#6E6960`,lineHeight:1.4,maxWidth:220},children:a})]})}function So({sectionId:e,sectionTitle:t,sectionKind:n=`page`,project:r,children:i}){let[a,o]=T.useState(!1),[s,c]=T.useState(!1),[l,u]=T.useState(!1),[d,f]=T.useState(`png`),[p,m]=T.useState(!1),[h,g]=T.useState(null),[_,v]=T.useState(null),y=T.useCallback(()=>{if(typeof document>`u`||!e)return;let t=document.querySelector(`[data-dc-section="${bo(e)}"]`);if(!t)return;let n=t.querySelector(`.dc-editable`);if(!n||typeof n.focus!=`function`)return;n.focus();let r=document.createRange();r.selectNodeContents(n);let i=window.getSelection();i.removeAllRanges(),i.addRange(r),oo(n,{fromPath:e,kind:`folder`})},[e]),b=T.useCallback(()=>c(!0),[]),x=T.useCallback(()=>c(!1),[]),S=T.useCallback(async()=>{c(!1),e&&await Xa(e)},[e]),C=T.useCallback(()=>{v(null),u(e=>!e)},[]),w=T.useCallback(async()=>{if(!r||!e||h!==null)return;v(null);let t=await Pn({project:r,scope:{kind:n,path:e},format:d,flat:p,onProgress:(e,t)=>{g(e===t?null:`${e}/${t}…`)}});if(g(null),!t.blob){v(`Nothing to export${t.skipped.length>0?` (${t.skipped.length} skipped)`:``}.`);return}Fn(t.blob,t.filename);let i=[];if(t.skipped.length>0){let e=t.skipped.map(e=>e.artboard?.asset?.name||`?`).join(`, `);i.push(`Skipped: ${e}`)}t.unembeddedFonts.length>0&&i.push(`Fonts not embedded: ${t.unembeddedFonts.join(`, `)}`),v(i.length>0?i.join(` · `):null),i.length===0&&u(!1)},[r,e,n,d,p,h]),E=T.useCallback(()=>{e&&Ja(e,`editor`)},[e]),O=T.useCallback(()=>{e&&Ja(e,`finder`)},[e]),k=ra(),A=T.useMemo(()=>Ka({onEditConfig:()=>o(!0),onRename:y,onDelete:b,onExport:C,onRevealEditor:E,onRevealFinder:O,cliMode:k}),[y,b,C,E,O,k]);return(0,D.jsxs)(`div`,{className:`lm-section-kebab-host`,children:[(0,D.jsxs)(`div`,{className:`lm-section-kebab`,"data-testid":`lm-section-kebab`,children:[(0,D.jsx)(Za,{items:T.useMemo(()=>qa(A,{confirming:s,onConfirmDelete:S,onCancelDelete:x}),[A,s,S,x]),ariaLabel:`Actions for ${t||`this section`}`,align:`bottom-start`}),l&&(0,D.jsx)(xo,{format:d,flat:p,onFormatChange:f,onFlatChange:m,progress:h,notice:_,onExport:w,onClose:()=>u(!1)})]}),i,(0,D.jsx)(eo,{open:a,onClose:()=>o(!1),folderPath:e,folderName:t})]})}function Co(e){if(typeof e!=`string`||e.trim()===``)return!1;if(typeof document<`u`){let t=document.createElement(`div`);return t.style.color=e,t.style.color!==``}return!/[{};]/.test(e)}function wo(e,t){let n=e&&e.presentation;if(!n||typeof n!=`object`||Array.isArray(n))return null;let r=n.background;return r==null?null:Co(r)?r:(console.warn(`[lerret/canvas] Skipping malformed presentation.background at "${t}": "${String(r)}" is not a usable CSS color string. Falling back to the default surface.`),null)}function To(e){let t=[];function n(e,r,i){let a=(e.assets||[]).filter(e=>e.kind===u.ASSET&&(e.assetKind===`component`||e.assetKind===`markdown`));if(a.length>0){let n=[...a.filter(e=>e.assetKind===`component`),...a.filter(e=>e.assetKind===`markdown`)];t.push({id:e.path,title:e.name,depth:r,kicker:r>=1?i:null,assets:n})}for(let t of e.groups||[])n(t,r+1,e.name)}return n(e,0,null),t}function Eo(e,t){let n=e&&e.pages||[];if(n.length===0)return null;if(t){let e=n.find(e=>e.path===t);if(e)return e}return n[0]}function Do({project:e,runtime:t,pageId:n}){let r=pi(),[i,a]=T.useState(null),o=T.useMemo(()=>Eo(e,n),[e,n]);yo(o,r,t);let s=T.useRef(new Map);if(T.useEffect(()=>{if(!o)return;let e=!1;return(async()=>{let n=To(o),r=await Promise.all(n.map(async e=>({id:e.id,title:e.title,depth:e.depth,kicker:e.kicker,entries:(await Promise.all(e.assets.map(e=>t.loadAsset(e)))).flat()})));e||(s.current=new Map,a({pagePath:o.path,sections:r,cueKeys:{}}))})(),()=>{e=!0}},[o,t]),T.useEffect(()=>{if(!(!t||typeof t.subscribe!=`function`))return t.subscribe(e=>{a(n=>{if(!n)return n;let r=[];for(let t of n.sections)for(let n of t.entries)n.asset&&n.asset.path===e&&r.push({section:t,entry:n});return r.length===0||(async()=>{let e=new Map;await Promise.all(r.map(async({section:n,entry:r})=>{let i=await t.loadAsset(r.asset),a=e.get(n.id)||new Map;a.set(r.asset.path,i),e.set(n.id,a)})),a(t=>{if(!t)return t;let n={...t.cueKeys},r=Oo(s.current),i=t.sections.map(t=>{let i=e.get(t.id);if(!i)return t;let a=[],o=new Set;for(let e of t.entries)if(e.asset&&i.has(e.asset.path)){if(o.has(e.asset.path))continue;o.add(e.asset.path);for(let t of i.get(e.asset.path))a.push(t),n[t.id]=r}else a.push(e);return{...t,entries:a}});return{...t,sections:i,cueKeys:n}})})(),n})})},[t]),!o)return(0,D.jsx)(ko,{title:`No pages`,body:`This project has no pages yet. Add a folder under .lerret/ to create one.`});let c=i&&i.pagePath===o.path?i.sections:null;if(c===null)return(0,D.jsx)(ko,{title:null,body:`Loading ${o.name}…`});if(c.length===0)return(0,D.jsx)(ko,{title:o.name,body:`This page has no assets yet. Drop a .jsx, .tsx, or .md file into it.`});let l=i&&i.cueKeys||{};return(0,D.jsx)(br,{children:c.map(t=>{let n=wo(r(t.id),t.id),i=n?{backgroundColor:n}:void 0,a=o&&o.path===t.id?`page`:`group`;return(0,D.jsx)(So,{sectionId:t.id,sectionTitle:t.title,sectionKind:a,project:e,children:(0,D.jsx)(Tr,{id:t.id,title:t.title,depth:t.depth,kicker:t.kicker,subtitle:`${t.entries.length} asset${t.entries.length===1?``:`s`}`,sectionStyle:i,children:t.entries.map(e=>ho(e,{cueKey:l[e.id]}))})},t.id)})},o.path)}function Oo(e){let t=0;for(let n of e.values())typeof n==`number`&&n>t&&(t=n);let n=t+1;return e.set(`__last__`,n),n}function ko({title:e,body:t}){return(0,D.jsxs)(`div`,{style:{width:`100vw`,height:`100vh`,display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,gap:12,background:`var(--lm-bg-tertiary, #f0eee9)`,fontFamily:`var(--lm-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif)`,color:`var(--lm-text-secondary, #3a3530)`,textAlign:`center`,padding:24,boxSizing:`border-box`},children:[e&&(0,D.jsx)(`div`,{style:{fontSize:32,fontWeight:600,letterSpacing:-.6,color:`var(--lm-text-primary, #1a1714)`},children:e}),(0,D.jsx)(`div`,{style:{fontSize:14,color:`var(--lm-text-tertiary, #6e6960)`,maxWidth:`44ch`,lineHeight:1.5},children:t})]})}function Ao(e,t,n){if(!n)return e.path;let r=t&&t.path||``,i=e.path;return r&&i.startsWith(r)&&(i=i.slice(r.length)),i=i.replace(/^\/+/,``),n.replace(/\/+$/,``)+`/`+i}function jo(e){return String(e).replace(/[\\']/g,`\\$&`)}function Mo(e,t){return`@font-face {\n font-family: '${jo(e.family)}';\n src: url('${jo(t)}') format('${jo(e.format)}');\n font-display: swap;\n}`}function No(e,t){let n=e&&e.fonts||[];return n.length===0?``:n.map(e=>Mo(e,t(e))).join(`
794
794
 
795
- `)}var Po=`lerret-font-registry`;function Fo(e,t={}){let n=t.assetBaseUrl,r=t.doc||(typeof document<`u`?document:void 0),i=No(e,t=>Ao(t,e,n));if(r===void 0)return{css:i,dispose(){}};let a=r.getElementById(Po);return i===``?(a&&a.parentNode&&a.parentNode.removeChild(a),{css:i,dispose(){}}):(a||(a=r.createElement(`style`),a.id=Po,a.setAttribute(`data-lerret`,`font-registry`),(r.head||r.documentElement).appendChild(a)),a.textContent=i,{css:i,dispose(){let e=r.getElementById(Po);e&&e.parentNode&&e.parentNode.removeChild(e)}})}var Io=`project`;function Lo({project:e,runtime:t,assetBaseUrl:n}){let r=T.useMemo(()=>e&&e.pages||[],[e]);T.useEffect(()=>{let t=Fo(e,{assetBaseUrl:n});return()=>t.dispose()},[e,n]);let[i,a]=Zn(Io),o=Eo(e,i),s=o?o.path:null,c=i===`storyboard`,l=T.useMemo(()=>r.length===0||c?null:{pages:r.map(e=>({id:e.path,label:e.name})),current:s,onNavigate:e=>a(e)},[r,s,a,c]),u={[Io]:{label:e?e.name:`Project`,node:(0,D.jsx)(Do,{project:e,runtime:t,pageId:s})},storyboard:{label:`Storyboard`,node:ii}};return(0,D.jsx)(F.Provider,{value:e,children:(0,D.jsx)(N.Provider,{value:l,children:(0,D.jsx)(rr,{pages:u,defaultPage:Io})})})}export{fi as n,w as r,Lo as t};
795
+ `)}var Po=`lerret-font-registry`;function Fo(e,t={}){let n=t.assetBaseUrl,r=t.doc||(typeof document<`u`?document:void 0),i=No(e,t=>Ao(t,e,n));if(r===void 0)return{css:i,dispose(){}};let a=r.getElementById(Po);return i===``?(a&&a.parentNode&&a.parentNode.removeChild(a),{css:i,dispose(){}}):(a||(a=r.createElement(`style`),a.id=Po,a.setAttribute(`data-lerret`,`font-registry`),(r.head||r.documentElement).appendChild(a)),a.textContent=i,{css:i,dispose(){let e=r.getElementById(Po);e&&e.parentNode&&e.parentNode.removeChild(e)}})}var Io=`project`;function Lo({project:e,runtime:t,assetBaseUrl:n}){let r=T.useMemo(()=>e&&e.pages||[],[e]);T.useEffect(()=>{let t=Fo(e,{assetBaseUrl:n});return()=>t.dispose()},[e,n]);let[i,a]=Zn(Io),o=Eo(e,i),s=o?o.path:null,c=i===`storyboard`,l=T.useMemo(()=>r.length===0||c?null:{pages:r.map(e=>({id:e.path,label:e.name})),current:s,onNavigate:e=>a(e)},[r,s,a,c]),u={[Io]:{label:e?e.name:`Project`,node:(0,D.jsx)(Do,{project:e,runtime:t,pageId:s})},storyboard:{label:`Storyboard`,node:ii}};return(0,D.jsx)(F.Provider,{value:e,children:(0,D.jsx)(N.Provider,{value:l,children:(0,D.jsx)(rr,{pages:u,defaultPage:Io})})})}export{w as i,fi as n,bn as r,Lo as t};
@@ -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-DDZr-wEU.js"></script>
49
+ <script type="module" crossorigin src="./assets/index-DUcLZ6GX.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.7",
3
+ "version": "0.1.8",
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/export.js CHANGED
@@ -70,6 +70,7 @@
70
70
  import { parseArgs } from 'node:util';
71
71
  import { dirname, resolve as resolvePath } from 'node:path';
72
72
  import { fileURLToPath, pathToFileURL } from 'node:url';
73
+ import { createRequire } from 'node:module';
73
74
 
74
75
  import { scan, collectArtboards } from '@lerret/core';
75
76
 
@@ -935,10 +936,26 @@ export async function bootViteServer({ projectRoot, lerretDir, dataOverride, con
935
936
  plugins.unshift(reactPlugin());
936
937
  }
937
938
 
939
+ // The user's `.jsx`/`.tsx` assets get transformed by Vite/esbuild into
940
+ // imports of `react/jsx-dev-runtime`. The user's project has no
941
+ // `node_modules`, so those imports must resolve against the CLI's own
942
+ // React. Without these aliases the user's assets fail to load in
943
+ // `dist-studio/` mode and the studio renders empty slots — `lerret dev`
944
+ // has the same shape; we keep them in lock-step.
945
+ const cliRequire = createRequire(import.meta.url);
946
+ const reactAliases = [
947
+ { find: 'react/jsx-dev-runtime', replacement: cliRequire.resolve('react/jsx-dev-runtime') },
948
+ { find: 'react/jsx-runtime', replacement: cliRequire.resolve('react/jsx-runtime') },
949
+ { find: 'react-dom/client', replacement: cliRequire.resolve('react-dom/client') },
950
+ { find: /^react-dom$/, replacement: cliRequire.resolve('react-dom') },
951
+ { find: /^react$/, replacement: cliRequire.resolve('react') },
952
+ ];
953
+
938
954
  const server = await createServer({
939
955
  configFile: false,
940
956
  root: studioRoot,
941
957
  plugins,
958
+ resolve: { alias: reactAliases },
942
959
  server: {
943
960
  open: false, // headless — never open a real browser
944
961
  fs: {
@@ -989,13 +1006,16 @@ export async function bootViteServer({ projectRoot, lerretDir, dataOverride, con
989
1006
  * @returns {Promise<{ ok: boolean, bytesB64?: string, unembeddedFonts?: string[], error?: string }>}
990
1007
  */
991
1008
  export async function evaluateCaptureInPage(page, domId, format) {
992
- // The capture import path inside the studio's served bundle. Vite serves
993
- // the studio source so we can `import()` the same module the studio uses.
994
- //
995
1009
  // The arrow below executes INSIDE the Chromium page — `document`, `btoa`,
996
- // and dynamic `import()` of a `/src/…` URL are browser-side and the lint
1010
+ // and `window.__lerret_capture` are browser-side and the lint
997
1011
  // (which sees this file as Node-only) cannot tell. The targeted disable
998
1012
  // covers only that callback.
1013
+ //
1014
+ // `window.__lerret_capture` is published by the studio's CLI-mode entry
1015
+ // (`cli-project-source.jsx`) — a stable hook that survives production
1016
+ // bundling. The old dynamic `import('/src/export/capture.js')` only worked
1017
+ // when Vite served the studio from source; against the pre-built
1018
+ // `dist-studio/` (hashed chunks) the source path 404s.
999
1019
  return await page.evaluate(
1000
1020
  /* eslint-disable no-undef */
1001
1021
  async ({ domId, format, slotSelector, innerCardSelector }) => {
@@ -1005,11 +1025,26 @@ export async function evaluateCaptureInPage(page, domId, format) {
1005
1025
  const card = slot.querySelector(innerCardSelector);
1006
1026
  if (!card) return { ok: false, error: `inner card not found inside slot "${domId}"` };
1007
1027
 
1008
- // Dynamic import of the studio's capture module served by Vite.
1009
- // The studio's main bundle loads it eagerly for the per-artboard
1010
- // PNG button; importing it here is essentially a cache hit.
1011
- const mod = await import('/src/export/capture.js');
1012
- const { blob, unembeddedFonts } = await mod.captureArtboard(card, { format });
1028
+ // Wait for the studio's CLI-mode entry to publish `__lerret_capture`.
1029
+ // The studio loads `cli-project-source.jsx` asynchronously from
1030
+ // `main.jsx`, so on a fast-navigating page the global may not be
1031
+ // present yet when this callback first fires. Poll briefly with a
1032
+ // generous ceiling in practice it appears within the first frame
1033
+ // after the studio root mounts.
1034
+ const deadline = Date.now() + 10000;
1035
+ while (typeof window.__lerret_capture !== 'function') {
1036
+ if (Date.now() > deadline) {
1037
+ return {
1038
+ ok: false,
1039
+ error:
1040
+ '`window.__lerret_capture` was not published by the studio ' +
1041
+ '— the bundled studio may be out of date with this CLI',
1042
+ };
1043
+ }
1044
+ await new Promise((r) => setTimeout(r, 50));
1045
+ }
1046
+
1047
+ const { blob, unembeddedFonts } = await window.__lerret_capture(card, { format });
1013
1048
 
1014
1049
  // Transfer the blob as base64 — Playwright `evaluate` serializes
1015
1050
  // primitives but cannot pass Blobs across the bridge.
@@ -1 +0,0 @@
1
- import{i as e,n as t,s as n}from"./index-DDZr-wEU.js";import{n as r,r as i,t as a}from"./project-studio-Cu9lqG-F.js";import{t as o}from"./open-folder-BwK8FWeb.js";import{assetBaseUrl as s,cascadeEntries as c,project as l}from"virtual:lerret-project";var u=n(e(),1),d=t();function f(){let e=l,t=s,[n,f]=u.useState(e),[p,m]=u.useState(c||[]),h=u.useMemo(()=>e?i(e,{assetBaseUrl:t}):null,[e,t]);return u.useEffect(()=>{if(h)return()=>h.dispose()},[h]),u.useEffect(()=>{},[h]),n?(0,d.jsx)(r,{cascadeEntries:p,children:(0,d.jsx)(a,{project:n,runtime:h,assetBaseUrl:t})}):(0,d.jsx)(o,{cliMode:!0})}export{f as CliProjectSource,f as default};