@jxsuite/studio 2.4.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/Overlay.dev-723bv0df.js +23 -0
  3. package/dist/chunks/cf-settings-45fgyx8y.js +21 -0
  4. package/dist/chunks/{components-z6cnkyy1.js → components-zmx10t62.js} +6 -5
  5. package/dist/chunks/content-source-t88vb2dr.js +49 -0
  6. package/dist/chunks/{convert-to-repeater-k10dvcc7.js → convert-to-repeater-dhw1nrz9.js} +27 -18
  7. package/dist/chunks/entry-commands-6z6bhxg0.js +46 -0
  8. package/dist/chunks/{extension-sections-0ada0xcw.js → extension-sections-3ydgjbdy.js} +32 -23
  9. package/dist/chunks/file-ops-rskmhxyq.js +48 -0
  10. package/dist/chunks/files-0cratsr0.js +92 -0
  11. package/dist/chunks/{format-host-wewba4nq.js → format-host-tgcmfs4p.js} +3 -3
  12. package/dist/chunks/fs-events-hrrg328g.js +21 -0
  13. package/dist/chunks/{git-panel-2dh1aw50.js → git-panel-0yywyk76.js} +21 -15
  14. package/dist/chunks/{jx-validate-jj9rnt4n.js → jx-validate-8q2g05x1.js} +6 -4
  15. package/dist/chunks/layers-panel-z3tqe5cd.js +67 -0
  16. package/dist/chunks/layers-q75tj2mf.js +45 -0
  17. package/dist/chunks/lit-html-j055mkh8.js +22 -0
  18. package/dist/chunks/monaco-buffer-dqw0xxpx.js +25 -0
  19. package/dist/chunks/{monaco-setup-a5wkmbgh.js → monaco-setup-rws7k4br.js} +4 -4
  20. package/dist/chunks/notify-yjm79n4s.js +30 -0
  21. package/dist/chunks/parse-24d0gay3.js +19 -0
  22. package/dist/chunks/platform-ba1j1gbh.js +16 -0
  23. package/dist/chunks/publish-panel-54jvhskq.js +28 -0
  24. package/dist/chunks/quick-search-cgfmjwq5.js +65 -0
  25. package/dist/chunks/references-3qx8fkyp.js +29 -0
  26. package/dist/chunks/right-panel-cqp8bc4v.js +46 -0
  27. package/dist/chunks/sp-overlay.dev-yztmtrs1.js +18 -0
  28. package/dist/chunks/sp-popover.dev-n2etmqdp.js +9 -0
  29. package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +15 -0
  30. package/dist/chunks/sp-tooltip.dev-xcvpnqr0.js +15 -0
  31. package/dist/chunks/{sp-tray.dev-64v4pxw8.js → sp-tray.dev-tkbscm06.js} +5 -5
  32. package/dist/chunks/{studio-f5yyvqxv.js → studio-1hbqnt19.js} +37 -31
  33. package/dist/chunks/studio-2zkz8evn.js +3163 -0
  34. package/dist/chunks/{studio-0b6fs05q.js → studio-4pqqxbrt.js} +23 -15
  35. package/dist/chunks/{studio-kvfx9z2c.js → studio-4rzyrtjz.js} +70 -31
  36. package/dist/chunks/{studio-ef8t53vc.js → studio-5q69gfag.js} +60 -56
  37. package/dist/chunks/{studio-v2c5pmjj.js → studio-5rywrkxz.js} +565 -133
  38. package/dist/chunks/{studio-6kv3apa9.js → studio-68n67094.js} +25 -9
  39. package/dist/chunks/{studio-0rqqhrdy.js → studio-7nte2hj4.js} +2 -2
  40. package/dist/chunks/{studio-hyn3vhwr.js → studio-8swrjbny.js} +31 -18
  41. package/dist/chunks/studio-92ab2jqe.js +282 -0
  42. package/dist/chunks/{studio-sas7mt3k.js → studio-9ab8gqsm.js} +2 -2
  43. package/dist/chunks/{studio-28xc8ws4.js → studio-9c4k4vhv.js} +14 -10
  44. package/dist/chunks/studio-9n4mrmnb.js +184 -0
  45. package/dist/chunks/{studio-tr20m8g8.js → studio-9r6j5ev1.js} +37 -2
  46. package/dist/chunks/{studio-aweyr4v1.js → studio-ahjfdy6e.js} +9 -7
  47. package/dist/chunks/{studio-s519zc99.js → studio-bgxt93ga.js} +3 -3
  48. package/dist/chunks/{studio-26sv44br.js → studio-cb12yz9w.js} +8543 -8784
  49. package/dist/chunks/studio-cft9r4r7.js +119 -0
  50. package/dist/chunks/{studio-rqemfhz6.js → studio-eenfkt4e.js} +6 -6
  51. package/dist/chunks/studio-eesa1myv.js +498 -0
  52. package/dist/chunks/{studio-ay8wcr2b.js → studio-eqq1w638.js} +7 -9
  53. package/dist/chunks/{studio-ke244pam.js → studio-ex8zyp98.js} +51 -25
  54. package/dist/chunks/studio-gv8vvshc.js +118 -0
  55. package/dist/chunks/studio-hbtp0eh1.js +1315 -0
  56. package/dist/chunks/{studio-cz2j1c0g.js → studio-htsf0w6m.js} +75 -123
  57. package/dist/chunks/{studio-pyrw8h0w.js → studio-kjjsjak4.js} +528 -212
  58. package/dist/chunks/{studio-5x5774ak.js → studio-kryvsw6j.js} +3 -3
  59. package/dist/chunks/studio-kyh9avvv.js +28 -0
  60. package/dist/chunks/{studio-jnakhg87.js → studio-kyk2v92a.js} +14 -14
  61. package/dist/chunks/{studio-twsafr1e.js → studio-m3hwn7y1.js} +3 -3
  62. package/dist/chunks/{studio-tzx3xmvx.js → studio-mmv72a27.js} +8 -8
  63. package/dist/chunks/{studio-vhk5fmfv.js → studio-n8b9wqwy.js} +5 -5
  64. package/dist/chunks/{studio-cjm7fdjf.js → studio-p4ngc046.js} +8 -104
  65. package/dist/chunks/{studio-sccge2wf.js → studio-p8j86wag.js} +2 -2
  66. package/dist/chunks/{studio-v1va0vhd.js → studio-pdfjntbk.js} +75 -139
  67. package/dist/chunks/studio-q43a5y9h.js +394 -0
  68. package/dist/chunks/studio-q7v10cg2.js +106 -0
  69. package/dist/chunks/{studio-2w11grav.js → studio-qq6jym04.js} +3 -3
  70. package/dist/chunks/studio-r1r7afxx.js +1066 -0
  71. package/dist/chunks/{studio-3fk1ac9z.js → studio-rdx8jcxy.js} +4 -4
  72. package/dist/chunks/{studio-4mqb9a0j.js → studio-rn9ta2mz.js} +4 -4
  73. package/dist/chunks/studio-sf7zjgv1.js +91 -0
  74. package/dist/chunks/studio-t7qb9db8.js +665 -0
  75. package/dist/chunks/studio-tmc5emrw.js +8 -0
  76. package/dist/chunks/{studio-wdt9y92a.js → studio-txwkm6p9.js} +2 -2
  77. package/dist/chunks/{studio-dgj7gq44.js → studio-v38hmvx1.js} +7 -7
  78. package/dist/chunks/{studio-7ejemhej.js → studio-vadzgkrz.js} +6 -6
  79. package/dist/chunks/studio-wcy8trfx.js +263 -0
  80. package/dist/chunks/{studio-hb7c46jy.js → studio-wx5609xd.js} +21 -15
  81. package/dist/chunks/studio-xrapxwwc.js +1539 -0
  82. package/dist/chunks/{studio-ws6ef6js.js → studio-yxrkyv8a.js} +41 -29
  83. package/dist/chunks/{studio-xm3dbxvn.js → studio-zczps70q.js} +2 -2
  84. package/dist/chunks/workspace-xpres40v.js +89 -0
  85. package/dist/iframe-entry.js +450 -48
  86. package/dist/studio.js +2455 -1761
  87. package/package.json +16 -15
  88. package/src/browse/library-layouts.ts +3 -3
  89. package/src/browse/library-pane.ts +59 -5
  90. package/src/browse/library-preview.ts +19 -3
  91. package/src/canvas/asset-refs.ts +119 -0
  92. package/src/canvas/asset-resolve.ts +256 -0
  93. package/src/canvas/canvas-live-render.ts +23 -15
  94. package/src/canvas/canvas-render.ts +23 -1
  95. package/src/canvas/iframe-entry.ts +1 -0
  96. package/src/canvas/iframe-host.ts +4 -0
  97. package/src/canvas/iframe-patch.ts +47 -21
  98. package/src/canvas/iframe-protocol.ts +9 -0
  99. package/src/canvas/iframe-render.ts +50 -16
  100. package/src/commands/app-commands.ts +4 -0
  101. package/src/commands/command-args.ts +29 -0
  102. package/src/commands/context.ts +15 -1
  103. package/src/commands/defaults.ts +29 -1
  104. package/src/commands/levels.ts +16 -0
  105. package/src/commands/live-context.ts +3 -0
  106. package/src/content/collection-match.ts +267 -0
  107. package/src/content/entry-commands.ts +38 -29
  108. package/src/content/entry-fields.ts +6 -0
  109. package/src/editor/file-drop-action.ts +2 -1
  110. package/src/editor/shortcuts.ts +5 -0
  111. package/src/files/file-ops.ts +10 -42
  112. package/src/files/files.ts +487 -61
  113. package/src/files/fs-events.ts +9 -0
  114. package/src/files/gitignore.ts +432 -0
  115. package/src/files/media-paths.ts +37 -14
  116. package/src/files/media-upload.ts +47 -6
  117. package/src/files/serialize-document.ts +60 -0
  118. package/src/format/convert-file.ts +511 -0
  119. package/src/format/format-choices.ts +199 -0
  120. package/src/grid/grid-idle.ts +45 -0
  121. package/src/grid/grid-view.ts +35 -0
  122. package/src/grid/schema-columns.ts +2 -1
  123. package/src/grid/sources/content-source.ts +24 -3
  124. package/src/media/media-open.ts +58 -0
  125. package/src/media/media-pane.ts +310 -0
  126. package/src/new-project/import-tab.ts +333 -160
  127. package/src/new-project/new-project-modal.ts +27 -34
  128. package/src/packages/ensure-deps.ts +14 -7
  129. package/src/packages/jxsuite-update.ts +11 -11
  130. package/src/page-params.ts +10 -46
  131. package/src/panels/activity-bar.ts +45 -16
  132. package/src/panels/ai-chat/attached-context.ts +6 -1
  133. package/src/panels/ai-chat/chat-view.ts +255 -13
  134. package/src/panels/ai-chat/composer.ts +21 -80
  135. package/src/panels/ai-panel.ts +116 -2
  136. package/src/panels/frontmatter-fields.ts +6 -2
  137. package/src/panels/navigator-panels.ts +7 -6
  138. package/src/panels/properties-panel.ts +8 -2
  139. package/src/panels/seo-modal.ts +5 -6
  140. package/src/panels/settings-menu.ts +799 -0
  141. package/src/panels/signals-panel.ts +2 -1
  142. package/src/panels/toolbar.ts +135 -15
  143. package/src/platforms/cloud.ts +34 -3
  144. package/src/platforms/devserver.ts +72 -34
  145. package/src/preview/preview-overlay.ts +226 -0
  146. package/src/services/ai-ask.ts +247 -0
  147. package/src/services/ai-import-tools.ts +494 -0
  148. package/src/services/ai-models.ts +101 -11
  149. package/src/services/ai-project-tools.ts +20 -26
  150. package/src/services/ai-settings.ts +69 -71
  151. package/src/services/ai-system-prompt.ts +88 -2
  152. package/src/services/ai-turn-signal.ts +70 -0
  153. package/src/services/cf-settings.ts +19 -37
  154. package/src/services/connection.ts +74 -0
  155. package/src/services/context-manager.ts +89 -0
  156. package/src/services/document-assistant.ts +49 -7
  157. package/src/services/idle.ts +6 -1
  158. package/src/services/import-client.ts +33 -6
  159. package/src/services/import-run.ts +158 -0
  160. package/src/services/import-seed.ts +120 -0
  161. package/src/services/jx-validate.ts +58 -6
  162. package/src/services/project-adoption.ts +71 -0
  163. package/src/services/references.ts +0 -0
  164. package/src/services/settings/definitions.ts +181 -0
  165. package/src/services/settings/kernel.ts +335 -0
  166. package/src/services/settings/write-queue.ts +116 -0
  167. package/src/services/tool-executor.ts +34 -2
  168. package/src/settings/contexts-section.ts +45 -3
  169. package/src/settings/dependencies-editor.ts +43 -23
  170. package/src/settings/general-settings.ts +30 -12
  171. package/src/settings/preferences-accounts.ts +6 -19
  172. package/src/settings/preferences-dialog.ts +18 -41
  173. package/src/settings/preferences-keymap.ts +8 -18
  174. package/src/settings/preferences-sections.ts +57 -0
  175. package/src/settings/schema-field-ui.ts +2 -2
  176. package/src/settings/settings-document.ts +65 -9
  177. package/src/shell.ts +6 -14
  178. package/src/studio.ts +65 -7
  179. package/src/tabs/transact.ts +42 -19
  180. package/src/types.ts +164 -8
  181. package/src/ui/ai-credentials-form.ts +52 -27
  182. package/src/ui/ai-model-picker.ts +162 -0
  183. package/src/ui/choice-field.ts +72 -0
  184. package/src/ui/layers.ts +83 -5
  185. package/src/ui/media-picker.ts +6 -11
  186. package/src/utils/studio-utils.ts +43 -31
  187. package/styles/forced-colors.css +7 -0
  188. package/styles/overlays.css +256 -0
  189. package/styles/panels.css +13 -1
  190. package/styles/shell.css +111 -0
  191. package/dist/chunks/Overlay.dev-d2ajy6sj.js +0 -23
  192. package/dist/chunks/cf-settings-g5fbf2zp.js +0 -17
  193. package/dist/chunks/content-source-k9724vcv.js +0 -39
  194. package/dist/chunks/files-yew27sn9.js +0 -69
  195. package/dist/chunks/layers-panel-qnsghwwd.js +0 -59
  196. package/dist/chunks/publish-panel-a0pdft5w.js +0 -21
  197. package/dist/chunks/quick-search-9avyc4pc.js +0 -54
  198. package/dist/chunks/right-panel-kcnhtc5j.js +0 -38
  199. package/dist/chunks/sp-overlay.dev-s18hymn9.js +0 -18
  200. package/dist/chunks/sp-popover.dev-dj9x7e7a.js +0 -9
  201. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +0 -15
  202. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +0 -15
  203. package/dist/chunks/studio-a7pzveq1.js +0 -110
  204. package/dist/chunks/studio-c31yb4t6.js +0 -55
  205. package/dist/chunks/studio-ra7ar50f.js +0 -6682
  206. package/src/canvas/content-assets.ts +0 -263
  207. package/src/canvas/site-style-css.ts +0 -121
  208. package/src/services/settings-store.ts +0 -99
