@jxsuite/studio 2.2.2 → 2.4.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 (188) 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-jrvn5vwy.js} +13 -12
  8. package/dist/chunks/{convert-to-repeater-cnpyvj74.js → convert-to-repeater-109dwcj7.js} +12 -11
  9. package/dist/chunks/{extension-sections-vpcm4jvx.js → extension-sections-2zjyty05.js} +17 -16
  10. package/dist/chunks/{files-zeg88k2d.js → files-jdbtammm.js} +18 -19
  11. package/dist/chunks/{format-host-taymsw55.js → format-host-kq6963gs.js} +2 -2
  12. package/dist/chunks/{git-panel-qp4rrwr9.js → git-panel-2stf3ahg.js} +12 -11
  13. package/dist/chunks/{layers-panel-kj93w2zg.js → layers-panel-a8wjsdjj.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-2we6smjv.js} +6 -6
  16. package/dist/chunks/{quick-search-9wwa09hh.js → quick-search-hmpwdgys.js} +19 -18
  17. package/dist/chunks/right-panel-hn3y3j0j.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-0evba9z5.js} +5 -5
  22. package/dist/chunks/{studio-qhh8r5fz.js → studio-102jzb8r.js} +4 -4
  23. package/dist/chunks/{studio-22xr4q8q.js → studio-1dgqagzz.js} +18 -29
  24. package/dist/chunks/{studio-6f0am8f2.js → studio-2w11grav.js} +2 -2
  25. package/dist/chunks/{studio-pv8m0h4a.js → studio-377bbhtz.js} +28 -23
  26. package/dist/chunks/{studio-6zzbyx17.js → studio-53dn6e6t.js} +2 -2
  27. package/dist/chunks/studio-53n8bp04.js +16 -0
  28. package/dist/chunks/{studio-tqemhphj.js → studio-6gcrk1bq.js} +4 -4
  29. package/dist/chunks/{studio-3z8jjm2p.js → studio-7ejemhej.js} +3 -3
  30. package/dist/chunks/{studio-nqq8jk8f.js → studio-8x4399kc.js} +14 -14
  31. package/dist/chunks/{studio-rgwcpast.js → studio-ay8wcr2b.js} +2 -2
  32. package/dist/chunks/{studio-xmvbhg31.js → studio-c31yb4t6.js} +2 -2
  33. package/dist/chunks/{studio-5kt960pk.js → studio-ddgrc5hs.js} +133 -147
  34. package/dist/chunks/{studio-zqv3w24n.js → studio-eqyybj2e.js} +5 -5
  35. package/dist/chunks/{studio-p471gg5n.js → studio-kvfx9z2c.js} +7 -3
  36. package/dist/chunks/{studio-8sdyjfd6.js → studio-kwavhmdr.js} +2 -2
  37. package/dist/chunks/{studio-300zsz1k.js → studio-ky68mp85.js} +6 -6
  38. package/dist/chunks/{studio-x0et2z9g.js → studio-ng5gbxkj.js} +15 -15
  39. package/dist/chunks/{studio-hekaagev.js → studio-q07vj7p9.js} +17 -17
  40. package/dist/chunks/{studio-fys6z73y.js → studio-qd4k0h80.js} +7 -7
  41. package/dist/chunks/{studio-yphy4z9m.js → studio-rdsvb808.js} +5 -5
  42. package/dist/chunks/{studio-g8t7g0gp.js → studio-tqr02xaa.js} +3 -3
  43. package/dist/chunks/{studio-ckwz4d3x.js → studio-twsafr1e.js} +2 -2
  44. package/dist/chunks/{studio-qrsfh1w7.js → studio-tzx3xmvx.js} +5 -5
  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-wxthr2x1.js} +14 -13
  48. package/dist/chunks/{studio-yz9s88s0.js → studio-yk7037sg.js} +40 -14
  49. package/dist/chunks/{studio-1kgfcv7s.js → studio-yz06mkfj.js} +12 -11
  50. package/dist/codicon.ttf +0 -0
  51. package/dist/iframe-entry.js +14 -3
  52. package/dist/manifest.json +82 -0
  53. package/dist/studio.js +247 -106
  54. package/index.html +0 -50
  55. package/package.json +16 -9
  56. package/src/canvas/canvas-live-render.ts +2 -4
  57. package/src/canvas/canvas-origin.ts +25 -0
  58. package/src/canvas/iframe-entry.ts +5 -0
  59. package/src/canvas/iframe-host.ts +45 -4
  60. package/src/content/entry-editor.ts +2 -1
  61. package/src/editor/context-menu.ts +13 -2
  62. package/src/editor/slash-menu.ts +26 -11
  63. package/src/files/files.ts +11 -23
  64. package/src/grid/grid-panel.ts +27 -6
  65. package/src/hosting/document.ts +109 -0
  66. package/src/hosting/layout.ts +211 -0
  67. package/src/hosting/stage.ts +166 -0
  68. package/src/hosting/tsconfig.json +18 -0
  69. package/src/panels/ai-chat/chat-view.ts +25 -14
  70. package/src/panels/git-panel.ts +17 -14
  71. package/src/panels/head-panel.ts +32 -14
  72. package/src/panels/imports-panel.ts +32 -13
  73. package/src/panels/layers-panel.ts +9 -1
  74. package/src/panels/panel-registry.ts +0 -1
  75. package/src/panels/properties-panel.ts +3 -3
  76. package/src/panels/settings-pane.ts +1 -1
  77. package/src/panels/style-panel.ts +3 -3
  78. package/src/panels/stylebook-panel.ts +10 -1
  79. package/src/panels/toolbar.ts +1 -1
  80. package/src/platforms/cloud.ts +9 -0
  81. package/src/services/ai-models.ts +14 -1
  82. package/src/services/bundle-base.ts +69 -0
  83. package/src/services/monaco-setup.ts +19 -13
  84. package/src/shell/tree.ts +155 -0
  85. package/src/shell.ts +0 -2
  86. package/src/studio.ts +22 -2
  87. package/src/types.ts +32 -0
  88. package/src/ui/ai-managed-connect.ts +18 -3
  89. package/src/ui/regions.ts +10 -45
  90. package/styles/overlays.css +35 -0
  91. package/styles/shell.css +7 -0
  92. package/dist/chunks/2020-xp8vnwma.js.map +0 -24
  93. package/dist/chunks/Overlay.dev-ymy3et3y.js.map +0 -9
  94. package/dist/chunks/adapter-jkcyhgtr.js.map +0 -9
  95. package/dist/chunks/cf-settings-g5fbf2zp.js.map +0 -9
  96. package/dist/chunks/components-z6cnkyy1.js.map +0 -9
  97. package/dist/chunks/content-source-r2n7v682.js.map +0 -9
  98. package/dist/chunks/convert-to-repeater-cnpyvj74.js.map +0 -10
  99. package/dist/chunks/editor-cptq5jp1.js.map +0 -9
  100. package/dist/chunks/extension-sections-vpcm4jvx.js.map +0 -11
  101. package/dist/chunks/files-zeg88k2d.js.map +0 -9
  102. package/dist/chunks/flow-qbfgrpeh.js.map +0 -12
  103. package/dist/chunks/focus-trap.esm-ggawf1hy.js.map +0 -11
  104. package/dist/chunks/focus-visible-6eg70z18.js.map +0 -10
  105. package/dist/chunks/format-host-taymsw55.js.map +0 -9
  106. package/dist/chunks/git-panel-qp4rrwr9.js.map +0 -9
  107. package/dist/chunks/index-nj44jpzj.js.map +0 -14
  108. package/dist/chunks/index-zqxmqxmh.js.map +0 -9
  109. package/dist/chunks/javascript-q8kpmfah.js.map +0 -11
  110. package/dist/chunks/jsonMode-dkr040ga.js.map +0 -18
  111. package/dist/chunks/jx-validate-jj9rnt4n.js.map +0 -9
  112. package/dist/chunks/layers-panel-kj93w2zg.js.map +0 -9
  113. package/dist/chunks/monaco-binding-rj6xpx9y.js.map +0 -10
  114. package/dist/chunks/monaco-setup-xy3bs05d.js.map +0 -15
  115. package/dist/chunks/publish-panel-6qz6kp41.js.map +0 -9
  116. package/dist/chunks/quick-search-9wwa09hh.js.map +0 -9
  117. package/dist/chunks/right-panel-faf816ch.js +0 -37
  118. package/dist/chunks/right-panel-faf816ch.js.map +0 -9
  119. package/dist/chunks/section-registry-sx1ykvkw.js.map +0 -9
  120. package/dist/chunks/sp-overlay.dev-h6kdx076.js.map +0 -9
  121. package/dist/chunks/sp-popover.dev-dj9x7e7a.js.map +0 -9
  122. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js +0 -15
  123. package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js.map +0 -9
  124. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js +0 -15
  125. package/dist/chunks/sp-tooltip.dev-rvepkw4r.js.map +0 -9
  126. package/dist/chunks/sp-tray.dev-64v4pxw8.js.map +0 -12
  127. package/dist/chunks/studio-0a5qrh01.js.map +0 -9
  128. package/dist/chunks/studio-0rqqhrdy.js.map +0 -12
  129. package/dist/chunks/studio-18j3bmcz.js.map +0 -10
  130. package/dist/chunks/studio-1kgfcv7s.js.map +0 -13
  131. package/dist/chunks/studio-22xr4q8q.js.map +0 -13
  132. package/dist/chunks/studio-300zsz1k.js.map +0 -39
  133. package/dist/chunks/studio-3fk1ac9z.js.map +0 -12
  134. package/dist/chunks/studio-3n4ndrzh.js.map +0 -41
  135. package/dist/chunks/studio-3z8jjm2p.js.map +0 -13
  136. package/dist/chunks/studio-4mqb9a0j.js.map +0 -14
  137. package/dist/chunks/studio-4q0wznzf.js.map +0 -73
  138. package/dist/chunks/studio-5ehhackm.js.map +0 -10
  139. package/dist/chunks/studio-5kt960pk.js.map +0 -38
  140. package/dist/chunks/studio-5x5774ak.js.map +0 -10
  141. package/dist/chunks/studio-685s0ytq.js.map +0 -76
  142. package/dist/chunks/studio-6a0h7sne.js.map +0 -15
  143. package/dist/chunks/studio-6f0am8f2.js.map +0 -10
  144. package/dist/chunks/studio-6kv3apa9.js.map +0 -10
  145. package/dist/chunks/studio-6zzbyx17.js.map +0 -12
  146. package/dist/chunks/studio-753znj4c.js.map +0 -16
  147. package/dist/chunks/studio-7afd21nw.js.map +0 -10
  148. package/dist/chunks/studio-8jpzqk5s.js.map +0 -10
  149. package/dist/chunks/studio-8q517dfr.js.map +0 -10
  150. package/dist/chunks/studio-8sdyjfd6.js.map +0 -10
  151. package/dist/chunks/studio-a0tswy0w.js.map +0 -9
  152. package/dist/chunks/studio-a7pzveq1.js.map +0 -11
  153. package/dist/chunks/studio-ahnzd9rg.js.map +0 -10
  154. package/dist/chunks/studio-b9b6t1dg.js.map +0 -651
  155. package/dist/chunks/studio-bw5dz6km.js.map +0 -21
  156. package/dist/chunks/studio-cjm7fdjf.js.map +0 -14
  157. package/dist/chunks/studio-ckwz4d3x.js.map +0 -12
  158. package/dist/chunks/studio-d1ks410h.js.map +0 -10
  159. package/dist/chunks/studio-dg7zyt5x.js.map +0 -10
  160. package/dist/chunks/studio-fys6z73y.js.map +0 -10
  161. package/dist/chunks/studio-g1wdche0.js.map +0 -56
  162. package/dist/chunks/studio-g8t7g0gp.js.map +0 -10
  163. package/dist/chunks/studio-h4rxscfc.js.map +0 -10
  164. package/dist/chunks/studio-hekaagev.js.map +0 -18
  165. package/dist/chunks/studio-hrajjyt2.js.map +0 -10
  166. package/dist/chunks/studio-nqq8jk8f.js.map +0 -14
  167. package/dist/chunks/studio-p471gg5n.js.map +0 -14
  168. package/dist/chunks/studio-pv8m0h4a.js.map +0 -98
  169. package/dist/chunks/studio-qhh8r5fz.js.map +0 -13
  170. package/dist/chunks/studio-qrsfh1w7.js.map +0 -41
  171. package/dist/chunks/studio-r8vx7bkz.js.map +0 -235
  172. package/dist/chunks/studio-rgwcpast.js.map +0 -12
  173. package/dist/chunks/studio-s519zc99.js.map +0 -10
  174. package/dist/chunks/studio-sas7mt3k.js.map +0 -10
  175. package/dist/chunks/studio-t5wqwzdh.js.map +0 -10
  176. package/dist/chunks/studio-tqemhphj.js.map +0 -11
  177. package/dist/chunks/studio-tr20m8g8.js.map +0 -9
  178. package/dist/chunks/studio-tvgyw9xw.js.map +0 -14
  179. package/dist/chunks/studio-x0et2z9g.js.map +0 -32
  180. package/dist/chunks/studio-xm3dbxvn.js.map +0 -19
  181. package/dist/chunks/studio-xmvbhg31.js.map +0 -10
  182. package/dist/chunks/studio-ynxwkrzd.js.map +0 -246
  183. package/dist/chunks/studio-yphy4z9m.js.map +0 -10
  184. package/dist/chunks/studio-yz9s88s0.js.map +0 -54
  185. package/dist/chunks/studio-z6nw2ek2.js.map +0 -10
  186. package/dist/chunks/studio-zqv3w24n.js.map +0 -11
  187. package/dist/chunks/tsMode-76kr53q0.js.map +0 -13
  188. package/dist/chunks/ws-client-6shc5rze.js.map +0 -12
