@jxsuite/studio 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/dist/chunks/{cf-account-picker-qwkm9zrf.js → cf-account-picker-h4dab9bq.js} +10 -10
  2. package/dist/chunks/{cf-settings-71bv5zn9.js → cf-settings-adg74qsk.js} +4 -4
  3. package/dist/chunks/{components-vj72gqtq.js → components-5y78e05d.js} +4 -4
  4. package/dist/chunks/content-source-sgg1sv6n.js +46 -0
  5. package/dist/chunks/{convert-to-repeater-n64h8znc.js → convert-to-repeater-mf1cxgfn.js} +22 -22
  6. package/dist/chunks/entry-commands-w9qsxa6q.js +42 -0
  7. package/dist/chunks/{extension-sections-3hpcambp.js → extension-sections-c6zwzbre.js} +26 -26
  8. package/dist/chunks/{file-ops-8yhd83xr.js → file-ops-vrpq1jjk.js} +22 -22
  9. package/dist/chunks/{files-hnxqxtsg.js → files-msaf95y6.js} +31 -30
  10. package/dist/chunks/{format-host-779sfp2n.js → format-host-f64fnesp.js} +2 -2
  11. package/dist/chunks/{fs-events-b88z7g4h.js → fs-events-3y6y0nrm.js} +4 -4
  12. package/dist/chunks/{git-panel-xwj8fpab.js → git-panel-bv5e22j0.js} +23 -22
  13. package/dist/chunks/grid-view-1p6hsyjx.css +8406 -0
  14. package/dist/chunks/grid-view-paj67nr5.js +15322 -0
  15. package/dist/chunks/{iframe-host-syr0f9sb.js → iframe-host-dh5np8vk.js} +13 -13
  16. package/dist/chunks/{layers-ff81wthn.js → layers-1vcfdbet.js} +5 -5
  17. package/dist/chunks/layers-panel-fksbdg4q.js +40 -0
  18. package/dist/chunks/{media-picker-cqhhxhhe.js → media-picker-p49nhqhs.js} +13 -13
  19. package/dist/chunks/menu-qht48vnc.js +15 -0
  20. package/dist/chunks/{monaco-buffer-bhy3hb6m.js → monaco-buffer-pykwbm92.js} +3 -3
  21. package/dist/chunks/{notify-628t0anh.js → notify-42gk8ha1.js} +2 -2
  22. package/dist/chunks/{parse-0zx14y15.js → parse-reg9eevt.js} +2 -2
  23. package/dist/chunks/publish-panel-vz23wwmg.js +27 -0
  24. package/dist/chunks/quick-search-e9rp74m8.js +46 -0
  25. package/dist/chunks/{references-qvvxej7h.js → references-h69xp9zz.js} +2 -2
  26. package/dist/chunks/right-panel-j97t2yvy.js +45 -0
  27. package/dist/chunks/{studio-b0k5tqgp.js → studio-01jeck2y.js} +31 -27
  28. package/dist/chunks/{studio-wqz6dggm.js → studio-14d9tq4d.js} +9 -9
  29. package/dist/chunks/{studio-try13h8c.js → studio-15f3kxqe.js} +18 -18
  30. package/dist/chunks/studio-1tbjfqv4.js +146 -0
  31. package/dist/chunks/{studio-vw7mzp6z.js → studio-28vs5k2y.js} +2 -2
  32. package/dist/chunks/{studio-93zafjcm.js → studio-2mdbbc76.js} +10 -10
  33. package/dist/chunks/{studio-7r42c6ca.js → studio-3ntvq6cg.js} +5 -5
  34. package/dist/chunks/{studio-g3jevyjt.js → studio-4c041r8y.js} +2 -2
  35. package/dist/chunks/{studio-3773086z.js → studio-4r14yzyy.js} +4 -4
  36. package/dist/chunks/{studio-3rz5md06.js → studio-4xmjcrg3.js} +6 -6
  37. package/dist/chunks/{studio-syg2tadj.js → studio-5nz00bhh.js} +3 -3
  38. package/dist/chunks/{studio-1knfqgy7.js → studio-5t7ena5z.js} +8 -8
  39. package/dist/chunks/{studio-a79k90n9.js → studio-66arbpc2.js} +8 -8
  40. package/dist/chunks/{studio-b4s9eykd.js → studio-68fydsrj.js} +15 -15
  41. package/dist/chunks/{studio-mhhyamxf.js → studio-9j6sfeba.js} +6 -6
  42. package/dist/chunks/{studio-7xnmgv66.js → studio-a1pswps3.js} +37 -37
  43. package/dist/chunks/{studio-6xa21ej9.js → studio-c04nzbby.js} +2 -2
  44. package/dist/chunks/{studio-nzzpvzx9.js → studio-c07s5ckd.js} +4 -4
  45. package/dist/chunks/{studio-js8nv53n.js → studio-ctm7bhx5.js} +14 -14
  46. package/dist/chunks/{studio-p1dw8wfw.js → studio-d8z5bajd.js} +14 -10
  47. package/dist/chunks/{studio-jxp12rnj.js → studio-en82c639.js} +6 -6
  48. package/dist/chunks/{studio-1z1kcjv4.js → studio-etvx9s2g.js} +11 -11
  49. package/dist/chunks/{studio-k75n7vhp.js → studio-ez11dmdh.js} +74 -36
  50. package/dist/chunks/{studio-qhhm6hbt.js → studio-hdc2jt3z.js} +4 -4
  51. package/dist/chunks/{studio-r6nvacqs.js → studio-hhskq2mr.js} +19 -19
  52. package/dist/chunks/{studio-6ewqv390.js → studio-m1p9b6c3.js} +5 -5
  53. package/dist/chunks/{studio-qk90fgqm.js → studio-mpzwze9x.js} +7 -7
  54. package/dist/chunks/{studio-e1pgga3k.js → studio-ncn9e189.js} +7 -7
  55. package/dist/chunks/{studio-kkqkcp3d.js → studio-p6pmwkvh.js} +10 -10
  56. package/dist/chunks/{studio-aj37eer3.js → studio-qa7fzxan.js} +4 -4
  57. package/dist/chunks/{studio-sbjyc8bt.js → studio-sar8g54p.js} +8 -8
  58. package/dist/chunks/studio-t171hxhe.js +23 -0
  59. package/dist/chunks/{studio-pxbgypmg.js → studio-t3adrr56.js} +17 -14
  60. package/dist/chunks/{studio-hhvs4sdg.js → studio-vn5hske5.js} +10 -4
  61. package/dist/chunks/{studio-5wt9nvhd.js → studio-vt0tj32j.js} +29 -42
  62. package/dist/chunks/{studio-qk4bfsq2.js → studio-wjpgxywa.js} +4 -4
  63. package/dist/chunks/{studio-q3x06vmj.js → studio-wnsyffg1.js} +2 -2
  64. package/dist/chunks/{studio-gb13095a.js → studio-x10fp4tp.js} +59 -20
  65. package/dist/chunks/{studio-8scdew0e.js → studio-x72j58vw.js} +4 -4
  66. package/dist/chunks/{studio-tqgryxwg.js → studio-y4f9fdge.js} +7 -7
  67. package/dist/chunks/{studio-vfq8qpjt.js → studio-ympe0n7a.js} +3 -3
  68. package/dist/chunks/{studio-y9zedyjn.js → studio-z2smx5ce.js} +2 -2
  69. package/dist/chunks/{studio-zdn2g6dt.js → studio-zjjde71a.js} +2 -2
  70. package/dist/chunks/{workspace-t55jdjbx.js → workspace-bnw54cha.js} +18 -10
  71. package/dist/iframe-entry.js +7 -3
  72. package/dist/studio.css +1 -2
  73. package/dist/studio.js +866 -15698
  74. package/package.json +6 -6
  75. package/src/files/files.ts +38 -15
  76. package/src/grid/grid-lazy.ts +59 -0
  77. package/src/grid/grid-open.ts +20 -3
  78. package/src/grid/grid-panel.ts +43 -9
  79. package/src/media/media-open.ts +14 -2
  80. package/src/panels/pane-context.ts +5 -4
  81. package/src/panels/pane-grid.ts +100 -10
  82. package/src/panels/tab-drop.ts +220 -0
  83. package/src/panels/tab-strip.ts +235 -30
  84. package/src/services/ai-models.ts +13 -0
  85. package/src/studio.ts +10 -6
  86. package/src/surfaces/commandbar.json +26 -16
  87. package/src/surfaces/pane-grid.json +35 -3
  88. package/src/surfaces/pane-grid.ts +26 -4
  89. package/src/surfaces/tab-strip.json +16 -39
  90. package/src/surfaces/tab-strip.ts +76 -12
  91. package/src/ui/ai-credentials-form.ts +12 -1
  92. package/src/workspace/pane-derive.ts +7 -5
  93. package/src/workspace/session.ts +3 -3
  94. package/src/workspace/workspace.ts +160 -43
  95. package/styles/shell-frame.css +8 -0
  96. package/styles/shell-frame.json +4 -0
  97. package/dist/chunks/content-source-5mex4x1h.js +0 -46
  98. package/dist/chunks/entry-commands-234hjnqw.js +0 -42
  99. package/dist/chunks/layers-panel-pnnghw12.js +0 -40
  100. package/dist/chunks/menu-9p2w46gj.js +0 -15
  101. package/dist/chunks/publish-panel-5zt840sy.js +0 -27
  102. package/dist/chunks/quick-search-3748564r.js +0 -45
  103. package/dist/chunks/right-panel-eccz92qt.js +0 -45
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  displayTagName,
7
7
  isPrivateStateKey
