@jxsuite/studio 2.3.0 → 2.4.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 (39) hide show
  1. package/dist/chunks/{content-source-56xpvx83.js → content-source-jrvn5vwy.js} +8 -8
  2. package/dist/chunks/{convert-to-repeater-0xh9wwek.js → convert-to-repeater-109dwcj7.js} +7 -7
  3. package/dist/chunks/{extension-sections-g34239vm.js → extension-sections-2zjyty05.js} +11 -11
  4. package/dist/chunks/{files-gkz202dp.js → files-jdbtammm.js} +12 -12
  5. package/dist/chunks/{format-host-pej3srnw.js → format-host-kq6963gs.js} +2 -2
  6. package/dist/chunks/{git-panel-4j6xbh8g.js → git-panel-2stf3ahg.js} +7 -7
  7. package/dist/chunks/{layers-panel-8mvn8sgd.js → layers-panel-a8wjsdjj.js} +10 -10
  8. package/dist/chunks/{publish-panel-ptddc3kg.js → publish-panel-2we6smjv.js} +5 -5
  9. package/dist/chunks/{quick-search-j88azfs2.js → quick-search-hmpwdgys.js} +13 -13
  10. package/dist/chunks/{right-panel-egkaxy89.js → right-panel-hn3y3j0j.js} +9 -9
  11. package/dist/chunks/{studio-0e4h32g6.js → studio-0evba9z5.js} +5 -5
  12. package/dist/chunks/{studio-4058pg09.js → studio-102jzb8r.js} +4 -4
  13. package/dist/chunks/{studio-ncnet0ba.js → studio-1dgqagzz.js} +10 -10
  14. package/dist/chunks/{studio-yxzgjq8q.js → studio-377bbhtz.js} +8 -8
  15. package/dist/chunks/{studio-5ne8mdx9.js → studio-53dn6e6t.js} +2 -2
  16. package/dist/chunks/{studio-50eed4c9.js → studio-6gcrk1bq.js} +2 -2
  17. package/dist/chunks/{studio-5amdrjm4.js → studio-8x4399kc.js} +7 -7
  18. package/dist/chunks/{studio-hk523hby.js → studio-ddgrc5hs.js} +3 -3
  19. package/dist/chunks/{studio-3q65xvzv.js → studio-eqyybj2e.js} +4 -4
  20. package/dist/chunks/{studio-cf4rk7kv.js → studio-kwavhmdr.js} +2 -2
  21. package/dist/chunks/{studio-zdkgwhkv.js → studio-ky68mp85.js} +3 -3
  22. package/dist/chunks/{studio-hs8x23fv.js → studio-ng5gbxkj.js} +8 -8
  23. package/dist/chunks/{studio-4enps87v.js → studio-q07vj7p9.js} +6 -6
  24. package/dist/chunks/{studio-bak2cyjr.js → studio-qd4k0h80.js} +4 -4
  25. package/dist/chunks/{studio-cv606rs1.js → studio-rdsvb808.js} +5 -5
  26. package/dist/chunks/{studio-vdpcpada.js → studio-tqr02xaa.js} +3 -3
  27. package/dist/chunks/{studio-x3etxs0s.js → studio-wxthr2x1.js} +8 -8
  28. package/dist/chunks/{studio-10s469da.js → studio-yk7037sg.js} +20 -10
  29. package/dist/chunks/{studio-a11d3a1b.js → studio-yz06mkfj.js} +5 -5
  30. package/dist/iframe-entry.js +7 -3
  31. package/dist/studio.js +46 -34
  32. package/package.json +6 -6
  33. package/src/canvas/canvas-live-render.ts +2 -4
  34. package/src/canvas/canvas-origin.ts +25 -0
  35. package/src/platforms/cloud.ts +9 -0
  36. package/src/services/ai-models.ts +14 -1
  37. package/src/types.ts +17 -0
  38. package/src/ui/ai-managed-connect.ts +18 -3
  39. package/styles/shell.css +7 -0