@@ -3,21 +3,21 @@ import {
3
3
  getRecentProjects,
4
4
  openFileInTab,
5
5
  trackRecentFile
6
- } from "./studio-22xr4q8q.js";
6
+ } from "./studio-1dgqagzz.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-ddgrc5hs.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-6gcrk1bq.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-qd4k0h80.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  renderForm,
3
3
  resolveContextPointer
4
- } from "./studio-300zsz1k.js";
4
+ } from "./studio-ky68mp85.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-0evba9z5.js";
11
11
  import {
12
12
  paneOfContainer
13
- } from "./studio-yz9s88s0.js";
13
+ } from "./studio-yk7037sg.js";
14
14
  import {
15
15
  commitProjectConfig,
16
16
  errorMessage,
17
17
  notify,
18
18
  paneRegion
19
- } from "./studio-5kt960pk.js";
19
+ } from "./studio-ddgrc5hs.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-rdsvb808.js.map
@@ -10,11 +10,11 @@ import {
10
10
  noteDeployment,
11
11
  platformSupportsPublish,
12
12
  writeDeployConfig
13
- } from "./studio-6zzbyx17.js";
13
+ } from "./studio-53dn6e6t.js";
14
14
  import {
15
15
  activeRegistry,
16
16
  openModal
17
- } from "./studio-5kt960pk.js";
17
+ } from "./studio-ddgrc5hs.js";
18
18
  import {
19
19
  html
20
20
  } from "./studio-5x5774ak.js";