8
- } from "./studio-7r42c6ca.js";
8
+ } from "./studio-3ntvq6cg.js";
9
9
  import {
10
10
  getNodeAtPath2,
11
11
  childList,
@@ -17,23 +17,23 @@ import {
17
17
  stripEventHandlers,
18
18
  leftPanel,
19
19
  renderOnly
20
- } from "./studio-6ewqv390.js";
20
+ } from "./studio-m1p9b6c3.js";
21
21
  import {
22
22
  effectScope,
23
23
  effect,
24
24
  toRaw,
25
25
  notify2
26
- } from "./studio-p1dw8wfw.js";
26
+ } from "./studio-d8z5bajd.js";
27
27
  import {
28
28
  view,
29
29
  surfaceForPane,
30
30
  allCanvasSurfaces,
31
31
  stageContaining
32
- } from "./studio-q3x06vmj.js";
32
+ } from "./studio-wnsyffg1.js";
33
33
  import {
34
34
  loadExtensions2,
35
35
  formatByName2
36
- } from "./studio-vw7mzp6z.js";
36
+ } from "./studio-28vs5k2y.js";
37
37
  import {
38
38
  localeDirection,
39
39
  primarySelection,
@@ -62,7 +62,7 @@ import {
62
62
  paneById2,
63
63
  focusPane2,
64
64
  isTabActive2
65
- } from "./studio-k75n7vhp.js";
65
+ } from "./studio-ez11dmdh.js";
66
66
  import {
67
67
  getEffectiveMedia,
68
68
  getEffectiveImports,
@@ -74,12 +74,12 @@ import {
74
74
  distributePageIntoLayout,
75
75
  shell,
76
76
  setLayoutSelection
77
- } from "./studio-qk90fgqm.js";
77
+ } from "./studio-mpzwze9x.js";
78
78
  import {
79
79
  componentRegistry2,
80
80
  buildComponentInstance2,
81
81
  computeRelativePath2
82
- } from "./studio-zdn2g6dt.js";
82
+ } from "./studio-zjjde71a.js";
83
83
  import {
84
84
  pureSchemeOf,
85
85
  setSkipServerFunctions,
@@ -97,7 +97,7 @@ import {
97
97
  POPOVER_TAGS,
98
98
  INVOKER_TAGS,
99
99
  activeRegistry
100
- } from "./studio-kkqkcp3d.js";
100
+ } from "./studio-p6pmwkvh.js";
101
101
  import {
102
102
  _defineProperty,
103
103
  combine,
@@ -109,7 +109,7 @@ import {
109
109
  canvasBaseOrigin,
110
110
  documentBase,
111
111
  assetContextFor
112
- } from "./studio-nzzpvzx9.js";
112
+ } from "./studio-c07s5ckd.js";
113
113
  import {
114
114
  rectOf,
115
115
  elementAtPoint
@@ -5736,4 +5736,4 @@ function getEditBarAnchorRect2() {
5736
5736
  export { activeCanvasSurface, tabOfPane, derivationOfPane, surfacesShowingTab, canvasModeOfTab, canvasModeOfPane, activeMediaOfPane, paneOfContainer, tabOfContainer, findDialogDefects, getPreviewNavigateHandler, documentUrlPattern, dynamicRouteParams, pagePathsDef, invalidateParamValues, loadParamValues, isComponentDoc, componentPropEntries, SPAN_FULL_RENDER, SPAN_MOUNT_CANVAS, SPAN_PATCH_BATCH, canvasPerf, recordEscalation, timeSpan, timeSpanAsync, mediaDisplayName, defaultDef, parentCursorToIframe, serializeJxPath, elements_meta_default, getInlineActions, isInlineElement, isEditing, bubbleInlinePath, isSchemeQuery, schemeOfQuery, parseMediaEntries, snapEditWidth, EDIT_WIDTH_MIN, EDIT_WIDTH_SNAP_TOLERANCE, EDIT_CANVAS_GUTTER, declaredWidthOfTab, resolveEditColumnWidth, clearEditWidth, snapTargetsOfTab, setEditWidth, ancestorPopoverPath, ancestorDialogPath, dialogPathFor, stageZoom, canvasPanelEntry, bindCanvasPanels, activateCanvasPanel, observeCenterUntilStable, applyTransform, applyEditZoom, setEditZoom, requestEditZoom, fitToScreen, getFit, setFit, markExplicitZoom, setUserZoom, fitOnCanvasEntry, resetZoom, panToParentRect, canvasBaseViewsFor, canvasBaseViewOf, previewStateOf, setCanvasView, registerCanvasViewCommands, updateActivePanelHeaders, setDragGhost, moveDragGhost, clearDragGhost, disableNativeDragPreview, attachInstruction, extractInstruction, hasElement, enableElement, disableElement, removePackageElements, removeElementRef, renderComponentPreview, registerLayersDnD, registerComponentsDnD, registerElementsDnD, applyDropInstruction, sawIframeDragOver2, allowAutoRequestsOnNextRender2, requestCanvasEval2, flushCanvasEdits2, hostForCanvas2, liveDragHostAt2, beginDragSession2, currentDragSession2, hostDragGeometry2, canvasIdleBlockers2, canvasPointAt2, revealCanvasPath2, revealCanvasPathIn2, measureInCanvas2, adoptCanvasPreviewMode2, postDragMessage2, endDragSession2, clearDropIndicator2, setNativeDragEnterHandler2, setInsertZoneClickHandler2, setFileDropHandler2, setCanvasSlashHandler2, setCanvasContextMenuHandler2, setStylebookHitHandler2, isCaretActive2, setToolbarRefresh2, setCanvasPointerDownHandler2, setIframePatchEscalation2, postPopoverOpen2, postDialogOpen2, postPatchToHosts2, dragHostTab2, releaseCanvasHosts2, mountIframeCanvas2, mountStylebookCanvas2, postColorSchemeToLiveHosts2, postLocaleToLiveHosts2, postRedefineElementToLiveHosts2, postSiteStyleToLiveHosts2, postStyleUpdateToStylebookHosts2, panToStylebookTag2, getEditSnapshot2, setKeymapSource2, postApplyFormat2, postOpenSlash2, commitActiveEditSession2, getEditBarAnchorRect2 };
5737
5737
 
5738
5738
  //# debugId=138206C03AA4653064756E2164756E21
5739
- //# sourceMappingURL=studio-1z1kcjv4.js.map
5739
+ //# sourceMappingURL=studio-etvx9s2g.js.map
@@ -6,10 +6,10 @@ import {
6
6
  toRaw,
7
7
  computed,
8
8
  notify2
9
- } from "./studio-p1dw8wfw.js";
9
+ } from "./studio-d8z5bajd.js";
10
10
  import {
11
11
  commitTabBuffers2
12
- } from "./studio-q3x06vmj.js";
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-vw7mzp6z.js";
20
+ } from "./studio-28vs5k2y.js";
21
21
  import {
22
22
  getNestedStyle,
23
23
  ensureNestedStyle,
24
24
  isEventBinding
25
- } from "./studio-7r42c6ca.js";
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-6ewqv390.js";
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 splitRight() {
2812
- const source = activePane2();
2813
- const tabId = source.activeTabId;
2814
- const tab = tabId ? workspace2.tabs.get(tabId) : null;
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 target = receivingPane2();
2819
- detachTab2(tabId);
2820
- insertIntoPane2(target, tabId);
2821
- target.activeTabId = tabId;
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(tabId);
2828
+ promoteMru(id);
2825
2829
  return target;
2826
2830
  }
