@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,17 +3,17 @@ import {
3
3
  measuredRowHeight,
4
4
  revealListRow,
5
5
  watchListWindow
6
- } from "./studio-8sdyjfd6.js";
6
+ } from "./studio-kwavhmdr.js";
7
7
  import {
8
8
  autoSyncProjectOnOpen,
9
9
  cleanupGitPanel,
10
10
  maybePromptJxsuiteUpdate,
11
11
  shouldInstallAutomation
12
- } from "./studio-hekaagev.js";
12
+ } from "./studio-q07vj7p9.js";
13
13
  import {
14
14
  openCsvGridTab,
15
15
  openPagesGrid
16
- } from "./studio-753znj4c.js";
16
+ } from "./studio-0evba9z5.js";
17
17
  import {
18
18
  collectionDirs,
19
19
  collectionInfo,
@@ -21,20 +21,20 @@ import {
21
21
  markLocalMutation,
22
22
  parseSourceForPath,
23
23
  renamePromptMessage
24
- } from "./studio-r8vx7bkz.js";
24
+ } from "./studio-wxthr2x1.js";
25
25
  import {
26
26
  UPLOAD_ACCEPT,
27
27
  invalidateUsages,
28
28
  isImage,
29
29
  uploadAssets
30
- } from "./studio-qhh8r5fz.js";
30
+ } from "./studio-102jzb8r.js";
31
31
  import {
32
32
  showProgressModal
33
- } from "./studio-zqv3w24n.js";
33
+ } from "./studio-eqyybj2e.js";
34
34
  import {
35
35
  rectOf,
36
36
  registerPanel
37
- } from "./studio-yz9s88s0.js";
37
+ } from "./studio-yk7037sg.js";
38
38
  import {
39
39
  activateTab,
40
40
  activeRegistry,
@@ -61,14 +61,14 @@ import {
61
61
  setWorkspaceProject,
62
62
  showPromptDialog,
63
63
  workspace
64
- } from "./studio-5kt960pk.js";
64
+ } from "./studio-ddgrc5hs.js";
65
65
  import {
66
66
  classMap
67
- } from "./studio-ckwz4d3x.js";
67
+ } from "./studio-twsafr1e.js";
68
68
  import {
69
69
  ref,
70
70
  repeat
71
- } from "./studio-p471gg5n.js";
71
+ } from "./studio-kvfx9z2c.js";
72
72
  import {
73
73
  html,
74
74
  nothing
@@ -94,7 +94,7 @@ import {
94
94
  noFormatError,
95
95
  refreshExtensionUi,
96
96
  refreshFormats
97
- } from "./studio-tqemhphj.js";
97
+ } from "./studio-6gcrk1bq.js";
98
98
  import {
99
99
  getPlatform,
100
100
  hasPlatform
@@ -597,6 +597,9 @@ function renderFilesTemplate({
597
597
  class="file-tree"
598
598
  role="tree"
599
599
  aria-label="Project files"
600
+ @keydown=${(e) => {
601
+ onFileTreeKeydown(e, e.currentTarget);
602
+ }}
600
603
  ${ref((el) => {
601
604
  if (el) {
602
605
  afterFileTreeRender(el);
@@ -773,16 +776,6 @@ async function toggleTreeDirectory(path) {
773
776
  await loadDirectory(path);
774
777
  }
775
778
  }
776
- var _keyboardTrees = new WeakSet;
777
- function setupTreeKeyboard(tree) {
778
- if (_keyboardTrees.has(tree)) {
779
- return;
780
- }
781
- _keyboardTrees.add(tree);
782
- tree.addEventListener("keydown", (e) => {
783
- onFileTreeKeydown(e, tree);
784
- });
785
- }
786
779
  function onFileTreeKeydown(e, tree) {
787
780
  const focused = tree.querySelector(".file-tree-item:focus");
788
781
  if (!focused) {
@@ -1466,17 +1459,13 @@ function registerFilesPanel() {
1466
1459
  dock: "navigator",
1467
1460
  icon: "sp-icon-folder",
1468
1461
  render: (ctx) => ctx.deps.renderFilesTemplate(),
1469
- afterRender: (ctx, host) => {
1470
- const tree = host.querySelector(".file-tree");
1471
- if (tree) {
1472
- ctx.deps.setupTreeKeyboard(tree);
1473
- }
1462
+ afterRender: (ctx) => {
1474
1463
  ctx.deps.registerFileTreeDnD({ renderLeftPanel: ctx.rerender });
1475
1464
  }
1476
1465
  });
1477
1466
  }
1478
1467
 
1479
- export { ensureDependenciesInstalled, entryCollection, entryCollections, collectionOfPath, seedEntry, missingRequired, hydrateRecentProjects, getRecentProjects, addRecentProject, removeRecentProject, clearRecentProjects, getRecentFiles, trackRecentFile, loadDirectory, loadProject, openProject, initProjectRepo, findHomePage, openHomePage, openLastSessionOrHome, renderFilesTemplate, FILE_ROW_HEIGHT, setupTreeKeyboard, isFileDrag, uploadFilesToDir, pickAndUploadTo, registerFileTreeDnD, createFileIn, openFileInTab, openFileInPane, reloadCleanTab, reloadFileInTab, registerFilesPanel };
1468
+ export { ensureDependenciesInstalled, entryCollection, entryCollections, collectionOfPath, seedEntry, missingRequired, hydrateRecentProjects, getRecentProjects, addRecentProject, removeRecentProject, clearRecentProjects, getRecentFiles, trackRecentFile, loadDirectory, loadProject, openProject, initProjectRepo, findHomePage, openHomePage, openLastSessionOrHome, renderFilesTemplate, FILE_ROW_HEIGHT, isFileDrag, uploadFilesToDir, pickAndUploadTo, registerFileTreeDnD, createFileIn, openFileInTab, openFileInPane, reloadCleanTab, reloadFileInTab, registerFilesPanel };
1480
1469
 
1481
- //# debugId=FB716457707AF69D64756E2164756E21
1482
- //# sourceMappingURL=studio-22xr4q8q.js.map
1470
+ //# debugId=AF54EB1634A6A49164756E2164756E21
1471
+ //# sourceMappingURL=studio-1dgqagzz.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
@@ -3,19 +3,19 @@ import {
3
3
  noopCommandDeps,
4
4
  selectStylebookTag,
5
5
  stylebook_meta_default
6
- } from "./studio-1kgfcv7s.js";
6
+ } from "./studio-yz06mkfj.js";
7
7
  import {
8
8
  dataTypeLabel,
9
9
  defCategory,
10
10
  inspectorCommands,
11
11
  unwrapSignal
12
- } from "./studio-x0et2z9g.js";
12
+ } from "./studio-ng5gbxkj.js";
13
13
  import {
14
14
  listWindow,
15
15
  measuredRowHeight,
16
16
  revealListRow,
17
17
  watchListWindow
18
- } from "./studio-8sdyjfd6.js";
18
+ } from "./studio-kwavhmdr.js";
19
19
  import {
20
20
  VFile,
21
21
  VFileMessage,
@@ -27,7 +27,7 @@ import {
27
27
  } from "./studio-bw5dz6km.js";
28
28
  import {
29
29
  usagesSupported
30
- } from "./studio-qhh8r5fz.js";
30
+ } from "./studio-102jzb8r.js";
31
31
  import {
32
32
  KEY_SCOPES,
33
33
  activeCanvasSurface,
@@ -43,7 +43,7 @@ import {
43
43
  rectOf,
44
44
  registerPanel,
45
45
  renderEmptyState
46
- } from "./studio-yz9s88s0.js";
46
+ } from "./studio-yk7037sg.js";
47
47
  import {
48
48
  activeRegistry,
49
49
  activeTab,
@@ -81,16 +81,16 @@ import {
81
81
  transactDoc,
82
82
  view,
83
83
  workspace
84
- } from "./studio-5kt960pk.js";
84
+ } from "./studio-ddgrc5hs.js";
85
85
  import {
86
86
  classMap,
87
87
  ifDefined,
88
88
  styleMap
89
- } from "./studio-ckwz4d3x.js";
89
+ } from "./studio-twsafr1e.js";
90
90
  import {
91
91
  ref,
92
92
  repeat
93
- } from "./studio-p471gg5n.js";
93
+ } from "./studio-kvfx9z2c.js";
94
94
  import {
95
95
  html,
96
96
  nothing,
@@ -12675,6 +12675,7 @@ var SLASH_COMMANDS = [
12675
12675
  ];
12676
12676
  var callbacks = null;
12677
12677
  var activeIdx = 0;
12678
+ var showFilter = false;
12678
12679
  var filteredItems = [];
12679
12680
  var open = false;
12680
12681
  var _anchorRect = null;
@@ -12699,7 +12700,8 @@ function showAt(rect, filter, cbs) {
12699
12700
  return;
12700
12701
  }
12701
12702
  activeIdx = 0;
12702
- render2(cbs.showFilter || false);
12703
+ showFilter = cbs.showFilter || false;
12704
+ render2();
12703
12705
  if (!open) {
12704
12706
  open = true;
12705
12707
  document.addEventListener("keydown", onKeydown, true);
@@ -12731,7 +12733,7 @@ function dismissSlashMenu() {
12731
12733
  render(nothing, getHost());
12732
12734
  cbs?.onDismiss?.();
12733
12735
  }
12734
- function render2(showFilter) {
12736
+ function render2() {
12735
12737
  const rect = _anchorRect;
12736
12738
  if (!rect) {
12737
12739
  return;
@@ -12759,7 +12761,7 @@ function render2(showFilter) {
12759
12761
  <sp-menu style="min-width:220px">
12760
12762
  ${filteredItems.length > 0 ? filteredItems.map((cmd, i) => html`
12761
12763
  <sp-menu-item
12762
- ?focused=${i === 0}
12764
+ ?focused=${i === activeIdx}
12763
12765
  @click=${(e) => {
12764
12766
  e.preventDefault();
12765
12767
  e.stopPropagation();
@@ -12790,7 +12792,7 @@ function onFilterInput(e) {
12790
12792
  const source = callbacks?.commands || SLASH_COMMANDS;
12791
12793
  filteredItems = filter ? source.filter((c) => c.label.toLowerCase().includes(filter) || c.tag.toLowerCase().includes(filter)) : source;
12792
12794
  activeIdx = 0;
12793
- render2(true);
12795
+ render2();
12794
12796
  requestAnimationFrame(() => {
12795
12797
  if (_filterEl && _filterEl !== document.activeElement) {
12796
12798
  _filterEl.focus();
@@ -12799,6 +12801,10 @@ function onFilterInput(e) {
12799
12801
  }
12800
12802
  });
12801
12803
  }
12804
+ function revealActive() {
12805
+ const rows = getHost().querySelectorAll("sp-menu-item:not([disabled])");
12806
+ rows[activeIdx]?.scrollIntoView({ block: "nearest" });
12807
+ }
12802
12808
  function handleSlashMenuKey(key) {
12803
12809
  if (!open) {
12804
12810
  return;
@@ -12808,18 +12814,16 @@ function handleSlashMenuKey(key) {
12808
12814
  if (items.length === 0) {
12809
12815
  return;
12810
12816
  }
12811
- items[activeIdx]?.removeAttribute("focused");
12812
12817
  activeIdx = (activeIdx + 1) % items.length;
12813
- items[activeIdx]?.setAttribute("focused", "");
12814
- items[activeIdx]?.scrollIntoView({ block: "nearest" });
12818
+ render2();
12819
+ revealActive();
12815
12820
  } else if (key === "ArrowUp") {
12816
12821
  if (items.length === 0) {
12817
12822
  return;
12818
12823
  }
12819
- items[activeIdx]?.removeAttribute("focused");
12820
12824
  activeIdx = (activeIdx - 1 + items.length) % items.length;
12821
- items[activeIdx]?.setAttribute("focused", "");
12822
- items[activeIdx]?.scrollIntoView({ block: "nearest" });
12825
+ render2();
12826
+ revealActive();
12823
12827
  } else if (key === "Enter") {
12824
12828
  const cmd = filteredItems[activeIdx];
12825
12829
  if (cmd) {
@@ -14168,7 +14172,7 @@ function elementCommands(deps) {
14168
14172
  if (!target?.rerender) {
14169
14173
  return;
14170
14174
  }
14171
- const { startLayerTitleEdit } = await import("./layers-panel-kj93w2zg.js");
14175
+ const { startLayerTitleEdit } = await import("./layers-panel-a8wjsdjj.js");
14172
14176
  startLayerTitleEdit(target.path, target.rerender);
14173
14177
  }
14174
14178
  }
@@ -14411,7 +14415,8 @@ function rowTemplate(row, index) {
14411
14415
  return html`${row.dividerAbove ? html`<sp-menu-divider role="separator"></sp-menu-divider>` : nothing}<sp-menu-item
14412
14416
  role="menuitem"
14413
14417
  data-command-id=${row.command.id}
14414
- tabindex=${index === 0 ? 0 : -1}
14418
+ tabindex=${index === _activeIdx ? 0 : -1}
14419
+ ?focused=${index === _activeIdx}
14415
14420
  ?disabled=${!row.enabled}
14416
14421
  aria-disabled=${row.enabled ? "false" : "true"}
14417
14422
  style=${row.command.destructive && row.enabled ? "color: var(--danger)" : ""}
@@ -14817,7 +14822,7 @@ function onTreeKeydown(e, collapsed, rerender) {
14817
14822
  }
14818
14823
  function startLayerTitleEdit(path, rerender) {
14819
14824
  const key = pathKey(path);
14820
- const row = document.querySelector(`.layer-row[data-path="${key}"]`);
14825
+ const row = _outlineList ? rowElementFor(_outlineList, key) : null;
14821
14826
  if (!row) {
14822
14827
  const index = outlineIndexOfPath(path);
14823
14828
  if (index >= 0 && revealOutlineRow(index)) {
@@ -15167,5 +15172,5 @@ function registerLayersPanel() {
15167
15172
 
15168
15173
  export { findEnclosingRepeater, convertToComponent, showSlashMenu, showSlashMenuAtRect, dismissSlashMenu, handleSlashMenuKey, parseChord, normalizeChord, chordFromEvent, formatChord, overlappingScopes, chordsInScopes, CommandUnavailableError, createCommandRegistry, initBlockActionBar, formatCommands, registerSelectionCommands, dismissLinkPopover, dismissBlockActionBar, suppressBlockActionBar, releaseBlockActionBar, isEditChromeTarget, renderBlockActionBar, outlineLabel, OUTLINE_ROW_MAX_ITEMS, renderRowCommands, clearHoverActions, onTreeHover, afterTreeRender, indentWidth, OUTLINE_ROW_HEIGHT, outlineRowPath, applyTreeRovingTabindex, applyRowSelection, onTreeKeydown, startLayerTitleEdit, renderLayersTemplate, registerLayersPanel, pasteNode, clipboardCommands, setContextMenuNavigate, liveElementCommands, dismissContextMenu, showContextMenu };
15169
15174
 
15170
- //# debugId=0A72A5F10EA65EFD64756E2164756E21
15171
- //# sourceMappingURL=studio-pv8m0h4a.js.map
15175
+ //# debugId=5DE335A028CC7DD364756E2164756E21
15176
+ //# sourceMappingURL=studio-377bbhtz.js.map
@@ -2,7 +2,7 @@ import {
2
2
  activeRegistry,
3
3
  shell,
4
4
  updateSiteConfig
5
- } from "./studio-5kt960pk.js";
5
+ } from "./studio-ddgrc5hs.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-53dn6e6t.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
@@ -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-2zjyty05.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-6gcrk1bq.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,7 +1,7 @@
1
1
  import {
2
2
  INSPECTOR_TABS,
3
3
  selectStylebookTag
4
- } from "./studio-1kgfcv7s.js";
4
+ } from "./studio-yz06mkfj.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-ng5gbxkj.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-ky68mp85.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-102jzb8r.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-yk7037sg.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-ddgrc5hs.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-8x4399kc.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
@@ -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