@jxsuite/studio 3.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 (197) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/{2020-xp8vnwma.js → 2020-n6tfwnda.js} +2 -2
  3. package/dist/chunks/Overlay.dev-etqjwyf9.js +23 -0
  4. package/dist/chunks/cf-account-picker-en86v7x7.js +163 -0
  5. package/dist/chunks/{cf-settings-zj2cj1ar.js → cf-settings-45fgyx8y.js} +6 -5
  6. package/dist/chunks/{components-z6cnkyy1.js → components-zmx10t62.js} +6 -5
  7. package/dist/chunks/content-source-48xg86wj.js +49 -0
  8. package/dist/chunks/{convert-to-repeater-6vvx96n2.js → convert-to-repeater-43tfn7cs.js} +33 -25
  9. package/dist/chunks/entry-commands-e63f1xc0.js +46 -0
  10. package/dist/chunks/{extension-sections-kwzvpemr.js → extension-sections-txv08xxg.js} +34 -26
  11. package/dist/chunks/file-ops-wbh4hhsx.js +48 -0
  12. package/dist/chunks/files-3kfkwhk4.js +93 -0
  13. package/dist/chunks/{focus-trap.esm-ggawf1hy.js → focus-trap.esm-9t2drp0g.js} +6 -5
  14. package/dist/chunks/{format-host-8fr3545e.js → format-host-w16q81tf.js} +3 -3
  15. package/dist/chunks/fs-events-hrrg328g.js +21 -0
  16. package/dist/chunks/{git-panel-g01d93vc.js → git-panel-532whr1y.js} +22 -16
  17. package/dist/chunks/{index-nj44jpzj.js → index-wcnt3r9g.js} +2 -2
  18. package/dist/chunks/{jx-validate-jj9rnt4n.js → jx-validate-8er6gbxy.js} +6 -4
  19. package/dist/chunks/layers-panel-07hm7g5j.js +67 -0
  20. package/dist/chunks/layers-q75tj2mf.js +45 -0
  21. package/dist/chunks/lit-html-j055mkh8.js +22 -0
  22. package/dist/chunks/monaco-buffer-dqw0xxpx.js +25 -0
  23. package/dist/chunks/{monaco-setup-a5wkmbgh.js → monaco-setup-vx9bhp1d.js} +4 -4
  24. package/dist/chunks/notify-yjm79n4s.js +30 -0
  25. package/dist/chunks/parse-24d0gay3.js +19 -0
  26. package/dist/chunks/platform-ba1j1gbh.js +16 -0
  27. package/dist/chunks/publish-panel-v9st96ja.js +29 -0
  28. package/dist/chunks/quick-search-zccjp6gv.js +66 -0
  29. package/dist/chunks/references-3qx8fkyp.js +29 -0
  30. package/dist/chunks/right-panel-vm3b6kwy.js +46 -0
  31. package/dist/chunks/sp-overlay.dev-qgvhnxf4.js +18 -0
  32. package/dist/chunks/sp-popover.dev-n2etmqdp.js +9 -0
  33. package/dist/chunks/sp-progress-circle.dev-hryhj0es.js +15 -0
  34. package/dist/chunks/sp-tooltip.dev-4sastdnw.js +15 -0
  35. package/dist/chunks/{sp-tray.dev-64v4pxw8.js → sp-tray.dev-tkbscm06.js} +5 -5
  36. package/dist/chunks/{studio-wdt9y92a.js → studio-0bq6eh7v.js} +2 -2
  37. package/dist/chunks/studio-1ngbejft.js +181 -0
  38. package/dist/chunks/studio-1wagb550.js +118 -0
  39. package/dist/chunks/{studio-j595e748.js → studio-2b946z26.js} +172 -95
  40. package/dist/chunks/{studio-pkp61mh8.js → studio-3bqpr0zh.js} +25 -17
  41. package/dist/chunks/{studio-k4jvjcfx.js → studio-4b5z1x43.js} +46 -12
  42. package/dist/chunks/{studio-ry1vz5sv.js → studio-4n2b5gzb.js} +15 -13
  43. package/dist/chunks/{studio-p5dja96s.js → studio-4r1pv6zf.js} +2 -2
  44. package/dist/chunks/{studio-kvfx9z2c.js → studio-4rzyrtjz.js} +70 -31
  45. package/dist/chunks/{studio-tzx3xmvx.js → studio-5fx3g9jg.js} +33 -52
  46. package/dist/chunks/{studio-rh1cnamv.js → studio-5myknm0a.js} +565 -135
  47. package/dist/chunks/studio-6yw4y3my.js +91 -0
  48. package/dist/chunks/{studio-0rqqhrdy.js → studio-7nte2hj4.js} +2 -2
  49. package/dist/chunks/studio-92ab2jqe.js +282 -0
  50. package/dist/chunks/{studio-6z5eyjwn.js → studio-950k0dx6.js} +72 -135
  51. package/dist/chunks/{studio-sas7mt3k.js → studio-9ab8gqsm.js} +2 -2
  52. package/dist/chunks/studio-9n4mrmnb.js +184 -0
  53. package/dist/chunks/{studio-hcxzyk3x.js → studio-ahn3pdgx.js} +6 -6
  54. package/dist/chunks/studio-b55y6ewx.js +498 -0
  55. package/dist/chunks/{studio-s519zc99.js → studio-bgxt93ga.js} +3 -3
  56. package/dist/chunks/studio-cft9r4r7.js +119 -0
  57. package/dist/chunks/{studio-dc8s8heb.js → studio-cmb03bg5.js} +6904 -8321
  58. package/dist/chunks/studio-dm19q43r.js +195 -0
  59. package/dist/chunks/{studio-2x9zbxmx.js → studio-ef49pnzx.js} +11 -9
  60. package/dist/chunks/{studio-ay8wcr2b.js → studio-eqq1w638.js} +7 -9
  61. package/dist/chunks/{studio-5efrtn1m.js → studio-ew0djmhg.js} +23 -19
  62. package/dist/chunks/{studio-tr20m8g8.js → studio-f3wqjtk5.js} +39 -3
  63. package/dist/chunks/{studio-xntfdy1x.js → studio-fbf92ckf.js} +36 -23
  64. package/dist/chunks/{studio-4q0wznzf.js → studio-gcye7qka.js} +442 -126
  65. package/dist/chunks/{studio-7p35254k.js → studio-gfgb8pe6.js} +36 -193
  66. package/dist/chunks/studio-jc994dnr.js +1066 -0
  67. package/dist/chunks/{studio-hj2se583.js → studio-jkftxyvz.js} +69 -3423
  68. package/dist/chunks/{studio-5x5774ak.js → studio-kryvsw6j.js} +3 -3
  69. package/dist/chunks/{studio-kfpek536.js → studio-kyh9avvv.js} +2 -2
  70. package/dist/chunks/{studio-twsafr1e.js → studio-m3hwn7y1.js} +3 -3
  71. package/dist/chunks/studio-msd847zn.js +1315 -0
  72. package/dist/chunks/{studio-g5gdqnyd.js → studio-mtfnaqs9.js} +19 -19
  73. package/dist/chunks/{studio-7ejemhej.js → studio-n6j9t10q.js} +6 -6
  74. package/dist/chunks/{studio-vhk5fmfv.js → studio-n8b9wqwy.js} +5 -5
  75. package/dist/chunks/{studio-cjm7fdjf.js → studio-p4ngc046.js} +8 -104
  76. package/dist/chunks/studio-q43a5y9h.js +394 -0
  77. package/dist/chunks/studio-q7v10cg2.js +106 -0
  78. package/dist/chunks/{studio-6kv3apa9.js → studio-q9jd1a60.js} +27 -11
  79. package/dist/chunks/studio-qcy05dp8.js +1743 -0
  80. package/dist/chunks/{studio-a0yp7syn.js → studio-qjy2z9bv.js} +29 -132
  81. package/dist/chunks/{studio-2w11grav.js → studio-qq6jym04.js} +3 -3
  82. package/dist/chunks/{studio-3fk1ac9z.js → studio-rdx8jcxy.js} +4 -4
  83. package/dist/chunks/{studio-4mqb9a0j.js → studio-rn9ta2mz.js} +4 -4
  84. package/dist/chunks/studio-t7qb9db8.js +665 -0
  85. package/dist/chunks/studio-tmc5emrw.js +8 -0
  86. package/dist/chunks/{studio-r5xbtctf.js → studio-trxrabqf.js} +292 -2297
  87. package/dist/chunks/studio-wcy8trfx.js +263 -0
  88. package/dist/chunks/{studio-3dkcd4c5.js → studio-x4qkdat5.js} +62 -57
  89. package/dist/chunks/studio-x813zp48.js +195 -0
  90. package/dist/chunks/{studio-qpfq7xhm.js → studio-xrapxwwc.js} +22 -285
  91. package/dist/chunks/{studio-xm3dbxvn.js → studio-zczps70q.js} +2 -2
  92. package/dist/chunks/{studio-8ezdegcx.js → studio-zqazsct2.js} +40 -36
  93. package/dist/chunks/workspace-fjx52ryv.js +89 -0
  94. package/dist/iframe-entry.js +141 -56
  95. package/dist/manifest.json +7 -0
  96. package/dist/studio.js +2605 -1950
  97. package/favicon.ico +0 -0
  98. package/index.html +1 -0
  99. package/package.json +20 -18
  100. package/src/about/about-modal.ts +4 -3
  101. package/src/browse/library-pane.ts +57 -3
  102. package/src/canvas/canvas-render.ts +23 -1
  103. package/src/canvas/iframe-patch.ts +47 -21
  104. package/src/canvas/iframe-render.ts +22 -6
  105. package/src/commands/app-commands.ts +4 -0
  106. package/src/commands/command-args.ts +29 -0
  107. package/src/commands/context.ts +15 -1
  108. package/src/commands/defaults.ts +29 -1
  109. package/src/commands/levels.ts +16 -0
  110. package/src/commands/live-context.ts +3 -0
  111. package/src/content/collection-match.ts +267 -0
  112. package/src/content/entry-commands.ts +38 -29
  113. package/src/content/entry-fields.ts +6 -0
  114. package/src/editor/shortcuts.ts +5 -0
  115. package/src/files/file-ops.ts +10 -42
  116. package/src/files/files.ts +487 -59
  117. package/src/files/fs-events.ts +9 -0
  118. package/src/files/gitignore.ts +432 -0
  119. package/src/files/media-paths.ts +13 -42
  120. package/src/files/media-usage.ts +41 -131
  121. package/src/files/serialize-document.ts +60 -0
  122. package/src/format/convert-file.ts +511 -0
  123. package/src/format/format-choices.ts +199 -0
  124. package/src/grid/grid-view.ts +16 -2
  125. package/src/hosting/document.ts +2 -0
  126. package/src/hosting/layout.ts +8 -0
  127. package/src/media/media-open.ts +58 -0
  128. package/src/media/media-pane.ts +310 -0
  129. package/src/new-project/import-tab.ts +357 -163
  130. package/src/new-project/location-fields.ts +8 -5
  131. package/src/new-project/new-project-modal.ts +27 -34
  132. package/src/packages/ensure-deps.ts +14 -7
  133. package/src/packages/jxsuite-update.ts +11 -11
  134. package/src/page-params.ts +10 -46
  135. package/src/panels/activity-bar.ts +45 -16
  136. package/src/panels/ai-chat/attached-context.ts +6 -1
  137. package/src/panels/ai-chat/chat-view.ts +255 -13
  138. package/src/panels/ai-chat/composer.ts +31 -97
  139. package/src/panels/ai-panel.ts +116 -2
  140. package/src/panels/navigator-panels.ts +7 -6
  141. package/src/panels/settings-menu.ts +799 -0
  142. package/src/panels/toolbar.ts +135 -15
  143. package/src/platforms/cloud.ts +261 -70
  144. package/src/platforms/devserver.ts +67 -33
  145. package/src/preview/preview-overlay.ts +226 -0
  146. package/src/publish/publish-panel.ts +62 -2
  147. package/src/services/ai-ask.ts +247 -0
  148. package/src/services/ai-import-tools.ts +532 -0
  149. package/src/services/ai-models.ts +108 -1
  150. package/src/services/ai-project-tools.ts +20 -26
  151. package/src/services/ai-system-prompt.ts +88 -2
  152. package/src/services/ai-turn-signal.ts +70 -0
  153. package/src/services/connection.ts +74 -0
  154. package/src/services/context-manager.ts +101 -1
  155. package/src/services/document-assistant.ts +45 -4
  156. package/src/services/import-client.ts +33 -6
  157. package/src/services/import-run.ts +158 -0
  158. package/src/services/import-seed.ts +120 -0
  159. package/src/services/jx-validate.ts +58 -6
  160. package/src/services/project-adoption.ts +71 -0
  161. package/src/services/references.ts +0 -0
  162. package/src/services/settings/definitions.ts +17 -0
  163. package/src/services/tool-executor.ts +45 -2
  164. package/src/settings/contexts-section.ts +45 -3
  165. package/src/settings/dependencies-editor.ts +43 -23
  166. package/src/settings/general-settings.ts +30 -12
  167. package/src/settings/preferences-accounts.ts +193 -12
  168. package/src/settings/preferences-dialog.ts +93 -59
  169. package/src/settings/preferences-sections.ts +57 -0
  170. package/src/settings/settings-document.ts +65 -9
  171. package/src/studio.ts +33 -6
  172. package/src/tabs/transact.ts +42 -19
  173. package/src/types.ts +129 -7
  174. package/src/ui/ai-managed-connect.ts +62 -13
  175. package/src/ui/ai-model-picker.ts +189 -0
  176. package/src/ui/cf-account-picker.ts +200 -0
  177. package/src/ui/choice-field.ts +72 -0
  178. package/src/ui/layers.ts +83 -5
  179. package/src/utils/studio-utils.ts +22 -52
  180. package/styles/forced-colors.css +7 -0
  181. package/styles/overlays.css +256 -0
  182. package/styles/panels.css +13 -1
  183. package/styles/shell.css +147 -0
  184. package/dist/chunks/Overlay.dev-d2ajy6sj.js +0 -23
  185. package/dist/chunks/content-source-7fy9qrm0.js +0 -40
  186. package/dist/chunks/files-xcybanxe.js +0 -70
  187. package/dist/chunks/layers-panel-27essgkc.js +0 -60
  188. package/dist/chunks/publish-panel-09sy2bab.js +0 -22
  189. package/dist/chunks/quick-search-sefb61v8.js +0 -55
  190. package/dist/chunks/right-panel-9r32jd5j.js +0 -39
  191. package/dist/chunks/sp-overlay.dev-s18hymn9.js +0 -18
  192. package/dist/chunks/sp-popover.dev-dj9x7e7a.js +0 -9
  193. package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +0 -15
  194. package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +0 -15
  195. package/dist/chunks/studio-bw5dz6km.js +0 -608
  196. package/dist/chunks/studio-c31yb4t6.js +0 -55
  197. package/src/canvas/site-style-css.ts +0 -117