2827
- function sidePane2() {
2828
- const source = activePane2();
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 = sidePane2();
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 closePane(paneId) {
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 paneIsEmpty(pane) {
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 && paneIsEmpty(pane)) {
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
- closePane(paneId);
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
- pane.tabOrder = [...without.slice(0, at), tabId, ...without.slice(at)];
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 && paneIsEmpty(pane)) {
3049
- closePane(pane.id);
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
- splitRight();
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 (!paneIsEmpty(derived)) {
3435
+ if (!paneIsEmpty2(derived)) {
3398
3436
  return;
3399
3437
  }
3400
3438
  }
3401
- closePane(derived?.id ?? SECONDARY_PANE2);
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, sidePane2, receivingPane2, detachTab2, insertIntoPane2, setWorkspaceProject2, isTabActive2, tabIsLive2, openTab2, promoteTab2, promoteDirtyPreviewTabs2, setTabPinned2, moveTab2, closeTab2, closeAllTabs2, replaceAllTabs2, activateTab2, moveTabToPane2, renameTab2, registerTabCommands2 };
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=835A5B58C44D6A6B64756E2164756E21
3407
- //# sourceMappingURL=studio-k75n7vhp.js.map
3444
+ //# debugId=CC161DFB5A8EC33464756E2164756E21
3445
+ //# sourceMappingURL=studio-ez11dmdh.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  projectState
3
- } from "./studio-6ewqv390.js";
3
+ } from "./studio-m1p9b6c3.js";
4
4
  import {
5
5
  findContentTypeSchema
6
- } from "./studio-k75n7vhp.js";
6
+ } from "./studio-ez11dmdh.js";
7
7
  import {
8
8
  collectionInfo2
9
- } from "./studio-1knfqgy7.js";
9
+ } from "./studio-5t7ena5z.js";
10
10
 
