@jxsuite/studio 4.0.0 → 4.1.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 (86) hide show
  1. package/dist/chunks/{2020-xp8vnwma.js → 2020-n6tfwnda.js} +2 -2
  2. package/dist/chunks/{Overlay.dev-723bv0df.js → Overlay.dev-etqjwyf9.js} +4 -4
  3. package/dist/chunks/cf-account-picker-en86v7x7.js +163 -0
  4. package/dist/chunks/{content-source-t88vb2dr.js → content-source-48xg86wj.js} +17 -17
  5. package/dist/chunks/{convert-to-repeater-dhw1nrz9.js → convert-to-repeater-43tfn7cs.js} +24 -24
  6. package/dist/chunks/{entry-commands-6z6bhxg0.js → entry-commands-e63f1xc0.js} +20 -20
  7. package/dist/chunks/{extension-sections-3ydgjbdy.js → extension-sections-txv08xxg.js} +23 -23
  8. package/dist/chunks/{file-ops-rskmhxyq.js → file-ops-wbh4hhsx.js} +16 -16
  9. package/dist/chunks/{files-0cratsr0.js → files-3kfkwhk4.js} +25 -24
  10. package/dist/chunks/{focus-trap.esm-ggawf1hy.js → focus-trap.esm-9t2drp0g.js} +6 -5
  11. package/dist/chunks/{format-host-tgcmfs4p.js → format-host-w16q81tf.js} +2 -2
  12. package/dist/chunks/fs-events-hrrg328g.js +1 -1
  13. package/dist/chunks/{git-panel-0yywyk76.js → git-panel-532whr1y.js} +16 -15
  14. package/dist/chunks/{index-nj44jpzj.js → index-wcnt3r9g.js} +2 -2
  15. package/dist/chunks/{jx-validate-8q2g05x1.js → jx-validate-8er6gbxy.js} +3 -3
  16. package/dist/chunks/{layers-panel-z3tqe5cd.js → layers-panel-07hm7g5j.js} +19 -19
  17. package/dist/chunks/{monaco-setup-rws7k4br.js → monaco-setup-vx9bhp1d.js} +2 -2
  18. package/dist/chunks/{publish-panel-54jvhskq.js → publish-panel-v9st96ja.js} +11 -10
  19. package/dist/chunks/{quick-search-cgfmjwq5.js → quick-search-zccjp6gv.js} +26 -25
  20. package/dist/chunks/{right-panel-cqp8bc4v.js → right-panel-vm3b6kwy.js} +17 -17
  21. package/dist/chunks/{sp-overlay.dev-yztmtrs1.js → sp-overlay.dev-qgvhnxf4.js} +5 -5
  22. package/dist/chunks/{sp-tooltip.dev-xcvpnqr0.js → sp-tooltip.dev-4sastdnw.js} +3 -3
  23. package/dist/chunks/{studio-txwkm6p9.js → studio-0bq6eh7v.js} +2 -2
  24. package/dist/chunks/studio-1ngbejft.js +181 -0
  25. package/dist/chunks/{studio-gv8vvshc.js → studio-1wagb550.js} +3 -3
  26. package/dist/chunks/{studio-kjjsjak4.js → studio-2b946z26.js} +58 -57
  27. package/dist/chunks/{studio-4pqqxbrt.js → studio-3bqpr0zh.js} +16 -16
  28. package/dist/chunks/{studio-v38hmvx1.js → studio-4b5z1x43.js} +42 -8
  29. package/dist/chunks/{studio-9c4k4vhv.js → studio-4n2b5gzb.js} +4 -4
  30. package/dist/chunks/{studio-p8j86wag.js → studio-4r1pv6zf.js} +2 -2
  31. package/dist/chunks/{studio-mmv72a27.js → studio-5fx3g9jg.js} +29 -48
  32. package/dist/chunks/{studio-5rywrkxz.js → studio-5myknm0a.js} +42 -42
  33. package/dist/chunks/{studio-sf7zjgv1.js → studio-6yw4y3my.js} +3 -3
  34. package/dist/chunks/{studio-pdfjntbk.js → studio-950k0dx6.js} +35 -35
  35. package/dist/chunks/{studio-eenfkt4e.js → studio-ahn3pdgx.js} +5 -5
  36. package/dist/chunks/{studio-eesa1myv.js → studio-b55y6ewx.js} +9 -9
  37. package/dist/chunks/{studio-cb12yz9w.js → studio-cmb03bg5.js} +99 -1264
  38. package/dist/chunks/studio-dm19q43r.js +195 -0
  39. package/dist/chunks/{studio-ahjfdy6e.js → studio-ef49pnzx.js} +6 -6
  40. package/dist/chunks/{studio-wx5609xd.js → studio-ew0djmhg.js} +10 -10
  41. package/dist/chunks/{studio-9r6j5ev1.js → studio-f3wqjtk5.js} +4 -3
  42. package/dist/chunks/{studio-8swrjbny.js → studio-fbf92ckf.js} +14 -14
  43. package/dist/chunks/{studio-4q0wznzf.js → studio-gcye7qka.js} +442 -126
  44. package/dist/chunks/{studio-ex8zyp98.js → studio-gfgb8pe6.js} +23 -184
  45. package/dist/chunks/{studio-r1r7afxx.js → studio-jc994dnr.js} +24 -24
  46. package/dist/chunks/{studio-yxrkyv8a.js → studio-jkftxyvz.js} +52 -3416
  47. package/dist/chunks/{studio-hbtp0eh1.js → studio-msd847zn.js} +13 -13
  48. package/dist/chunks/{studio-kyk2v92a.js → studio-mtfnaqs9.js} +14 -14
  49. package/dist/chunks/{studio-vadzgkrz.js → studio-n6j9t10q.js} +2 -2
  50. package/dist/chunks/{studio-68n67094.js → studio-q9jd1a60.js} +4 -4
  51. package/dist/chunks/studio-qcy05dp8.js +1743 -0
  52. package/dist/chunks/{studio-htsf0w6m.js → studio-qjy2z9bv.js} +12 -30
  53. package/dist/chunks/{studio-2zkz8evn.js → studio-trxrabqf.js} +12 -12
  54. package/dist/chunks/{studio-5q69gfag.js → studio-x4qkdat5.js} +12 -11
  55. package/dist/chunks/studio-x813zp48.js +195 -0
  56. package/dist/chunks/{studio-1hbqnt19.js → studio-zqazsct2.js} +29 -29
  57. package/dist/chunks/{workspace-xpres40v.js → workspace-fjx52ryv.js} +4 -4
  58. package/dist/iframe-entry.js +34 -33
  59. package/dist/manifest.json +7 -0
  60. package/dist/studio.js +534 -546
  61. package/favicon.ico +0 -0
  62. package/index.html +1 -0
  63. package/package.json +15 -14
  64. package/src/about/about-modal.ts +4 -3
  65. package/src/files/files.ts +6 -4
  66. package/src/files/media-paths.ts +13 -42
  67. package/src/files/media-usage.ts +41 -131
  68. package/src/hosting/document.ts +2 -0
  69. package/src/hosting/layout.ts +8 -0
  70. package/src/new-project/import-tab.ts +37 -15
  71. package/src/new-project/location-fields.ts +8 -5
  72. package/src/panels/ai-chat/composer.ts +10 -0
  73. package/src/platforms/cloud.ts +241 -70
  74. package/src/publish/publish-panel.ts +62 -2
  75. package/src/services/ai-import-tools.ts +50 -12
  76. package/src/services/ai-models.ts +108 -1
  77. package/src/services/context-manager.ts +12 -1
  78. package/src/services/tool-executor.ts +11 -0
  79. package/src/settings/preferences-accounts.ts +193 -12
  80. package/src/settings/preferences-dialog.ts +75 -18
  81. package/src/types.ts +27 -3
  82. package/src/ui/ai-managed-connect.ts +62 -13
  83. package/src/ui/ai-model-picker.ts +29 -2
  84. package/src/ui/cf-account-picker.ts +200 -0
  85. package/styles/shell.css +36 -0
  86. package/dist/chunks/studio-bw5dz6km.js +0 -608
