@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
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ref,
3
3
  repeat
4
- } from "./studio-p471gg5n.js";
4
+ } from "./studio-kvfx9z2c.js";
5
5
  import {
6
6
  html,
7
7
  nothing,
@@ -26,7 +26,7 @@ import {
26
26
  formatByName,
27
27
  formatForPath,
28
28
  loadedMonaco
29
- } from "./studio-tqemhphj.js";
29
+ } from "./studio-6gcrk1bq.js";
30
30
  import {
31
31
  getPlatform
32
32
  } from "./studio-sas7mt3k.js";
@@ -1623,146 +1623,6 @@ function pinClock(at) {
1623
1623
  return ms;
1624
1624
  }
1625
1625
 
1626
- // src/ui/regions.ts
1627
- var REGION_ATTR = "data-jx-region";
1628
- var REGION_SURFACES = [
1629
- "rail",
1630
- "navigator",
1631
- "inspector",
1632
- "pane",
1633
- "dock.bottom",
1634
- "statusbar",
1635
- "commandbar",
1636
- "overlay"
1637
- ];
1638
- var DOTTED_SURFACES = new Set(["dock.bottom"]);
1639
- function parseRegionId(id) {
1640
- const slash = id.indexOf("/");
1641
- const head = slash === -1 ? id : id.slice(0, slash);
1642
- const part = slash === -1 ? undefined : id.slice(slash + 1);
1643
- if (part === "" || head === "") {
1644
- return null;
1645
- }
1646
- let surface = head;
1647
- let instance;
1648
- if (!DOTTED_SURFACES.has(head)) {
1649
- const dot = head.indexOf(".");
1650
- if (dot !== -1) {
1651
- surface = head.slice(0, dot);
1652
- instance = head.slice(dot + 1);
1653
- if (instance === "") {
1654
- return null;
1655
- }
1656
- }
1657
- }
1658
- if (!REGION_SURFACES.includes(surface)) {
1659
- return null;
1660
- }
1661
- return instance === undefined ? part === undefined ? { surface } : { part, surface } : part === undefined ? { instance, surface } : { instance, part, surface };
1662
- }
1663
- function isRegionId(id) {
1664
- return parseRegionId(id) !== null;
1665
- }
1666
- function canonicalRegionId(id) {
1667
- if (id === "pane") {
1668
- return "pane.primary";
1669
- }
1670
- return id.startsWith("pane/") ? `pane.primary/${id.slice(5)}` : id;
1671
- }
1672
- function regionRoot(root) {
1673
- return root ?? document;
1674
- }
1675
- var DERIVED_RESOLVERS = [
1676
- {
1677
- locate: ([, prop], root) => {
1678
- const row = resolveRegion(`inspector/field:${prop}`, root);
1679
- const browse = row?.querySelector(".media-picker-browse");
1680
- return browse ? [browse] : [];
1681
- },
1682
- pattern: /^inspector\/field:(.+)\/browse$/
1683
- },
1684
- {
1685
- locate: ([, prop], root) => {
1686
- const inspector = resolveRegion("inspector", root);
1687
- return inspector ? [...inspector.querySelectorAll(`[data-prop="${CSS.escape(prop)}"]`)] : [];
1688
- },
1689
- pattern: /^inspector\/field:(.+)$/
1690
- }
1691
- ];
1692
- function resolveAllRegions(id, root) {
1693
- const canonical = canonicalRegionId(id);
1694
- if (!isRegionId(canonical)) {
1695
- return [];
1696
- }
1697
- const stamped = [
1698
- ...regionRoot(root).querySelectorAll(`[${REGION_ATTR}="${CSS.escape(canonical)}"]`)
1699
- ];
1700
- if (stamped.length > 0) {
1701
- return stamped;
1702
- }
1703
- for (const resolver of DERIVED_RESOLVERS) {
1704
- const match = canonical.match(resolver.pattern);
1705
- if (match) {
1706
- return resolver.locate(match, regionRoot(root));
1707
- }
1708
- }
1709
- return [];
1710
- }
1711
- function resolveRegion(id, root) {
1712
- const all = resolveAllRegions(id, root);
1713
- return all.at(-1) ?? null;
1714
- }
1715
- var REGION_FOR_FOCUS = {
1716
- dock: "dock.bottom",
1717
- inspector: "inspector",
1718
- navigator: "navigator",
1719
- pane: "pane.primary",
1720
- rail: "rail",
1721
- status: "statusbar"
1722
- };
1723
- var SHELL_REGION_HOSTS = {
1724
- "#activity-bar": "rail",
1725
- "#layer-toast": "overlay.toasts",
1726
- "#left-panel": "navigator",
1727
- "#right-panel": "inspector",
1728
- "#statusbar": "statusbar",
1729
- "#toolbar": "commandbar"
1730
- };
1731
- function stampShellRegions(root = document) {
1732
- for (const [selector, id] of Object.entries(SHELL_REGION_HOSTS)) {
1733
- root.querySelector(selector)?.setAttribute(REGION_ATTR, id);
1734
- }
1735
- }
1736
- function paneRegion(paneId, part) {
1737
- return part ? `pane.${paneId}/${part}` : `pane.${paneId}`;
1738
- }
1739
- function paneStripRegion(paneId) {
1740
- return paneRegion(paneId, "tabs");
1741
- }
1742
- function navigatorPanelRegion(panelId) {
1743
- return `navigator/panel:${panelId}`;
1744
- }
1745
- function inspectorTabRegion(tabId) {
1746
- return `inspector/tab:${tabId}`;
1747
- }
1748
- var NAVIGATOR_STATEMENTS_REGION = "navigator/statements";
1749
- function inspectorStatementsRegion(eventKey) {
1750
- return `inspector/statements:${eventKey}`;
1751
- }
1752
- function bottomPanelRegion(panelId) {
1753
- return `dock.bottom/panel:${panelId}`;
1754
- }
1755
- var OVERLAY_INSTANCE = {
1756
- dialog: "dialog",
1757
- modal: "dialog",
1758
- popover: "menu",
1759
- toast: "toasts"
1760
- };
1761
- function overlayRegion(layer, id) {
1762
- const instance = OVERLAY_INSTANCE[layer];
1763
- return id ? `overlay.${instance}:${id}` : `overlay.${instance}`;
1764
- }
1765
-
1766
1626
  // src/services/announce.ts