11
11
  // src/content/entry-model.ts
12
12
  function collectionNames() {
@@ -88,4 +88,4 @@ function missingRequired(schema, value) {
88
88
  export { entryCollection, entryCollections, collectionOfPath, seedEntry, missingRequired };
89
89
 
90
90
  //# debugId=DEACD1047368F5A364756E2164756E21
91
- //# sourceMappingURL=studio-qhhm6hbt.js.map
91
+ //# sourceMappingURL=studio-hdc2jt3z.js.map
@@ -2,11 +2,11 @@ import {
2
2
  nothing2
3
3
  } from "./studio-1k325pwf.js";
4
4
  import {
5
- isRef2,
5
+ isRef,
6
6
  isTagExpression,
7
7
  tagNameCandidates,
8
8
  displayTagName
9
- } from "./studio-7r42c6ca.js";
9
+ } from "./studio-3ntvq6cg.js";
10
10
  import {
11
11
  getNodeAtPath2,
12
12
  childList,
@@ -19,18 +19,18 @@ import {
19
19
  projectState,
20
20
  VOID_ELEMENTS,
21
21
  updateSession
22
- } from "./studio-6ewqv390.js";
22
+ } from "./studio-m1p9b6c3.js";
23
23
  import {
24
24
  effect,
25
25
  pauseTracking,
26
26
  resetTracking,
27
27
  reactive,
28
28
  notify2
29
- } from "./studio-p1dw8wfw.js";
29
+ } from "./studio-d8z5bajd.js";
30
30
  import {
31
31
  view,
32
32
  stageContaining
33
- } from "./studio-q3x06vmj.js";
33
+ } from "./studio-wnsyffg1.js";
34
34
  import {
35
35
  getPlatform2
36
36
  } from "./studio-6nzaktvy.js";
