@jxsuite/studio 5.1.0 → 5.2.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 (103) hide show
  1. package/dist/chunks/{cf-account-picker-qwkm9zrf.js → cf-account-picker-h4dab9bq.js} +10 -10
  2. package/dist/chunks/{cf-settings-71bv5zn9.js → cf-settings-adg74qsk.js} +4 -4
  3. package/dist/chunks/{components-vj72gqtq.js → components-5y78e05d.js} +4 -4
  4. package/dist/chunks/content-source-sgg1sv6n.js +46 -0
  5. package/dist/chunks/{convert-to-repeater-n64h8znc.js → convert-to-repeater-mf1cxgfn.js} +22 -22
  6. package/dist/chunks/entry-commands-w9qsxa6q.js +42 -0
  7. package/dist/chunks/{extension-sections-3hpcambp.js → extension-sections-c6zwzbre.js} +26 -26
  8. package/dist/chunks/{file-ops-8yhd83xr.js → file-ops-vrpq1jjk.js} +22 -22
  9. package/dist/chunks/{files-hnxqxtsg.js → files-msaf95y6.js} +31 -30
  10. package/dist/chunks/{format-host-779sfp2n.js → format-host-f64fnesp.js} +2 -2
  11. package/dist/chunks/{fs-events-b88z7g4h.js → fs-events-3y6y0nrm.js} +4 -4
  12. package/dist/chunks/{git-panel-xwj8fpab.js → git-panel-bv5e22j0.js} +23 -22
  13. package/dist/chunks/grid-view-1p6hsyjx.css +8406 -0
  14. package/dist/chunks/grid-view-paj67nr5.js +15322 -0
  15. package/dist/chunks/{iframe-host-syr0f9sb.js → iframe-host-dh5np8vk.js} +13 -13
  16. package/dist/chunks/{layers-ff81wthn.js → layers-1vcfdbet.js} +5 -5
  17. package/dist/chunks/layers-panel-fksbdg4q.js +40 -0
  18. package/dist/chunks/{media-picker-cqhhxhhe.js → media-picker-p49nhqhs.js} +13 -13
  19. package/dist/chunks/menu-qht48vnc.js +15 -0
  20. package/dist/chunks/{monaco-buffer-bhy3hb6m.js → monaco-buffer-pykwbm92.js} +3 -3
  21. package/dist/chunks/{notify-628t0anh.js → notify-42gk8ha1.js} +2 -2
  22. package/dist/chunks/{parse-0zx14y15.js → parse-reg9eevt.js} +2 -2
  23. package/dist/chunks/publish-panel-vz23wwmg.js +27 -0
  24. package/dist/chunks/quick-search-e9rp74m8.js +46 -0
  25. package/dist/chunks/{references-qvvxej7h.js → references-h69xp9zz.js} +2 -2
  26. package/dist/chunks/right-panel-j97t2yvy.js +45 -0
  27. package/dist/chunks/{studio-b0k5tqgp.js → studio-01jeck2y.js} +31 -27
  28. package/dist/chunks/{studio-wqz6dggm.js → studio-14d9tq4d.js} +9 -9
  29. package/dist/chunks/{studio-try13h8c.js → studio-15f3kxqe.js} +18 -18
  30. package/dist/chunks/studio-1tbjfqv4.js +146 -0
  31. package/dist/chunks/{studio-vw7mzp6z.js → studio-28vs5k2y.js} +2 -2
  32. package/dist/chunks/{studio-93zafjcm.js → studio-2mdbbc76.js} +10 -10
  33. package/dist/chunks/{studio-7r42c6ca.js → studio-3ntvq6cg.js} +5 -5
  34. package/dist/chunks/{studio-g3jevyjt.js → studio-4c041r8y.js} +2 -2
  35. package/dist/chunks/{studio-3773086z.js → studio-4r14yzyy.js} +4 -4
  36. package/dist/chunks/{studio-3rz5md06.js → studio-4xmjcrg3.js} +6 -6
  37. package/dist/chunks/{studio-syg2tadj.js → studio-5nz00bhh.js} +3 -3
  38. package/dist/chunks/{studio-1knfqgy7.js → studio-5t7ena5z.js} +8 -8
  39. package/dist/chunks/{studio-a79k90n9.js → studio-66arbpc2.js} +8 -8
  40. package/dist/chunks/{studio-b4s9eykd.js → studio-68fydsrj.js} +15 -15
  41. package/dist/chunks/{studio-mhhyamxf.js → studio-9j6sfeba.js} +6 -6
  42. package/dist/chunks/{studio-7xnmgv66.js → studio-a1pswps3.js} +37 -37
  43. package/dist/chunks/{studio-6xa21ej9.js → studio-c04nzbby.js} +2 -2
  44. package/dist/chunks/{studio-nzzpvzx9.js → studio-c07s5ckd.js} +4 -4
  45. package/dist/chunks/{studio-js8nv53n.js → studio-ctm7bhx5.js} +14 -14
  46. package/dist/chunks/{studio-p1dw8wfw.js → studio-d8z5bajd.js} +14 -10
  47. package/dist/chunks/{studio-jxp12rnj.js → studio-en82c639.js} +6 -6
  48. package/dist/chunks/{studio-1z1kcjv4.js → studio-etvx9s2g.js} +11 -11
  49. package/dist/chunks/{studio-k75n7vhp.js → studio-ez11dmdh.js} +74 -36
  50. package/dist/chunks/{studio-qhhm6hbt.js → studio-hdc2jt3z.js} +4 -4
  51. package/dist/chunks/{studio-r6nvacqs.js → studio-hhskq2mr.js} +19 -19
  52. package/dist/chunks/{studio-6ewqv390.js → studio-m1p9b6c3.js} +5 -5
  53. package/dist/chunks/{studio-qk90fgqm.js → studio-mpzwze9x.js} +7 -7
  54. package/dist/chunks/{studio-e1pgga3k.js → studio-ncn9e189.js} +7 -7
  55. package/dist/chunks/{studio-kkqkcp3d.js → studio-p6pmwkvh.js} +10 -10
  56. package/dist/chunks/{studio-aj37eer3.js → studio-qa7fzxan.js} +4 -4
  57. package/dist/chunks/{studio-sbjyc8bt.js → studio-sar8g54p.js} +8 -8
  58. package/dist/chunks/studio-t171hxhe.js +23 -0
  59. package/dist/chunks/{studio-pxbgypmg.js → studio-t3adrr56.js} +17 -14
  60. package/dist/chunks/{studio-hhvs4sdg.js → studio-vn5hske5.js} +10 -4
  61. package/dist/chunks/{studio-5wt9nvhd.js → studio-vt0tj32j.js} +29 -42
  62. package/dist/chunks/{studio-qk4bfsq2.js → studio-wjpgxywa.js} +4 -4
  63. package/dist/chunks/{studio-q3x06vmj.js → studio-wnsyffg1.js} +2 -2
  64. package/dist/chunks/{studio-gb13095a.js → studio-x10fp4tp.js} +59 -20
  65. package/dist/chunks/{studio-8scdew0e.js → studio-x72j58vw.js} +4 -4
  66. package/dist/chunks/{studio-tqgryxwg.js → studio-y4f9fdge.js} +7 -7
  67. package/dist/chunks/{studio-vfq8qpjt.js → studio-ympe0n7a.js} +3 -3
  68. package/dist/chunks/{studio-y9zedyjn.js → studio-z2smx5ce.js} +2 -2
  69. package/dist/chunks/{studio-zdn2g6dt.js → studio-zjjde71a.js} +2 -2
  70. package/dist/chunks/{workspace-t55jdjbx.js → workspace-bnw54cha.js} +18 -10
  71. package/dist/iframe-entry.js +7 -3
  72. package/dist/studio.css +1 -2
  73. package/dist/studio.js +866 -15698
  74. package/package.json +6 -6
  75. package/src/files/files.ts +38 -15
  76. package/src/grid/grid-lazy.ts +59 -0
  77. package/src/grid/grid-open.ts +20 -3
  78. package/src/grid/grid-panel.ts +43 -9
  79. package/src/media/media-open.ts +14 -2
  80. package/src/panels/pane-context.ts +5 -4
  81. package/src/panels/pane-grid.ts +100 -10
  82. package/src/panels/tab-drop.ts +220 -0
  83. package/src/panels/tab-strip.ts +235 -30
  84. package/src/services/ai-models.ts +13 -0
  85. package/src/studio.ts +10 -6
  86. package/src/surfaces/commandbar.json +26 -16
  87. package/src/surfaces/pane-grid.json +35 -3
  88. package/src/surfaces/pane-grid.ts +26 -4
  89. package/src/surfaces/tab-strip.json +16 -39
  90. package/src/surfaces/tab-strip.ts +76 -12
  91. package/src/ui/ai-credentials-form.ts +12 -1
  92. package/src/workspace/pane-derive.ts +7 -5
  93. package/src/workspace/session.ts +3 -3
  94. package/src/workspace/workspace.ts +160 -43
  95. package/styles/shell-frame.css +8 -0
  96. package/styles/shell-frame.json +4 -0
  97. package/dist/chunks/content-source-5mex4x1h.js +0 -46
  98. package/dist/chunks/entry-commands-234hjnqw.js +0 -42
  99. package/dist/chunks/layers-panel-pnnghw12.js +0 -40
  100. package/dist/chunks/menu-9p2w46gj.js +0 -15
  101. package/dist/chunks/publish-panel-5zt840sy.js +0 -27
  102. package/dist/chunks/quick-search-3748564r.js +0 -45
  103. package/dist/chunks/right-panel-eccz92qt.js +0 -45
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  isJsonObject,
3
- isRef2,
3
+ isRef,
4
4
  isFunctionDef,
