@jxsuite/studio 3.0.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/Overlay.dev-723bv0df.js +23 -0
  3. package/dist/chunks/{cf-settings-zj2cj1ar.js → cf-settings-45fgyx8y.js} +6 -5
  4. package/dist/chunks/{components-z6cnkyy1.js → components-zmx10t62.js} +6 -5
  5. package/dist/chunks/content-source-t88vb2dr.js +49 -0
  6. package/dist/chunks/{convert-to-repeater-6vvx96n2.js → convert-to-repeater-dhw1nrz9.js} +27 -19
  7. package/dist/chunks/entry-commands-6z6bhxg0.js +46 -0
  8. package/dist/chunks/{extension-sections-kwzvpemr.js → extension-sections-3ydgjbdy.js} +32 -24
  9. package/dist/chunks/file-ops-rskmhxyq.js +48 -0
  10. package/dist/chunks/files-0cratsr0.js +92 -0
  11. package/dist/chunks/{format-host-8fr3545e.js → format-host-tgcmfs4p.js} +3 -3
  12. package/dist/chunks/fs-events-hrrg328g.js +21 -0
  13. package/dist/chunks/{git-panel-g01d93vc.js → git-panel-0yywyk76.js} +21 -16
  14. package/dist/chunks/{jx-validate-jj9rnt4n.js → jx-validate-8q2g05x1.js} +6 -4
  15. package/dist/chunks/layers-panel-z3tqe5cd.js +67 -0
  16. package/dist/chunks/layers-q75tj2mf.js +45 -0
  17. package/dist/chunks/lit-html-j055mkh8.js +22 -0
  18. package/dist/chunks/monaco-buffer-dqw0xxpx.js +25 -0
  19. package/dist/chunks/{monaco-setup-a5wkmbgh.js → monaco-setup-rws7k4br.js} +4 -4
  20. package/dist/chunks/notify-yjm79n4s.js +30 -0
  21. package/dist/chunks/parse-24d0gay3.js +19 -0
  22. package/dist/chunks/platform-ba1j1gbh.js +16 -0
  23. package/dist/chunks/publish-panel-54jvhskq.js +28 -0
  24. package/dist/chunks/quick-search-cgfmjwq5.js +65 -0
  25. package/dist/chunks/references-3qx8fkyp.js +29 -0
  26. package/dist/chunks/right-panel-cqp8bc4v.js +46 -0
  27. package/dist/chunks/sp-overlay.dev-yztmtrs1.js +18 -0
  28. package/dist/chunks/sp-popover.dev-n2etmqdp.js +9 -0
  29. package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +15 -0
  30. package/dist/chunks/sp-tooltip.dev-xcvpnqr0.js +15 -0
  31. package/dist/chunks/{sp-tray.dev-64v4pxw8.js → sp-tray.dev-tkbscm06.js} +5 -5
  32. package/dist/chunks/{studio-8ezdegcx.js → studio-1hbqnt19.js} +36 -32
  33. package/dist/chunks/{studio-r5xbtctf.js → studio-2zkz8evn.js} +446 -2451
  34. package/dist/chunks/{studio-pkp61mh8.js → studio-4pqqxbrt.js} +23 -15
  35. package/dist/chunks/{studio-kvfx9z2c.js → studio-4rzyrtjz.js} +70 -31
  36. package/dist/chunks/{studio-3dkcd4c5.js → studio-5q69gfag.js} +60 -56
  37. package/dist/chunks/{studio-rh1cnamv.js → studio-5rywrkxz.js} +563 -133
  38. package/dist/chunks/{studio-6kv3apa9.js → studio-68n67094.js} +25 -9
  39. package/dist/chunks/{studio-0rqqhrdy.js → studio-7nte2hj4.js} +2 -2
  40. package/dist/chunks/{studio-xntfdy1x.js → studio-8swrjbny.js} +31 -18
  41. package/dist/chunks/studio-92ab2jqe.js +282 -0
  42. package/dist/chunks/{studio-sas7mt3k.js → studio-9ab8gqsm.js} +2 -2
  43. package/dist/chunks/{studio-ry1vz5sv.js → studio-9c4k4vhv.js} +15 -13
  44. package/dist/chunks/studio-9n4mrmnb.js +184 -0
  45. package/dist/chunks/{studio-tr20m8g8.js → studio-9r6j5ev1.js} +37 -2
  46. package/dist/chunks/{studio-2x9zbxmx.js → studio-ahjfdy6e.js} +9 -7
  47. package/dist/chunks/{studio-s519zc99.js → studio-bgxt93ga.js} +3 -3
  48. package/dist/chunks/{studio-dc8s8heb.js → studio-cb12yz9w.js} +8528 -8780
  49. package/dist/chunks/studio-cft9r4r7.js +119 -0
  50. package/dist/chunks/{studio-hcxzyk3x.js → studio-eenfkt4e.js} +6 -6
  51. package/dist/chunks/studio-eesa1myv.js +498 -0
  52. package/dist/chunks/{studio-ay8wcr2b.js → studio-eqq1w638.js} +7 -9
  53. package/dist/chunks/{studio-7p35254k.js → studio-ex8zyp98.js} +30 -26
  54. package/dist/chunks/studio-gv8vvshc.js +118 -0
  55. package/dist/chunks/studio-hbtp0eh1.js +1315 -0
  56. package/dist/chunks/{studio-a0yp7syn.js → studio-htsf0w6m.js} +29 -114
  57. package/dist/chunks/{studio-j595e748.js → studio-kjjsjak4.js} +139 -63
  58. package/dist/chunks/{studio-5x5774ak.js → studio-kryvsw6j.js} +3 -3
  59. package/dist/chunks/{studio-kfpek536.js → studio-kyh9avvv.js} +2 -2
  60. package/dist/chunks/{studio-g5gdqnyd.js → studio-kyk2v92a.js} +14 -14
  61. package/dist/chunks/{studio-twsafr1e.js → studio-m3hwn7y1.js} +3 -3
  62. package/dist/chunks/{studio-tzx3xmvx.js → studio-mmv72a27.js} +8 -8
  63. package/dist/chunks/{studio-vhk5fmfv.js → studio-n8b9wqwy.js} +5 -5
  64. package/dist/chunks/{studio-cjm7fdjf.js → studio-p4ngc046.js} +8 -104
  65. package/dist/chunks/{studio-p5dja96s.js → studio-p8j86wag.js} +2 -2
  66. package/dist/chunks/{studio-6z5eyjwn.js → studio-pdfjntbk.js} +66 -129
  67. package/dist/chunks/studio-q43a5y9h.js +394 -0
  68. package/dist/chunks/studio-q7v10cg2.js +106 -0
  69. package/dist/chunks/{studio-2w11grav.js → studio-qq6jym04.js} +3 -3
  70. package/dist/chunks/studio-r1r7afxx.js +1066 -0
  71. package/dist/chunks/{studio-3fk1ac9z.js → studio-rdx8jcxy.js} +4 -4
  72. package/dist/chunks/{studio-4mqb9a0j.js → studio-rn9ta2mz.js} +4 -4
  73. package/dist/chunks/studio-sf7zjgv1.js +91 -0
  74. package/dist/chunks/studio-t7qb9db8.js +665 -0
  75. package/dist/chunks/studio-tmc5emrw.js +8 -0
  76. package/dist/chunks/{studio-wdt9y92a.js → studio-txwkm6p9.js} +2 -2
  77. package/dist/chunks/{studio-k4jvjcfx.js → studio-v38hmvx1.js} +7 -7
  78. package/dist/chunks/{studio-7ejemhej.js → studio-vadzgkrz.js} +6 -6
  79. package/dist/chunks/studio-wcy8trfx.js +263 -0
  80. package/dist/chunks/{studio-5efrtn1m.js → studio-wx5609xd.js} +21 -17
  81. package/dist/chunks/{studio-qpfq7xhm.js → studio-xrapxwwc.js} +22 -285
  82. package/dist/chunks/{studio-hj2se583.js → studio-yxrkyv8a.js} +41 -31
  83. package/dist/chunks/{studio-xm3dbxvn.js → studio-zczps70q.js} +2 -2
  84. package/dist/chunks/workspace-xpres40v.js +89 -0
  85. package/dist/iframe-entry.js +108 -24
  86. package/dist/studio.js +2362 -1695
  87. package/package.json +16 -15
  88. package/src/browse/library-pane.ts +57 -3
  89. package/src/canvas/canvas-render.ts +23 -1
  90. package/src/canvas/iframe-patch.ts +47 -21
  91. package/src/canvas/iframe-render.ts +22 -6
  92. package/src/commands/app-commands.ts +4 -0
  93. package/src/commands/command-args.ts +29 -0
  94. package/src/commands/context.ts +15 -1
  95. package/src/commands/defaults.ts +29 -1
  96. package/src/commands/levels.ts +16 -0
  97. package/src/commands/live-context.ts +3 -0
  98. package/src/content/collection-match.ts +267 -0
  99. package/src/content/entry-commands.ts +38 -29
  100. package/src/content/entry-fields.ts +6 -0
  101. package/src/editor/shortcuts.ts +5 -0
  102. package/src/files/file-ops.ts +10 -42
  103. package/src/files/files.ts +485 -59
  104. package/src/files/fs-events.ts +9 -0
  105. package/src/files/gitignore.ts +432 -0
  106. package/src/files/serialize-document.ts +60 -0
  107. package/src/format/convert-file.ts +511 -0
  108. package/src/format/format-choices.ts +199 -0
  109. package/src/grid/grid-view.ts +16 -2
  110. package/src/media/media-open.ts +58 -0
  111. package/src/media/media-pane.ts +310 -0
  112. package/src/new-project/import-tab.ts +332 -160
  113. package/src/new-project/new-project-modal.ts +27 -34
  114. package/src/packages/ensure-deps.ts +14 -7
  115. package/src/packages/jxsuite-update.ts +11 -11
  116. package/src/page-params.ts +10 -46
  117. package/src/panels/activity-bar.ts +45 -16
  118. package/src/panels/ai-chat/attached-context.ts +6 -1
  119. package/src/panels/ai-chat/chat-view.ts +255 -13
  120. package/src/panels/ai-chat/composer.ts +21 -97
  121. package/src/panels/ai-panel.ts +116 -2
  122. package/src/panels/navigator-panels.ts +7 -6
  123. package/src/panels/settings-menu.ts +799 -0
  124. package/src/panels/toolbar.ts +135 -15
  125. package/src/platforms/cloud.ts +20 -0
  126. package/src/platforms/devserver.ts +67 -33
  127. package/src/preview/preview-overlay.ts +226 -0
  128. package/src/services/ai-ask.ts +247 -0
  129. package/src/services/ai-import-tools.ts +494 -0
  130. package/src/services/ai-project-tools.ts +20 -26
  131. package/src/services/ai-system-prompt.ts +88 -2
  132. package/src/services/ai-turn-signal.ts +70 -0
  133. package/src/services/connection.ts +74 -0
  134. package/src/services/context-manager.ts +89 -0
  135. package/src/services/document-assistant.ts +45 -4
  136. package/src/services/import-client.ts +33 -6
  137. package/src/services/import-run.ts +158 -0
  138. package/src/services/import-seed.ts +120 -0
  139. package/src/services/jx-validate.ts +58 -6
  140. package/src/services/project-adoption.ts +71 -0
  141. package/src/services/references.ts +0 -0
  142. package/src/services/settings/definitions.ts +17 -0
  143. package/src/services/tool-executor.ts +34 -2
  144. package/src/settings/contexts-section.ts +45 -3
  145. package/src/settings/dependencies-editor.ts +43 -23
  146. package/src/settings/general-settings.ts +30 -12
  147. package/src/settings/preferences-dialog.ts +18 -41
  148. package/src/settings/preferences-sections.ts +57 -0
  149. package/src/settings/settings-document.ts +65 -9
  150. package/src/studio.ts +33 -6
  151. package/src/tabs/transact.ts +42 -19
  152. package/src/types.ts +103 -5
  153. package/src/ui/ai-model-picker.ts +162 -0
  154. package/src/ui/choice-field.ts +72 -0
  155. package/src/ui/layers.ts +83 -5
  156. package/src/utils/studio-utils.ts +22 -52
  157. package/styles/forced-colors.css +7 -0
  158. package/styles/overlays.css +256 -0
  159. package/styles/panels.css +13 -1
  160. package/styles/shell.css +111 -0
  161. package/dist/chunks/Overlay.dev-d2ajy6sj.js +0 -23
  162. package/dist/chunks/content-source-7fy9qrm0.js +0 -40
  163. package/dist/chunks/files-xcybanxe.js +0 -70
  164. package/dist/chunks/layers-panel-27essgkc.js +0 -60
  165. package/dist/chunks/publish-panel-09sy2bab.js +0 -22
  166. package/dist/chunks/quick-search-sefb61v8.js +0 -55
  167. package/dist/chunks/right-panel-9r32jd5j.js +0 -39
  168. package/dist/chunks/sp-overlay.dev-s18hymn9.js +0 -18
  169. package/dist/chunks/sp-popover.dev-dj9x7e7a.js +0 -9
  170. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +0 -15
  171. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +0 -15
  172. package/dist/chunks/studio-c31yb4t6.js +0 -55
  173. package/src/canvas/site-style-css.ts +0 -117
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getCfToken,
3
3
  setCfToken
