@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,6 +1,6 @@
1
1
  import {
2
2
  isJsonObject,
3
- isRef2,
3
+ isRef,
4
4
  isFunctionDef,
5
5
  isExpressionDef,
6
6
  isNamedFormulaDef,
@@ -15,7 +15,7 @@ import {
15
15
  paramNames,
16
16
  isTagExpression,
17
17
  isPrivateStateKey
18
- } from "./studio-7r42c6ca.js";
18
+ } from "./studio-3ntvq6cg.js";
19
19
  import {
20
20
  effectScope,
21
21
  onScopeDispose,
@@ -27,11 +27,11 @@ import {
27
27
  shallowReactive,
28
28
  isReactive,
29
29
  toRaw,
30
- isRef,
30
+ isRef2,
31
31
  ref,
32
32
  shallowRef,
33
33
  computed
34
- } from "./studio-p1dw8wfw.js";
34
+ } from "./studio-d8z5bajd.js";
35
35
  import {
36
36
  __export
37
37
  } from "./studio-5te5tqng.js";
@@ -1063,7 +1063,7 @@ function buildStyleRules(style, options = {}) {
1063
1063
  resolveValue
1064
1064
  } = options;
1065
1065
  const rules = [];
1066
- const isBlock = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && !isRef2(value);
1066
+ const isBlock = (value) => value !== null && typeof value === "object" && !Array.isArray(value) && !isRef(value);
1067
1067
  const blocksOf = (key, value) => {
1068
1068
  if (isBlock(value)) {
1069
1069
  return [value];
@@ -1077,7 +1077,7 @@ function buildStyleRules(style, options = {}) {
1077
1077
  if (value === undefined || value === null) {
1078
1078
  return null;
1079
1079
  }
1080
- if (isRef2(value)) {
1080
+ if (isRef(value)) {
1081
1081
  return reactive ? resolveValue?.(property, value, target) ?? null : null;
1082
1082
  }
1083
1083
  if (typeof value === "object") {
@@ -2369,7 +2369,7 @@ function boundPropKey(key, val, state) {
2369
2369
  return null;
2370
2370
  }
2371
2371
  const stored = toRaw(state)[sub];
2372
- if (isRef(stored) || typeof stored === "function") {
2372
+ if (isRef2(stored) || typeof stored === "function") {
2373
2373
  return null;
2374
2374
  }
2375
2375
  if (typeof stored === "object" && stored !== null) {
@@ -3918,7 +3918,7 @@ function resolveRef(refPath, state) {
3918
3918
  return readPath(state, refPath) ?? null;
3919
3919
  }
3920
3920
  function isRefObj(v) {
3921
- return isRef2(v);
3921
+ return isRef(v);
3922
3922
  }
3923
3923
  function getPath2(obj, path) {
3924
3924
  return readPath(obj, path);
@@ -17664,5 +17664,5 @@ function registerUi(options = {}) {
17664
17664
 
17665
17665
  export { isKeyframesAtRule, pureSchemeOf, intlHelpersClause, PURE_METHOD_OPS, BLESSED_OPERATORS, BLESSED_GLOBALS, isMutating, evaluateExpression, assetUrlFor, PUBLIC_DIR, BUILD_LANES, splitRefSuffix, isNonRelativeRef, normalizeProjectPath, dirOfPath, joinProjectPath, projectPathForRef, encodeProjectPath, mount3, preloadDocument, setSkipServerFunctions, runScoped, setCanvasAssetResolver, buildScope, renderNode, redefineElement, defineElement, openAt, close, showModal, close2, ensureCaret, focusItem, splitModifiersOf, selectValue, POPOVER_DEFAULT_MODE, attrs, literalAttr, tagOf, labelOf, isPopover, idOf, walk, popoverIdsIn, documentHasPopover, scalar, findPopoverDefects, popoverDisplayRepair, POPOVER_TAGS, INVOKER_TAGS, KIT_BASE, registerUi, setActiveRegistry, activeRegistry };
17666
17666
 
17667
- //# debugId=FA9BCD95DF486F2164756E2164756E21
17668
- //# sourceMappingURL=studio-kkqkcp3d.js.map
17667
+ //# debugId=9467D68A831CC3FC64756E2164756E21
17668
+ //# sourceMappingURL=studio-p6pmwkvh.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  ensureCaret
3
- } from "./studio-kkqkcp3d.js";
3
+ } from "./studio-p6pmwkvh.js";
4
4
  import {
5
5
  registerSurface,
6
6
  mountSurface,
7
7
  getLayerSlot2,
8
8
  clearLayerSlot2
9
- } from "./studio-vfq8qpjt.js";
9
+ } from "./studio-ympe0n7a.js";
10
10
  import {
11
11
  reactive
12
- } from "./studio-p1dw8wfw.js";
12
+ } from "./studio-d8z5bajd.js";
13
13
  import {
14
14
  rectOf
15
15
  } from "./studio-rs76k67r.js";
@@ -419,4 +419,4 @@ function restoreFocus(opener) {
419
419
  export { openMenu2 };
420
420
 
421
421
  //# debugId=AF40C481EA74291464756E2164756E21
422
- //# sourceMappingURL=studio-aj37eer3.js.map
422
+ //# sourceMappingURL=studio-qa7fzxan.js.map
@@ -7,31 +7,31 @@ import {
7
7
  import {
8
8
  reactive,
9
9
  notify2
10
- } from "./studio-p1dw8wfw.js";
10
+ } from "./studio-d8z5bajd.js";
11
11
  import {
12
12
  projectState
13
- } from "./studio-6ewqv390.js";
13
+ } from "./studio-m1p9b6c3.js";
14
14
  import {
15
15
  paneRegion,
16
16
  registerSurface,
17
17
  mountSurface
18
- } from "./studio-vfq8qpjt.js";
18
+ } from "./studio-ympe0n7a.js";
19
19
  import {
20
20
  mountSchemaForm,
21
21
  resolveContextPointer
22
- } from "./studio-js8nv53n.js";
22
+ } from "./studio-ctm7bhx5.js";
23
23
  import {
24
24
  validateProjectConfig2
25
25
  } from "./studio-kcgff4r0.js";
26
26
  import {
27
27
  deriveSecretEnvName
28
- } from "./studio-pxbgypmg.js";
28
+ } from "./studio-t3adrr56.js";
29
29
  import {
30
30
  paneOfContainer
31
- } from "./studio-1z1kcjv4.js";
31
+ } from "./studio-etvx9s2g.js";
32
32
  import {
33
33
  commitProjectConfig
34
- } from "./studio-qk90fgqm.js";
34
+ } from "./studio-mpzwze9x.js";
35
35
  // src/surfaces/settings-contributed.json