@@ -1,8 +1,3 @@
1
- import {
2
- getPlatform,
3
- hasPlatform
4
- } from "./studio-sas7mt3k.js";
5
-
6
1
  // ../../node_modules/@vue/shared/dist/shared.esm-bundler.js
7
2
  function makeMap(str) {
8
3
  const map = /* @__PURE__ */ Object.create(null);
@@ -1398,77 +1393,6 @@ function computed(getterOrOptions, debugOptions, isSSR = false) {
1398
1393
  }
1399
1394
  return cRef;
1400
1395
  }
1401
- // src/services/settings/definitions.ts
1402
- function normalizeBaseUrl(raw) {
1403
- return raw.trim().replace(/\/+$/, "");
1404
- }
1405
- function trimmed(raw) {
1406
- return raw.trim();
1407
- }
1408
- var SETTINGS = {
1409
- aiBaseUrl: {
1410
- default: "",
1411
- key: "jx.ai.baseUrl",
1412
- normalize: normalizeBaseUrl,
1413
- scope: "user"
1414
- },
1415
- aiOpenAiKey: {
1416
- default: "",
1417
- key: "jx.ai.openaiKey",
1418
- normalize: trimmed,
1419
- scope: "user",
1420
- secret: true
1421
- },
1422
- aiModel: {
1423
- default: "gpt-4o",
1424
- key: "jx.ai.model",
1425
- normalize: trimmed,
1426
- scope: "user"
1427
- },
1428
- keybindings: {
1429
- default: "",
1430
- key: "jx.keybindings",
1431
- normalize: (raw) => raw.trim() === "{}" ? "" : raw.trim(),
1432
- scope: "user"
1433
- },
1434
- theme: {
1435
- default: "",
1436
- key: "jx-studio-theme",
1437
- normalize: trimmed,
1438
- scope: "user"
1439
- },
1440
- cfAccountId: {
1441
- default: "",
1442
- key: "jx.cf.accountId",
1443
- normalize: trimmed,
1444
- scope: "user"
1445
- },
1446
- cfToken: {
1447
- default: "",
1448
- key: "jx.cf.token",
1449
- normalize: trimmed,
1450
- scope: "user",
1451
- secret: true
1452
- }
1453
- };
1454
- var ALL_SETTINGS = Object.values(SETTINGS);
1455
- var USER_SETTINGS = ALL_SETTINGS.filter((definition) => definition.scope === "user");
1456
- var USER_SETTING_KEYS = USER_SETTINGS.map((definition) => definition.key);
1457
-
1458
- // src/services/clock.ts
1459
- var _pinned = null;
1460
- function now() {
1461
- return _pinned ?? Date.now();
1462
- }
1463
- function pinClock(at) {
1464
- const ms = at instanceof Date ? at.getTime() : typeof at === "number" ? at : Date.parse(at);
1465
- if (!Number.isFinite(ms)) {
1466
- throw new TypeError(`clock: cannot pin to ${JSON.stringify(at)}`);
1467
- }
1468
- _pinned = ms;
1469
- return ms;
1470
- }
1471
-
1472
1396
  // src/services/announce.ts
