@jxsuite/studio 5.0.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 (132) hide show
  1. package/dist/chunks/{cf-account-picker-fyf63pmy.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-5y78e05d.js +20 -0
  4. package/dist/chunks/content-source-sgg1sv6n.js +46 -0
  5. package/dist/chunks/{convert-to-repeater-d0cgnb6d.js → convert-to-repeater-mf1cxgfn.js} +25 -25
  6. package/dist/chunks/entry-commands-w9qsxa6q.js +42 -0
  7. package/dist/chunks/{extension-sections-fy7q4fe9.js → extension-sections-c6zwzbre.js} +27 -27
  8. package/dist/chunks/file-ops-vrpq1jjk.js +47 -0
  9. package/dist/chunks/{files-ef8fgs3w.js → files-msaf95y6.js} +33 -32
  10. package/dist/chunks/{format-host-3c33nwr8.js → format-host-f64fnesp.js} +2 -2
  11. package/dist/chunks/{fs-events-13tj6sex.js → fs-events-3y6y0nrm.js} +6 -6
  12. package/dist/chunks/git-panel-bv5e22j0.js +50 -0
  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-jgesd924.js → iframe-host-dh5np8vk.js} +14 -14
  16. package/dist/chunks/{layers-1nq5evsh.js → layers-1vcfdbet.js} +7 -6
  17. package/dist/chunks/layers-panel-fksbdg4q.js +40 -0
  18. package/dist/chunks/{media-picker-2qbetq73.js → media-picker-p49nhqhs.js} +14 -14
  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-n553f0e1.js → references-h69xp9zz.js} +4 -4
  26. package/dist/chunks/right-panel-j97t2yvy.js +45 -0
  27. package/dist/chunks/{studio-18avnhjp.js → studio-01jeck2y.js} +36 -30
  28. package/dist/chunks/{studio-9xxz1q69.js → studio-14d9tq4d.js} +9 -9
  29. package/dist/chunks/{studio-xsykpvsh.js → studio-15f3kxqe.js} +19 -19
  30. package/dist/chunks/studio-1tbjfqv4.js +146 -0
  31. package/dist/chunks/{studio-79y5sz51.js → studio-28vs5k2y.js} +2 -2
  32. package/dist/chunks/{studio-3hxkd92t.js → studio-2mdbbc76.js} +10 -10
  33. package/dist/chunks/{studio-7r42c6ca.js → studio-3ntvq6cg.js} +5 -5
  34. package/dist/chunks/{studio-8jn5yhyn.js → studio-4c041r8y.js} +3 -3
  35. package/dist/chunks/{studio-qahxvnan.js → studio-4r14yzyy.js} +4 -4
  36. package/dist/chunks/{studio-arfpe389.js → studio-4xmjcrg3.js} +6 -6
  37. package/dist/chunks/{studio-5523bpzt.js → studio-5nz00bhh.js} +3 -3
  38. package/dist/chunks/{studio-x3rty6tr.js → studio-5t7ena5z.js} +8 -8
  39. package/dist/chunks/{studio-5rt7sqa0.js → studio-66arbpc2.js} +13 -19
  40. package/dist/chunks/{studio-fabxk6r9.js → studio-68fydsrj.js} +15 -15
  41. package/dist/chunks/{studio-tb3ev01j.js → studio-9j6sfeba.js} +6 -6
  42. package/dist/chunks/{studio-akbww0j5.js → studio-a1pswps3.js} +38 -38
  43. package/dist/chunks/{studio-6xa21ej9.js → studio-c04nzbby.js} +2 -2
  44. package/dist/chunks/{studio-4m0haseg.js → studio-c07s5ckd.js} +4 -4
  45. package/dist/chunks/{studio-57mf66w2.js → studio-ctm7bhx5.js} +14 -14
  46. package/dist/chunks/{studio-p1dw8wfw.js → studio-d8z5bajd.js} +14 -10
  47. package/dist/chunks/{studio-vz68yn9e.js → studio-en82c639.js} +6 -6
  48. package/dist/chunks/{studio-rkstz940.js → studio-etvx9s2g.js} +21 -12
  49. package/dist/chunks/{studio-az3zd49t.js → studio-ez11dmdh.js} +127 -37
  50. package/dist/chunks/{studio-sgdc5pfc.js → studio-hdc2jt3z.js} +4 -4
  51. package/dist/chunks/{studio-s6z853aq.js → studio-hhskq2mr.js} +24 -23
  52. package/dist/chunks/{studio-6ewqv390.js → studio-m1p9b6c3.js} +5 -5
  53. package/dist/chunks/{studio-25hkdrkw.js → studio-mpzwze9x.js} +12 -12
  54. package/dist/chunks/{studio-8qtrpzr3.js → studio-ncn9e189.js} +7 -7
  55. package/dist/chunks/{studio-81390n6f.js → studio-nq5yf5mp.js} +1 -1
  56. package/dist/chunks/{studio-5jy81t3s.js → studio-p6pmwkvh.js} +229 -24
  57. package/dist/chunks/{studio-3gxv60tn.js → studio-qa7fzxan.js} +4 -4
  58. package/dist/chunks/{studio-7xptrg0j.js → studio-sar8g54p.js} +8 -8
  59. package/dist/chunks/studio-t171hxhe.js +23 -0
  60. package/dist/chunks/{studio-em9nw8eh.js → studio-t3adrr56.js} +20 -17
  61. package/dist/chunks/{studio-hhvs4sdg.js → studio-vn5hske5.js} +10 -4
  62. package/dist/chunks/{studio-pm6hgy7r.js → studio-vt0tj32j.js} +29 -42
  63. package/dist/chunks/{studio-d1ja2x9r.js → studio-wjpgxywa.js} +4 -4
  64. package/dist/chunks/{studio-q3x06vmj.js → studio-wnsyffg1.js} +2 -2
  65. package/dist/chunks/{studio-rpyah2ew.js → studio-x10fp4tp.js} +64 -24
  66. package/dist/chunks/{studio-26d7myd1.js → studio-x72j58vw.js} +4 -4
  67. package/dist/chunks/{studio-cpvb2ed1.js → studio-y4f9fdge.js} +8 -8
  68. package/dist/chunks/{studio-erdatzvp.js → studio-ympe0n7a.js} +35 -6
  69. package/dist/chunks/{studio-y9zedyjn.js → studio-z2smx5ce.js} +2 -2
  70. package/dist/chunks/studio-zjjde71a.js +148 -0
  71. package/dist/chunks/{workspace-wrew8zk4.js → workspace-bnw54cha.js} +18 -10
  72. package/dist/iframe-entry.js +102 -11
  73. package/dist/studio.css +1 -2
  74. package/dist/studio.js +1113 -16062
  75. package/package.json +11 -11
  76. package/src/canvas/canvas-utils.ts +29 -2
  77. package/src/commands/command-args.ts +37 -2
  78. package/src/commands/registry.ts +18 -8
  79. package/src/commands/run-reported.ts +120 -0
  80. package/src/editor/shortcuts.ts +11 -23
  81. package/src/files/components.ts +39 -0
  82. package/src/files/files.ts +41 -17
  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/i18n/i18n-commands.ts +10 -0
  87. package/src/media/media-open.ts +14 -2
  88. package/src/packages/pull-package-sync.ts +5 -1
  89. package/src/panels/ai-panel.ts +5 -2
  90. package/src/panels/block-action-bar.ts +7 -2
  91. package/src/panels/i18n-panel.ts +8 -15
  92. package/src/panels/jump-bar.ts +3 -2
  93. package/src/panels/pane-context.ts +5 -4
  94. package/src/panels/pane-grid.ts +100 -10
  95. package/src/panels/problems-panel.ts +6 -2
  96. package/src/panels/quick-search.ts +6 -12
  97. package/src/panels/settings-menu.ts +5 -15
  98. package/src/panels/tab-drop.ts +220 -0
  99. package/src/panels/tab-strip.ts +238 -33
  100. package/src/services/ai-command-tools.ts +78 -8
  101. package/src/services/ai-models.ts +13 -0
  102. package/src/services/ai-project-tools.ts +8 -2
  103. package/src/services/ai-system-prompt.ts +4 -8
  104. package/src/services/ai-tools.ts +8 -69
  105. package/src/services/document-assistant.ts +9 -6
  106. package/src/studio.ts +24 -8
  107. package/src/surfaces/commandbar.json +35 -24
  108. package/src/surfaces/commandbar.ts +6 -5
  109. package/src/surfaces/pane-grid.json +35 -3
  110. package/src/surfaces/pane-grid.ts +26 -4
  111. package/src/surfaces/statusbar.ts +2 -1
  112. package/src/surfaces/tab-strip.json +16 -39
  113. package/src/surfaces/tab-strip.ts +76 -12
  114. package/src/tabs/project-config.ts +45 -11
  115. package/src/ui/ai-credentials-form.ts +12 -1
  116. package/src/ui/layers.ts +4 -1
  117. package/src/workspace/pane-derive.ts +7 -5
  118. package/src/workspace/session.ts +3 -3
  119. package/src/workspace/workspace.ts +220 -43
  120. package/styles/shell-frame.css +8 -0
  121. package/styles/shell-frame.json +4 -0
  122. package/dist/chunks/components-2w1f35qs.js +0 -18
  123. package/dist/chunks/content-source-3wqeas45.js +0 -46
  124. package/dist/chunks/entry-commands-d6g50j7s.js +0 -42
  125. package/dist/chunks/file-ops-3btj6st0.js +0 -47
  126. package/dist/chunks/git-panel-4wp2rn9b.js +0 -49
  127. package/dist/chunks/layers-panel-ar2gh90g.js +0 -40
  128. package/dist/chunks/menu-rf7n72mf.js +0 -14
  129. package/dist/chunks/publish-panel-98f7sr3g.js +0 -27
  130. package/dist/chunks/quick-search-srzz83k2.js +0 -45
  131. package/dist/chunks/right-panel-rrgx2dn3.js +0 -45
  132. package/dist/chunks/studio-d055c37e.js +0 -62