@@ -863,7 +863,7 @@ if (ENABLE_EXTRA_SECURITY_HOOKS) {
863
863
  }
864
864
  }
865
865
 
866
- export { html, noChange, nothing, _$LH, render };
866
+ export { html, svg, mathml, noChange, nothing, _$LH, render };
867
867
 
868
- //# debugId=1DBF1933B28907E764756E2164756E21
869
- //# sourceMappingURL=studio-5x5774ak.js.map
868
+ //# debugId=1C0B1A035614AD0F64756E2164756E21
869
+ //# sourceMappingURL=studio-kryvsw6j.js.map
@@ -0,0 +1,28 @@
1
+ import {
2
+ SETTINGS,
3
+ clearSettings,
4
+ readStoredSetting,
5
+ setSetting
6
+ } from "./studio-92ab2jqe.js";
7
+
8
+ // src/services/cf-settings.ts
9
+ function getCfToken() {
10
+ return readStoredSetting(SETTINGS.cfToken);
11
+ }
12
+ function setCfToken(token) {
13
+ setSetting(SETTINGS.cfToken, token || "");
14
+ }
15
+ function getCfAccountId() {
16
+ return readStoredSetting(SETTINGS.cfAccountId);
17
+ }
18
+ function setCfAccountId(accountId) {
19
+ setSetting(SETTINGS.cfAccountId, accountId || "");
20
+ }
21
+ function clearCfConnection() {
22
+ clearSettings([SETTINGS.cfToken, SETTINGS.cfAccountId]);
23
+ }
24
+
25
+ export { getCfToken, setCfToken, getCfAccountId, setCfAccountId, clearCfConnection };
26
+
27
+ //# debugId=A4A3DDFE5D44524164756E2164756E21
28
+ //# sourceMappingURL=studio-kyh9avvv.js.map
@@ -3,39 +3,39 @@ import {
3
3
  getRecentProjects,
4
4
  openFileInTab,
5
5
  trackRecentFile
6
- } from "./studio-v2c5pmjj.js";
7
- import {
8
- live
9
- } from "./studio-c31yb4t6.js";
6
+ } from "./studio-5rywrkxz.js";
10
7
  import {
11
8
  activeRegistry,
12
- activeTab,
13
9
  getLayerSlot
14
- } from "./studio-ra7ar50f.js";
10
+ } from "./studio-t7qb9db8.js";
11
+ import {
12
+ activeTab
13
+ } from "./studio-2zkz8evn.js";
15
14
  import {
16
15
  classMap
17
- } from "./studio-twsafr1e.js";
16
+ } from "./studio-m3hwn7y1.js";
18
17
  import {
18
+ live,
19
19
  ref
20
- } from "./studio-kvfx9z2c.js";
20
+ } from "./studio-4rzyrtjz.js";
21
21
  import {
22
22
  html,
23
23
  nothing,
24
24
  render
25
- } from "./studio-5x5774ak.js";
25
+ } from "./studio-kryvsw6j.js";
26
26
  import {
27
27
  flattenTree,
28
28
  nodeLabel,
29
29
  projectState
30
- } from "./studio-cjm7fdjf.js";
30
+ } from "./studio-p4ngc046.js";
31
31
  import {
32
32
  documentExtensions,
33
33
  formatByExtension,
34
34
  loadFormats
35
- } from "./studio-rqemfhz6.js";
35
+ } from "./studio-eenfkt4e.js";
36
36
  import {
37
37
  getPlatform
38
- } from "./studio-sas7mt3k.js";
38
+ } from "./studio-9ab8gqsm.js";
39
39
 
