@pstdio/workbench 0.12.0 → 0.35.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.
@@ -1,545 +0,0 @@
1
- import { jsx as h, jsxs as H } from "react/jsx-runtime";
2
- import { c as le } from "react/compiler-runtime";
3
- import { Image as ke, Box as ge, Flex as V, Center as oe, Text as se, Button as Se, Spinner as Fe } from "@chakra-ui/react";
4
- import { resourceKey as q } from "@pstdio/sdk/extensions";
5
- import { useState as me, useRef as D, useEffect as ie, useLayoutEffect as Ke } from "react";
6
- import { EmptyState as je, useFileIconThemePreference as Te, resolveFileIconElement as Le, Header as Ae } from "@pstdio/ui";
7
- import { CodeEditor as He } from "@pstdio/ui/diff";
8
- import { MarkdownEditor as Oe } from "@pstdio/ui/rich-text";
9
- import { r as Ie, a as Pe, s as $e } from "./index-DwNKY4fO.js";
10
- import { a0 as F } from "./workbench-renderers-BAPxtfpZ.js";
11
- const Be = "pstdio.fileSectionNavigation", De = (r) => {
12
- if (!r || typeof r != "object") return !1;
13
- const e = r, t = e.occurrence === void 0 || typeof e.occurrence == "number" && Number.isInteger(e.occurrence) && e.occurrence >= 0;
14
- return typeof e.id == "string" && typeof e.heading == "string" && t;
15
- }, qe = (r) => {
16
- const e = r?.metadata?.[Be];
17
- if (!e || typeof e != "object") return;
18
- const t = e;
19
- if (!(typeof t.treeId != "string" || typeof t.targetNodeId != "string") && !(!Array.isArray(t.anchors) || !t.anchors.every(De)))
20
- return {
21
- treeId: t.treeId,
22
- targetNodeId: t.targetNodeId,
23
- anchors: t.anchors
24
- };
25
- }, Ve = (r, e) => e && r.anchors.some((t) => t.id === e) ? e : r.targetNodeId, We = (r) => {
26
- const {
27
- previous: e,
28
- current: t,
29
- currentResourceKey: l,
30
- selectedNodeId: n
31
- } = r;
32
- return !e || !n || !e.anchorIds.includes(n) || t?.targetNodeId === n ? !1 : !t || e.treeId !== t.treeId || e.resourceKey !== l;
33
- }, Me = /* @__PURE__ */ new Set(["png", "jpg", "jpeg", "gif", "webp", "svg", "avif", "bmp", "ico"]), Ue = /* @__PURE__ */ new Set(["md", "markdown", "txt"]), Ee = {
34
- ts: "typescript",
35
- tsx: "typescript",
36
- js: "javascript",
37
- jsx: "javascript",
38
- mjs: "javascript",
39
- cjs: "javascript",
40
- json: "json",
41
- jsonc: "json",
42
- py: "python",
43
- rb: "ruby",
44
- rs: "rust",
45
- go: "go",
46
- java: "java",
47
- kt: "kotlin",
48
- c: "c",
49
- h: "c",
50
- cpp: "cpp",
51
- cc: "cpp",
52
- hpp: "cpp",
53
- cs: "csharp",
54
- php: "php",
55
- swift: "swift",
56
- sh: "shell",
57
- bash: "shell",
58
- zsh: "shell",
59
- sql: "sql",
60
- css: "css",
61
- scss: "scss",
62
- less: "less",
63
- html: "html",
64
- xml: "xml",
65
- yml: "yaml",
66
- yaml: "yaml",
67
- toml: "ini",
68
- ini: "ini",
69
- dockerfile: "dockerfile",
70
- graphql: "graphql",
71
- gql: "graphql",
72
- md: "markdown",
73
- markdown: "markdown",
74
- txt: "plaintext"
75
- }, pe = (r) => {
76
- if (!r) return "";
77
- const e = r.lastIndexOf(".");
78
- return e < 0 || e === r.length - 1 ? "" : r.slice(e + 1).toLowerCase();
79
- }, Ye = (r, e) => e?.startsWith("image/") ? !0 : Me.has(pe(r)), ze = (r, e) => {
80
- if (Ye(r, e)) return "image";
81
- const t = pe(r);
82
- return !Ue.has(t) && t in Ee ? "code" : "markdown";
83
- }, Ge = (r) => Ee[pe(r)] ?? "plaintext", Xe = (r, e) => {
84
- if (r.emptyState) return {
85
- kind: "empty",
86
- isEditable: !1
87
- };
88
- const t = ze(r.fileName, r.mimeType);
89
- if (t === "image") return {
90
- kind: "image",
91
- isEditable: !1
92
- };
93
- const l = e && r.editable !== !1;
94
- return t === "code" || r.textRenderer === "monaco" ? {
95
- kind: "code",
96
- isEditable: l,
97
- language: Ge(r.fileName)
98
- } : {
99
- kind: "markdown",
100
- isEditable: l
101
- };
102
- }, Je = (r) => {
103
- const e = le(41), {
104
- content: t,
105
- editorKey: l,
106
- errorNotice: n,
107
- contributionCanSave: i,
108
- onActiveSectionChange: c,
109
- onChange: y,
110
- rendererRef: p,
111
- sectionNavigation: d,
112
- title: T
113
- } = r;
114
- let k;
115
- e[0] !== t || e[1] !== i ? (k = Xe(t, i), e[0] = t, e[1] = i, e[2] = k) : k = e[2];
116
- const f = k;
117
- if (f.kind === "empty") {
118
- const S = t.emptyState?.title ?? "Select a file", v = t.emptyState?.description;
119
- let a;
120
- e[3] !== S || e[4] !== v ? (a = /* @__PURE__ */ h(je, { flex: "1", minH: "0", title: S, description: v }), e[3] = S, e[4] = v, e[5] = a) : a = e[5];
121
- let b;
122
- return e[6] !== n || e[7] !== a ? (b = /* @__PURE__ */ H(V, { direction: "column", h: "full", minH: "0", bg: "bg", children: [
123
- n,
124
- a
125
- ] }), e[6] = n, e[7] = a, e[8] = b) : b = e[8], b;
126
- }
127
- if (f.kind === "image") {
128
- if (!t.dataUrl) {
129
- let x;
130
- return e[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (x = /* @__PURE__ */ h(oe, { h: "full", minH: "0", bg: "bg", p: "md", children: /* @__PURE__ */ h(se, { color: "fg.muted", children: "This image preview is unavailable." }) }), e[9] = x) : x = e[9], x;
131
- }
132
- const S = t.fileName ?? T;
133
- let v;
134
- e[10] !== t.dataUrl || e[11] !== S ? (v = /* @__PURE__ */ h(ke, { src: t.dataUrl, alt: S, maxW: "100%", maxH: "100%", objectFit: "contain" }), e[10] = t.dataUrl, e[11] = S, e[12] = v) : v = e[12];
135
- let a;
136
- e[13] !== p || e[14] !== v ? (a = /* @__PURE__ */ h(oe, { ref: p, flex: "1", minH: "0", p: "md", overflow: "auto", children: v }), e[13] = p, e[14] = v, e[15] = a) : a = e[15];
137
- let b;
138
- return e[16] !== n || e[17] !== a ? (b = /* @__PURE__ */ H(V, { direction: "column", h: "full", minH: "0", bg: "bg", children: [
139
- n,
140
- a
141
- ] }), e[16] = n, e[17] = a, e[18] = b) : b = e[18], b;
142
- }
143
- if (f.kind === "code") {
144
- const S = t.content ?? "", v = f.isEditable ? y : void 0;
145
- let a;
146
- e[19] !== t.fileName || e[20] !== l || e[21] !== f.isEditable || e[22] !== f.language || e[23] !== S || e[24] !== v ? (a = /* @__PURE__ */ h(ge, { flex: "1", minH: "0", children: /* @__PURE__ */ h(He, { language: f.language, fileName: t.fileName, defaultCode: S, isEditable: f.isEditable, showLineNumbers: !0, onChange: v }, l) }), e[19] = t.fileName, e[20] = l, e[21] = f.isEditable, e[22] = f.language, e[23] = S, e[24] = v, e[25] = a) : a = e[25];
147
- let b;
148
- return e[26] !== n || e[27] !== a ? (b = /* @__PURE__ */ H(V, { direction: "column", h: "full", minH: "0", bg: "bg", children: [
149
- n,
150
- a
151
- ] }), e[26] = n, e[27] = a, e[28] = b) : b = e[28], b;
152
- }
153
- const K = t.content ?? "", _ = f.isEditable ? t.placeholder ?? "Write…" : void 0, g = f.isEditable ? y : void 0;
154
- let N;
155
- e[29] !== l || e[30] !== c || e[31] !== f.isEditable || e[32] !== d || e[33] !== K || e[34] !== _ || e[35] !== g ? (N = /* @__PURE__ */ h(ge, { flex: "1", minH: "0", overflowY: "auto", children: /* @__PURE__ */ h(Oe, { defaultState: K, isEditable: f.isEditable, sectionNavigation: d, placeholder: _, onActiveSectionChange: c, onChange: g }, l) }), e[29] = l, e[30] = c, e[31] = f.isEditable, e[32] = d, e[33] = K, e[34] = _, e[35] = g, e[36] = N) : N = e[36];
156
- let I;
157
- return e[37] !== n || e[38] !== p || e[39] !== N ? (I = /* @__PURE__ */ H(V, { ref: p, direction: "column", h: "full", minH: "0", overflow: "hidden", bg: "bg", children: [
158
- n,
159
- N
160
- ] }), e[37] = n, e[38] = p, e[39] = N, e[40] = I) : I = e[40], I;
161
- }, Qe = (r) => {
162
- let e, t = !1, l, n = null, i = null, c, y, p = !1, d = null, T = 0;
163
- const k = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Set(), K = (s) => s instanceof Error ? s.message : "Failed to save file.", _ = () => ({
164
- dirty: n !== null || i !== null && i.value !== e,
165
- saving: i !== null,
166
- ...c ? {
167
- saveError: c
168
- } : {},
169
- ...t ? {
170
- removed: !0
171
- } : {}
172
- }), g = () => r.onStateChange?.(_()), N = () => {
173
- d !== null && (clearTimeout(d), d = null);
174
- }, I = () => r.createOperationId?.() ?? `file-save-${Date.now()}-${++T}`, S = () => n !== null || i !== null || d !== null || !!c, v = (s) => {
175
- s.revision && (!y || s.revision.localeCompare(y) > 0) && (y = s.revision), s.revision || (p = !0);
176
- }, a = (s) => {
177
- const u = s.origin?.operationId;
178
- return !u || s.origin?.rendererId !== r.binding.rendererId || s.origin.instanceId !== r.binding.instanceId ? !1 : i?.origin.operationId === u || f.has(u);
179
- }, b = (s) => {
180
- if (n !== null || i) return;
181
- const u = y, R = p;
182
- if (y = void 0, p = !1, u && (!s || u.localeCompare(s) > 0)) {
183
- r.load({
184
- resourceKey: r.binding.resourceKey,
185
- revision: u
186
- });
187
- return;
188
- }
189
- R && r.load({
190
- resourceKey: r.binding.resourceKey
191
- });
192
- }, x = () => {
193
- if (t || n === null || i || c) return;
194
- const s = n;
195
- n = null;
196
- const u = {
197
- rendererId: r.binding.rendererId,
198
- instanceId: r.binding.instanceId,
199
- operationId: I()
200
- };
201
- i = {
202
- value: s,
203
- origin: u
204
- }, g(), Promise.resolve(r.save(s, u)).then((R) => {
205
- if (i?.origin.operationId === u.operationId) {
206
- if (i = null, f.add(u.operationId), f.size > 20 && f.delete(f.values().next().value), e = s, l = R?.revision ?? l, n === e && (n = null, N()), g(), n !== null) {
207
- L();
208
- return;
209
- }
210
- b(R?.revision);
211
- }
212
- }).catch((R) => {
213
- t || i?.origin.operationId === u.operationId && (i = null, n === null && (n = s), c = K(R), g());
214
- });
215
- }, L = () => {
216
- N(), d = setTimeout(() => {
217
- d = null, x();
218
- }, r.debounceMs);
219
- };
220
- return {
221
- getDraft() {
222
- return n ?? i?.value ?? e;
223
- },
224
- markRemoved() {
225
- const s = S();
226
- return t = !0, n = n ?? i?.value ?? null, i = null, N(), g(), s;
227
- },
228
- getBaseline() {
229
- return e;
230
- },
231
- getState: _,
232
- setBaseline(s, u) {
233
- e = s, l = u, g();
234
- },
235
- // Takes a freshly loaded value as the new baseline and returns the value the
236
- // editor was showing, so the caller can tell whether the editor must show
237
- // something else. Returns null while pending local state must keep the
238
- // editor: the refresh is deferred until the save settles.
239
- acceptLoaded(s, u) {
240
- if (t) return null;
241
- if (S())
242
- return v(u ? {
243
- revision: u
244
- } : {}), null;
245
- const R = e;
246
- return e = s, l = u, g(), {
247
- shown: R
248
- };
249
- },
250
- handleChange(s) {
251
- if (t) {
252
- n = s, g();
253
- return;
254
- }
255
- if (!(c && s === n)) {
256
- if (c = void 0, s === e && !i) {
257
- n = null, N(), g();
258
- return;
259
- }
260
- if (i?.value === s) {
261
- n = null, N(), g();
262
- return;
263
- }
264
- n = s, L(), g();
265
- }
266
- },
267
- handleRefreshEvent(s = {}) {
268
- if (!t && !(s.resourceKey && s.resourceKey !== r.binding.resourceKey) && !a(s) && !(s.revision && k.has(s.revision))) {
269
- if (s.revision && k.add(s.revision), S()) {
270
- v(s);
271
- return;
272
- }
273
- s.revision && l && s.revision.localeCompare(l) <= 0 || r.load(s);
274
- }
275
- },
276
- retry() {
277
- !c || n === null || i || (c = void 0, g(), x());
278
- },
279
- retryLoad() {
280
- t || r.load({
281
- resourceKey: r.binding.resourceKey
282
- });
283
- },
284
- flush() {
285
- N(), x();
286
- }
287
- };
288
- }, he = (r) => {
289
- const e = le(7), {
290
- message: t,
291
- onRetry: l
292
- } = r;
293
- let n;
294
- e[0] !== t ? (n = /* @__PURE__ */ h(se, { color: "fg.muted", textStyle: "label/S/regular", children: t }), e[0] = t, e[1] = n) : n = e[1];
295
- let i;
296
- e[2] !== l ? (i = l ? /* @__PURE__ */ h(Se, { size: "2xs", variant: "subtle", onClick: l, children: "Retry" }) : null, e[2] = l, e[3] = i) : i = e[3];
297
- let c;
298
- return e[4] !== n || e[5] !== i ? (c = /* @__PURE__ */ H(V, { flex: "none", alignItems: "center", justifyContent: "space-between", gap: "sm", borderBottomWidth: "1px", borderColor: "border.muted", bg: "bg.muted", px: "sm", py: "xs", children: [
299
- n,
300
- i
301
- ] }), e[4] = n, e[5] = i, e[6] = c) : c = e[6], c;
302
- }, be = (r) => Array.isArray(r) ? r.map(be) : !r || typeof r != "object" ? r : Object.fromEntries(Object.entries(r).sort(([e], [t]) => e.localeCompare(t)).map(([e, t]) => [e, be(t)])), Ze = (r) => {
303
- const {
304
- fileRendererId: e,
305
- resource: t
306
- } = r, l = t ? be({
307
- id: t.id,
308
- type: t.type,
309
- metadata: t.metadata
310
- }) : null;
311
- return `${JSON.stringify(q(t))}:${e}:${JSON.stringify(l)}`;
312
- }, et = (r, e) => r?.loadKey === e, tt = (r) => {
313
- const e = le(9), {
314
- fileName: t,
315
- filePath: l
316
- } = r, {
317
- activeFileIconTheme: n
318
- } = Te();
319
- let i;
320
- e[0] !== n || e[1] !== t ? (i = Le(t, {
321
- theme: n
322
- }), e[0] = n, e[1] = t, e[2] = i) : i = e[2];
323
- const c = `File path ${l}`;
324
- let y;
325
- e[3] !== l || e[4] !== c ? (y = /* @__PURE__ */ h(se, { "aria-label": c, textStyle: "label/S/regular", color: "fg.muted", truncate: !0, children: l }), e[3] = l, e[4] = c, e[5] = y) : y = e[5];
326
- let p;
327
- return e[6] !== i || e[7] !== y ? (p = /* @__PURE__ */ H(Ae, { variant: "narrow", flexShrink: 0, gap: "2xs", bg: "bg", children: [
328
- i,
329
- y
330
- ] }), e[6] = i, e[7] = y, e[8] = p) : p = e[8], p;
331
- }, rt = 600, nt = (r) => r instanceof Error ? r.message : "Failed to load file.", it = (r) => {
332
- const {
333
- workbench: e,
334
- navigation: t,
335
- sectionId: l
336
- } = r;
337
- if (!t || !F(e).getTreeRenderer(t.treeId)) return;
338
- if (l && t.anchors.some((i) => i.id === l)) {
339
- F(e).setSelectedNode(t.treeId, l);
340
- return;
341
- }
342
- const n = F(e).getTreeState(t.treeId).selectedNodeId;
343
- n && t.anchors.some((i) => i.id === n) && F(e).setSelectedNode(t.treeId, void 0);
344
- }, ot = (r, e) => {
345
- if (!e) return;
346
- const t = F(r).getTreeRenderer(e.treeId) ? F(r).getTreeState(e.treeId).selectedNodeId : void 0;
347
- return {
348
- anchors: e.anchors,
349
- targetId: Ve(e, t)
350
- };
351
- }, pt = (r) => {
352
- const e = le(69), {
353
- workbench: t,
354
- contribution: l
355
- } = r, n = r.placement?.resource;
356
- let i, c;
357
- e[0] !== n || e[1] !== t ? (i = qe(n), c = ot(t, i), e[0] = n, e[1] = t, e[2] = i, e[3] = c) : (i = e[2], c = e[3]);
358
- const y = c;
359
- let p;
360
- e[4] !== l.id || e[5] !== n ? (p = Ze({
361
- fileRendererId: l.id,
362
- resource: n
363
- }), e[4] = l.id, e[5] = n, e[6] = p) : p = e[6];
364
- const d = p, [T, k] = me(null), [f, K] = me(null);
365
- let _;
366
- e[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (_ = {
367
- dirty: !1,
368
- saving: !1
369
- }, e[7] = _) : _ = e[7];
370
- const [g, N] = me(_), I = D(null), S = D(null), v = D(null);
371
- let a, b;
372
- e[8] !== n || e[9] !== i || e[10] !== t ? (a = () => {
373
- const o = v.current, m = o && F(t).getTreeRenderer(o.treeId) ? F(t).getTreeState(o.treeId).selectedNodeId : void 0;
374
- We({
375
- previous: o,
376
- current: i,
377
- currentResourceKey: q(n),
378
- selectedNodeId: m
379
- }) && o && F(t).setSelectedNode(o.treeId, void 0), v.current = i ? {
380
- resourceKey: q(n),
381
- treeId: i.treeId,
382
- anchorIds: i.anchors.map(lt)
383
- } : null;
384
- }, b = [n, i, t], e[8] = n, e[9] = i, e[10] = t, e[11] = a, e[12] = b) : (a = e[11], b = e[12]), ie(a, b);
385
- const x = D(l), L = D(n), s = D(r.placement);
386
- let u;
387
- e[13] !== l || e[14] !== r.placement || e[15] !== n ? (u = () => {
388
- x.current = l, L.current = n, s.current = r.placement;
389
- }, e[13] = l, e[14] = r.placement, e[15] = n, e[16] = u) : u = e[16], ie(u);
390
- const R = l.id, O = !!l.save;
391
- let W;
392
- e[17] !== R || e[18] !== O || e[19] !== d || e[20] !== r.placement?.instanceId || e[21] !== t ? (W = () => {
393
- let o = !1, m = !1;
394
- K(null);
395
- const w = Ie(d);
396
- k(w ? {
397
- ...w,
398
- editorRevision: 1,
399
- loadKey: d
400
- } : null);
401
- const ue = () => {
402
- Promise.resolve(x.current.load(L.current)).then((C) => {
403
- if (o || m)
404
- return;
405
- const j = Pe(C, d, I.current);
406
- j && (K(null), k(j));
407
- }).catch((C) => {
408
- o || m || K({
409
- loadKey: d,
410
- message: nt(C)
411
- });
412
- });
413
- };
414
- I.current = O ? Qe({
415
- binding: {
416
- rendererId: R,
417
- instanceId: r.placement?.instanceId ?? R,
418
- resourceKey: q(L.current)
419
- },
420
- debounceMs: rt,
421
- load: ue,
422
- onStateChange: (C) => {
423
- o || N(C);
424
- },
425
- save: (C, j) => Promise.resolve(x.current.save?.(L.current, C, j)).then((ne) => {
426
- const ye = Ie(d);
427
- return ye && !m && $e(d, {
428
- ...ye,
429
- content: C
430
- }), ne ?? void 0;
431
- })
432
- }) : null, w && I.current?.setBaseline(w.content, w.revision), N({
433
- dirty: !1,
434
- saving: !1
435
- }), ue();
436
- const we = t.resources.onWillRemove((C) => {
437
- if (q(C) !== q(L.current))
438
- return [];
439
- m = !0;
440
- const j = I.current?.markRemoved(), ne = s.current?.placementIdentity;
441
- return j && ne ? [ne] : [];
442
- }), _e = F(t).onDidRefreshFileRenderer((C) => {
443
- if (m || C.fileRendererId !== R)
444
- return;
445
- const j = I.current;
446
- j ? j.handleRefreshEvent(C) : ue();
447
- });
448
- return () => {
449
- o = !0, _e.dispose(), we.dispose(), I.current?.flush(), I.current = null;
450
- };
451
- }, e[17] = R, e[18] = O, e[19] = d, e[20] = r.placement?.instanceId, e[21] = t, e[22] = W) : W = e[22];
452
- const ce = r.placement?.instanceId;
453
- let M;
454
- e[23] !== R || e[24] !== O || e[25] !== d || e[26] !== ce || e[27] !== t ? (M = [R, O, t, d, ce], e[23] = R, e[24] = O, e[25] = d, e[26] = ce, e[27] = t, e[28] = M) : M = e[28], ie(W, M);
455
- let U, Y;
456
- e[29] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (Y = () => {
457
- const o = () => I.current?.flush(), m = () => {
458
- document.visibilityState === "hidden" && o();
459
- };
460
- return window.addEventListener("beforeunload", o), document.addEventListener("visibilitychange", m), () => {
461
- window.removeEventListener("beforeunload", o), document.removeEventListener("visibilitychange", m);
462
- };
463
- }, U = [], e[29] = U, e[30] = Y) : (U = e[29], Y = e[30]), ie(Y, U);
464
- let z;
465
- e[31] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (z = (o) => {
466
- I.current?.handleChange(o);
467
- }, e[31] = z) : z = e[31];
468
- const Re = z;
469
- let G;
470
- e[32] !== d || e[33] !== T ? (G = et(T, d) ? T : null, e[32] = d, e[33] = T, e[34] = G) : G = e[34];
471
- const E = G, X = E ? `${E.loadKey}:${E.editorRevision}` : "";
472
- let J, Q;
473
- e[35] !== X || e[36] !== i ? (J = () => {
474
- if (!X || i)
475
- return;
476
- const o = S.current;
477
- o && requestAnimationFrame(() => {
478
- let m = o.parentElement;
479
- for (; m; ) {
480
- const w = getComputedStyle(m).overflowY;
481
- ["auto", "scroll", "overlay"].includes(w) && m.scrollHeight > m.clientHeight && (m.scrollTop = 0), m = m.parentElement;
482
- }
483
- });
484
- }, Q = [X, i], e[35] = X, e[36] = i, e[37] = J, e[38] = Q) : (J = e[37], Q = e[38]), Ke(J, Q);
485
- const A = f?.loadKey === d ? f.message : void 0;
486
- let Z;
487
- e[39] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (Z = () => I.current?.retryLoad(), e[39] = Z) : Z = e[39];
488
- const ve = Z;
489
- let ee;
490
- e[40] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (ee = () => I.current?.retry(), e[40] = ee) : ee = e[40];
491
- const Ne = ee;
492
- if (A && !E) {
493
- let o;
494
- e[41] !== A ? (o = /* @__PURE__ */ h(se, { color: "fg.muted", children: A }), e[41] = A, e[42] = o) : o = e[42];
495
- let m;
496
- e[43] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = /* @__PURE__ */ h(Se, { size: "xs", variant: "subtle", onClick: ve, children: "Retry" }), e[43] = m) : m = e[43];
497
- let w;
498
- return e[44] !== o ? (w = /* @__PURE__ */ H(oe, { h: "full", minH: "0", bg: "bg", p: "md", flexDirection: "column", gap: "sm", children: [
499
- o,
500
- m
501
- ] }), e[44] = o, e[45] = w) : w = e[45], w;
502
- }
503
- if (!E) {
504
- let o;
505
- return e[46] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ h(oe, { h: "full", minH: "0", bg: "bg", children: /* @__PURE__ */ h(Fe, { size: "sm" }) }), e[46] = o) : o = e[46], o;
506
- }
507
- const ae = `${E.loadKey}:${E.editorRevision}`;
508
- let P = null;
509
- if (g.removed) {
510
- let o;
511
- e[47] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (o = /* @__PURE__ */ h(he, { message: "This resource was removed. Your draft is kept here. Copy it before closing this tab." }), e[47] = o) : o = e[47], P = o;
512
- } else if (A) {
513
- let o;
514
- e[48] !== A ? (o = /* @__PURE__ */ h(he, { message: A, onRetry: ve }), e[48] = A, e[49] = o) : o = e[49], P = o;
515
- } else if (g.saveError) {
516
- let o;
517
- e[50] !== g.saveError ? (o = /* @__PURE__ */ h(he, { message: g.saveError, onRetry: Ne }), e[50] = g.saveError, e[51] = o) : o = e[51], P = o;
518
- }
519
- let te;
520
- e[52] !== i || e[53] !== t ? (te = (o) => {
521
- it({
522
- workbench: t,
523
- navigation: i,
524
- sectionId: o
525
- });
526
- }, e[52] = i, e[53] = t, e[54] = te) : te = e[54];
527
- const Ce = te;
528
- let $;
529
- e[55] !== E.fileName || e[56] !== E.filePath ? ($ = E.filePath ? /* @__PURE__ */ h(tt, { fileName: E.fileName ?? E.filePath, filePath: E.filePath }) : null, e[55] = E.fileName, e[56] = E.filePath, e[57] = $) : $ = e[57];
530
- const xe = P, de = !!l.save, fe = i ? Ce : void 0;
531
- let B;
532
- e[58] !== l.title || e[59] !== E || e[60] !== ae || e[61] !== y || e[62] !== P || e[63] !== de || e[64] !== fe ? (B = /* @__PURE__ */ h(ge, { flex: "1", minH: "0", children: /* @__PURE__ */ h(Je, { content: E, editorKey: ae, errorNotice: xe, contributionCanSave: de, onActiveSectionChange: fe, onChange: Re, rendererRef: S, sectionNavigation: y, title: l.title }) }), e[58] = l.title, e[59] = E, e[60] = ae, e[61] = y, e[62] = P, e[63] = de, e[64] = fe, e[65] = B) : B = e[65];
533
- let re;
534
- return e[66] !== $ || e[67] !== B ? (re = /* @__PURE__ */ H(V, { direction: "column", h: "full", minH: "0", bg: "bg", children: [
535
- $,
536
- B
537
- ] }), e[66] = $, e[67] = B, e[68] = re) : re = e[68], re;
538
- };
539
- function lt(r) {
540
- return r.id;
541
- }
542
- export {
543
- pt as WorkbenchFileRendererView
544
- };
545
- //# sourceMappingURL=file-renderer-view-BJ3LX04R.js.map