@jxsuite/studio 2.2.1 → 2.3.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 (182) hide show
  1. package/data/css-meta.json +1487 -0
  2. package/data/elements-meta.json +370 -0
  3. package/data/html-meta.json +366 -0
  4. package/data/stylebook-meta.json +200 -0
  5. package/data/webdata.json +1621 -0
  6. package/dist/chunks/{Overlay.dev-ymy3et3y.js → Overlay.dev-d2ajy6sj.js} +7 -7
  7. package/dist/chunks/{content-source-r2n7v682.js → content-source-56xpvx83.js} +13 -12
  8. package/dist/chunks/{convert-to-repeater-cnpyvj74.js → convert-to-repeater-0xh9wwek.js} +12 -11
  9. package/dist/chunks/{extension-sections-vpcm4jvx.js → extension-sections-g34239vm.js} +17 -16
  10. package/dist/chunks/{files-zeg88k2d.js → files-gkz202dp.js} +18 -19
  11. package/dist/chunks/{format-host-taymsw55.js → format-host-pej3srnw.js} +2 -2
  12. package/dist/chunks/{git-panel-qp4rrwr9.js → git-panel-4j6xbh8g.js} +12 -11
  13. package/dist/chunks/{layers-panel-kj93w2zg.js → layers-panel-8mvn8sgd.js} +15 -14
  14. package/dist/chunks/{monaco-setup-xy3bs05d.js → monaco-setup-a5wkmbgh.js} +6 -3
  15. package/dist/chunks/{publish-panel-6qz6kp41.js → publish-panel-ptddc3kg.js} +6 -6
  16. package/dist/chunks/{quick-search-9wwa09hh.js → quick-search-j88azfs2.js} +19 -18
  17. package/dist/chunks/right-panel-egkaxy89.js +38 -0
  18. package/dist/chunks/{sp-overlay.dev-h6kdx076.js → sp-overlay.dev-s18hymn9.js} +8 -8
  19. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +15 -0
  20. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +15 -0
  21. package/dist/chunks/{studio-753znj4c.js → studio-0e4h32g6.js} +5 -5
  22. package/dist/chunks/{studio-yz9s88s0.js → studio-10s469da.js} +25 -9
  23. package/dist/chunks/{studio-6f0am8f2.js → studio-2w11grav.js} +2 -2
  24. package/dist/chunks/{studio-zqv3w24n.js → studio-3q65xvzv.js} +5 -5
  25. package/dist/chunks/{studio-qhh8r5fz.js → studio-4058pg09.js} +4 -4
  26. package/dist/chunks/{studio-hekaagev.js → studio-4enps87v.js} +17 -17
  27. package/dist/chunks/{studio-tqemhphj.js → studio-50eed4c9.js} +4 -4
  28. package/dist/chunks/studio-53n8bp04.js +16 -0
  29. package/dist/chunks/{studio-nqq8jk8f.js → studio-5amdrjm4.js} +14 -14
  30. package/dist/chunks/{studio-6zzbyx17.js → studio-5ne8mdx9.js} +2 -2
  31. package/dist/chunks/{studio-3z8jjm2p.js → studio-7ejemhej.js} +3 -3
  32. package/dist/chunks/{studio-1kgfcv7s.js → studio-a11d3a1b.js} +12 -11
  33. package/dist/chunks/{studio-rgwcpast.js → studio-ay8wcr2b.js} +2 -2
  34. package/dist/chunks/{studio-fys6z73y.js → studio-bak2cyjr.js} +7 -7
  35. package/dist/chunks/{studio-xmvbhg31.js → studio-c31yb4t6.js} +2 -2
  36. package/dist/chunks/{studio-8sdyjfd6.js → studio-cf4rk7kv.js} +2 -2
  37. package/dist/chunks/{studio-yphy4z9m.js → studio-cv606rs1.js} +5 -5
  38. package/dist/chunks/{studio-5kt960pk.js → studio-hk523hby.js} +133 -147
  39. package/dist/chunks/{studio-x0et2z9g.js → studio-hs8x23fv.js} +15 -15
  40. package/dist/chunks/{studio-p471gg5n.js → studio-kvfx9z2c.js} +7 -3
  41. package/dist/chunks/{studio-22xr4q8q.js → studio-ncnet0ba.js} +18 -29
  42. package/dist/chunks/{studio-ckwz4d3x.js → studio-twsafr1e.js} +2 -2
  43. package/dist/chunks/{studio-qrsfh1w7.js → studio-tzx3xmvx.js} +5 -5
  44. package/dist/chunks/{studio-g8t7g0gp.js → studio-vdpcpada.js} +3 -3
  45. package/dist/chunks/{studio-6a0h7sne.js → studio-vhk5fmfv.js} +2 -2
  46. package/dist/chunks/{studio-hrajjyt2.js → studio-wdt9y92a.js} +2 -2
  47. package/dist/chunks/{studio-r8vx7bkz.js → studio-x3etxs0s.js} +14 -13
  48. package/dist/chunks/{studio-pv8m0h4a.js → studio-yxzgjq8q.js} +28 -23
  49. package/dist/chunks/{studio-300zsz1k.js → studio-zdkgwhkv.js} +6 -6
  50. package/dist/codicon.ttf +0 -0
  51. package/dist/iframe-entry.js +8 -1
  52. package/dist/manifest.json +82 -0
  53. package/dist/studio.js +232 -103
  54. package/index.html +0 -50
  55. package/package.json +12 -5
  56. package/src/canvas/iframe-entry.ts +5 -0
  57. package/src/canvas/iframe-host.ts +45 -4
  58. package/src/content/entry-editor.ts +2 -1
  59. package/src/editor/context-menu.ts +13 -2
  60. package/src/editor/slash-menu.ts +26 -11
  61. package/src/files/files.ts +11 -23
  62. package/src/grid/grid-panel.ts +27 -6
  63. package/src/hosting/document.ts +109 -0
  64. package/src/hosting/layout.ts +211 -0
  65. package/src/hosting/stage.ts +166 -0
  66. package/src/hosting/tsconfig.json +18 -0
  67. package/src/panels/ai-chat/chat-view.ts +25 -14
  68. package/src/panels/git-panel.ts +17 -14
  69. package/src/panels/head-panel.ts +32 -14
  70. package/src/panels/imports-panel.ts +32 -13
  71. package/src/panels/layers-panel.ts +9 -1
  72. package/src/panels/panel-registry.ts +0 -1
  73. package/src/panels/properties-panel.ts +3 -3
  74. package/src/panels/settings-pane.ts +1 -1
  75. package/src/panels/style-panel.ts +3 -3
  76. package/src/panels/stylebook-panel.ts +10 -1
  77. package/src/panels/toolbar.ts +1 -1
  78. package/src/services/bundle-base.ts +69 -0
  79. package/src/services/monaco-setup.ts +19 -13
  80. package/src/shell/tree.ts +155 -0
  81. package/src/shell.ts +0 -2
  82. package/src/studio.ts +22 -2
  83. package/src/types.ts +15 -0
  84. package/src/ui/regions.ts +10 -45
  85. package/styles/overlays.css +35 -0
  86. package/dist/chunks/2020-xp8vnwma.js.map +0 -24
  87. package/dist/chunks/Overlay.dev-ymy3et3y.js.map +0 -9
  88. package/dist/chunks/adapter-jkcyhgtr.js.map +0 -9
  89. package/dist/chunks/cf-settings-g5fbf2zp.js.map +0 -9
  90. package/dist/chunks/components-z6cnkyy1.js.map +0 -9
  91. package/dist/chunks/content-source-r2n7v682.js.map +0 -9
  92. package/dist/chunks/convert-to-repeater-cnpyvj74.js.map +0 -10
  93. package/dist/chunks/editor-cptq5jp1.js.map +0 -9
  94. package/dist/chunks/extension-sections-vpcm4jvx.js.map +0 -11
  95. package/dist/chunks/files-zeg88k2d.js.map +0 -9
  96. package/dist/chunks/flow-qbfgrpeh.js.map +0 -12
  97. package/dist/chunks/focus-trap.esm-ggawf1hy.js.map +0 -11
  98. package/dist/chunks/focus-visible-6eg70z18.js.map +0 -10
  99. package/dist/chunks/format-host-taymsw55.js.map +0 -9
  100. package/dist/chunks/git-panel-qp4rrwr9.js.map +0 -9
  101. package/dist/chunks/index-nj44jpzj.js.map +0 -14
  102. package/dist/chunks/index-zqxmqxmh.js.map +0 -9
  103. package/dist/chunks/javascript-q8kpmfah.js.map +0 -11
  104. package/dist/chunks/jsonMode-dkr040ga.js.map +0 -18
  105. package/dist/chunks/jx-validate-jj9rnt4n.js.map +0 -9
  106. package/dist/chunks/layers-panel-kj93w2zg.js.map +0 -9
  107. package/dist/chunks/monaco-binding-rj6xpx9y.js.map +0 -10
  108. package/dist/chunks/monaco-setup-xy3bs05d.js.map +0 -15
  109. package/dist/chunks/publish-panel-6qz6kp41.js.map +0 -9
  110. package/dist/chunks/quick-search-9wwa09hh.js.map +0 -9
  111. package/dist/chunks/right-panel-faf816ch.js +0 -37
  112. package/dist/chunks/right-panel-faf816ch.js.map +0 -9
  113. package/dist/chunks/section-registry-sx1ykvkw.js.map +0 -9
  114. package/dist/chunks/sp-overlay.dev-h6kdx076.js.map +0 -9
  115. package/dist/chunks/sp-popover.dev-dj9x7e7a.js.map +0 -9
  116. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js +0 -15
  117. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js.map +0 -9
  118. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js +0 -15
  119. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js.map +0 -9
  120. package/dist/chunks/sp-tray.dev-64v4pxw8.js.map +0 -12
  121. package/dist/chunks/studio-0a5qrh01.js.map +0 -9
  122. package/dist/chunks/studio-0rqqhrdy.js.map +0 -12
  123. package/dist/chunks/studio-18j3bmcz.js.map +0 -10
  124. package/dist/chunks/studio-1kgfcv7s.js.map +0 -13
  125. package/dist/chunks/studio-22xr4q8q.js.map +0 -13
  126. package/dist/chunks/studio-300zsz1k.js.map +0 -39
  127. package/dist/chunks/studio-3fk1ac9z.js.map +0 -12
  128. package/dist/chunks/studio-3n4ndrzh.js.map +0 -41
  129. package/dist/chunks/studio-3z8jjm2p.js.map +0 -13
  130. package/dist/chunks/studio-4mqb9a0j.js.map +0 -14
  131. package/dist/chunks/studio-4q0wznzf.js.map +0 -73
  132. package/dist/chunks/studio-5ehhackm.js.map +0 -10
  133. package/dist/chunks/studio-5kt960pk.js.map +0 -38
  134. package/dist/chunks/studio-5x5774ak.js.map +0 -10
  135. package/dist/chunks/studio-685s0ytq.js.map +0 -76
  136. package/dist/chunks/studio-6a0h7sne.js.map +0 -15
  137. package/dist/chunks/studio-6f0am8f2.js.map +0 -10
  138. package/dist/chunks/studio-6kv3apa9.js.map +0 -10
  139. package/dist/chunks/studio-6zzbyx17.js.map +0 -12
  140. package/dist/chunks/studio-753znj4c.js.map +0 -16
  141. package/dist/chunks/studio-7afd21nw.js.map +0 -10
  142. package/dist/chunks/studio-8jpzqk5s.js.map +0 -10
  143. package/dist/chunks/studio-8q517dfr.js.map +0 -10
  144. package/dist/chunks/studio-8sdyjfd6.js.map +0 -10
  145. package/dist/chunks/studio-a0tswy0w.js.map +0 -9
  146. package/dist/chunks/studio-a7pzveq1.js.map +0 -11
  147. package/dist/chunks/studio-ahnzd9rg.js.map +0 -10
  148. package/dist/chunks/studio-b9b6t1dg.js.map +0 -651
  149. package/dist/chunks/studio-bw5dz6km.js.map +0 -21
  150. package/dist/chunks/studio-cjm7fdjf.js.map +0 -14
  151. package/dist/chunks/studio-ckwz4d3x.js.map +0 -12
  152. package/dist/chunks/studio-d1ks410h.js.map +0 -10
  153. package/dist/chunks/studio-dg7zyt5x.js.map +0 -10
  154. package/dist/chunks/studio-fys6z73y.js.map +0 -10
  155. package/dist/chunks/studio-g1wdche0.js.map +0 -56
  156. package/dist/chunks/studio-g8t7g0gp.js.map +0 -10
  157. package/dist/chunks/studio-h4rxscfc.js.map +0 -10
  158. package/dist/chunks/studio-hekaagev.js.map +0 -18
  159. package/dist/chunks/studio-hrajjyt2.js.map +0 -10
  160. package/dist/chunks/studio-nqq8jk8f.js.map +0 -14
  161. package/dist/chunks/studio-p471gg5n.js.map +0 -14
  162. package/dist/chunks/studio-pv8m0h4a.js.map +0 -98
  163. package/dist/chunks/studio-qhh8r5fz.js.map +0 -13
  164. package/dist/chunks/studio-qrsfh1w7.js.map +0 -41
  165. package/dist/chunks/studio-r8vx7bkz.js.map +0 -235
  166. package/dist/chunks/studio-rgwcpast.js.map +0 -12
  167. package/dist/chunks/studio-s519zc99.js.map +0 -10
  168. package/dist/chunks/studio-sas7mt3k.js.map +0 -10
  169. package/dist/chunks/studio-t5wqwzdh.js.map +0 -10
  170. package/dist/chunks/studio-tqemhphj.js.map +0 -11
  171. package/dist/chunks/studio-tr20m8g8.js.map +0 -9
  172. package/dist/chunks/studio-tvgyw9xw.js.map +0 -14
  173. package/dist/chunks/studio-x0et2z9g.js.map +0 -32
  174. package/dist/chunks/studio-xm3dbxvn.js.map +0 -19
  175. package/dist/chunks/studio-xmvbhg31.js.map +0 -10
  176. package/dist/chunks/studio-ynxwkrzd.js.map +0 -246
  177. package/dist/chunks/studio-yphy4z9m.js.map +0 -10
  178. package/dist/chunks/studio-yz9s88s0.js.map +0 -54
  179. package/dist/chunks/studio-z6nw2ek2.js.map +0 -10
  180. package/dist/chunks/studio-zqv3w24n.js.map +0 -11
  181. package/dist/chunks/tsMode-76kr53q0.js.map +0 -13
  182. package/dist/chunks/ws-client-6shc5rze.js.map +0 -12
