@jxsuite/studio 2.4.0 → 2.4.2

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 (42) hide show
  1. package/dist/chunks/{content-source-jrvn5vwy.js → content-source-k9724vcv.js} +8 -8
  2. package/dist/chunks/{convert-to-repeater-109dwcj7.js → convert-to-repeater-k10dvcc7.js} +7 -7
  3. package/dist/chunks/{extension-sections-2zjyty05.js → extension-sections-0ada0xcw.js} +11 -11
  4. package/dist/chunks/{files-jdbtammm.js → files-yew27sn9.js} +12 -12
  5. package/dist/chunks/{format-host-kq6963gs.js → format-host-wewba4nq.js} +2 -2
  6. package/dist/chunks/{git-panel-2stf3ahg.js → git-panel-2dh1aw50.js} +7 -7
  7. package/dist/chunks/{layers-panel-a8wjsdjj.js → layers-panel-qnsghwwd.js} +10 -10
  8. package/dist/chunks/{publish-panel-2we6smjv.js → publish-panel-a0pdft5w.js} +5 -5
  9. package/dist/chunks/{quick-search-hmpwdgys.js → quick-search-9avyc4pc.js} +13 -13
  10. package/dist/chunks/{right-panel-hn3y3j0j.js → right-panel-kcnhtc5j.js} +9 -9
  11. package/dist/chunks/{studio-0evba9z5.js → studio-0b6fs05q.js} +5 -5
  12. package/dist/chunks/{studio-wxthr2x1.js → studio-26sv44br.js} +8 -8
  13. package/dist/chunks/{studio-eqyybj2e.js → studio-28xc8ws4.js} +4 -4
  14. package/dist/chunks/{studio-53dn6e6t.js → studio-aweyr4v1.js} +2 -2
  15. package/dist/chunks/{studio-102jzb8r.js → studio-cz2j1c0g.js} +4 -4
  16. package/dist/chunks/{studio-tqr02xaa.js → studio-dgj7gq44.js} +3 -3
  17. package/dist/chunks/{studio-ky68mp85.js → studio-ef8t53vc.js} +3 -3
  18. package/dist/chunks/{studio-8x4399kc.js → studio-f5yyvqxv.js} +7 -7
  19. package/dist/chunks/{studio-rdsvb808.js → studio-hb7c46jy.js} +5 -5
  20. package/dist/chunks/{studio-yz06mkfj.js → studio-hyn3vhwr.js} +5 -5
  21. package/dist/chunks/{studio-qd4k0h80.js → studio-jnakhg87.js} +4 -4
  22. package/dist/chunks/{studio-q07vj7p9.js → studio-ke244pam.js} +6 -6
  23. package/dist/chunks/{studio-yk7037sg.js → studio-pyrw8h0w.js} +60 -19
  24. package/dist/chunks/{studio-ddgrc5hs.js → studio-ra7ar50f.js} +3 -3
  25. package/dist/chunks/{studio-6gcrk1bq.js → studio-rqemfhz6.js} +2 -2
  26. package/dist/chunks/{studio-kwavhmdr.js → studio-sccge2wf.js} +2 -2
  27. package/dist/chunks/{studio-ng5gbxkj.js → studio-v1va0vhd.js} +8 -8
  28. package/dist/chunks/{studio-1dgqagzz.js → studio-v2c5pmjj.js} +10 -10
  29. package/dist/chunks/{studio-377bbhtz.js → studio-ws6ef6js.js} +8 -8
  30. package/dist/iframe-entry.js +99 -7
  31. package/dist/studio.js +31 -31
  32. package/package.json +4 -4
  33. package/src/canvas/canvas-origin.ts +14 -2
  34. package/src/canvas/editable-actions.ts +37 -1
  35. package/src/canvas/iframe-editable-root.ts +27 -0
  36. package/src/canvas/iframe-host.ts +118 -7
  37. package/src/canvas/iframe-inline-edit.ts +122 -6
  38. package/src/canvas/iframe-protocol.ts +7 -0
  39. package/src/canvas/iframe-render.ts +38 -1
  40. package/src/editor/inline-edit-apply.ts +10 -4
  41. package/src/editor/inline-edit.ts +62 -4
  42. package/src/types.ts +3 -1
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  renderForm,
3
3
  resolveContextPointer
4
- } from "./studio-ky68mp85.js";
4
+ } from "./studio-ef8t53vc.js";
5
5
  import {
6
6
  validateProjectConfig
7
7
  } from "./studio-6kv3apa9.js";
8
8
  import {
9
9
  deriveSecretEnvName
10
- } from "./studio-0evba9z5.js";
10
+ } from "./studio-0b6fs05q.js";
11
11
  import {
12
12
  paneOfContainer
13
- } from "./studio-yk7037sg.js";
13
+ } from "./studio-pyrw8h0w.js";
14
14
  import {
15
15
  commitProjectConfig,
16
16
  errorMessage,
17
17
  notify,
18
18
  paneRegion
19
- } from "./studio-ddgrc5hs.js";
19
+ } from "./studio-ra7ar50f.js";
20
20
  import {
21
21
  html,
22
22
  nothing,
@@ -332,4 +332,4 @@ function renderMapLayout(contribution, opts, rerender, paneId) {
332
332
  export { selectContributedEntry, renderContributedSection };
333
333
 
334
334
  //# debugId=C8B3D1846143F4B964756E2164756E21
335
- //# sourceMappingURL=studio-rdsvb808.js.map
335
+ //# sourceMappingURL=studio-hb7c46jy.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  parseMediaEntries,
3
3
  schemeOfQuery
4
- } from "./studio-ng5gbxkj.js";
4
+ } from "./studio-v1va0vhd.js";
5
5
  import {
6
6
  live
7
7
  } from "./studio-c31yb4t6.js";