@@ -387,4 +387,4 @@ function openPublishPanel() {
387
387
  export { seedPublishConnected, openPublishPanel };
388
388
 
389
389
  //# debugId=32DE20DAF46B08AA64756E2164756E21
390
- //# sourceMappingURL=studio-g8t7g0gp.js.map
390
+ //# sourceMappingURL=studio-tqr02xaa.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
@@ -117,4 +117,4 @@ var classMap = directive(ClassMapDirective);
117
117
  export { ifDefined, styleMap, classMap };
118
118
 
119
119
  //# debugId=A0F1689B5230596A64756E2164756E21
120
- //# sourceMappingURL=studio-ckwz4d3x.js.map
120
+ //# sourceMappingURL=studio-twsafr1e.js.map
@@ -19,7 +19,7 @@ import {
19
19
  import {
20
20
  ifDefined,
21
21
  styleMap
22
- } from "./studio-ckwz4d3x.js";
22
+ } from "./studio-twsafr1e.js";
23
23
  import {
24
24
  html,
25
25
  nothing
@@ -385,7 +385,7 @@ class AbstractOverlay extends SpectrumElement {
385
385
  document.dispatchEvent(overlayUpdateEvent);
386
386
  }
387
387
  static async open(triggerOrContent, interactionOrOptions, content, optionsV1) {
388
- await import("./sp-overlay.dev-h6kdx076.js");
388
+ await import("./sp-overlay.dev-s18hymn9.js");
389
389
  const v2 = arguments.length === 2;
390
390
  const overlayContent = content || triggerOrContent;
391
391
  const overlay = new this;
@@ -3379,12 +3379,12 @@ class InteractionController {
3379
3379
  return;
3380
3380
  }
3381
3381
  customElements.whenDefined("sp-overlay").then(async () => {
3382
- const { Overlay } = await import("./Overlay.dev-ymy3et3y.js");
3382
+ const { Overlay } = await import("./Overlay.dev-d2ajy6sj.js");
3383
3383
  this.overlay = new Overlay;
3384
3384
  this.overlay.open = true;
3385
3385
  this.target[lastInteractionType] = this.type;
3386
3386
  });
3387
- import("./sp-overlay.dev-h6kdx076.js");
3387
+ import("./sp-overlay.dev-s18hymn9.js");
3388
3388
  }
3389
3389
  get overlay() {
3390
3390
  return this._overlay;
@@ -4341,4 +4341,4 @@ var Overlay = _Overlay;
4341
4341
  export { FocusVisiblePolyfillMixin, Focusable, LikeAnchor, MutationController, ObserveSlotPresence, ObserveSlotText, isIPhone, isIOS, isWebKit, isAndroid, randomID, conditionAttributeWithoutId, conditionAttributeWithId, elementResolverUpdatedSymbol, ElementResolutionController, LONGPRESS_INSTRUCTIONS, SlottableRequestEvent, Overlay };
4342
4342
 
4343
4343
  //# debugId=B4C0094FFD6AEF9A64756E2164756E21
4344
- //# sourceMappingURL=studio-qrsfh1w7.js.map
4344
+ //# sourceMappingURL=studio-tzx3xmvx.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./studio-0rqqhrdy.js";
16
16
  import {
17
17
  ifDefined
18
- } from "./studio-ckwz4d3x.js";
18
+ } from "./studio-twsafr1e.js";
19
19
  import {
20
20
  html
21
21
  } from "./studio-5x5774ak.js";
@@ -288,4 +288,4 @@ defineElement("sp-progress-circle", ProgressCircle);
288
288
  export { languageResolverUpdatedSymbol, LanguageResolutionController, ProgressCircle };
289
289
 
290
290
  //# debugId=D9778D0A36E46FD364756E2164756E21
291
- //# sourceMappingURL=studio-6a0h7sne.js.map
291
+ //# sourceMappingURL=studio-vhk5fmfv.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Overlay
3
- } from "./studio-qrsfh1w7.js";
3
+ } from "./studio-tzx3xmvx.js";
4
4
  import {
5
5
  defineElement
6
6
  } from "./studio-18j3bmcz.js";