40
40
  // src/panels/quick-search.ts
41
41
  var PALETTE_MODES = [
@@ -655,5 +655,5 @@ function renderOverlay() {
655
655
 
656
656
  export { PALETTE_MODES, modeSpec, resolvePaletteMode, fuzzyScore, rankBy, paletteArgs, getRecentCommands, initQuickSearch, openQuickSearch, closeQuickSearch, isQuickSearchOpen };
657
657
 
658
- //# debugId=D01DE0145FC9DB1664756E2164756E21
659
- //# sourceMappingURL=studio-jnakhg87.js.map
658
+ //# debugId=0B1AF04E34989B3E64756E2164756E21
659
+ //# sourceMappingURL=studio-kyk2v92a.js.map
@@ -2,11 +2,11 @@ import {
2
2
  Directive,
3
3
  PartType,
4
4
  directive
5
- } from "./studio-kvfx9z2c.js";
5
+ } from "./studio-4rzyrtjz.js";
6
6
  import {
7
7
  noChange,
8
8
  nothing
9
- } from "./studio-5x5774ak.js";
9
+ } from "./studio-kryvsw6j.js";
10
10
 
11
11
  // ../../node_modules/lit-html/development/directives/if-defined.js
12
12
  var ifDefined = (value) => value ?? nothing;
