@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
@@ -1,26 +1,34 @@
1
+ import {
2
+ collectionDirs,
3
+ createCollectionSource,
4
+ createPagesSource
5
+ } from "./studio-eesa1myv.js";
1
6
  import {
2
7
  cellToText,
3
8
  coerceCellInput,
4
- collectionDirs,
5
9
  columnsFromSchema,
6
- createCollectionSource,
7
10
  createGridController,
8
- createPagesSource,
9
11
  inferColumnsFromRows,
12
+ makeGridTabId
13
+ } from "./studio-cb12yz9w.js";
14
+ import {
10
15
  isRecentLocal,
11
- makeGridTabId,
12
16
  markLocalMutation
13
- } from "./studio-26sv44br.js";
17
+ } from "./studio-q43a5y9h.js";
14
18
  import {
15
19
  MEDIA_EXTENSIONS,
16
20
  extensionOf
17
- } from "./studio-cz2j1c0g.js";
21
+ } from "./studio-htsf0w6m.js";
22
+ import {
23
+ openModal
24
+ } from "./studio-t7qb9db8.js";
25
+ import {
26
+ errorMessage
27
+ } from "./studio-9n4mrmnb.js";
18
28
  import {
19
29
  activateTab,
20
30
  argsSchema,
21
- errorMessage,
22
31
  findContentTypeSchema,
23
- openModal,
24
32
  openTab,
25
33
  optionalStringArg,
26
34
  resolveI18n,
@@ -28,20 +36,20 @@ import {
28
36
  stringArg,
29
37
  stringProperty,
30
38
  workspace
31
- } from "./studio-ra7ar50f.js";
39
+ } from "./studio-2zkz8evn.js";
32
40
  import {
33
41
  html
34
- } from "./studio-5x5774ak.js";
42
+ } from "./studio-kryvsw6j.js";
35
43
  import {
36
44
  projectState
37
- } from "./studio-cjm7fdjf.js";
45
+ } from "./studio-p4ngc046.js";
38
46
  import {
39
47
  formatForPath,
40
48
  loadFormats
41
- } from "./studio-rqemfhz6.js";
49
+ } from "./studio-eenfkt4e.js";
42
50
  import {
43
51
  getPlatform
44
- } from "./studio-sas7mt3k.js";
52
+ } from "./studio-9ab8gqsm.js";
45
53
 
46
54
  // src/services/data-service.ts