36
36
  var settings_contributed_default = {
37
37
  $schema: "https://jxsuite.com/schema/v1",
@@ -951,4 +951,4 @@ function renderContributedSection(container, contribution, opts = {}) {
951
951
  export { selectContributedEntry, renderContributedSection };
952
952
 
953
953
  //# debugId=E288D4A2952F914964756E2164756E21
954
- //# sourceMappingURL=studio-sbjyc8bt.js.map
954
+ //# sourceMappingURL=studio-sar8g54p.js.map
@@ -0,0 +1,23 @@
1
+ // src/grid/grid-idle.ts
2
+ var liveGrids = new Set;
3
+ function registerGridProbe(probe) {
4
+ liveGrids.add(probe);
5
+ return () => liveGrids.delete(probe);
6
+ }
7
+ function gridIdleBlockers() {
8
+ const blockers = [];
9
+ for (const probe of liveGrids) {
10
+ try {
11
+ const reason = probe();
12
+ if (reason) {
13
+ blockers.push(reason);
14
+ }
15
+ } catch {}
16
+ }
17
+ return blockers;
18
+ }
19
+
20
+ export { registerGridProbe, gridIdleBlockers };
21
+
22
+ //# debugId=23F8A33232CDB08E64756E2164756E21
23
+ //# sourceMappingURL=studio-t171hxhe.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-28vs5k2y.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-ez11dmdh.js";
26
26
  import {
27
27
  registerSurface,
28
28
  mountSurface,
29
29
  openDialogSurface,
30
30
  layerHost2
31
- } from "./studio-vfq8qpjt.js";
31
+ } from "./studio-ympe0n7a.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-x10fp4tp.js";
48
48
  import {
49
49
  collectionDirs2,
50
50
  createCollectionSource2,
51
51
  createPagesSource2
52
- } from "./studio-1knfqgy7.js";
52
+ } from "./studio-5t7ena5z.js";
53
53
  import {
54
54
  MEDIA_EXTENSIONS,
55
55
  extensionOf
56
- } from "./studio-jxp12rnj.js";
56
+ } from "./studio-en82c639.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-t3adrr56.js.map
@@ -9,7 +9,7 @@ import {
9
9
  setSetting,
10
10
  setSettings,
11
11
  clearSettings
12
- } from "./studio-y9zedyjn.js";
12
+ } from "./studio-z2smx5ce.js";
13
13
 