@@ -61,26 +61,26 @@ import {
61
61
  jsonClone,
62
62
  workspace2,
63
63
  activeTab2
64
- } from "./studio-k75n7vhp.js";
64
+ } from "./studio-ez11dmdh.js";
65
65
  import {
66
66
  serializeJson,
67
67
  shell,
68
68
  setActivityTab
69
- } from "./studio-qk90fgqm.js";
69
+ } from "./studio-mpzwze9x.js";
70
70
  import {
71
71
  KEY_SCOPES,
72
72
  checkRecordPlacements,
73
73
  registerPanel
74
- } from "./studio-8scdew0e.js";
74
+ } from "./studio-x72j58vw.js";
75
75
  import {
76
76
  componentRegistry2,
77
77
  loadComponentRegistry2,
78
78
  computeRelativePath2
79
- } from "./studio-zdn2g6dt.js";
79
+ } from "./studio-zjjde71a.js";
80
80
  import {
81
81
  focusItem,
82
82
  activeRegistry
83
- } from "./studio-kkqkcp3d.js";
83
+ } from "./studio-p6pmwkvh.js";
84
84
  import {
85
85
  REGION_ATTR,
86
86
  overlayRegion,
@@ -91,13 +91,13 @@ import {
91
91
  showPromptDialog2,
92
92
  getLayerSlot2,
93
93
  clearLayerSlot2
94
- } from "./studio-vfq8qpjt.js";
94
+ } from "./studio-ympe0n7a.js";
95
95
  import {
96
96
  stylebook_meta_default,
97
97
  selectStylebookTag,
98
98
  noopCommandDeps,
99
99
  defaultCommands
100
- } from "./studio-93zafjcm.js";
100
+ } from "./studio-2mdbbc76.js";
101
101
  import {
102
102
  errorMessage2
103
103
  } from "./studio-yxa81f45.js";
