@jxsuite/studio 5.1.0 → 5.3.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 (117) hide show
  1. package/dist/chunks/{cf-account-picker-qwkm9zrf.js → cf-account-picker-nwnwdm6p.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-4rzvmp0m.js +46 -0
  5. package/dist/chunks/{convert-to-repeater-n64h8znc.js → convert-to-repeater-jxsv62v7.js} +22 -22
  6. package/dist/chunks/entry-commands-1wnsqn5d.js +42 -0
  7. package/dist/chunks/{extension-sections-3hpcambp.js → extension-sections-2mrptyek.js} +27 -27
  8. package/dist/chunks/{file-ops-8yhd83xr.js → file-ops-knfqshrm.js} +22 -22
  9. package/dist/chunks/{files-hnxqxtsg.js → files-y6fr4he9.js} +32 -30
  10. package/dist/chunks/{format-host-779sfp2n.js → format-host-1k4qrcqd.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-2rkrsjva.js} +23 -22
  13. package/dist/chunks/grid-view-1p6hsyjx.css +8406 -0
  14. package/dist/chunks/grid-view-a7b87n2c.js +15322 -0
  15. package/dist/chunks/{iframe-host-syr0f9sb.js → iframe-host-scpw01h8.js} +13 -13
  16. package/dist/chunks/{jx-validate-j0wxk72w.js → jx-validate-epp2z3s3.js} +2 -2
  17. package/dist/chunks/{layers-ff81wthn.js → layers-jnvdbqva.js} +5 -5
  18. package/dist/chunks/layers-panel-73gfkcga.js +41 -0
  19. package/dist/chunks/{listbox-6v2ac08j.js → listbox-b7jxnhq1.js} +19 -3
  20. package/dist/chunks/{media-picker-cqhhxhhe.js → media-picker-f66nav16.js} +13 -13
  21. package/dist/chunks/menu-1dfhry4s.js +15 -0
  22. package/dist/chunks/{monaco-buffer-bhy3hb6m.js → monaco-buffer-pykwbm92.js} +3 -3
  23. package/dist/chunks/{monaco-setup-8r62fj6y.js → monaco-setup-km6abc6q.js} +2 -2
  24. package/dist/chunks/{notify-628t0anh.js → notify-42gk8ha1.js} +2 -2
  25. package/dist/chunks/{parse-0zx14y15.js → parse-reg9eevt.js} +2 -2
  26. package/dist/chunks/publish-panel-z1zd2da1.js +27 -0
  27. package/dist/chunks/quick-search-zdv7h8ht.js +47 -0
  28. package/dist/chunks/{references-qvvxej7h.js → references-h69xp9zz.js} +2 -2
  29. package/dist/chunks/right-panel-889vbnm5.js +45 -0
  30. package/dist/chunks/{split-g7nm1rgb.js → split-4cz4b6ef.js} +14 -3
  31. package/dist/chunks/{studio-vfq8qpjt.js → studio-0j7r7s9g.js} +3 -3
  32. package/dist/chunks/{studio-b4s9eykd.js → studio-151w0xnh.js} +15 -15
  33. package/dist/chunks/studio-1tbjfqv4.js +146 -0
  34. package/dist/chunks/{studio-8scdew0e.js → studio-27q131j3.js} +4 -4
  35. package/dist/chunks/{studio-7r42c6ca.js → studio-3ntvq6cg.js} +5 -5
  36. package/dist/chunks/{studio-g3jevyjt.js → studio-4c041r8y.js} +2 -2
  37. package/dist/chunks/{studio-js8nv53n.js → studio-4f3psrk1.js} +14 -14
  38. package/dist/chunks/{studio-pxbgypmg.js → studio-50wfwy44.js} +17 -14
  39. package/dist/chunks/{studio-vw7mzp6z.js → studio-6gryj0sg.js} +5 -5
  40. package/dist/chunks/{studio-e1pgga3k.js → studio-6kvgrkrp.js} +7 -7
  41. package/dist/chunks/{studio-wqz6dggm.js → studio-7144epdr.js} +9 -9
  42. package/dist/chunks/{studio-b0k5tqgp.js → studio-7rrb1esn.js} +32 -28
  43. package/dist/chunks/{studio-38emantv.js → studio-a5h5j33a.js} +19 -5
  44. package/dist/chunks/{studio-3773086z.js → studio-a65w20ex.js} +4 -4
  45. package/dist/chunks/{studio-nzzpvzx9.js → studio-ab87phj1.js} +4 -4
  46. package/dist/chunks/{studio-r6nvacqs.js → studio-b66rsh78.js} +20 -20
  47. package/dist/chunks/{studio-jxp12rnj.js → studio-b7xacrwe.js} +6 -6
  48. package/dist/chunks/{studio-6xa21ej9.js → studio-c04nzbby.js} +2 -2
  49. package/dist/chunks/{studio-try13h8c.js → studio-c0qgc3tn.js} +18 -18
  50. package/dist/chunks/{studio-tqgryxwg.js → studio-cgprcdxn.js} +7 -7
  51. package/dist/chunks/{studio-kkqkcp3d.js → studio-d1n2bykn.js} +40 -13
  52. package/dist/chunks/{studio-p1dw8wfw.js → studio-d8z5bajd.js} +14 -10
  53. package/dist/chunks/{studio-3rz5md06.js → studio-dd1qqkry.js} +6 -6
  54. package/dist/chunks/{studio-1z1kcjv4.js → studio-drg8qj9k.js} +11 -11
  55. package/dist/chunks/{studio-kcgff4r0.js → studio-fgmfksz8.js} +2 -2
  56. package/dist/chunks/{studio-qk90fgqm.js → studio-fzjx96t2.js} +7 -7
  57. package/dist/chunks/{studio-a79k90n9.js → studio-g33v4fe9.js} +17 -16
  58. package/dist/chunks/{studio-k75n7vhp.js → studio-gk2twyh4.js} +74 -36
  59. package/dist/chunks/{studio-syg2tadj.js → studio-gtfq1dkz.js} +3 -3
  60. package/dist/chunks/{studio-1knfqgy7.js → studio-j0w60gft.js} +8 -8
  61. package/dist/chunks/{studio-aj37eer3.js → studio-jt27ta6x.js} +4 -4
  62. package/dist/chunks/{studio-gb13095a.js → studio-ke09tn9k.js} +59 -20
  63. package/dist/chunks/{studio-d0300636.js → studio-ks2zzth2.js} +17 -2
  64. package/dist/chunks/{studio-6ewqv390.js → studio-m1p9b6c3.js} +5 -5
  65. package/dist/chunks/{studio-qk4bfsq2.js → studio-msc1ee1m.js} +4 -4
  66. package/dist/chunks/{studio-93zafjcm.js → studio-nfx354t1.js} +10 -10
  67. package/dist/chunks/{studio-mhhyamxf.js → studio-nsgw7dbk.js} +6 -6
  68. package/dist/chunks/{studio-qhhm6hbt.js → studio-rtskkm43.js} +4 -4
  69. package/dist/chunks/studio-t171hxhe.js +23 -0
  70. package/dist/chunks/{studio-hhvs4sdg.js → studio-vn5hske5.js} +10 -4
  71. package/dist/chunks/{studio-q3x06vmj.js → studio-wnsyffg1.js} +2 -2
  72. package/dist/chunks/{studio-5wt9nvhd.js → studio-xajk70w0.js} +29 -42
  73. package/dist/chunks/{studio-7xnmgv66.js → studio-ye9drbk8.js} +45 -44
  74. package/dist/chunks/{studio-y9zedyjn.js → studio-z2smx5ce.js} +2 -2
  75. package/dist/chunks/{studio-sbjyc8bt.js → studio-ze46gzjh.js} +9 -9
  76. package/dist/chunks/{studio-zdn2g6dt.js → studio-zjjde71a.js} +2 -2
  77. package/dist/chunks/{workspace-t55jdjbx.js → workspace-np10mayv.js} +18 -10
  78. package/dist/iframe-entry.js +9 -5
  79. package/dist/studio.css +1 -2
  80. package/dist/studio.js +910 -15705
  81. package/package.json +10 -10
  82. package/src/files/files.ts +38 -15
  83. package/src/grid/grid-lazy.ts +59 -0
  84. package/src/grid/grid-open.ts +20 -3
  85. package/src/grid/grid-panel.ts +43 -9
  86. package/src/media/media-open.ts +14 -2
  87. package/src/panels/chat-panel.ts +40 -5
  88. package/src/panels/pane-context.ts +5 -4
  89. package/src/panels/pane-grid.ts +100 -10
  90. package/src/panels/tab-drop.ts +220 -0
  91. package/src/panels/tab-strip.ts +235 -30
  92. package/src/services/ai-models.ts +13 -0
  93. package/src/services/module-preloads.ts +67 -0
  94. package/src/studio.ts +16 -6
  95. package/src/surfaces/commandbar.json +26 -16
  96. package/src/surfaces/formula-palette.json +8 -7
  97. package/src/surfaces/formula-palette.ts +10 -6
  98. package/src/surfaces/palette.json +8 -7
  99. package/src/surfaces/pane-grid.json +35 -3
  100. package/src/surfaces/pane-grid.ts +26 -4
  101. package/src/surfaces/tab-strip.json +16 -39
  102. package/src/surfaces/tab-strip.ts +76 -12
  103. package/src/ui/ai-credentials-form.ts +12 -1
  104. package/src/ui/panel-resize.ts +3 -23
  105. package/src/ui/virtual-window.ts +57 -4
  106. package/src/workspace/pane-derive.ts +7 -5
  107. package/src/workspace/session.ts +3 -3
  108. package/src/workspace/workspace.ts +160 -43
  109. package/styles/shell-frame.css +8 -0
  110. package/styles/shell-frame.json +4 -0
  111. package/dist/chunks/content-source-5mex4x1h.js +0 -46
  112. package/dist/chunks/entry-commands-234hjnqw.js +0 -42
  113. package/dist/chunks/layers-panel-pnnghw12.js +0 -40
  114. package/dist/chunks/menu-9p2w46gj.js +0 -15
  115. package/dist/chunks/publish-panel-5zt840sy.js +0 -27
  116. package/dist/chunks/quick-search-3748564r.js +0 -45
  117. package/dist/chunks/right-panel-eccz92qt.js +0 -45
@@ -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
@@ -2,13 +2,13 @@ import {
2
2
  resolveI18n,
3
3
  emptyContext,
4
4
  activeTab2
5
- } from "./studio-k75n7vhp.js";
5
+ } from "./studio-gk2twyh4.js";
6
6
  import {
7
7
  projectState
8
- } from "./studio-6ewqv390.js";
8
+ } from "./studio-m1p9b6c3.js";
9
9
  import {
10
10
  shell
11
- } from "./studio-qk90fgqm.js";
11
+ } from "./studio-fzjx96t2.js";
12
12
 