14
14
  // src/services/ai-settings.ts
15
15
  function getOpenAiKey() {
@@ -54,6 +54,7 @@ var proxyConfigured = false;
54
54
  var proxyManaged = false;
55
55
  var proxyDefaultModel = "";
56
56
  var proxyCode;
57
+ var proxyModelsError = "";
57
58
  var proxyProbe = null;
58
59
  var probeListeners = new Set;
59
60
  var PROBE_STALE_MS = 600000;
@@ -66,6 +67,7 @@ function resetModelCache() {
66
67
  proxyManaged = false;
67
68
  proxyDefaultModel = "";
68
69
  proxyCode = undefined;
70
+ proxyModelsError = "";
69
71
  proxyProbe = null;
70
72
  probeSettledAt = 0;
71
73
  }
@@ -134,6 +136,9 @@ function isManagedProxy() {
134
136
  function proxyStateCode() {
135
137
  return proxyCode;
136
138
  }
139
+ function proxyModelsErrorMessage() {
140
+ return proxyModelsError;
141
+ }
137
142
  function getProxyDefaultModel() {
138
143
  return proxyDefaultModel;
139
144
  }
@@ -175,6 +180,7 @@ async function fetchAvailableModels(opts = {}) {
175
180
  proxyManaged = data.managed === true;
176
181
  proxyDefaultModel = data.defaultModel ?? "";
177
182
  proxyCode = data.code;
183
+ proxyModelsError = data.upstreamError !== undefined ? data.upstreamMessage ?? "" : "";
178
184
  cache = (data.models || []).map((m) => {
179
185
  const model = { id: m.id, name: m.name || m.id };
180
186
  if (typeof m.contextWindow === "number") {
@@ -189,7 +195,7 @@ async function fetchAvailableModels(opts = {}) {
189
195
  return cache;
190
196
  }
191
197
 
192
- export { getOpenAiKey, setOpenAiKey, hasOpenAiKey, getBaseUrl, storedModel, setModel, saveAiProvider, clearAiProvider, aiConnection, resetModelCache, cachedModels, modelToolSupport, modelContextWindow, ensureProxyProbe, hasAiCredentials, isProxyConfigured, isManagedProxy, proxyStateCode, preferredModel, fetchAvailableModels };
198
+ export { getOpenAiKey, setOpenAiKey, hasOpenAiKey, getBaseUrl, storedModel, setModel, saveAiProvider, clearAiProvider, aiConnection, resetModelCache, cachedModels, modelToolSupport, modelContextWindow, ensureProxyProbe, hasAiCredentials, isProxyConfigured, isManagedProxy, proxyStateCode, proxyModelsErrorMessage, preferredModel, fetchAvailableModels };
193
199
 
194
- //# debugId=F6D8D74CC11D733564756E2164756E21
195
- //# sourceMappingURL=studio-hhvs4sdg.js.map
200
+ //# debugId=C5291DD230D7E25064756E2164756E21
201
+ //# sourceMappingURL=studio-vn5hske5.js.map
@@ -11,13 +11,13 @@ import {
11
11
  } from "./studio-6nzaktvy.js";
12
12
  import {
13
13
  formatForPath2
14
- } from "./studio-vw7mzp6z.js";
14
+ } from "./studio-28vs5k2y.js";
15
15
  import {
16
16
  POLL_GIT,
17
17
  projectState,
18
18
  rendersInFlight,
19
19
  render3
20
- } from "./studio-6ewqv390.js";
20
+ } from "./studio-m1p9b6c3.js";
21
21
  import {
22
22
  collabState,
23
23
  flushAllCollab,
@@ -25,21 +25,21 @@ import {
25
25
  activeTab2,
26
26
  openTab2,
27
27
  activateTab2
28
- } from "./studio-k75n7vhp.js";
28
+ } from "./studio-ez11dmdh.js";
29
29
  import {
30
30
  effectScope,
31
31
  effect,
32
32
  reactive,
33
33
  now,
34
34
  notify2
35
- } from "./studio-p1dw8wfw.js";
35
+ } from "./studio-d8z5bajd.js";
36
36
  import {
37
37
  extensionOf,
38
38
  isMediaFile,
39
39
  mediaKind,
40
40
  mediaSiteUrl,
41
41
  previewFileSrc
42
- } from "./studio-jxp12rnj.js";
42
+ } from "./studio-en82c639.js";
43
43
  import {
44
44
  REGION_ATTR,
45
45
  paneRegion,
@@ -51,26 +51,26 @@ import {
51
51
  showConfirmDialog2,
52
52
  showPromptDialog2,
53
53
  overlayIdleBlockers2
54
- } from "./studio-vfq8qpjt.js";
54
+ } from "./studio-ympe0n7a.js";
55
55
  import {
56
56
  showModal,
57
57
  close2
58
- } from "./studio-kkqkcp3d.js";
58
+ } from "./studio-p6pmwkvh.js";
59
59
  import {
60
60
  peekMediaMeta,
61
61
  loadMediaMeta,
62
62
  recordImageSize,
63
63
  formatBytes
64
- } from "./studio-syg2tadj.js";
64
+ } from "./studio-5nz00bhh.js";
65
65
  import {
66
66
  shell
67
- } from "./studio-qk90fgqm.js";
67
+ } from "./studio-mpzwze9x.js";
68
68
  import {
69
69
  registerPanel
70
- } from "./studio-8scdew0e.js";
70
+ } from "./studio-x72j58vw.js";
71
71
  import {
72
72
  authenticateGithub
73
- } from "./studio-qk4bfsq2.js";
73
+ } from "./studio-wjpgxywa.js";
74
74
  import {
75
75
  beginActivity,
76
76
  activityIdleBlockers,
@@ -78,12 +78,15 @@ import {
78
78
  peekMediaUsages,
79
79
  loadMediaUsages,
80
80
  mediaUsageHeadline
81
- } from "./studio-tqgryxwg.js";
81
+ } from "./studio-y4f9fdge.js";
82
82
  import {
83
83
  canvasIdleBlockers2,
84
84
  canvasPointAt2,
85
85
  revealCanvasPath2
86
- } from "./studio-1z1kcjv4.js";
86
+ } from "./studio-etvx9s2g.js";
87
+ import {
88
+ gridIdleBlockers
89
+ } from "./studio-t171hxhe.js";
87
90
  import {
88
91
  rectOf
89
92
  } from "./studio-rs76k67r.js";