@@ -115,7 +115,7 @@ import {
115
115
  getEditSnapshot2,
116
116
  postApplyFormat2,
117
117
  getEditBarAnchorRect2
118
- } from "./studio-1z1kcjv4.js";
118
+ } from "./studio-etvx9s2g.js";
119
119
  import {
120
120
  draggable2
121
121
  } from "./studio-esrxgwh6.js";
@@ -124,10 +124,10 @@ import {
124
124
  dataTypeLabel,
125
125
  inspectorCommands,
126
126
  defCategory
127
- } from "./studio-7xnmgv66.js";
127
+ } from "./studio-a1pswps3.js";
128
128
  import {
129
129
  openMenu2
130
- } from "./studio-aj37eer3.js";
130
+ } from "./studio-qa7fzxan.js";
131
131
  import {
132
132
  usagesSupported2
133
133
  } from "./studio-nq5yf5mp.js";
@@ -11194,7 +11194,7 @@ function findEnclosingRepeater(doc, path) {
11194
11194
  return node && node.$prototype === "Array" ? node : null;
11195
11195
  }
11196
11196
  function refToStateName(ref) {
11197
- if (!isRef2(ref)) {
11197
+ if (!isRef(ref)) {
11198
11198
  return null;
11199
11199
  }
11200
11200
  const { $ref: target } = ref;
@@ -13738,7 +13738,7 @@ function elementCommands(deps) {
13738
13738
  if (!target?.rerender) {
13739
13739
  return;
13740
13740
  }
13741
- const { startLayerTitleEdit } = await (__preload("pnnghw12"), import("./layers-panel-pnnghw12.js"));
13741
+ const { startLayerTitleEdit } = await (__preload("fksbdg4q"), import("./layers-panel-fksbdg4q.js"));
13742
13742
  startLayerTitleEdit(target.path, target.rerender);
13743
13743
  }
13744
13744
  }
@@ -15527,5 +15527,5 @@ function registerLayersPanel2() {
15527
15527
 
15528
15528
  export { findEnclosingRepeater, convertToComponent, showSlashMenu, showSlashMenuAtRect, dismissSlashMenu, handleSlashMenuKey, parseChord, normalizeChord, chordFromEvent, formatChord, overlappingScopes, chordsInScopes, createCommandRegistry, initBlockActionBar, formatCommands, registerSelectionCommands, dismissLinkPopover, dismissBlockActionBar, suppressBlockActionBar, releaseBlockActionBar, isEditChromeTarget, renderBlockActionBar, ok, find, html2, svg, stringify, stringify2, stringifyPosition, VFile, whitespace, setOpenDialog, setOpenPopover, ensurePopoverRevealWatch, startLayerTitleEdit2, registerLayersPanel2, pasteNode, clipboardCommands, setContextMenuNavigate, liveElementCommands, dismissContextMenu, showContextMenu };
15529
15529
 
15530
- //# debugId=E202198974A3399664756E2164756E21
15531
- //# sourceMappingURL=studio-r6nvacqs.js.map
15530
+ //# debugId=7893C37B2DF2B56864756E2164756E21
15531
+ //# sourceMappingURL=studio-hhskq2mr.js.map
@@ -1,8 +1,8 @@
1
1
  import {
2
- isRef2,
2
+ isRef,
3
3
  isEventBinding,
4
4
  displayTagName
5
- } from "./studio-7r42c6ca.js";
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 = (isRef2(items) ? items.$ref : undefined) || "items";
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=4E217858397A673D64756E2164756E21
355
- //# sourceMappingURL=studio-6ewqv390.js.map
354
+ //# debugId=9800A80DF4A0581E64756E2164756E21
355
+ //# sourceMappingURL=studio-m1p9b6c3.js.map
@@ -5,18 +5,18 @@ import {
5
5
  toRaw,
6
6
  pinClock,
7
7
  notify2
8
- } from "./studio-p1dw8wfw.js";
8
+ } from "./studio-d8z5bajd.js";
9
9
  import {
10
10
  getPlatform2
11
11
  } from "./studio-6nzaktvy.js";
12
12
  import {
13
13
  loadedMonaco
14
- } from "./studio-vw7mzp6z.js";
14
+ } from "./studio-28vs5k2y.js";
15
15
  import {
16
16
  projectState,
17
17
  setProjectState,
18
18
  requireProjectState
19
- } from "./studio-6ewqv390.js";
19
+ } from "./studio-m1p9b6c3.js";
20
20
  import {
21
21
  isWellFormedLocale,
22
22
  resolveI18n,
@@ -36,12 +36,12 @@ import {
36
36
  workspace2,
37
37
  focusPane2,
38
38
  setWorkspaceProject2
39
- } from "./studio-k75n7vhp.js";
39
+ } from "./studio-ez11dmdh.js";
40
40
  import {
41
41
  SETTINGS,
42
42
  readStoredSetting,
43
43
  setSetting
44
- } from "./studio-y9zedyjn.js";
44
+ } from "./studio-z2smx5ce.js";
45
45
  import {
46
46
  errorMessage2
47
47
  } from "./studio-yxa81f45.js";