1473
1397
  var REGION_ID = {
1474
1398
  assertive: "jx-live-assertive",
@@ -1506,7 +1430,23 @@ function announce(message, politeness = "polite") {
1506
1430
  }, 0);
1507
1431
  }
1508
1432
 
1433
+ // src/services/clock.ts
1434
+ var _pinned = null;
1435
+ function now() {
1436
+ return _pinned ?? Date.now();
1437
+ }
1438
+ function pinClock(at) {
1439
+ const ms = at instanceof Date ? at.getTime() : typeof at === "number" ? at : Date.parse(at);
1440
+ if (!Number.isFinite(ms)) {
1441
+ throw new TypeError(`clock: cannot pin to ${JSON.stringify(at)}`);
1442
+ }
1443
+ _pinned = ms;
1444
+ return ms;
1445
+ }
1446
+
1509
1447
  // src/services/notify.ts
1448
+ var SEVERITIES = ["success", "info", "warn", "error"];
1449
+ var TIERS = ["toast", "problem"];
1510
1450
  var DEFAULT_TIER = {
1511
1451
  error: "problem",
1512
1452
  info: "toast",
@@ -1588,215 +1528,12 @@ function clearProblems(match) {
1588
1528
  function problemCount(severity) {
1589
1529
  return severity === undefined ? problems.length : problems.filter((record) => record.severity === severity).length;
1590
1530
  }
1591
-
1592
- // src/services/settings/write-queue.ts
1593
- function createWriteQueue(opts) {
1594
- const schedule = opts.schedule ?? queueMicrotask;
1595
- let pending = null;
1596
- let tail = Promise.resolve();
1597
- let idle = Promise.resolve();
1598
- function flush() {
1599
- const patch = pending;
1600
- pending = null;
1601
- if (!patch) {
1602
- return tail;
1603
- }
1604
- tail = tail.then(() => opts.send(patch)).catch((error) => {
1605
- opts.onError?.(error, patch);
1606
- });
1607
- return tail;
1608
- }
1609
- return {
1610
- enqueue(patch) {
1611
- if (pending) {
1612
- Object.assign(pending, patch);
1613
- return;
1614
- }
1615
- pending = { ...patch };
1616
- idle = new Promise((resolve) => {
1617
- schedule(() => {
1618
- flush().then(resolve);
1619
- });
1620
- });
1621
- },
1622
- settled() {
1623
- return idle;
1624
- }
1625
- };
1626
- }
1627
-
1628
- // src/services/settings/kernel.ts
1629
- var values = new Map;
1630
- function writeCache(key, value) {
1631
- try {
1632
- if (value === null) {
1633
- globalThis.localStorage?.removeItem(key);
1634
- } else {
1635
- globalThis.localStorage?.setItem(key, value);
1636
- }
1637
- } catch {}
1638
- }
1639
- try {
1640
- for (const definition of ALL_SETTINGS) {
1641
- const cached = globalThis.localStorage?.getItem(definition.key);
1642
- if (cached !== null && cached !== undefined) {
1643
- values.set(definition.key, cached);
1644
- }
1645
- }
1646
- } catch {}
1647
- function readStoredSetting(definition) {
1648
- return values.get(definition.key) ?? "";
1649
- }
1650
- function hasSetting(definition) {
1651
- return (values.get(definition.key) ?? "") !== "";
1652
- }
1653
- var listeners = new Set;
1654
- function onSettingsChanged(listener) {
1655
- listeners.add(listener);
1656
- return () => {
1657
- listeners.delete(listener);
1658
- };
1659
- }
1660
- function announce2(keys) {
1661
- for (const listener of listeners) {
1662
- listener(keys);
1663
- }
1664
- }
1665
- var queue = createWriteQueue({
1666
- onError(error) {
1667
- notify("error", "Your settings could not be saved.", {
1668
- detail: error instanceof Error ? error.message : String(error),
1669
- key: "settings-write",
1670
- source: "Settings"
1671
- });
1672
- },
1673
- async send(patch) {
1674
- if (!hasPlatform()) {
1675
- return;
1676
- }
1677
- const platform = getPlatform();
1678
- if (!platform.patchSettings) {
1679
- return;
1680
- }
1681
- const set = {};
1682
- const remove2 = [];
1683
- for (const [key, value] of Object.entries(patch)) {
1684
- if (value) {
1685
- set[key] = value;
1686
- } else {
1687
- remove2.push(key);
1688
- }
1689
- }
1690
- await platform.patchSettings({ remove: remove2, set });
1691
- }
1692
- });
1693
- function settingsSettled() {
1694
- return queue.settled();
1695
- }
1696
- function apply2(patch) {
1697
- const moved = [];
1698
- for (const [key, next] of Object.entries(patch)) {
1699
- const before = values.get(key) ?? null;
1700
- if (before === next) {
1701
- continue;
1702
- }
1703
- if (next === null) {
1704
- values.delete(key);
1705
- } else {
1706
- values.set(key, next);
1707
- }
1708
- writeCache(key, next);
1709
- moved.push(key);
1710
- }
1711
- return moved;
1712
- }
1713
- function setSetting(definition, value) {
1714
- const next = definition.normalize ? definition.normalize(value) : value;
1715
- const moved = apply2({ [definition.key]: next });
1716
- if (moved.length > 0) {
1717
- queue.enqueue({ [definition.key]: next });
1718
- announce2(moved);
1719
- }
1720
- }
1721
- function setSettings(entries) {
1722
- const patch = {};
1723
- for (const [definition, value] of entries) {
1724
- patch[definition.key] = definition.normalize ? definition.normalize(value) : value;
1725
- }
1726
- const moved = apply2(patch);
1727
- if (moved.length > 0) {
1728
- queue.enqueue(patch);
1729
- announce2(moved);
1730
- }
1731
- }
1732
- function clearSettings(definitions) {
1733
- const patch = {};
1734
- for (const definition of definitions) {
1735
- patch[definition.key] = null;
1736
- }
1737
- const moved = apply2(patch);
1738
- if (moved.length > 0) {
1739
- queue.enqueue(patch);
1740
- announce2(moved);
1741
- }
1742
- }
1743
- async function hydrateSettings() {
1744
- if (!hasPlatform()) {
1745
- return;
1746
- }
1747
- const platform = getPlatform();
1748
- if (!platform.getSettings) {
1749
- return;
1750
- }
1751
- let stored;
1752
- try {
1753
- stored = await platform.getSettings();
1754
- } catch {
1755
- return;
1756
- }
1757
- const incoming = {};
1758
- let needsMigration = false;
1759
- for (const definition of USER_SETTINGS) {
1760
- const backendValue = stored[definition.key];
1761
- if (backendValue) {
1762
- incoming[definition.key] = backendValue;
1763
- } else if (values.get(definition.key)) {
1764
- needsMigration = true;
1765
- }
1766
- }
1767
- const moved = apply2(incoming);
1768
- if (moved.length > 0) {
1769
- announce2(moved);
1770
- }
1771
- if (needsMigration) {
1772
- const push = {};
1773
- for (const definition of USER_SETTINGS) {
1774
- const value = values.get(definition.key);
1775
- if (value && !stored[definition.key]) {
1776
- push[definition.key] = value;
1777
- }
1778
- }
1779
- queue.enqueue(push);
1780
- }
1781
- }
1782
- function adoptRemoteSettings(stored) {
1783
- const patch = {};
1784
- for (const definition of USER_SETTINGS) {
1785
- patch[definition.key] = stored[definition.key] ?? null;
1786
- }
1787
- const moved = apply2(patch);
1788
- if (moved.length > 0) {
1789
- announce2(moved);
1790
- }
1791
- }
1792
- function watchRemoteSettings() {
1793
- if (!hasPlatform()) {
1794
- return;
1795
- }
1796
- getPlatform().subscribeSettings?.(adoptRemoteSettings);
1531
+ function resetNotifications() {
1532
+ toasts.splice(0);
1533
+ problems.splice(0);
1797
1534
  }
1798
1535
 
1799
- export { effectScope, onScopeDispose, effect, onEffectCleanup, reactive, toRaw, isRef, ref, shallowRef, computed, SETTINGS, now, pinClock, toasts, problems, notify, dismiss, clearProblems, problemCount, readStoredSetting, hasSetting, onSettingsChanged, settingsSettled, setSetting, setSettings, clearSettings, hydrateSettings, watchRemoteSettings };
1536
+ export { effectScope, onScopeDispose, effect, onEffectCleanup, reactive, toRaw, isRef, ref, shallowRef, computed, now, pinClock, SEVERITIES, TIERS, TOAST_LIFETIME_MS, toasts, problems, MAX_TOASTS, notify, dismiss, clearProblems, problemCount, resetNotifications };
1800
1537
 
1801
- //# debugId=E24768F07DA88AB964756E2164756E21
1802
- //# sourceMappingURL=studio-qpfq7xhm.js.map
1538
+ //# debugId=28449543FB7F0DBF64756E2164756E21
1539
+ //# sourceMappingURL=studio-xrapxwwc.js.map
@@ -2,7 +2,7 @@ import {
2
2
  LitElement,
3
3
  defaultConverter,
4
4
  notEqual
5
- } from "./studio-0rqqhrdy.js";
5
+ } from "./studio-7nte2hj4.js";
6
6
 
7
7
  // ../../node_modules/@lit/reactive-element/development/decorators/property.js
8
8
  var DEV_MODE = true;
@@ -375,4 +375,4 @@ var INPUT_COMPONENT_PATTERN = new RegExp(`^(${INPUT_COMPONENT_TAGS.join("|")})$`
375
375
  export { SpectrumElement, property, state, query, queryAssignedElements, queryAssignedNodes, SizedMixin, INPUT_COMPONENT_PATTERN };
376
376
 
377
377
  //# debugId=F5F879EA03F1BE3664756E2164756E21
378
- //# sourceMappingURL=studio-xm3dbxvn.js.map
378
+ //# sourceMappingURL=studio-zczps70q.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  INSPECTOR_TABS,
3
3
  selectStylebookTag
4
- } from "./studio-xntfdy1x.js";
4
+ } from "./studio-fbf92ckf.js";
5
5
  import {
6
6
  allConditionsPass,
7
7
  autoOpenSections,
@@ -28,7 +28,7 @@ import {
28
28
  setInspectorSection,
29
29
  spTextField,
30
30
  widgetForType
31
- } from "./studio-6z5eyjwn.js";
31
+ } from "./studio-950k0dx6.js";
32
32
  import {
33
33
  createPanelScheduler
34
34
  } from "./studio-8jpzqk5s.js";
@@ -44,33 +44,29 @@ import {
44
44
  renderStaticKvRow,
45
45
  slotMode,
46
46
  switchSlotMode
47
- } from "./studio-3dkcd4c5.js";
48
- import {
49
- live
50
- } from "./studio-c31yb4t6.js";
47
+ } from "./studio-x4qkdat5.js";
51
48
  import {
52
49
  loadUsages,
53
50
  peekUsages,
54
51
  usageFiles
55
- } from "./studio-a0yp7syn.js";
52
+ } from "./studio-cft9r4r7.js";
56
53
  import {
57
54
  clickAnythingTo,
58
55
  mediaDisplayName,
59
56
  openPageAction,
60
57
  renderEmptyState,
61
58
  staleSelectionMessage
62
- } from "./studio-j595e748.js";
59
+ } from "./studio-2b946z26.js";
63
60
  import {
64
61
  DEFAULT_INSPECTOR_TAB,
65
- REGION_ATTR,
66
- activeRegistry,
67
- activeTab,
68
62
  getEffectiveMedia,
69
63
  getEffectiveStyle,
70
- inferInputType,
71
- inspectorStatementsRegion,
72
- inspectorTabRegion,
73
64
  isInspectorTabId,
65
+ shell
66
+ } from "./studio-msd847zn.js";
67
+ import {
68
+ activeTab,
69
+ inferInputType,
74
70
  mutateAddDef,
75
71
  mutateAddSwitchCase,
76
72
  mutateRemoveSwitchCase,
@@ -84,45 +80,53 @@ import {
84
80
  mutateUpdateStyle,
85
81
  primarySelection,
86
82
  propLabel,
87
- shell,
88
- showPromptDialog,
89
83
  stringArg,
90
84
  transactDoc,
91
85
  unifyValues
92
- } from "./studio-r5xbtctf.js";
86
+ } from "./studio-trxrabqf.js";
93
87
  import {
94
88
  classMap,
95
89
  ifDefined
96
- } from "./studio-twsafr1e.js";
97
- import {
98
- ref
99
- } from "./studio-kvfx9z2c.js";
100
- import {
101
- html,
102
- nothing,
103
- render
104
- } from "./studio-5x5774ak.js";
90
+ } from "./studio-m3hwn7y1.js";
105
91
  import {
106
92
  COMMON_SELECTORS,
107
93
  debouncedStyleCommit,
108
- getEventBinding,
109
- getNestedStyle,
110
94
  getNodeAtPath,
111
- isExpressionDef,
112
- isFunctionDef,
113
- isJsonObject,
114
95
  isNestedSelector,
115
- isRef,
116
96
  nodeLabel,
117
97
  renderOnly,
118
98
  rightPanel,
119
99
  updateUi
120
- } from "./studio-cjm7fdjf.js";
100
+ } from "./studio-p4ngc046.js";
101
+ import {
102
+ REGION_ATTR,
103
+ activeRegistry,
104
+ inspectorStatementsRegion,
105
+ inspectorTabRegion,
106
+ showPromptDialog
107
+ } from "./studio-t7qb9db8.js";
121
108
  import {
122
109
  effect,
123
110
  effectScope,
124
111
  reactive
125
- } from "./studio-qpfq7xhm.js";
112
+ } from "./studio-xrapxwwc.js";
113
+ import {
114
+ live,
115
+ ref
116
+ } from "./studio-4rzyrtjz.js";
117
+ import {
118
+ html,
119
+ nothing,
120
+ render
121
+ } from "./studio-kryvsw6j.js";
122
+ import {
123
+ getEventBinding,
124
+ getNestedStyle,
125
+ isExpressionDef,
126
+ isFunctionDef,
127
+ isJsonObject,
128
+ isRef
129
+ } from "./studio-q7v10cg2.js";
126
130
 