@@ -26,7 +26,7 @@ import {
26
26
  formatByName,
27
27
  formatForPath,
28
28
  loadedMonaco
29
- } from "./studio-50eed4c9.js";
29
+ } from "./studio-6gcrk1bq.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-pej3srnw.js");
6446
+ const { loadFormats, refreshExtensionUi, refreshFormats } = await import("./format-host-kq6963gs.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-hk523hby.js.map
6682
+ //# sourceMappingURL=studio-ddgrc5hs.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  renderDeployChecklist
3
- } from "./studio-5ne8mdx9.js";
3
+ } from "./studio-53dn6e6t.js";
4
4
  import {
5
5
  registerPanel,
6
6
  renderEmptyState
7
- } from "./studio-10s469da.js";
7
+ } from "./studio-yk7037sg.js";
8
8
  import {
9
9
  notify,
10
10
  now,
11
11
  openModal,
12
12
  reactive,
13
13
  setBottomTab
14
- } from "./studio-hk523hby.js";
14
+ } from "./studio-ddgrc5hs.js";
15
15
  import {
16
16
  repeat
17
17
  } from "./studio-kvfx9z2c.js";
@@ -350,4 +350,4 @@ function showProgressModal(opts) {
350
350
  export { beginActivity, activityIdleBlockers, registerActivityPanel, showProgressModal };
351
351
 
352
352
  //# debugId=E5DF930C7E1AD2C064756E2164756E21
353
- //# sourceMappingURL=studio-3q65xvzv.js.map
353
+ //# sourceMappingURL=studio-eqyybj2e.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-10s469da.js";
3
+ } from "./studio-yk7037sg.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-cf4rk7kv.js.map
166
+ //# sourceMappingURL=studio-kwavhmdr.js.map
@@ -8,12 +8,12 @@ import {
8
8
  intlHelpersClause,
9
9
  rectOf,
10
10
  renderEmptyState
11
- } from "./studio-10s469da.js";
11
+ } from "./studio-yk7037sg.js";
12
12
  import {
13
13
  LANGUAGE_TAG_PATTERN,
14
14
  activeTab,
15
15
  getLayerSlot
16
- } from "./studio-hk523hby.js";
16
+ } from "./studio-ddgrc5hs.js";
17
17
  import {
18
18
  classMap,
19
19
  ifDefined,
@@ -4229,4 +4229,4 @@ function resolveContextPointer(pointer, opts) {
4229
4229
  export { renderProvenanceChip, countProvenance, renderProvenanceDots, renderFieldRow, renderKvRow, renderStaticKvRow, chipSummary, renderFormulaChips, applyCatalogPick, globalEntries, namedFormulaEntries, formulaCatalog, openFormulaPalette, REDIRECT_STATUSES, VALUE_SOURCE_LABELS, slotMode, capsForPosition, isActionExpression, expressionHint, renderOperandEditor, renderExpressionEditor, switchSlotMode, renderDynamicSlot, registerFormControl, getFormControl, referenceTarget, NULL_FORM_CONTEXT, renderForm, resolveContextPointer };
4230
4230
 
4231
4231
  //# debugId=D548DF8319DDE4D664756E2164756E21
4232
- //# sourceMappingURL=studio-zdkgwhkv.js.map
4232
+ //# sourceMappingURL=studio-ky68mp85.js.map
@@ -19,7 +19,7 @@ import {
19
19
  renderOperandEditor,
20
20
  resolveContextPointer,
21
21
  slotMode
22
- } from "./studio-zdkgwhkv.js";
22
+ } from "./studio-ky68mp85.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-4058pg09.js";
46
+ } from "./studio-102jzb8r.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-10s469da.js";
67
+ } from "./studio-yk7037sg.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-hk523hby.js";
132
+ } from "./studio-ddgrc5hs.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-50eed4c9.js";
175
+ } from "./studio-6gcrk1bq.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-gkz202dp.js").then((m) => m.openFileInTab(path));
5131
+ import("./files-jdbtammm.js").then((m) => m.openFileInTab(path));
5132
5132
  }