13
13
  // src/commands/levels.ts
14
14
  var LEVELS = ["application", "project", "document", "selection"];
@@ -255,4 +255,4 @@ function railPanelSet() {
255
255
  export { LEVELS, KEY_SCOPES, CATEGORIES, checkRecordPlacements, panelContext, registerPanel, getPanel, listPanels, isPanelVisible, railGroups, railPanelSet };
256
256
 
257
257
  //# debugId=18BC2C98470D23FD64756E2164756E21
258
- //# sourceMappingURL=studio-8scdew0e.js.map
258
+ //# sourceMappingURL=studio-27q131j3.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
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  intlHelpersClause
3
- } from "./studio-kkqkcp3d.js";
3
+ } from "./studio-d1n2bykn.js";
4
4
  import {
5
5
  LANGUAGE_TAG_PATTERN,
6
6
  activeTab2
7
- } from "./studio-k75n7vhp.js";
7
+ } from "./studio-gk2twyh4.js";
8
8
  import {
9
- isRef2,
9
+ isRef,
10
10
  isFunctionDef,
11
11
  isTemplateString
12
- } from "./studio-7r42c6ca.js";
12
+ } from "./studio-3ntvq6cg.js";
13
13
  import {
14
14
  reactive
15
- } from "./studio-p1dw8wfw.js";
15
+ } from "./studio-d8z5bajd.js";
16
16
  import {
17
17
  registerSurface,
18
18
  mountSurface
19
- } from "./studio-vfq8qpjt.js";
19
+ } from "./studio-0j7r7s9g.js";
20
20
  import {
21
21
  openMenu2
22
- } from "./studio-aj37eer3.js";
22
+ } from "./studio-jt27ta6x.js";
23
23
  import {
24
24
  cloneValue2
25
25
  } from "./studio-727xh0e3.js";