@@ -9,7 +9,7 @@ import {
9
9
  resolveLayoutDoc,
10
10
  setLayoutSelection,
11
11
  shell
12
- } from "./studio-hbtp0eh1.js";
12
+ } from "./studio-msd847zn.js";
13
13
  import {
14
14
  PRIMARY_PANE,
15
15
  activeTab,
@@ -40,36 +40,18 @@ import {
40
40
  transact,
41
41
  transactDoc,
42
42
  workspace
43
- } from "./studio-2zkz8evn.js";
43
+ } from "./studio-trxrabqf.js";
44
44
  import {
45
45
  allCanvasSurfaces,
46
46
  stageContaining,
47
47
  surfaceForPane,
48
48
  view
49
49
  } from "./studio-wcy8trfx.js";
50
- import {
51
- computed,
52
- effect,
53
- effectScope,
54
- isRef as isRef2,
55
- notify,
56
- onEffectCleanup,
57
- reactive,
58
- ref,
59
- toRaw
60
- } from "./studio-xrapxwwc.js";
61
50
  import {
62
51
  classMap,
63
52
  ifDefined,
64
53
  styleMap
65
54
  } from "./studio-m3hwn7y1.js";
66
- import {
67
- ref as ref2
68
- } from "./studio-4rzyrtjz.js";
69
- import {
70
- html,
71
- nothing
72
- } from "./studio-kryvsw6j.js";
73
55
  import {
74
56
  _defineProperty,
75
57
  combine,
@@ -94,6 +76,24 @@ import {
94
76
  renderOnly,
95
77
  stripEventHandlers
96
78
  } from "./studio-p4ngc046.js";
79
+ import {
80
+ computed,
81
+ effect,
82
+ effectScope,
83
+ isRef as isRef2,
84
+ notify,
85
+ onEffectCleanup,
86
+ reactive,
87
+ ref,
88
+ toRaw
89
+ } from "./studio-xrapxwwc.js";
90
+ import {
91
+ ref as ref2
92
+ } from "./studio-4rzyrtjz.js";
93
+ import {
94
+ html,
95
+ nothing
96
+ } from "./studio-kryvsw6j.js";
97
97
  import {
98
98
  bodyReturnsValue,
99
99
  displayTagName,
@@ -114,7 +114,7 @@ import {
114
114
  import {
115
115
  formatByName,
116
116
  loadExtensions
117
- } from "./studio-eenfkt4e.js";
117
+ } from "./studio-ahn3pdgx.js";
118
118
  import {
119
119
  getPlatform,
120
120
  hasPlatform
@@ -2074,6 +2074,39 @@ function removeElementRef(elements, ref3) {
2074
2074
  });
2075
2075
  }
2076
2076
 
2077
+ // ../runtime/src/css.ts
2078
+ function camelToKebab(s) {
2079
+ return s.replaceAll(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
2080
+ }
2081
+ var MEDIA_TYPES = new Set(["all", "print", "screen", "speech"]);
2082
+ function resolveAtQuery(atKey, mediaQueries) {
2083
+ if (atKey.startsWith("@--")) {
2084
+ return mediaQueries[atKey.slice(1)] ?? atKey.slice(1);
2085
+ }
2086
+ if (atKey.startsWith("@(")) {
2087
+ const inner = atKey.slice(2, -1).trim();
2088
+ return MEDIA_TYPES.has(inner.toLowerCase()) ? inner : atKey.slice(1);
2089
+ }
2090
+ return null;
2091
+ }
2092
+ var COLOR_SCHEME_ATTR = "data-color-scheme";
2093
+ function pureSchemeOf(query) {
2094
+ const m = /^\(\s*prefers-color-scheme\s*:\s*(light|dark)\s*\)$/.exec(query.trim());
2095
+ return m?.[1] ?? null;
2096
+ }
2097
+ function schemeSelectors(selector, scheme) {
2098
+ if (selector === ":root" || selector === "html") {
2099
+ return {
2100
+ auto: `${selector}:where(:not([${COLOR_SCHEME_ATTR}]))`,
2101
+ forced: `${selector}:where([${COLOR_SCHEME_ATTR}="${scheme}"])`
2102
+ };
2103
+ }
2104
+ return {
2105
+ auto: `:where(:root:not([${COLOR_SCHEME_ATTR}])) ${selector}`,
2106
+ forced: `:where(:root[${COLOR_SCHEME_ATTR}="${scheme}"]) ${selector}`
2107
+ };
2108
+ }
2109
+
2077
2110
  // ../schema/src/intl.ts
2078
2111
  var DEFAULT_FORMAT_LOCALE = "en-US";
2079
2112
  var DEFAULT_TIME_ZONE = "UTC";
@@ -2956,7 +2989,6 @@ function serializeCookie(name, value, options) {
2956
2989
  }
2957
2990
  return parts.join("; ");
2958
2991
  }
2959
-
2960
2992
  // ../runtime/src/runtime.ts
2961
2993
  var _resolveCache = new Map;
2962
2994
  async function resolve(source) {
@@ -4359,40 +4391,9 @@ function mergeProps(def, parentState) {
4359
4391
  }
4360
4392
  return child;
4361
4393
  }
4362
- function camelToKebab(s) {
4363
- return s.replaceAll(/[A-Z]/g, (c) => `-${c.toLowerCase()}`);
4364
- }
4365
4394
  function toCSSText(rules) {
4366
4395
  return Object.entries(rules).filter(([k, v]) => !isNestedSelector(k) && (v === null || typeof v !== "object")).map(([p, v]) => `${camelToKebab(p)}: ${canvasStyleValue(String(v))}`).join("; ");
4367
4396
  }
4368
- var MEDIA_TYPES = new Set(["all", "print", "screen", "speech"]);
4369
- function resolveAtQuery(atKey, mediaQueries) {
4370
- if (atKey.startsWith("@--")) {
4371
- return mediaQueries[atKey.slice(1)] ?? atKey.slice(1);
4372
- }
4373
- if (atKey.startsWith("@(")) {
4374
- const inner = atKey.slice(2, -1).trim();
4375
- return MEDIA_TYPES.has(inner.toLowerCase()) ? inner : atKey.slice(1);
4376
- }
4377
- return null;
4378
- }
4379
- var COLOR_SCHEME_ATTR = "data-color-scheme";
4380
- function pureSchemeOf(query) {
4381
- const m = /^\(\s*prefers-color-scheme\s*:\s*(light|dark)\s*\)$/.exec(query.trim());
4382
- return m?.[1] ?? null;
4383
- }
4384
- function schemeSelectors(selector, scheme) {
4385
- if (selector === ":root" || selector === "html") {
4386
- return {
4387
- auto: `${selector}:where(:not([${COLOR_SCHEME_ATTR}]))`,
4388
- forced: `${selector}:where([${COLOR_SCHEME_ATTR}="${scheme}"])`
4389
- };
4390
- }
4391
- return {
4392
- auto: `:where(:root:not([${COLOR_SCHEME_ATTR}])) ${selector}`,
4393
- forced: `:where(:root[${COLOR_SCHEME_ATTR}="${scheme}"]) ${selector}`
4394
- };
4395
- }
4396
4397
  var _rootMedia = {};
4397
4398
  var _elementDefs = new Map;
4398
4399
  async function registerElements(elements, base) {
@@ -7924,7 +7925,7 @@ function openPageAction(label = "Open a page…") {
7924
7925
  return {
7925
7926
  label,
7926
7927
  run: () => {
7927
- import("./quick-search-cgfmjwq5.js").then((m) => {
7928
+ import("./quick-search-zccjp6gv.js").then((m) => {
7928
7929
  m.openQuickSearch();
7929
7930
  });
7930
7931
  }
@@ -8199,7 +8200,7 @@ function railPanelSet() {
8199
8200
  return RAIL_GROUP_LEVELS.flatMap(({ level }) => railable.filter((panel) => panel.level === level));
8200
8201
  }
8201
8202
 
8202
- export { LEVELS, 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, documentUrlPattern, dynamicRouteParams, pagePathsDef, invalidateParamValues, loadParamValues, isComponentDoc, componentPropEntries, PUBLIC_DIR, normalizeProjectPath, encodeProjectPath, contentMountFor, resolveAssetRef, projectLocales, assetContextFor, previewAssetSrc, hostAssetDeclarations, 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, setCanvasAssetResolver, 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 };
8203
+ export { LEVELS, 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, documentUrlPattern, dynamicRouteParams, pagePathsDef, invalidateParamValues, loadParamValues, isComponentDoc, componentPropEntries, PUBLIC_DIR, normalizeProjectPath, encodeProjectPath, contentMountFor, resolveAssetRef, projectLocales, assetContextFor, previewAssetSrc, hostAssetDeclarations, 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, pureSchemeOf, setSkipServerFunctions, runScoped, setCanvasAssetResolver, buildScope, renderNode, 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 };
8203
8204
 
8204
- //# debugId=124567CCB82F091564756E2164756E21
8205
- //# sourceMappingURL=studio-kjjsjak4.js.map
8205
+ //# debugId=E18388B1157EC0CA64756E2164756E21
8206
+ //# sourceMappingURL=studio-2b946z26.js.map
@@ -2,7 +2,7 @@ import {
2
2
  collectionDirs,
3
3
  createCollectionSource,
4
4
  createPagesSource
5
- } from "./studio-eesa1myv.js";
5
+ } from "./studio-b55y6ewx.js";
6
6
  import {
7
7
  cellToText,
8
8
  coerceCellInput,
@@ -10,7 +10,7 @@ import {
10
10
  createGridController,
11
11
  inferColumnsFromRows,
12
12
  makeGridTabId
13
- } from "./studio-cb12yz9w.js";
13
+ } from "./studio-cmb03bg5.js";
14
14
  import {
15
15
  isRecentLocal,
16
16
  markLocalMutation
@@ -18,13 +18,7 @@ import {
18
18
  import {
19
19
  MEDIA_EXTENSIONS,
20
20
  extensionOf
21
- } from "./studio-htsf0w6m.js";
22
- import {
23
- openModal
24
- } from "./studio-t7qb9db8.js";
25
- import {
26
- errorMessage
27
- } from "./studio-9n4mrmnb.js";
21
+ } from "./studio-qjy2z9bv.js";
28
22
  import {
29
23
  activateTab,
30
24
  argsSchema,
@@ -36,17 +30,23 @@ import {
36
30
  stringArg,
37
31
  stringProperty,
38
32
  workspace
39
- } from "./studio-2zkz8evn.js";
40
- import {
41
- html
42
- } from "./studio-kryvsw6j.js";
33
+ } from "./studio-trxrabqf.js";
43
34
  import {
44
35
  projectState
45
36
  } from "./studio-p4ngc046.js";
37
+ import {
38
+ openModal
39
+ } from "./studio-t7qb9db8.js";
40
+ import {
41
+ errorMessage
42
+ } from "./studio-9n4mrmnb.js";
43
+ import {
44
+ html
45
+ } from "./studio-kryvsw6j.js";
46
46
  import {
47
47
  formatForPath,
48
48
  loadFormats
49
- } from "./studio-eenfkt4e.js";
49
+ } from "./studio-ahn3pdgx.js";
50
50
  import {
51
51
  getPlatform
52
52
  } from "./studio-9ab8gqsm.js";
@@ -1004,5 +1004,5 @@ function registerGridCommands(registry) {
1004
1004
 
1005
1005
  export { dataSurfaceAvailable, testConnection, pushSchema, deriveSecretEnvName, parseCsv, createCsvFileSource, LIBRARY_CATEGORIES, LIBRARY_CATEGORY_KEYS, libraryCategory, uploadDirForCategory, scanLibrary, filterLibrary, LIBRARY_LAYOUTS, LIBRARY_LAYOUT_LABELS, PREVIEW_LAYOUTS, projectLocales, libraryLocales, groupByDate, groupByCategory, libraryColumns, createLibrarySource, openCsvGridTab, openLibraryTab, openPagesGrid, openGridSourcePicker, registerGridCommands };
1006
1006
 
1007
- //# debugId=0B0430BF12E1534864756E2164756E21
1008
- //# sourceMappingURL=studio-4pqqxbrt.js.map
1007
+ //# debugId=157CEC83DCC4607364756E2164756E21
1008
+ //# sourceMappingURL=studio-3bqpr0zh.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ resetModelCache
3
+ } from "./studio-dm19q43r.js";
1
4
  import {
2
5
  getCfToken,
3
6
  setCfToken
@@ -10,7 +13,10 @@ import {
10
13
  noteDeployment,
11
14
  platformSupportsPublish,
12
15
  writeDeployConfig
13
- } from "./studio-ahjfdy6e.js";
16
+ } from "./studio-ef49pnzx.js";
17
+ import {
18
+ projectState
19
+ } from "./studio-p4ngc046.js";
14
20
  import {
15
21
  activeRegistry,
16
22
  openModal
@@ -18,12 +24,12 @@ import {
18
24
  import {
19
25
  html
20
26
  } from "./studio-kryvsw6j.js";
21
- import {
22
- projectState
23
- } from "./studio-p4ngc046.js";
24
27
  import {
25
28
  getPlatform
26
29
  } from "./studio-9ab8gqsm.js";
30
+ import {
31
+ __require
32
+ } from "./studio-a0tswy0w.js";
27
33
 
28
34
  // src/publish/publish-panel.ts
29
35
  var PAGES_APP_INSTALL_URL = "https://github.com/apps/cloudflare-pages/installations/new";
@@ -51,7 +57,7 @@ async function loadConnection() {
51
57
  render();
52
58
  try {
53
59
  _connection = await getPlatform().cfConnection?.() ?? null;
54
- if (_connection?.connected) {
60
+ if (_connection?.connected && !_connection.needsReconnect) {
55
61
  _accounts = await listAccounts();
56
62
  _form.accountId = _connection.accountId ?? _accounts[0]?.id ?? "";
57
63
  const deploy = currentDeploy();
@@ -87,13 +93,21 @@ function openAccounts() {
87
93
  }
88
94
  async function hostedConnect() {
89
95
  _busy = true;
96
+ _error = "";
90
97
  render();
91
98
  try {
92
- await getPlatform().cfConnect?.();
99
+ const outcome = await getPlatform().cfConnect?.() ?? null;
100
+ if (outcome?.status === "timeout") {
101
+ _error = "The Cloudflare window didn't finish. Sign in there, then reconnect — nothing was changed.";
102
+ } else if (outcome?.status === "connected" && !outcome.connection.accountId) {
103
+ const { openCfAccountPicker } = await import("./cf-account-picker-en86v7x7.js");
104
+ await openCfAccountPicker();
105
+ }
93
106
  } catch (error) {
94
107
  _error = error instanceof Error ? error.message : String(error);
95
108
  }
96
109
  _busy = false;
110
+ resetModelCache();
97
111
  await loadConnection();
98
112
  }
99
113
  async function submitConnect() {
@@ -152,6 +166,23 @@ function fieldRow(label, input) {
152
166
  </label>
153
167
  `;
154
168
  }
169
+ function lapsedTpl() {
170
+ return html`
171
+ <p>
172
+ Your Cloudflare connection has expired, so publishing cannot reach your account. Reconnect to
173
+ restore it — this site's Pages project and its settings are untouched.
174
+ </p>
175
+ <sp-button
176
+ variant="accent"
177
+ ?disabled=${_busy}
178
+ @click=${() => {
179
+ hostedConnect();
180
+ }}
181
+ >
182
+ ${_busy ? "Reconnecting…" : "Reconnect Cloudflare"}
183
+ </sp-button>
184
+ `;
185
+ }
155
186
  function credentialTpl() {
156
187
  const platform = getPlatform();
157
188
  if (platform.cfConnect) {
@@ -318,6 +349,9 @@ function bodyTpl() {
318
349
  if (_connection === "loading") {
319
350
  return html`<p>Checking Cloudflare connection…</p>`;
320
351
  }
352
+ if (_connection?.connected && _connection.needsReconnect) {
353
+ return lapsedTpl();
354
+ }
321
355
  if (!_connection?.connected) {
322
356
  return credentialTpl();
323
357
  }
@@ -386,5 +420,5 @@ function openPublishPanel() {
386
420
 
387
421
  export { seedPublishConnected, openPublishPanel };
388
422
 
389
- //# debugId=32DE20DAF46B08AA64756E2164756E21
390
- //# sourceMappingURL=studio-v38hmvx1.js.map
423
+ //# debugId=F3F004CC7536951664756E2164756E21
424
+ //# sourceMappingURL=studio-4b5z1x43.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  renderDeployChecklist
3
- } from "./studio-ahjfdy6e.js";
3
+ } from "./studio-ef49pnzx.js";
4
4
  import {
5
5
  registerPanel,
6
6
  renderEmptyState
7
- } from "./studio-kjjsjak4.js";
7
+ } from "./studio-2b946z26.js";
8
8
  import {
9
9
  setBottomTab
10
- } from "./studio-hbtp0eh1.js";
10
+ } from "./studio-msd847zn.js";
11
11
  import {
12
12
  openModal
13
13
  } from "./studio-t7qb9db8.js";
@@ -354,4 +354,4 @@ function showProgressModal(opts) {
354
354
  export { beginActivity, activityIdleBlockers, registerActivityPanel, showProgressModal };
355
355
 
356
356
  //# debugId=55F83A7B38610BED64756E2164756E21
357
- //# sourceMappingURL=studio-9c4k4vhv.js.map
357
+ //# sourceMappingURL=studio-4n2b5gzb.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  rectOf
3
- } from "./studio-kjjsjak4.js";
3
+ } from "./studio-2b946z26.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-p8j86wag.js.map
166
+ //# sourceMappingURL=studio-4r1pv6zf.js.map
@@ -385,7 +385,7 @@ class AbstractOverlay extends SpectrumElement {
385
385
  document.dispatchEvent(overlayUpdateEvent);
386
386
  }
387
387
  static async open(triggerOrContent, interactionOrOptions, content, optionsV1) {
388
- await import("./sp-overlay.dev-yztmtrs1.js");
388
+ await import("./sp-overlay.dev-qgvhnxf4.js");
389
389
  const v2 = arguments.length === 2;
390
390
  const overlayContent = content || triggerOrContent;
391
391
  const overlay = new this;
@@ -1685,12 +1685,12 @@ function getOppositePlacement(placement) {
1685
1685
  return oppositeSideMap[side] + placement.slice(side.length);
1686
1686
  }
1687
1687
  function expandPaddingObject(padding) {
1688
+ var _padding$top, _padding$right, _padding$bottom, _padding$left;
1688
1689
  return {
1689
- top: 0,
1690
- right: 0,
1691
- bottom: 0,
1692
- left: 0,
1693
- ...padding
1690
+ top: (_padding$top = padding.top) != null ? _padding$top : 0,
1691
+ right: (_padding$right = padding.right) != null ? _padding$right : 0,
1692
+ bottom: (_padding$bottom = padding.bottom) != null ? _padding$bottom : 0,
1693
+ left: (_padding$left = padding.left) != null ? _padding$left : 0
1694
1694
  };
1695
1695
  }
1696
1696
  function getPaddingObject(padding) {
@@ -1766,13 +1766,9 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
1766
1766
  y: reference.y
1767
1767
  };
1768
1768
  }
1769
- switch (getAlignment(placement)) {
1770
- case "start":
1771
- coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
1772
- break;
1773
- case "end":
1774
- coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
1775
- break;
1769
+ const alignment = getAlignment(placement);
1770
+ if (alignment) {
1771
+ coords[alignmentAxis] += commonAlign * (alignment === "end" ? 1 : -1) * (rtl && isVertical ? -1 : 1);
1776
1772
  }
1777
1773
  return coords;
1778
1774
  }
@@ -1812,10 +1808,7 @@ async function detectOverflow(state2, options) {
1812
1808
  height: rects.floating.height
1813
1809
  } : rects.reference;
1814
1810
  const offsetParent = await (platform.getOffsetParent == null ? undefined : platform.getOffsetParent(elements.floating));
1815
- const offsetScale = await (platform.isElement == null ? undefined : platform.isElement(offsetParent)) ? await (platform.getScale == null ? undefined : platform.getScale(offsetParent)) || {
1816
- x: 1,
1817
- y: 1
1818
- } : {
1811
+ const offsetScale = await (platform.isElement == null ? undefined : platform.isElement(offsetParent)) && await (platform.getScale == null ? undefined : platform.getScale(offsetParent)) || {
1819
1812
  x: 1,
1820
1813
  y: 1
1821
1814
  };
@@ -1963,12 +1956,11 @@ var arrow = (options) => ({
1963
1956
  const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
1964
1957
  const minPadding = min(paddingObject[minProp], largestPossiblePadding);
1965
1958
  const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
1966
- const min$1 = minPadding;
1967
1959
  const max2 = clientSize - arrowDimensions[length] - maxPadding;
1968
1960
  const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
1969
- const offset = clamp(min$1, center, max2);
1970
- const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
1971
- const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
1961
+ const offset = clamp(minPadding, center, max2);
1962
+ const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < minPadding ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
1963
+ const alignmentOffset = shouldAddOffset ? center < minPadding ? center - minPadding : center - max2 : 0;
1972
1964
  return {
1973
1965
  [axis]: coords[axis] + alignmentOffset,
1974
1966
  data: {
@@ -2191,23 +2183,16 @@ var shift = function(options) {
2191
2183
  y
2192
2184
  };
2193
2185
  const overflow = await platform.detectOverflow(state2, detectOverflowOptions);
2194
- const crossAxis = getSideAxis(getSide(placement));
2186
+ const crossAxis = getSideAxis(placement);
2195
2187
  const mainAxis = getOppositeAxis(crossAxis);
2196
2188
  let mainAxisCoord = coords[mainAxis];
2197
2189
  let crossAxisCoord = coords[crossAxis];
2190
+ const clampCoord = (axis, coord) => clamp(coord + overflow[axis === "y" ? "top" : "left"], coord, coord - overflow[axis === "y" ? "bottom" : "right"]);
2198
2191
  if (checkMainAxis) {
2199
- const minSide = mainAxis === "y" ? "top" : "left";
2200
- const maxSide = mainAxis === "y" ? "bottom" : "right";
2201
- const min2 = mainAxisCoord + overflow[minSide];
2202
- const max2 = mainAxisCoord - overflow[maxSide];
2203
- mainAxisCoord = clamp(min2, mainAxisCoord, max2);
2192
+ mainAxisCoord = clampCoord(mainAxis, mainAxisCoord);
2204
2193
  }
2205
2194
  if (checkCrossAxis) {
2206
- const minSide = crossAxis === "y" ? "top" : "left";
2207
- const maxSide = crossAxis === "y" ? "bottom" : "right";
2208
- const min2 = crossAxisCoord + overflow[minSide];
2209
- const max2 = crossAxisCoord - overflow[maxSide];
2210
- crossAxisCoord = clamp(min2, crossAxisCoord, max2);
2195
+ crossAxisCoord = clampCoord(crossAxis, crossAxisCoord);
2211
2196
  }
2212
2197
  const limitedCoords = limiter.fn({
2213
2198
  ...state2,
@@ -2236,7 +2221,6 @@ var size = function(options) {
2236
2221
  name: "size",
2237
2222
  options,
2238
2223
  async fn(state2) {
2239
- var _state$middlewareData, _state$middlewareData2;
2240
2224
  const {
2241
2225
  placement,
2242
2226
  rects,
@@ -2268,24 +2252,21 @@ var size = function(options) {
2268
2252
  const maximumClippingWidth = width - overflow.left - overflow.right;
2269
2253
  const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
2270
2254
  const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
2271
- const noShift = !state2.middlewareData.shift;
2255
+ const shiftData = state2.middlewareData.shift;
2256
+ const noShift = !shiftData;
2272
2257
  let availableHeight = overflowAvailableHeight;
2273
2258
  let availableWidth = overflowAvailableWidth;
2274
- if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
2259
+ if (shiftData != null && shiftData.enabled.x) {
2275
2260
  availableWidth = maximumClippingWidth;
2276
2261
  }
2277
- if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
2262
+ if (shiftData != null && shiftData.enabled.y) {
2278
2263
  availableHeight = maximumClippingHeight;
2279
2264
  }
2280
2265
  if (noShift && !alignment) {
2281
- const xMin = max(overflow.left, 0);
2282
- const xMax = max(overflow.right, 0);
2283
- const yMin = max(overflow.top, 0);
2284
- const yMax = max(overflow.bottom, 0);
2285
2266
  if (isYAxis) {
2286
- availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
2267
+ availableWidth = width - 2 * max(overflow.left, overflow.right);
2287
2268
  } else {
2288
- availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
2269
+ availableHeight = height - 2 * max(overflow.top, overflow.bottom);
2289
2270
  }
2290
2271
  }
2291
2272
  await apply({
@@ -2436,7 +2417,7 @@ function getParentNode(node) {
2436
2417
  function getNearestOverflowAncestor(node) {
2437
2418
  const parentNode = getParentNode(node);
2438
2419
  if (isLastTraversableNode(parentNode)) {
2439
- return node.ownerDocument ? node.ownerDocument.body : node.body;
2420
+ return (node.ownerDocument || node).body;
2440
2421
  }
2441
2422
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
2442
2423
  return parentNode;
@@ -3379,12 +3360,12 @@ class InteractionController {
3379
3360
  return;
3380
3361
  }
3381
3362
  customElements.whenDefined("sp-overlay").then(async () => {
3382
- const { Overlay } = await import("./Overlay.dev-723bv0df.js");
3363
+ const { Overlay } = await import("./Overlay.dev-etqjwyf9.js");
3383
3364
  this.overlay = new Overlay;
3384
3365
  this.overlay.open = true;
3385
3366
  this.target[lastInteractionType] = this.type;
3386
3367
  });
3387
- import("./sp-overlay.dev-yztmtrs1.js");
3368
+ import("./sp-overlay.dev-qgvhnxf4.js");
3388
3369
  }
3389
3370
  get overlay() {
3390
3371
  return this._overlay;
@@ -4009,7 +3990,7 @@ var _Overlay = class _Overlay2 extends ComputedOverlayBase {
4009
3990
  return;
4010
3991
  }
4011
3992
  if (targetOpenState) {
4012
- const focusTrap = await import("./focus-trap.esm-ggawf1hy.js");
3993
+ const focusTrap = await import("./focus-trap.esm-9t2drp0g.js");
4013
3994
  const initialFocus = this.receivesFocus === "false" ? false : focusEl || undefined;
4014
3995
  this._focusTrap = focusTrap.createFocusTrap(this.dialogEl, {
4015
3996
  initialFocus,
@@ -4340,5 +4321,5 @@ var Overlay = _Overlay;
4340
4321
 
4341
4322
  export { FocusVisiblePolyfillMixin, Focusable, LikeAnchor, MutationController, ObserveSlotPresence, ObserveSlotText, isIPhone, isIOS, isWebKit, isAndroid, randomID, conditionAttributeWithoutId, conditionAttributeWithId, elementResolverUpdatedSymbol, ElementResolutionController, LONGPRESS_INSTRUCTIONS, SlottableRequestEvent, Overlay };
4342
4323
 
4343
- //# debugId=B4C0094FFD6AEF9A64756E2164756E21
4344
- //# sourceMappingURL=studio-mmv72a27.js.map
4324
+ //# debugId=870A47F946E355DE64756E2164756E21
4325
+ //# sourceMappingURL=studio-5fx3g9jg.js.map