5133
5133
  function showLogicTab() {
5134
- import("./right-panel-egkaxy89.js").then((m) => m.setInspectorTab("events"));
5134
+ import("./right-panel-hn3y3j0j.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-hs8x23fv.js.map
7003
+ //# sourceMappingURL=studio-ng5gbxkj.js.map
@@ -8,14 +8,14 @@ import {
8
8
  activityIdleBlockers,
9
9
  beginActivity,
10
10
  showProgressModal
11
- } from "./studio-3q65xvzv.js";
11
+ } from "./studio-eqyybj2e.js";
12
12
  import {
13
13
  canvasIdleBlockers,
14
14
  canvasPointAt,
15
15
  registerPanel,
16
16
  renderEmptyState,
17
17
  revealCanvasPath
18
- } from "./studio-10s469da.js";
18
+ } from "./studio-yk7037sg.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-hk523hby.js";
31
+ } from "./studio-ddgrc5hs.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-50eed4c9.js";
49
+ } from "./studio-6gcrk1bq.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-4j6xbh8g.js");
349
+ const { refreshGitStatus } = await import("./git-panel-2stf3ahg.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-4enps87v.js.map
1787
+ //# sourceMappingURL=studio-q07vj7p9.js.map
@@ -3,7 +3,7 @@ import {
3
3
  getRecentProjects,
4
4
  openFileInTab,
5
5
  trackRecentFile
6
- } from "./studio-ncnet0ba.js";
6
+ } from "./studio-1dgqagzz.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-hk523hby.js";
14
+ } from "./studio-ddgrc5hs.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-50eed4c9.js";
35
+ } from "./studio-6gcrk1bq.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-bak2cyjr.js.map
659
+ //# sourceMappingURL=studio-qd4k0h80.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  renderForm,
3
3
  resolveContextPointer
4
- } from "./studio-zdkgwhkv.js";
4
+ } from "./studio-ky68mp85.js";
5
5
  import {
6
6
  validateProjectConfig
7
7
  } from "./studio-6kv3apa9.js";
8
8
  import {
9
9
  deriveSecretEnvName
10
- } from "./studio-0e4h32g6.js";
10
+ } from "./studio-0evba9z5.js";
11
11
  import {
12
12
  paneOfContainer
13
- } from "./studio-10s469da.js";
13
+ } from "./studio-yk7037sg.js";
14
14
  import {
15
15
  commitProjectConfig,
16
16
  errorMessage,
17
17
  notify,
18
18
  paneRegion
19
- } from "./studio-hk523hby.js";
19
+ } from "./studio-ddgrc5hs.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-cv606rs1.js.map
335
+ //# sourceMappingURL=studio-rdsvb808.js.map
@@ -10,11 +10,11 @@ import {
10
10
  noteDeployment,
11
11
  platformSupportsPublish,
12
12
  writeDeployConfig
13
- } from "./studio-5ne8mdx9.js";
13
+ } from "./studio-53dn6e6t.js";
14
14
  import {
15
15
  activeRegistry,
16
16
  openModal
17
- } from "./studio-hk523hby.js";
17
+ } from "./studio-ddgrc5hs.js";
18
18
  import {
19
19
  html
20
20
  } from "./studio-5x5774ak.js";
@@ -387,4 +387,4 @@ function openPublishPanel() {
387
387
  export { seedPublishConnected, openPublishPanel };
388
388
 
389
389
  //# debugId=32DE20DAF46B08AA64756E2164756E21
390
- //# sourceMappingURL=studio-vdpcpada.js.map
390
+ //# sourceMappingURL=studio-tqr02xaa.js.map
@@ -16,19 +16,19 @@ import {
16
16
  isMediaFile,
17
17
  loadUsages,
18
18
  usageWarning
19
- } from "./studio-4058pg09.js";
19
+ } from "./studio-102jzb8r.js";
20
20
  import {
21
21
  showProgressModal
22
- } from "./studio-3q65xvzv.js";
22
+ } from "./studio-eqyybj2e.js";
23
23
  import {
24
24
  deployStatusItem
25
- } from "./studio-5ne8mdx9.js";
25
+ } from "./studio-53dn6e6t.js";
26
26
  import {
27
27
  derivationOfPane,
28
28
  flushCanvasEdits,
29
29
  rectOf,
30
30
  tabOfPane
31
- } from "./studio-10s469da.js";
31
+ } from "./studio-yk7037sg.js";
32
32
  import {
33
33
  EDITOR_KIND_LABELS,
34
34
  PRIMARY_PANE,
@@ -54,7 +54,7 @@ import {
54
54
  showConfirmDialog,
55
55
  toRaw,
56
56
  workspace
57
- } from "./studio-hk523hby.js";
57
+ } from "./studio-ddgrc5hs.js";
58
58
  import {
59
59
  ref,
60
60
  repeat
@@ -83,7 +83,7 @@ import {
83
83
  loadFormats,
84
84
  noFormatError,
85
85
  splitFormatDocument
86
- } from "./studio-50eed4c9.js";
86
+ } from "./studio-6gcrk1bq.js";
87
87
  import {
88
88
  getPlatform
89
89
  } from "./studio-sas7mt3k.js";