5
5
  isExpressionDef,
6
6
  getNestedStyle,
7
7
  getEventBinding,
8
8
  displayTagName
9
- } from "./studio-7r42c6ca.js";
9
+ } from "./studio-3ntvq6cg.js";
10
10
  import {
11
11
  getNodeAtPath2,
12
12
  nodeLabel,
@@ -17,12 +17,12 @@ import {
17
17
  cancelStyleDebounce,
18
18
  renderOnly,
19
19
  updateUi
20
- } from "./studio-6ewqv390.js";
20
+ } from "./studio-m1p9b6c3.js";
21
21
  import {
22
22
  effectScope,
23
23
  effect,
24
24
  reactive
25
- } from "./studio-p1dw8wfw.js";
25
+ } from "./studio-d8z5bajd.js";
26
26
  import {
27
27
  primarySelection,
28
28
  unifyValues,
@@ -46,11 +46,11 @@ import {
46
46
  friendlyNameToVar,
47
47
  varDisplayName,
48
48
  activeTab2
49
- } from "./studio-k75n7vhp.js";
49
+ } from "./studio-ez11dmdh.js";
50
50
  import {
51
51
  isPopover,
52
52
  activeRegistry
53
- } from "./studio-kkqkcp3d.js";
53
+ } from "./studio-p6pmwkvh.js";
54
54
  import {
55
55
  mountExpressionEditor,
56
56
  livePreviewExpression,
@@ -76,14 +76,14 @@ import {
76
76
  bindContentHost,
77
77
  isCustomElementDoc,
78
78
  collectCssParts
79
- } from "./studio-7xnmgv66.js";
79
+ } from "./studio-a1pswps3.js";
80
80
  import {
81
81
  inspectorTabRegion,
82
82
  inspectorStatementsRegion,
83
83
  registerSurface,
84
84
  mountSurface,
85
85
  showPromptDialog2
86
- } from "./studio-vfq8qpjt.js";
86
+ } from "./studio-ympe0n7a.js";
87
87
  import {
88
88
  VALUE_SOURCE_LABELS,
89
89
  VALUE_SOURCE_HINTS,
@@ -95,23 +95,23 @@ import {
95
95
  effectiveSlotMode,
96
96
  slotModeSeed,
97
97
  switchSlotMode
98
- } from "./studio-js8nv53n.js";
98
+ } from "./studio-ctm7bhx5.js";
99
99
  import {
100
100
  mediaDisplayName,
101
101
  schemeOfQuery,
102
102
  parseMediaEntries,
103
103
  dialogPathFor
104
- } from "./studio-1z1kcjv4.js";
104
+ } from "./studio-etvx9s2g.js";
105
105
  import {
106
106
  openMenu2
107
- } from "./studio-aj37eer3.js";
107
+ } from "./studio-qa7fzxan.js";
108
108
  import {
109
109
  getEffectiveMedia,
110
110
  getEffectiveStyle,
111
111
  DEFAULT_INSPECTOR_TAB,
112
112
  isInspectorTabId,
113
113
  shell
114
- } from "./studio-qk90fgqm.js";
114
+ } from "./studio-mpzwze9x.js";
115
115
  import {
116
116
  peekUsages2,
117
117
  loadUsages2,
@@ -120,7 +120,7 @@ import {
120
120
  import {
121
121
  selectStylebookTag,
122
122
  INSPECTOR_TABS
123
- } from "./studio-93zafjcm.js";
123
+ } from "./studio-2mdbbc76.js";
124
124
  import {
125
125
  cloneValue2
126
126
  } from "./studio-727xh0e3.js";
@@ -2255,7 +2255,7 @@ function fieldView(key, prop, plan) {
2255
2255
  sourceLabel: VALUE_SOURCE_LABELS[plan.mode],
2256
2256
  sourceLocked: !canMove(plan.mode, plan.offered),
2257
2257
  tone: "",
2258
- value: literal ? String(plan.value ?? "") : plan.mode === "ref" ? isRef2(plan.value) ? plan.value.$ref : "" : String(plan.value ?? "")
2258
+ value: literal ? String(plan.value ?? "") : plan.mode === "ref" ? isRef(plan.value) ? plan.value.$ref : "" : String(plan.value ?? "")
2259
2259
  };
2260
2260
  }