4
- } from "./studio-kfpek536.js";
4
+ } from "./studio-kyh9avvv.js";
5
5
  import {
6
6
  connectDeploy,
7
7
  currentDeploy,
@@ -10,20 +10,20 @@ import {
10
10
  noteDeployment,
11
11
  platformSupportsPublish,
12
12
  writeDeployConfig
13
- } from "./studio-2x9zbxmx.js";
13
+ } from "./studio-ahjfdy6e.js";
14
14
  import {
15
15
  activeRegistry,
16
16
  openModal
17
- } from "./studio-r5xbtctf.js";
17
+ } from "./studio-t7qb9db8.js";
18
18
  import {
19
19
  html
20
- } from "./studio-5x5774ak.js";
20
+ } from "./studio-kryvsw6j.js";
21
21
  import {
22
22
  projectState
23
- } from "./studio-cjm7fdjf.js";
23
+ } from "./studio-p4ngc046.js";
24
24
  import {
25
25
  getPlatform
26
- } from "./studio-sas7mt3k.js";
26
+ } from "./studio-9ab8gqsm.js";
27
27
 
28
28
  // src/publish/publish-panel.ts
29
29
  var PAGES_APP_INSTALL_URL = "https://github.com/apps/cloudflare-pages/installations/new";
@@ -387,4 +387,4 @@ function openPublishPanel() {
387
387
  export { seedPublishConnected, openPublishPanel };
388
388
 
389
389
  //# debugId=32DE20DAF46B08AA64756E2164756E21
390
- //# sourceMappingURL=studio-k4jvjcfx.js.map
390
+ //# sourceMappingURL=studio-v38hmvx1.js.map
@@ -8,16 +8,16 @@ import {
8
8
  SpectrumElement,
9
9
  property,
10
10
  query
11
- } from "./studio-xm3dbxvn.js";
11
+ } from "./studio-zczps70q.js";
12
12
  import {
13
13
  css
14
- } from "./studio-0rqqhrdy.js";
14
+ } from "./studio-7nte2hj4.js";
15
15
  import {
16
16
  ifDefined
17
- } from "./studio-twsafr1e.js";
17
+ } from "./studio-m3hwn7y1.js";
18
18
  import {
19
19
  html
20
- } from "./studio-5x5774ak.js";
20
+ } from "./studio-kryvsw6j.js";
21
21
  import {
22
22
  __require
23
23
  } from "./studio-a0tswy0w.js";