@@ -9,4 +9,4 @@ import {
9
9
  defineElement("sp-overlay", Overlay);
10
10
 
11
11
  //# debugId=24A9645EA10C33DD64756E2164756E21
12
- //# sourceMappingURL=studio-hrajjyt2.js.map
12
+ //# sourceMappingURL=studio-wdt9y92a.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  unsafeHTML
3
- } from "./studio-6f0am8f2.js";
3
+ } from "./studio-2w11grav.js";
4
4
  import {
5
5
  VFile,
6
6
  ok,
@@ -16,19 +16,19 @@ import {
16
16
  isMediaFile,
17
17
  loadUsages,
18
18
  usageWarning
19
- } from "./studio-qhh8r5fz.js";
19
+ } from "./studio-102jzb8r.js";
20
20
  import {
21
21
  showProgressModal
22
- } from "./studio-zqv3w24n.js";
22
+ } from "./studio-eqyybj2e.js";
23
23
  import {
24
24
  deployStatusItem
25
- } from "./studio-6zzbyx17.js";
25
+ } from "./studio-53dn6e6t.js";
26
26
  import {
27
27
  derivationOfPane,
28
28
  flushCanvasEdits,
29
29
  rectOf,
30
30
  tabOfPane
31
- } from "./studio-yz9s88s0.js";
31
+ } from "./studio-yk7037sg.js";
32
32
  import {
33
33
  EDITOR_KIND_LABELS,
34
34
  PRIMARY_PANE,
@@ -54,10 +54,11 @@ import {
54
54
  showConfirmDialog,
55
55
  toRaw,
56
56
  workspace
57
- } from "./studio-5kt960pk.js";
57
+ } from "./studio-ddgrc5hs.js";
58
58
  import {
59
- ref
60
- } from "./studio-p471gg5n.js";
59
+ ref,
60
+ repeat
61
+ } from "./studio-kvfx9z2c.js";
61
62
  import {
62
63
  html,
63
64
  nothing,
@@ -82,7 +83,7 @@ import {
82
83
  loadFormats,
83
84
  noFormatError,
84
85
  splitFormatDocument
85
- } from "./studio-tqemhphj.js";
86
+ } from "./studio-6gcrk1bq.js";
86
87
  import {
87
88
  getPlatform
88
89
  } from "./studio-sas7mt3k.js";