@@ -51,15 +51,15 @@ import {
51
51
  transactDoc,
52
52
  view,
53
53
  workspace
54
- } from "./studio-5kt960pk.js";
54
+ } from "./studio-hk523hby.js";
55
55
  import {
56
56
  classMap,
57
57
  ifDefined,
58
58
  styleMap
59
- } from "./studio-ckwz4d3x.js";
59
+ } from "./studio-twsafr1e.js";
60
60
  import {
61
61
  ref as ref2
62
- } from "./studio-p471gg5n.js";
62
+ } from "./studio-kvfx9z2c.js";
63
63
  import {
64
64
  html,
65
65
  nothing
@@ -106,11 +106,14 @@ import {
106
106
  import {
107
107
  formatByName,
108
108
  loadExtensions
109
- } from "./studio-tqemhphj.js";
109
+ } from "./studio-50eed4c9.js";
110
110
  import {
111
111
  getPlatform,
112
112
  hasPlatform
113
113
  } from "./studio-sas7mt3k.js";
114
+ import {
115
+ bundleUrl
116
+ } from "./studio-53n8bp04.js";
114
117
  import {
115
118
  __require
116
119
  } from "./studio-a0tswy0w.js";
@@ -6567,7 +6570,10 @@ function requestStylebookSelection(host) {
6567
6570
  host.selReqId += 1;
6568
6571
  host.channel.post({ kind: "measure", paths: [[...cardPath]], reqId: host.selReqId });
6569
6572
  }
6570
- var DEFAULT_CANVAS_URL = "/packages/studio/canvas.html";
6573
+ function defaultCanvasUrl() {
6574
+ return bundleUrl("../canvas.html");
6575
+ }
6576
+ var DEFERRED_CANVAS_URL = "about:blank";
6571
6577
  function releaseHost(host) {
6572
6578
  host.channel.dispose();
6573
6579
  for (const [reqId, resolve2] of pendingEvals) {
@@ -6598,6 +6604,16 @@ function releaseHost(host) {
6598
6604
  hosts.delete(host.canvasEl);
6599
6605
  liveHosts.delete(host);
6600
6606
  }
6607
+ function resolveCanvasUrl() {
6608
+ if (!hasPlatform()) {
6609
+ return defaultCanvasUrl();
6610
+ }
6611
+ const platform = getPlatform();
6612
+ if (platform.canvasUrl) {
6613
+ return platform.canvasUrl;
6614
+ }
6615
+ return platform.canvasUrlDeferred ? DEFERRED_CANVAS_URL : defaultCanvasUrl();
6616
+ }
6601
6617
  function releaseCanvasHosts(root) {
6602
6618
  let released = 0;
6603
6619
  for (const host of new Set(liveHosts)) {
@@ -6609,7 +6625,7 @@ function releaseCanvasHosts(root) {
6609
6625
  return released;
6610
6626
  }
6611
6627
  function ensureHost(canvasEl) {
6612
- const canvasUrl = (hasPlatform() ? getPlatform().canvasUrl : undefined) ?? DEFAULT_CANVAS_URL;
6628
+ const canvasUrl = resolveCanvasUrl();
6613
6629
  const existing = hosts.get(canvasEl);
6614
6630
  if (existing) {
6615
6631
  if (existing.canvasUrl === canvasUrl) {
@@ -7546,7 +7562,7 @@ function openPageAction(label = "Open a page…") {
7546
7562
  return {
7547
7563
  label,
7548
7564
  run: () => {
7549
- import("./quick-search-9wwa09hh.js").then((m) => {
7565
+ import("./quick-search-j88azfs2.js").then((m) => {
7550
7566
  m.openQuickSearch();
7551
7567
  });
7552
7568
  }
@@ -7818,5 +7834,5 @@ function railPanelSet() {
7818
7834
 
7819
7835
  export { KEY_SCOPES, CATEGORIES, checkRecordPlacements, intlHelpersClause, PURE_METHOD_OPS, BLESSED_OPERATORS, BLESSED_GLOBALS, isMutating, evaluateExpression, rectOf, loopbackAssetSrc, getPreviewNavigateHandler, activeCanvasSurface, tabOfPane, derivationOfPane, surfacesShowingTab, canvasModeOfTab, canvasModeOfPane, activeMediaOfPane, paneOfContainer, tabOfContainer, dynamicRouteParams, documentUrlPattern, pagePathsDef, invalidateParamValues, loadParamValues, isComponentDoc, componentPropEntries, contentMountFor, previewAssetSrc, SPAN_FULL_RENDER, SPAN_MOUNT_CANVAS, SPAN_PATCH_BATCH, canvasPerf, recordEscalation, timeSpan, timeSpanAsync, mediaDisplayName, defaultDef, parentCursorToIframe, serializeJxPath, elements_meta_default, getInlineActions, isInlineElement, isEditing, bubbleInlinePath, stageZoom, canvasPanelTemplate, observeCenterUntilStable, applyTransform, applyEditZoom, setEditZoom, requestEditZoom, fitToScreen, getFit, setFit, markExplicitZoom, setUserZoom, fitOnCanvasEntry, resetZoom, panToElement, canvasBaseViewsFor, canvasBaseViewOf, previewStateOf, setCanvasView, registerCanvasViewCommands, updateActivePanelHeaders, setDragGhost, moveDragGhost, clearDragGhost, disableNativeDragPreview, attachInstruction, extractInstruction, hasElement, enableElement, disableElement, removePackageElements, removeElementRef, setSkipServerFunctions, runScoped, buildScope, renderNode, pureSchemeOf, renderComponentPreview, registerLayersDnD, registerComponentsDnD, registerElementsDnD, applyDropInstruction, sawIframeDragOver, allowAutoRequestsOnNextRender, requestCanvasEval, flushCanvasEdits, liveDragHostAt, beginDragSession, currentDragSession, hostDragGeometry, canvasIdleBlockers, canvasPointAt, revealCanvasPath, adoptCanvasPreviewMode, postDragMessage, endDragSession, clearDropIndicator, setNativeDragEnterHandler, setInsertZoneClickHandler, setFileDropHandler, setCanvasSlashHandler, setCanvasContextMenuHandler, setStylebookHitHandler, isCaretActive, setToolbarRefresh, setCanvasPointerDownHandler, setIframePatchEscalation, postPatchToHosts, dragHostTab, releaseCanvasHosts, mountIframeCanvas, mountStylebookCanvas, postColorSchemeToLiveHosts, postLocaleToLiveHosts, postSiteStyleToLiveHosts, postStyleUpdateToStylebookHosts, panToStylebookTag, getEditSnapshot, setKeymapSource, postApplyFormat, postOpenSlash, commitActiveEditSession, getEditBarAnchorRect, clickAnythingTo, staleSelectionMessage, openPageAction, renderEmptyState, panelContext, registerPanel, getPanel, listPanels, isPanelVisible, railGroups, railPanelSet };
7820
7836
 
7821
- //# debugId=E01F4562BAD57C3264756E2164756E21
7822
- //# sourceMappingURL=studio-yz9s88s0.js.map
7837
+ //# debugId=9961004C8296D6DB64756E2164756E21
7838
+ //# sourceMappingURL=studio-10s469da.js.map
@@ -2,7 +2,7 @@ import {
2
2
  Directive,
3
3
  PartType,
4
4
  directive
5
- } from "./studio-p471gg5n.js";
5
+ } from "./studio-kvfx9z2c.js";
6
6
  import {
7
7
  noChange,
8
8
  nothing
@@ -50,4 +50,4 @@ var unsafeHTML = directive(UnsafeHTMLDirective);
50
50
  export { unsafeHTML };
51
51
 
52
52
  //# debugId=2A5B539DDAEE5D8464756E2164756E21
53
- //# sourceMappingURL=studio-6f0am8f2.js.map
53
+ //# sourceMappingURL=studio-2w11grav.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  renderDeployChecklist
3
- } from "./studio-6zzbyx17.js";
3
+ } from "./studio-5ne8mdx9.js";
4
4
  import {
5
5
  registerPanel,
6
6
  renderEmptyState
7
- } from "./studio-yz9s88s0.js";
7
+ } from "./studio-10s469da.js";
8
8
  import {
9
9
  notify,
10
10
  now,
11
11
  openModal,
12
12
  reactive,
13
13
  setBottomTab
14
- } from "./studio-5kt960pk.js";
14
+ } from "./studio-hk523hby.js";
15
15
  import {
16
16
  repeat
17
- } from "./studio-p471gg5n.js";
17
+ } from "./studio-kvfx9z2c.js";
18
18
  import {
19
19
  html,
20
20
  nothing
@@ -350,4 +350,4 @@ function showProgressModal(opts) {
350
350
  export { beginActivity, activityIdleBlockers, registerActivityPanel, showProgressModal };
351
351
 
352
352
  //# debugId=E5DF930C7E1AD2C064756E2164756E21
353
- //# sourceMappingURL=studio-zqv3w24n.js.map
353
+ //# sourceMappingURL=studio-3q65xvzv.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  contentMountFor
3
- } from "./studio-yz9s88s0.js";
3
+ } from "./studio-10s469da.js";
4
4
  import {
5
5
  activeTab,
6
6
  errorMessage,
7
7
  notify
8
- } from "./studio-5kt960pk.js";
8
+ } from "./studio-hk523hby.js";
9
9
  import {
10
10
  getNodeAtPath,
11
11
  isJsonObject,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./studio-cjm7fdjf.js";
15
15
  import {
16
16
  loadedMonaco
17
- } from "./studio-tqemhphj.js";
17
+ } from "./studio-50eed4c9.js";
18
18
  import {
19
19
  getPlatform,
20
20
  hasPlatform
@@ -408,4 +408,4 @@ function authoredRefTargets(path) {
408
408
  export { usagesSupported, peekUsages, loadUsages, retryUsages, invalidateUsages, usageHeadline, usageWarning, usageFiles, IMAGE_EXTENSIONS, MEDIA_EXTENSIONS, UPLOAD_ACCEPT, extensionOf, isImage, isMediaFile, mediaKind, setMediaChangedHandler, uploadAssets, normalizeProjectPath, baseName, mediaSiteUrl, authoredRefTargets, codeService, pluginSchemaCache, fetchPluginSchema, setLintMarkers, getFunctionArgs };
409
409
 
410
410
  //# debugId=058163B6A8C10B5864756E2164756E21
411
- //# sourceMappingURL=studio-qhh8r5fz.js.map
411
+ //# sourceMappingURL=studio-4058pg09.js.map
@@ -3,19 +3,19 @@ import {
3
3
  } from "./studio-8jpzqk5s.js";
4
4
  import {
5
5
  live
6
- } from "./studio-xmvbhg31.js";
6
+ } from "./studio-c31yb4t6.js";
7
7
  import {
8
8
  activityIdleBlockers,
9
9
  beginActivity,
10
10
  showProgressModal
11
- } from "./studio-zqv3w24n.js";
11
+ } from "./studio-3q65xvzv.js";
12
12
  import {
13
13
  canvasIdleBlockers,
14
14
  canvasPointAt,
15
15
  registerPanel,
16
16
  renderEmptyState,
17
17
  revealCanvasPath
18
- } from "./studio-yz9s88s0.js";
18
+ } from "./studio-10s469da.js";
19
19
  import {
20
20
  activeTab,
21
21
  collabState,
@@ -28,11 +28,11 @@ import {
28
28
  showConfirmDialog,
29
29
  showDialog,
30
30
  showPromptDialog
31
- } from "./studio-5kt960pk.js";
31
+ } from "./studio-hk523hby.js";
32
32
  import {
33
33
  ref,
34
34
  repeat
35
- } from "./studio-p471gg5n.js";
35
+ } from "./studio-kvfx9z2c.js";
36
36
  import {
37
37
  html,
38
38
  nothing
@@ -41,11 +41,12 @@ import {
41
41
  POLL_GIT,
42
42
  projectState,
43
43
  render,
44
+ renderOnly,
44
45
  rendersInFlight
45
46
  } from "./studio-cjm7fdjf.js";
46
47
  import {
47
48
  formatForPath
48
- } from "./studio-tqemhphj.js";
49
+ } from "./studio-50eed4c9.js";
49
50
  import {
50
51
  getPlatform,
51
52
  hasPlatform,
@@ -345,7 +346,7 @@ async function createGithubRepository({ projectName }) {
345
346
  });
346
347
  return false;
347
348
  }
348
- const { refreshGitStatus } = await import("./git-panel-qp4rrwr9.js");
349
+ const { refreshGitStatus } = await import("./git-panel-4j6xbh8g.js");
349
350
  await refreshGitStatus();
350
351
  activity.done(repo.html_url);
351
352
  notify.success(`Repository created: ${repo.html_url}`, { key: "github.repo" });
@@ -1188,6 +1189,7 @@ async function doPull() {
1188
1189
  }
1189
1190
  }
1190
1191
  var _pollTimer = null;
1192
+ var _splitMenuOpen = false;
1191
1193
  async function fetchGitLog() {
1192
1194
  const plat = getPlatform();
1193
1195
  try {
@@ -1465,20 +1467,18 @@ function renderGitPanel(ctx) {
1465
1467
  <sp-action-button
1466
1468
  class="git-split-trigger"
1467
1469
  size="s"
1468
- @click=${(e) => {
1469
- const menu = e.currentTarget.parentElement.querySelector(".git-split-menu");
1470
- if (menu) {
1471
- menu.toggleAttribute("hidden");
1472
- }
1470
+ @click=${() => {
1471
+ _splitMenuOpen = !_splitMenuOpen;
1472
+ renderOnly("leftPanel");
1473
1473
  }}
1474
1474
  >
1475
1475
  <sp-icon-chevron-down slot="icon" size="xs"></sp-icon-chevron-down>
1476
1476
  </sp-action-button>
1477
- <div class="git-split-menu" hidden>
1477
+ <div class="git-split-menu" ?hidden=${!_splitMenuOpen}>
1478
1478
  <button
1479
1479
  class="git-split-menu-item"
1480
- @click=${(e) => {
1481
- e.currentTarget.parentElement.setAttribute("hidden", "");
1480
+ @click=${() => {
1481
+ _splitMenuOpen = false;
1482
1482
  doCommit();
1483
1483
  }}
1484
1484
  >
@@ -1783,5 +1783,5 @@ function registerGitPanel() {
1783
1783
 
1784
1784
  export { hydrateProjectList, getProjectList, shouldInstallAutomation, installAutomationHook, stripRange, isComparable, isUpgrade, maybePromptJxsuiteUpdate, autoSyncProjectOnOpen, githubTokenStored, githubTokenLocation, clearGithubToken, refreshGitStatus, cloneRepository, platformSupportsClone, readGitDiff, loadDiffForLens, initRepository, pushCurrentBranch, signInToGithub, renderGitPanel, relativeDate, sourceControlCommands, registerSourceControlCommands, cleanupGitPanel, registerGitPanel };
1785
1785
 
1786
- //# debugId=369A489EB1E6F95564756E2164756E21
1787
- //# sourceMappingURL=studio-hekaagev.js.map
1786
+ //# debugId=6DB34F497D8C14B864756E2164756E21
1787
+ //# sourceMappingURL=studio-4enps87v.js.map
@@ -21,7 +21,7 @@ async function applyPendingSchemas() {
21
21
  }
22
22
  _pendingSchemasDirty = false;
23
23
  try {
24
- const { applyProjectSchemas } = await import("./monaco-setup-xy3bs05d.js");
24
+ const { applyProjectSchemas } = await import("./monaco-setup-a5wkmbgh.js");
25
25
  applyProjectSchemas(_pendingSchemas);
26
26
  } catch {}
27
27
  }
@@ -32,7 +32,7 @@ function loadMonaco() {
32
32
  _loading ??= (async () => {
33
33
  const [monaco] = await Promise.all([
34
34
  import("./editor-cptq5jp1.js"),
35
- import("./monaco-setup-xy3bs05d.js")
35
+ import("./monaco-setup-a5wkmbgh.js")
36
36
  ]);
37
37
  _monaco = monaco;
38
38
  await applyPendingSchemas();
@@ -110,7 +110,7 @@ async function shareProjectSchemas(platform) {
110
110
  }
111
111
  function refreshExtensionUi(platform) {
112
112
  shareProjectSchemas(platform);
113
- import("./extension-sections-vpcm4jvx.js").then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
113
+ import("./extension-sections-g34239vm.js").then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
114
114
  }
115
115
  function getFormats() {
116
116
  return _formats;
@@ -225,4 +225,4 @@ function splitFormatDocument(format, doc) {
225
225
  export { loadMonaco, loadedMonaco, mountStillWanted, loadFormats, refreshFormats, setFormats, loadExtensions, getExtensions, setExtensions, refreshExtensionUi, getFormats, formatByExtension, formatByName, noFormatError, formatForPath, documentExtensions, defaultContentFormat, formatParse, formatSerialize, splitFormatDocument };
226
226
 
227
227
  //# debugId=7A0A51B7AA10806664756E2164756E21
228
- //# sourceMappingURL=studio-tqemhphj.js.map
228
+ //# sourceMappingURL=studio-50eed4c9.js.map
@@ -0,0 +1,16 @@
1
+ // src/services/bundle-base.ts
2
+ var base;
3
+ function setBundleBase(entryUrl) {
4
+ base = new URL("./", entryUrl).href;
5
+ }
6
+ function bundleUrl(path) {
7
+ if (base === undefined) {
8
+ throw new Error(`bundleUrl(${JSON.stringify(path)}) before setBundleBase(). An entry module ` + `(src/studio.ts or src/canvas/iframe-entry.ts) must call setBundleBase(import.meta.url) ` + `first; a test needs tests/with-dom.ts, which sets one.`);
9
+ }
10
+ return new URL(path, base).href;
11
+ }
12
+
13
+ export { setBundleBase, bundleUrl };
14
+
15
+ //# debugId=0B4622FE09D1B65C64756E2164756E21
16
+ //# sourceMappingURL=studio-53n8bp04.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  INSPECTOR_TABS,
3
3
  selectStylebookTag
4
- } from "./studio-1kgfcv7s.js";
4
+ } from "./studio-a11d3a1b.js";
5
5
  import {
6
6
  allConditionsPass,
7
7
  autoOpenSections,
@@ -28,7 +28,7 @@ import {
28
28
  setInspectorSection,
29
29
  spTextField,
30
30
  widgetForType
31
- } from "./studio-x0et2z9g.js";
31
+ } from "./studio-hs8x23fv.js";
32
32
  import {
33
33
  createPanelScheduler
34
34
  } from "./studio-8jpzqk5s.js";
@@ -44,22 +44,22 @@ import {
44
44
  renderStaticKvRow,
45
45
  slotMode,
46
46
  switchSlotMode
47
- } from "./studio-300zsz1k.js";
47
+ } from "./studio-zdkgwhkv.js";
48
48
  import {
49
49
  live
50
- } from "./studio-xmvbhg31.js";
50
+ } from "./studio-c31yb4t6.js";
51
51
  import {
52
52
  loadUsages,
53
53
  peekUsages,
54
54
  usageFiles
55
- } from "./studio-qhh8r5fz.js";
55
+ } from "./studio-4058pg09.js";
56
56
  import {
57
57
  clickAnythingTo,
58
58
  mediaDisplayName,
59
59
  openPageAction,
60
60
  renderEmptyState,
61
61
  staleSelectionMessage
62
- } from "./studio-yz9s88s0.js";
62
+ } from "./studio-10s469da.js";
63
63
  import {
64
64
  DEFAULT_INSPECTOR_TAB,
65
65
  REGION_ATTR,
@@ -92,14 +92,14 @@ import {
92
92
  stringArg,
93
93
  transactDoc,
94
94
  unifyValues
95
- } from "./studio-5kt960pk.js";
95
+ } from "./studio-hk523hby.js";
96
96
  import {
97
97
  classMap,
98
98
  ifDefined
99
- } from "./studio-ckwz4d3x.js";
99
+ } from "./studio-twsafr1e.js";
100
100
  import {
101
101
  ref
102
- } from "./studio-p471gg5n.js";
102
+ } from "./studio-kvfx9z2c.js";
103
103
  import {
104
104
  html,
105
105
  nothing,
@@ -1398,7 +1398,7 @@ function styleSidebarTemplate(node, activeMediaTab, activeSelector, opts = {}) {
1398
1398
  return html`
1399
1399
  <sp-accordion-item
1400
1400
  label=${sec.label}
1401
- .open=${isOpen}
1401
+ .open=${live(isOpen)}
1402
1402
  @sp-accordion-item-toggle=${(e) => {
1403
1403
  activeTab.value.session.ui.styleSections = {
1404
1404
  ...activeTab.value.session.ui.styleSections,
@@ -1416,7 +1416,7 @@ function styleSidebarTemplate(node, activeMediaTab, activeSelector, opts = {}) {
1416
1416
  const customSectionT = html`
1417
1417
  <sp-accordion-item
1418
1418
  label="Custom"
1419
- .open=${customIsOpen}
1419
+ .open=${live(customIsOpen)}
1420
1420
  @sp-accordion-item-toggle=${(e) => {
1421
1421
  activeTab.value.session.ui.styleSections = {
1422
1422
  ...activeTab.value.session.ui.styleSections,
@@ -1488,7 +1488,7 @@ function styleSidebarTemplate(node, activeMediaTab, activeSelector, opts = {}) {
1488
1488
  const nestedSectionT = nestedRules.length > 0 ? html`
1489
1489
  <sp-accordion-item
1490
1490
  label="Relative Styling"
1491
- .open=${nestedIsOpen}
1491
+ .open=${live(nestedIsOpen)}
1492
1492
  @sp-accordion-item-toggle=${(e) => {
1493
1493
  activeTab.value.session.ui.styleSections = {
1494
1494
  ...activeTab.value.session.ui.styleSections,
@@ -1813,5 +1813,5 @@ function _doRender() {
1813
1813
 
1814
1814
  export { registerStyleCommands, mount, unmount, render2 as render, inspectorTab, setInspectorTab };
1815
1815
 
1816
- //# debugId=EE6BCDBC241C370964756E2164756E21
1817
- //# sourceMappingURL=studio-nqq8jk8f.js.map
1816
+ //# debugId=515A6CAE86AEF1C564756E2164756E21
1817
+ //# sourceMappingURL=studio-5amdrjm4.js.map
@@ -2,7 +2,7 @@ import {
2
2
  activeRegistry,
3
3
  shell,
4
4
  updateSiteConfig
5
- } from "./studio-5kt960pk.js";
5
+ } from "./studio-hk523hby.js";
6
6
  import {
7
7
  html,
8
8
  nothing
@@ -382,4 +382,4 @@ function renderDeployChecklist() {
382
382
  export { platformSupportsPublish, listAccounts, latestDeployment, writeDeployConfig, connectDeploy, currentDeploy, noteDeployment, deployStatusItem, renderDeployChecklist };
383
383
 
384
384
  //# debugId=F16370A3EAFA6BE564756E2164756E21
385
- //# sourceMappingURL=studio-6zzbyx17.js.map
385
+ //# sourceMappingURL=studio-5ne8mdx9.js.map
@@ -14,7 +14,7 @@ import {
14
14
  } from "./studio-0rqqhrdy.js";
15
15
  import {
16
16
  ifDefined
17
- } from "./studio-ckwz4d3x.js";
17
+ } from "./studio-twsafr1e.js";
18
18
  import {
19
19
  html
20
20
  } from "./studio-5x5774ak.js";
@@ -240,7 +240,7 @@ class Tooltip extends SpectrumElement {
240
240
  `;
241
241
  if (this.selfManaged) {
242
242
  this.dependencyManager.add("sp-overlay");
243
- import("./sp-overlay.dev-h6kdx076.js");
243
+ import("./sp-overlay.dev-s18hymn9.js");
244
244
  return html`
245
245
  <sp-overlay
246
246
  ?open=${this.open && !this.disabled && this.dependencyManager.loaded}
@@ -315,4 +315,4 @@ defineElement("sp-tooltip", Tooltip);
315
315
  export { DependencyManagerController };
316
316
 
317
317
  //# debugId=B26C538C82CA430D64756E2164756E21
318
- //# sourceMappingURL=studio-3z8jjm2p.js.map
318
+ //# sourceMappingURL=studio-7ejemhej.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  parseMediaEntries,
3
3
  schemeOfQuery
4
- } from "./studio-x0et2z9g.js";
4
+ } from "./studio-hs8x23fv.js";
5
5
  import {
6
6
  live
7
- } from "./studio-xmvbhg31.js";
7
+ } from "./studio-c31yb4t6.js";
8
8
  import {
9
9
  mediaDisplayName,
10
10
  mountStylebookCanvas,
11
11
  panToStylebookTag,
12
12
  serializeJxPath,
13
13
  tabOfPane
14
- } from "./studio-yz9s88s0.js";
14
+ } from "./studio-10s469da.js";
15
15
  import {
16
16
  activeTab,
17
17
  getEffectiveMedia,
@@ -19,13 +19,14 @@ import {
19
19
  isSpliceablePath,
20
20
  shell,
21
21
  varDisplayName
22
- } from "./studio-5kt960pk.js";
22
+ } from "./studio-hk523hby.js";
23
23
  import {
24
24
  classMap
25
- } from "./studio-ckwz4d3x.js";
25
+ } from "./studio-twsafr1e.js";
26
26
  import {
27
- ref
28
- } from "./studio-p471gg5n.js";
27
+ ref,
28
+ repeat
29
+ } from "./studio-kvfx9z2c.js";
29
30
  import {
30
31
  html,
31
32
  render
@@ -683,7 +684,7 @@ function renderStylebookMode(surface, ctx) {
683
684
  }
684
685
  })}
685
686
  >
686
- ${panelEntries.map((e) => e.tpl)}
687
+ ${repeat(panelEntries, (e) => e.panel.mediaName, (e) => e.tpl)}
687
688
  </div>
688
689
  `, canvasWrap);
689
690
  const generated = buildStylebookDoc({
@@ -859,7 +860,7 @@ function defaultCommands(deps) {
859
860
  description: "Turn the selected element into a repeater template, rendering it once per item of a " + "data collection the author picks in the dialog this opens."
860
861
  },
861
862
  run: () => {
862
- import("./convert-to-repeater-cnpyvj74.js").then(({ convertToRepeater }) => convertToRepeater());
863
+ import("./convert-to-repeater-0xh9wwek.js").then(({ convertToRepeater }) => convertToRepeater());
863
864
  }
864
865
  },
865
866
  {
@@ -1063,5 +1064,5 @@ function inspectorFocusCommands(deps) {
1063
1064
 
1064
1065
  export { transposeStylebookStyle, tokenLabel, groupTokens, listTokenContexts, readTokenOverride, writeTokenOverride, addableContexts, stylebook_meta_default, renderStylebookMode, selectStylebookTag, INSPECTOR_TABS, noopCommandDeps, defaultCommands };
1065
1066
 
1066
- //# debugId=ABA6B257F3B9FD5A64756E2164756E21
1067
- //# sourceMappingURL=studio-1kgfcv7s.js.map
1067
+ //# debugId=46ED955C46B01FC864756E2164756E21
1068
+ //# sourceMappingURL=studio-a11d3a1b.js.map
@@ -2,7 +2,7 @@ import {
2
2
  AsyncDirective,
3
3
  directive,
4
4
  isPrimitive
5
- } from "./studio-p471gg5n.js";
5
+ } from "./studio-kvfx9z2c.js";
6
6
  import {
7
7
  noChange
8
8
  } from "./studio-5x5774ak.js";
@@ -112,4 +112,4 @@ function when(condition, trueCase, falseCase) {
112
112
  export { until, when };
113
113
 
114
114
  //# debugId=6810A26C9093588464756E2164756E21
115
- //# sourceMappingURL=studio-rgwcpast.js.map
115
+ //# sourceMappingURL=studio-ay8wcr2b.js.map
@@ -3,21 +3,21 @@ import {
3
3
  getRecentProjects,
4
4
  openFileInTab,
5
5
  trackRecentFile
6
- } from "./studio-22xr4q8q.js";
6
+ } from "./studio-ncnet0ba.js";
7
7
  import {
8
8
  live
9
- } from "./studio-xmvbhg31.js";
9
+ } from "./studio-c31yb4t6.js";
10
10
  import {
11
11
  activeRegistry,
12
12
  activeTab,
13
13
  getLayerSlot
14
- } from "./studio-5kt960pk.js";
14
+ } from "./studio-hk523hby.js";
15
15
  import {
16
16
  classMap
17
- } from "./studio-ckwz4d3x.js";
17
+ } from "./studio-twsafr1e.js";
18
18
  import {
19
19
  ref
20
- } from "./studio-p471gg5n.js";
20
+ } from "./studio-kvfx9z2c.js";
21
21
  import {
22
22
  html,
23
23
  nothing,
@@ -32,7 +32,7 @@ import {
32
32
  documentExtensions,
33
33
  formatByExtension,
34
34
  loadFormats
35
- } from "./studio-tqemhphj.js";
35
+ } from "./studio-50eed4c9.js";
36
36
  import {
37
37
  getPlatform
38
38
  } from "./studio-sas7mt3k.js";
@@ -656,4 +656,4 @@ function renderOverlay() {
656
656
  export { PALETTE_MODES, modeSpec, resolvePaletteMode, fuzzyScore, rankBy, paletteArgs, getRecentCommands, initQuickSearch, openQuickSearch, closeQuickSearch, isQuickSearchOpen };
657
657
 
658
658
  //# debugId=D01DE0145FC9DB1664756E2164756E21
659
- //# sourceMappingURL=studio-fys6z73y.js.map
659
+ //# sourceMappingURL=studio-bak2cyjr.js.map
@@ -4,7 +4,7 @@ import {
4
4
  directive,
5
5
  isSingleExpression,
6
6
  setCommittedValue
7
- } from "./studio-p471gg5n.js";
7
+ } from "./studio-kvfx9z2c.js";
8
8
  import {
9
9
  noChange,
10
10
  nothing
@@ -52,4 +52,4 @@ var live = directive(LiveDirective);
52
52
  export { live };
53
53
 
54
54
  //# debugId=D34FC2E2E606E1C064756E2164756E21
55
- //# sourceMappingURL=studio-xmvbhg31.js.map
55
+ //# sourceMappingURL=studio-c31yb4t6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-yz9s88s0.js";
3
+ } from "./studio-10s469da.js";
4
4
 
5
5
  // src/ui/virtual-window.ts
6
6
  var DEFAULT_OVERSCAN_ROWS = 3;
@@ -163,4 +163,4 @@ function watchListWindow(previous, list, spec) {
163
163
  export { computeWindow, listWindow, revealListRow, measuredRowHeight, watchListWindow };
164
164
 
165
165
  //# debugId=4C38350338F9781B64756E2164756E21
166
- //# sourceMappingURL=studio-8sdyjfd6.js.map
166
+ //# sourceMappingURL=studio-cf4rk7kv.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  renderForm,
3
3
  resolveContextPointer
4
- } from "./studio-300zsz1k.js";
4
+ } from "./studio-zdkgwhkv.js";
5
5
  import {
6
6
  validateProjectConfig
7
7
  } from "./studio-6kv3apa9.js";
8
8
  import {
9
9
  deriveSecretEnvName
10
- } from "./studio-753znj4c.js";
10
+ } from "./studio-0e4h32g6.js";
11
11
  import {
12
12
  paneOfContainer
13
- } from "./studio-yz9s88s0.js";
13
+ } from "./studio-10s469da.js";
14
14
  import {
15
15
  commitProjectConfig,
16
16
  errorMessage,
17
17
  notify,
18
18
  paneRegion
19
- } from "./studio-5kt960pk.js";
19
+ } from "./studio-hk523hby.js";
20
20
  import {
21
21
  html,
22
22
  nothing,
@@ -332,4 +332,4 @@ function renderMapLayout(contribution, opts, rerender, paneId) {
332
332
  export { selectContributedEntry, renderContributedSection };
333
333
 
334
334
  //# debugId=C8B3D1846143F4B964756E2164756E21
335
- //# sourceMappingURL=studio-yphy4z9m.js.map
335
+ //# sourceMappingURL=studio-cv606rs1.js.map