2261
2261
  function addField(fields, key, prop, spec) {
@@ -2317,7 +2317,7 @@ function projectLogicPanel() {
2317
2317
  const stateDefs = bindableSignalNames(doc);
2318
2318
  const key = selection.join("/");
2319
2319
  const literalDefaultOf = (raw) => {
2320
- const bound = isRef2(raw) ? raw.$ref : null;
2320
+ const bound = isRef(raw) ? raw.$ref : null;
2321
2321
  if (!bound) {
2322
2322
  return;
2323
2323
  }
@@ -2492,7 +2492,7 @@ function bindingView(bindings, evKey, evVal, defs) {
2492
2492
  { label: "— none —", value: "" },
2493
2493
  ...functionDefs.map(([fName]) => ({ label: fName, value: `#/state/${fName}` }))
2494
2494
  ],
2495
- refValue: isRef2(evVal) ? evVal.$ref : "",
2495
+ refValue: isRef(evVal) ? evVal.$ref : "",
2496
2496
  showToggle: Boolean(fn),
2497
2497
  source: mode,
2498
2498
  sourceHint: sourceHint(mode, HANDLER_MODES),
@@ -8444,5 +8444,5 @@ function inspectorTarget() {
8444
8444
 
8445
8445
  export { initCssData, registerStyleCommands, mount2, unmount2, render2, inspectorTab2, setInspectorTab2 };
8446
8446
 
8447
- //# debugId=355BABCC8073CBA564756E2164756E21
8448
- //# sourceMappingURL=studio-try13h8c.js.map
8447
+ //# debugId=674E8D1C61241CA264756E2164756E21
8448
+ //# sourceMappingURL=studio-15f3kxqe.js.map
@@ -0,0 +1,146 @@
1
+ // src/grid/grid-layout.ts
2
+ var FACETS = ["order", "widths", "hidden", "sort", "groupBy", "filter"];
3
+ var STORAGE_PREFIX = "jx-grid-layout:";
4
+ function storage() {
5
+ try {
6
+ return globalThis.localStorage ?? null;
7
+ } catch {
8
+ return null;
9
+ }
10
+ }
11
+ function readRecord(gridId) {
12
+ const raw = storage()?.getItem(STORAGE_PREFIX + gridId);
13
+ if (!raw) {
14
+ return null;
15
+ }
16
+ try {
17
+ const parsed = JSON.parse(raw);
18
+ return typeof parsed === "object" && parsed !== null ? parsed : null;
19
+ } catch {
20
+ return null;
21
+ }
22
+ }
23
+ function writeRecord(gridId, record) {
24
+ storage()?.setItem(STORAGE_PREFIX + gridId, JSON.stringify(record));
25
+ }
26
+ function facetsOf(source) {
27
+ const out = {};
28
+ for (const facet of FACETS) {
29
+ if (source[facet] !== undefined) {
30
+ Object.assign(out, { [facet]: source[facet] });
31
+ }
32
+ }
33
+ return out;
34
+ }
35
+ function facetKey(layout) {
36
+ return JSON.stringify(FACETS.map((facet) => layout[facet] ?? null));
37
+ }
38
+ function loadGridLayout(gridId) {
39
+ const record = readRecord(gridId);
40
+ return record ? facetsOf(record) : null;
41
+ }
42
+ function saveGridLayout(gridId, change) {
43
+ const store = storage();
44
+ if (!store) {
45
+ return;
46
+ }
47
+ const record = readRecord(gridId) ?? {};
48
+ const next = { ...record, widths: { ...record.widths, ...change.widths } };
49
+ for (const facet of FACETS) {
50
+ if (facet !== "widths" && change[facet] !== undefined) {
51
+ Object.assign(next, { [facet]: change[facet] });
52
+ }
53
+ }
54
+ writeRecord(gridId, next);
55
+ }
56
+ function resetGridLayout(gridId) {
57
+ const record = readRecord(gridId);
58
+ if (!record) {
59
+ return;
60
+ }
61
+ writeRecord(gridId, { active: null, ...record.views ? { views: record.views } : {} });
62
+ }
63
+ function listSavedViews(gridId) {
64
+ const views = readRecord(gridId)?.views;
65
+ return Array.isArray(views) ? views.filter((view) => typeof view?.name === "string") : [];
66
+ }
67
+ function activeViewName(gridId) {
68
+ return readRecord(gridId)?.active ?? null;
69
+ }
70
+ function activeViewModified(gridId) {
71
+ const record = readRecord(gridId);
72
+ const name = record?.active;
73
+ if (!record || !name) {
74
+ return false;
75
+ }
76
+ const view = listSavedViews(gridId).find((candidate) => candidate.name === name);
77
+ return view ? facetKey(facetsOf(view)) !== facetKey(facetsOf(record)) : false;
78
+ }
79
+ function saveViewAs(gridId, name) {
80
+ const trimmed = name.trim();
81
+ const store = storage();
82
+ if (trimmed === "" || !store) {
83
+ return null;
84
+ }
85
+ const record = readRecord(gridId) ?? {};
86
+ const view = { name: trimmed, ...facetsOf(record) };
87
+ const views = listSavedViews(gridId).filter((candidate) => candidate.name !== trimmed);
88
+ views.push(view);
89
+ writeRecord(gridId, { ...record, active: trimmed, views });
90
+ return view;
91
+ }
92
+ function applySavedView(gridId, name) {
93
+ const view = listSavedViews(gridId).find((candidate) => candidate.name === name);
94
+ if (!view || !storage()) {
95
+ return null;
96
+ }
97
+ const record = readRecord(gridId) ?? {};
98
+ const layout = facetsOf(view);
99
+ writeRecord(gridId, { active: view.name, views: record.views ?? [], ...layout });
100
+ return layout;
101
+ }
102
+ function deleteSavedView(gridId, name) {
103
+ const record = readRecord(gridId);
104
+ if (!record || !storage()) {
105
+ return false;
106
+ }
107
+ const views = listSavedViews(gridId);
108
+ const kept = views.filter((candidate) => candidate.name !== name);
109
+ if (kept.length === views.length) {
110
+ return false;
111
+ }
112
+ writeRecord(gridId, {
113
+ ...record,
114
+ active: record.active === name ? null : record.active ?? null,
115
+ views: kept
116
+ });
117
+ return true;
118
+ }
119
+ function applyGridLayout(defs, layout) {
120
+ if (!layout) {
121
+ return defs;
122
+ }
123
+ const hidden = new Set(layout.hidden);
124
+ const widened = [];
125
+ for (const def of defs) {
126
+ if (def.field !== undefined && hidden.has(def.field)) {
127
+ continue;
128
+ }
129
+ const width = def.field ? layout.widths?.[def.field] : undefined;
130
+ widened.push(width ? { ...def, width } : def);
131
+ }
132
+ if (!layout.order?.length) {
133
+ return widened;
134
+ }
135
+ const rank = new Map(layout.order.map((field, i) => [field, i]));
136
+ return widened.map((def, index) => ({ def, index })).toSorted((a, b) => {
137
+ const ra = rank.get(a.def.field ?? "") ?? layout.order.length + a.index;
138
+ const rb = rank.get(b.def.field ?? "") ?? layout.order.length + b.index;
139
+ return ra - rb;
140
+ }).map(({ def }) => def);
141
+ }
142
+
143
+ export { loadGridLayout, saveGridLayout, resetGridLayout, listSavedViews, activeViewName, activeViewModified, saveViewAs, applySavedView, deleteSavedView, applyGridLayout };
144
+
145
+ //# debugId=C0BEC0EB850BC76E64756E2164756E21
146
+ //# sourceMappingURL=studio-1tbjfqv4.js.map
@@ -124,7 +124,7 @@ async function shareProjectSchemas(platform) {
124
124
  function refreshExtensionUi2(platform) {
125
125
  shareProjectSchemas(platform);
126
126
  loadExtensionCatalog();
127
- (__preload("3hpcambp"), import("./extension-sections-3hpcambp.js")).then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
127
+ (__preload("c6zwzbre"), import("./extension-sections-c6zwzbre.js")).then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
128
128
  }
129
129
  function getFormats2() {
130
130
  return _formats;
@@ -239,4 +239,4 @@ function splitFormatDocument2(format, doc) {
239
239
  export { loadMonaco, loadedMonaco, mountStillWanted, loadFormats2, refreshFormats2, loadExtensions2, getExtensions2, getExtensionCatalog2, refreshExtensionUi2, getFormats2, formatByExtension2, formatByName2, noFormatError2, formatForPath2, documentExtensions2, defaultContentFormat2, formatParse2, formatSerialize2, splitFormatDocument2 };
240
240
 
241
241
  //# debugId=DC4D74E6C120403064756E2164756E21
242
- //# sourceMappingURL=studio-vw7mzp6z.js.map
242
+ //# sourceMappingURL=studio-28vs5k2y.js.map
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  projectState,
3
3
  updateSession
4
- } from "./studio-6ewqv390.js";
4
+ } from "./studio-m1p9b6c3.js";
5
5
  import {
6
6
  isKeyframesAtRule
7
- } from "./studio-kkqkcp3d.js";
7
+ } from "./studio-p6pmwkvh.js";
8
8
  import {
9
9
  registerSurface,
10
10
  mountSurface
11
- } from "./studio-vfq8qpjt.js";
11
+ } from "./studio-ympe0n7a.js";
12
12
  import {
13
13
  reactive
14
- } from "./studio-p1dw8wfw.js";
14
+ } from "./studio-d8z5bajd.js";
15
15
  import {
16
16
  isSpliceablePath,
17
17
  varDisplayName,
18
18
  activeTab2
19
- } from "./studio-k75n7vhp.js";
19
+ } from "./studio-ez11dmdh.js";
20
20
  import {
21
21
  getEffectiveMedia,
22
22
  getEffectiveStyle,
23
23
  shell
24
- } from "./studio-qk90fgqm.js";
24
+ } from "./studio-mpzwze9x.js";
25
25
  import {
26
26
  componentRegistry2
27
- } from "./studio-zdn2g6dt.js";
27
+ } from "./studio-zjjde71a.js";
28
28
  import {
29
29
  tabOfPane,
30
30
  mediaDisplayName,
@@ -33,7 +33,7 @@ import {
33
33
  parseMediaEntries,
34
34
  mountStylebookCanvas2,
35
35
  panToStylebookTag2
36
- } from "./studio-1z1kcjv4.js";
36
+ } from "./studio-etvx9s2g.js";
37
37
  import {
38
38
  __preload
39
39
  } from "./studio-5te5tqng.js";