@@ -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-erdatzvp.js";
18
+ } from "./studio-ympe0n7a.js";
19
19
  import {
20
20
  mountSchemaForm,
21
21
  resolveContextPointer
22
- } from "./studio-57mf66w2.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-em9nw8eh.js";
28
+ } from "./studio-t3adrr56.js";
29
29
  import {
30
30
  paneOfContainer
31
- } from "./studio-rkstz940.js";
31
+ } from "./studio-etvx9s2g.js";
32
32
  import {
33
33
  commitProjectConfig
34
- } from "./studio-25hkdrkw.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-7xptrg0j.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-79y5sz51.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-az3zd49t.js";
25
+ } from "./studio-ez11dmdh.js";
26
26
  import {
27
27
  registerSurface,
28
28
  mountSurface,
29
29
  openDialogSurface,
30
30
  layerHost2
31
- } from "./studio-erdatzvp.js";
32
- import {
33
- markLocalMutation2,
34
- isRecentLocal2
35
- } from "./studio-8jn5yhyn.js";
31
+ } from "./studio-ympe0n7a.js";
36
32
  import {
37
33
  errorMessage2
38
34
  } from "./studio-yxa81f45.js";
35
+ import {
36
+ markLocalMutation2,
37
+ isRecentLocal2
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-rpyah2ew.js";
47
+ } from "./studio-x10fp4tp.js";
48
48
  import {
49
49
  collectionDirs2,
50
50
  createCollectionSource2,
51
51
  createPagesSource2
52
- } from "./studio-x3rty6tr.js";
52
+ } from "./studio-5t7ena5z.js";
53
53
  import {
54
54
  MEDIA_EXTENSIONS,
55
55
  extensionOf
56
- } from "./studio-vz68yn9e.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=BCD03000C896EA0264756E2164756E21
1197
- //# sourceMappingURL=studio-em9nw8eh.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-79y5sz51.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-az3zd49t.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-vz68yn9e.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-erdatzvp.js";
54
+ } from "./studio-ympe0n7a.js";
55
55
  import {
56
56
  showModal,
57
57
  close2
58
- } from "./studio-5jy81t3s.js";
58
+ } from "./studio-p6pmwkvh.js";
59
59
  import {
60
60
  peekMediaMeta,
61
61
  loadMediaMeta,
62
62
  recordImageSize,
63
63
  formatBytes
64
- } from "./studio-5523bpzt.js";
64
+ } from "./studio-5nz00bhh.js";
65
65
  import {
66
66
  shell
67
- } from "./studio-25hkdrkw.js";
67
+ } from "./studio-mpzwze9x.js";
68
68
  import {
69
69
  registerPanel
70
- } from "./studio-26d7myd1.js";
70
+ } from "./studio-x72j58vw.js";
71
71
  import {
72
72
  authenticateGithub
73
- } from "./studio-d1ja2x9r.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-cpvb2ed1.js";
81
+ } from "./studio-y4f9fdge.js";
82
82
  import {
83
83
  canvasIdleBlockers2,
84
84
  canvasPointAt2,
85
85
  revealCanvasPath2
86
- } from "./studio-rkstz940.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("ef8fgs3w"), import("./files-ef8fgs3w.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("ef8fgs3w"), import("./files-ef8fgs3w.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("4wp2rn9b"), import("./git-panel-4wp2rn9b.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("rf7n72mf"), import("./menu-rf7n72mf.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-pm6hgy7r.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-erdatzvp.js";
15
+ } from "./studio-ympe0n7a.js";
16
16
  import {
17
17
  showModal,
18
18
  close2
19
- } from "./studio-5jy81t3s.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-d1ja2x9r.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