1767
1627
  var REGION_ID = {
1768
1628
  assertive: "jx-live-assertive",
@@ -3222,6 +3082,133 @@ function applyFmState(tab, field, value) {
3222
3082
  }
3223
3083
  }
3224
3084
 
3085
+ // src/ui/regions.ts
3086
+ var REGION_ATTR = "data-jx-region";
3087
+ var REGION_SURFACES = [
3088
+ "rail",
3089
+ "navigator",
3090
+ "inspector",
3091
+ "pane",
3092
+ "dock.bottom",
3093
+ "statusbar",
3094
+ "commandbar",
3095
+ "overlay"
3096
+ ];
3097
+ var DOTTED_SURFACES = new Set(["dock.bottom"]);
3098
+ function parseRegionId(id) {
3099
+ const slash = id.indexOf("/");
3100
+ const head = slash === -1 ? id : id.slice(0, slash);
3101
+ const part = slash === -1 ? undefined : id.slice(slash + 1);
3102
+ if (part === "" || head === "") {
3103
+ return null;
3104
+ }
3105
+ let surface = head;
3106
+ let instance;
3107
+ if (!DOTTED_SURFACES.has(head)) {
3108
+ const dot = head.indexOf(".");
3109
+ if (dot !== -1) {
3110
+ surface = head.slice(0, dot);
3111
+ instance = head.slice(dot + 1);
3112
+ if (instance === "") {
3113
+ return null;
3114
+ }
3115
+ }
3116
+ }
3117
+ if (!REGION_SURFACES.includes(surface)) {
3118
+ return null;
3119
+ }
3120
+ return instance === undefined ? part === undefined ? { surface } : { part, surface } : part === undefined ? { instance, surface } : { instance, part, surface };
3121
+ }
3122
+ function isRegionId(id) {
3123
+ return parseRegionId(id) !== null;
3124
+ }
3125
+ function canonicalRegionId(id) {
3126
+ if (id === "pane") {
3127
+ return "pane.primary";
3128
+ }
3129
+ return id.startsWith("pane/") ? `pane.primary/${id.slice(5)}` : id;
3130
+ }
3131
+ function regionRoot(root) {
3132
+ return root ?? document;
3133
+ }
3134
+ var DERIVED_RESOLVERS = [
3135
+ {
3136
+ locate: ([, prop], root) => {
3137
+ const row = resolveRegion(`inspector/field:${prop}`, root);
3138
+ const browse = row?.querySelector(".media-picker-browse");
3139
+ return browse ? [browse] : [];
3140
+ },
3141
+ pattern: /^inspector\/field:(.+)\/browse$/
3142
+ },
3143
+ {
3144
+ locate: ([, prop], root) => {
3145
+ const inspector = resolveRegion("inspector", root);
3146
+ return inspector ? [...inspector.querySelectorAll(`[data-prop="${CSS.escape(prop)}"]`)] : [];
3147
+ },
3148
+ pattern: /^inspector\/field:(.+)$/
3149
+ }
3150
+ ];
3151
+ function resolveAllRegions(id, root) {
3152
+ const canonical = canonicalRegionId(id);
3153
+ if (!isRegionId(canonical)) {
3154
+ return [];
3155
+ }
3156
+ const stamped = [
3157
+ ...regionRoot(root).querySelectorAll(`[${REGION_ATTR}="${CSS.escape(canonical)}"]`)
3158
+ ];
3159
+ if (stamped.length > 0) {
3160
+ return stamped;
3161
+ }
3162
+ for (const resolver of DERIVED_RESOLVERS) {
3163
+ const match = canonical.match(resolver.pattern);
3164
+ if (match) {
3165
+ return resolver.locate(match, regionRoot(root));
3166
+ }
3167
+ }
3168
+ return [];
3169
+ }
3170
+ function resolveRegion(id, root) {
3171
+ const all = resolveAllRegions(id, root);
3172
+ return all.at(-1) ?? null;
3173
+ }
3174
+ var REGION_FOR_FOCUS = {
3175
+ dock: "dock.bottom",
3176
+ inspector: "inspector",
3177
+ navigator: "navigator",
3178
+ pane: "pane.primary",
3179
+ rail: "rail",
3180
+ status: "statusbar"
3181
+ };
3182
+ function paneRegion(paneId, part) {
3183
+ return part ? `pane.${paneId}/${part}` : `pane.${paneId}`;
3184
+ }
3185
+ function paneStripRegion(paneId) {
3186
+ return paneRegion(paneId, "tabs");
3187
+ }
3188
+ function navigatorPanelRegion(panelId) {
3189
+ return `navigator/panel:${panelId}`;
3190
+ }
3191
+ function inspectorTabRegion(tabId) {
3192
+ return `inspector/tab:${tabId}`;
3193
+ }
3194
+ var NAVIGATOR_STATEMENTS_REGION = "navigator/statements";
3195
+ function inspectorStatementsRegion(eventKey) {
3196
+ return `inspector/statements:${eventKey}`;
3197
+ }
3198
+ function bottomPanelRegion(panelId) {
3199
+ return `dock.bottom/panel:${panelId}`;
3200
+ }
3201
+ var OVERLAY_INSTANCE = {
3202
+ dialog: "dialog",
3203
+ modal: "dialog",
3204
+ popover: "menu",
3205
+ toast: "toasts"
3206
+ };
3207
+ function overlayRegion(layer, id) {
3208
+ const instance = OVERLAY_INSTANCE[layer];
3209
+ return id ? `overlay.${instance}:${id}` : `overlay.${instance}`;
3210
+ }
3211
+
3225
3212
  // src/commands/active-registry.ts