@@ -1345,7 +1345,7 @@ function extensionsKey(config) {
1345
1345
  return JSON.stringify(config.extensions ?? null);
1346
1346
  }
1347
1347
  async function refreshExtensionSurfaces() {
1348
- const { loadFormats, refreshExtensionUi, refreshFormats } = await (__preload("779sfp2n"), import("./format-host-779sfp2n.js"));
1348
+ const { loadFormats, refreshExtensionUi, refreshFormats } = await (__preload("f64fnesp"), import("./format-host-f64fnesp.js"));
1349
1349
  refreshFormats();
1350
1350
  loadFormats();
1351
1351
  refreshExtensionUi(getPlatform2());
@@ -1583,4 +1583,4 @@ async function updateSiteConfig(patch) {
1583
1583
  export { parseJsonDocument, serializeJson, serializeProjectConfig, lendProjectConfigLayout, commitProjectConfig, adoptProjectConfig, getEffectiveMedia, getEffectiveStyle, getEffectiveImports, getEffectiveElements, getEffectiveHead, getEffectiveLocales, invalidateLayoutCache, getEffectiveLayoutPath, resolveLayoutDoc, distributePageIntoLayout, updateSiteConfig, restoreSession, requireNavigatorPanelId, DEFAULT_INSPECTOR_TAB, isInspectorTabId, BOTTOM_TAB_IDS, DEFAULT_BOTTOM_TAB, isBottomTabId, CHROME_THEMES, DOCK_IDS, DOCK_DEFAULT_SIZES, DEFAULT_PANE_SPLIT, PANE_SPLIT_MIN, PANE_SPLIT_MAX, setPaneSplit, shell, persistDocks, persistedSession, markSessionRestored, flushSession, monacoTheme, registerShellSurface, mountShell, setDockCollapsed, setDockSize, setActivityTab, setBottomTab, setChromeTheme, toggleActivityTab, setLayoutSelection, resetProjectShell, registerShellViewCommands };
1584
1584
 
1585
1585
  //# debugId=41F1C61D2E957DBB64756E2164756E21
1586
- //# sourceMappingURL=studio-qk90fgqm.js.map
1586
+ //# sourceMappingURL=studio-mpzwze9x.js.map
@@ -4,17 +4,17 @@ import {
4
4
  import {
5
5
  debouncedStyleCommit,
6
6
  renderOnly
7
- } from "./studio-6ewqv390.js";
7
+ } from "./studio-m1p9b6c3.js";
8
8
  import {
9
9
  REGION_ATTR,
10
10
  overlayRegion,
11
11
  registerSurface,
12
12
  mountSurface,
13
13
  layerHost2
14
- } from "./studio-vfq8qpjt.js";
14
+ } from "./studio-ympe0n7a.js";
15
15
  import {
16
16
  reactive
17
- } from "./studio-p1dw8wfw.js";
17
+ } from "./studio-d8z5bajd.js";
18
18
  import {
19
19
  IMAGE_EXTENSIONS,
20
20
  MEDIA_EXTENSIONS,
@@ -23,17 +23,17 @@ import {
23
23
  uploadAssets,
24
24
  mediaSiteUrl,
25
25
  previewFileSrc
26
- } from "./studio-jxp12rnj.js";
26
+ } from "./studio-en82c639.js";
27
27
  import {
28
28
  peekMediaMeta,
29
29
  seedMediaMeta,
30
30
  recordImageSize,
31
31
  invalidateMediaMeta,
32
32
  mediaMetaSummary
33
- } from "./studio-syg2tadj.js";
33
+ } from "./studio-5nz00bhh.js";
34
34
  import {
35
35
  previewAssetSrc
36
- } from "./studio-nzzpvzx9.js";
36
+ } from "./studio-c07s5ckd.js";
37
37
  import {
38
38
  rectOf
39
39
  } from "./studio-rs76k67r.js";
@@ -836,4 +836,4 @@ function unmountMediaPicker2(host) {
836
836
  export { openPopoverSurface, invalidateMediaCache2, showMediaPickerPopover2, uploadAndAssign2, pickAndUpload2, mountMediaPicker2, unmountMediaPicker2 };
837
837
 
838
838
  //# debugId=9A676D8FC549E4AE64756E2164756E21
839
- //# sourceMappingURL=studio-e1pgga3k.js.map
839
+ //# sourceMappingURL=studio-ncn9e189.js.map