@@ -117,4 +117,4 @@ var classMap = directive(ClassMapDirective);
117
117
  export { ifDefined, styleMap, classMap };
118
118
 
119
119
  //# debugId=A0F1689B5230596A64756E2164756E21
120
- //# sourceMappingURL=studio-twsafr1e.js.map
120
+ //# sourceMappingURL=studio-m3hwn7y1.js.map
@@ -12,18 +12,18 @@ import {
12
12
  queryAssignedElements,
13
13
  queryAssignedNodes,
14
14
  state
15
- } from "./studio-xm3dbxvn.js";
15
+ } from "./studio-zczps70q.js";
16
16
  import {
17
17
  css
18
- } from "./studio-0rqqhrdy.js";
18
+ } from "./studio-7nte2hj4.js";
19
19
  import {
20
20
  ifDefined,
21
21
  styleMap
22
- } from "./studio-twsafr1e.js";
22
+ } from "./studio-m3hwn7y1.js";
23
23
  import {
24
24
  html,
25
25
  nothing
26
- } from "./studio-5x5774ak.js";
26
+ } from "./studio-kryvsw6j.js";
27
27
  import {
28
28
  __require,
29
29
  __toESM
@@ -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-s18hymn9.js");
388
+ await import("./sp-overlay.dev-yztmtrs1.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-d2ajy6sj.js");
3382
+ const { Overlay } = await import("./Overlay.dev-723bv0df.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-s18hymn9.js");
3387
+ import("./sp-overlay.dev-yztmtrs1.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-tzx3xmvx.js.map
4344
+ //# sourceMappingURL=studio-mmv72a27.js.map
@@ -9,16 +9,16 @@ import {
9
9
  SpectrumElement,
10
10
  property,
11
11
  query
12
- } from "./studio-xm3dbxvn.js";
12
+ } from "./studio-zczps70q.js";
13
13
  import {
14
14
  css
15
- } from "./studio-0rqqhrdy.js";
15
+ } from "./studio-7nte2hj4.js";
16
16
  import {
17
17
  ifDefined
18
- } from "./studio-twsafr1e.js";
18
+ } from "./studio-m3hwn7y1.js";
19
19
  import {
20
20
  html
21
- } from "./studio-5x5774ak.js";
21
+ } from "./studio-kryvsw6j.js";
22
22
 