3226
3213
  var _registry = shallowRef(null);
3227
3214
  function setActiveRegistry(registry) {
@@ -6047,7 +6034,6 @@ function mountShell() {
6047
6034
  if (_scope) {
6048
6035
  return;
6049
6036
  }
6050
- stampShellRegions();
6051
6037
  for (const surface of _surfaces2) {
6052
6038
  surface.mount();
6053
6039
  }
@@ -6457,7 +6443,7 @@ function extensionsKey(config) {
6457
6443
  return JSON.stringify(config.extensions ?? null);
6458
6444
  }
6459
6445
  async function refreshExtensionSurfaces() {
6460
- const { loadFormats, refreshExtensionUi, refreshFormats } = await import("./format-host-taymsw55.js");
6446
+ const { loadFormats, refreshExtensionUi, refreshFormats } = await import("./format-host-kq6963gs.js");
6461
6447
  refreshFormats();
6462
6448
  loadFormats();
6463
6449
  refreshExtensionUi(getPlatform());
@@ -6690,7 +6676,7 @@ async function updateSiteConfig(patch) {
6690
6676
  }
6691
6677
  }
6692
6678
 
6693
- export { errorMessage, LANGUAGE_TAG_PATTERN, canonicalizeLocale, isWellFormedLocale, localeDirection, localeLabel, resolveI18n, localeOfPath, servedLocaleOfPath, translationKeyOfPath, translationPathFor, EDITOR_KIND_LABELS, editorKindForMode, canvasViewForMode, inCanvas, hasSelection, hasElementSelection, emptyContext, makeContext, keyScopeStack, effectScope, onScopeDispose, effect, onEffectCleanup, reactive, toRaw, isRef, ref2 as ref, shallowRef, computed, now, REGION_ATTR, resolveRegion, REGION_FOR_FOCUS, paneRegion, paneStripRegion, navigatorPanelRegion, inspectorTabRegion, NAVIGATOR_STATEMENTS_REGION, inspectorStatementsRegion, bottomPanelRegion, overlayRegion, problems, notify, dismiss, clearProblems, problemCount, view, STAGE_CLASS, nextRenderGeneration, surfaceForPane, allCanvasSurfaces, stageContaining, registerCanvasSurface, createPaneSurface, setSurfaceTeardown, disposePaneSurface, BUFFER_COMMIT, bufferWrites, commitBufferWrites, cancelBufferWrites, bufferIsLive, bufferMovedOn, commitTabBuffers, tabBufferUnsaved, PROJECT_CONFIG_PATH, editorKindOf, editorKindsOf, modeForEditorKind, primarySelection, selectionAnchor, isSelected, cloneSelection, toggleSelected, rangeSelection, isSpliceablePath, structuralBatch, uniquePaths, unifyValues, setPatchConsumer, recordDocOp, transactDoc, transact, beginBatch, endBatch2 as endBatch, isBatching, batchTab, setHistoryDelegate, canUndo, canRedo, undo, redo, mutateInsertNode, mutateRemoveNode, mutateDuplicateNode, mutateRemoveNodes, mutateDuplicateNodes, mutateWrapNode, mutateMoveNode, mutateUpdateProperty, mutateUpdateStyle, mutateUpdateAttribute, mutateUpdateMediaStyle, mutateUpdateNestedStyle, mutateUpdateMediaNestedStyle, mutateUpdateNestedStylePath, mutateUpdateMediaNestedStylePath, mutateReplaceStyle, mutateAddDef, mutateRemoveDef, mutateUpdateDef, mutateRenameDef, mutateUpdateProp, mutateAddSwitchCase, mutateRemoveSwitchCase, mutateRenameSwitchCase, mutateUpdateFrontmatter, serializeProjectConfig, commitProjectConfig, adoptProjectConfig, setActiveRegistry, activeRegistry, initLayers, isModalOpen, showDialog, showConfirmDialog, showSaveDiscardDialog, showPromptDialog, openModal, renderPopover, popoverLayerFor, getLayerSlot, overlayIdleBlockers, getEffectiveMedia, getEffectiveStyle, getEffectiveImports, getEffectiveElements, getEffectiveHead, getEffectiveLocales, invalidateLayoutCache, getEffectiveLayoutPath, resolveLayoutDoc, distributePageIntoLayout, updateSiteConfig, collabState, isCollabPath, stringArg, optionalStringArg, boundedNumberArg, booleanArg, enumArg, pathArg, nullablePathArg, pathListArg, argsSchema, enumProperty, numberProperty, booleanProperty, pathProperty, pathListProperty, stringProperty, restoreSession, camelToKebab, camelToLabel, toCamelCase, kebabToLabel, propLabel, attrLabel, abbreviateValue, inferInputType, findContentTypeSchema, friendlyNameToVar, varDisplayName, parseCemType, jsonClone, configureCollabSerializer, configureCollabParser, configureCollabNotifier, collabSourceContext, collabReadOnly, collabSave, flushAllCollab, setCollabEnabled, isCollabEnabled, PRIMARY_PANE, workspace, activeTab, activePane, paneById, paneOfTab, focusPane, isPaneFocused, sidePane, receivingPane, detachTab, insertIntoPane, setWorkspaceProject, isTabActive, tabIsLive, openTab, promoteTab, promoteDirtyPreviewTabs, setTabPinned, moveTab, closeTab, closeAllTabs, replaceAllTabs, activateTab, moveTabToPane, renameTab, registerTabCommands, requireNavigatorPanelId, DEFAULT_INSPECTOR_TAB, isInspectorTabId, BOTTOM_TAB_IDS, DEFAULT_BOTTOM_TAB, isBottomTabId, CHROME_THEMES, DOCK_IDS, DOCK_DEFAULT_SIZES, setPaneSplit, shell, persistDocks, persistedSession, markSessionRestored, flushSession, monacoTheme, registerShellSurface, mountShell, setDockCollapsed, setDockSize, setActivityTab, setBottomTab, setChromeTheme, toggleActivityTab, setLayoutSelection, resetProjectShell, registerShellViewCommands };
6679
+ export { errorMessage, LANGUAGE_TAG_PATTERN, canonicalizeLocale, isWellFormedLocale, localeDirection, localeLabel, resolveI18n, localeOfPath, servedLocaleOfPath, translationKeyOfPath, translationPathFor, EDITOR_KIND_LABELS, editorKindForMode, canvasViewForMode, inCanvas, hasSelection, hasElementSelection, emptyContext, makeContext, keyScopeStack, effectScope, onScopeDispose, effect, onEffectCleanup, reactive, toRaw, isRef, ref2 as ref, shallowRef, computed, now, problems, notify, dismiss, clearProblems, problemCount, view, STAGE_CLASS, nextRenderGeneration, surfaceForPane, allCanvasSurfaces, stageContaining, registerCanvasSurface, createPaneSurface, setSurfaceTeardown, disposePaneSurface, BUFFER_COMMIT, bufferWrites, commitBufferWrites, cancelBufferWrites, bufferIsLive, bufferMovedOn, commitTabBuffers, tabBufferUnsaved, PROJECT_CONFIG_PATH, editorKindOf, editorKindsOf, modeForEditorKind, primarySelection, selectionAnchor, isSelected, cloneSelection, toggleSelected, rangeSelection, isSpliceablePath, structuralBatch, uniquePaths, unifyValues, setPatchConsumer, recordDocOp, transactDoc, transact, beginBatch, endBatch2 as endBatch, isBatching, batchTab, setHistoryDelegate, canUndo, canRedo, undo, redo, mutateInsertNode, mutateRemoveNode, mutateDuplicateNode, mutateRemoveNodes, mutateDuplicateNodes, mutateWrapNode, mutateMoveNode, mutateUpdateProperty, mutateUpdateStyle, mutateUpdateAttribute, mutateUpdateMediaStyle, mutateUpdateNestedStyle, mutateUpdateMediaNestedStyle, mutateUpdateNestedStylePath, mutateUpdateMediaNestedStylePath, mutateReplaceStyle, mutateAddDef, mutateRemoveDef, mutateUpdateDef, mutateRenameDef, mutateUpdateProp, mutateAddSwitchCase, mutateRemoveSwitchCase, mutateRenameSwitchCase, mutateUpdateFrontmatter, serializeProjectConfig, commitProjectConfig, adoptProjectConfig, REGION_ATTR, resolveRegion, REGION_FOR_FOCUS, paneRegion, paneStripRegion, navigatorPanelRegion, inspectorTabRegion, NAVIGATOR_STATEMENTS_REGION, inspectorStatementsRegion, bottomPanelRegion, overlayRegion, setActiveRegistry, activeRegistry, initLayers, isModalOpen, showDialog, showConfirmDialog, showSaveDiscardDialog, showPromptDialog, openModal, renderPopover, popoverLayerFor, getLayerSlot, overlayIdleBlockers, getEffectiveMedia, getEffectiveStyle, getEffectiveImports, getEffectiveElements, getEffectiveHead, getEffectiveLocales, invalidateLayoutCache, getEffectiveLayoutPath, resolveLayoutDoc, distributePageIntoLayout, updateSiteConfig, collabState, isCollabPath, stringArg, optionalStringArg, boundedNumberArg, booleanArg, enumArg, pathArg, nullablePathArg, pathListArg, argsSchema, enumProperty, numberProperty, booleanProperty, pathProperty, pathListProperty, stringProperty, restoreSession, camelToKebab, camelToLabel, toCamelCase, kebabToLabel, propLabel, attrLabel, abbreviateValue, inferInputType, findContentTypeSchema, friendlyNameToVar, varDisplayName, parseCemType, jsonClone, configureCollabSerializer, configureCollabParser, configureCollabNotifier, collabSourceContext, collabReadOnly, collabSave, flushAllCollab, setCollabEnabled, isCollabEnabled, PRIMARY_PANE, workspace, activeTab, activePane, paneById, paneOfTab, focusPane, isPaneFocused, sidePane, receivingPane, detachTab, insertIntoPane, setWorkspaceProject, isTabActive, tabIsLive, openTab, promoteTab, promoteDirtyPreviewTabs, setTabPinned, moveTab, closeTab, closeAllTabs, replaceAllTabs, activateTab, moveTabToPane, renameTab, registerTabCommands, requireNavigatorPanelId, DEFAULT_INSPECTOR_TAB, isInspectorTabId, BOTTOM_TAB_IDS, DEFAULT_BOTTOM_TAB, isBottomTabId, CHROME_THEMES, DOCK_IDS, DOCK_DEFAULT_SIZES, setPaneSplit, shell, persistDocks, persistedSession, markSessionRestored, flushSession, monacoTheme, registerShellSurface, mountShell, setDockCollapsed, setDockSize, setActivityTab, setBottomTab, setChromeTheme, toggleActivityTab, setLayoutSelection, resetProjectShell, registerShellViewCommands };
6694
6680
 
6695
- //# debugId=1BB46A15B3198CD664756E2164756E21
6696
- //# sourceMappingURL=studio-5kt960pk.js.map
6681
+ //# debugId=BC232D1D1532287464756E2164756E21
6682
+ //# sourceMappingURL=studio-ddgrc5hs.js.map
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  renderDeployChecklist
3
- } from "./studio-6zzbyx17.js";
3
+ } from "./studio-53dn6e6t.js";
4
4
  import {
5
5
  registerPanel,
6
6
  renderEmptyState
7
- } from "./studio-yz9s88s0.js";
7
+ } from "./studio-yk7037sg.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-ddgrc5hs.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-eqyybj2e.js.map
@@ -198,6 +198,10 @@ class AsyncDirective extends Directive {
198
198
  }
