@jxsuite/studio 5.6.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/dist/chunks/{2020-zvax9fmb.js → 2020-cs2sb9t1.js} +3 -3
  2. package/dist/chunks/adapter-y5gdq19c.js +4 -0
  3. package/dist/chunks/{cf-account-picker-zfycs4k2.js → cf-account-picker-bb2yq946.js} +3 -3
  4. package/dist/chunks/cf-settings-20dznc3j.js +4 -0
  5. package/dist/chunks/components-q037dya7.js +4 -0
  6. package/dist/chunks/content-source-t0q184js.js +4 -0
  7. package/dist/chunks/{convert-to-repeater-x19jr6c7.js → convert-to-repeater-vqkt7s3s.js} +3 -3
  8. package/dist/chunks/editor-j5sq149q.js +4 -0
  9. package/dist/chunks/entry-commands-fxzgcc4k.js +4 -0
  10. package/dist/chunks/{extension-sections-y90sa0n4.js → extension-sections-8beq9ac3.js} +3 -3
  11. package/dist/chunks/file-ops-2n77759h.js +4 -0
  12. package/dist/chunks/files-fjy7zpxt.js +4 -0
  13. package/dist/chunks/format-host-wj3mf3n8.js +4 -0
  14. package/dist/chunks/fs-events-7kcgn4e9.js +4 -0
  15. package/dist/chunks/git-panel-7z2mpt2d.js +4 -0
  16. package/dist/chunks/{grid-view-d9mybhn0.js → grid-view-ca10def6.js} +10 -10
  17. package/dist/chunks/iframe-host-a0zjd6xp.js +4 -0
  18. package/dist/chunks/{index-vnwy9d44.js → index-9ydfe04y.js} +3 -3
  19. package/dist/chunks/index-m0x5ztax.js +4 -0
  20. package/dist/chunks/{javascript-f0nrbdjb.js → javascript-d9pqgc2p.js} +2 -2
  21. package/dist/chunks/{jsonMode-nfa90dtf.js → jsonMode-800yvbem.js} +4 -4
  22. package/dist/chunks/jx-validate-zc9zp77s.js +4 -0
  23. package/dist/chunks/layers-p677nrh5.js +4 -0
  24. package/dist/chunks/layers-panel-y4w1dq90.js +4 -0
  25. package/dist/chunks/lit-html-cfn61dn7.js +4 -0
  26. package/dist/chunks/media-picker-xg7yjpz9.js +4 -0
  27. package/dist/chunks/menu-fpekzj6w.js +4 -0
  28. package/dist/chunks/{monaco-binding-antn79jf.js → monaco-binding-62dtmgbf.js} +3 -3
  29. package/dist/chunks/monaco-buffer-nn4dtx27.js +4 -0
  30. package/dist/chunks/{monaco-setup-k8s40vwg.js → monaco-setup-tj13ndtm.js} +3 -3
  31. package/dist/chunks/notify-ahs57a2z.js +4 -0
  32. package/dist/chunks/platform-v9xyfkbx.js +4 -0
  33. package/dist/chunks/publish-panel-xtbfgg2r.js +4 -0
  34. package/dist/chunks/quick-search-d3a6m7j3.js +4 -0
  35. package/dist/chunks/references-99ws0b0m.js +4 -0
  36. package/dist/chunks/right-panel-31vbk5xp.js +4 -0
  37. package/dist/chunks/section-registry-b2yzp9sw.js +4 -0
  38. package/dist/chunks/{studio-y17505ge.js → studio-01kbbqg3.js} +207 -207
  39. package/dist/chunks/{studio-gxna6yta.js → studio-01qza1n3.js} +4 -4
  40. package/dist/chunks/{studio-n2e133d6.js → studio-03wwfvyt.js} +4 -4
  41. package/dist/chunks/{studio-09n3fyy0.js → studio-0bbxhhce.js} +4 -4
  42. package/dist/chunks/studio-1a99w39s.js +5 -0
  43. package/dist/chunks/studio-1q6amtph.js +5 -0
  44. package/dist/chunks/{studio-eegyf5vg.js → studio-1wvfxkyy.js} +4 -4
  45. package/dist/chunks/{studio-z47mm077.js → studio-3ck2a5c4.js} +6 -6
  46. package/dist/chunks/{studio-ymsjnvp9.js → studio-4fde4a0x.js} +4 -4
  47. package/dist/chunks/{studio-je15p5v8.js → studio-4jj9gme2.js} +5 -5
  48. package/dist/chunks/{studio-w8w9frjy.js → studio-4m50vh74.js} +12 -12
  49. package/dist/chunks/{studio-891t1tv9.js → studio-4r0sjtx8.js} +4 -4
  50. package/dist/chunks/{studio-6exg5z4x.js → studio-4xppwncr.js} +3 -3
  51. package/dist/chunks/{studio-011em5cf.js → studio-5d7wfmnp.js} +4 -4
  52. package/dist/chunks/{studio-zkkdbbvd.js → studio-5e9zsamh.js} +6 -6
  53. package/dist/chunks/{studio-pvj970st.js → studio-5gs9th4b.js} +4 -4
  54. package/dist/chunks/{studio-dtmdjmqb.js → studio-5vy2wfm5.js} +4 -4
  55. package/dist/chunks/{studio-654fxcr0.js → studio-7pgy3xaf.js} +4 -4
  56. package/dist/chunks/{studio-z1vdxq0e.js → studio-7qvs7v0m.js} +4 -4
  57. package/dist/chunks/studio-84rtc120.js +5 -0
  58. package/dist/chunks/{studio-ks0ecgjx.js → studio-8xcwewjq.js} +4 -4
  59. package/dist/chunks/{studio-sadckcpp.js → studio-aekhcdzw.js} +5 -5
  60. package/dist/chunks/{studio-mf41717j.js → studio-aje966s9.js} +4 -4
  61. package/dist/chunks/studio-aqmph6k4.js +5 -0
  62. package/dist/chunks/{studio-28pz4s1k.js → studio-bftp4n4b.js} +4 -4
  63. package/dist/chunks/{studio-tzs6njnb.js → studio-c6zdm25z.js} +7 -7
  64. package/dist/chunks/{studio-sgzss898.js → studio-capk0583.js} +7 -7
  65. package/dist/chunks/{studio-805fwp9k.js → studio-cbr9czkn.js} +4 -4
  66. package/dist/chunks/{studio-1pxvgx1t.js → studio-chdmwwzw.js} +4 -4
  67. package/dist/chunks/{studio-dknr8m7b.js → studio-cp1gbff9.js} +7 -7
  68. package/dist/chunks/{studio-ft8pfpp0.js → studio-cqmtbg2p.js} +4 -4
  69. package/dist/chunks/studio-e47215hh.js +5 -0
  70. package/dist/chunks/{studio-9n2j9nqk.js → studio-edbtvcd1.js} +4 -4
  71. package/dist/chunks/{studio-mm8x32gg.js → studio-evwgp1ym.js} +4 -4
  72. package/dist/chunks/{studio-02y9cb4h.js → studio-fbx6twps.js} +5 -5
  73. package/dist/chunks/{studio-0nm2skex.js → studio-fqq890ap.js} +3 -3
  74. package/dist/chunks/studio-fthwn4kf.js +5 -0
  75. package/dist/chunks/{studio-s85vah66.js → studio-g8dsj3d2.js} +5 -5
  76. package/dist/chunks/{studio-0c3fpdqj.js → studio-ge5fqjth.js} +5 -5
  77. package/dist/chunks/{studio-ebt49j3c.js → studio-gjknvzam.js} +5 -5
  78. package/dist/chunks/{studio-zkvyd3ev.js → studio-gp02nqnw.js} +4 -4
  79. package/dist/chunks/{studio-5fc0728f.js → studio-hjbg8d5y.js} +7 -7
  80. package/dist/chunks/{studio-d007j0z3.js → studio-hnvnfbdv.js} +6 -6
  81. package/dist/chunks/{studio-b5rxwkj2.js → studio-mk00zd5d.js} +4 -4
  82. package/dist/chunks/{studio-36s6qjgq.js → studio-n78gjfy8.js} +4 -4
  83. package/dist/chunks/studio-nbxqcgvf.js +5 -0
  84. package/dist/chunks/{studio-y164brht.js → studio-pwqfmt4p.js} +4 -4
  85. package/dist/chunks/studio-qa73881a.js +5 -0
  86. package/dist/chunks/{studio-6zyt56ek.js → studio-r3kaka4d.js} +4 -4
  87. package/dist/chunks/{studio-njmg0e73.js → studio-rmn2dz59.js} +5 -5
  88. package/dist/chunks/{studio-wr0pq67n.js → studio-rr4xkv81.js} +4 -4
  89. package/dist/chunks/{studio-tj28pxa1.js → studio-semd1s8s.js} +4 -4
  90. package/dist/chunks/{studio-7w04zw8h.js → studio-st75kn99.js} +5 -5
  91. package/dist/chunks/{studio-dmymvk2j.js → studio-sxc0zvpt.js} +3 -3
  92. package/dist/chunks/studio-t1eedsyx.js +4 -0
  93. package/dist/chunks/{studio-9tkaykt5.js → studio-tmeq6mjb.js} +4 -4
  94. package/dist/chunks/{studio-153mwkyq.js → studio-tp642n5g.js} +4 -4
  95. package/dist/chunks/{studio-t0v47dpc.js → studio-tzegmy4w.js} +4 -4
  96. package/dist/chunks/studio-vavmwshr.js +5 -0
  97. package/dist/chunks/studio-x5g1xk77.js +5 -0
  98. package/dist/chunks/studio-x92tgnee.js +64 -0
  99. package/dist/chunks/{studio-4yztve2t.js → studio-xg1942as.js} +4 -4
  100. package/dist/chunks/{studio-k9pwvmz8.js → studio-xkfs0dp2.js} +4 -4
  101. package/dist/chunks/{studio-6k1eswp9.js → studio-y7jehjrp.js} +4 -4
  102. package/dist/chunks/{studio-81twpmzj.js → studio-yr04mv2j.js} +4 -4
  103. package/dist/chunks/{studio-gj4j9e7k.js → studio-zd4kayn2.js} +4 -4
  104. package/dist/chunks/{studio-jsr14n1s.js → studio-zev8ssp1.js} +4 -4
  105. package/dist/chunks/{studio-r7yeeqc4.js → studio-ztvcxm3w.js} +4 -4
  106. package/dist/chunks/{tsMode-eq26t9gs.js → tsMode-k9s9fcag.js} +4 -4
  107. package/dist/chunks/workspace-5vmgsagj.js +4 -0
  108. package/dist/chunks/{ws-client-3gxqp06s.js → ws-client-0ja08haa.js} +3 -3
  109. package/dist/iframe-entry.js +3 -3
  110. package/dist/manifest.json +62 -62
  111. package/dist/studio.js +95 -95
  112. package/package.json +12 -12
  113. package/src/canvas/stage-scrollbar.ts +7 -7
  114. package/src/files/file-ops.ts +5 -8
  115. package/src/panels/jump-bar.ts +132 -158
  116. package/src/panels/pane-context.ts +8 -8
  117. package/src/panels/pane-grid.ts +18 -26
  118. package/src/panels/style-panel.ts +2 -2
  119. package/src/services/context-manager.ts +41 -70
  120. package/src/services/document-assistant.ts +12 -3
  121. package/src/services/harness/chat-reducer.ts +115 -0
  122. package/src/services/harness/turn-hooks.ts +50 -0
  123. package/src/services/tool-executor.ts +69 -288
  124. package/src/services/tool-outcomes.ts +12 -10
  125. package/src/studio.ts +2 -5
  126. package/src/surfaces/block-action-bar.json +6 -1
  127. package/src/surfaces/jump-bar.json +9 -12
  128. package/src/surfaces/jump-bar.ts +15 -16
  129. package/src/surfaces/pane-context.json +2 -2
  130. package/src/surfaces/pane-grid.json +8 -25
  131. package/src/surfaces/pane-grid.ts +7 -8
  132. package/src/surfaces/statusbar.json +71 -3
  133. package/src/surfaces/statusbar.ts +66 -139
  134. package/src/surfaces/style-panel.json +3 -3
  135. package/src/surfaces/style-panel.ts +11 -1
  136. package/src/ui/schema-form.ts +6 -2
  137. package/dist/chunks/adapter-6zhjbpmd.js +0 -4
  138. package/dist/chunks/cf-settings-fpa485q3.js +0 -4
  139. package/dist/chunks/components-b0vh4sq8.js +0 -4
  140. package/dist/chunks/content-source-z5t0d0h9.js +0 -4
  141. package/dist/chunks/editor-7e23n4a8.js +0 -4
  142. package/dist/chunks/entry-commands-5cm6aba2.js +0 -4
  143. package/dist/chunks/file-ops-hv7gf757.js +0 -4
  144. package/dist/chunks/files-kb0epdxf.js +0 -4
  145. package/dist/chunks/format-host-eg1wy2bp.js +0 -4
  146. package/dist/chunks/fs-events-ky3vxfmh.js +0 -4
  147. package/dist/chunks/git-panel-yyg3bzp2.js +0 -4
  148. package/dist/chunks/iframe-host-9wdf0hes.js +0 -4
  149. package/dist/chunks/index-2tf0m2ne.js +0 -4
  150. package/dist/chunks/jx-validate-7w11db9v.js +0 -4
  151. package/dist/chunks/layers-7zasrpse.js +0 -4
  152. package/dist/chunks/layers-panel-9nzc4fdq.js +0 -4
  153. package/dist/chunks/lit-html-5qr7nbng.js +0 -4
  154. package/dist/chunks/media-picker-maevn9d4.js +0 -4
  155. package/dist/chunks/menu-wq6q0v3y.js +0 -4
  156. package/dist/chunks/monaco-buffer-9ry2rn5x.js +0 -4
  157. package/dist/chunks/notify-g91gjd6w.js +0 -4
  158. package/dist/chunks/platform-jdwjp2vt.js +0 -4
  159. package/dist/chunks/publish-panel-8yym447p.js +0 -4
  160. package/dist/chunks/quick-search-9bzm9kh3.js +0 -4
  161. package/dist/chunks/references-znssfqvq.js +0 -4
  162. package/dist/chunks/right-panel-czbzktm8.js +0 -4
  163. package/dist/chunks/section-registry-0rtq73qs.js +0 -4
  164. package/dist/chunks/studio-0mm38y62.js +0 -5
  165. package/dist/chunks/studio-27tc8q0h.js +0 -5
  166. package/dist/chunks/studio-7djymzt2.js +0 -5
  167. package/dist/chunks/studio-ant1zbp3.js +0 -5
  168. package/dist/chunks/studio-b29h7g7s.js +0 -5
  169. package/dist/chunks/studio-eb5sty2k.js +0 -5
  170. package/dist/chunks/studio-frv7vjhw.js +0 -5
  171. package/dist/chunks/studio-mb8jhtr4.js +0 -64
  172. package/dist/chunks/studio-nvykrgbj.js +0 -4
  173. package/dist/chunks/studio-nw4q9sdn.js +0 -5
  174. package/dist/chunks/studio-p6avneaq.js +0 -5
  175. package/dist/chunks/studio-vz7b43ng.js +0 -5
  176. package/dist/chunks/workspace-emt8454d.js +0 -4