@@ -240,7 +240,7 @@ class Tooltip extends SpectrumElement {
240
240
  `;
241
241
  if (this.selfManaged) {
242
242
  this.dependencyManager.add("sp-overlay");
243
- import("./sp-overlay.dev-s18hymn9.js");
243
+ import("./sp-overlay.dev-yztmtrs1.js");
244
244
  return html`
245
245
  <sp-overlay
246
246
  ?open=${this.open && !this.disabled && this.dependencyManager.loaded}
@@ -315,4 +315,4 @@ defineElement("sp-tooltip", Tooltip);
315
315
  export { DependencyManagerController };
316
316
 
317
317
  //# debugId=B26C538C82CA430D64756E2164756E21
318
- //# sourceMappingURL=studio-7ejemhej.js.map
318
+ //# sourceMappingURL=studio-vadzgkrz.js.map
@@ -0,0 +1,263 @@
1
+ import {
2
+ notify,
3
+ toRaw
4
+ } from "./studio-xrapxwwc.js";
5
+
6
+ // src/view.ts
7
+ var view = {
8
+ functionEditor: null,
9
+ blockActionBarEl: null,
10
+ selDragCleanup: null,
11
+ dndCleanups: [],
12
+ elementsCollapsed: new Set,
13
+ elementsFilter: "",
14
+ _currentDropTargetRow: null,
15
+ layerDragSourceHeight: 0,
16
+ _completionRegistered: false,
17
+ _layersCollapsed: null
18
+ };
19
+
20
+ // src/canvas/surface-registry.ts
21
+ var STAGE_CLASS = "pane-stage";
22
+ var _nextGen = 0;
23
+ function nextRenderGeneration() {
24
+ _nextGen += 1;
25
+ return _nextGen;
26
+ }
27
+ var _surfaces = new Map;
28
+ function surfaceForPane(paneId) {
29
+ let surface = _surfaces.get(paneId);
30
+ if (!surface) {
31
+ surface = freshSurface(paneId);
32
+ _surfaces.set(paneId, surface);
33
+ }
34
+ return surface;
35
+ }
36
+ function freshSurface(paneId) {
37
+ return {
38
+ centerObserver: null,
39
+ monacoEditor: null,
40
+ needsCenter: true,
41
+ panX: 0,
42
+ panY: 0,
43
+ panels: [],
44
+ paneId,
45
+ panzoomWrap: null,
46
+ prevCanvasMode: null,
47
+ prevStylebookCustomizedOnly: null,
48
+ prevStylebookFilter: null,
49
+ renderGeneration: 0,
50
+ sourceCollabCleanup: null,
51
+ wrap: null
52
+ };
53
+ }
54
+ function allCanvasSurfaces() {
55
+ return [..._surfaces.values()];
56
+ }
57
+ function stageContaining(node) {
58
+ if (!node) {
59
+ return null;
60
+ }
61
+ for (const surface of _surfaces.values()) {
62
+ if (surface.wrap?.contains(node)) {
63
+ return surface;
64
+ }
65
+ }
66
+ return null;
67
+ }
68
+ function releaseMountedPanels(surface) {
69
+ for (const panel of surface.panels) {
70
+ panel.renderScope?.stop();
71
+ panel.renderScope = null;
72
+ }
73
+ surface.panels.length = 0;
74
+ surface.prevCanvasMode = null;
75
+ }
76
+ function registerCanvasSurface(paneId, wrap) {
77
+ const surface = surfaceForPane(paneId);
78
+ surface.wrap = wrap;
79
+ releaseMountedPanels(surface);
80
+ return surface;
81
+ }
82
+ function createPaneSurface(paneId) {
83
+ const existing = _surfaces.get(paneId);
84
+ if (existing) {
85
+ disposePaneSurface(paneId);
86
+ }
87
+ const surface = freshSurface(paneId);
88
+ _surfaces.set(paneId, surface);
89
+ return surface;
90
+ }
91
+ var _teardown = null;
92
+ function setSurfaceTeardown(fn) {
93
+ _teardown = fn;
94
+ }
95
+ function disposePaneSurface(paneId) {
96
+ const surface = _surfaces.get(paneId);
97
+ if (!surface) {
98
+ return;
99
+ }
100
+ _teardown?.(surface);
101
+ releaseMountedPanels(surface);
102
+ unregisterCanvasSurface(paneId);
103
+ }
104
+ function unregisterCanvasSurface(paneId) {
105
+ _surfaces.delete(paneId);
106
+ }
107
+
108
+ // src/services/monaco-buffer.ts
109
+ var BUFFER_COMMIT = "commit";
110
+ function bufferWrites(buffer) {
111
+ const timers = new Map;
112
+ const runs = new Map;
113
+ const inFlight = new Map;
114
+ let isAhead = false;
115
+ let isTyped = false;
116
+ let isShared = false;
117
+ function track(key, result) {
118
+ if (typeof result?.then !== "function") {
119
+ return result;
120
+ }
121
+ const promise = result.finally(() => {
122
+ if (inFlight.get(key) === promise) {
123
+ inFlight.delete(key);
124
+ }
125
+ });
126
+ inFlight.set(key, promise);
127
+ return promise;
128
+ }
129
+ const writes = {
130
+ arm(key, ms, run) {
131
+ clearTimeout(timers.get(key));
132
+ runs.set(key, run);
133
+ timers.set(key, setTimeout(() => {
134
+ timers.delete(key);
135
+ runs.delete(key);
136
+ track(key, run());
137
+ }, ms));
138
+ },
139
+ cancel() {
140
+ for (const timer of timers.values()) {
141
+ clearTimeout(timer);
142
+ }
143
+ timers.clear();
144
+ runs.clear();
145
+ },
146
+ flush(key) {
147
+ const run = runs.get(key);
148
+ if (!run) {
149
+ return inFlight.get(key);
150
+ }
151
+ clearTimeout(timers.get(key));
152
+ timers.delete(key);
153
+ runs.delete(key);
154
+ return track(key, run());
155
+ },
156
+ ahead: () => isAhead,
157
+ markAhead() {
158
+ isAhead = true;
159
+ },
160
+ typed: () => isTyped,
161
+ markTyped() {
162
+ isAhead = true;
163
+ isTyped = true;
164
+ },
165
+ markSettled() {
166
+ isAhead = false;
167
+ isTyped = false;
168
+ },
169
+ shared: () => isShared,
170
+ markShared() {
171
+ isShared = true;
172
+ }
173
+ };
174
+ buffer._writes = writes;
175
+ return writes;
176
+ }
177
+ var SURFACE = {
178
+ logic: { holds: "The handler you were typing", reached: "written into", source: "Logic" },
179
+ source: { holds: "The source you were typing", reached: "parsed into", source: "Editor" }
180
+ };
181
+ function reportDiscarded(buffer, surface, failure) {
182
+ const writes = buffer._writes;
183
+ if (writes?.typed() !== true) {
184
+ return true;
185
+ }
186
+ const tab = buffer._editingTab ?? null;
187
+ const where = tab?.documentPath ?? "Untitled";
188
+ const { holds, reached, source } = SURFACE[surface];
189
+ notify.warn(`${holds} was discarded — it was never ${reached} "${where}".`, {
190
+ ...failure ? { detail: describeCommitFailure(failure.error) } : {},
191
+ key: `buffer-discarded:${surface}:${tab?.id ?? "none"}`,
192
+ source,
193
+ ...tab?.documentPath ? { path: tab.documentPath } : {}
194
+ });
195
+ return false;
196
+ }
197
+ function describeCommitFailure(error) {
198
+ return error instanceof Error ? error.stack ?? error.message : String(error);
199
+ }
200
+ function commitBufferWrites(buffer, surface) {
201
+ const writes = buffer?._writes;
202
+ if (!buffer || !writes) {
203
+ return true;
204
+ }
205
+ let pending;
206
+ try {
207
+ pending = writes.flush(BUFFER_COMMIT);
208
+ } catch (error) {
209
+ writes.cancel();
210
+ return reportDiscarded(buffer, surface, { error });
211
+ }
212
+ writes.cancel();
213
+ if (typeof pending?.then === "function") {
214
+ pending.then(() => reportDiscarded(buffer, surface, null), (error) => reportDiscarded(buffer, surface, { error }));
215
+ return true;
216
+ }
217
+ return reportDiscarded(buffer, surface, null);
218
+ }
219
+ function cancelBufferWrites(buffer) {
220
+ buffer?._writes?.cancel();
221
+ }
222
+ function bufferIsLive(buffer) {
223
+ return Boolean(buffer?.getModel());
224
+ }
225
+ function bufferMovedOn(buffer, expected) {
226
+ if (!bufferIsLive(buffer) || buffer.hasTextFocus() || buffer._writes?.ahead() || buffer._writes?.shared()) {
227
+ return true;
228
+ }
229
+ return expected !== undefined && buffer.getValue() !== expected;
230
+ }
231
+ function buffersForTab(tab) {
232
+ const raw = toRaw(tab);
233
+ const mounted = [
234
+ ...allCanvasSurfaces().map((surface) => surface.monacoEditor),
235
+ view.functionEditor
236
+ ];
237
+ return mounted.filter((buffer) => buffer != null && buffer._editingTab != null && toRaw(buffer._editingTab) === raw && bufferIsLive(buffer));
238
+ }
239
+ async function commitTabBuffers(tab) {
240
+ for (const buffer of buffersForTab(tab)) {
241
+ if (!bufferIsLive(buffer)) {
242
+ continue;
243
+ }
244
+ try {
245
+ await buffer._writes?.flush(BUFFER_COMMIT);
246
+ } catch (error) {
247
+ notify.error(`Could not save the editor's contents into "${tab.documentPath ?? "Untitled"}".`, {
248
+ detail: error instanceof Error ? error.stack ?? error.message : String(error),
249
+ key: `buffer-commit:${tab.id}`,
250
+ source: "Editor",
251
+ ...tab.documentPath ? { path: tab.documentPath } : {}
252
+ });
253
+ }
254
+ }
255
+ }
256
+ function tabBufferUnsaved(tab) {
257
+ return buffersForTab(tab).some((buffer) => buffer._writes?.typed() === true);
258
+ }
259
+
260
+ export { view, STAGE_CLASS, nextRenderGeneration, surfaceForPane, allCanvasSurfaces, stageContaining, registerCanvasSurface, createPaneSurface, setSurfaceTeardown, disposePaneSurface, BUFFER_COMMIT, bufferWrites, commitBufferWrites, cancelBufferWrites, bufferIsLive, bufferMovedOn, commitTabBuffers, tabBufferUnsaved };
261
+
262
+ //# debugId=19DB9325F890591F64756E2164756E21
263
+ //# sourceMappingURL=studio-wcy8trfx.js.map
@@ -1,35 +1,39 @@
1
+ import {
2
+ validateProjectConfig
3
+ } from "./studio-68n67094.js";
1
4
  import {
2
5
  renderForm,
3
6
  resolveContextPointer
4
- } from "./studio-3dkcd4c5.js";
5
- import {
6
- validateProjectConfig
7
- } from "./studio-6kv3apa9.js";
7
+ } from "./studio-5q69gfag.js";
8
8
  import {
9
9
  deriveSecretEnvName
10
- } from "./studio-pkp61mh8.js";
10
+ } from "./studio-4pqqxbrt.js";
11
11
  import {
12
12
  paneOfContainer
13
- } from "./studio-j595e748.js";
13
+ } from "./studio-kjjsjak4.js";
14
+ import {
15
+ commitProjectConfig
16
+ } from "./studio-hbtp0eh1.js";
14
17
  import {
15
- commitProjectConfig,
16
- errorMessage,
17
18
  paneRegion
18
- } from "./studio-r5xbtctf.js";
19
+ } from "./studio-t7qb9db8.js";
20
+ import {
21
+ errorMessage
22
+ } from "./studio-9n4mrmnb.js";
23
+ import {
24
+ notify
25
+ } from "./studio-xrapxwwc.js";
19
26
  import {
20
27
  html,
21
28
  nothing,
22
29
  render
23
- } from "./studio-5x5774ak.js";
30
+ } from "./studio-kryvsw6j.js";
24
31
  import {
25
32
  projectState
26
- } from "./studio-cjm7fdjf.js";
27
- import {
28
- notify
29
- } from "./studio-qpfq7xhm.js";
33
+ } from "./studio-p4ngc046.js";
30
34
  import {
31
35
  getPlatform
32
- } from "./studio-sas7mt3k.js";
36
+ } from "./studio-9ab8gqsm.js";
33
37
 
34
38
  // src/settings/contributed-section.ts
35
39
  var selectedEntries = new Map;
@@ -333,5 +337,5 @@ function renderMapLayout(contribution, opts, rerender, paneId) {
333
337
 
334
338
  export { selectContributedEntry, renderContributedSection };
335
339
 
336
- //# debugId=476B6C93D3487B0864756E2164756E21
337
- //# sourceMappingURL=studio-5efrtn1m.js.map
340
+ //# debugId=1F1C350DE28120E764756E2164756E21
341
+ //# sourceMappingURL=studio-wx5609xd.js.map