@jxsuite/studio 5.1.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{cf-account-picker-qwkm9zrf.js → cf-account-picker-nwnwdm6p.js} +10 -10
- package/dist/chunks/{cf-settings-71bv5zn9.js → cf-settings-adg74qsk.js} +4 -4
- package/dist/chunks/{components-vj72gqtq.js → components-5y78e05d.js} +4 -4
- package/dist/chunks/content-source-4rzvmp0m.js +46 -0
- package/dist/chunks/{convert-to-repeater-n64h8znc.js → convert-to-repeater-jxsv62v7.js} +22 -22
- package/dist/chunks/entry-commands-1wnsqn5d.js +42 -0
- package/dist/chunks/{extension-sections-3hpcambp.js → extension-sections-2mrptyek.js} +27 -27
- package/dist/chunks/{file-ops-8yhd83xr.js → file-ops-knfqshrm.js} +22 -22
- package/dist/chunks/{files-hnxqxtsg.js → files-y6fr4he9.js} +32 -30
- package/dist/chunks/{format-host-779sfp2n.js → format-host-1k4qrcqd.js} +2 -2
- package/dist/chunks/{fs-events-b88z7g4h.js → fs-events-3y6y0nrm.js} +4 -4
- package/dist/chunks/{git-panel-xwj8fpab.js → git-panel-2rkrsjva.js} +23 -22
- package/dist/chunks/grid-view-1p6hsyjx.css +8406 -0
- package/dist/chunks/grid-view-a7b87n2c.js +15322 -0
- package/dist/chunks/{iframe-host-syr0f9sb.js → iframe-host-scpw01h8.js} +13 -13
- package/dist/chunks/{jx-validate-j0wxk72w.js → jx-validate-epp2z3s3.js} +2 -2
- package/dist/chunks/{layers-ff81wthn.js → layers-jnvdbqva.js} +5 -5
- package/dist/chunks/layers-panel-73gfkcga.js +41 -0
- package/dist/chunks/{listbox-6v2ac08j.js → listbox-b7jxnhq1.js} +19 -3
- package/dist/chunks/{media-picker-cqhhxhhe.js → media-picker-f66nav16.js} +13 -13
- package/dist/chunks/menu-1dfhry4s.js +15 -0
- package/dist/chunks/{monaco-buffer-bhy3hb6m.js → monaco-buffer-pykwbm92.js} +3 -3
- package/dist/chunks/{monaco-setup-8r62fj6y.js → monaco-setup-km6abc6q.js} +2 -2
- package/dist/chunks/{notify-628t0anh.js → notify-42gk8ha1.js} +2 -2
- package/dist/chunks/{parse-0zx14y15.js → parse-reg9eevt.js} +2 -2
- package/dist/chunks/publish-panel-z1zd2da1.js +27 -0
- package/dist/chunks/quick-search-zdv7h8ht.js +47 -0
- package/dist/chunks/{references-qvvxej7h.js → references-h69xp9zz.js} +2 -2
- package/dist/chunks/right-panel-889vbnm5.js +45 -0
- package/dist/chunks/{split-g7nm1rgb.js → split-4cz4b6ef.js} +14 -3
- package/dist/chunks/{studio-vfq8qpjt.js → studio-0j7r7s9g.js} +3 -3
- package/dist/chunks/{studio-b4s9eykd.js → studio-151w0xnh.js} +15 -15
- package/dist/chunks/studio-1tbjfqv4.js +146 -0
- package/dist/chunks/{studio-8scdew0e.js → studio-27q131j3.js} +4 -4
- package/dist/chunks/{studio-7r42c6ca.js → studio-3ntvq6cg.js} +5 -5
- package/dist/chunks/{studio-g3jevyjt.js → studio-4c041r8y.js} +2 -2
- package/dist/chunks/{studio-js8nv53n.js → studio-4f3psrk1.js} +14 -14
- package/dist/chunks/{studio-pxbgypmg.js → studio-50wfwy44.js} +17 -14
- package/dist/chunks/{studio-vw7mzp6z.js → studio-6gryj0sg.js} +5 -5
- package/dist/chunks/{studio-e1pgga3k.js → studio-6kvgrkrp.js} +7 -7
- package/dist/chunks/{studio-wqz6dggm.js → studio-7144epdr.js} +9 -9
- package/dist/chunks/{studio-b0k5tqgp.js → studio-7rrb1esn.js} +32 -28
- package/dist/chunks/{studio-38emantv.js → studio-a5h5j33a.js} +19 -5
- package/dist/chunks/{studio-3773086z.js → studio-a65w20ex.js} +4 -4
- package/dist/chunks/{studio-nzzpvzx9.js → studio-ab87phj1.js} +4 -4
- package/dist/chunks/{studio-r6nvacqs.js → studio-b66rsh78.js} +20 -20
- package/dist/chunks/{studio-jxp12rnj.js → studio-b7xacrwe.js} +6 -6
- package/dist/chunks/{studio-6xa21ej9.js → studio-c04nzbby.js} +2 -2
- package/dist/chunks/{studio-try13h8c.js → studio-c0qgc3tn.js} +18 -18
- package/dist/chunks/{studio-tqgryxwg.js → studio-cgprcdxn.js} +7 -7
- package/dist/chunks/{studio-kkqkcp3d.js → studio-d1n2bykn.js} +40 -13
- package/dist/chunks/{studio-p1dw8wfw.js → studio-d8z5bajd.js} +14 -10
- package/dist/chunks/{studio-3rz5md06.js → studio-dd1qqkry.js} +6 -6
- package/dist/chunks/{studio-1z1kcjv4.js → studio-drg8qj9k.js} +11 -11
- package/dist/chunks/{studio-kcgff4r0.js → studio-fgmfksz8.js} +2 -2
- package/dist/chunks/{studio-qk90fgqm.js → studio-fzjx96t2.js} +7 -7
- package/dist/chunks/{studio-a79k90n9.js → studio-g33v4fe9.js} +17 -16
- package/dist/chunks/{studio-k75n7vhp.js → studio-gk2twyh4.js} +74 -36
- package/dist/chunks/{studio-syg2tadj.js → studio-gtfq1dkz.js} +3 -3
- package/dist/chunks/{studio-1knfqgy7.js → studio-j0w60gft.js} +8 -8
- package/dist/chunks/{studio-aj37eer3.js → studio-jt27ta6x.js} +4 -4
- package/dist/chunks/{studio-gb13095a.js → studio-ke09tn9k.js} +59 -20
- package/dist/chunks/{studio-d0300636.js → studio-ks2zzth2.js} +17 -2
- package/dist/chunks/{studio-6ewqv390.js → studio-m1p9b6c3.js} +5 -5
- package/dist/chunks/{studio-qk4bfsq2.js → studio-msc1ee1m.js} +4 -4
- package/dist/chunks/{studio-93zafjcm.js → studio-nfx354t1.js} +10 -10
- package/dist/chunks/{studio-mhhyamxf.js → studio-nsgw7dbk.js} +6 -6
- package/dist/chunks/{studio-qhhm6hbt.js → studio-rtskkm43.js} +4 -4
- package/dist/chunks/studio-t171hxhe.js +23 -0
- package/dist/chunks/{studio-hhvs4sdg.js → studio-vn5hske5.js} +10 -4
- package/dist/chunks/{studio-q3x06vmj.js → studio-wnsyffg1.js} +2 -2
- package/dist/chunks/{studio-5wt9nvhd.js → studio-xajk70w0.js} +29 -42
- package/dist/chunks/{studio-7xnmgv66.js → studio-ye9drbk8.js} +45 -44
- package/dist/chunks/{studio-y9zedyjn.js → studio-z2smx5ce.js} +2 -2
- package/dist/chunks/{studio-sbjyc8bt.js → studio-ze46gzjh.js} +9 -9
- package/dist/chunks/{studio-zdn2g6dt.js → studio-zjjde71a.js} +2 -2
- package/dist/chunks/{workspace-t55jdjbx.js → workspace-np10mayv.js} +18 -10
- package/dist/iframe-entry.js +9 -5
- package/dist/studio.css +1 -2
- package/dist/studio.js +910 -15705
- package/package.json +10 -10
- package/src/files/files.ts +38 -15
- package/src/grid/grid-lazy.ts +59 -0
- package/src/grid/grid-open.ts +20 -3
- package/src/grid/grid-panel.ts +43 -9
- package/src/media/media-open.ts +14 -2
- package/src/panels/chat-panel.ts +40 -5
- package/src/panels/pane-context.ts +5 -4
- package/src/panels/pane-grid.ts +100 -10
- package/src/panels/tab-drop.ts +220 -0
- package/src/panels/tab-strip.ts +235 -30
- package/src/services/ai-models.ts +13 -0
- package/src/services/module-preloads.ts +67 -0
- package/src/studio.ts +16 -6
- package/src/surfaces/commandbar.json +26 -16
- package/src/surfaces/formula-palette.json +8 -7
- package/src/surfaces/formula-palette.ts +10 -6
- package/src/surfaces/palette.json +8 -7
- package/src/surfaces/pane-grid.json +35 -3
- package/src/surfaces/pane-grid.ts +26 -4
- package/src/surfaces/tab-strip.json +16 -39
- package/src/surfaces/tab-strip.ts +76 -12
- package/src/ui/ai-credentials-form.ts +12 -1
- package/src/ui/panel-resize.ts +3 -23
- package/src/ui/virtual-window.ts +57 -4
- package/src/workspace/pane-derive.ts +7 -5
- package/src/workspace/session.ts +3 -3
- package/src/workspace/workspace.ts +160 -43
- package/styles/shell-frame.css +8 -0
- package/styles/shell-frame.json +4 -0
- package/dist/chunks/content-source-5mex4x1h.js +0 -46
- package/dist/chunks/entry-commands-234hjnqw.js +0 -42
- package/dist/chunks/layers-panel-pnnghw12.js +0 -40
- package/dist/chunks/menu-9p2w46gj.js +0 -15
- package/dist/chunks/publish-panel-5zt840sy.js +0 -27
- package/dist/chunks/quick-search-3748564r.js +0 -45
- package/dist/chunks/right-panel-eccz92qt.js +0 -45
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
toRaw,
|
|
7
7
|
computed,
|
|
8
8
|
notify2
|
|
9
|
-
} from "./studio-
|
|
9
|
+
} from "./studio-d8z5bajd.js";
|
|
10
10
|
import {
|
|
11
11
|
commitTabBuffers2
|
|
12
|
-
} from "./studio-
|
|
12
|
+
} from "./studio-wnsyffg1.js";
|
|
13
13
|
import {
|
|
14
14
|
getPlatform2
|
|
15
15
|
} from "./studio-6nzaktvy.js";
|
|
@@ -17,12 +17,12 @@ import {
|
|
|
17
17
|
formatByName2,
|
|
18
18
|
formatForPath2,
|
|
19
19
|
defaultContentFormat2
|
|
20
|
-
} from "./studio-
|
|
20
|
+
} from "./studio-6gryj0sg.js";
|
|
21
21
|
import {
|
|
22
22
|
getNestedStyle,
|
|
23
23
|
ensureNestedStyle,
|
|
24
24
|
isEventBinding
|
|
25
|
-
} from "./studio-
|
|
25
|
+
} from "./studio-3ntvq6cg.js";
|
|
26
26
|
import {
|
|
27
27
|
getNodeAtPath2,
|
|
28
28
|
normalizeArrayChildren,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
pathsEqual,
|
|
32
32
|
isAncestor,
|
|
33
33
|
projectState
|
|
34
|
-
} from "./studio-
|
|
34
|
+
} from "./studio-m1p9b6c3.js";
|
|
35
35
|
import {
|
|
36
36
|
cloneValue2,
|
|
37
37
|
childArray2,
|
|
@@ -2743,6 +2743,7 @@ function coerceArgs(commandId, schema, args) {
|
|
|
2743
2743
|
var CLOSED_TAB_LIMIT = 20;
|
|
2744
2744
|
var PRIMARY_PANE2 = "primary";
|
|
2745
2745
|
var SECONDARY_PANE2 = "secondary";
|
|
2746
|
+
var MAX_PANES2 = 2;
|
|
2746
2747
|
var workspace2 = reactive({
|
|
2747
2748
|
activePaneId: PRIMARY_PANE2,
|
|
2748
2749
|
clipboard: null,
|
|
@@ -2808,28 +2809,30 @@ function focusPane2(paneId) {
|
|
|
2808
2809
|
function isPaneFocused2(paneId) {
|
|
2809
2810
|
return workspace2.activePaneId === paneId;
|
|
2810
2811
|
}
|
|
2811
|
-
function
|
|
2812
|
-
const
|
|
2813
|
-
const
|
|
2814
|
-
|
|
2815
|
-
if (!tabId || !tab) {
|
|
2812
|
+
function splitRight2(tabId) {
|
|
2813
|
+
const id = tabId ?? activePane2().activeTabId;
|
|
2814
|
+
const tab = id ? workspace2.tabs.get(id) : null;
|
|
2815
|
+
if (!id || !tab) {
|
|
2816
2816
|
return null;
|
|
2817
2817
|
}
|
|
2818
|
-
const
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2818
|
+
const source = paneOfTab2(id);
|
|
2819
|
+
if (!source) {
|
|
2820
|
+
return null;
|
|
2821
|
+
}
|
|
2822
|
+
const target = receivingPane2(source.id);
|
|
2823
|
+
detachTab2(id);
|
|
2824
|
+
insertIntoPane2(target, id);
|
|
2825
|
+
target.activeTabId = id;
|
|
2822
2826
|
workspace2.activePaneId = target.id;
|
|
2823
2827
|
resetTabCycle();
|
|
2824
|
-
promoteMru(
|
|
2828
|
+
promoteMru(id);
|
|
2825
2829
|
return target;
|
|
2826
2830
|
}
|
|
2827
|
-
function
|
|
2828
|
-
|
|
2829
|
-
return workspace2.panes.find((pane) => pane.id !== source.id) ?? addPane(SECONDARY_PANE2);
|
|
2831
|
+
function paneBeside2(paneId) {
|
|
2832
|
+
return workspace2.panes.find((pane) => pane.id !== paneId) ?? addPane(SECONDARY_PANE2);
|
|
2830
2833
|
}
|
|
2831
|
-
function receivingPane2() {
|
|
2832
|
-
const target =
|
|
2834
|
+
function receivingPane2(paneId) {
|
|
2835
|
+
const target = paneBeside2(paneId);
|
|
2833
2836
|
if (target.derived) {
|
|
2834
2837
|
target.derived = null;
|
|
2835
2838
|
}
|
|
@@ -2851,7 +2854,7 @@ function addPane(paneId) {
|
|
|
2851
2854
|
];
|
|
2852
2855
|
return paneById2(paneId);
|
|
2853
2856
|
}
|
|
2854
|
-
function
|
|
2857
|
+
function closePane2(paneId) {
|
|
2855
2858
|
if (workspace2.panes.length < 2) {
|
|
2856
2859
|
return;
|
|
2857
2860
|
}
|
|
@@ -2872,7 +2875,7 @@ function closePane(paneId) {
|
|
|
2872
2875
|
workspace2.panes = workspace2.panes.filter((candidate) => candidate.id !== pane.id);
|
|
2873
2876
|
resetTabCycle();
|
|
2874
2877
|
}
|
|
2875
|
-
function
|
|
2878
|
+
function paneIsEmpty2(pane) {
|
|
2876
2879
|
return pane.tabOrder.length === 0 && pane.derived === null;
|
|
2877
2880
|
}
|
|
2878
2881
|
function detachTab2(tabId) {
|
|
@@ -2885,12 +2888,12 @@ function detachTab2(tabId) {
|
|
|
2885
2888
|
if (pane.activeTabId === tabId) {
|
|
2886
2889
|
pane.activeTabId = pane.tabOrder.at(-1) ?? null;
|
|
2887
2890
|
}
|
|
2888
|
-
if (pane.id !== PRIMARY_PANE2 &&
|
|
2891
|
+
if (pane.id !== PRIMARY_PANE2 && paneIsEmpty2(pane)) {
|
|
2889
2892
|
emptied.push(pane.id);
|
|
2890
2893
|
}
|
|
2891
2894
|
}
|
|
2892
2895
|
for (const paneId of emptied) {
|
|
2893
|
-
|
|
2896
|
+
closePane2(paneId);
|
|
2894
2897
|
}
|
|
2895
2898
|
}
|
|
2896
2899
|
function insertIntoPane2(pane, tabId, index) {
|
|
@@ -3025,12 +3028,19 @@ function moveTab2(tabId, toIndex) {
|
|
|
3025
3028
|
if (!tab || !pane) {
|
|
3026
3029
|
return;
|
|
3027
3030
|
}
|
|
3031
|
+
pane.tabOrder = reorderWithinPane(pane, tabId, toIndex);
|
|
3032
|
+
}
|
|
3033
|
+
function reorderWithinPane(pane, tabId, toIndex) {
|
|
3034
|
+
const tab = workspace2.tabs.get(tabId);
|
|
3035
|
+
if (!tab) {
|
|
3036
|
+
return pane.tabOrder;
|
|
3037
|
+
}
|
|
3028
3038
|
const without = pane.tabOrder.filter((id) => id !== tabId);
|
|
3029
3039
|
const boundary = without.filter((id) => workspace2.tabs.get(id)?.pinned === true).length;
|
|
3030
3040
|
const lower = tab.pinned ? 0 : boundary;
|
|
3031
3041
|
const upper = tab.pinned ? boundary : without.length;
|
|
3032
3042
|
const at = Math.min(Math.max(toIndex, lower), upper);
|
|
3033
|
-
|
|
3043
|
+
return [...without.slice(0, at), tabId, ...without.slice(at)];
|
|
3034
3044
|
}
|
|
3035
3045
|
function closeTab2(tabId) {
|
|
3036
3046
|
const tab = workspace2.tabs.get(tabId);
|
|
@@ -3045,8 +3055,8 @@ function closeTab2(tabId) {
|
|
|
3045
3055
|
detachTab2(tabId);
|
|
3046
3056
|
workspace2.mruOrder = workspace2.mruOrder.filter((id) => id !== tabId);
|
|
3047
3057
|
resetTabCycle();
|
|
3048
|
-
if (pane &&
|
|
3049
|
-
|
|
3058
|
+
if (pane && paneIsEmpty2(pane)) {
|
|
3059
|
+
closePane2(pane.id);
|
|
3050
3060
|
}
|
|
3051
3061
|
if (!wasActive) {
|
|
3052
3062
|
return;
|
|
@@ -3128,16 +3138,19 @@ function replaceAllTabs2(newTabOpts) {
|
|
|
3128
3138
|
function activateTab2(tabId, opts = {}) {
|
|
3129
3139
|
setActiveTab(tabId, opts);
|
|
3130
3140
|
}
|
|
3131
|
-
function moveTabToPane2(tabId, paneId) {
|
|
3141
|
+
function moveTabToPane2(tabId, paneId, index) {
|
|
3132
3142
|
const pane = paneById2(paneId);
|
|
3133
3143
|
if (!pane || !workspace2.tabs.has(tabId)) {
|
|
3134
3144
|
return null;
|
|
3135
3145
|
}
|
|
3136
3146
|
if (pane.tabOrder.includes(tabId)) {
|
|
3147
|
+
if (index !== undefined) {
|
|
3148
|
+
pane.tabOrder = reorderWithinPane(pane, tabId, index);
|
|
3149
|
+
}
|
|
3137
3150
|
return pane;
|
|
3138
3151
|
}
|
|
3139
3152
|
detachTab2(tabId);
|
|
3140
|
-
insertIntoPane2(pane, tabId);
|
|
3153
|
+
insertIntoPane2(pane, tabId, index);
|
|
3141
3154
|
return pane;
|
|
3142
3155
|
}
|
|
3143
3156
|
function renameTab2(oldId, newId, newDocumentPath) {
|
|
@@ -3228,6 +3241,31 @@ function tabCommands(deps) {
|
|
|
3228
3241
|
}
|
|
3229
3242
|
}
|
|
3230
3243
|
},
|
|
3244
|
+
{
|
|
3245
|
+
args: argsSchema({
|
|
3246
|
+
file: stringProperty('Project-relative path of the file to open in the other pane, e.g. "pages/about.json". ' + "It must exist.")
|
|
3247
|
+
}),
|
|
3248
|
+
id: "document.openToSide",
|
|
3249
|
+
title: "Open to the Side",
|
|
3250
|
+
category: "Document",
|
|
3251
|
+
level: "project",
|
|
3252
|
+
menus: ["context/file", "palette"],
|
|
3253
|
+
group: "1_file",
|
|
3254
|
+
when: (ctx) => ctx.project.open,
|
|
3255
|
+
requires: "an open project",
|
|
3256
|
+
undo: "none",
|
|
3257
|
+
run: async (_ctx, args) => {
|
|
3258
|
+
const file = stringArg("document.openToSide", args, "file");
|
|
3259
|
+
const target = receivingPane2(activePane2().id);
|
|
3260
|
+
await deps.openFile(file, { paneId: target.id });
|
|
3261
|
+
if (![...workspace2.tabs.values()].some((tab) => tab.documentPath === file)) {
|
|
3262
|
+
if (paneIsEmpty2(target) && target.id !== PRIMARY_PANE2) {
|
|
3263
|
+
closePane2(target.id);
|
|
3264
|
+
}
|
|
3265
|
+
throw new RangeError(`command "document.openToSide" argument "file": "${file}" could not be opened — it ` + `does not exist, or no editor claims its format. Problems has the reason.`);
|
|
3266
|
+
}
|
|
3267
|
+
}
|
|
3268
|
+
},
|
|
3231
3269
|
{
|
|
3232
3270
|
id: "document.reopenClosed",
|
|
3233
3271
|
title: "Reopen Closed Document",
|
|
@@ -3319,7 +3357,7 @@ function paneCommands(deps) {
|
|
|
3319
3357
|
requires: "an open document",
|
|
3320
3358
|
undo: "none",
|
|
3321
3359
|
run: () => {
|
|
3322
|
-
|
|
3360
|
+
splitRight2();
|
|
3323
3361
|
}
|
|
3324
3362
|
},
|
|
3325
3363
|
{
|
|
@@ -3343,7 +3381,7 @@ function paneCommands(deps) {
|
|
|
3343
3381
|
if (held?.documentPath === path) {
|
|
3344
3382
|
throw new RangeError(`command "pane.compareWith" argument "path": "${path}" is the document this pane is ` + `already showing — name a different one`);
|
|
3345
3383
|
}
|
|
3346
|
-
await deps.openFileInPane(receivingPane2().id, path);
|
|
3384
|
+
await deps.openFileInPane(receivingPane2(here.id).id, path);
|
|
3347
3385
|
}
|
|
3348
3386
|
},
|
|
3349
3387
|
{
|
|
@@ -3394,14 +3432,14 @@ function runUnsplit() {
|
|
|
3394
3432
|
const derived = workspace2.panes.find((pane) => pane.derived !== null);
|
|
3395
3433
|
if (derived?.id === PRIMARY_PANE2) {
|
|
3396
3434
|
derived.derived = null;
|
|
3397
|
-
if (!
|
|
3435
|
+
if (!paneIsEmpty2(derived)) {
|
|
3398
3436
|
return;
|
|
3399
3437
|
}
|
|
3400
3438
|
}
|
|
3401
|
-
|
|
3439
|
+
closePane2(derived?.id ?? SECONDARY_PANE2);
|
|
3402
3440
|
}
|
|
3403
3441
|
|
|
3404
|
-
export { LANGUAGE_TAG_PATTERN, canonicalizeLocale, isWellFormedLocale, localeDirection, localeLabel, resolveI18n, localeOfPath, servedLocaleOfPath, translationKeyOfPath, translationPathFor, EDITOR_KIND_LABELS, editorKindForMode, canvasViewForMode, inCanvas, hasSelection, hasElementSelection, emptyContext, makeContext, keyScopeStack, PROJECT_CONFIG_PATH, createTab, editorKindOf, editorKindsOf, modeForEditorKind, disposeTab, primarySelection, selectionAnchor, isSelected, cloneSelection, toggleSelected, rangeSelection, isSpliceablePath, structuralBatch, uniquePaths, unifyValues, setPatchConsumer, recordDocOp, transactDoc, transact, beginBatch, endBatch, isBatching, batchTab, setHistoryDelegate, canUndo, canRedo, undo, redo, mutateInsertNode, mutateRemoveNode, mutateDuplicateNode, mutateRemoveNodes, mutateDuplicateNodes, mutateWrapNode, mutateMoveNode, mutateUpdateProperty, mutateUpdateStyle, mutateUpdateAttribute, mutateUpdateMediaStyle, mutateUpdateNestedStyle, mutateUpdateMediaNestedStyle, mutateUpdateNestedStylePath, mutateUpdateMediaNestedStylePath, mutateReplaceStyle, mutateAddDef, mutateRemoveDef, mutateUpdateDef, mutateRenameDef, mutateUpdateProp, mutateAddSwitchCase, mutateRemoveSwitchCase, mutateRenameSwitchCase, mutateUpdateFrontmatter, collabState, isCollabPath, stringArg, optionalStringArg, boundedNumberArg, booleanArg, enumArg, pathArg, nullablePathArg, pathListArg, argsSchema, enumProperty, derivedEnumProperty, numberProperty, booleanProperty, pathProperty, pathListProperty, stringProperty, coerceArgs, LOCALE_PLACEHOLDER, collectionForDirectory, collectionForFile, camelToLabel, toCamelCase, kebabToLabel, propLabel, attrLabel, abbreviateValue, isMediaFormat, inferInputType, findContentTypeSchema, friendlyNameToVar, varDisplayName, parseCemType, jsonClone, configureCollabSerializer, configureCollabParser, configureCollabNotifier, collabSourceContext, collabReadOnly, collabSave, flushAllCollab, setCollabEnabled, isCollabEnabled, PRIMARY_PANE2, SECONDARY_PANE2, workspace2, activeTab2, activePane2, paneById2, paneOfTab2, focusPane2, isPaneFocused2,
|
|
3442
|
+
export { LANGUAGE_TAG_PATTERN, canonicalizeLocale, isWellFormedLocale, localeDirection, localeLabel, resolveI18n, localeOfPath, servedLocaleOfPath, translationKeyOfPath, translationPathFor, EDITOR_KIND_LABELS, editorKindForMode, canvasViewForMode, inCanvas, hasSelection, hasElementSelection, emptyContext, makeContext, keyScopeStack, PROJECT_CONFIG_PATH, createTab, editorKindOf, editorKindsOf, modeForEditorKind, disposeTab, primarySelection, selectionAnchor, isSelected, cloneSelection, toggleSelected, rangeSelection, isSpliceablePath, structuralBatch, uniquePaths, unifyValues, setPatchConsumer, recordDocOp, transactDoc, transact, beginBatch, endBatch, isBatching, batchTab, setHistoryDelegate, canUndo, canRedo, undo, redo, mutateInsertNode, mutateRemoveNode, mutateDuplicateNode, mutateRemoveNodes, mutateDuplicateNodes, mutateWrapNode, mutateMoveNode, mutateUpdateProperty, mutateUpdateStyle, mutateUpdateAttribute, mutateUpdateMediaStyle, mutateUpdateNestedStyle, mutateUpdateMediaNestedStyle, mutateUpdateNestedStylePath, mutateUpdateMediaNestedStylePath, mutateReplaceStyle, mutateAddDef, mutateRemoveDef, mutateUpdateDef, mutateRenameDef, mutateUpdateProp, mutateAddSwitchCase, mutateRemoveSwitchCase, mutateRenameSwitchCase, mutateUpdateFrontmatter, collabState, isCollabPath, stringArg, optionalStringArg, boundedNumberArg, booleanArg, enumArg, pathArg, nullablePathArg, pathListArg, argsSchema, enumProperty, derivedEnumProperty, numberProperty, booleanProperty, pathProperty, pathListProperty, stringProperty, coerceArgs, LOCALE_PLACEHOLDER, collectionForDirectory, collectionForFile, camelToLabel, toCamelCase, kebabToLabel, propLabel, attrLabel, abbreviateValue, isMediaFormat, inferInputType, findContentTypeSchema, friendlyNameToVar, varDisplayName, parseCemType, jsonClone, configureCollabSerializer, configureCollabParser, configureCollabNotifier, collabSourceContext, collabReadOnly, collabSave, flushAllCollab, setCollabEnabled, isCollabEnabled, PRIMARY_PANE2, SECONDARY_PANE2, MAX_PANES2, workspace2, activeTab2, activePane2, paneById2, paneOfTab2, focusPane2, isPaneFocused2, splitRight2, paneBeside2, receivingPane2, closePane2, paneIsEmpty2, detachTab2, insertIntoPane2, setWorkspaceProject2, isTabActive2, tabIsLive2, openTab2, promoteTab2, promoteDirtyPreviewTabs2, setTabPinned2, moveTab2, closeTab2, closeAllTabs2, replaceAllTabs2, activateTab2, moveTabToPane2, renameTab2, registerTabCommands2 };
|
|
3405
3443
|
|
|
3406
|
-
//# debugId=
|
|
3407
|
-
//# sourceMappingURL=studio-
|
|
3444
|
+
//# debugId=CC161DFB5A8EC33464756E2164756E21
|
|
3445
|
+
//# sourceMappingURL=studio-gk2twyh4.js.map
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
} from "./studio-6nzaktvy.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeProjectPath
|
|
6
|
-
} from "./studio-
|
|
6
|
+
} from "./studio-d1n2bykn.js";
|
|
7
7
|
import {
|
|
8
8
|
extensionOf,
|
|
9
9
|
mediaKind,
|
|
10
10
|
baseName,
|
|
11
11
|
dirName
|
|
12
|
-
} from "./studio-
|
|
12
|
+
} from "./studio-b7xacrwe.js";
|
|
13
13
|
|
|
14
14
|
// src/files/media-meta.ts
|
|
15
15
|
var settled = new Map;
|
|
@@ -115,4 +115,4 @@ function mediaMetaSummary(meta) {
|
|
|
115
115
|
export { peekMediaMeta, seedMediaMeta, loadMediaMeta, recordImageSize, invalidateMediaMeta, formatBytes, mediaMetaSummary };
|
|
116
116
|
|
|
117
117
|
//# debugId=23AD97ADF0A22AE164756E2164756E21
|
|
118
|
-
//# sourceMappingURL=studio-
|
|
118
|
+
//# sourceMappingURL=studio-gtfq1dkz.js.map
|
|
@@ -3,10 +3,10 @@ import {
|
|
|
3
3
|
} from "./studio-6nzaktvy.js";
|
|
4
4
|
import {
|
|
5
5
|
projectState
|
|
6
|
-
} from "./studio-
|
|
6
|
+
} from "./studio-m1p9b6c3.js";
|
|
7
7
|
import {
|
|
8
8
|
reactive
|
|
9
|
-
} from "./studio-
|
|
9
|
+
} from "./studio-d8z5bajd.js";
|
|
10
10
|
import {
|
|
11
11
|
loadFormats2,
|
|
12
12
|
formatByName2,
|
|
@@ -14,21 +14,21 @@ import {
|
|
|
14
14
|
documentExtensions2,
|
|
15
15
|
defaultContentFormat2,
|
|
16
16
|
formatSerialize2
|
|
17
|
-
} from "./studio-
|
|
17
|
+
} from "./studio-6gryj0sg.js";
|
|
18
18
|
import {
|
|
19
19
|
workspace2
|
|
20
|
-
} from "./studio-
|
|
20
|
+
} from "./studio-gk2twyh4.js";
|
|
21
21
|
import {
|
|
22
22
|
markLocalMutation2,
|
|
23
23
|
isRecentLocal2
|
|
24
|
-
} from "./studio-
|
|
24
|
+
} from "./studio-4c041r8y.js";
|
|
25
25
|
import {
|
|
26
26
|
makeGridTabId,
|
|
27
27
|
columnsFromSchema,
|
|
28
28
|
inferColumnsFromRows,
|
|
29
29
|
getGridController,
|
|
30
30
|
parseSourceForPath2
|
|
31
|
-
} from "./studio-
|
|
31
|
+
} from "./studio-ke09tn9k.js";
|
|
32
32
|
import {
|
|
33
33
|
__preload
|
|
34
34
|
} from "./studio-5te5tqng.js";
|
|
@@ -330,7 +330,7 @@ function buildEntryFileSource(opts) {
|
|
|
330
330
|
await writeEntry(path, entry, patches);
|
|
331
331
|
outcome(true);
|
|
332
332
|
if (openTab) {
|
|
333
|
-
const { reloadFileInTab } = await (__preload("
|
|
333
|
+
const { reloadFileInTab } = await (__preload("y6fr4he9"), import("./files-y6fr4he9.js"));
|
|
334
334
|
reloadFileInTab(path);
|
|
335
335
|
}
|
|
336
336
|
} catch (error) {
|
|
@@ -495,4 +495,4 @@ function createPagesSource2() {
|
|
|
495
495
|
export { DRAFT_FIELD, DRAFT_MEANING, isDraftEntry, hasDraftAxis, setIncludeDrafts, collectionInfo2, collectionDirs2, listCollectionEntryIds2, reloadDraftAwareGrids2, createCollectionSource2, createPagesSource2 };
|
|
496
496
|
|
|
497
497
|
//# debugId=9A9477683F06DFEB64756E2164756E21
|
|
498
|
-
//# sourceMappingURL=studio-
|
|
498
|
+
//# sourceMappingURL=studio-j0w60gft.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureCaret
|
|
3
|
-
} from "./studio-
|
|
3
|
+
} from "./studio-d1n2bykn.js";
|
|
4
4
|
import {
|
|
5
5
|
registerSurface,
|
|
6
6
|
mountSurface,
|
|
7
7
|
getLayerSlot2,
|
|
8
8
|
clearLayerSlot2
|
|
9
|
-
} from "./studio-
|
|
9
|
+
} from "./studio-0j7r7s9g.js";
|
|
10
10
|
import {
|
|
11
11
|
reactive
|
|
12
|
-
} from "./studio-
|
|
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-
|
|
422
|
+
//# sourceMappingURL=studio-jt27ta6x.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./studio-6nzaktvy.js";
|
|
5
5
|
import {
|
|
6
6
|
displayTagName
|
|
7
|
-
} from "./studio-
|
|
7
|
+
} from "./studio-3ntvq6cg.js";
|
|
8
8
|
import {
|
|
9
9
|
errorMessage2
|
|
10
10
|
} from "./studio-yxa81f45.js";
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
clearProblems2,
|
|
25
25
|
problemFindings2,
|
|
26
26
|
problemCount2
|
|
27
|
-
} from "./studio-
|
|
27
|
+
} from "./studio-d8z5bajd.js";
|
|
28
28
|
import {
|
|
29
29
|
loadFormats2,
|
|
30
30
|
formatByName2,
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
formatParse2,
|
|
35
35
|
formatSerialize2,
|
|
36
36
|
splitFormatDocument2
|
|
37
|
-
} from "./studio-
|
|
37
|
+
} from "./studio-6gryj0sg.js";
|
|
38
38
|
import {
|
|
39
39
|
getNodeAtPath2,
|
|
40
40
|
childList,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
nodeLabel,
|
|
43
43
|
projectState,
|
|
44
44
|
statusbarEl
|
|
45
|
-
} from "./studio-
|
|
45
|
+
} from "./studio-m1p9b6c3.js";
|
|
46
46
|
import {
|
|
47
47
|
EDITOR_KIND_LABELS,
|
|
48
48
|
primarySelection,
|
|
@@ -59,10 +59,10 @@ import {
|
|
|
59
59
|
PRIMARY_PANE2,
|
|
60
60
|
workspace2,
|
|
61
61
|
activeTab2
|
|
62
|
-
} from "./studio-
|
|
62
|
+
} from "./studio-gk2twyh4.js";
|
|
63
63
|
import {
|
|
64
64
|
isMediaFile
|
|
65
|
-
} from "./studio-
|
|
65
|
+
} from "./studio-b7xacrwe.js";
|
|
66
66
|
import {
|
|
67
67
|
POPOVER_DEFAULT_MODE,
|
|
68
68
|
findPopoverDefects,
|
|
@@ -70,38 +70,38 @@ import {
|
|
|
70
70
|
POPOVER_TAGS,
|
|
71
71
|
INVOKER_TAGS,
|
|
72
72
|
activeRegistry
|
|
73
|
-
} from "./studio-
|
|
73
|
+
} from "./studio-d1n2bykn.js";
|
|
74
74
|
import {
|
|
75
75
|
paneRegion,
|
|
76
76
|
registerSurface,
|
|
77
77
|
mountSurface,
|
|
78
78
|
runReported,
|
|
79
79
|
showConfirmDialog2
|
|
80
|
-
} from "./studio-
|
|
80
|
+
} from "./studio-0j7r7s9g.js";
|
|
81
81
|
import {
|
|
82
82
|
openMenu2
|
|
83
|
-
} from "./studio-
|
|
83
|
+
} from "./studio-jt27ta6x.js";
|
|
84
84
|
import {
|
|
85
85
|
parseJsonDocument,
|
|
86
86
|
serializeJson,
|
|
87
87
|
shell
|
|
88
|
-
} from "./studio-
|
|
88
|
+
} from "./studio-fzjx96t2.js";
|
|
89
89
|
import {
|
|
90
90
|
deployStatusItem
|
|
91
|
-
} from "./studio-
|
|
91
|
+
} from "./studio-nsgw7dbk.js";
|
|
92
92
|
import {
|
|
93
93
|
tabOfPane,
|
|
94
94
|
derivationOfPane,
|
|
95
95
|
findDialogDefects,
|
|
96
96
|
flushCanvasEdits2
|
|
97
|
-
} from "./studio-
|
|
97
|
+
} from "./studio-drg8qj9k.js";
|
|
98
98
|
import {
|
|
99
99
|
isRecentLocal2
|
|
100
|
-
} from "./studio-
|
|
100
|
+
} from "./studio-4c041r8y.js";
|
|
101
101
|
import {
|
|
102
102
|
showProgressModal,
|
|
103
103
|
loadMediaUsages
|
|
104
|
-
} from "./studio-
|
|
104
|
+
} from "./studio-cgprcdxn.js";
|
|
105
105
|
import {
|
|
106
106
|
validateComponentSlots
|
|
107
107
|
} from "./studio-q0a3yk4n.js";
|
|
@@ -386,7 +386,7 @@ function mountJumpBarSurface(host, region, actions) {
|
|
|
386
386
|
var pane_grid_default = {
|
|
387
387
|
$schema: "https://jxsuite.com/schema/v1",
|
|
388
388
|
$id: "StudioPaneGrid",
|
|
389
|
-
$description: "The pane grid (studio.md §18.1): one cell per pane, with a splitter before every cell but the first. Every box here is EMPTY by design — the
|
|
389
|
+
$description: "The pane grid (studio.md §18.1): one cell per pane, with a splitter before every cell but the first. Every box here is EMPTY by design — the FIVE inside a cell are hosts other modules fill (`panels/tab-strip.ts` the strip, `panels/jump-bar.ts` the jump bar, `panels/pane-context.ts` the chrome layer, `canvas/canvas-render.ts` the stage, `panels/pane-grid.ts` itself the right-edge drop zone), and the stage is an ISLAND in the §9.4 sense: the canvas host mounts a cross-origin `<iframe>` into it, so nothing this document draws may ever go inside it. What the document owns is the STRUCTURE and the STYLE — the cell's own two-row grid, the three row-2 children that share its lower cell, and the splitter — which is `styles/shell.css`'s `.pane*` block and `styles/canvas.css`'s `.pane-stage` rule, carried here and keyed on `part`. Two things are load-bearing and easy to undo. (1) **A row that moves reloads an iframe**, so the keyed `$map` is not an optimisation: `workspace.panes[0]` is always the primary and `MAX_PANES` is 2, the key is the pane id, and the runtime's forward-cursor pass therefore never moves a kept row — gaining or losing the side pane leaves the primary's node, and the frame inside it, untouched. (2) **The splitter must sit BETWEEN two cells and inside neither**, so each row is a `display: contents` wrapper holding its own leading splitter and its cell: the wrapper generates no box, so the splitter and the two cells are the grid items of `#pane-grid` in DOM order, and a pointer landing on the splitter is in no cell at all. Every selector below is a `>` chain from the root, because a pane's stage hosts other surface documents and a bare `[part=\"row\"]` descendant rule would reach into them.",
|
|
390
390
|
tagName: "div",
|
|
391
391
|
attributes: {
|
|
392
392
|
part: "grid",
|
|
@@ -412,7 +412,7 @@ var pane_grid_default = {
|
|
|
412
412
|
zIndex: "10"
|
|
413
413
|
},
|
|
414
414
|
'& > [part="row"] > [part="pane"]': {
|
|
415
|
-
$description: 'ONE PANE, and one COLUMN, declared.
|
|
415
|
+
$description: 'ONE PANE, and one COLUMN, declared. Four children name `grid-row: 2` in order to share the lower cell, and auto-placement answers that by inventing an implicit column each: the jump bar, the chrome layer, the stage and the drop zone lined up side by side, the stage taking a third of the pane and pinning the document to the right edge. `grid-template-columns` is what makes "share the cell" mean it, and every row-2 child restates `grid-column: 1` so a future fifth one cannot re-open the same hole. No unit test can see this — happy-dom does no layout, so every rect is zero — which is why the screenshot lane is what caught it.',
|
|
416
416
|
display: "grid",
|
|
417
417
|
gridTemplateColumns: "minmax(0, 1fr)",
|
|
418
418
|
gridTemplateRows: "auto minmax(0, 1fr)",
|
|
@@ -467,11 +467,33 @@ var pane_grid_default = {
|
|
|
467
467
|
display: "flex",
|
|
468
468
|
gap: "var(--jx-space-6)",
|
|
469
469
|
alignItems: "flex-start"
|
|
470
|
+
},
|
|
471
|
+
'& > [part="row"] > [part="pane"] > [part="drop-zone"]': {
|
|
472
|
+
$description: "The right-edge target that creates a second pane (§18.1). Sits ABOVE the stage (`z-index: 4` against the stage's own stacking, jump's 3, chrome's 2) so a drag reaches it before it reaches the cross-origin iframe underneath, which would otherwise swallow every drag event with no affordance to say so. `pointer-events: none` when unarmed — a mouse doing anything other than dragging a tab or a file must pass straight through to the stage — and `auto` only while `data-armed` is set, which `panels/pane-grid.ts`'s own arming monitor writes for the DURATION of a drag it recognises, never for a click.",
|
|
473
|
+
gridRow: "2",
|
|
474
|
+
gridColumn: "1",
|
|
475
|
+
position: "relative",
|
|
476
|
+
zIndex: "4",
|
|
477
|
+
minWidth: "0",
|
|
478
|
+
pointerEvents: "none"
|
|
479
|
+
},
|
|
480
|
+
'& > [part="row"] > [part="pane"] > [part="drop-zone"][data-armed]': {
|
|
481
|
+
pointerEvents: "auto"
|
|
482
|
+
},
|
|
483
|
+
'& > [part="row"] > [part="pane"] > [part="drop-zone"][data-over]::after': {
|
|
484
|
+
$description: "The right BAND, not the whole cell: the zone only ever ACCEPTS a drop in that band (`panels/pane-grid.ts`'s `edgeData`), so lighting the whole cell would promise a drop this element refuses everywhere else in it.",
|
|
485
|
+
content: '""',
|
|
486
|
+
position: "absolute",
|
|
487
|
+
insetBlock: "0",
|
|
488
|
+
insetInlineEnd: "0",
|
|
489
|
+
insetInlineStart: "50%",
|
|
490
|
+
background: "color-mix(in srgb, var(--accent) 14%, transparent)",
|
|
491
|
+
borderInlineStart: "2px solid var(--accent)"
|
|
470
492
|
}
|
|
471
493
|
},
|
|
472
494
|
children: [
|
|
473
495
|
{
|
|
474
|
-
$description: "Keyed on the PANE ID, and that is the whole of §18.1 rule 1's structural half: the key is what makes the runtime MOVE a kept row rather than rebuild it, and re-parenting is not a move for an `<iframe>` — it reloads, dropping its `iframe-channel` connection, its shadow document and every `ready` panel with it. A row renders complete (its cell, its
|
|
496
|
+
$description: "Keyed on the PANE ID, and that is the whole of §18.1 rule 1's structural half: the key is what makes the runtime MOVE a kept row rather than rebuild it, and re-parenting is not a move for an `<iframe>` — it reloads, dropping its `iframe-channel` connection, its shadow document and every `ready` panel with it. A row renders complete (its cell, its five hosts and its splitter) inside the row's own effect scope before it is inserted, so there is no frame in which a cell exists with no stage inside it.",
|
|
475
497
|
$prototype: "Array",
|
|
476
498
|
items: { $ref: "#/state/rows" },
|
|
477
499
|
key: { $ref: "$map/item/id" },
|
|
@@ -563,6 +585,16 @@ var pane_grid_default = {
|
|
|
563
585
|
part: "pane-stage",
|
|
564
586
|
"data-jx-region": "${$map.item.region}"
|
|
565
587
|
}
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
$description: "The right-edge drop target (§18.1). No `data-jx-region`: `pane.<id>` uniqueness names the stage, and a second element answering to it would be a silently widened crop the moment a shot cropped this pane.",
|
|
591
|
+
tagName: "div",
|
|
592
|
+
attributes: {
|
|
593
|
+
part: "drop-zone",
|
|
594
|
+
role: "none",
|
|
595
|
+
"data-armed": "${state.armed ? '' : null}",
|
|
596
|
+
"data-over": "${state.edgePane === $map.item.id ? '' : null}"
|
|
597
|
+
}
|
|
566
598
|
}
|
|
567
599
|
]
|
|
568
600
|
}
|
|
@@ -583,7 +615,8 @@ var CELL_PARTS = new Map([
|
|
|
583
615
|
["strip", "strip"],
|
|
584
616
|
["jump", "jump"],
|
|
585
617
|
["chrome", "chrome"],
|
|
586
|
-
["pane-stage", "stage"]
|
|
618
|
+
["pane-stage", "stage"],
|
|
619
|
+
["drop-zone", "dropZone"]
|
|
587
620
|
]);
|
|
588
621
|
function partOf(def) {
|
|
589
622
|
const part = typeof def === "string" ? undefined : def.attributes?.["part"];
|
|
@@ -596,6 +629,8 @@ function paneOf(state) {
|
|
|
596
629
|
function mountPaneGridSurface(host, rows, split, actions) {
|
|
597
630
|
host.replaceChildren();
|
|
598
631
|
const scope = reactive({
|
|
632
|
+
armed: false,
|
|
633
|
+
edgePane: "",
|
|
599
634
|
move: actions.move,
|
|
600
635
|
paneSplit: split.value,
|
|
601
636
|
rows,
|
|
@@ -628,6 +663,10 @@ function mountPaneGridSurface(host, rows, split, actions) {
|
|
|
628
663
|
mounted = null;
|
|
629
664
|
host.replaceChildren();
|
|
630
665
|
},
|
|
666
|
+
drag(state) {
|
|
667
|
+
scope.armed = state.armed;
|
|
668
|
+
scope.edgePane = state.edgePane;
|
|
669
|
+
},
|
|
631
670
|
ready,
|
|
632
671
|
update(next, value) {
|
|
633
672
|
scope.rows = next;
|
|
@@ -2802,5 +2841,5 @@ async function renamePromptMessage2(path, verb = "rename") {
|
|
|
2802
2841
|
|
|
2803
2842
|
export { cellValuesEqual, makeGridTabId, parseGridTabId, gridTabLabel, columnsFromSchema, inferColumnsFromRows, coerceCellInput, cellToText, ROW_KEY_FIELD, getGridController, createGridController, PANE_SELECTOR, STAGE_SELECTOR, mountPaneGridSurface, attachJumpBarHost, mountJumpBar, projectSessions, renderStatusbar, mountStatusbar, registerPopoverCommands, serializeDocument, notePreviewOverlayEdit, armPreviewOverlay, disarmPreviewOverlay, flushPreviewOverlay, mediaTypeEssence, parseSourceForPath2, parseCollabSource2, setDocumentSavedListener2, saveFile2, exportFile2, confirmFileDelete2, renamePromptMessage2 };
|
|
2804
2843
|
|
|
2805
|
-
//# debugId=
|
|
2806
|
-
//# sourceMappingURL=studio-
|
|
2844
|
+
//# debugId=DBDB9C97E212B0A564756E2164756E21
|
|
2845
|
+
//# sourceMappingURL=studio-ke09tn9k.js.map
|
|
@@ -3579,6 +3579,20 @@ var schema_default = {
|
|
|
3579
3579
|
}
|
|
3580
3580
|
]
|
|
3581
3581
|
},
|
|
3582
|
+
oninstallresult: {
|
|
3583
|
+
description: 'Event handler for the "installresult" event.',
|
|
3584
|
+
oneOf: [
|
|
3585
|
+
{
|
|
3586
|
+
$ref: "#/$defs/RefObject"
|
|
3587
|
+
},
|
|
3588
|
+
{
|
|
3589
|
+
$ref: "#/$defs/ExpressionEntry"
|
|
3590
|
+
},
|
|
3591
|
+
{
|
|
3592
|
+
$ref: "#/$defs/FunctionDef"
|
|
3593
|
+
}
|
|
3594
|
+
]
|
|
3595
|
+
},
|
|
3582
3596
|
oninvalid: {
|
|
3583
3597
|
description: 'Event handler for the "invalid" event.',
|
|
3584
3598
|
oneOf: [
|
|
@@ -27923,6 +27937,7 @@ var schema_default = {
|
|
|
27923
27937
|
"img",
|
|
27924
27938
|
"input",
|
|
27925
27939
|
"ins",
|
|
27940
|
+
"install",
|
|
27926
27941
|
"kbd",
|
|
27927
27942
|
"label",
|
|
27928
27943
|
"legend",
|
|
@@ -29351,5 +29366,5 @@ var project_schema_default = {
|
|
|
29351
29366
|
|
|
29352
29367
|
export { schema_default, project_schema_default };
|
|
29353
29368
|
|
|
29354
|
-
//# debugId=
|
|
29355
|
-
//# sourceMappingURL=studio-
|
|
29369
|
+
//# debugId=31FF1A1BF06B525764756E2164756E21
|
|
29370
|
+
//# sourceMappingURL=studio-ks2zzth2.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
isRef,
|
|
3
3
|
isEventBinding,
|
|
4
4
|
displayTagName
|
|
5
|
-
} from "./studio-
|
|
5
|
+
} from "./studio-3ntvq6cg.js";
|
|
6
6
|
|
|
7
7
|
// src/ui/timing.ts
|
|
8
8
|
var INPUT_DEBOUNCE = 400;
|
|
@@ -142,7 +142,7 @@ function nodeLabel(node) {
|
|
|
142
142
|
}
|
|
143
143
|
if (node.$prototype === "Array") {
|
|
144
144
|
const { items } = node;
|
|
145
|
-
const ref = (
|
|
145
|
+
const ref = (isRef(items) ? items.$ref : undefined) || "items";
|
|
146
146
|
return `Repeater → ${ref}`;
|
|
147
147
|
}
|
|
148
148
|
if (node.$title) {
|
|
@@ -351,5 +351,5 @@ function updateCanvas(tab, patch) {
|
|
|
351
351
|
|
|
352
352
|
export { INPUT_DEBOUNCE, LIVE_PREVIEW, POLL_GIT, getNodeAtPath2, childList, normalizeArrayChildren, parentElementPath, childIndex, pathKey, pathsEqual, isAncestor, flattenTree, nodeLabel, projectState, setProjectState, requireProjectState, stripEventHandlers, activityBar, leftPanel, rightPanel, toolbarEl, statusbarEl, initShellRefs, VOID_ELEMENTS, COMMON_SELECTORS, isNestedSelector, debouncedStyleCommit, cancelStyleDebounce, rendersInFlight, registerRenderer, render3, renderOnly, updateSession, updateUi, updateCanvas };
|
|
353
353
|
|
|
354
|
-
//# debugId=
|
|
355
|
-
//# sourceMappingURL=studio-
|
|
354
|
+
//# debugId=9800A80DF4A0581E64756E2164756E21
|
|
355
|
+
//# sourceMappingURL=studio-m1p9b6c3.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
reactive,
|
|
6
6
|
notify2
|
|
7
|
-
} from "./studio-
|
|
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-
|
|
15
|
+
} from "./studio-0j7r7s9g.js";
|
|
16
16
|
import {
|
|
17
17
|
showModal,
|
|
18
18
|
close2
|
|
19
|
-
} from "./studio-
|
|
19
|
+
} from "./studio-d1n2bykn.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-
|
|
362
|
+
//# sourceMappingURL=studio-msc1ee1m.js.map
|