@@ -0,0 +1,5 @@
1
+ import{ge,Xa,Q,v,re,zd,k}from"./studio-fqq890ap.js";import{kp}from"./studio-7pgy3xaf.js";import{p}from"./studio-y7jehjrp.js";import{wi,Zt,Dr}from"./studio-cqmtbg2p.js";import{K,Lm,ht,_n,Yo,qa,D}from"./studio-tp642n5g.js";import{Ae,Ic,Im,lk}from"./studio-evwgp1ym.js";import{va,oh,rh}from"./studio-nbxqcgvf.js";import{me}from"./studio-0bbxhhce.js";function vm(e,t){return{success:!0,data:e,summary:t}}function zi(e){return{success:!1,error:e}}function Ki({name:e,description:t,parameters:n,strict:o=!0,llmStrict:r=!1,interactive:i,execute:s}){return{name:e,description:t,parameters:n,strict:o,llmStrict:r,...i===void 0?{}:{interactive:i},execute:s}}function av(e){let t=[];return{record(n){t.push(n),e?.(n)},writes:t}}function Dd(e=null,t={}){let n=new Map(Object.entries(t));return{sessionId:e,get:(o)=>n.get(o),set:(o,r)=>{n.set(o,r)},toJSON:()=>Object.fromEntries(n)}}var Ot=new AbortController().signal;function lv(e={}){let t=e.session??Dd();return{actor:e.actor??{id:`assistant:${t.sessionId??"local"}:`,kind:"assistant",sessionId:t.sessionId,turnId:""},callId:e.callId??"",ledger:e.ledger??av(),progress:e.progress??(()=>{}),session:t,signal:e.signal??Ot}}function wL(e){let t=new AbortController;if(e.aborted)return t.abort(e.reason),{release:()=>{},signal:t.signal};let n=()=>{t.abort(e.reason)};return e.addEventListener("abort",n,{once:!0}),{release:()=>{e.removeEventListener("abort",n)},signal:t.signal}}function zC(){let e=new Map;return{register(t){if(e.has(t.name))console.warn(`Tool "${t.name}" is being re-registered.`);e.set(t.name,t)},list(){return[...e.values()]},listForLLM(){return[...e.values()].map((t)=>({type:"function",function:{name:t.name,description:t.description,parameters:t.parameters,...t.llmStrict===!0?{strict:!0}:{}}}))},getDefinition(t){return e.get(t)},validate(t,n){let o=e.get(t);if(!o)return{valid:!1,errors:[`Unknown tool: "${t}"`]};if(!o.strict)return{valid:!0};let r=o.parameters;if(!r||!r.properties)return{valid:!0};let i=[],s=r.properties,a=r.required||[],l=n;for(let c of a)if(!(c in n)||l[c]===void 0||l[c]===null)i.push(`Missing required argument: "${c}"`);for(let[c,d]of Object.entries(l)){let g=s[c];if(!g)continue;let y=g.type;if(!y)continue;let b=Array.isArray(d)?"array":typeof d;if(y==="number"||y==="integer"){if(b==="number")continue;if(b==="string"){if(!Number.isNaN(Number(d)))continue;i.push(`Argument "${c}" should be a number, got non-numeric string "${d}"`);continue}i.push(`Argument "${c}" should be a number, got ${b}`);continue}if(y==="string"&&b!=="string")i.push(`Argument "${c}" should be a string, got ${b}`);else if(y==="boolean"&&b!=="boolean")i.push(`Argument "${c}" should be a boolean, got ${b}`);else if(y==="array"&&b!=="array")i.push(`Argument "${c}" should be an array, got ${b}`);else if(y==="object"&&b!=="object")i.push(`Argument "${c}" should be an object, got ${b}`)}return i.length>0?{valid:!1,errors:i}:{valid:!0}},async execute(t,n,o=lv()){let r=e.get(t);if(!r)return zi(`Unknown tool: "${t}"`);let i=this.validate(t,n);if(!i.valid)return zi(`Validation failed: ${(i.errors||[]).join("; ")}`);try{return await r.execute(n,o)}catch(s){return zi(`Tool "${t}" execution error: ${s.message}`)}}}}function wt(e){return JSON.parse(JSON.stringify(e))}function St(e){if(!e)return{};let t=JSON.parse(e);if(t===null||typeof t!=="object"||Array.isArray(t)){let n=t===null?"null":Array.isArray(t)?"array":typeof t;throw TypeError(`arguments must be a JSON object, got ${n}`)}return t}async function xL(e,t,n){let o=!1,r;try{let i=St(t.argumentsText);o=!0,r=await e.execute(t.name,i,n)}catch(i){r=zi(`Failed to parse arguments: ${i.message}`)}try{return{status:"done",result:wt(r),executed:o}}catch(i){let s=i.message;return{status:"done",result:zi(`Tool "${t.name}" returned a result that cannot be serialized: ${s}`),executed:o}}}var F=[],Ct=50;function _L(e){return Object.assign(av(),{turnId:e})}function CL(e,t){if(t.length===0)return[];let n={id:e,writes:[...t]};F.push(n);while(F.length>Ct)F.shift();return n.writes}function Tx(e){return F.find((t)=>t.id===e)?.writes??[]}function kL(e){let t=e.filter((a)=>a.ok),n=new Set(t.map((a)=>a.path)),o=e.length-t.length;if(n.size===0)return o>0?`${o} change${o===1?"":"s"} failed`:"";let r=`Changed ${n.size} file${n.size===1?"":"s"}`,i=new Set(t.filter((a)=>a.disk).map((a)=>a.path)),s=[r];if(i.size>0)s.push(`${i.size} written to disk — undo cannot reach ${i.size===1?"it":"them"}`);if(o>0)s.push(`${o} failed`);return s.join(" · ")}function Lx(){F.splice(0)}function SL(e,t){let n=null;for(let o=e.length-1;o>=0;o--){let r=e[o];if(r.id===t)return n;let i=r.role==="assistant"&&(r.content||(r.toolCalls?.length??0)>0);if(n===null&&i)n=r.id}return t===void 0?n:null}var Rt=new Set(["Adlm","Arab","Aran","Armi","Avst","Cprt","Egyd","Egyh","Elym","Gara","Hatr","Hebr","Hluw","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogd","Sogo","Syrc","Thaa","Todr","Yezi"]),Sx="^[A-Za-z]{2,8}(-[A-Za-z0-9]{1,8})*$";function Go(e){if(typeof e!=="string"||e.trim()==="")return null;try{return new Intl.Locale(e.trim()).toString()}catch{return null}}function iv(e){return Go(e)!==null}function gL(e){let t=Go(e);if(t===null)return"ltr";let n=new Intl.Locale(t),o=n.script??n.maximize().script;return o!==void 0&&Rt.has(o)?"rtl":"ltr"}function dn(e){let t=Go(e);if(t===null)return typeof e==="string"?e:"";return new Intl.DisplayNames([t],{type:"language"}).of(t)??t}var At="prefix-except-default";function $o(e){let t=e.i18n,n=[];if(!t||typeof t!=="object")return{errors:n,i18n:null};let o=Array.isArray(t.locales)?t.locales:[],r=[];for(let a of o){let l=Go(a);if(l===null){n.push(`i18n.locales: "${String(a)}" is not a well-formed BCP 47 language tag.`);continue}if(!r.includes(l))r.push(l)}let i=Go(t.defaultLocale)??r[0]??null;if(t.defaultLocale!==void 0&&Go(t.defaultLocale)===null)n.push(`i18n.defaultLocale: "${String(t.defaultLocale)}" is not a well-formed BCP 47 language tag.`);if(i===null)return n.push("i18n is declared with no usable locale — set `defaultLocale` or `locales`."),{errors:n,i18n:null};if(!r.includes(i))r.unshift(i);let s=t.routing==="prefix-always"||t.routing==="prefix-except-default"?t.routing:At;return{errors:n,i18n:{defaultLocale:i,locales:r,routing:s}}}function zu(e,t){let n=se(W(e),t);if(n===-1||t===null)return null;return Go(W(e)[n])}function bL(e,t){let n=zu(e,t);if(n!==null||t===null||t.routing!=="prefix-except-default")return n;return W(e)[0]==="pages"?t.defaultLocale:null}function BC(e,t){let n=W(e),o=se(n,t);return o===-1?n.join("/"):n.filter((r,i)=>i!==o).join("/")}function Wu(e,t,n){if(n===null)return null;let o=Go(t);if(o===null||!n.locales.includes(o))return null;let r=W(e),i=se(r,n),s=i===-1?kt(r):i;if(s===-1)return null;let a=i===-1?r:r.filter((l,c)=>c!==i);if(o===n.defaultLocale&&n.routing==="prefix-except-default")return a.join("/");return a.toSpliced(s,0,o.toLowerCase()).join("/")}function W(e){return e.replace(/^\.\//,"").split("/").filter(Boolean)}function se(e,t){if(t===null)return-1;return e.findIndex((n)=>{let o=Go(n);return o!==null&&t.locales.includes(o)})}function kt(e){if(e[0]==="pages"&&e.length>1)return 1;if(e[0]==="content"&&e.length>2)return 2;return-1}var Dx="{locale}";function Re(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}function B(e){return e.replaceAll("\\","/").replace(/^\.\//,"").replace(/\/+$/,"")}function ke(e){return e??D?.projectConfig??null}function Je(e){return e?.content??{}}function Jt(e){let t=$o(e??{}).i18n?.locales??[];return t.length>0?[...t]:null}function je(e){if(e.endsWith("/"))return!1;let t=e.slice(e.lastIndexOf("/")+1);return/\.[a-z\d]+$/i.test(t)}function Ie(e){if(e.format==="json")return{ext:".json",unresolvedFormat:null};if(e.format===void 0||e.format==="")return{ext:Dr()?.extensions[0]??".json",unresolvedFormat:null};let t=wi(e.format);return t?.extensions[0]===void 0?{ext:null,unresolvedFormat:e.format}:{ext:t.extensions[0],unresolvedFormat:null}}function jt(e,t){let n=t===null?"[^/]+":`(?:${t.map((r)=>Re(r)).join("|")})`,o=B(e).split(Dx).map((r)=>Re(r)).join(n);return new RegExp(`^${o}(?:/|$)`,"i")}function It(e,t,n){let o=jt(e,n).exec(t);if(!o)return null;return o[0].replace(/\/$/,"")}function Dt(e){return B(e).replaceAll(Dx,"").length}function bp(e,t){if(e===null||e===void 0||e==="")return null;let n=ke(t),o=Jt(n),r=B(e),i=null,s=-1;for(let[a,l]of Object.entries(Je(n))){let{source:c}=l;if(c===void 0||c===""||je(c))continue;let d=Dt(c);if(d<=s)continue;let g=It(c,r,o);if(g===null)continue;i={def:l,dir:r,fileBacked:!1,isSourceRoot:r.length===g.length,name:a,...Ie(l)},s=d}return i}function Ax(e,t){if(e===null||e===void 0||e==="")return null;let n=ke(t),o=B(e),r=o.toLowerCase();for(let[i,s]of Object.entries(Je(n))){let{source:a}=s;if(a===void 0||a===""||!je(a))continue;let l=B(a).toLowerCase();if(r===l||r.endsWith(`/${l}`))return{def:s,dir:o.includes("/")?o.slice(0,o.lastIndexOf("/")):".",fileBacked:!0,isSourceRoot:!1,name:i,...Ie(s)}}return bp(o.includes("/")?o.slice(0,o.lastIndexOf("/")):".",n)}function Ml(e){return e.replaceAll(/([A-Z])/g," $1").replace(/^./,(t)=>t.toUpperCase())}function xv(e){return e.replaceAll(/[^a-zA-Z0-9]+(.)?/g,(t,n)=>n?n.toUpperCase():"").replace(/^[A-Z]/,(t)=>t.toLowerCase())}function _v(e){return e.replaceAll(/(^|-)(\w)/g,(t,n,o)=>(n?" ":"")+o.toUpperCase())}function Nx(e,t){return e?.$label||Ml(t)}function KL(e,t){if(e?.$label)return e.$label;if(t.includes("-"))return t.replaceAll(/(^|-)(\w)/g,(n,o,r)=>(o?" ":"")+r.toUpperCase());return Ml(t)}function ma(e){return e==="image"||e==="uri-reference"}function Ad(e){if(e.$shorthand===!0)return"shorthand";if(e.$input==="button-group")return"button-group";if(e.$input==="media")return"media";if(e.format==="color")return"color";if(ma(e.format))return"media";if(e.$units!==void 0)return"number-unit";if(e.type==="number")return"number";if(Array.isArray(e.enum))return"select";if(Array.isArray(e.examples)||Array.isArray(e.presets))return"combobox";return"text"}function qu(e,t){if(!e||!t?.content)return null;let n=Ax(e,t);if(!n||!n.def.schema)return null;if(!n.fileBacked){let o=n.ext??Dr()?.extensions[0]??".json";if(!e.toLowerCase().endsWith(o.toLowerCase()))return null}return{name:n.name,schema:n.def.schema}}function xm(e,t){let n=e.trim().toLowerCase().replaceAll(/[^a-z0-9\s-]/g,"").replaceAll(/\s+/g,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,"");if(!n)return"";return`${t}${n}`}function Cv(e,t){return e.replace(new RegExp(`^${t.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}`),"").replace(/^--/,"").replaceAll("-"," ").replaceAll(/\b\w/g,(n)=>n.toUpperCase())||e}function JL(e){if(!e)return{kind:"text"};let t=e.trim().replaceAll(/\s*\|\s*undefined\b/g,"").trim();if(t==="boolean")return{kind:"boolean"};if(t==="number")return{kind:"number"};if(t.match(/^'[^']*'(\s*\|\s*'[^']*')+$/))return{kind:"combobox",options:[...t.matchAll(/'([^']*)'/g)].map((r)=>r[1])};return{kind:"text"}}function Ao(e){return JSON.parse(JSON.stringify(e))}function Le(e){return e&&e.length>0?e.at(-1):null}function LL(e){return e&&e.length>0?e[0]:null}function dv(e,t){if(!t||!e)return!1;return e.some((n)=>Yo(n,t))}function ms(e){return E(e)}function E(e){let t=[];for(let n of e)t.push([...n]);return t}function uv(e,t){if(dv(e,t))return E(e.filter((n)=>!Yo(n,t)));return[...E(e),[...t]]}function IL(e,t,n){let o=e.findIndex((s)=>Yo(s,n)),r=t?e.findIndex((s)=>Yo(s,t)):-1;if(o===-1||r===-1)return[[...n]];let i=r<=o?e.slice(r,o+1):e.slice(o,r+1).toReversed();return E(i)}function De(e,t){return E(e.filter((n)=>!qa(t,n)))}function Et(e,t){let n=Math.min(e.length,t.length);for(let o=0;o<n;o++){let r=e[o],i=t[o];if(r===i)continue;if(typeof r==="number"&&typeof i==="number")return r-i;return String(r)<String(i)?-1:1}return e.length-t.length}function Lt(e){return E(e.filter((t)=>!e.some((n)=>!Yo(n,t)&&qa(n,t))))}function Nl(e){return e.at(-2)==="children"&&typeof e.at(-1)==="number"}function hv(e){return Lt(e).filter((t)=>Nl(t)).toSorted((t,n)=>Et(n,t))}function RL(e){let t=[];for(let n of e)if(!t.some((o)=>Yo(o,n)))t.push([...n]);return t}function mp(e){if(e.length===0)return{mixed:!1,value:void 0};let t=e[0],n=JSON.stringify(t??null);for(let o=1;o<e.length;o++)if(JSON.stringify(e[o]??null)!==n)return{mixed:!0,value:void 0};return{mixed:!1,value:t}}var Ee=null;function $L(e){Ee=e}function Me(){return Ee}var V=null,U=null,G=null,ae=!0;function $e(){V=[],U=[],G=[],ae=!0}function f(e){if(V)V.push(e)}function vi(e){if(U)U.push(e)}function Ne(e){if(G)G.push(e)}function _e(){let e={docOps:U??[],fmOps:G??[],invertible:ae,ops:V??[]};return V=null,U=null,G=null,ae=!0,e}var Fe=100,Mt=20;function H(){try{return typeof localStorage>"u"||!localStorage.getItem("jx-legacy-history")}catch{return!0}}function P(e,t,n,o){return{forward:{key:t,op:"set-key",path:e,value:o},inverse:{key:t,op:"set-key",path:e,value:n}}}function $t(e,t,n,o,r){let i=e.length;if(!(i<t.length&&e.every((c,d)=>c===t[d]))||t[i]!=="children"||typeof t[i+1]!=="number")return t;let a=t[i+1];if(r?a<n:a<=n)return t;let l=[...t];return l[i+1]=a+o,l}var We=null;function Be(e){We=e}var Ve=null;function Ke(e){Ve=e}function Nt(e,t,n,o){for(let r=t.docOps.length-1;r>=0;r--)Im(e.doc.document,re(t.docOps[r].inverse));for(let r=t.fmOps.length-1;r>=0;r--){let i=t.fmOps[r];de(e,i.field,i.before)}e.doc.document={...re(e.doc.document)},e.session.selection=n,e.doc.dirty=o}function q(e,t,{skipHistory:n=!1,origin:o="user",coalesceKey:r=null}={}){if(!e)return!1;if(o!=="remote"&&Ve?.(e,o))return!1;let i=ms(e.session.selection),s=e.doc.dirty;$e();let a,l=null;try{t(e)}catch(b){l={error:b}}finally{a=_e()}if(l)throw Nt(e,a,i,s),l.error;let c=re(e.doc.document),d={...c},g=Me(),y=g===null?{patchable:!1,reason:"no-patch-consumer"}:a.ops.length===0?{patchable:!1,reason:"unrecorded-mutation"}:g.classify(e,a.ops);if(y.patchable)g.markConsumed(d,e);if(e.doc.document=d,y.patchable)try{g.apply(e,a.ops,a)}catch(b){g.escalate(`patch-apply-failed: ${b instanceof Error?b.message:String(b)}`,e)}if(!n&&!L)_t(e,c,a,i,r);return e.doc.dirty=!0,We?.(e,a,o),!0}function _t(e,t,n,o,r=null){let i=e.history.snapshots.slice(0,e.history.index+1),s=H()&&n.invertible&&(n.docOps.length>0||n.fmOps.length>0),a=i.at(-1);if(r&&s&&a&&a.coalesceKey===r&&a.inverseOps){if(a.forwardOps=[...a.forwardOps??[],...n.docOps.map((c)=>c.forward)],a.inverseOps=[...a.inverseOps,...n.docOps.map((c)=>c.inverse)],a.selection=ms(e.session.selection),a.document)a.document=Ao(t);e.history.snapshots=i,e.history.index=i.length-1;return}let l=!s||i.length%Mt===0;if(i.push({document:l?Ao(t):null,fmOps:s&&n.fmOps.length>0?n.fmOps:null,forwardOps:s?n.docOps.map((c)=>c.forward):null,inverseOps:s?n.docOps.map((c)=>c.inverse):null,coalesceKey:r,selection:ms(e.session.selection),selectionBefore:o}),i.length>Fe){if(!i[1].document)i[1].document=le(i,1);i.shift()}e.history.snapshots=i,e.history.index=i.length-1}function le(e,t){let n=t;while(n>=0&&!e[n].document)n-=1;if(n<0)throw Error("history-missing-checkpoint");let o=Ao(e[n].document);for(let r=n+1;r<=t;r++)for(let i of e[r].forwardOps??[])Im(o,i);return o}function Hs(e,t,n){return q(e,(o)=>t(o.doc.document),n)}function ce(e,t){q(e,(n)=>{for(let o of t)ue(n,o)},{origin:"remote",skipHistory:!0})}var Ft=new Set(["state","$media","$head","$elements","imports","$layout"]);function ue(e,t){let n=t.op==="set-key"?K(e.doc.document,t.path)?.[t.key]:null;switch(Im(e.doc.document,t),vi({forward:t,inverse:t}),t.op){case"set-key":{if(Ft.has(t.key))f({key:t.key,op:"doc-meta"});else if(t.key==="style")f({op:"set-style",path:t.path});else if(t.key==="textContent")f({op:"set-text",path:t.path});else if(t.key==="attributes"||t.key==="cases"||t.key==="$props")f({op:"replace",path:t.path});else{let o=t.key.startsWith("on")&&(rh(t.value)||rh(n));f({isEvent:o,key:t.key,op:"set-prop",path:t.path})}return}case"insert-child":{f({index:t.index,op:"insert",parentPath:t.parentPath});return}case"remove-child":{f({op:"remove",path:[...t.parentPath,"children",t.index]});return}case"set-child":{f({op:"replace",path:[...t.parentPath,"children",t.index]});return}case"move-child":{f({fromPath:[...t.fromParentPath,"children",t.fromIndex],op:"move",toIndex:t.toIndex,toParentPath:t.toParentPath});break}default:break}}var L=null,Ge=null;function qe(e){Ge=e}function pv(e){L=e}function fv(){let e=L;if(e&&!j.has(e)){let t=re(e.doc.document),n={document:Ao(t),selection:ms(e.session.selection)},o=e.history.snapshots.slice(0,e.history.index+1);if(o.push(n),o.length>Fe)o.shift();e.history.snapshots=o,e.history.index=o.length-1}if(L=null,e)Ge?.(e)}function Ix(){return L!==null}function DL(){return L}var j=new WeakMap;function ym(e,t){if(t)j.set(e,t);else j.delete(e)}function AL(e){let t=j.get(e);return t?t.canUndo(e):e.history.index>0}function NL(e){let t=j.get(e);return t?t.canRedo(e):e.history.index<e.history.snapshots.length-1}function ze(e,t){let{snapshots:n}=e.history;e.doc.document=le(n,t);let o=n[t];e.session.selection=ms(re(o.selection))}function Ye(e,t){try{if(typeof localStorage>"u"||!localStorage.getItem("jx-canvas-debug"))return}catch{return}let n=JSON.stringify(le(e.history.snapshots,t)),o=JSON.stringify(Ao(re(e.doc.document)));if(n!==o)console.error("jx history: ops-based undo/redo diverged from checkpoint replay",{index:t})}function Rx(e){let t=j.get(e);if(t){t.undo(e);return}if(e.history.index<=0)return;let n=e.history.snapshots[e.history.index],o=H()?n.inverseOps:null,r=H()?n.fmOps:null;if(o&&o.length>0||r&&r.length>0){if(!q(e,(s)=>{if(o)for(let a=o.length-1;a>=0;a--)ue(s,re(o[a]));if(r)for(let a=r.length-1;a>=0;a--){let l=re(r[a]);de(s,l.field,l.before)}},{origin:"history",skipHistory:!0}))return;e.session.selection=ms(re(n.selectionBefore??[])),e.history.index-=1,Ye(e,e.history.index)}else e.history.index-=1,ze(e,e.history.index);e.doc.dirty=!0}function OL(e){let t=j.get(e);if(t){t.redo(e);return}if(e.history.index>=e.history.snapshots.length-1)return;let n=e.history.snapshots[e.history.index+1],o=H()?n.forwardOps:null,r=H()?n.fmOps:null;if(o&&o.length>0||r&&r.length>0){if(!q(e,(s)=>{if(o)for(let a of o)ue(s,re(a));if(r)for(let a of r){let l=re(a);de(s,l.field,l.after)}},{origin:"history",skipHistory:!0}))return;e.session.selection=ms(re(n.selection)),e.history.index+=1,Ye(e,e.history.index)}else e.history.index+=1,ze(e,e.history.index);e.doc.dirty=!0}function Ji(e,t,n,o){let r=K(e.doc.document,t);if(!r)return;Ic(r).splice(n,0,structuredClone(o)),f({index:n,op:"insert",parentPath:t}),vi({forward:{index:n,node:Ae(o),op:"insert-child",parentPath:t},inverse:{index:n,op:"remove-child",parentPath:t}})}function Vu(e,t){if(!t||!Nl(t))return;let n=ht(t),o=_n(t),[r]=K(e.doc.document,n).children.splice(o,1);f({op:"remove",path:t}),vi({forward:{index:o,op:"remove-child",parentPath:n},inverse:{index:o,node:Ae(r),op:"insert-child",parentPath:n}}),e.session.selection=De(e.session.selection,t)}function VC(e,t){if(!t||!Nl(t))return;let n=K(e.doc.document,t);if(!n)return;let o=ht(t),r=_n(t),i=structuredClone(re(n));K(e.doc.document,o).children.splice(r+1,0,i),f({index:r+1,op:"insert",parentPath:o}),vi({forward:{index:r+1,node:Ae(i),op:"insert-child",parentPath:o},inverse:{index:r+1,op:"remove-child",parentPath:o}}),e.session.selection=[[...o,"children",r+1]]}function gp(e,t){for(let n of hv(t))Vu(e,n)}function mv(e,t){let n=[];for(let o of hv(t)){let r=e.session.selection;VC(e,o);let i=Le(e.session.selection);if(!i||e.session.selection===r)continue;let s=ht(i),a=_n(i);n=n.map((l)=>$t(s,l,a,1,!0)),n.unshift(i)}if(n.length>0)e.session.selection=n}function ML(e,t,n="div"){if(!t||!Nl(t))return;let o=K(e.doc.document,t);if(!o)return;let r=ht(t),i=_n(t),s={children:[structuredClone(re(o))],tagName:n},a=Ae(o);K(e.doc.document,r).children.splice(i,1,s),f({op:"replace",path:t}),vi({forward:{index:i,node:Ae(s),op:"set-child",parentPath:r},inverse:{index:i,node:a,op:"set-child",parentPath:r}}),e.session.selection=[[...r,"children",i]]}function pa(e,t,n,o){let r=e.doc.document,i=ht(t),s=_n(t);if(!i||typeof s!=="number")return;let a=K(r,i),l=K(r,n);if(!a||!Array.isArray(a.children)||!l)return;if(a.children[s]===void 0)return;let c=o;if(a===l&&s<o)c-=1;let d={fromIndex:s,fromParentPath:i,op:"move-child",toIndex:c,toParentPath:n},g=lk(r,d),[y]=a.children.splice(s,1);if(Ic(l).splice(c,0,y),f({fromPath:t,op:"move",toIndex:c,toParentPath:n}),vi({forward:d,inverse:g}),Yo(Le(e.session.selection),t)){let b=o;if(i.length===n.length&&i.every((_,I)=>_===n[I])&&s<o)b=o-1;e.session.selection=[[...n,"children",b]]}}function Ue(e,t,n,o){let r=K(e.doc.document,t);if(!r)return;let i=r[n],s=Ae(i);if(o===void 0||o===null||o==="")delete r[n];else r[n]=o;if(vi(P(t,n,s,Ae(r[n]))),n==="textContent")f({op:"set-text",path:t});else if(n==="style")f({op:"set-style",path:t});else{let a=o===void 0||o===null||o===""?i:o,l=n.startsWith("on")&&rh(a);f({isEvent:l,key:n,op:"set-prop",path:t})}}function kc(e,t,n,o){let r=K(e.doc.document,t),i=Ae(r.style);if(!r.style)r.style={};if(o===void 0||o==="")delete r.style[n];else r.style[n]=o;if(Object.keys(r.style).length===0)delete r.style;vi(P(t,"style",i,Ae(r.style))),f({op:"set-style",path:t})}function Ko(e,t,n,o){let r=K(e.doc.document,t),i=Ae(r.attributes);if(!r.attributes)r.attributes={};if(o===void 0||o==="")delete r.attributes[n];else r.attributes[n]=o;if(Object.keys(r.attributes).length===0)delete r.attributes;vi(P(t,"attributes",i,Ae(r.attributes))),f({attr:n,op:"set-attr",path:t})}function PL(e,t,n,o,r){if(!n)return kc(e,t,o,r);let i=K(e.doc.document,t),s=Ae(i.style);if(!i.style)i.style={};let a=`@${n}`,l=oh(i.style,a);if(r===void 0||r===""){if(delete l[o],Object.keys(l).length===0)delete i.style[a]}else l[o]=r;if(Object.keys(i.style).length===0)delete i.style;vi(P(t,"style",s,Ae(i.style))),f({op:"set-style",path:t})}function gv(e,t,n,o,r){let i=K(e.doc.document,t),s=Ae(i.style);if(!i.style)i.style={};let a=oh(i.style,n);if(r===void 0||r===""){if(delete a[o],Object.keys(a).length===0)delete i.style[n]}else a[o]=r;if(Object.keys(i.style).length===0)delete i.style;vi(P(t,"style",s,Ae(i.style))),f({op:"set-style",path:t})}function FL(e,t,n,o,r,i){let s=K(e.doc.document,t),a=Ae(s.style);if(!s.style)s.style={};let l=`@${n}`,c=oh(s.style,l),d=oh(c,o);if(i===void 0||i===""){if(delete d[r],Object.keys(d).length===0)delete c[o];if(Object.keys(c).length===0)delete s.style[l]}else d[r]=i;if(Object.keys(s.style).length===0)delete s.style;vi(P(t,"style",a,Ae(s.style))),f({op:"set-style",path:t})}function Ze(e,t){let n=[e];for(let o of t){let r=va(n.at(-1),o);if(!r)break;n.push(r)}for(let o=n.length-2;o>=0;o--){let r=n[o],i=t[o],s=va(r,i);if(s&&Object.keys(s).length===0)delete r[i]}}function bv(e,t,n,o,r){let i=K(e.doc.document,t),s=Ae(i.style);if(!i.style)i.style={};let a=i.style;for(let l of n)a=oh(a,l);if(r===void 0||r==="")delete a[o],Ze(i.style,n);else a[o]=r;if(Object.keys(i.style).length===0)delete i.style;vi(P(t,"style",s,Ae(i.style))),f({op:"set-style",path:t})}function jL(e,t,n,o,r,i){let s=K(e.doc.document,t),a=Ae(s.style);if(!s.style)s.style={};let l=`@${n}`,c=oh(s.style,l),d=c;for(let g of o)d=oh(d,g);if(i===void 0||i===""){if(delete d[r],Ze(c,o),Object.keys(c).length===0)delete s.style[l]}else d[r]=i;if(Object.keys(s.style).length===0)delete s.style;vi(P(t,"style",a,Ae(s.style))),f({op:"set-style",path:t})}function HL(e,t,n){let o=K(e.doc.document,t),r=Ae(o.style);if(n&&Object.keys(n).length>0)o.style=n;else delete o.style;vi(P(t,"style",r,Ae(o.style))),f({op:"set-style",path:t})}function Bs(e,t,n){let o=e.doc.document,r=Ae(o.state);if(!o.state)o.state={};o.state[t]=n,vi(P([],"state",r,Ae(o.state))),f({key:"state",op:"doc-meta"})}function vv(e,t){let n=e.doc.document;if(n.state){let o=Ae(n.state);if(delete n.state[t],Object.keys(n.state).length===0)delete n.state;vi(P([],"state",o,Ae(n.state))),f({key:"state",op:"doc-meta"})}}function mr(e,t,n){let o=e.doc.document,r=Ae(o.state);if(!o.state)o.state={};let i=o.state[t],s=i==null?{}:typeof i!=="object"||Array.isArray(i)?{default:i}:i;o.state[t]=s,Object.assign(s,n);for(let a of Object.keys(s))if(s[a]===void 0||s[a]===null)delete s[a];vi(P([],"state",r,Ae(o.state))),f({key:"state",op:"doc-meta"})}function BL(e,t,n){let o=e.doc.document;if(!o.state||!o.state[t])return;let r=Ae(o.state);o.state[n]=o.state[t],delete o.state[t],vi(P([],"state",r,Ae(o.state))),f({key:"state",op:"doc-meta"})}function Uu(e,t,n,o){let r=K(e.doc.document,t),i=Ae(r.$props);if(!r.$props)r.$props={};if(o===void 0||o===null||o==="")delete r.$props[n];else r.$props[n]=o;if(Object.keys(r.$props).length===0)delete r.$props;vi(P(t,"$props",i,Ae(r.$props))),f({op:"replace",path:t})}function zL(e,t,n,o){let r=K(e.doc.document,t),i=Ae(r.cases);if(!r.cases)r.cases={};r.cases[n]=o||{tagName:"div",textContent:n},vi(P(t,"cases",i,Ae(r.cases))),f({op:"replace",path:t})}function WL(e,t,n){let o=K(e.doc.document,t);if(o.cases){let r=Ae(o.cases);delete o.cases[n],vi(P(t,"cases",r,Ae(o.cases))),f({op:"replace",path:t})}}function VL(e,t,n,o){let r=K(e.doc.document,t);if(!r.cases||!r.cases[n])return;let i=Ae(r.cases);r.cases[o]=r.cases[n],delete r.cases[n],vi(P(t,"cases",i,Ae(r.cases))),f({op:"replace",path:t})}function Ol(e,t,n){let o=e.doc.content.frontmatter,r=Object.hasOwn(o,t)?Ae(o[t]):void 0,i=n===void 0||n===null||n==="";if(i)delete o[t];else o[t]=n;let s=i?void 0:Ae(n);Ne({after:s,before:r,field:t}),e.doc.dirty=!0}function de(e,t,n){if(n===void 0)delete e.doc.content.frontmatter[t];else e.doc.content.frontmatter[t]=n}var Wt={design:"canvas",edit:"canvas",entry:"entry","git-diff":"diff",grid:"grid",manage:"library",media:"media",preview:"canvas",settings:"config",source:"code",stylebook:"config"},ov={canvas:"Canvas",code:"Code",config:"Project Styles",diff:"Diff",entry:"Entry",grid:"Grid",media:"Media",library:"Library",none:"None"};function ha(e){return Wt[e]??"canvas"}var Bt={design:"design",edit:"edit",preview:"preview"};function vL(e){return Bt[e]??"design"}var rv=(e)=>e.editor.kind==="canvas",$d=(e)=>rv(e)&&e.selection.count>0,sv=(e)=>$d(e)&&!e.selection.isRoot;function bm(){return{project:{open:!1,isSite:!1,isRepo:!1,isMultilingual:!1},git:{ahead:0,behind:0,dirtyCount:0},document:{open:!1,dirty:!1,mode:"",canUndo:!1,canRedo:!1},editor:{kind:"none"},canvas:{view:"design"},pane:{count:1,derived:!1},selection:{count:0,paths:[],kind:"",isRoot:!1,isComponentInstance:!1,isLayoutNode:!1,isRepeater:!1},caret:{active:!1,inCanvas:!1},focus:{region:"pane"},modal:{open:!1},collab:{attached:!1,readOnly:!1,sourceCanonical:!1},ai:{configured:!1,streaming:!1,waiting:!1},capability:{gitClone:!1,importSite:!1,openProjectInNewWindow:!1,dataRows:!1,windowControls:!1,findReferences:!1,readFileBytes:!1}}}function Ex(e={}){let t=bm();for(let n of Object.keys(e)){let o=e[n];if(o)Object.assign(t[n],o)}return t}var Vt=["palette"],Kt=["caret","global"],Ut=["dock","global"],Gt=["canvas","global"],Ht=["grid","global"],qt=["code","global"],Xe=["global"];function yL(e){if(e.modal.open)return Vt;if(e.caret.active)return Kt;if(e.focus.region!=="pane")return Ut;switch(e.editor.kind){case"grid":return Ht;case"code":return qt;case"canvas":return e.canvas.view==="preview"?Xe:Gt;default:return Xe}}var ai="project.json";function zt(e,t=!1){return{activeMedia:null,activeSelector:null,openPopover:null,openDialog:null,canvasMode:e,editZoom:1,editingFormula:null,editingFunction:null,featureToggles:{},inspectorSections:{},pendingInlineEdit:null,preview:t,previewColorScheme:"auto",previewLocale:null,previewParams:{},previewProps:null,rightTab:"properties",showLayout:!0,styleFilter:"",styleSections:{},dataRows:{},dataLimits:{},styleShorthands:{},zoom:1}}var Yt=["edit","design","preview","source","stylebook","git-diff"];function cv({id:e,documentPath:t=null,fileHandle:n=null,document:o,frontmatter:r,sourceFormat:i=null,capabilities:s,openedFrom:a=null,preview:l=!1,layout:c=null}){let d=ge();Lm(o);let g=s?.modes??Xt(t,i),y=g.find((I)=>I!=="preview")??"edit",b=g[0]==="preview";return d.run(()=>({capabilities:{modes:g},doc:v({content:{frontmatter:r||{}},dirty:!1,document:o,handlersSource:null,layout:c,mode:Qt(t,i),sourceFormat:i}),documentPath:t,fileHandle:n,history:v({index:0,snapshots:[{document:structuredClone(o),selection:[]}]}),id:e,pinned:!1,preview:l,scope:d,session:v({canvas:{refreshing:!1,error:null,livePreviews:null,pendingInlineEdit:null,scope:null,status:"idle"},clipboard:null,hover:null,openedFrom:a,selection:[],ui:zt(y,b)})}))}function Xt(e,t){if(e===ai)return["stylebook","source"];let n=wi(t)??Zt(e);if(n)return n.studio?.modes??["edit","design","preview","source"];return Yt}function Qt(e,t){let n=wi(t)??Zt(e);if(n)return n.studio?.documentMode?.default??"content";return"component"}function WC(e){return ha(e.session.ui.canvasMode)}function EL(e){let t=[];for(let n of e.capabilities.modes){if(n==="preview")continue;let o=ha(n);if(!t.includes(o))t.push(o)}return t}function TL(e,t){return e.capabilities.modes.find((n)=>n!=="preview"&&ha(n)===t)}function fp(e){e.scope.stop()}var Qe=new WeakMap,M=new Map;function xn(e){let t=re(e),n=Qe.get(t);if(!n)n=v({active:!1,attachError:"",peers:[],readOnly:!1,sourceCanonical:!1,status:"unavailable"}),Qe.set(t,n);return n}function et(e){M.set(e,(M.get(e)??0)+1)}function tt(e){let t=M.get(e)??0;if(t<=1)M.delete(e);else M.set(e,t-1)}function wm(e){return M.has(e.replaceAll("\\","/"))}var en=8000,tn=800,nn=2500,nt=null;function on(){return nt??=(me("m0x5ztax"),import("./index-m0x5ztax.js")),nt}function it(){try{return p()}catch{return null}}var N=null;function YL(e){N=e}var pe=null;function ZL(e){pe=e}var st=()=>{};function XL(e){st=e??(()=>{})}var be=new WeakMap;function at(e){return re(e)}function C(e){return be.get(at(e))}function xe(e){let t=at(e),n=be.get(t);if(!n)n={attaching:null,generation:0,optedOut:v({value:!1}),session:null,watcherInstalled:!1},be.set(t,n);return n}var rt=!1;function rn(){if(rt)return;rt=!0,Be(sn),qe(an),Ke((e)=>{if(C(e)?.session?.synced&&xn(e).sourceCanonical)return st("Source editing in progress — structural edits are paused"),"source-canonical";return null})}function sn(e,t,n){let o=C(e)?.session;if(!o||!o.synced)return;if(o.lastSeenRef=re(e.doc.document),n==="remote"){ee(o);return}if(o.canWrite)ln(o,t),ee(o)}function an(e){let t=C(e)?.session;if(!t?.synced||t.batchOps===null)return;let{batchOps:n,batchNeedsDiff:o}=t;if(t.batchOps=null,t.batchNeedsDiff=!1,!t.canWrite)return;if(t.undoManager?.stopCapturing(),o)z(t);else if(n.length>0)try{t.collab.applyDocOpsToY(t.handle.doc,n,t.collab.LOCAL_ORIGIN)}catch{z(t)}t.undoManager?.stopCapturing()}function ln(e,t){let n=t.docOps.map((o)=>o.forward);if(Ix()){if(e.batchOps??=[],n.length===0)e.batchNeedsDiff=!0;else e.batchOps.push(...n);return}if(n.length===0){z(e);return}try{e.collab.applyDocOpsToY(e.handle.doc,n,e.collab.LOCAL_ORIGIN)}catch{z(e)}}function z(e){let{collab:t,handle:n,tab:o}=e,r=t.yDocToJson(n.doc),i=Ao(re(o.doc.document)),s=t.diffDocs(r,i);if(s===null)t.replaceYStructure(n.doc,i,t.LOCAL_ORIGIN);else if(s.length>0)try{t.applyDocOpsToY(n.doc,s,t.LOCAL_ORIGIN)}catch{t.replaceYStructure(n.doc,i,t.LOCAL_ORIGIN)}}function fe(e){let t=e.collab.yDocToJson(e.handle.doc);q(e.tab,(n)=>{let o=n.doc.document;for(let r of Object.keys(o))if(!(r in t))delete o[r];Object.assign(o,t)},{origin:"remote",skipHistory:!0})}function cn(e){if(!e.canWrite)return!1;let{awareness:t}=e.handle,n=t.clientID;for(let[o,r]of t.getStates())if(r.canWrite!==!1&&o<n)n=o;return n===e.handle.awareness.clientID}function ee(e){if(!N||!cn(e))return;if(e.collab.canonicalOf(e.handle.doc)==="source")return;let t=Date.now();if(e.lastMirrorAt??=t,t-e.lastMirrorAt>=nn){if(e.mirrorTimer)clearTimeout(e.mirrorTimer),e.mirrorTimer=null;e.lastMirrorAt=t,ye(e);return}if(e.mirrorTimer)clearTimeout(e.mirrorTimer);e.mirrorTimer=setTimeout(()=>{e.mirrorTimer=null,e.lastMirrorAt=Date.now(),ye(e)},tn)}async function ye(e){if(!N||!e.synced)return;try{let t=await N(e.tab);e.collab.updateSourceText(e.handle.doc,t,e.collab.MIRROR_ORIGIN)}catch{}}async function lt(e){if(!pe||!e.synced||!e.canWrite)return;let{collab:t,handle:n,tab:o}=e,r=t.canonicalRevOf(n.doc),i=t.sourceText(n.doc).toString(),s;try{s=await pe(o,i)}catch{return}if(!e.synced||t.canonicalRevOf(n.doc)!==r)return;let a=t.diffDocs(t.yDocToJson(n.doc),s.document);if(a===null)t.replaceYStructure(n.doc,s.document,t.MIRROR_ORIGIN);else if(a.length>0)try{t.applyDocOpsToY(n.doc,a,t.MIRROR_ORIGIN)}catch{t.replaceYStructure(n.doc,s.document,t.MIRROR_ORIGIN)}let l=t.frontmatterMap(n.doc),c=s.frontmatter??{};n.doc.transact(()=>{let d=[...l.keys()];for(let g of d)if(!(g in c))l.delete(g);for(let[g,y]of Object.entries(c))if(!t.deepEqual(l.get(g),y))l.set(g,y)},t.MIRROR_ORIGIN)}function QL(e){let t=C(e)?.session;if(!t?.synced)return null;let{collab:n,handle:o}=t,r=null,i=()=>r!==null&&t.sourceLockOwner===r;return{awareness:o.awareness,enter:async()=>{r={},t.sourceLockOwner=r;let s=o.awareness.getLocalState();if(s)o.awareness.setLocalState({...s,mode:"source"});if(!t.canWrite)return;let a=null;if(N)try{a=await N(e)}catch{a=null}if(!i())return;n.acquireSourceCanonical(o.doc,a??n.sourceText(o.doc).toString(),n.LOCAL_ORIGIN)},leave:()=>{if(!i()){r=null;return}r=null,t.sourceLockOwner=null;let s=o.awareness.getLocalState();if(s)o.awareness.setLocalState({...s,mode:"structure"});if(!t.canWrite)return;if(n.otherSourceEditors(o.awareness,t.path,o.awareness.clientID).filter((l)=>o.awareness.getStates().get(l)?.canWrite!==!1).length===0)lt(t).then(()=>{n.releaseSourceCanonical(o.doc,n.LOCAL_ORIGIN)})},localOrigin:n.LOCAL_ORIGIN,readOnly:!t.canWrite,text:n.sourceText(o.doc)}}function _m(e){let t=xn(e);return t.active&&t.readOnly}async function GC(e){let t=C(e)?.session;if(!t?.synced||!t.canWrite)return!1;if(t.mirrorTimer)clearTimeout(t.mirrorTimer),t.mirrorTimer=null;return await ye(t),await t.handle.flush(),!0}async function KC(){for(let e of he)if(C(e)?.session?.synced)await GC(e)}var he=new Set;function Y(e){if(!it()?.collab||!e.documentPath||e.documentPath===ai)return;let n=xe(e);if(n.watcherInstalled)return;n.watcherInstalled=!0,rn(),he.add(e),e.scope.run(()=>{Q(()=>{if(n.optedOut.value)te(e);else ve(e)}),Xa(()=>{he.delete(e),te(e)})})}function JC(e,t){let n=xe(e);if(n.optedOut.value===!t)return;if(n.optedOut.value=!t,!n.watcherInstalled&&t)Y(e)}function YC(e){return C(e)?.optedOut.value!==!0}function ct(e){if(!C(e)?.watcherInstalled){Y(e);return}te(e),ve(e)}async function ve(e){let t=xe(e);if(t.session||t.attaching)return;let{documentPath:n}=e,o=it();if(!n||!o?.collab){xn(e).status="unavailable";return}let{generation:r}=t,i=xn(e);i.status="connecting",i.attachError="";let s=(async()=>{try{let[a,l]=await Promise.all([on(),o.collab(n)]);if(!l){i.status="detached";return}if(t.generation!==r){l.destroy();return}let c=null,d=new Promise((g,y)=>{c=setTimeout(()=>y(Error("collab-sync-timeout")),en)});try{await Promise.race([l.whenSynced,d])}finally{if(c)clearTimeout(c)}if(t.generation!==r){l.destroy();return}t.session=un(e,n,a,l),i.active=!0,i.status="synced",i.readOnly=!t.session.canWrite,i.attachError="",et(n)}catch(a){i.status="failed",i.active=!1,i.attachError=a instanceof Error?a.message:String(a),k.warn(`Live collaboration is not available for "${n}" — ${i.attachError}`,{key:`collab:${n}`,path:n,source:"Collaboration"})}finally{t.attaching=null}})();t.attaching=s,await s}function te(e){let t=C(e);if(!t)return;t.generation+=1;let{session:n}=t;t.session=null;let o=xn(e);if(o.active=!1,o.status="detached",o.attachError="",o.peers=[],!n)return;if(tt(n.path),n.mirrorTimer)clearTimeout(n.mirrorTimer);if(n.sourceParseTimer)clearTimeout(n.sourceParseTimer);for(let r of n.disposers)try{r()}catch{}ym(e,null),e.history.snapshots=[{document:Ao(re(e.doc.document)),selection:ms(e.session.selection)}],e.history.index=0,n.undoManager?.destroy(),n.handle.destroy()}function un(e,t,n,o){let r=o.identity(),i={applyingRemoteFrontmatter:!1,batchNeedsDiff:!1,batchOps:null,canWrite:r?r.permission!=="read":!0,collab:n,disposers:[],handle:o,lastSeenRef:re(e.doc.document),mirrorTimer:null,path:t,sourceLockOwner:null,sourceParseTimer:null,synced:!1,tab:e,undoManager:null};if(n.metaMap(o.doc).get("structureSeeded")===!0){let h=n.yDocToJson(o.doc),x=Ao(re(e.doc.document));if(!n.deepEqual(h,x)){let w=n.diffDocs(x,h);if(w===null)i.synced=!0,fe(i),i.synced=!1;else if(w.length>0)ce(e,w)}i.applyingRemoteFrontmatter=!0;let T=n.frontmatterMap(o.doc);for(let[w,J]of T.entries())e.doc.content.frontmatter[w]=J;i.applyingRemoteFrontmatter=!1}else if(i.canWrite)n.seedStructure(o.doc,Ao(re(e.doc.document)),{frontmatter:Ao(re(e.doc.content.frontmatter)),origin:n.SEED_ORIGIN,sourceFormat:e.doc.sourceFormat});i.lastSeenRef=re(e.doc.document),i.disposers.push(o.onDirty((h)=>{e.doc.dirty=h})),o.awareness.setLocalState({canWrite:i.canWrite,focusedPath:t,structuralSelection:null,user:r?{avatarUrl:r.avatarUrl,color:r.color,login:r.login,name:r.name}:{color:n.colorForKey(String(o.awareness.clientID)),login:`guest-${o.awareness.clientID%1000}`}});let a=new n.UndoManager([n.structureMap(o.doc),n.frontmatterMap(o.doc)],{trackedOrigins:new Set([n.LOCAL_ORIGIN])});i.undoManager=a;let l=({stackItem:h})=>{h.meta.set("selection",ms(e.session.selection))},c=({stackItem:h})=>{let x=h.meta.get("selection");e.session.selection=ms(x??[])};a.on("stack-item-added",l),a.on("stack-item-popped",c),i.disposers.push(()=>{a.off("stack-item-added",l),a.off("stack-item-popped",c)}),ym(e,{canRedo:()=>a.canRedo(),canUndo:()=>a.canUndo(),redo:()=>{a.redo()},undo:()=>{a.undo()}});let d=n.structureMap(o.doc),g=(h,x)=>{if(x.origin===n.LOCAL_ORIGIN||!i.synced)return;let T=n.yEventsToDocOps(h);if(T===null){fe(i);return}if(T.length===0)return;try{ce(e,T)}catch{fe(i)}};d.observeDeep(g),i.disposers.push(()=>d.unobserveDeep(g));let y=xn(e);y.sourceCanonical=n.canonicalOf(o.doc)==="source";let b=n.metaMap(o.doc),_=()=>{y.sourceCanonical=n.canonicalOf(o.doc)==="source"};b.observe(_),i.disposers.push(()=>b.unobserve(_));let I=n.sourceText(o.doc),Oe=(h,x)=>{if(x.origin===n.MIRROR_ORIGIN||!i.synced)return;if(n.canonicalOf(o.doc)!=="source")return;if(!n.isSourceReconciler(o.awareness,i.path))return;if(i.sourceParseTimer)clearTimeout(i.sourceParseTimer);i.sourceParseTimer=setTimeout(()=>{i.sourceParseTimer=null,lt(i)},600)};I.observe(Oe),i.disposers.push(()=>I.unobserve(Oe));let A=n.frontmatterMap(o.doc),we=(h,x)=>{if(x.origin===n.LOCAL_ORIGIN||!i.synced)return;i.applyingRemoteFrontmatter=!0;try{for(let[T,w]of h.changes.keys)if(w.action==="delete")delete e.doc.content.frontmatter[T];else e.doc.content.frontmatter[T]=A.get(T)}finally{i.applyingRemoteFrontmatter=!1}};A.observe(we),i.disposers.push(()=>A.unobserve(we)),e.scope.run(()=>{let h=JSON.stringify(e.doc.content.frontmatter);Q(()=>{let x=JSON.stringify(e.doc.content.frontmatter);if(x===h)return;if(h=x,i.applyingRemoteFrontmatter||!i.synced||!i.canWrite)return;let T=JSON.parse(x);o.doc.transact(()=>{let w=[...A.keys()];for(let J of w)if(!(J in T))A.delete(J);for(let[J,Ce]of Object.entries(T))if(!n.deepEqual(A.get(J),Ce))A.set(J,Ce)},n.LOCAL_ORIGIN),ee(i)}),Q(()=>{let x=e.session.selection.length>0?ms(e.session.selection):null,T=o.awareness.getLocalState();if(T)o.awareness.setLocalState({...T,structuralSelection:x})}),Q(()=>{let x=re(e.doc.document);queueMicrotask(()=>{if(C(e)?.session!==i||!i.synced||!i.canWrite)return;let w=re(e.doc.document);if(w!==x||w===i.lastSeenRef)return;i.lastSeenRef=w,z(i),ee(i)})})});let oe=xn(e),ie=()=>{let h=[];for(let[x,T]of o.awareness.getStates())if(x!==o.awareness.clientID&&T.user)h.push({clientId:x,state:T});oe.peers=h};return ie(),o.awareness.on("change",ie),i.disposers.push(()=>o.awareness.off("change",ie),o.onStatus((h)=>{if(h==="offline"||h==="connecting")oe.status="offline";else if(i.synced)oe.status="synced"}),o.onReset(()=>{te(e),ve(e)})),i.synced=!0,i}function S(e,t,n){return RangeError(`command "${e}" argument "${t}": ${n}`)}function O(e){if(e===void 0)return"missing";return typeof e==="string"?`"${e}"`:`${typeof e} ${JSON.stringify(e)}`}function ot(e,t,n){let o=t[n];if(typeof o!=="string"||o==="")throw S(e,n,`expected a non-empty string, got ${O(o)}`);return o}function Jo(e,t,n){if(t[n]===void 0)return;return ot(e,t,n)}function dt(e,t,n){let o=t[n];if(typeof o!=="number"||!Number.isFinite(o))throw S(e,n,`expected a finite number, got ${O(o)}`);return o}function ut(e,t,n){let o=t[n];if(typeof o!=="number"||!Number.isInteger(o))throw S(e,n,`expected an integer, got ${O(o)}`);return o}function yv(e,t,n,o,r){let i=dt(e,t,n);if(i<o||i>r)throw S(e,n,`${i} is outside the supported range ${o}–${r}`);return i}function yi(e,t,n){let o=t[n];if(typeof o!=="boolean")throw S(e,n,`expected a boolean, got ${O(o)}`);return o}function li(e,t,n,o){let r=t[n];if(typeof r!=="string"||!o.includes(r))throw S(e,n,`${O(r)} is not declared — declared: ${o.join(", ")||"none"}`);return r}function $x(e,t,n){let o=t[n];if(!Array.isArray(o)||!o.every((r)=>typeof r==="string"||typeof r==="number"))throw S(e,n,`expected an array of path segments (strings or numbers), got ${O(o)}`);return o}function UL(e,t,n){if(t[n]===null)return null;return $x(e,t,n)}function UC(e,t,n){let o=t[n];if(!Array.isArray(o))throw S(e,n,`expected an array of document paths, got ${O(o)}`);return o.map((r,i)=>{if(!Array.isArray(r)||!r.every((s)=>typeof s==="string"||typeof s==="number"))throw S(e,n,`entry ${i} is not a document path — expected an array of segments, got ${O(r)}`);return r})}function Se(e,t=Object.keys(e)){return{additionalProperties:!1,properties:e,required:[...t],type:"object"}}function Do(e,t){return{description:t,enum:[...e],type:"string"}}function fa(e,t){return{description:t,get enum(){return[...e()]},type:"string"}}function qC(e,t={}){return{description:e,type:"number",...t}}function oo(e){return{description:e,type:"boolean"}}function wv(e,t=!1){let n={items:{type:["string","number"]},type:"array"};return t?{description:e,oneOf:[n,{type:"null"}]}:{description:e,...n}}function qL(e){return{description:e,items:{items:{type:["string","number"]},type:"array"},type:"array"}}function He(e){return{description:e,type:"string"}}function fn(e){return e.length===2&&e.includes("string")&&e.includes("number")}function Te(e){return Array.isArray(e)?e:[e]}function ft(e){let t=e;if("enum"in t)return"enum";if("const"in t)return"const";if(Array.isArray(t.oneOf))return"one-of";if(Array.isArray(t.type))return"typed";switch(t.type){case"boolean":return"boolean";case"number":case"integer":{if(t.minimum!==void 0&&t.maximum!==void 0)return"bounded-number";return t.type==="integer"?"integer":"number"}case"string":return"string";case"array":{let n=t.items?.type;if(Array.isArray(n))return fn(n)?"path":"pass-through";return n==="array"?"path-list":"pass-through"}case"null":case"object":return"typed";default:break}return"pass-through"}function pt(e,t){switch(e){case"null":return t===null;case"boolean":return typeof t==="boolean";case"string":return typeof t==="string";case"number":return typeof t==="number"&&Number.isFinite(t);case"integer":return typeof t==="number"&&Number.isInteger(t);case"array":return Array.isArray(t);case"object":return typeof t==="object"&&t!==null&&!Array.isArray(t);default:break}return!1}function mt(e){if(e.length<=1)return e.join("");return`${e.slice(0,-1).join(", ")} or ${e.at(-1)}`}function pn(e,t,n,o){let r=t[n];if(!o.some((i)=>pt(i,r)))throw S(e,n,`expected ${mt(o)}, got ${O(r)}`);return r}function gt(e){switch(ft(e)){case"enum":return`one of ${(e.enum??[]).map((t)=>O(t)).join(" | ")}`;case"const":return`the constant ${O(e.const)}`;case"one-of":return(e.oneOf??[]).map((t)=>gt(t)).join(" or ");case"typed":return mt(Te(e.type??[]));case"boolean":return"a boolean";case"bounded-number":return`a number from ${e.minimum} to ${e.maximum}`;case"number":return"a finite number";case"integer":return"an integer";case"string":return"a non-empty string";case"path":return"a document path";case"path-list":return"a list of document paths";default:return"anything"}}function mn(e,t,n,o){let r=t[n],i=[];for(let s of o){if(s.type!==void 0&&!Te(s.type).some((a)=>pt(a,r)))continue;try{return bt(e,t,n,s)}catch(a){i.push(a)}}if(i.length===1)throw i[0];throw S(e,n,`expected ${o.map((s)=>gt(s)).join(" or ")}, got ${O(r)}`)}function bt(e,t,n,o){switch(ft(o)){case"enum":return li(e,t,n,o.enum??[]);case"const":{let r=t[n];if(r!==o.const)throw S(e,n,`expected the constant ${O(o.const)}, got ${O(r)}`);return r}case"one-of":return mn(e,t,n,o.oneOf??[]);case"typed":return pn(e,t,n,Te(o.type??[]));case"boolean":return yi(e,t,n);case"bounded-number":{if(o.type==="integer")ut(e,t,n);return yv(e,t,n,o.minimum,o.maximum)}case"number":return dt(e,t,n);case"integer":return ut(e,t,n);case"string":return ot(e,t,n);case"path":return $x(e,t,n);case"path-list":return UC(e,t,n);default:return t[n]}}function GL(e,t,n){let o=t,r=o.properties??{},i=Object.keys(r),s=o.required??[],a={};for(let[l,c]of Object.entries(n)){if(c===void 0||Object.hasOwn(r,l))continue;if(o.additionalProperties===!1)throw S(e,l,`not declared — declared: ${i.join(", ")||"none"}`);a[l]=c}for(let l of i){if(n[l]===void 0&&!s.includes(l))continue;a[l]=bt(e,n,l,r[l])}return a}var gn=20,Qn="primary",vp="secondary",ZC=2,m=v({activePaneId:Qn,clipboard:null,closedTabs:[],componentRegistry:[],mruOrder:[],fileTree:{dirs:new Map,expanded:new Set,searchQuery:"",selectedPath:null},panes:[{activeTabId:null,derived:null,id:Qn,tabOrder:[]}],projectConfig:null,projectRoot:null,styleClipboard:null,tabs:new Map,ui:{activityBar:"files"},get activeTabId(){let e=Rr();return e.derived?.kind==="lens"?Hn(e.derived.sourcePaneId)?.activeTabId??null:e.activeTabId},get tabOrder(){return Rr().tabOrder}}),u=zd(()=>m.activeTabId?m.tabs.get(m.activeTabId)??null:null);function Rr(){let{panes:e}=m;return e.find((t)=>t.id===m.activePaneId)??e[0]}function Hn(e){return m.panes.find((t)=>t.id===e)}function Gu(e){return m.panes.find((t)=>t.tabOrder.includes(e))}function $r(e){let t=Hn(e);if(!t||t.id===m.activePaneId)return;m.activePaneId=t.id,R();let{activeTabId:n}=t;if(n){Pe(n);let o=m.tabs.get(n);if(o)vt(o)}}function yp(e){return m.activePaneId===e}function Ox(e){let t=e??Rr().activeTabId,n=t?m.tabs.get(t):null;if(!t||!n)return null;let o=Gu(t);if(!o)return null;let r=Pl(o.id);return _p(t),Ku(r,t),r.activeTabId=t,m.activePaneId=r.id,R(),Pe(t),r}function Mx(e){return m.panes.find((t)=>t.id!==e)??bn(vp)}function Pl(e){let t=Mx(e);if(t.derived)t.derived=null;return t}function bn(e){let t=Hn(e);if(t)return t;return m.panes=[...m.panes,{activeTabId:null,derived:null,id:e,tabOrder:[]}],Hn(e)}function wp(e){if(m.panes.length<2)return;let t=e===Qn?m.panes.find((r)=>r.id!==Qn)?.id:e,n=t===void 0?void 0:Hn(t),o=m.panes.find((r)=>r.id!==t);if(!n||!o)return;for(let r of n.tabOrder)Ku(o,r);if(o.activeTabId=m.activePaneId===n.id?n.activeTabId??o.activeTabId:o.activeTabId??n.activeTabId,m.activePaneId=o.id,o.derived?.sourcePaneId===n.id)o.derived=null;m.panes=m.panes.filter((r)=>r.id!==n.id),R()}function xp(e){return e.tabOrder.length===0&&e.derived===null}function _p(e){let t=[];for(let n of m.panes){if(!n.tabOrder.includes(e))continue;if(n.tabOrder=n.tabOrder.filter((o)=>o!==e),n.activeTabId===e)n.activeTabId=n.tabOrder.at(-1)??null;if(n.id!==Qn&&xp(n))t.push(n.id)}for(let n of t)wp(n)}function Ku(e,t,n){if(e.tabOrder.includes(t))return;let o=n??hn(e,t);e.tabOrder=[...e.tabOrder.slice(0,o),t,...e.tabOrder.slice(o)]}function yn(e){let t=0;for(let n of e.tabOrder){if(m.tabs.get(n)?.pinned!==!0)break;t+=1}return t}function hn(e,t){return m.tabs.get(t)?.pinned===!0?yn(e):e.tabOrder.length}function Ua(e,t=null){if(m.projectRoot&&e!==m.projectRoot)Lx();m.projectRoot=e,m.projectConfig=t}function Cp(e){let t=u.value;return e!==null&&t!==null&&re(t)===re(e)}function Sc(e){if(!e)return!1;let t=m.tabs.get(e.id);return t!==void 0&&re(t)===re(e)}function Pe(e){m.mruOrder=[e,...m.mruOrder.filter((t)=>t!==e)]}var ne=null,Z=0;function R(){ne=null,Z=0}function vt(e){if(D&&e.documentPath)D.selectedPath=e.documentPath}function X(e,t={}){let n=m.tabs.get(e),o=Gu(e);if(!n||!o)return;if(o.activeTabId=e,t.focus===!1)return;if(m.activePaneId=o.id,!t.cycling)R(),Pe(e);vt(n)}function No(e){let t=m.tabs.get(e.id),n=e.preview===!0&&t?.pinned!==!0,o=cv({...e,preview:n}),r=(e.paneId===void 0?void 0:Hn(e.paneId))??Rr(),i;if(t)o.pinned=t.pinned,fp(t);else{if(n){let a=yt(r),l=a?m.tabs.get(a):null;if(l)kp(l);Px()}let s=n?yt(r):null;if(s)i=r.tabOrder.indexOf(s),Fx(s);Ku(r,o.id,i)}return m.tabs.set(o.id,o),X(o.id,{focus:e.focus!==!1}),Y(o),o}function yt(e){return e.tabOrder.find((t)=>m.tabs.get(t)?.preview===!0)??null}function Fl(e){let t=m.tabs.get(e);if(t?.preview===!0)t.preview=!1}function Px(){for(let[e,t]of m.tabs)if(t.preview&&t.doc.dirty)Fl(e)}function kv(e,t){let n=m.tabs.get(e),o=Gu(e);if(!n||!o)return;if(n.pinned=t,t)n.preview=!1;let r=o.tabOrder.filter((s)=>s!==e),i=r.filter((s)=>m.tabs.get(s)?.pinned===!0).length;o.tabOrder=[...r.slice(0,i),e,...r.slice(i)]}function XC(e,t){let n=m.tabs.get(e),o=Gu(e);if(!n||!o)return;o.tabOrder=Tt(o,e,t)}function Tt(e,t,n){let o=m.tabs.get(t);if(!o)return e.tabOrder;let r=e.tabOrder.filter((c)=>c!==t),i=r.filter((c)=>m.tabs.get(c)?.pinned===!0).length,s=o.pinned?0:i,a=o.pinned?i:r.length,l=Math.min(Math.max(n,s),a);return[...r.slice(0,l),t,...r.slice(l)]}function Fx(e){let t=m.tabs.get(e);if(!t)return;let n=Gu(e),o=n?.activeTabId===e;if(vn(t),fp(t),m.tabs.delete(e),_p(e),m.mruOrder=m.mruOrder.filter((s)=>s!==e),R(),n&&xp(n))wp(n.id);if(!o)return;let r=Rr(),i=m.mruOrder.find((s)=>r.tabOrder.includes(s))??r.tabOrder.at(-1)??null;if(i)X(i)}function QC(){let e=[...m.tabs.values()];m.tabs.clear(),Pt(),m.mruOrder=[],R();for(let t of e)fp(t)}function Pt(){m.panes=[{activeTabId:null,derived:null,id:Qn,tabOrder:[]}],m.activePaneId=Qn}function vn(e){if(!e.documentPath)return;let t=e.documentPath;m.closedTabs=[{documentPath:t},...m.closedTabs.filter((n)=>n.documentPath!==t)].slice(0,gn)}function Tn(){let[e]=m.closedTabs;if(!e)return;return m.closedTabs=m.closedTabs.slice(1),e.documentPath}function xt(e){if(!ne)ne=m.mruOrder.filter((o)=>m.tabs.has(o)),Z=0;let t=ne;if(t.length<2)return;Z=((Z+e)%t.length+t.length)%t.length;let n=t[Z];return X(n,{cycling:!0}),n}function ek(e){let t=[...m.tabs.keys()],n=[...m.tabs.values()],o=cv(e);m.tabs.set(o.id,o),Pt(),m.panes[0].tabOrder=[o.id],m.mruOrder=[],R(),X(o.id),Y(o);for(let r of t){if(r===o.id)continue;m.tabs.delete(r)}for(let r of n)fp(r);return o}function ci(e,t={}){X(e,t)}function Cm(e,t,n){let o=Hn(t);if(!o||!m.tabs.has(e))return null;if(o.tabOrder.includes(e)){if(n!==void 0)o.tabOrder=Tt(o,e,n);return o}return _p(e),Ku(o,e,n),o}function Sv(e,t,n){let o=m.tabs.get(e);if(!o)return;o.id=t,o.documentPath=n,m.tabs.delete(e),m.tabs.set(t,o);for(let r of m.panes)if(r.tabOrder=r.tabOrder.map((i)=>i===e?t:i),r.activeTabId===e)r.activeTabId=t;m.mruOrder=m.mruOrder.map((r)=>r===e?t:r),R(),ct(o)}function tk(e,t){e.registerAll([...Pn(t),...On(t)])}function Pn(e){let t=()=>m.tabs.size>1;return[{id:"document.nextTab",title:"Next Tab",category:"Document",level:"document",keybinding:["ctrl+tab","mod+tab"],menus:["palette"],group:"2_navigate",when:(n)=>n.document.open,enablement:t,requires:"a second open document",run:()=>{xt(1)}},{id:"document.previousTab",title:"Previous Tab",category:"Document",level:"document",keybinding:["ctrl+shift+tab","mod+shift+tab"],menus:["palette"],group:"2_navigate",when:(n)=>n.document.open,enablement:t,requires:"a second open document",run:()=>{xt(-1)}},{args:Se({path:He('Project-relative path of the file to open, e.g. "pages/about.json" or "components/nav-bar.json". It must exist.')}),id:"document.open",title:"Open Document",category:"Document",level:"project",menus:["palette"],group:"1_file",when:(n)=>n.project.open,requires:"an open project",aiTool:{description:"Open a project file as the active document; the document tools then operate on it. Use it when the user should SEE the page, or for iterative visual refinement after creating a page or component.",name:"open_document",report:({after:n,args:o})=>{let r=ot("document.open",o,"path"),i=u.value?.documentPath??null;if(i!==r)return`Opened "${r}", but the active document is ${i===null?"none":`"${i}"`}.`;let s=n.editor.kind==="canvas"?"on the canvas; the document tools now operate on it":`in the ${ov[n.editor.kind]} editor, which is not an element tree the document tools can edit`;return`"${r}" is the active document, ${s}.`}},run:async(n,o)=>{let r=ot("document.open",o,"path");if(await e.openFile(r),![...m.tabs.values()].some((i)=>i.documentPath===r))throw RangeError(`command "document.open" argument "path": "${r}" could not be opened — it does `+"not exist, or no editor claims its format. Problems has the reason.")}},{args:Se({file:He('Project-relative path of the file to open in the other pane, e.g. "pages/about.json". It must exist.')}),id:"document.openToSide",title:"Open to the Side",category:"Document",level:"project",menus:["context/file","palette"],group:"1_file",when:(n)=>n.project.open,requires:"an open project",undo:"none",run:async(n,o)=>{let r=ot("document.openToSide",o,"file"),i=Pl(Rr().id);if(await e.openFile(r,{paneId:i.id}),![...m.tabs.values()].some((s)=>s.documentPath===r)){if(xp(i)&&i.id!==Qn)wp(i.id);throw RangeError(`command "document.openToSide" argument "file": "${r}" could not be opened — it `+"does not exist, or no editor claims its format. Problems has the reason.")}}},{id:"document.reopenClosed",title:"Reopen Closed Document",category:"Document",level:"document",keybinding:"mod+shift+t",menus:["context/tab","palette"],group:"1_file",enablement:()=>m.closedTabs.length>0,requires:"a document closed in this session",run:async()=>{let n=Tn();if(n)await e.openFile(n)}},{id:"document.togglePinned",title:"Pin / Unpin Document",category:"Document",level:"document",menus:["context/tab","palette"],group:"1_file",when:(n)=>n.document.open,requires:"an open document",run:()=>{let n=m.activeTabId,o=n?m.tabs.get(n):null;if(n&&o)kv(n,!o.pinned)}},{args:Se({pinned:oo("True to pin the active document's tab, false to unpin it.")}),id:"document.setPinned",title:"Set Document Pinned",category:"Document",level:"document",menus:["palette"],group:"1_file",when:(n)=>n.document.open,requires:"an open document",run:(n,o)=>{let r=m.activeTabId;if(r&&m.tabs.get(r))kv(r,yi("document.setPinned",o,"pinned"))}},{id:"document.keepOpen",title:"Keep Document Open",category:"Document",level:"document",menus:["context/tab","palette"],group:"1_file",when:(n)=>n.document.open,enablement:()=>{let n=m.activeTabId;return n!==null&&m.tabs.get(n)?.preview===!0},requires:"a preview document — one opened by a single click",run:()=>{let n=m.activeTabId;if(n)Fl(n)}}]}function On(e){let t=()=>m.panes.length>1;return[{id:"pane.splitRight",title:"Split Right",category:"View",level:"document",keybinding:"mod+\\",menus:["context/pane","context/tab","palette"],group:"5_pane",when:(n)=>n.document.open,enablement:()=>m.activeTabId!==null,requires:"an open document",undo:"none",run:()=>{Ox()}},{args:Se({path:He("Project-relative path of the document to open beside this one.")}),id:"pane.compareWith",title:"Compare With…",category:"View",level:"document",menus:["context/pane","context/tab","palette"],group:"5_pane",when:(n)=>n.document.open,enablement:()=>m.activeTabId!==null,requires:"an open document",undo:"none",run:async(n,o)=>{let r=ot("pane.compareWith",o,"path"),i=Rr();if((i.activeTabId?m.tabs.get(i.activeTabId):null)?.documentPath===r)throw RangeError(`command "pane.compareWith" argument "path": "${r}" is the document this pane is `+"already showing — name a different one");await e.openFileInPane(Pl(i.id).id,r)}},{id:"pane.focusPrimary",title:"Focus Primary Pane",category:"View",level:"document",keybinding:"mod+0",menus:["palette"],group:"5_pane",enablement:t,requires:"a split pane grid",undo:"none",run:()=>{$r(Qn)}},{id:"pane.focusSecondary",title:"Focus Side Pane",category:"View",level:"document",keybinding:"mod+alt+0",menus:["palette"],group:"5_pane",enablement:t,requires:"a split pane grid",undo:"none",run:()=>{$r(vp)}},{id:"pane.unsplit",title:"Close Side Pane",category:"View",level:"document",menus:["context/pane","palette"],group:"5_pane",enablement:t,requires:"a second pane",undo:"none",run:wn}]}function wn(){let e=m.panes.find((t)=>t.derived!==null);if(e?.id===Qn){if(e.derived=null,!xp(e))return}wp(e?.id??vp)}
2
+ export{Sx,Go,iv,gL,dn,$o,zu,bL,BC,Wu,ov,ha,vL,rv,$d,sv,bm,Ex,yL,vm,zi,Ki,av,Dd,lv,wL,zC,xL,_L,CL,Tx,kL,Lx,SL,ai,cv,WC,EL,TL,fp,Le,LL,dv,ms,uv,IL,Nl,hv,RL,mp,$L,vi,q,Hs,pv,fv,Ix,DL,ym,AL,NL,Rx,OL,Ji,Vu,VC,gp,mv,ML,pa,Ue,kc,Ko,PL,gv,FL,bv,jL,HL,Bs,vv,mr,BL,Uu,zL,WL,VL,Ol,xn,wm,ot,Jo,yv,yi,li,$x,UL,UC,Se,Do,fa,qC,oo,wv,qL,He,GL,Dx,bp,Ax,Ml,xv,_v,Nx,KL,ma,Ad,qu,xm,Cv,JL,Ao,YL,ZL,XL,QL,_m,GC,KC,JC,YC,Qn,vp,ZC,m,u,Rr,Hn,Gu,$r,yp,Ox,Mx,Pl,wp,xp,_p,Ku,Ua,Cp,Sc,No,Fl,Px,kv,XC,Fx,QC,ek,ci,Cm,Sv,tk};
3
+
4
+ //# debugId=D2F6E6849DBDB77464756E2164756E21
5
+ //# sourceMappingURL=studio-x5g1xk77.js.map