@@ -1520,7 +1520,7 @@ var VALUE_SOURCE_HINTS = {
1520
1520
  template: "Text with ${…} placeholders that fill in from signals."
1521
1521
  };
1522
1522
  function slotMode(value) {
1523
- if (isRef2(value)) {
1523
+ if (isRef(value)) {
1524
1524
  return "ref";
1525
1525
  }
1526
1526
  if (isFunctionDef(value)) {
@@ -2866,7 +2866,7 @@ function asText(value) {
2866
2866
  return typeof value === "object" ? JSON.stringify(value, null, 2) : String(value);
2867
2867
  }
2868
2868
  function validateFieldValue(schema, value, isRequired) {
2869
- if (isRef2(value)) {
2869
+ if (isRef(value)) {
2870
2870
  return "";
2871
2871
  }
2872
2872
  const empty = value === undefined || value === null || value === "";
@@ -3285,7 +3285,7 @@ function deriveField(prop, ps, args) {
3285
3285
  plan.commit = "ref";
3286
3286
  plan.debounceMs = 0;
3287
3287
  row.kind = "pointer";
3288
- row.value = isRef2(current) ? current.$ref : "";
3288
+ row.value = isRef(current) ? current.$ref : "";
3289
3289
  row.options = sources.map((s) => ({ label: s.label, value: s.value }));
3290
3290
  row.hasOptions = row.options.length > 0;
3291
3291
  return row;
@@ -3304,7 +3304,7 @@ function deriveField(prop, ps, args) {
3304
3304
  row.kind = "control";
3305
3305
  return row;
3306
3306
  }
3307
- if (isRef2(current) && isBindableField(ps)) {
3307
+ if (isRef(current) && isBindableField(ps)) {
3308
3308
  plan.commit = "ref";
3309
3309
  plan.debounceMs = 0;
3310
3310
  row.kind = "text";
@@ -3418,7 +3418,7 @@ function deriveCell(prop, rowKey, cellKey, cellSchema, held, args, plan) {
3418
3418
  row: rowKey,
3419
3419
  value: ""
3420
3420
  };
3421
- if (isRef2(held)) {
3421
+ if (isRef(held)) {
3422
3422
  cell.value = held.$ref;
3423
3423
  plan.refCells?.add(id);
3424
3424
  return cell;
@@ -3501,5 +3501,5 @@ function resolveContextPointer(pointer, opts) {
3501
3501
 
3502
3502
  export { REDIRECT_STATUSES, VALUE_SOURCE_LABELS, VALUE_SOURCE_HINTS, slotMode, TAG_EXPRESSION_OPERATORS, capsForPosition, slotCaps, stashSlotValue, hasStashedSlotValue, effectiveSlotMode, slotModeSeed, switchSlotMode, registerFormControl, referenceTarget, mountSchemaForm, resolveContextPointer };
3503
3503
 
3504
- //# debugId=427B709FE510BC3D64756E2164756E21
3505
- //# sourceMappingURL=studio-js8nv53n.js.map
3504
+ //# debugId=028D7979B65A1DC964756E2164756E21
3505
+ //# sourceMappingURL=studio-4f3psrk1.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  reactive
3
- } from "./studio-p1dw8wfw.js";
3
+ } from "./studio-d8z5bajd.js";
4
4
  import {
5
5
  getPlatform2
6
6
  } from "./studio-6nzaktvy.js";
7
7
  import {
8
8
  loadFormats2,
9
9
  formatForPath2
10
- } from "./studio-vw7mzp6z.js";
10
+ } from "./studio-6gryj0sg.js";
11
11
  import {
12
12
  projectState
13
- } from "./studio-6ewqv390.js";
13
+ } from "./studio-m1p9b6c3.js";
14
14
  import {
15
15
  resolveI18n,
16
16
  servedLocaleOfPath,
@@ -22,20 +22,20 @@ import {
22
22
  workspace2,
23
23
  openTab2,
24
24
  activateTab2
25
- } from "./studio-k75n7vhp.js";
25
+ } from "./studio-gk2twyh4.js";
26
26
  import {
27
27
  registerSurface,
28
28
  mountSurface,
29
29
  openDialogSurface,
30
30
  layerHost2
31
- } from "./studio-vfq8qpjt.js";
31
+ } from "./studio-0j7r7s9g.js";
32
32
  import {
33
33
  errorMessage2
34
34
  } from "./studio-yxa81f45.js";
35
35
  import {
36
36
  markLocalMutation2,
37
37
  isRecentLocal2
38
- } from "./studio-g3jevyjt.js";
38
+ } from "./studio-4c041r8y.js";
39
39
  import {
40
40
  makeGridTabId,
41
41
  parseGridTabId,
@@ -44,16 +44,16 @@ import {
44
44
  coerceCellInput,
45
45
  cellToText,
46
46
  createGridController
47
- } from "./studio-gb13095a.js";
47
+ } from "./studio-ke09tn9k.js";
48
48
  import {
49
49
  collectionDirs2,
50
50
  createCollectionSource2,
51
51
  createPagesSource2
52
- } from "./studio-1knfqgy7.js";
52
+ } from "./studio-j0w60gft.js";
53
53
  import {
54
54
  MEDIA_EXTENSIONS,
55
55
  extensionOf
56
- } from "./studio-jxp12rnj.js";
56
+ } from "./studio-b7xacrwe.js";
57
57
  // src/surfaces/grid-open.json
58
58
  var grid_open_default = {
59
59
  $schema: "https://jxsuite.com/schema/v1",
@@ -999,10 +999,10 @@ function createLibrarySource(dirs) {
999
999
 
1000
1000
  // src/grid/grid-open.ts
1001
1001
  var GRID_STUB_DOCUMENT = { children: [], tagName: "div" };
1002
- async function openCsvGridTab(path) {
1002
+ async function openCsvGridTab(path, opts = {}) {
1003
1003
  const existing = workspace2.tabs.get(path);
1004
1004
  if (existing) {
1005
- activateTab2(path);
1005
+ activateTab2(path, { focus: opts.focus !== false });
1006
1006
  return existing;
1007
1007
  }
1008
1008
  try {
@@ -1014,7 +1014,10 @@ async function openCsvGridTab(path) {
1014
1014
  document: structuredClone(GRID_STUB_DOCUMENT),
1015
1015
  documentPath: path,
1016
1016
  id: path,
1017
- sourceFormat: formatForPath2(path)?.name ?? null
1017
+ sourceFormat: formatForPath2(path)?.name ?? null,
1018
+ ...opts.paneId !== undefined && { paneId: opts.paneId },
1019
+ ...opts.preview === true && { preview: true },
1020
+ ...opts.focus === false && { focus: false }
1018
1021
  });
1019
1022
  const controller = createGridController(tab, source);
1020
1023
  controller.load();
@@ -1193,5 +1196,5 @@ function registerGridCommands(registry) {
1193
1196
 
1194
1197
  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 };
1195
1198
 
1196
- //# debugId=0C172BA58EF4714F64756E2164756E21
1197
- //# sourceMappingURL=studio-pxbgypmg.js.map
1199
+ //# debugId=568206775D45105064756E2164756E21
1200
+ //# sourceMappingURL=studio-50wfwy44.js.map
@@ -21,7 +21,7 @@ async function applyPendingSchemas() {
21
21
  }
22
22
  _pendingSchemasDirty = false;
23
23
  try {
24
- const { applyProjectSchemas } = await (__preload("8r62fj6y"), import("./monaco-setup-8r62fj6y.js"));
24
+ const { applyProjectSchemas } = await (__preload("km6abc6q"), import("./monaco-setup-km6abc6q.js"));
25
25
  applyProjectSchemas(_pendingSchemas);
26
26
  } catch {}
27
27
  }
@@ -32,7 +32,7 @@ function loadMonaco() {
32
32
  _loading ??= (async () => {
33
33
  const [monaco] = await Promise.all([
34
34
  (__preload("3qhbg51x"), import("./editor-3qhbg51x.js")),
35
- (__preload("8r62fj6y"), import("./monaco-setup-8r62fj6y.js"))
35
+ (__preload("km6abc6q"), import("./monaco-setup-km6abc6q.js"))
36
36
  ]);
37
37
  _monaco = monaco;
38
38
  await applyPendingSchemas();
@@ -119,12 +119,12 @@ async function shareProjectSchemas(platform) {
119
119
  schemas = await platform.fetchProjectSchemas?.() ?? null;
120
120
  } catch {}
121
121
  setProjectSchemasForMonaco(schemas);
122
- await (__preload("j0wxk72w"), import("./jx-validate-j0wxk72w.js")).then(({ applyProjectSchemas }) => applyProjectSchemas(schemas)).catch(() => false);
122
+ await (__preload("epp2z3s3"), import("./jx-validate-epp2z3s3.js")).then(({ applyProjectSchemas }) => applyProjectSchemas(schemas)).catch(() => false);
123
123
  }
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("2mrptyek"), import("./extension-sections-2mrptyek.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-6gryj0sg.js.map
@@ -4,17 +4,17 @@ import {
4
4
  import {
5
5
  debouncedStyleCommit,
6
6
  renderOnly
7
- } from "./studio-6ewqv390.js";
7
+ } from "./studio-m1p9b6c3.js";
8
8
  import {
9
9
  REGION_ATTR,
10
10
  overlayRegion,
11
11
  registerSurface,
12
12
  mountSurface,
13
13
  layerHost2
14
- } from "./studio-vfq8qpjt.js";
14
+ } from "./studio-0j7r7s9g.js";
15
15
  import {
16
16
  reactive
17
- } from "./studio-p1dw8wfw.js";
17
+ } from "./studio-d8z5bajd.js";
18
18
  import {
19
19
  IMAGE_EXTENSIONS,
20
20
  MEDIA_EXTENSIONS,
@@ -23,17 +23,17 @@ import {
23
23
  uploadAssets,
24
24
  mediaSiteUrl,
25
25
  previewFileSrc
26
- } from "./studio-jxp12rnj.js";
26
+ } from "./studio-b7xacrwe.js";
27
27
  import {
28
28
  peekMediaMeta,
29
29
  seedMediaMeta,
30
30
  recordImageSize,
31
31
  invalidateMediaMeta,
32
32
  mediaMetaSummary
33
- } from "./studio-syg2tadj.js";
33
+ } from "./studio-gtfq1dkz.js";
34
34
  import {
35
35
  previewAssetSrc
36
- } from "./studio-nzzpvzx9.js";
36
+ } from "./studio-ab87phj1.js";
37
37
  import {
38
38
  rectOf
39
39
  } from "./studio-rs76k67r.js";
@@ -836,4 +836,4 @@ function unmountMediaPicker2(host) {
836
836
  export { openPopoverSurface, invalidateMediaCache2, showMediaPickerPopover2, uploadAndAssign2, pickAndUpload2, mountMediaPicker2, unmountMediaPicker2 };
837
837
 
838
838
  //# debugId=9A676D8FC549E4AE64756E2164756E21
839
- //# sourceMappingURL=studio-e1pgga3k.js.map
839
+ //# sourceMappingURL=studio-6kvgrkrp.js.map
@@ -2,7 +2,7 @@ import {
2
2
  showModal,
3
3
  close2,
4
4
  activeRegistry
5
- } from "./studio-kkqkcp3d.js";
5
+ } from "./studio-d1n2bykn.js";
6
6
  import {
7
7
  platformSupportsPublish,
8
8
  listAccounts2,
@@ -11,16 +11,16 @@ import {
11
11
  connectDeploy,
12
12
  currentDeploy,
13
13
  noteDeployment
14
- } from "./studio-mhhyamxf.js";
14
+ } from "./studio-nsgw7dbk.js";
15
15
  import {
16
16
  getPlatform2
17
17
  } from "./studio-6nzaktvy.js";
18
18
  import {
19
19
  projectState
20
- } from "./studio-6ewqv390.js";
20
+ } from "./studio-m1p9b6c3.js";
21
21
  import {
22
22
  reactive
23
- } from "./studio-p1dw8wfw.js";
23
+ } from "./studio-d8z5bajd.js";
24
24
  import {
25
25
  REGION_ATTR,
26
26
  overlayRegion,
@@ -28,14 +28,14 @@ import {
28
28
  mountSurface,
29
29
  whenReady,
30
30
  layerHost2
31
- } from "./studio-vfq8qpjt.js";
31
+ } from "./studio-0j7r7s9g.js";
32
32
  import {
33
33
  getCfToken2,
34
34
  setCfToken2
35
- } from "./studio-6xa21ej9.js";
35
+ } from "./studio-c04nzbby.js";
36
36
  import {
37
37
  resetModelCache
38
- } from "./studio-hhvs4sdg.js";
38
+ } from "./studio-vn5hske5.js";
39
39
  import {
40
40
  __preload
41
41
  } from "./studio-5te5tqng.js";
@@ -1261,7 +1261,7 @@ async function hostedConnect() {
1261
1261
  if (outcome?.status === "timeout") {
1262
1262
  _error = "The Cloudflare window didn't finish. Sign in there, then reconnect — nothing was changed.";
1263
1263
  } else if (outcome?.status === "connected" && !outcome.connection.accountId) {
1264
- const { openCfAccountPicker } = await (__preload("qwkm9zrf"), import("./cf-account-picker-qwkm9zrf.js"));
1264
+ const { openCfAccountPicker } = await (__preload("nwnwdm6p"), import("./cf-account-picker-nwnwdm6p.js"));
1265
1265
  await openCfAccountPicker();
1266
1266
  }
1267
1267
  } catch (error) {
@@ -1353,4 +1353,4 @@ function openPublishPanel2() {
1353
1353
  export { seedPublishConnected2, openPublishPanel2 };
1354
1354
 
1355
1355
  //# debugId=6C5ED8D5F4FBF16B64756E2164756E21
1356
- //# sourceMappingURL=studio-wqz6dggm.js.map
1356
+ //# sourceMappingURL=studio-7144epdr.js.map