127
131
  // src/panels/events-panel.ts
128
132
  var EVENT_NAMES = [
@@ -1815,5 +1819,5 @@ function _doRender() {
1815
1819
 
1816
1820
  export { registerStyleCommands, mount, unmount, render2 as render, inspectorTab, setInspectorTab };
1817
1821
 
1818
- //# debugId=7DAED945C4B605E264756E2164756E21
1819
- //# sourceMappingURL=studio-8ezdegcx.js.map
1822
+ //# debugId=F77FC250B78B06BA64756E2164756E21
1823
+ //# sourceMappingURL=studio-zqazsct2.js.map
@@ -0,0 +1,89 @@
1
+ import {
2
+ MAX_PANES,
3
+ PRIMARY_PANE,
4
+ SECONDARY_PANE,
5
+ activateTab,
6
+ activePane,
7
+ activeTab,
8
+ closeAllTabs,
9
+ closePane,
10
+ closeTab,
11
+ cycleTab,
12
+ detachTab,
13
+ endTabCycle,
14
+ focusOtherPane,
15
+ focusPane,
16
+ insertIntoPane,
17
+ isPaneFocused,
18
+ isTabActive,
19
+ moveTab,
20
+ moveTabToPane,
21
+ openTab,
22
+ paneById,
23
+ paneCommands,
24
+ paneOfTab,
25
+ promoteDirtyPreviewTabs,
26
+ promoteTab,
27
+ receivingPane,
28
+ registerTabCommands,
29
+ renameTab,
30
+ replaceAllTabs,
31
+ setTabPinned,
32
+ setWorkspaceProject,
33
+ sidePane,
34
+ splitRight,
35
+ tabCommands,
36
+ tabIsLive,
37
+ takeClosedTabPath,
38
+ workspace
39
+ } from "./studio-trxrabqf.js";
40
+ import"./studio-wcy8trfx.js";
41
+ import"./studio-5ehhackm.js";
42
+ import"./studio-p4ngc046.js";
43
+ import"./studio-xrapxwwc.js";
44
+ import"./studio-q7v10cg2.js";
45
+ import"./studio-ahn3pdgx.js";
46
+ import"./studio-9ab8gqsm.js";
47
+ import"./studio-a0tswy0w.js";
48
+ export {
49
+ MAX_PANES,
50
+ PRIMARY_PANE,
51
+ SECONDARY_PANE,
52
+ activateTab,
53
+ activePane,
54
+ activeTab,
55
+ closeAllTabs,
56
+ closePane,
57
+ closeTab,
58
+ cycleTab,
59
+ detachTab,
60
+ endTabCycle,
61
+ focusOtherPane,
62
+ focusPane,
63
+ insertIntoPane,
64
+ isPaneFocused,
65
+ isTabActive,
66
+ moveTab,
67
+ moveTabToPane,
68
+ openTab,
69
+ paneById,
70
+ paneCommands,
71
+ paneOfTab,
72
+ promoteDirtyPreviewTabs,
73
+ promoteTab,
74
+ receivingPane,
75
+ registerTabCommands,
76
+ renameTab,
77
+ replaceAllTabs,
78
+ setTabPinned,
79
+ setWorkspaceProject,
80
+ sidePane,
81
+ splitRight,
82
+ tabCommands,
83
+ tabIsLive,
84
+ takeClosedTabPath,
85
+ workspace
86
+ };
87
+
88
+ //# debugId=E6EEFAD4E898180964756E2164756E21
89
+ //# sourceMappingURL=workspace-fjx52ryv.js.map