199
199
 
200
200
  // ../../node_modules/lit-html/development/directives/ref.js
201
+ var createRef = () => new Ref;
202
+
203
+ class Ref {
204
+ }
201
205
  var lastElementForContextAndCallback = new WeakMap;
202
206
 
203
207
  class RefDirective extends AsyncDirective {
@@ -377,7 +381,7 @@ class RepeatDirective extends Directive {
377
381
  }
378
382
  var repeat = directive(RepeatDirective);
379
383
 
380
- export { PartType, directive, Directive, isPrimitive, isSingleExpression, setCommittedValue, AsyncDirective, ref, repeat };
384
+ export { PartType, directive, Directive, isPrimitive, isSingleExpression, setCommittedValue, AsyncDirective, createRef, ref, repeat };
381
385
 
382
- //# debugId=31D24FE1EC80EAFA64756E2164756E21
383
- //# sourceMappingURL=studio-p471gg5n.js.map
386
+ //# debugId=9ADF88F72D5F364E64756E2164756E21
387
+ //# sourceMappingURL=studio-kvfx9z2c.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-yz9s88s0.js";
3
+ } from "./studio-yk7037sg.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-kwavhmdr.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  live
3
- } from "./studio-xmvbhg31.js";
3
+ } from "./studio-c31yb4t6.js";
4
4
  import {
5
5
  BLESSED_GLOBALS,
6
6
  BLESSED_OPERATORS,
@@ -8,20 +8,20 @@ import {
8
8
  intlHelpersClause,
9
9
  rectOf,
10
10
  renderEmptyState
11
- } from "./studio-yz9s88s0.js";
11
+ } from "./studio-yk7037sg.js";
12
12
  import {
13
13
  LANGUAGE_TAG_PATTERN,
14
14
  activeTab,
15
15
  getLayerSlot
16
- } from "./studio-5kt960pk.js";
16
+ } from "./studio-ddgrc5hs.js";
17
17
  import {
18
18
  classMap,
19
19
  ifDefined,
20
20
  styleMap
21
- } from "./studio-ckwz4d3x.js";
21
+ } from "./studio-twsafr1e.js";
22
22
  import {
23
23
  ref
24
- } from "./studio-p471gg5n.js";
24
+ } from "./studio-kvfx9z2c.js";
25
25
  import {
26
26
  html,
27
27
  nothing,
@@ -4229,4 +4229,4 @@ function resolveContextPointer(pointer, opts) {
4229
4229
  export { renderProvenanceChip, countProvenance, renderProvenanceDots, renderFieldRow, renderKvRow, renderStaticKvRow, chipSummary, renderFormulaChips, applyCatalogPick, globalEntries, namedFormulaEntries, formulaCatalog, openFormulaPalette, REDIRECT_STATUSES, VALUE_SOURCE_LABELS, slotMode, capsForPosition, isActionExpression, expressionHint, renderOperandEditor, renderExpressionEditor, switchSlotMode, renderDynamicSlot, registerFormControl, getFormControl, referenceTarget, NULL_FORM_CONTEXT, renderForm, resolveContextPointer };
4230
4230
 
4231
4231
  //# debugId=D548DF8319DDE4D664756E2164756E21
4232
- //# sourceMappingURL=studio-300zsz1k.js.map
4232
+ //# sourceMappingURL=studio-ky68mp85.js.map
@@ -19,10 +19,10 @@ import {
19
19
  renderOperandEditor,
20
20
  resolveContextPointer,
21
21
  slotMode
22
- } from "./studio-300zsz1k.js";
22
+ } from "./studio-ky68mp85.js";
23
23
  import {
24
24
  live
25
- } from "./studio-xmvbhg31.js";
25
+ } from "./studio-c31yb4t6.js";
26
26
  import {
27
27
  IMAGE_EXTENSIONS,
28
28
  MEDIA_EXTENSIONS,
@@ -43,7 +43,7 @@ import {
43
43
  uploadAssets,
44
44
  usageFiles,
45
45
  usageHeadline
46
- } from "./studio-qhh8r5fz.js";
46
+ } from "./studio-102jzb8r.js";
47
47
  import {
48
48
  attachInstruction,
49
49
  canvasModeOfTab,
@@ -64,7 +64,7 @@ import {
64
64
  requestCanvasEval,
65
65
  staleSelectionMessage,
66
66
  tabOfPane
67
- } from "./studio-yz9s88s0.js";
67
+ } from "./studio-yk7037sg.js";
68
68
  import {
69
69
  BUFFER_COMMIT,
70
70
  NAVIGATOR_STATEMENTS_REGION,
@@ -129,17 +129,17 @@ import {
129
129
  varDisplayName,
130
130
  view,
131
131
  workspace
132
- } from "./studio-5kt960pk.js";
132
+ } from "./studio-ddgrc5hs.js";
133
133
  import {
134
134
  classMap,
135
135
  ifDefined
136
- } from "./studio-ckwz4d3x.js";
136
+ } from "./studio-twsafr1e.js";
137
137
  import {
138
138
  Directive,
139
139
  directive,
140
140
  ref,
141
141
  setCommittedValue
142
- } from "./studio-p471gg5n.js";
142
+ } from "./studio-kvfx9z2c.js";
143
143
  import {
144
144
  html,
145
145
  nothing,
@@ -172,7 +172,7 @@ import {
172
172
  loadExtensions,
173
173
  loadMonaco,
174
174
  mountStillWanted
175
- } from "./studio-tqemhphj.js";
175
+ } from "./studio-6gcrk1bq.js";
176
176
  import {
177
177
  getPlatform
178
178
  } from "./studio-sas7mt3k.js";