@@ -734,7 +737,7 @@ function usageOf(usage) {
734
737
  };
735
738
  }
736
739
  async function openDocument(path) {
737
- const { openFileInTab } = await (__preload("hnxqxtsg"), import("./files-hnxqxtsg.js"));
740
+ const { openFileInTab } = await (__preload("msaf95y6"), import("./files-msaf95y6.js"));
738
741
  await openFileInTab(path);
739
742
  }
740
743
  function renderMediaMode(surface, tab) {
@@ -816,10 +819,10 @@ function isViewableMedia(path) {
816
819
  function mediaTabModes(path) {
817
820
  return extensionOf(path) === ".svg" ? [MEDIA_MODE, "source"] : [MEDIA_MODE];
818
821
  }
819
- function openMediaTab(path) {
822
+ function openMediaTab(path, opts = {}) {
820
823
  const existing = workspace2.tabs.get(path);
821
824
  if (existing) {
822
- activateTab2(path);
825
+ activateTab2(path, { focus: opts.focus !== false });
823
826
  return existing;
824
827
  }
825
828
  return openTab2({
@@ -827,7 +830,10 @@ function openMediaTab(path) {
827
830
  document: structuredClone(MEDIA_STUB_DOCUMENT),
828
831
  documentPath: path,
829
832
  id: path,
830
- sourceFormat: null
833
+ sourceFormat: null,
834
+ ...opts.paneId !== undefined && { paneId: opts.paneId },
835
+ ...opts.preview === true && { preview: true },
836
+ ...opts.focus === false && { focus: false }
831
837
  });
832
838
  }
833
839
 
@@ -881,7 +887,7 @@ async function openComparisonTab(path) {
881
887
  if (!canRenderComparison(path)) {
882
888
  return openDiffTab(path);
883
889
  }
884
- const files = await (__preload("hnxqxtsg"), import("./files-hnxqxtsg.js"));
890
+ const files = await (__preload("msaf95y6"), import("./files-msaf95y6.js"));
885
891
  const opened = await files.openFileInTab(path, {});
886
892
  return opened ?? [...workspace2.tabs.values()].find((tab) => tab.documentPath === path) ?? null;
887
893
  }
@@ -1266,7 +1272,7 @@ async function createGithubRepository({ projectName }) {
1266
1272
  });
1267
1273
  return false;
1268
1274
  }
1269
- const { refreshGitStatus } = await (__preload("xwj8fpab"), import("./git-panel-xwj8fpab.js"));
1275
+ const { refreshGitStatus } = await (__preload("bv5e22j0"), import("./git-panel-bv5e22j0.js"));
1270
1276
  await refreshGitStatus();
1271
1277
  activity.done(repo.html_url);
1272
1278
  notify2.success(`Repository created: ${repo.html_url}`, { key: "github.repo" });
@@ -1296,25 +1302,6 @@ function seedProjectList(entries) {
1296
1302
  cache = entries;
1297
1303
  }
1298
1304
 
1299
- // src/grid/grid-idle.ts
1300
- var liveGrids = new Set;
1301
- function registerGridProbe(probe) {
1302
- liveGrids.add(probe);
1303
- return () => liveGrids.delete(probe);
1304
- }
1305
- function gridIdleBlockers() {
1306
- const blockers = [];
1307
- for (const probe of liveGrids) {
1308
- try {
1309
- const reason = probe();
1310
- if (reason) {
1311
- blockers.push(reason);
1312
- }
1313
- } catch {}
1314
- }
1315
- return blockers;
1316
- }
1317
-
1318
1305
  // src/services/idle.ts
1319
1306
  var QUIET_FRAMES = 2;
1320
1307
  var DEFAULT_IDLE_TIMEOUT_MS = 1e4;
@@ -4518,7 +4505,7 @@ async function discardFile(path) {
4518
4505
  await gitAction("gitDiscard", [path]);
4519
4506
  }
4520
4507
  function openCommitMenu(anchor) {
4521
- (__preload("9p2w46gj"), import("./menu-9p2w46gj.js")).then(({ openMenu }) => {
4508
+ (__preload("qht48vnc"), import("./menu-qht48vnc.js")).then(({ openMenu }) => {
4522
4509
  openMenu({
4523
4510
  label: "Commit options",
4524
4511
  opener: anchor,
@@ -4757,7 +4744,7 @@ function registerGitPanel2() {
4757
4744
  });
4758
4745
  }
4759
4746
 
4760
- export { hydrateProjectList, getProjectList, registerGridProbe, shouldInstallAutomation, installAutomationHook, stripRange, isUpgrade, maybePromptJxsuiteUpdate, autoSyncProjectOnOpen, mediaPaneMounted, detachMediaPane, renderMediaMode, isViewableMedia, openMediaTab, canRenderComparison, refreshGitStatus2, noteFileSaved2, cloneRepository2, platformSupportsClone2, loadDiffForLens2, renderGitPanel2, registerSourceControlCommands2, cleanupGitPanel2, registerGitPanel2 };
4747
+ export { hydrateProjectList, getProjectList, shouldInstallAutomation, installAutomationHook, stripRange, isUpgrade, maybePromptJxsuiteUpdate, autoSyncProjectOnOpen, mediaPaneMounted, detachMediaPane, renderMediaMode, isViewableMedia, openMediaTab, canRenderComparison, refreshGitStatus2, noteFileSaved2, cloneRepository2, platformSupportsClone2, loadDiffForLens2, renderGitPanel2, registerSourceControlCommands2, cleanupGitPanel2, registerGitPanel2 };
4761
4748
 
4762
- //# debugId=C2AF7BC5F2DB186C64756E2164756E21
4763
- //# sourceMappingURL=studio-5wt9nvhd.js.map
4749
+ //# debugId=9BC159B45C360F4964756E2164756E21
4750
+ //# sourceMappingURL=studio-vt0tj32j.js.map
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  reactive,
6
6
  notify2
7
- } from "./studio-p1dw8wfw.js";
7
+ } from "./studio-d8z5bajd.js";
8
8
  import {
9
9
  REGION_ATTR,
10
10
  overlayRegion,
@@ -12,11 +12,11 @@ import {
12
12
  mountSurface,
13
13
  whenReady,
14
14
  layerHost2
15
- } from "./studio-vfq8qpjt.js";
15
+ } from "./studio-ympe0n7a.js";
16
16
  import {
17
17
  showModal,
18
18
  close2
19
- } from "./studio-kkqkcp3d.js";
19
+ } from "./studio-p6pmwkvh.js";
20
20
  // src/surfaces/github-auth.json
21
21
  var github_auth_default = {
22
22
  $schema: "https://jxsuite.com/schema/v1",
@@ -359,4 +359,4 @@ async function authenticateGithub() {
359
359
  export { githubTokenStored, githubTokenLocation, clearGithubToken, authenticateGithub };
360
360
 
361
361
  //# debugId=6031989CF8E575E564756E2164756E21
362
- //# sourceMappingURL=studio-qk4bfsq2.js.map
362
+ //# sourceMappingURL=studio-wjpgxywa.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  toRaw,
3
3
  notify2
4
- } from "./studio-p1dw8wfw.js";
4
+ } from "./studio-d8z5bajd.js";
5
5
 
6
6
  // src/view.ts
7
7
  var view = {
@@ -261,4 +261,4 @@ function tabBufferUnsaved2(tab) {
261
261
  export { view, nextRenderGeneration, surfaceForPane, allCanvasSurfaces, stageContaining, registerCanvasSurface, createPaneSurface, setSurfaceTeardown, disposePaneSurface, BUFFER_COMMIT2, bufferWrites2, commitBufferWrites2, cancelBufferWrites2, bufferIsLive2, bufferMovedOn2, commitTabBuffers2, tabBufferUnsaved2 };
262
262
 
263
263
  //# debugId=CEB2BECD922331C964756E2164756E21
264
- //# sourceMappingURL=studio-q3x06vmj.js.map
264
+ //# sourceMappingURL=studio-wnsyffg1.js.map