47
55
  function platformOrNull() {
@@ -996,5 +1004,5 @@ function registerGridCommands(registry) {
996
1004
 
997
1005
  export { dataSurfaceAvailable, testConnection, pushSchema, deriveSecretEnvName, parseCsv, createCsvFileSource, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_KEYS, libraryCategory, uploadDirForCategory, scanLibrary, filterLibrary, LIBRARY_LAYOUTS, LIBRARY_LAYOUT_LABELS, PREVIEW_LAYOUTS, projectLocales, libraryLocales, groupByDate, groupByCategory, libraryColumns, createLibrarySource, openCsvGridTab, openLibraryTab, openPagesGrid, openGridSourcePicker, registerGridCommands };
998
1006
 
999
- //# debugId=B5A73986FCDCB07464756E2164756E21
1000
- //# sourceMappingURL=studio-0b6fs05q.js.map
1007
+ //# debugId=0B0430BF12E1534864756E2164756E21
1008
+ //# sourceMappingURL=studio-4pqqxbrt.js.map
@@ -2,7 +2,39 @@ import {
2
2
  _$LH,
3
3
  noChange,
4
4
  nothing
5
- } from "./studio-5x5774ak.js";
5
+ } from "./studio-kryvsw6j.js";
6
+
7
+ // ../../node_modules/lit-html/development/directive.js
8
+ var PartType = {
9
+ ATTRIBUTE: 1,
10
+ CHILD: 2,
11
+ PROPERTY: 3,
12
+ BOOLEAN_ATTRIBUTE: 4,
13
+ EVENT: 5,
14
+ ELEMENT: 6
15
+ };
16
+ var directive = (c) => (...values) => ({
17
+ ["_$litDirective$"]: c,
18
+ values
19
+ });
20
+
21
+ class Directive {
22
+ constructor(_partInfo) {}
23
+ get _$isConnected() {
24
+ return this._$parent._$isConnected;
25
+ }
26
+ _$initialize(part, parent, attributeIndex) {
27
+ this.__part = part;
28
+ this._$parent = parent;
29
+ this.__attributeIndex = attributeIndex;
30
+ }
31
+ _$resolve(part, props) {
32
+ return this.update(part, props);
33
+ }
34
+ update(_part, props) {
35
+ return this.render(...props);
36
+ }
37
+ }
6
38
 
7
39
  // ../../node_modules/lit-html/development/directive-helpers.js
8
40
  var { _ChildPart: ChildPart } = _$LH;
@@ -53,37 +85,44 @@ var removePart = (part) => {
53
85
  part._$startNode.remove();
54
86
  };
55
87
 
56
- // ../../node_modules/lit-html/development/directive.js
57
- var PartType = {
58
- ATTRIBUTE: 1,
59
- CHILD: 2,
60
- PROPERTY: 3,
61
- BOOLEAN_ATTRIBUTE: 4,
62
- EVENT: 5,
63
- ELEMENT: 6
64
- };
65
- var directive = (c) => (...values) => ({
66
- ["_$litDirective$"]: c,
67
- values
68
- });
69
-
70
- class Directive {
71
- constructor(_partInfo) {}
72
- get _$isConnected() {
73
- return this._$parent._$isConnected;
74
- }
75
- _$initialize(part, parent, attributeIndex) {
76
- this.__part = part;
77
- this._$parent = parent;
78
- this.__attributeIndex = attributeIndex;
88
+ // ../../node_modules/lit-html/development/directives/live.js
89
+ class LiveDirective extends Directive {
90
+ constructor(partInfo) {
91
+ super(partInfo);
92
+ if (!(partInfo.type === PartType.PROPERTY || partInfo.type === PartType.ATTRIBUTE || partInfo.type === PartType.BOOLEAN_ATTRIBUTE)) {
93
+ throw new Error("The `live` directive is not allowed on child or event bindings");
94
+ }
95
+ if (!isSingleExpression(partInfo)) {
96
+ throw new Error("`live` bindings can only contain a single expression");
97
+ }
79
98
  }
80
- _$resolve(part, props) {
81
- return this.update(part, props);
99
+ render(value) {
100
+ return value;
82
101
  }
83
- update(_part, props) {
84
- return this.render(...props);
102
+ update(part, [value]) {
103
+ if (value === noChange || value === nothing) {
104
+ return value;
105
+ }
106
+ const element = part.element;
107
+ const name = part.name;
108
+ if (part.type === PartType.PROPERTY) {
109
+ if (value === element[name]) {
110
+ return noChange;
111
+ }
112
+ } else if (part.type === PartType.BOOLEAN_ATTRIBUTE) {
113
+ if (!!value === element.hasAttribute(name)) {
114
+ return noChange;
115
+ }
116
+ } else if (part.type === PartType.ATTRIBUTE) {
117
+ if (element.getAttribute(name) === String(value)) {
118
+ return noChange;
119
+ }
120
+ }
121
+ setCommittedValue(part);
122
+ return value;
85
123
  }
86
124
  }
125
+ var live = directive(LiveDirective);
87
126
 
88
127
  // ../../node_modules/lit-html/development/async-directive.js
89
128
  var DEV_MODE = true;
@@ -381,7 +420,7 @@ class RepeatDirective extends Directive {
381
420
  }
382
421
  var repeat = directive(RepeatDirective);
383
422
 
384
- export { PartType, directive, Directive, isPrimitive, isSingleExpression, setCommittedValue, AsyncDirective, createRef, ref, repeat };
423
+ export { PartType, directive, Directive, isPrimitive, setCommittedValue, live, AsyncDirective, createRef, ref, repeat };
385
424
 
386
- //# debugId=9ADF88F72D5F364E64756E2164756E21
387
- //# sourceMappingURL=studio-kvfx9z2c.js.map
425
+ //# debugId=5774C3287549C8FE64756E2164756E21
426
+ //# sourceMappingURL=studio-4rzyrtjz.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- live
3
- } from "./studio-c31yb4t6.js";
4
1
  import {
5
2
  BLESSED_GLOBALS,
6
3
  BLESSED_OPERATORS,
@@ -8,35 +5,38 @@ import {
8
5
  intlHelpersClause,
9
6
  rectOf,
10
7
  renderEmptyState
11
- } from "./studio-pyrw8h0w.js";
8
+ } from "./studio-kjjsjak4.js";
12
9
  import {
13
- LANGUAGE_TAG_PATTERN,
14
- activeTab,
15
10
  getLayerSlot
16
- } from "./studio-ra7ar50f.js";
11
+ } from "./studio-t7qb9db8.js";
12
+ import {
13
+ LANGUAGE_TAG_PATTERN,
14
+ activeTab
15
+ } from "./studio-2zkz8evn.js";
17
16
  import {
18
17
  classMap,
19
18
  ifDefined,
20
19
  styleMap
21
- } from "./studio-twsafr1e.js";
20
+ } from "./studio-m3hwn7y1.js";
22
21
  import {
22
+ live,
23
23
  ref
24
- } from "./studio-kvfx9z2c.js";
24
+ } from "./studio-4rzyrtjz.js";
25
25
  import {
26
26
  html,
27
27
  nothing,
28
28
  render
29
- } from "./studio-5x5774ak.js";
29
+ } from "./studio-kryvsw6j.js";
30
+ import {
31
+ cloneValue
32
+ } from "./studio-5ehhackm.js";
30
33
  import {
31
34
  isFunctionDef,
32
35
  isJsonObject,
33
36
  isNamedFormulaDef,
34
37
  isRef,
35
38
  isTemplateString
36
- } from "./studio-cjm7fdjf.js";
37
- import {
38
- cloneValue
39
- } from "./studio-5ehhackm.js";
39
+ } from "./studio-q7v10cg2.js";
40
40
 