@@ -981,7 +981,7 @@ function defaultCommands(deps) {
981
981
  enablement: (ctx) => structurallyEditable(ctx) && !ctx.selection.isRepeater,
982
982
  requires: "an element with a sibling position that is not already a repeater",
983
983
  run: () => {
984
- (__preload("n64h8znc"), import("./convert-to-repeater-n64h8znc.js")).then(({ convertToRepeater }) => convertToRepeater());
984
+ (__preload("mf1cxgfn"), import("./convert-to-repeater-mf1cxgfn.js")).then(({ convertToRepeater }) => convertToRepeater());
985
985
  }
986
986
  },
987
987
  {
@@ -1190,4 +1190,4 @@ function inspectorFocusCommands(deps) {
1190
1190
  export { transposeStylebookStyle, PROJECT_STYLES_TITLE, PROJECT_STYLES_VIEW, TOKEN_GROUPS, tokenLabel, groupTokens, listTokenContexts, readTokenOverride, writeTokenOverride, addableContexts, stylebook_meta_default, renderStylebookMode, selectStylebookTag, INSPECTOR_TABS, noopCommandDeps, defaultCommands };
1191
1191
 
1192
1192
  //# debugId=10489CF10762040B64756E2164756E21
1193
- //# sourceMappingURL=studio-93zafjcm.js.map
1193
+ //# sourceMappingURL=studio-2mdbbc76.js.map
@@ -2,7 +2,7 @@
2
2
  function isJsonObject(value) {
3
3
  return typeof value === "object" && value !== null && !Array.isArray(value);
4
4
  }
5
- function isRef2(value) {
5
+ function isRef(value) {
6
6
  return isJsonObject(value) && typeof value.$ref === "string";
7
7
  }
8
8
  function isFunctionDef(value) {
@@ -65,7 +65,7 @@ function ensureNestedStyle(style, key) {
65
65
  return created;
66
66
  }
67
67
  function isEventBinding(value) {
68
- return isRef2(value) || isFunctionDef(value) || isExpressionDef(value);
68
+ return isRef(value) || isFunctionDef(value) || isExpressionDef(value);
69
69
  }
70
70
  function getEventBinding(node, key) {
71
71
  const value = node[key];
@@ -110,7 +110,7 @@ function isPrivateStateKey(key) {
110
110
  return key.startsWith("#");
111
111
  }
112
112
 
113
- export { isJsonObject, isRef2, isFunctionDef, isExpressionDef, isNamedFormulaDef, hasStructuredBody, isPrototypeDef, isServerFnDef, isMappedArray, isTemplateString, bodyReturnsValue, isNestedStyle, getNestedStyle, ensureNestedStyle, isEventBinding, getEventBinding, paramNames, isTagExpression, tagNameCandidates, displayTagName, isPrivateStateKey };
113
+ export { isJsonObject, isRef, isFunctionDef, isExpressionDef, isNamedFormulaDef, hasStructuredBody, isPrototypeDef, isServerFnDef, isMappedArray, isTemplateString, bodyReturnsValue, isNestedStyle, getNestedStyle, ensureNestedStyle, isEventBinding, getEventBinding, paramNames, isTagExpression, tagNameCandidates, displayTagName, isPrivateStateKey };
114
114
 
115
- //# debugId=1137B57F9E7C997564756E2164756E21
116
- //# sourceMappingURL=studio-7r42c6ca.js.map
115
+ //# debugId=BFDCBADF32802FEA64756E2164756E21
116
+ //# sourceMappingURL=studio-3ntvq6cg.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./studio-nq5yf5mp.js";
7
7
  import {
8
8
  projectState
9
- } from "./studio-6ewqv390.js";
9
+ } from "./studio-m1p9b6c3.js";
10
10
 
11
11
  // src/files/gitignore.ts
12
12
  var RE_SPECIAL = /[.*+?^${}()|[\]\\]/;
@@ -391,4 +391,4 @@ function startFsSync2(ctx) {
391
391
  export { resetIgnoreCache, ensureIgnoreLayers, isIgnoredEntry, markLocalMutation2, isRecentLocal2, startFsSync2 };
392
392
 
393
393
  //# debugId=021BCC8E71B450F764756E2164756E21
394
- //# sourceMappingURL=studio-g3jevyjt.js.map
394
+ //# sourceMappingURL=studio-4c041r8y.js.map
@@ -4,14 +4,14 @@ import {
4
4
  import {
5
5
  isJsonObject,
6
6
  paramNames
7
- } from "./studio-7r42c6ca.js";
7
+ } from "./studio-3ntvq6cg.js";
8
8
  import {
9
9
  getNodeAtPath2,
10
10
  projectState
11
- } from "./studio-6ewqv390.js";
11
+ } from "./studio-m1p9b6c3.js";
12
12
  import {
13
13
  loadedMonaco
14
- } from "./studio-vw7mzp6z.js";
14
+ } from "./studio-28vs5k2y.js";
15
15
 
16
16
  // src/services/code-services.ts
17
17
  async function codeService(action, payload) {
@@ -108,4 +108,4 @@ function getFunctionArgs(editing, document) {
108
108
  export { codeService, pluginSchemaCache, fetchPluginSchema, setLintMarkers, getFunctionArgs };
109
109
 
110
110
  //# debugId=267FFB64A2BBCD1564756E2164756E21
111
- //# sourceMappingURL=studio-3773086z.js.map
111
+ //# sourceMappingURL=studio-4r14yzyy.js.map
@@ -2,7 +2,7 @@ import {
2
2
  githubTokenStored,
3
3
  githubTokenLocation,
4
4
  clearGithubToken
5
- } from "./studio-qk4bfsq2.js";
5
+ } from "./studio-wjpgxywa.js";
6
6
  import {
7
7
  getPlatform2,
8
8
  hasPlatform2
@@ -11,14 +11,14 @@ import {
11
11
  getCfToken2,
12
12
  getCfAccountId2,
13
13
  clearCfConnection2
14
- } from "./studio-6xa21ej9.js";
14
+ } from "./studio-c04nzbby.js";
15
15
  import {
16
16
  hasOpenAiKey,
17
17
  getBaseUrl,
18
18
  clearAiProvider,
19
19
  resetModelCache,
20
20
  preferredModel
21
- } from "./studio-hhvs4sdg.js";
21
+ } from "./studio-vn5hske5.js";
22
22
  import {
23
23
  __preload
24
24
  } from "./studio-5te5tqng.js";
@@ -56,7 +56,7 @@ function resetCfConnectionCache() {
56
56
  async function hostedConnect() {
57
57
  const outcome = await getPlatform2().cfConnect?.();
58
58
  if (outcome?.status === "connected" && !outcome.connection.accountId) {
59
- const { openCfAccountPicker } = await (__preload("qwkm9zrf"), import("./cf-account-picker-qwkm9zrf.js"));
59
+ const { openCfAccountPicker } = await (__preload("h4dab9bq"), import("./cf-account-picker-h4dab9bq.js"));
60
60
  await openCfAccountPicker();
61
61
  }
62
62
  resetModelCache();
@@ -111,7 +111,7 @@ function brokeredCloudflareRecord() {
111
111
  id: "choose-account",
112
112
  label: "Choose account",
113
113
  run: async () => {
114
- const { openCfAccountPicker } = await (__preload("qwkm9zrf"), import("./cf-account-picker-qwkm9zrf.js"));
114
+ const { openCfAccountPicker } = await (__preload("h4dab9bq"), import("./cf-account-picker-h4dab9bq.js"));
115
115
  if (await openCfAccountPicker()) {
116
116
  resetModelCache();
117
117
  await refreshCfConnection();
@@ -192,4 +192,4 @@ function notifyCredentialsChanged() {
192
192
  export { platformBrokersCf, refreshCfConnection, ensureCfConnection, resetCfConnectionCache, listAccounts, revokeAccount, onCredentialsChanged, notifyCredentialsChanged };
193
193
 
194
194
  //# debugId=5A4E8AE3D8A598C464756E2164756E21
195
- //# sourceMappingURL=studio-3rz5md06.js.map
195
+ //# sourceMappingURL=studio-4xmjcrg3.js.map
@@ -3,13 +3,13 @@ import {
3
3
  } from "./studio-6nzaktvy.js";
4
4
  import {
5
5
  normalizeProjectPath
6
- } from "./studio-kkqkcp3d.js";
6
+ } from "./studio-p6pmwkvh.js";
7
7
  import {
8
8
  extensionOf,
9
9
  mediaKind,
10
10
  baseName,
11
11
  dirName
12
- } from "./studio-jxp12rnj.js";
12
+ } from "./studio-en82c639.js";
13
13
 
14
14
  // src/files/media-meta.ts
15
15
  var settled = new Map;
@@ -115,4 +115,4 @@ function mediaMetaSummary(meta) {
115
115
  export { peekMediaMeta, seedMediaMeta, loadMediaMeta, recordImageSize, invalidateMediaMeta, formatBytes, mediaMetaSummary };
116
116
 
117
117
  //# debugId=23AD97ADF0A22AE164756E2164756E21
118
- //# sourceMappingURL=studio-syg2tadj.js.map
118
+ //# sourceMappingURL=studio-5nz00bhh.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./studio-6nzaktvy.js";
4
4
  import {
5
5
  projectState
6
- } from "./studio-6ewqv390.js";
6
+ } from "./studio-m1p9b6c3.js";
7
7
  import {
8
8
  reactive
9
- } from "./studio-p1dw8wfw.js";
9
+ } from "./studio-d8z5bajd.js";
10
10
  import {
11
11
  loadFormats2,
12
12
  formatByName2,
@@ -14,21 +14,21 @@ import {
14
14
  documentExtensions2,
15
15
  defaultContentFormat2,
16
16
  formatSerialize2
17
- } from "./studio-vw7mzp6z.js";
17
+ } from "./studio-28vs5k2y.js";
18
18
  import {
19
19
  workspace2
20
- } from "./studio-k75n7vhp.js";
20
+ } from "./studio-ez11dmdh.js";
21
21
  import {
22
22
  markLocalMutation2,
23
23
  isRecentLocal2
24
- } from "./studio-g3jevyjt.js";
24
+ } from "./studio-4c041r8y.js";
25
25
  import {
26
26
  makeGridTabId,
27
27
  columnsFromSchema,
28
28
  inferColumnsFromRows,
29
29
  getGridController,
30
30
  parseSourceForPath2
31
- } from "./studio-gb13095a.js";
31
+ } from "./studio-x10fp4tp.js";
32
32
  import {
33
33
  __preload
34
34
  } from "./studio-5te5tqng.js";
@@ -330,7 +330,7 @@ function buildEntryFileSource(opts) {
330
330
  await writeEntry(path, entry, patches);
331
331
  outcome(true);
332
332
  if (openTab) {
333
- const { reloadFileInTab } = await (__preload("hnxqxtsg"), import("./files-hnxqxtsg.js"));
333
+ const { reloadFileInTab } = await (__preload("msaf95y6"), import("./files-msaf95y6.js"));
334
334
  reloadFileInTab(path);
335
335
  }
336
336
  } catch (error) {
@@ -495,4 +495,4 @@ function createPagesSource2() {
495
495
  export { DRAFT_FIELD, DRAFT_MEANING, isDraftEntry, hasDraftAxis, setIncludeDrafts, collectionInfo2, collectionDirs2, listCollectionEntryIds2, reloadDraftAwareGrids2, createCollectionSource2, createPagesSource2 };
496
496
 
497
497
  //# debugId=9A9477683F06DFEB64756E2164756E21
498
- //# sourceMappingURL=studio-1knfqgy7.js.map
498
+ //# sourceMappingURL=studio-5t7ena5z.js.map
@@ -5,34 +5,34 @@ import {
5
5
  flattenTree,
6
6
  nodeLabel,
7
7
  projectState
8
- } from "./studio-6ewqv390.js";
8
+ } from "./studio-m1p9b6c3.js";
9
9
  import {
10
10
  loadFormats2,
11
11
  formatByExtension2,
12
12
  documentExtensions2
13
- } from "./studio-vw7mzp6z.js";
13
+ } from "./studio-28vs5k2y.js";
14
14
  import {
15
15
  activeTab2
16
- } from "./studio-k75n7vhp.js";
16
+ } from "./studio-ez11dmdh.js";
17
17
  import {
18
18
  registerSurface,
19
19
  mountSurface,
20
20
  runReported,
21
21
  runActiveReported,
22
22
  getLayerSlot2
23
- } from "./studio-vfq8qpjt.js";
23
+ } from "./studio-ympe0n7a.js";
24
24
  import {
25
25
  activeRegistry
26
- } from "./studio-kkqkcp3d.js";
26
+ } from "./studio-p6pmwkvh.js";
27
27
  import {
28
28
  reactive
29
- } from "./studio-p1dw8wfw.js";
29
+ } from "./studio-d8z5bajd.js";
30
30
  import {
31
31
  getRecentProjects,
32
32
  getRecentFiles,
33
33
  trackRecentFile,
34
34
  openFileInTab2
35
- } from "./studio-b0k5tqgp.js";
35
+ } from "./studio-01jeck2y.js";
36
36
  // src/surfaces/palette.json
37
37
  var palette_default = {
38
38
  $schema: "https://jxsuite.com/schema/v1",
@@ -1159,4 +1159,4 @@ function renderOverlay() {
1159
1159
  export { initQuickSearch2, openQuickSearch2 };
1160
1160
 
1161
1161
  //# debugId=EFFDF77A3587A37264756E2164756E21
1162
- //# sourceMappingURL=studio-a79k90n9.js.map
1162
+ //# sourceMappingURL=studio-66arbpc2.js.map