@@ -15128,7 +15128,7 @@ function buildEntryFileSource(opts) {
15128
15128
  await writeEntry(path2, entry, patches);
15129
15129
  outcome(true);
15130
15130
  if (openTab2) {
15131
- const { reloadFileInTab } = await import("./files-gkz202dp.js");
15131
+ const { reloadFileInTab } = await import("./files-jdbtammm.js");
15132
15132
  reloadFileInTab(path2);
15133
15133
  }
15134
15134
  } catch (error) {
@@ -15293,4 +15293,4 @@ function createPagesSource() {
15293
15293
  export { markLocalMutation, isRecentLocal, startFsSync, cellValuesEqual, makeGridTabId, parseGridTabId, gridTabLabel, columnsFromSchema, inferColumnsFromRows, coerceCellInput, cellToText, ROW_KEY_FIELD, getGridController, createGridController, DRAFT_FIELD, DRAFT_MEANING, isDraftEntry, hasDraftAxis, setIncludeDrafts, attachJumpBarHost, mountJumpBar, buildMessageWithContext, clearMarkdownCache, beginTurn, recordWrite, endTurn, writesForTurn, renderChatHeader, renderMessageList, renderSessionsList, renderStatusbar, mountStatusbar, mediaTypeEssence, parseSourceForPath, saveFile, exportFile, serializeDocument, confirmFileDelete, renamePromptMessage, PATH_FIELD, collectionInfo, collectionDirs, listCollectionEntryIds, reloadDraftAwareGrids, createCollectionSource, createPagesSource };
15294
15294
 
15295
15295
  //# debugId=43284A78BBF6BE9864756E2164756E21
15296
- //# sourceMappingURL=studio-x3etxs0s.js.map
15296
+ //# sourceMappingURL=studio-wxthr2x1.js.map
@@ -51,7 +51,7 @@ import {
51
51
  transactDoc,
52
52
  view,
53
53
  workspace
54
- } from "./studio-hk523hby.js";
54
+ } from "./studio-ddgrc5hs.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-50eed4c9.js";
109
+ } from "./studio-6gcrk1bq.js";
110
110
  import {
111
111
  getPlatform,
112
112
  hasPlatform
@@ -2748,11 +2748,15 @@ async function resolve(source) {
2748
2748
  if (_resolveCache.has(source)) {
2749
2749
  return _resolveCache.get(source);
2750
2750
  }
2751
- const p = fetch(source).then((res) => {
2751
+ const p = fetch(source).then(async (res) => {
2752
2752
  if (!res.ok) {
2753
2753
  throw new Error(`Jx: failed to fetch ${source} (${res.status})`);
2754
2754
  }
2755
- return res.json();
2755
+ const contentType = res.headers?.get("Content-Type") ?? "";
2756
+ if (contentType.includes("text/html")) {
2757
+ throw new Error(`Jx: ${source} returned HTML, not a document — the host answered a missing file with its ` + `app shell (a single-page fallback), so this path is not served.`);
2758
+ }
2759
+ return await res.json();
2756
2760
  });
2757
2761
  _resolveCache.set(source, p);
2758
2762
  return p;
@@ -4641,6 +4645,14 @@ function canvasBaseOrigin() {
4641
4645
  }
4642
4646
  return location.origin;
4643
4647
  }
4648
+ function documentBase(projectRoot) {
4649
+ const declared = hasPlatform() ? getPlatform().documentBaseUrl : undefined;
4650
+ if (declared) {
4651
+ return declared.endsWith("/") ? declared : `${declared}/`;
4652
+ }
4653
+ const root = projectRoot || "";
4654
+ return `${canvasBaseOrigin()}/${root ? `${root}/` : ""}`;
4655
+ }
4644
4656
  function loopbackAssetSrc(path) {
4645
4657
  if (path.startsWith("data:") || path.startsWith("blob:") || path.startsWith("http") || path.startsWith("views://")) {
4646
4658
  return path;
@@ -5197,9 +5209,7 @@ async function resolveCanvasDocument(doc, tab) {
5197
5209
  }
5198
5210
  }
5199
5211
  }
5200
- const root = projectState?.projectRoot || "";
5201
- const docPrefix = root ? `${root}/` : "";
5202
- const docBase = S.documentPath ? `${canvasBaseOrigin()}/${docPrefix}${S.documentPath}` : undefined;
5212
+ const docBase = S.documentPath ? new URL(S.documentPath, documentBase(projectState?.projectRoot)).href : undefined;
5203
5213
  if (isPage && tab) {
5204
5214
  const { previewParams } = tab.session.ui;
5205
5215
  if (previewParams && Object.keys(previewParams).length > 0) {
@@ -7562,7 +7572,7 @@ function openPageAction(label = "Open a page…") {
7562
7572
  return {
7563
7573
  label,
7564
7574
  run: () => {
7565
- import("./quick-search-j88azfs2.js").then((m) => {
7575
+ import("./quick-search-hmpwdgys.js").then((m) => {
7566
7576
  m.openQuickSearch();
7567
7577
  });
7568
7578
  }
@@ -7834,5 +7844,5 @@ function railPanelSet() {
7834
7844
 
7835
7845
  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 };
7836
7846
 
7837
- //# debugId=9961004C8296D6DB64756E2164756E21
7838
- //# sourceMappingURL=studio-10s469da.js.map
7847
+ //# debugId=16FE8B3284A197EE64756E2164756E21
7848
+ //# sourceMappingURL=studio-yk7037sg.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  parseMediaEntries,
3
3
  schemeOfQuery
4
- } from "./studio-hs8x23fv.js";
4
+ } from "./studio-ng5gbxkj.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-10s469da.js";
14
+ } from "./studio-yk7037sg.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-hk523hby.js";
22
+ } from "./studio-ddgrc5hs.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-0xh9wwek.js").then(({ convertToRepeater }) => convertToRepeater());
863
+ import("./convert-to-repeater-109dwcj7.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-a11d3a1b.js.map
1068
+ //# sourceMappingURL=studio-yz06mkfj.js.map
@@ -2200,11 +2200,15 @@ async function resolve(source) {
2200
2200
  if (_resolveCache.has(source)) {
2201
2201
  return _resolveCache.get(source);
2202
2202
  }
2203
- const p = fetch(source).then((res) => {
2203
+ const p = fetch(source).then(async (res) => {
2204
2204
  if (!res.ok) {
2205
2205
  throw new Error(`Jx: failed to fetch ${source} (${res.status})`);
2206
2206
  }
2207
- return res.json();
2207
+ const contentType = res.headers?.get("Content-Type") ?? "";
2208
+ if (contentType.includes("text/html")) {
2209
+ throw new Error(`Jx: ${source} returned HTML, not a document — the host answered a missing file with its ` + `app shell (a single-page fallback), so this path is not served.`);
2210
+ }
2211
+ return await res.json();
2208
2212
  });
2209
2213
  _resolveCache.set(source, p);
2210
2214
  return p;
@@ -8166,5 +8170,5 @@ export {
8166
8170
  startCanvasIframe
8167
8171
  };
8168
8172
 
8169
- //# debugId=244C80B20BAE5F4364756E2164756E21
8173
+ //# debugId=4B2F6890CDE12A9464756E2164756E21
8170
8174
  //# sourceMappingURL=iframe-entry.js.map