@@ -11,7 +11,7 @@ import {
11
11
  panToStylebookTag,
12
12
  serializeJxPath,
13
13
  tabOfPane
14
- } from "./studio-yk7037sg.js";
14
+ } from "./studio-pyrw8h0w.js";
15
15
  import {
16
16
  activeTab,
17
17
  getEffectiveMedia,
@@ -19,7 +19,7 @@ import {
19
19
  isSpliceablePath,
20
20
  shell,
21
21
  varDisplayName
22
- } from "./studio-ddgrc5hs.js";
22
+ } from "./studio-ra7ar50f.js";
23
23
  import {
24
24
  classMap
25
25
  } from "./studio-twsafr1e.js";
@@ -860,7 +860,7 @@ function defaultCommands(deps) {
860
860
  description: "Turn the selected element into a repeater template, rendering it once per item of a " + "data collection the author picks in the dialog this opens."
861
861
  },
862
862
  run: () => {
863
- import("./convert-to-repeater-109dwcj7.js").then(({ convertToRepeater }) => convertToRepeater());
863
+ import("./convert-to-repeater-k10dvcc7.js").then(({ convertToRepeater }) => convertToRepeater());
864
864
  }
865
865
  },
866
866
  {
@@ -1065,4 +1065,4 @@ function inspectorFocusCommands(deps) {
1065
1065
  export { transposeStylebookStyle, tokenLabel, groupTokens, listTokenContexts, readTokenOverride, writeTokenOverride, addableContexts, stylebook_meta_default, renderStylebookMode, selectStylebookTag, INSPECTOR_TABS, noopCommandDeps, defaultCommands };
1066
1066
 
1067
1067
  //# debugId=46ED955C46B01FC864756E2164756E21
1068
- //# sourceMappingURL=studio-yz06mkfj.js.map
1068
+ //# sourceMappingURL=studio-hyn3vhwr.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getRecentProjects,
4
4
  openFileInTab,
5
5
  trackRecentFile
6
- } from "./studio-1dgqagzz.js";
6
+ } from "./studio-v2c5pmjj.js";
7
7
  import {
8
8
  live
9
9
  } from "./studio-c31yb4t6.js";
@@ -11,7 +11,7 @@ import {
11
11
  activeRegistry,
12
12
  activeTab,
13
13
  getLayerSlot
14
- } from "./studio-ddgrc5hs.js";
14
+ } from "./studio-ra7ar50f.js";
15
15
  import {
16
16
  classMap
17
17
  } from "./studio-twsafr1e.js";
@@ -32,7 +32,7 @@ import {
32
32
  documentExtensions,
33
33
  formatByExtension,
34
34
  loadFormats
35
- } from "./studio-6gcrk1bq.js";
35
+ } from "./studio-rqemfhz6.js";
36
36
  import {
37
37
  getPlatform
38
38
  } from "./studio-sas7mt3k.js";
@@ -656,4 +656,4 @@ function renderOverlay() {
656
656
  export { PALETTE_MODES, modeSpec, resolvePaletteMode, fuzzyScore, rankBy, paletteArgs, getRecentCommands, initQuickSearch, openQuickSearch, closeQuickSearch, isQuickSearchOpen };
657
657
 
658
658
  //# debugId=D01DE0145FC9DB1664756E2164756E21
659
- //# sourceMappingURL=studio-qd4k0h80.js.map
659
+ //# sourceMappingURL=studio-jnakhg87.js.map
@@ -8,14 +8,14 @@ import {
8
8
  activityIdleBlockers,
9
9
  beginActivity,
10
10
  showProgressModal
11
- } from "./studio-eqyybj2e.js";
11
+ } from "./studio-28xc8ws4.js";
12
12
  import {
13
13
  canvasIdleBlockers,
14
14
  canvasPointAt,
15
15
  registerPanel,
16
16
  renderEmptyState,
17
17
  revealCanvasPath
18
- } from "./studio-yk7037sg.js";
18
+ } from "./studio-pyrw8h0w.js";
19
19
  import {
20
20
  activeTab,
21
21
  collabState,
@@ -28,7 +28,7 @@ import {
28
28
  showConfirmDialog,
29
29
  showDialog,
30
30
  showPromptDialog
31
- } from "./studio-ddgrc5hs.js";
31
+ } from "./studio-ra7ar50f.js";
32
32
  import {
33
33
  ref,
34
34
  repeat
@@ -46,7 +46,7 @@ import {
46
46
  } from "./studio-cjm7fdjf.js";
47
47
  import {
48
48
  formatForPath
49
- } from "./studio-6gcrk1bq.js";
49
+ } from "./studio-rqemfhz6.js";
50
50
  import {
51
51
  getPlatform,
52
52
  hasPlatform,
@@ -346,7 +346,7 @@ async function createGithubRepository({ projectName }) {
346
346
  });
347
347
  return false;
348
348
  }