23
23
  // ../../node_modules/@spectrum-web-components/progress-circle/src/progress-circle.css.js
24
24
  var e = css`
@@ -288,4 +288,4 @@ defineElement("sp-progress-circle", ProgressCircle);
288
288
  export { languageResolverUpdatedSymbol, LanguageResolutionController, ProgressCircle };
289
289
 
290
290
  //# debugId=D9778D0A36E46FD364756E2164756E21
291
- //# sourceMappingURL=studio-vhk5fmfv.js.map
291
+ //# sourceMappingURL=studio-n8b9wqwy.js.map
@@ -1,104 +1,8 @@
1
- // ../schema/src/guards.ts
2
- function isJsonObject(value) {
3
- return typeof value === "object" && value !== null && !Array.isArray(value);
4
- }
5
- function isRef(value) {
6
- return isJsonObject(value) && typeof value.$ref === "string";
7
- }
8
- function isFunctionDef(value) {
9
- return isJsonObject(value) && value.$prototype === "Function";
10
- }
11
- function isExpressionDef(value) {
12
- return isJsonObject(value) && isJsonObject(value.$expression);
13
- }
14
- function isNamedFormulaDef(value) {
15
- return isExpressionDef(value) && Array.isArray(value.parameters) && value.parameters.length > 0;
16
- }
17
- function hasStructuredBody(value) {
18
- return isFunctionDef(value) && Array.isArray(value.body);
19
- }
20
- function isPrototypeDef(value) {
21
- return isJsonObject(value) && typeof value.$prototype === "string" && value.$prototype !== "Function";
22
- }
23
- function isServerFnDef(value) {
24
- return isJsonObject(value) && value.timing === "server" && typeof value.$src === "string" && typeof value.$export === "string" && !value.$prototype;
25
- }
26
- var SCHEMA_KEYWORDS = new Set([
27
- "type",
28
- "enum",
29
- "minimum",
30
- "maximum",
31
- "minLength",
32
- "maxLength",
33
- "pattern",
34
- "format",
35
- "items",
36
- "properties",
37
- "required",
38
- "description",
39
- "title",
40
- "$comment"
41
- ]);
42
- function isMappedArray(value) {
43
- return isJsonObject(value) && value.$prototype === "Array";
44
- }
45
- function isTemplateString(value) {
46
- return typeof value === "string" && value.includes("${");
47
- }
48
- function bodyReturnsValue(body) {
49
- return /\breturn\b[^\S\n]*(?![;}\s]|$)/.test(body);
50
- }
51
- function isNestedStyle(value) {
52
- return typeof value === "object" && value !== null;
53
- }
54
- function getNestedStyle(style, key) {
55
- const value = style?.[key];
56
- return isNestedStyle(value) ? value : undefined;
57
- }
58
- function ensureNestedStyle(style, key) {
59
- const existing = style[key];
60
- if (isNestedStyle(existing)) {
61
- return existing;
62
- }
63
- const created = {};
64
- style[key] = created;
65
- return created;
66
- }
67
- function isEventBinding(value) {
68
- return isRef(value) || isFunctionDef(value) || isExpressionDef(value);
69
- }
70
- function getEventBinding(node, key) {
71
- const value = node[key];
72
- return isEventBinding(value) ? value : undefined;
73
- }
74
- function paramNames(parameters) {
75
- if (!parameters) {
76
- return [];
77
- }
78
- return parameters.map((p) => typeof p === "string" ? p : p.name);
79
- }
80
- function isTagExpression(tagName) {
81
- return isJsonObject(tagName) && isJsonObject(tagName.$expression);
82
- }
83
- function tagNameCandidates(tagName) {
84
- if (typeof tagName === "string") {
85
- return [tagName];
86
- }
87
- if (!isTagExpression(tagName)) {
88
- return [];
89
- }
90
- const expression = tagName.$expression;
91
- if (expression.operator === "?:") {
92
- return [...new Set([expression.value, expression.initial])];
93
- }
94
- return [...new Set([...Object.values(expression.cases), expression.default])];
95
- }
96
- function displayTagName(tagName) {
97
- return typeof tagName === "string" ? tagName : tagNameCandidates(tagName).join("|");
98
- }
99
- function isPrivateStateKey(key) {
100
- return key.startsWith("#");
101
- }
1
+ import {
2
+ displayTagName,
3
+ isEventBinding,
4
+ isRef
5
+ } from "./studio-q7v10cg2.js";
102
6
 
103
7
  // src/ui/timing.ts
104
8
  var INPUT_DEBOUNCE = 400;
@@ -445,7 +349,7 @@ function updateCanvas(tab, patch) {
445
349
  }
446
350
  }
447
351
 
448
- export { isJsonObject, isRef, isFunctionDef, isExpressionDef, isNamedFormulaDef, hasStructuredBody, isPrototypeDef, isServerFnDef, isMappedArray, isTemplateString, bodyReturnsValue, getNestedStyle, ensureNestedStyle, isEventBinding, getEventBinding, paramNames, isTagExpression, tagNameCandidates, displayTagName, isPrivateStateKey, LIVE_PREVIEW, POLL_GIT, getNodeAtPath, childList, normalizeArrayChildren, parentElementPath, childIndex, pathKey, pathsEqual, isAncestor, flattenTree, nodeLabel, projectState, setProjectState, requireProjectState, stripEventHandlers, activityBar, leftPanel, rightPanel, toolbarEl, statusbarEl, initShellRefs, VOID_ELEMENTS, COMMON_SELECTORS, isNestedSelector, debouncedStyleCommit, cancelStyleDebounce, rendersInFlight, registerRenderer, render, renderOnly, updateSession, updateUi, updateCanvas };
352
+ export { LIVE_PREVIEW, POLL_GIT, getNodeAtPath, childList, normalizeArrayChildren, parentElementPath, childIndex, pathKey, pathsEqual, isAncestor, flattenTree, nodeLabel, projectState, setProjectState, requireProjectState, stripEventHandlers, activityBar, leftPanel, rightPanel, toolbarEl, statusbarEl, initShellRefs, VOID_ELEMENTS, COMMON_SELECTORS, isNestedSelector, debouncedStyleCommit, cancelStyleDebounce, rendersInFlight, registerRenderer, render, renderOnly, updateSession, updateUi, updateCanvas };
449
353
 
450
- //# debugId=147E616828B71FA964756E2164756E21
451
- //# sourceMappingURL=studio-cjm7fdjf.js.map
354
+ //# debugId=6E6FF14C9164545D64756E2164756E21
355
+ //# sourceMappingURL=studio-p4ngc046.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-pyrw8h0w.js";
3
+ } from "./studio-kjjsjak4.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-sccge2wf.js.map
166
+ //# sourceMappingURL=studio-p8j86wag.js.map