41
41
  // src/panels/provenance.ts
42
42
  var PROVENANCE_TITLES = {
@@ -1700,6 +1700,10 @@ var functionDefSchema = {
1700
1700
  description: "Named export in $src module. Defaults to the state key name.",
1701
1701
  type: "string"
1702
1702
  },
1703
+ $lazy: {
1704
+ description: "Load $src on first call instead of importing it up front. The function then returns a " + "promise, so it may only be called from a handler or lifecycle hook — never bound as a " + "computed value. Use it for code most visitors never reach.",
1705
+ type: "boolean"
1706
+ },
1703
1707
  $prototype: { const: "Function", type: "string" },
1704
1708
  $src: {
1705
1709
  description: "External module specifier. Mutually exclusive with body.",
@@ -3003,6 +3007,45 @@ function configFieldSchema(field) {
3003
3007
  return { anyOf: [declared, { $ref: "#/$defs/RefObject" }] };
3004
3008
  }
3005
3009
 
3010
+ // src/services/context-resolver.ts
3011
+ var PARAM_SEGMENT = /^\{@(\w+)\}$/;
3012
+ function resolveContextPointer(pointer, opts) {
3013
+ if (!pointer.startsWith("#/$context/")) {
3014
+ return;
3015
+ }
3016
+ const segments = [];
3017
+ for (const raw of pointer.slice("#/$context/".length).split("/")) {
3018
+ const match = raw.match(PARAM_SEGMENT);
3019
+ if (match) {
3020
+ const value = opts.scope?.[match[1]];
3021
+ if (typeof value !== "string" && typeof value !== "number") {
3022
+ return;
3023
+ }
3024
+ const substituted = String(value);
3025
+ if (!substituted) {
3026
+ return;
3027
+ }
3028
+ segments.push(substituted);
3029
+ } else {
3030
+ segments.push(raw);
3031
+ }
3032
+ }
3033
+ if (segments[0] === "$formats") {
3034
+ if (segments.length !== 1) {
3035
+ return;
3036
+ }
3037
+ return (opts.formats ?? []).map((format) => format.name);
3038
+ }
3039
+ let node = opts.projectConfig;
3040
+ for (const segment of segments) {
3041
+ if (node === null || typeof node !== "object") {
3042
+ return;
3043
+ }
3044
+ node = node[segment];
3045
+ }
3046
+ return node;
3047
+ }
3048
+
3006
3049
  // src/ui/expression-editor.ts
3007
3050
  var UNARY_OPS = new Set(["!", "-"]);
3008
3051
  var BINARY_OPS = new Set([
@@ -4187,46 +4230,7 @@ function renderForm(schema, value, opts) {
4187
4230
  return html`${propertyFields}`;
4188
4231
  }
4189
4232
 
4190
- // src/services/context-resolver.ts
4191
- var PARAM_SEGMENT = /^\{@(\w+)\}$/;
4192
- function resolveContextPointer(pointer, opts) {
4193
- if (!pointer.startsWith("#/$context/")) {
4194
- return;
4195
- }
4196
- const segments = [];
4197
- for (const raw of pointer.slice("#/$context/".length).split("/")) {
4198
- const match = raw.match(PARAM_SEGMENT);
4199
- if (match) {
4200
- const value = opts.scope?.[match[1]];
4201
- if (typeof value !== "string" && typeof value !== "number") {
4202
- return;
4203
- }
4204
- const substituted = String(value);
4205
- if (!substituted) {
4206
- return;
4207
- }
4208
- segments.push(substituted);
4209
- } else {
4210
- segments.push(raw);
4211
- }
4212
- }
4213
- if (segments[0] === "$formats") {
4214
- if (segments.length !== 1) {
4215
- return;
4216
- }
4217
- return (opts.formats ?? []).map((format) => format.name);
4218
- }
4219
- let node = opts.projectConfig;
4220
- for (const segment of segments) {
4221
- if (node === null || typeof node !== "object") {
4222
- return;
4223
- }
4224
- node = node[segment];
4225
- }
4226
- return node;
4227
- }
4228
-
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 };
4233
+ export { renderProvenanceChip, countProvenance, renderProvenanceDots, renderFieldRow, renderKvRow, renderStaticKvRow, chipSummary, renderFormulaChips, applyCatalogPick, globalEntries, namedFormulaEntries, formulaCatalog, openFormulaPalette, REDIRECT_STATUSES, VALUE_SOURCE_LABELS, slotMode, capsForPosition, resolveContextPointer, isActionExpression, expressionHint, renderOperandEditor, renderExpressionEditor, switchSlotMode, renderDynamicSlot, registerFormControl, getFormControl, referenceTarget, NULL_FORM_CONTEXT, renderForm };
4230
4234
 
4231
- //# debugId=D548DF8319DDE4D664756E2164756E21
4232
- //# sourceMappingURL=studio-ef8t53vc.js.map
4235
+ //# debugId=F3BBBF454ADAC7A864756E2164756E21
4236
+ //# sourceMappingURL=studio-5q69gfag.js.map