349
- const { refreshGitStatus } = await import("./git-panel-2stf3ahg.js");
349
+ const { refreshGitStatus } = await import("./git-panel-2dh1aw50.js");
350
350
  await refreshGitStatus();
351
351
  activity.done(repo.html_url);
352
352
  notify.success(`Repository created: ${repo.html_url}`, { key: "github.repo" });
@@ -1784,4 +1784,4 @@ function registerGitPanel() {
1784
1784
  export { hydrateProjectList, getProjectList, shouldInstallAutomation, installAutomationHook, stripRange, isComparable, isUpgrade, maybePromptJxsuiteUpdate, autoSyncProjectOnOpen, githubTokenStored, githubTokenLocation, clearGithubToken, refreshGitStatus, cloneRepository, platformSupportsClone, readGitDiff, loadDiffForLens, initRepository, pushCurrentBranch, signInToGithub, renderGitPanel, relativeDate, sourceControlCommands, registerSourceControlCommands, cleanupGitPanel, registerGitPanel };
1785
1785
 
1786
1786
  //# debugId=6DB34F497D8C14B864756E2164756E21
1787
- //# sourceMappingURL=studio-q07vj7p9.js.map
1787
+ //# sourceMappingURL=studio-ke244pam.js.map
@@ -51,7 +51,7 @@ import {
51
51
  transactDoc,
52
52
  view,
53
53
  workspace
54
- } from "./studio-ddgrc5hs.js";
54
+ } from "./studio-ra7ar50f.js";
55
55
  import {
56
56
  classMap,
57
57
  ifDefined,
@@ -106,7 +106,7 @@ import {
106
106
  import {
107
107
  formatByName,
108
108
  loadExtensions
109
- } from "./studio-6gcrk1bq.js";
109
+ } from "./studio-rqemfhz6.js";
110
110
  import {
111
111
  getPlatform,
112
112
  hasPlatform
@@ -3996,6 +3996,16 @@ function getPath2(obj, path) {
3996
3996
  return readPath(obj, path);
3997
3997
  }
3998
3998
  var _privatePropWarned = new Set;
3999
+ function instanceSupplies(el, key) {
4000
+ if (Object.hasOwn(el, key)) {
4001
+ return true;
4002
+ }
4003
+ if (el.hasAttribute(key)) {
4004
+ return true;
4005
+ }
4006
+ const kebab = key.replaceAll(/[A-Z]/gu, (c) => `-${c.toLowerCase()}`);
4007
+ return kebab !== key && el.hasAttribute(kebab);
4008
+ }
3999
4009
  function refusePrivateProp(key, where) {
4000
4010
  if (!isPrivateStateKey(key)) {
4001
4011
  return false;
@@ -4143,7 +4153,7 @@ async function defineElement(source, baseUrl) {
4143
4153
  if (isPrivateStateKey(key)) {
4144
4154
  continue;
4145
4155
  }
4146
- if (key in this && this[key] !== undefined) {
4156
+ if (key in this && this[key] !== undefined && instanceSupplies(this, key)) {
4147
4157
  state[key] = this[key];
4148
4158
  }
4149
4159
  }
@@ -4646,12 +4656,14 @@ function canvasBaseOrigin() {
4646
4656
  return location.origin;
4647
4657
  }
4648
4658
  function documentBase(projectRoot) {
4659
+ const origin = canvasBaseOrigin();
4649
4660
  const declared = hasPlatform() ? getPlatform().documentBaseUrl : undefined;
4650
4661
  if (declared) {
4651
- return declared.endsWith("/") ? declared : `${declared}/`;
4662
+ const withSlash = declared.endsWith("/") ? declared : `${declared}/`;
4663
+ return new URL(withSlash, `${origin}/`).href;
4652
4664
  }
4653
4665
  const root = projectRoot || "";
4654
- return `${canvasBaseOrigin()}/${root ? `${root}/` : ""}`;
4666
+ return `${origin}/${root ? `${root}/` : ""}`;
4655
4667
  }
4656
4668
  function loopbackAssetSrc(path) {
4657
4669
  if (path.startsWith("data:") || path.startsWith("blob:") || path.startsWith("http") || path.startsWith("views://")) {
@@ -5587,19 +5599,20 @@ function applyInlineCommit(tab, path, children, textContent, opts = {}) {
5587
5599
  }
5588
5600
  function applyInlinePropCommit(tab, path, prop, value) {
5589
5601
  if (!tab) {
5590
- return;
5602
+ return false;
5591
5603
  }
5592
5604
  const node = getNodeAtPath(tab.doc.document, path);
5593
5605
  if (!node) {
5594
- return;
5606
+ return false;
5595
5607
  }
5596
5608
  const current = node.$props?.[prop];
5597
5609
  if (`${current ?? ""}` === value) {
5598
- return;
5610
+ return false;
5599
5611
  }
5600
5612
  transactDoc(tab, (t) => {
5601
5613
  mutateUpdateProp(t, path, prop, value);
5602
5614
  });
5615
+ return true;
5603
5616
  }
5604
5617
  function applyBlockMerge(tab, fromPath, intoPath) {
5605
5618
  if (!tab) {
@@ -6430,6 +6443,22 @@ function withEchoSuppressed(host, paths, fn) {
6430
6443
  echoOrigin = null;
6431
6444
  }
6432
6445
  }
6446
+ var propEchoPending = null;
6447
+ var propRebuildAt = null;
6448
+ function needsReleaseReconcile(transacted, pending, path) {
6449
+ return !transacted && pending === path;
6450
+ }
6451
+ function reconcileInstance(state, path) {
6452
+ const tab = hostTab(state);
6453
+ if (!tab) {
6454
+ return;
6455
+ }
6456
+ const node = getNodeAtPath(tab.doc.document, path);
6457
+ if (!node) {
6458
+ return;
6459
+ }
6460
+ postPatchToHosts([{ key: "$props", op: "set-key", path, value: node.$props }], tab.id);
6461
+ }
6433
6462
  function hostTab(state) {
6434
6463
  return state.tabId ? workspace.tabs.get(state.tabId) ?? null : null;
6435
6464
  }
@@ -7102,6 +7131,10 @@ function handleMessage(state, msg) {
7102
7131
  activeEditHost.snapshot = null;
7103
7132
  }
7104
7133
  activeEditHost = state;
7134
+ if (msg.prop !== undefined && propRebuildAt === serializeJxPath(msg.path)) {
7135
+ deferEnterEdit(state, msg.path, undefined, msg.prop);
7136
+ }
7137
+ propRebuildAt = null;
7105
7138
  editRunSeq += 1;
7106
7139
  state.editing = true;
7107
7140
  state.editingProp = msg.prop ?? null;
@@ -7145,9 +7178,15 @@ function handleMessage(state, msg) {
7145
7178
  const applyProp = () => applyInlinePropCommit(hostTab(state), msg.path, msg.prop, msg.value);
7146
7179
  if (msg.inPlace) {
7147
7180
  withEchoSuppressed(state, [msg.path], applyProp);
7148
- } else {
7149
- applyProp();
7181
+ propEchoPending = serializeJxPath(msg.path);
7182
+ return;
7183
+ }
7184
+ const transacted = applyProp();
7185
+ if (needsReleaseReconcile(transacted, propEchoPending, serializeJxPath(msg.path))) {
7186
+ reconcileInstance(state, msg.path);
7150
7187
  }
7188
+ propEchoPending = null;
7189
+ propRebuildAt = transacted ? serializeJxPath(msg.path) : null;
7151
7190
  return;
7152
7191
  }
7153
7192
  case "editMerge": {
@@ -7240,25 +7279,27 @@ function onDomUpdated(state, gen) {
7240
7279
  requestPresence(state);
7241
7280
  hideInsertZoneNow(state);
7242
7281
  if (state.pendingEnterEdit && gen >= state.pendingEnterEdit.minGen) {
7243
- const { offset, path } = state.pendingEnterEdit;
7282
+ const { offset, path, prop } = state.pendingEnterEdit;
7244
7283
  state.pendingEnterEdit = null;
7245
7284
  if (state.tabId !== null && state.tabId === tabOfContainer(state.canvasEl)?.id) {
7246
- reenterEdit(state, path, offset);
7285
+ reenterEdit(state, path, offset, prop);
7247
7286
  }
7248
7287
  }
7249
7288
  }
7250
- function deferEnterEdit(state, path, offset) {
7289
+ function deferEnterEdit(state, path, offset, prop) {
7251
7290
  state.pendingEnterEdit = {
7252
7291
  minGen: state.lastRenderedGen,
7253
7292
  path: [...path],
7254
- ...offset === undefined ? {} : { offset }
7293
+ ...offset === undefined ? {} : { offset },
7294
+ ...prop === undefined ? {} : { prop }
7255
7295
  };
7256
7296
  }
7257
- function reenterEdit(state, path, offset) {
7297
+ function reenterEdit(state, path, offset, prop) {
7258
7298
  state.channel.post({
7259
7299
  kind: "enterEdit",
7260
7300
  path: [...path],
7261
- ...offset === undefined ? {} : { offset }
7301
+ ...offset === undefined ? {} : { offset },
7302
+ ...prop === undefined ? {} : { prop }
7262
7303
  });
7263
7304
  }
7264
7305
  function redispatchWheel(state, msg) {
@@ -7572,7 +7613,7 @@ function openPageAction(label = "Open a page…") {
7572
7613
  return {
7573
7614
  label,
7574
7615
  run: () => {
7575
- import("./quick-search-hmpwdgys.js").then((m) => {
7616
+ import("./quick-search-9avyc4pc.js").then((m) => {
7576
7617
  m.openQuickSearch();
7577
7618
  });
7578
7619
  }
@@ -7844,5 +7885,5 @@ function railPanelSet() {
7844
7885
 
7845
7886
  export { KEY_SCOPES, CATEGORIES, checkRecordPlacements, intlHelpersClause, PURE_METHOD_OPS, BLESSED_OPERATORS, BLESSED_GLOBALS, isMutating, evaluateExpression, rectOf, loopbackAssetSrc, getPreviewNavigateHandler, activeCanvasSurface, tabOfPane, derivationOfPane, surfacesShowingTab, canvasModeOfTab, canvasModeOfPane, activeMediaOfPane, paneOfContainer, tabOfContainer, dynamicRouteParams, documentUrlPattern, pagePathsDef, invalidateParamValues, loadParamValues, isComponentDoc, componentPropEntries, contentMountFor, previewAssetSrc, SPAN_FULL_RENDER, SPAN_MOUNT_CANVAS, SPAN_PATCH_BATCH, canvasPerf, recordEscalation, timeSpan, timeSpanAsync, mediaDisplayName, defaultDef, parentCursorToIframe, serializeJxPath, elements_meta_default, getInlineActions, isInlineElement, isEditing, bubbleInlinePath, stageZoom, canvasPanelTemplate, observeCenterUntilStable, applyTransform, applyEditZoom, setEditZoom, requestEditZoom, fitToScreen, getFit, setFit, markExplicitZoom, setUserZoom, fitOnCanvasEntry, resetZoom, panToElement, canvasBaseViewsFor, canvasBaseViewOf, previewStateOf, setCanvasView, registerCanvasViewCommands, updateActivePanelHeaders, setDragGhost, moveDragGhost, clearDragGhost, disableNativeDragPreview, attachInstruction, extractInstruction, hasElement, enableElement, disableElement, removePackageElements, removeElementRef, setSkipServerFunctions, runScoped, buildScope, renderNode, pureSchemeOf, renderComponentPreview, registerLayersDnD, registerComponentsDnD, registerElementsDnD, applyDropInstruction, sawIframeDragOver, allowAutoRequestsOnNextRender, requestCanvasEval, flushCanvasEdits, liveDragHostAt, beginDragSession, currentDragSession, hostDragGeometry, canvasIdleBlockers, canvasPointAt, revealCanvasPath, adoptCanvasPreviewMode, postDragMessage, endDragSession, clearDropIndicator, setNativeDragEnterHandler, setInsertZoneClickHandler, setFileDropHandler, setCanvasSlashHandler, setCanvasContextMenuHandler, setStylebookHitHandler, isCaretActive, setToolbarRefresh, setCanvasPointerDownHandler, setIframePatchEscalation, postPatchToHosts, dragHostTab, releaseCanvasHosts, mountIframeCanvas, mountStylebookCanvas, postColorSchemeToLiveHosts, postLocaleToLiveHosts, postSiteStyleToLiveHosts, postStyleUpdateToStylebookHosts, panToStylebookTag, getEditSnapshot, setKeymapSource, postApplyFormat, postOpenSlash, commitActiveEditSession, getEditBarAnchorRect, clickAnythingTo, staleSelectionMessage, openPageAction, renderEmptyState, panelContext, registerPanel, getPanel, listPanels, isPanelVisible, railGroups, railPanelSet };
7846
7887
 
7847
- //# debugId=16FE8B3284A197EE64756E2164756E21
7848
- //# sourceMappingURL=studio-yk7037sg.js.map
7888
+ //# debugId=CD43D5D53F29ABBB64756E2164756E21
7889
+ //# sourceMappingURL=studio-pyrw8h0w.js.map
@@ -26,7 +26,7 @@ import {
26
26
  formatByName,
27
27
  formatForPath,
28
28
  loadedMonaco
29
- } from "./studio-6gcrk1bq.js";
29
+ } from "./studio-rqemfhz6.js";
30
30
  import {
31
31
  getPlatform
32
32
  } from "./studio-sas7mt3k.js";
@@ -6443,7 +6443,7 @@ function extensionsKey(config) {
6443
6443
  return JSON.stringify(config.extensions ?? null);
6444
6444
  }
6445
6445
  async function refreshExtensionSurfaces() {
6446
- const { loadFormats, refreshExtensionUi, refreshFormats } = await import("./format-host-kq6963gs.js");
6446
+ const { loadFormats, refreshExtensionUi, refreshFormats } = await import("./format-host-wewba4nq.js");
6447
6447
  refreshFormats();
6448
6448
  loadFormats();
6449
6449
  refreshExtensionUi(getPlatform());
@@ -6679,4 +6679,4 @@ async function updateSiteConfig(patch) {
6679
6679
  export { errorMessage, LANGUAGE_TAG_PATTERN, canonicalizeLocale, isWellFormedLocale, localeDirection, localeLabel, resolveI18n, localeOfPath, servedLocaleOfPath, translationKeyOfPath, translationPathFor, EDITOR_KIND_LABELS, editorKindForMode, canvasViewForMode, inCanvas, hasSelection, hasElementSelection, emptyContext, makeContext, keyScopeStack, effectScope, onScopeDispose, effect, onEffectCleanup, reactive, toRaw, isRef, ref2 as ref, shallowRef, computed, now, problems, notify, dismiss, clearProblems, problemCount, view, STAGE_CLASS, nextRenderGeneration, surfaceForPane, allCanvasSurfaces, stageContaining, registerCanvasSurface, createPaneSurface, setSurfaceTeardown, disposePaneSurface, BUFFER_COMMIT, bufferWrites, commitBufferWrites, cancelBufferWrites, bufferIsLive, bufferMovedOn, commitTabBuffers, tabBufferUnsaved, PROJECT_CONFIG_PATH, editorKindOf, editorKindsOf, modeForEditorKind, primarySelection, selectionAnchor, isSelected, cloneSelection, toggleSelected, rangeSelection, isSpliceablePath, structuralBatch, uniquePaths, unifyValues, setPatchConsumer, recordDocOp, transactDoc, transact, beginBatch, endBatch2 as 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, serializeProjectConfig, commitProjectConfig, adoptProjectConfig, REGION_ATTR, resolveRegion, REGION_FOR_FOCUS, paneRegion, paneStripRegion, navigatorPanelRegion, inspectorTabRegion, NAVIGATOR_STATEMENTS_REGION, inspectorStatementsRegion, bottomPanelRegion, overlayRegion, setActiveRegistry, activeRegistry, initLayers, isModalOpen, showDialog, showConfirmDialog, showSaveDiscardDialog, showPromptDialog, openModal, renderPopover, popoverLayerFor, getLayerSlot, overlayIdleBlockers, getEffectiveMedia, getEffectiveStyle, getEffectiveImports, getEffectiveElements, getEffectiveHead, getEffectiveLocales, invalidateLayoutCache, getEffectiveLayoutPath, resolveLayoutDoc, distributePageIntoLayout, updateSiteConfig, collabState, isCollabPath, stringArg, optionalStringArg, boundedNumberArg, booleanArg, enumArg, pathArg, nullablePathArg, pathListArg, argsSchema, enumProperty, numberProperty, booleanProperty, pathProperty, pathListProperty, stringProperty, restoreSession, camelToKebab, camelToLabel, toCamelCase, kebabToLabel, propLabel, attrLabel, abbreviateValue, inferInputType, findContentTypeSchema, friendlyNameToVar, varDisplayName, parseCemType, jsonClone, configureCollabSerializer, configureCollabParser, configureCollabNotifier, collabSourceContext, collabReadOnly, collabSave, flushAllCollab, setCollabEnabled, isCollabEnabled, PRIMARY_PANE, workspace, activeTab, activePane, paneById, paneOfTab, focusPane, isPaneFocused, sidePane, receivingPane, detachTab, insertIntoPane, setWorkspaceProject, isTabActive, tabIsLive, openTab, promoteTab, promoteDirtyPreviewTabs, setTabPinned, moveTab, closeTab, closeAllTabs, replaceAllTabs, activateTab, moveTabToPane, renameTab, registerTabCommands, requireNavigatorPanelId, DEFAULT_INSPECTOR_TAB, isInspectorTabId, BOTTOM_TAB_IDS, DEFAULT_BOTTOM_TAB, isBottomTabId, CHROME_THEMES, DOCK_IDS, DOCK_DEFAULT_SIZES, setPaneSplit, shell, persistDocks, persistedSession, markSessionRestored, flushSession, monacoTheme, registerShellSurface, mountShell, setDockCollapsed, setDockSize, setActivityTab, setBottomTab, setChromeTheme, toggleActivityTab, setLayoutSelection, resetProjectShell, registerShellViewCommands };
6680
6680
 
6681
6681
  //# debugId=BC232D1D1532287464756E2164756E21
6682
- //# sourceMappingURL=studio-ddgrc5hs.js.map
6682
+ //# sourceMappingURL=studio-ra7ar50f.js.map
@@ -110,7 +110,7 @@ async function shareProjectSchemas(platform) {
110
110
  }
111
111
  function refreshExtensionUi(platform) {
112
112
  shareProjectSchemas(platform);
113
- import("./extension-sections-2zjyty05.js").then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
113
+ import("./extension-sections-0ada0xcw.js").then(({ syncExtensionSettingsSections }) => syncExtensionSettingsSections()).catch(() => {});
114
114
  }
115
115
  function getFormats() {
116
116
  return _formats;
@@ -225,4 +225,4 @@ function splitFormatDocument(format, doc) {
225
225
  export { loadMonaco, loadedMonaco, mountStillWanted, loadFormats, refreshFormats, setFormats, loadExtensions, getExtensions, setExtensions, refreshExtensionUi, getFormats, formatByExtension, formatByName, noFormatError, formatForPath, documentExtensions, defaultContentFormat, formatParse, formatSerialize, splitFormatDocument };
226
226
 
227
227
  //# debugId=7A0A51B7AA10806664756E2164756E21
228
- //# sourceMappingURL=studio-6gcrk1bq.js.map
228
+ //# sourceMappingURL=studio-rqemfhz6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-yk7037sg.js";
3
+ } from "./studio-pyrw8h0w.js";
4
4
 
5
5
  // src/ui/virtual-window.ts
6
6
  var DEFAULT_OVERSCAN_ROWS = 3;
@@ -163,4 +163,4 @@ function watchListWindow(previous, list, spec) {
163
163
  export { computeWindow, listWindow, revealListRow, measuredRowHeight, watchListWindow };
164
164
 
165
165
  //# debugId=4C38350338F9781B64756E2164756E21
166
- //# sourceMappingURL=studio-kwavhmdr.js.map
166
+ //# sourceMappingURL=studio-sccge2wf.js.map
@@ -19,7 +19,7 @@ import {
19
19
  renderOperandEditor,
20
20
  resolveContextPointer,
21
21
  slotMode
22
- } from "./studio-ky68mp85.js";
22
+ } from "./studio-ef8t53vc.js";
23
23
  import {
24
24
  live
25
25
  } from "./studio-c31yb4t6.js";
@@ -43,7 +43,7 @@ import {
43
43
  uploadAssets,
44
44
  usageFiles,
45
45
  usageHeadline
46
- } from "./studio-102jzb8r.js";
46
+ } from "./studio-cz2j1c0g.js";
47
47
  import {
48
48
  attachInstruction,
49
49
  canvasModeOfTab,
@@ -64,7 +64,7 @@ import {
64
64
  requestCanvasEval,
65
65
  staleSelectionMessage,
66
66
  tabOfPane
67
- } from "./studio-yk7037sg.js";
67
+ } from "./studio-pyrw8h0w.js";
68
68
  import {
69
69
  BUFFER_COMMIT,
70
70
  NAVIGATOR_STATEMENTS_REGION,
@@ -129,7 +129,7 @@ import {
129
129
  varDisplayName,
130
130
  view,
131
131
  workspace
132
- } from "./studio-ddgrc5hs.js";
132
+ } from "./studio-ra7ar50f.js";
133
133
  import {
134
134
  classMap,
135
135
  ifDefined
@@ -172,7 +172,7 @@ import {
172
172
  loadExtensions,
173
173
  loadMonaco,
174
174
  mountStillWanted
175
- } from "./studio-6gcrk1bq.js";
175
+ } from "./studio-rqemfhz6.js";
176
176
  import {
177
177
  getPlatform
178
178
  } from "./studio-sas7mt3k.js";
@@ -5128,10 +5128,10 @@ function renderUsagesSection(tagName, componentPath) {
5128
5128
  `;
5129
5129
  }
5130
5130
  function openUsage(path) {
5131
- import("./files-jdbtammm.js").then((m) => m.openFileInTab(path));
5131
+ import("./files-yew27sn9.js").then((m) => m.openFileInTab(path));
5132
5132
  }
5133
5133
  function showLogicTab() {
5134
- import("./right-panel-hn3y3j0j.js").then((m) => m.setInspectorTab("events"));
5134
+ import("./right-panel-kcnhtc5j.js").then((m) => m.setInspectorTab("events"));
5135
5135
  }
5136
5136
  function renderPropertiesPanelTemplate(ctx) {
5137
5137
  const tab = activeTab.value;
@@ -7000,4 +7000,4 @@ function registerSignalsCommands(registry) {
7000
7000
  export { isSchemeQuery, schemeOfQuery, parseMediaEntries, DERIVE_PRESETS, PRESET_LABELS, declaredMedia, installDerivationEffects, presetRefusal, deriveRefusal, pinRefusal, derivationCommands, invalidateMediaCache, renderMediaPicker, spTextField, spTextArea, spNumberField, unwrapSignal, dataTypeLabel, registerDataExplorerCommands, registerDataPanel, livePreviewExpression, closeFunctionEditor, logicTarget, revealLogicPanel, openLogicTarget, registerLogicPanel, registerFormulaEditorCommands, JxColorPopover, isColorPopoverOpen, css_meta_default, initCssData, getCssInitialMap, allConditionsPass, autoOpenSections, getLonghands, expandShorthand, compressShorthand, expandBorderSide, compressBorderSide, widgetForType2 as widgetForType, renderStatementEditor, mapSignalsFor, bindableSignalNames, defaultAsString, invalidatePageRouteCache, renderPropertiesPanelTemplate, isInspectorSectionOpen, setInspectorSection, inspectorCommands, registerInspectorCommands, defCategory, defBadgeLabel, isCustomElementDoc, collectCssParts, renderSignalsTemplate, registerSignalsCommands };
7001
7001
 
7002
7002
  //# debugId=9BF36A7266D05ECB64756E2164756E21
7003
- //# sourceMappingURL=studio-ng5gbxkj.js.map
7003
+ //# sourceMappingURL=studio-v1va0vhd.js.map
@@ -3,17 +3,17 @@ import {
3
3
  measuredRowHeight,
4
4
  revealListRow,
5
5
  watchListWindow
6
- } from "./studio-kwavhmdr.js";
6
+ } from "./studio-sccge2wf.js";
7
7
  import {
8
8
  autoSyncProjectOnOpen,
9
9
  cleanupGitPanel,
10
10
  maybePromptJxsuiteUpdate,
11
11
  shouldInstallAutomation
12
- } from "./studio-q07vj7p9.js";
12
+ } from "./studio-ke244pam.js";
13
13
  import {
14
14
  openCsvGridTab,
15
15
  openPagesGrid
16
- } from "./studio-0evba9z5.js";
16
+ } from "./studio-0b6fs05q.js";
17
17
  import {
18
18
  collectionDirs,
19
19
  collectionInfo,
@@ -21,20 +21,20 @@ import {
21
21
  markLocalMutation,
22
22
  parseSourceForPath,
23
23
  renamePromptMessage
24
- } from "./studio-wxthr2x1.js";
24
+ } from "./studio-26sv44br.js";
25
25
  import {
26
26
  UPLOAD_ACCEPT,
27
27
  invalidateUsages,
28
28
  isImage,
29
29
  uploadAssets
30
- } from "./studio-102jzb8r.js";
30
+ } from "./studio-cz2j1c0g.js";
31
31
  import {
32
32
  showProgressModal
33
- } from "./studio-eqyybj2e.js";
33
+ } from "./studio-28xc8ws4.js";
34
34
  import {
35
35
  rectOf,
36
36
  registerPanel
37
- } from "./studio-yk7037sg.js";
37
+ } from "./studio-pyrw8h0w.js";
38
38
  import {
39
39
  activateTab,
40
40
  activeRegistry,
@@ -61,7 +61,7 @@ import {
61
61
  setWorkspaceProject,
62
62
  showPromptDialog,
63
63
  workspace
64
- } from "./studio-ddgrc5hs.js";
64
+ } from "./studio-ra7ar50f.js";
65
65
  import {
66
66
  classMap
67
67
  } from "./studio-twsafr1e.js";
@@ -94,7 +94,7 @@ import {
94
94
  noFormatError,
95
95
  refreshExtensionUi,
96
96
  refreshFormats
97
- } from "./studio-6gcrk1bq.js";
97
+ } from "./studio-rqemfhz6.js";
98
98
  import {
99
99
  getPlatform,
100
100
  hasPlatform
@@ -1468,4 +1468,4 @@ function registerFilesPanel() {
1468
1468
  export { ensureDependenciesInstalled, entryCollection, entryCollections, collectionOfPath, seedEntry, missingRequired, hydrateRecentProjects, getRecentProjects, addRecentProject, removeRecentProject, clearRecentProjects, getRecentFiles, trackRecentFile, loadDirectory, loadProject, openProject, initProjectRepo, findHomePage, openHomePage, openLastSessionOrHome, renderFilesTemplate, FILE_ROW_HEIGHT, isFileDrag, uploadFilesToDir, pickAndUploadTo, registerFileTreeDnD, createFileIn, openFileInTab, openFileInPane, reloadCleanTab, reloadFileInTab, registerFilesPanel };
1469
1469
 
1470
1470
  //# debugId=AF54EB1634A6A49164756E2164756E21
1471
- //# sourceMappingURL=studio-1dgqagzz.js.map
1471
+ //# sourceMappingURL=studio-v2c5pmjj.js.map
@@ -3,19 +3,19 @@ import {
3
3
  noopCommandDeps,
4
4
  selectStylebookTag,
5
5
  stylebook_meta_default
6
- } from "./studio-yz06mkfj.js";
6
+ } from "./studio-hyn3vhwr.js";
7
7
  import {
8
8
  dataTypeLabel,
9
9
  defCategory,
10
10
  inspectorCommands,
11
11
  unwrapSignal
12
- } from "./studio-ng5gbxkj.js";
12
+ } from "./studio-v1va0vhd.js";
13
13
  import {
14
14
  listWindow,
15
15
  measuredRowHeight,
16
16
  revealListRow,
17
17
  watchListWindow
18
- } from "./studio-kwavhmdr.js";
18
+ } from "./studio-sccge2wf.js";
19
19
  import {
20
20
  VFile,
21
21
  VFileMessage,
@@ -27,7 +27,7 @@ import {
27
27
  } from "./studio-bw5dz6km.js";
28
28
  import {
29
29
  usagesSupported
30
- } from "./studio-102jzb8r.js";
30
+ } from "./studio-cz2j1c0g.js";
31
31
  import {
32
32
  KEY_SCOPES,
33
33
  activeCanvasSurface,
@@ -43,7 +43,7 @@ import {
43
43
  rectOf,
44
44
  registerPanel,
45
45
  renderEmptyState
46
- } from "./studio-yk7037sg.js";
46
+ } from "./studio-pyrw8h0w.js";
47
47
  import {
48
48
  activeRegistry,
49
49
  activeTab,
@@ -81,7 +81,7 @@ import {
81
81
  transactDoc,
82
82
  view,
83
83
  workspace
84
- } from "./studio-ddgrc5hs.js";
84
+ } from "./studio-ra7ar50f.js";
85
85
  import {
86
86
  classMap,
87
87
  ifDefined,
@@ -14172,7 +14172,7 @@ function elementCommands(deps) {
14172
14172
  if (!target?.rerender) {
14173
14173
  return;
14174
14174
  }
14175
- const { startLayerTitleEdit } = await import("./layers-panel-a8wjsdjj.js");
14175
+ const { startLayerTitleEdit } = await import("./layers-panel-qnsghwwd.js");
14176
14176
  startLayerTitleEdit(target.path, target.rerender);
14177
14177
  }
14178
14178
  }
@@ -15173,4 +15173,4 @@ function registerLayersPanel() {
15173
15173
  export { findEnclosingRepeater, convertToComponent, showSlashMenu, showSlashMenuAtRect, dismissSlashMenu, handleSlashMenuKey, parseChord, normalizeChord, chordFromEvent, formatChord, overlappingScopes, chordsInScopes, CommandUnavailableError, createCommandRegistry, initBlockActionBar, formatCommands, registerSelectionCommands, dismissLinkPopover, dismissBlockActionBar, suppressBlockActionBar, releaseBlockActionBar, isEditChromeTarget, renderBlockActionBar, outlineLabel, OUTLINE_ROW_MAX_ITEMS, renderRowCommands, clearHoverActions, onTreeHover, afterTreeRender, indentWidth, OUTLINE_ROW_HEIGHT, outlineRowPath, applyTreeRovingTabindex, applyRowSelection, onTreeKeydown, startLayerTitleEdit, renderLayersTemplate, registerLayersPanel, pasteNode, clipboardCommands, setContextMenuNavigate, liveElementCommands, dismissContextMenu, showContextMenu };
15174
15174
 
15175
15175
  //# debugId=5DE335A028CC7DD364756E2164756E21
15176
- //# sourceMappingURL=studio-377bbhtz.js.map
15176
+ //# sourceMappingURL=studio-ws6ef6js.js.map