@@ -4961,7 +4961,7 @@ function renderLinkTargetField(node, path) {
4961
4961
  <sp-picker
4962
4962
  class="link-target-kind"
4963
4963
  size="s"
4964
- value=${kind}
4964
+ .value=${live(kind)}
4965
4965
  @change=${(e) => {
4966
4966
  const nextKind = e.target.value;
4967
4967
  commit(nextKind, value);
@@ -4981,7 +4981,7 @@ function renderLinkTargetField(node, path) {
4981
4981
  <sp-picker
4982
4982
  class="link-target-value"
4983
4983
  size="s"
4984
- value=${value}
4984
+ .value=${live(value)}
4985
4985
  @change=${(e) => commit("internal", e.target.value)}
4986
4986
  >
4987
4987
  ${knownValue ? html`<sp-menu-item value=${value}>${value}</sp-menu-item>` : nothing}
@@ -5020,7 +5020,7 @@ function renderTargetField(node, path, entry) {
5020
5020
  <sp-picker
5021
5021
  class="link-target-window"
5022
5022
  size="s"
5023
- value=${current}
5023
+ .value=${live(current)}
5024
5024
  @change=${(e) => transactDoc(activeTab.value, (t) => mutateUpdateAttribute(t, path, "target", e.target.value || undefined))}
5025
5025
  >
5026
5026
  ${options.map((o) => html`<sp-menu-item value=${o}>${o}</sp-menu-item>`)}
@@ -5128,10 +5128,10 @@ function renderUsagesSection(tagName, componentPath) {
5128
5128
  `;
5129
5129
  }
5130
5130
  function openUsage(path) {
5131
- import("./files-zeg88k2d.js").then((m) => m.openFileInTab(path));
5131
+ import("./files-jdbtammm.js").then((m) => m.openFileInTab(path));
5132
5132
  }
5133
5133
  function showLogicTab() {
5134
- import("./right-panel-faf816ch.js").then((m) => m.setInspectorTab("events"));
5134
+ import("./right-panel-hn3y3j0j.js").then((m) => m.setInspectorTab("events"));
5135
5135
  }
5136
5136
  function renderPropertiesPanelTemplate(ctx) {
5137
5137
  const tab = activeTab.value;
@@ -6999,5 +6999,5 @@ function registerSignalsCommands(registry) {
6999
6999
 
7000
7000
  export { isSchemeQuery, schemeOfQuery, parseMediaEntries, DERIVE_PRESETS, PRESET_LABELS, declaredMedia, installDerivationEffects, presetRefusal, deriveRefusal, pinRefusal, derivationCommands, invalidateMediaCache, renderMediaPicker, spTextField, spTextArea, spNumberField, unwrapSignal, dataTypeLabel, registerDataExplorerCommands, registerDataPanel, livePreviewExpression, closeFunctionEditor, logicTarget, revealLogicPanel, openLogicTarget, registerLogicPanel, registerFormulaEditorCommands, JxColorPopover, isColorPopoverOpen, css_meta_default, initCssData, getCssInitialMap, allConditionsPass, autoOpenSections, getLonghands, expandShorthand, compressShorthand, expandBorderSide, compressBorderSide, widgetForType2 as widgetForType, renderStatementEditor, mapSignalsFor, bindableSignalNames, defaultAsString, invalidatePageRouteCache, renderPropertiesPanelTemplate, isInspectorSectionOpen, setInspectorSection, inspectorCommands, registerInspectorCommands, defCategory, defBadgeLabel, isCustomElementDoc, collectCssParts, renderSignalsTemplate, registerSignalsCommands };
7001
7001
 
7002
- //# debugId=0798C27627C2560064756E2164756E21
7003
- //# sourceMappingURL=studio-x0et2z9g.js.map
7002
+ //# debugId=9BF36A7266D05ECB64756E2164756E21
7003
+ //# sourceMappingURL=studio-ng5gbxkj.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-eqyybj2e.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-yk7037sg.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-ddgrc5hs.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-6gcrk1bq.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-2stf3ahg.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-q07vj7p9.js.map