@@ -14357,7 +14358,7 @@ function renderMessageList(opts) {
14357
14358
  elements, and wire up components.
14358
14359
  </div>
14359
14360
  ` : nothing}
14360
- ${messages.map((msg, i) => {
14361
+ ${repeat(messages, (msg) => msg.id, (msg, i) => {
14361
14362
  if (msg.role === "user") {
14362
14363
  return renderUserMessage(msg);
14363
14364
  }
@@ -15127,7 +15128,7 @@ function buildEntryFileSource(opts) {
15127
15128
  await writeEntry(path2, entry, patches);
15128
15129
  outcome(true);
15129
15130
  if (openTab2) {
15130
- const { reloadFileInTab } = await import("./files-zeg88k2d.js");
15131
+ const { reloadFileInTab } = await import("./files-jdbtammm.js");
15131
15132
  reloadFileInTab(path2);
15132
15133
  }
15133
15134
  } catch (error) {
@@ -15291,5 +15292,5 @@ function createPagesSource() {
15291
15292
 
15292
15293
  export { markLocalMutation, isRecentLocal, startFsSync, cellValuesEqual, makeGridTabId, parseGridTabId, gridTabLabel, columnsFromSchema, inferColumnsFromRows, coerceCellInput, cellToText, ROW_KEY_FIELD, getGridController, createGridController, DRAFT_FIELD, DRAFT_MEANING, isDraftEntry, hasDraftAxis, setIncludeDrafts, attachJumpBarHost, mountJumpBar, buildMessageWithContext, clearMarkdownCache, beginTurn, recordWrite, endTurn, writesForTurn, renderChatHeader, renderMessageList, renderSessionsList, renderStatusbar, mountStatusbar, mediaTypeEssence, parseSourceForPath, saveFile, exportFile, serializeDocument, confirmFileDelete, renamePromptMessage, PATH_FIELD, collectionInfo, collectionDirs, listCollectionEntryIds, reloadDraftAwareGrids, createCollectionSource, createPagesSource };
15293
15294
 
15294
- //# debugId=33CCC499088F7D6064756E2164756E21
15295
- //# sourceMappingURL=studio-r8vx7bkz.js.map
15295
+ //# debugId=43284A78BBF6BE9864756E2164756E21
15296
+ //# sourceMappingURL=studio-wxthr2x1.js.map
@@ -51,15 +51,15 @@ import {
51
51
  transactDoc,
52
52
  view,
53
53
  workspace
54
- } from "./studio-5kt960pk.js";
54
+ } from "./studio-ddgrc5hs.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-6gcrk1bq.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";
@@ -2745,11 +2748,15 @@ async function resolve(source) {
2745
2748
  if (_resolveCache.has(source)) {
2746
2749
  return _resolveCache.get(source);
2747
2750
  }
2748
- const p = fetch(source).then((res) => {
2751
+ const p = fetch(source).then(async (res) => {
2749
2752
  if (!res.ok) {
2750
2753
  throw new Error(`Jx: failed to fetch ${source} (${res.status})`);
2751
2754
  }
2752
- return res.json();
2755
+ const contentType = res.headers?.get("Content-Type") ?? "";
2756
+ if (contentType.includes("text/html")) {
2757
+ throw new Error(`Jx: ${source} returned HTML, not a document — the host answered a missing file with its ` + `app shell (a single-page fallback), so this path is not served.`);
2758
+ }
2759
+ return await res.json();
2753
2760
  });
2754
2761
  _resolveCache.set(source, p);
2755
2762
  return p;
@@ -4638,6 +4645,14 @@ function canvasBaseOrigin() {
4638
4645
  }
4639
4646
  return location.origin;
4640
4647
  }
4648
+ function documentBase(projectRoot) {
4649
+ const declared = hasPlatform() ? getPlatform().documentBaseUrl : undefined;
4650
+ if (declared) {
4651
+ return declared.endsWith("/") ? declared : `${declared}/`;
4652
+ }
4653
+ const root = projectRoot || "";
4654
+ return `${canvasBaseOrigin()}/${root ? `${root}/` : ""}`;
4655
+ }
4641
4656
  function loopbackAssetSrc(path) {
4642
4657
  if (path.startsWith("data:") || path.startsWith("blob:") || path.startsWith("http") || path.startsWith("views://")) {
4643
4658
  return path;
@@ -5194,9 +5209,7 @@ async function resolveCanvasDocument(doc, tab) {
5194
5209
  }
5195
5210
  }
5196
5211
  }
5197
- const root = projectState?.projectRoot || "";
5198
- const docPrefix = root ? `${root}/` : "";
5199
- const docBase = S.documentPath ? `${canvasBaseOrigin()}/${docPrefix}${S.documentPath}` : undefined;
5212
+ const docBase = S.documentPath ? new URL(S.documentPath, documentBase(projectState?.projectRoot)).href : undefined;
5200
5213
  if (isPage && tab) {
5201
5214
  const { previewParams } = tab.session.ui;
5202
5215
  if (previewParams && Object.keys(previewParams).length > 0) {
@@ -6567,7 +6580,10 @@ function requestStylebookSelection(host) {
6567
6580
  host.selReqId += 1;
6568
6581
  host.channel.post({ kind: "measure", paths: [[...cardPath]], reqId: host.selReqId });
6569
6582
  }
6570
- var DEFAULT_CANVAS_URL = "/packages/studio/canvas.html";
6583
+ function defaultCanvasUrl() {
6584
+ return bundleUrl("../canvas.html");
6585
+ }
6586
+ var DEFERRED_CANVAS_URL = "about:blank";
6571
6587
  function releaseHost(host) {
6572
6588
  host.channel.dispose();
6573
6589
  for (const [reqId, resolve2] of pendingEvals) {
@@ -6598,6 +6614,16 @@ function releaseHost(host) {
6598
6614
  hosts.delete(host.canvasEl);
6599
6615
  liveHosts.delete(host);
6600
6616
  }
6617
+ function resolveCanvasUrl() {
6618
+ if (!hasPlatform()) {
6619
+ return defaultCanvasUrl();
6620
+ }
6621
+ const platform = getPlatform();
6622
+ if (platform.canvasUrl) {
6623
+ return platform.canvasUrl;
6624
+ }
6625
+ return platform.canvasUrlDeferred ? DEFERRED_CANVAS_URL : defaultCanvasUrl();
6626
+ }
6601
6627
  function releaseCanvasHosts(root) {
6602
6628
  let released = 0;
6603
6629
  for (const host of new Set(liveHosts)) {
@@ -6609,7 +6635,7 @@ function releaseCanvasHosts(root) {
6609
6635
  return released;
6610
6636
  }
6611
6637
  function ensureHost(canvasEl) {
6612
- const canvasUrl = (hasPlatform() ? getPlatform().canvasUrl : undefined) ?? DEFAULT_CANVAS_URL;
6638
+ const canvasUrl = resolveCanvasUrl();
6613
6639
  const existing = hosts.get(canvasEl);
6614
6640
  if (existing) {
6615
6641
  if (existing.canvasUrl === canvasUrl) {
@@ -7546,7 +7572,7 @@ function openPageAction(label = "Open a page…") {
7546
7572
  return {
7547
7573
  label,
7548
7574
  run: () => {
7549
- import("./quick-search-9wwa09hh.js").then((m) => {
7575
+ import("./quick-search-hmpwdgys.js").then((m) => {
7550
7576
  m.openQuickSearch();
7551
7577
  });
7552
7578
  }
@@ -7818,5 +7844,5 @@ function railPanelSet() {
7818
7844
 
7819
7845
  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
7846
 
7821
- //# debugId=E01F4562BAD57C3264756E2164756E21
7822
- //# sourceMappingURL=studio-yz9s88s0.js.map
7847
+ //# debugId=16FE8B3284A197EE64756E2164756E21
7848
+ //# sourceMappingURL=studio-yk7037sg.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  parseMediaEntries,
3
3
  schemeOfQuery
4
- } from "./studio-x0et2z9g.js";
4
+ } from "./studio-ng5gbxkj.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-yk7037sg.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-ddgrc5hs.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-109dwcj7.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-yz06mkfj.js.map
Binary file
@@ -2200,11 +2200,15 @@ async function resolve(source) {
2200
2200
  if (_resolveCache.has(source)) {
2201
2201
  return _resolveCache.get(source);
2202
2202
  }
2203
- const p = fetch(source).then((res) => {
2203
+ const p = fetch(source).then(async (res) => {
2204
2204
  if (!res.ok) {
2205
2205
  throw new Error(`Jx: failed to fetch ${source} (${res.status})`);
2206
2206
  }
2207
- return res.json();
2207
+ const contentType = res.headers?.get("Content-Type") ?? "";
2208
+ if (contentType.includes("text/html")) {
2209
+ throw new Error(`Jx: ${source} returned HTML, not a document — the host answered a missing file with its ` + `app shell (a single-page fallback), so this path is not served.`);
2210
+ }
2211
+ return await res.json();
2208
2212
  });
2209
2213
  _resolveCache.set(source, p);
2210
2214
  return p;
@@ -7596,7 +7600,14 @@ function serializeDataScope(defs) {
7596
7600
  return out;
7597
7601
  }
7598
7602
 
7603
+ // src/services/bundle-base.ts
7604
+ var base;
7605
+ function setBundleBase(entryUrl) {
7606
+ base = new URL("./", entryUrl).href;
7607
+ }
7608
+
7599
7609
  // src/canvas/iframe-entry.ts
7610
+ setBundleBase(import.meta.url);
7600
7611
  function previewAt(cursor, src, shadowDoc, doc) {
7601
7612
  const targetEl = resolveDropTarget(cursor.x, cursor.y, doc);
7602
7613
  if (!targetEl) {
@@ -8159,5 +8170,5 @@ export {
8159
8170
  startCanvasIframe
8160
8171
  };
8161
8172
 
8162
- //# debugId=2A1ED93DD671246A64756E2164756E21
8173
+ //# debugId=4B2F6890CDE12A9464756E2164756E21
8163
8174
  //# sourceMappingURL=iframe-entry.js.map
@@ -0,0 +1,82 @@
1
+ {
2
+ "assets": [
3
+ {
4
+ "dir": false,
5
+ "kind": "document",
6
+ "path": "index.html",
7
+ "required": true,
8
+ "why": "the editor document. Generated from studioShellHtml(); a host serving the shell at its own path should render its own rather than copy this one."
9
+ },
10
+ {
11
+ "dir": false,
12
+ "kind": "document",
13
+ "path": "canvas.html",
14
+ "required": true,
15
+ "why": "the canvas iframe document. Without it every canvas frame 404s at boot."
16
+ },
17
+ {
18
+ "dir": false,
19
+ "kind": "entry",
20
+ "path": "dist/studio.js",
21
+ "required": true,
22
+ "why": "the editor bundle. Its path is a contract (studio.md 11.1) and is never hashed, because it anchors every other url the bundle resolves."
23
+ },
24
+ {
25
+ "dir": false,
26
+ "kind": "entry",
27
+ "path": "dist/iframe-entry.js",
28
+ "required": true,
29
+ "why": "the canvas bundle, loaded by canvas.html. Same unhashed-path contract."
30
+ },
31
+ {
32
+ "dir": false,
33
+ "kind": "style",
34
+ "path": "dist/studio.css",
35
+ "required": true,
36
+ "why": "the bundle's own stylesheet — Monaco's tokens and Tabulator's theme. Distinct from styles/, which is hand-authored."
37
+ },
38
+ {
39
+ "dir": false,
40
+ "kind": "asset",
41
+ "path": "dist/codicon.ttf",
42
+ "required": true,
43
+ "why": "Monaco's icon font, referenced by dist/studio.css and by three chunk stylesheets. It shipped in no tarball and no copy list for months, so every host drew tofu where Monaco draws icons."
44
+ },
45
+ {
46
+ "dir": false,
47
+ "kind": "asset",
48
+ "path": "dist/manifest.json",
49
+ "required": false,
50
+ "why": "this manifest as data, for a host that cannot import TypeScript — a Nix derivation, a shell script, a build in another language. Not required: a host that CAN import it has the same facts with types on them."
51
+ },
52
+ {
53
+ "dir": true,
54
+ "kind": "chunk",
55
+ "path": "dist/chunks",
56
+ "required": true,
57
+ "why": "the split chunks — Monaco, yjs, ajv and every on-demand import. The entry reaches them by url relative to itself, so the directory ships wholesale with its emitted names intact. A bundle that cannot find them dies at boot with a bare module-resolution error."
58
+ },
59
+ {
60
+ "dir": true,
61
+ "kind": "worker",
62
+ "path": "dist/workers",
63
+ "required": true,
64
+ "why": "Monaco's pre-bundled web workers. Missing, they do not 404 loudly: the code view simply has no JSON language service, so no schema validation, no completion and no hover, with nothing in the console."
65
+ },
66
+ {
67
+ "dir": true,
68
+ "kind": "style",
69
+ "path": "styles",
70
+ "required": true,
71
+ "why": "the hand-authored chrome stylesheet, linked by the document in cascade order. No bundler sees it. Missing, the editor boots with no tokens, no grid and no panel chrome."
72
+ },
73
+ {
74
+ "dir": true,
75
+ "kind": "font",
76
+ "path": "fonts",
77
+ "required": true,
78
+ "why": "the vendored JetBrains Mono faces, reached from styles/tokens.css by ../fonts/. They stay a directory rather than being bundled: Bun inlines a woff2 under its size threshold as base64, which would put about 85 KB into a render-blocking stylesheet."
79
+ }
80
+ ],
81
+ "shell": "index.html"
82
+ }