@jxsuite/studio 6.1.1 → 8.0.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 (785) hide show
  1. package/README.md +5 -5
  2. package/dist/chunks/2020-5wtzce5g.js +4 -0
  3. package/dist/chunks/{action-group-2mqby73c.js → action-group-4aan7g6g.js} +3 -3
  4. package/dist/chunks/adapter-5tphg7xe.js +4 -0
  5. package/dist/chunks/add-new-flow-psym14sn.js +4 -0
  6. package/dist/chunks/cf-account-picker-haqazq5r.js +4 -0
  7. package/dist/chunks/cf-settings-h2wrh6hq.js +4 -0
  8. package/dist/chunks/color-area-6rbra5dy.js +4 -0
  9. package/dist/chunks/color-field-gy56c94g.js +4 -0
  10. package/dist/chunks/color-m7r1vk54.js +4 -0
  11. package/dist/chunks/color-slider-sqqdyf6c.js +4 -0
  12. package/dist/chunks/combobox-72h32ejk.js +4 -0
  13. package/dist/chunks/components-r22xca09.js +4 -0
  14. package/dist/chunks/content-source-mmppmcyg.js +4 -0
  15. package/dist/chunks/convert-to-repeater-he70fc2b.js +4 -0
  16. package/dist/chunks/dialog-c4x05vyx.js +4 -0
  17. package/dist/chunks/editor-ccd9jwsa.js +4 -0
  18. package/dist/chunks/entry-commands-6qxz9e8p.js +4 -0
  19. package/dist/chunks/extension-sections-0egb88dm.js +4 -0
  20. package/dist/chunks/file-ops-qnab36ek.js +4 -0
  21. package/dist/chunks/files-rcn56qvm.js +4 -0
  22. package/dist/chunks/format-host-yxz0kjjs.js +4 -0
  23. package/dist/chunks/fs-events-d1qxq4z4.js +4 -0
  24. package/dist/chunks/grid-open-4z1g062t.js +4 -0
  25. package/dist/chunks/grid-view-qg1b5eqx.js +51 -0
  26. package/dist/chunks/icons-63bjtbs7.js +4 -0
  27. package/dist/chunks/iframe-entry-2zggzajv.js +5 -0
  28. package/dist/chunks/iframe-entry-76j8vwwx.js +5 -0
  29. package/dist/chunks/iframe-entry-99nr5zfb.js +5 -0
  30. package/dist/chunks/iframe-entry-pkgmcgp0.js +5 -0
  31. package/dist/chunks/iframe-host-ssv7kyj0.js +4 -0
  32. package/dist/chunks/{index-2veqmnhr.js → index-32eqzv1k.js} +3 -3
  33. package/dist/chunks/index-f0jn7nnp.js +4 -0
  34. package/dist/chunks/{javascript-8nbvs12s.js → javascript-pjp734q4.js} +3 -3
  35. package/dist/chunks/jsonMode-njkvsa02.js +13 -0
  36. package/dist/chunks/jx-validate-ttasrbh7.js +4 -0
  37. package/dist/chunks/layers-bgyr11tr.js +4 -0
  38. package/dist/chunks/layers-panel-7ez66zeq.js +4 -0
  39. package/dist/chunks/listbox-c421cf8c.js +4 -0
  40. package/dist/chunks/lit-html-v9gh687x.js +4 -0
  41. package/dist/chunks/media-library-sq468wts.js +4 -0
  42. package/dist/chunks/media-picker-shfe59pt.js +4 -0
  43. package/dist/chunks/menu-bdpzbfvs.js +4 -0
  44. package/dist/chunks/monaco-binding-vq1hgnn0.js +4 -0
  45. package/dist/chunks/monaco-buffer-3afgwvbp.js +4 -0
  46. package/dist/chunks/monaco-setup-xrd2cbkp.js +4 -0
  47. package/dist/chunks/notify-kzrjr3fv.js +4 -0
  48. package/dist/chunks/number-field-y62xq0ty.js +4 -0
  49. package/dist/chunks/parse-v77xtwv7.js +4 -0
  50. package/dist/chunks/platform-7v4rtd7m.js +4 -0
  51. package/dist/chunks/popover-b89sfej7.js +4 -0
  52. package/dist/chunks/publish-panel-2z9gw8ee.js +4 -0
  53. package/dist/chunks/publish-quick-qx2455cj.js +4 -0
  54. package/dist/chunks/publish-workspace-wrc1dgwx.js +4 -0
  55. package/dist/chunks/quick-search-n0t0eqxb.js +4 -0
  56. package/dist/chunks/references-9547rg5s.js +4 -0
  57. package/dist/chunks/right-panel-wsgnr9pn.js +4 -0
  58. package/dist/chunks/select-rzds841e.js +4 -0
  59. package/dist/chunks/source-control-kwktr9y6.js +4 -0
  60. package/dist/chunks/split-c9zfdgxf.js +4 -0
  61. package/dist/chunks/studio-03ct6yfv.js +9 -0
  62. package/dist/chunks/studio-07rcfje3.js +5 -0
  63. package/dist/chunks/studio-3e54qh39.js +7 -0
  64. package/dist/chunks/studio-3exxhz5g.js +5 -0
  65. package/dist/chunks/studio-3q40e3rj.js +5 -0
  66. package/dist/chunks/studio-3qeh9t0h.js +6 -0
  67. package/dist/chunks/studio-3qqjeep5.js +6 -0
  68. package/dist/chunks/studio-43sd2mam.js +4 -0
  69. package/dist/chunks/studio-4hp8pkyt.js +5 -0
  70. package/dist/chunks/studio-58xg6j2q.js +9 -0
  71. package/dist/chunks/studio-5g0rprdt.js +7 -0
  72. package/dist/chunks/studio-6m380wp7.js +5 -0
  73. package/dist/chunks/studio-80jyh1xh.js +4 -0
  74. package/dist/chunks/studio-83mk4bgg.js +9 -0
  75. package/dist/chunks/{studio-kggey1jt.js → studio-881z1xrx.js} +4 -4
  76. package/dist/chunks/studio-8m0y2qe7.js +5 -0
  77. package/dist/chunks/studio-8tr6cfrc.js +5 -0
  78. package/dist/chunks/studio-8vcvfs7r.js +6 -0
  79. package/dist/chunks/studio-9tmebf0s.js +5 -0
  80. package/dist/chunks/studio-a2bvaptz.js +5 -0
  81. package/dist/chunks/studio-b7y5mr30.js +5 -0
  82. package/dist/chunks/studio-bavb31r0.js +5 -0
  83. package/dist/chunks/studio-bbe4c90a.js +5 -0
  84. package/dist/chunks/studio-c05wdnt3.js +5 -0
  85. package/dist/chunks/studio-ccv2svc6.js +5 -0
  86. package/dist/chunks/studio-d5grtb9e.js +16 -0
  87. package/dist/chunks/studio-df0baea9.js +5 -0
  88. package/dist/chunks/studio-dgk4dqtx.js +7 -0
  89. package/dist/chunks/studio-e1g64q43.js +5 -0
  90. package/dist/chunks/studio-ed1hp6zf.js +6 -0
  91. package/dist/chunks/studio-ed3xx40h.js +7 -0
  92. package/dist/chunks/studio-f14e1zdj.js +5 -0
  93. package/dist/chunks/studio-fbhxxc5f.js +5 -0
  94. package/dist/chunks/studio-fyh0jc96.js +5 -0
  95. package/dist/chunks/studio-gcxk20n7.js +5 -0
  96. package/dist/chunks/studio-jaaz8ce9.js +5 -0
  97. package/dist/chunks/{studio-8grwxtqk.js → studio-jcnsdaep.js} +4 -4
  98. package/dist/chunks/studio-jsgf2q5k.js +7 -0
  99. package/dist/chunks/{studio-1q1sh2ax.js → studio-k3xxbagr.js} +3 -3
  100. package/dist/chunks/studio-k7evxqh4.js +5 -0
  101. package/dist/chunks/studio-kt3pjkwd.js +5 -0
  102. package/dist/chunks/studio-m8g16bgz.js +5 -0
  103. package/dist/chunks/studio-mn0476ag.js +5 -0
  104. package/dist/chunks/studio-mx1smyq0.js +5 -0
  105. package/dist/chunks/studio-n0c5h6mf.js +5 -0
  106. package/dist/chunks/{studio-rv11kfwa.js → studio-nh6d342n.js} +7 -7
  107. package/dist/chunks/studio-nqxqf8p2.js +4 -0
  108. package/dist/chunks/studio-p4nrkvqr.js +5 -0
  109. package/dist/chunks/{studio-h46vtzk8.js → studio-pbxa5fpc.js} +4 -4
  110. package/dist/chunks/studio-pgmvdv7z.js +7 -0
  111. package/dist/chunks/studio-ph84avkf.js +5 -0
  112. package/dist/chunks/{studio-wszjyh0j.js → studio-q0mvbaq6.js} +4 -4
  113. package/dist/chunks/studio-q0tccd43.js +5 -0
  114. package/dist/chunks/studio-q7rtx6zq.js +14 -0
  115. package/dist/chunks/{studio-pre0skq6.js → studio-qgh13jtz.js} +4 -4
  116. package/dist/chunks/studio-qmn1xc24.js +5 -0
  117. package/dist/chunks/studio-qwdqwkj0.js +5 -0
  118. package/dist/chunks/{studio-t6b6qe31.js → studio-r5qy30vx.js} +4 -4
  119. package/dist/chunks/studio-rj9eamf8.js +5 -0
  120. package/dist/chunks/studio-rptgsk96.js +5 -0
  121. package/dist/chunks/studio-rthyg42z.js +928 -0
  122. package/dist/chunks/studio-s19tp1xr.js +5 -0
  123. package/dist/chunks/studio-s32578pn.js +5 -0
  124. package/dist/chunks/studio-svb7yyve.js +5 -0
  125. package/dist/chunks/studio-syreb644.js +5 -0
  126. package/dist/chunks/studio-tf9jryb1.js +10 -0
  127. package/dist/chunks/studio-tfkznv39.js +5 -0
  128. package/dist/chunks/studio-tft6r105.js +5 -0
  129. package/dist/chunks/studio-txf2kysx.js +5 -0
  130. package/dist/chunks/studio-v8867ddv.js +12 -0
  131. package/dist/chunks/studio-vxq7fcvv.js +5 -0
  132. package/dist/chunks/studio-w4rz9hdk.js +5 -0
  133. package/dist/chunks/studio-wbcjbhy1.js +9 -0
  134. package/dist/chunks/studio-wc649wss.js +5 -0
  135. package/dist/chunks/studio-wys23mxz.js +5 -0
  136. package/dist/chunks/studio-x1x167jh.js +5 -0
  137. package/dist/chunks/studio-x9hsze61.js +5 -0
  138. package/dist/chunks/studio-y0n7yxea.js +9 -0
  139. package/dist/chunks/studio-y3ahhdpx.js +5 -0
  140. package/dist/chunks/studio-z97c48fk.js +5 -0
  141. package/dist/chunks/studio-zat62m0c.js +5 -0
  142. package/dist/chunks/studio-zcd2e7yz.js +5 -0
  143. package/dist/chunks/studio-zz9qe3rw.js +64 -0
  144. package/dist/chunks/swatch-group-ewh24n1f.js +4 -0
  145. package/dist/chunks/tabs-f5cw3tgp.js +4 -0
  146. package/dist/chunks/textfield-wewc8rq2.js +4 -0
  147. package/dist/chunks/toast-1gv0h53h.js +4 -0
  148. package/dist/chunks/toast-host-1yg5ar8d.js +4 -0
  149. package/dist/chunks/{toolbar-2nnzqhrj.js → toolbar-44cm5cta.js} +3 -3
  150. package/dist/chunks/tooltip-yypz28gq.js +4 -0
  151. package/dist/chunks/tree-9xa4hm7n.js +4 -0
  152. package/dist/chunks/tsMode-epyfz1hv.js +14 -0
  153. package/dist/chunks/workspace-dz7nxfhv.js +4 -0
  154. package/dist/chunks/workspace-home-xsd7hkjw.js +4 -0
  155. package/dist/chunks/ws-client-bv552sfx.js +4 -0
  156. package/dist/iframe-entry.js +20 -16
  157. package/dist/manifest.json +77 -63
  158. package/dist/studio.js +106 -107
  159. package/dist/workers/ts.worker.js +3 -3
  160. package/package.json +17 -16
  161. package/src/about/about-modal.ts +4 -3
  162. package/src/account/action-flow.ts +45 -38
  163. package/src/account-status.ts +7 -2
  164. package/src/browse/component-examples.ts +272 -0
  165. package/src/browse/library-commands.ts +64 -104
  166. package/src/browse/library-layouts.ts +270 -53
  167. package/src/browse/library-model.ts +194 -134
  168. package/src/browse/library-pane.ts +748 -440
  169. package/src/browse/library-preview.ts +161 -26
  170. package/src/browse/library-source.ts +308 -41
  171. package/src/browse/preview-root.ts +78 -0
  172. package/src/browse/preview-style.ts +155 -0
  173. package/src/canvas/asset-refs.ts +40 -10
  174. package/src/canvas/asset-resolve.ts +19 -23
  175. package/src/canvas/canvas-helpers.ts +7 -6
  176. package/src/canvas/canvas-live-render.ts +260 -77
  177. package/src/canvas/canvas-origin.ts +37 -12
  178. package/src/canvas/canvas-page-context.ts +112 -0
  179. package/src/canvas/canvas-patcher.ts +30 -30
  180. package/src/canvas/canvas-perf.ts +11 -5
  181. package/src/canvas/canvas-render.ts +175 -148
  182. package/src/canvas/canvas-surface.ts +5 -3
  183. package/src/canvas/canvas-utils.ts +147 -61
  184. package/src/canvas/dialog-path.ts +9 -4
  185. package/src/canvas/dialog-state.ts +1 -2
  186. package/src/canvas/diff-marks.ts +9 -16
  187. package/src/canvas/diff-toolbar.ts +8 -7
  188. package/src/canvas/edit-width-drag.ts +4 -1
  189. package/src/canvas/edit-width.ts +1 -3
  190. package/src/canvas/iframe-channel.ts +27 -13
  191. package/src/canvas/iframe-drop.ts +120 -12
  192. package/src/canvas/iframe-editable-root.ts +29 -16
  193. package/src/canvas/iframe-entry.ts +104 -75
  194. package/src/canvas/iframe-eval.ts +73 -49
  195. package/src/canvas/iframe-host.ts +269 -158
  196. package/src/canvas/iframe-inline-edit.ts +49 -30
  197. package/src/canvas/iframe-insert.ts +5 -4
  198. package/src/canvas/iframe-interaction.ts +30 -25
  199. package/src/canvas/iframe-keys.ts +11 -0
  200. package/src/canvas/iframe-overlay.ts +1 -1
  201. package/src/canvas/iframe-patch.ts +25 -21
  202. package/src/canvas/iframe-position.ts +12 -6
  203. package/src/canvas/iframe-protocol.ts +36 -21
  204. package/src/canvas/iframe-render.ts +84 -35
  205. package/src/canvas/iframe-slash.ts +24 -11
  206. package/src/canvas/iframe-subtree.ts +10 -3
  207. package/src/canvas/npm-modules.ts +22 -0
  208. package/src/canvas/path-mapping.ts +19 -12
  209. package/src/canvas/popover-path.ts +7 -3
  210. package/src/canvas/popover-state.ts +1 -2
  211. package/src/canvas/preview-navigate.ts +16 -0
  212. package/src/canvas/repeater-sources.ts +200 -0
  213. package/src/canvas/serialize-scope.ts +13 -5
  214. package/src/canvas/stage-scrollbar.ts +7 -2
  215. package/src/canvas/surface-registry.ts +27 -3
  216. package/src/collab/collab-commands.ts +7 -2
  217. package/src/collab/collab-session.ts +84 -45
  218. package/src/collab/collab-state.ts +4 -3
  219. package/src/collab/monaco-binding.ts +16 -13
  220. package/src/collab/monaco-cursors.ts +5 -2
  221. package/src/commands/app-commands.ts +16 -6
  222. package/src/commands/budget.ts +13 -11
  223. package/src/commands/command-args.ts +103 -71
  224. package/src/commands/context.ts +55 -28
  225. package/src/commands/defaults.ts +69 -45
  226. package/src/commands/keymap.ts +56 -43
  227. package/src/commands/levels.ts +14 -8
  228. package/src/commands/live-context.ts +9 -7
  229. package/src/commands/reference.ts +2 -1
  230. package/src/commands/registry.ts +22 -11
  231. package/src/commands/run-reported.ts +15 -10
  232. package/src/component-props.ts +46 -30
  233. package/src/content/collection-match.ts +11 -9
  234. package/src/content/collection-pages.ts +412 -0
  235. package/src/content/content-collections.ts +270 -0
  236. package/src/content/draft-state.ts +4 -3
  237. package/src/content/entry-commands.ts +54 -62
  238. package/src/content/entry-editor.ts +137 -32
  239. package/src/content/entry-fields.ts +25 -8
  240. package/src/content/entry-inspector.ts +225 -0
  241. package/src/content/entry-model.ts +38 -15
  242. package/src/content/entry-open.ts +80 -0
  243. package/src/content/entry-summaries.ts +440 -0
  244. package/src/content/file-record-ids.ts +80 -0
  245. package/src/content/file-records.ts +125 -0
  246. package/src/content/page-summaries.ts +129 -0
  247. package/src/content/record-entry.ts +201 -0
  248. package/src/content/writing-banner.ts +177 -0
  249. package/src/create/add-new-commands.ts +185 -0
  250. package/src/create/add-new-flow.ts +1116 -0
  251. package/src/create/add-new.ts +1014 -0
  252. package/src/create/element-name.ts +121 -0
  253. package/src/editor/canvas-context-menu.ts +1 -2
  254. package/src/editor/canvas-slash-bridge.ts +3 -6
  255. package/src/editor/content-slice.ts +16 -14
  256. package/src/editor/context-menu.ts +35 -22
  257. package/src/editor/convert-targets.ts +30 -35
  258. package/src/editor/convert-to-component.ts +78 -48
  259. package/src/editor/convert-to-repeater.ts +34 -22
  260. package/src/editor/editable-tags.ts +17 -2
  261. package/src/editor/file-drop-action.ts +29 -22
  262. package/src/editor/inline-edit-apply.ts +79 -17
  263. package/src/editor/inline-edit.ts +76 -50
  264. package/src/editor/inline-format.ts +59 -56
  265. package/src/editor/inline-link.ts +40 -15
  266. package/src/editor/insert-component.ts +91 -0
  267. package/src/editor/insert-zone-action.ts +14 -5
  268. package/src/editor/merge-tags.ts +58 -19
  269. package/src/editor/repeater-scope.ts +39 -28
  270. package/src/editor/shortcuts.ts +76 -42
  271. package/src/editor/slash-menu.ts +52 -14
  272. package/src/files/asset-versions.ts +4 -4
  273. package/src/files/components.ts +89 -20
  274. package/src/files/elements.ts +5 -6
  275. package/src/files/file-ops.ts +92 -41
  276. package/src/files/files.ts +248 -239
  277. package/src/files/fs-events.ts +18 -7
  278. package/src/files/media-meta.ts +97 -2
  279. package/src/files/media-paths.ts +3 -0
  280. package/src/files/media-types.ts +55 -0
  281. package/src/files/media-upload.ts +209 -52
  282. package/src/files/new-file-name.ts +156 -0
  283. package/src/files/serialize-document.ts +15 -5
  284. package/src/format/constraints.ts +1 -1
  285. package/src/format/convert-file.ts +27 -13
  286. package/src/format/format-choices.ts +2 -1
  287. package/src/format/format-host.ts +91 -50
  288. package/src/github/github-auth-status.ts +27 -3
  289. package/src/github/github-auth.ts +21 -11
  290. package/src/github/github-publish.ts +28 -23
  291. package/src/grid/cell-editors.ts +46 -31
  292. package/src/grid/cell-popovers.ts +5 -3
  293. package/src/grid/edit-buffer.ts +10 -9
  294. package/src/grid/grid-controller.ts +25 -23
  295. package/src/grid/grid-layout.ts +21 -5
  296. package/src/grid/grid-open.ts +3 -33
  297. package/src/grid/grid-panel.ts +65 -6
  298. package/src/grid/grid-reveal.ts +34 -0
  299. package/src/grid/grid-source.ts +9 -31
  300. package/src/grid/grid-view.ts +45 -23
  301. package/src/grid/redirects-grid.ts +14 -5
  302. package/src/grid/redirects.ts +16 -14
  303. package/src/grid/schema-columns.ts +25 -19
  304. package/src/grid/sources/connector-source.ts +47 -20
  305. package/src/grid/sources/content-source.ts +100 -31
  306. package/src/grid/sources/csv-file-source.ts +2 -2
  307. package/src/grid/tabulator-tables.d.ts +61 -34
  308. package/src/hosting/document.ts +2 -2
  309. package/src/hosting/stage.ts +7 -7
  310. package/src/i18n/i18n-commands.ts +3 -3
  311. package/src/media/media-commands.ts +181 -0
  312. package/src/media/media-library-model.ts +232 -0
  313. package/src/media/media-library.ts +1283 -0
  314. package/src/media/media-pane.ts +51 -20
  315. package/src/new-project/add-repo-modal.ts +20 -19
  316. package/src/new-project/import-tab.ts +10 -14
  317. package/src/new-project/location-fields.ts +2 -1
  318. package/src/new-project/new-project-modal.ts +12 -9
  319. package/src/packages/jxsuite-update.ts +4 -3
  320. package/src/packages/pull-package-sync.ts +26 -25
  321. package/src/page-params.ts +97 -68
  322. package/src/panels/activity-panel.ts +38 -14
  323. package/src/panels/ai-chat/attached-context.ts +13 -7
  324. package/src/panels/ai-chat/chat-markdown.ts +8 -8
  325. package/src/panels/ai-chat/chat-view.ts +80 -73
  326. package/src/panels/ai-chat/composer.ts +30 -33
  327. package/src/panels/ai-chat/sessions-view.ts +1 -2
  328. package/src/panels/ai-panel.ts +23 -20
  329. package/src/panels/block-action-bar.ts +57 -46
  330. package/src/panels/bottom-dock.ts +5 -3
  331. package/src/panels/canvas-dnd-bridge.ts +36 -26
  332. package/src/panels/chat-panel.ts +6 -6
  333. package/src/panels/collections-panel.ts +306 -0
  334. package/src/panels/component-preview.ts +35 -13
  335. package/src/panels/data-explorer.ts +63 -26
  336. package/src/panels/data-grid.ts +18 -11
  337. package/src/panels/dnd.ts +115 -138
  338. package/src/panels/editors.ts +52 -21
  339. package/src/panels/elements-panel.ts +19 -5
  340. package/src/panels/empty-state.ts +2 -2
  341. package/src/panels/events-panel.ts +84 -69
  342. package/src/panels/formula-workspace.ts +78 -54
  343. package/src/panels/frontmatter-fields.ts +33 -28
  344. package/src/panels/git-diff-open.ts +10 -6
  345. package/src/panels/head-panel.ts +488 -202
  346. package/src/panels/i18n-panel.ts +20 -12
  347. package/src/panels/imports-panel.ts +25 -47
  348. package/src/panels/jump-bar.ts +75 -31
  349. package/src/panels/layers-panel.ts +130 -101
  350. package/src/panels/left-panel.ts +25 -11
  351. package/src/panels/navigator-panels.ts +23 -11
  352. package/src/panels/pane-context.ts +140 -49
  353. package/src/panels/pane-grid.ts +55 -26
  354. package/src/panels/panel-registry.ts +36 -46
  355. package/src/panels/properties-panel.ts +182 -124
  356. package/src/panels/quick-search.ts +53 -31
  357. package/src/panels/right-panel.ts +201 -45
  358. package/src/panels/seo-modal.ts +54 -125
  359. package/src/panels/settings-menu.ts +63 -61
  360. package/src/panels/settings-pane.ts +268 -162
  361. package/src/panels/signals-panel.ts +156 -135
  362. package/src/panels/site-model.ts +367 -0
  363. package/src/panels/site-panel.ts +638 -0
  364. package/src/panels/statement-editor.ts +230 -140
  365. package/src/panels/style-panel.ts +253 -206
  366. package/src/panels/style-utils.ts +114 -51
  367. package/src/panels/stylebook-doc.ts +195 -60
  368. package/src/panels/stylebook-layers-panel.ts +48 -89
  369. package/src/panels/stylebook-panel.ts +60 -27
  370. package/src/panels/styles-panel.ts +327 -0
  371. package/src/panels/tab-drop.ts +27 -11
  372. package/src/panels/tab-strip.ts +143 -49
  373. package/src/platform-errors.ts +57 -43
  374. package/src/platform.ts +59 -31
  375. package/src/platforms/cloud.ts +373 -176
  376. package/src/platforms/default-platform.ts +14 -8
  377. package/src/platforms/devserver.ts +180 -142
  378. package/src/platforms/read-batcher.ts +16 -8
  379. package/src/project-list.ts +2 -1
  380. package/src/publish/deploy-checklist.ts +20 -9
  381. package/src/publish/pages-service.ts +66 -27
  382. package/src/publish/publish-changes.ts +491 -0
  383. package/src/publish/publish-commands.ts +88 -22
  384. package/src/publish/publish-ids.ts +49 -0
  385. package/src/publish/publish-panel.ts +10 -6
  386. package/src/publish/publish-quick.ts +148 -0
  387. package/src/publish/publish-workspace.ts +926 -0
  388. package/src/publish/source-control.ts +907 -0
  389. package/src/recent-projects.ts +15 -8
  390. package/src/resize-edges.ts +26 -36
  391. package/src/services/a11y-report.ts +26 -19
  392. package/src/services/agent-seed.ts +23 -11
  393. package/src/services/ai-ask.ts +9 -12
  394. package/src/services/ai-command-tools.ts +68 -62
  395. package/src/services/ai-import-tools.ts +80 -67
  396. package/src/services/ai-models.ts +17 -13
  397. package/src/services/ai-project-tools.ts +68 -32
  398. package/src/services/ai-session-store.ts +19 -10
  399. package/src/services/ai-system-prompt.ts +46 -20
  400. package/src/services/ai-tools.ts +71 -27
  401. package/src/services/ai-write-report.ts +20 -12
  402. package/src/services/ai-writes.ts +4 -4
  403. package/src/services/automation.ts +74 -51
  404. package/src/services/cem-export.ts +149 -58
  405. package/src/services/cf-settings.ts +4 -4
  406. package/src/services/clock.ts +6 -1
  407. package/src/services/code-services.ts +37 -31
  408. package/src/services/connection.ts +2 -2
  409. package/src/services/context-manager.ts +14 -10
  410. package/src/services/context-resolver.ts +20 -8
  411. package/src/services/data-service.ts +19 -15
  412. package/src/services/directory-picker.ts +20 -14
  413. package/src/services/document-assistant.ts +39 -19
  414. package/src/services/gated-registry.ts +10 -6
  415. package/src/services/harness/chat-reducer.ts +23 -1
  416. package/src/services/import-client.ts +91 -38
  417. package/src/services/import-seed.ts +8 -2
  418. package/src/services/jx-validate.ts +28 -31
  419. package/src/services/live-preview.ts +0 -0
  420. package/src/services/live-surfaces.ts +6 -3
  421. package/src/services/model-uri.ts +10 -2
  422. package/src/services/module-preloads.ts +12 -8
  423. package/src/services/monaco-buffer.ts +43 -24
  424. package/src/services/monaco-lazy.ts +7 -8
  425. package/src/services/monaco-setup.ts +23 -16
  426. package/src/services/notify.ts +44 -17
  427. package/src/services/popover-report.ts +25 -10
  428. package/src/services/preview-eval.ts +20 -8
  429. package/src/services/profile.ts +13 -6
  430. package/src/services/project-path.ts +13 -10
  431. package/src/services/references.ts +0 -0
  432. package/src/services/render-critic.ts +29 -9
  433. package/src/services/settings/definitions.ts +25 -14
  434. package/src/services/settings/kernel.ts +13 -4
  435. package/src/services/settings/write-queue.ts +9 -9
  436. package/src/services/token-lint.ts +12 -10
  437. package/src/services/tool-executor.ts +17 -5
  438. package/src/services/tool-outcomes.ts +44 -24
  439. package/src/services/trusted-types.ts +24 -7
  440. package/src/settings/contexts-section.ts +11 -8
  441. package/src/settings/contributed-section.ts +128 -70
  442. package/src/settings/css-vars-editor.ts +119 -32
  443. package/src/settings/defs-editor.ts +38 -35
  444. package/src/settings/developer-panels.ts +43 -0
  445. package/src/settings/extension-rows.ts +16 -8
  446. package/src/settings/extension-sections.ts +42 -14
  447. package/src/settings/extensions-section.ts +4 -1
  448. package/src/settings/general-settings.ts +101 -28
  449. package/src/settings/locales-section.ts +20 -12
  450. package/src/settings/preferences-dialog.ts +17 -7
  451. package/src/settings/preferences-keymap.ts +7 -5
  452. package/src/settings/preferences-sections.ts +11 -5
  453. package/src/settings/project-sections.ts +28 -11
  454. package/src/settings/schema-field-ui.ts +12 -1
  455. package/src/settings/section-registry.ts +116 -11
  456. package/src/settings/settings-dialog.ts +192 -0
  457. package/src/settings/settings-document.ts +186 -166
  458. package/src/shell/tree.ts +6 -5
  459. package/src/shell.ts +536 -477
  460. package/src/site-context.ts +101 -32
  461. package/src/state.ts +68 -57
  462. package/src/store.ts +54 -34
  463. package/src/studio.ts +219 -116
  464. package/src/style/live-preview.ts +1 -1
  465. package/src/style/project-styles.ts +40 -7
  466. package/src/style/stylebook-specimens.ts +89 -0
  467. package/src/style/stylebook-target.ts +26 -0
  468. package/src/style/tag-inheritance.ts +105 -0
  469. package/src/style/token-ref.ts +5 -4
  470. package/src/style/variables-focus.ts +61 -0
  471. package/src/style/variables-view.ts +235 -0
  472. package/src/surfaces/about.ts +18 -19
  473. package/src/surfaces/add-new.json +1482 -0
  474. package/src/surfaces/add-new.ts +325 -0
  475. package/src/surfaces/add-repo.ts +17 -19
  476. package/src/surfaces/ai-chat.ts +33 -38
  477. package/src/surfaces/ai-credentials-form.ts +6 -16
  478. package/src/surfaces/ai-managed-connect.ts +3 -4
  479. package/src/surfaces/ai-model-picker.ts +3 -5
  480. package/src/surfaces/block-action-bar.ts +22 -11
  481. package/src/surfaces/boot-failure.json +4 -3
  482. package/src/surfaces/boot-failure.ts +4 -5
  483. package/src/surfaces/bottom-dock.json +1 -1
  484. package/src/surfaces/bottom-dock.ts +9 -18
  485. package/src/surfaces/canvas-stage.json +30 -19
  486. package/src/surfaces/canvas-stage.ts +17 -16
  487. package/src/surfaces/cf-account-picker.ts +17 -18
  488. package/src/surfaces/collections-panel.json +615 -0
  489. package/src/surfaces/collections-panel.ts +168 -0
  490. package/src/surfaces/commandbar.json +241 -96
  491. package/src/surfaces/commandbar.ts +145 -105
  492. package/src/surfaces/convert-repeater.ts +17 -19
  493. package/src/surfaces/data-actions.ts +9 -7
  494. package/src/surfaces/dialog.ts +26 -28
  495. package/src/surfaces/diff-toolbar.ts +9 -7
  496. package/src/surfaces/empty-state.json +1 -1
  497. package/src/surfaces/empty-state.ts +7 -10
  498. package/src/surfaces/entry-editor.json +136 -0
  499. package/src/surfaces/entry-editor.ts +35 -11
  500. package/src/surfaces/entry-inspector.json +371 -0
  501. package/src/surfaces/entry-inspector.ts +143 -0
  502. package/src/surfaces/expression-editor.ts +11 -25
  503. package/src/surfaces/files-panel.ts +27 -14
  504. package/src/surfaces/formula-palette.ts +4 -5
  505. package/src/surfaces/github-auth.ts +16 -20
  506. package/src/surfaces/github-publish.ts +17 -22
  507. package/src/surfaces/grid-cell.ts +30 -31
  508. package/src/surfaces/grid-open.ts +10 -14
  509. package/src/surfaces/grid-panel.ts +13 -9
  510. package/src/surfaces/grid-replace.ts +13 -13
  511. package/src/surfaces/grid-views.ts +15 -18
  512. package/src/surfaces/inspector-dock.json +162 -14
  513. package/src/surfaces/inspector-dock.ts +59 -31
  514. package/src/surfaces/jump-bar.ts +5 -6
  515. package/src/surfaces/jxsuite-update.ts +16 -22
  516. package/src/surfaces/library-pane.json +670 -437
  517. package/src/surfaces/library-pane.ts +111 -77
  518. package/src/surfaces/logic-panel.ts +17 -30
  519. package/src/surfaces/logic-workspace.ts +13 -15
  520. package/src/surfaces/media-browser.json +62 -6
  521. package/src/surfaces/media-browser.ts +26 -11
  522. package/src/surfaces/media-field.json +1 -1
  523. package/src/surfaces/media-field.ts +4 -5
  524. package/src/surfaces/media-library.json +1586 -0
  525. package/src/surfaces/media-library.ts +282 -0
  526. package/src/surfaces/media-pane.ts +8 -7
  527. package/src/surfaces/media-pick-dialog.json +71 -0
  528. package/src/surfaces/media-pick-dialog.ts +132 -0
  529. package/src/surfaces/menu.ts +47 -23
  530. package/src/surfaces/navigator-dock.ts +11 -12
  531. package/src/surfaces/new-project.ts +27 -26
  532. package/src/surfaces/pane-context.json +144 -77
  533. package/src/surfaces/pane-context.ts +44 -25
  534. package/src/surfaces/pane-grid.ts +15 -10
  535. package/src/surfaces/panel-activity.ts +5 -6
  536. package/src/surfaces/panel-data.ts +3 -4
  537. package/src/surfaces/panel-deploy-checklist.json +12 -6
  538. package/src/surfaces/panel-deploy-checklist.ts +8 -7
  539. package/src/surfaces/panel-elements.ts +5 -7
  540. package/src/surfaces/panel-i18n.ts +5 -7
  541. package/src/surfaces/panel-imports.ts +6 -13
  542. package/src/surfaces/panel-outline.ts +25 -19
  543. package/src/surfaces/panel-page.json +72 -2
  544. package/src/surfaces/panel-page.ts +49 -25
  545. package/src/surfaces/panel-problems.ts +5 -7
  546. package/src/surfaces/panel-signals.json +1 -1
  547. package/src/surfaces/panel-signals.ts +25 -39
  548. package/src/surfaces/panel-stylebook-layers.json +71 -204
  549. package/src/surfaces/panel-stylebook-layers.ts +5 -29
  550. package/src/surfaces/preferences.json +120 -48
  551. package/src/surfaces/preferences.ts +29 -11
  552. package/src/surfaces/progress-modal.ts +15 -9
  553. package/src/surfaces/properties-panel.json +1 -1
  554. package/src/surfaces/properties-panel.ts +20 -42
  555. package/src/surfaces/publish-quick.json +428 -0
  556. package/src/surfaces/publish-quick.ts +165 -0
  557. package/src/surfaces/publish-workspace.json +2892 -0
  558. package/src/surfaces/publish-workspace.ts +391 -0
  559. package/src/surfaces/publish.ts +18 -18
  560. package/src/surfaces/push-plan.ts +7 -8
  561. package/src/surfaces/rail.json +1 -159
  562. package/src/surfaces/rail.ts +22 -79
  563. package/src/surfaces/reference-field.ts +11 -15
  564. package/src/surfaces/schema-builder.ts +16 -22
  565. package/src/surfaces/schema-form.json +10 -2
  566. package/src/surfaces/schema-form.ts +17 -25
  567. package/src/surfaces/secret-field.ts +9 -6
  568. package/src/surfaces/seo.json +1 -1
  569. package/src/surfaces/seo.ts +21 -15
  570. package/src/surfaces/settings-contexts.ts +9 -7
  571. package/src/surfaces/settings-contributed.json +5 -5
  572. package/src/surfaces/settings-contributed.ts +32 -12
  573. package/src/surfaces/settings-css-vars.json +44 -36
  574. package/src/surfaces/settings-css-vars.ts +82 -16
  575. package/src/surfaces/settings-defs.json +2 -2
  576. package/src/surfaces/settings-defs.ts +17 -21
  577. package/src/surfaces/settings-deploy.json +2 -15
  578. package/src/surfaces/settings-deploy.ts +9 -16
  579. package/src/surfaces/settings-dialog.json +51 -0
  580. package/src/surfaces/settings-dialog.ts +169 -0
  581. package/src/surfaces/settings-extensions.ts +5 -6
  582. package/src/surfaces/settings-head.ts +33 -39
  583. package/src/surfaces/settings-locales.ts +8 -20
  584. package/src/surfaces/settings-overview.json +3 -3
  585. package/src/surfaces/settings-overview.ts +14 -8
  586. package/src/surfaces/settings-packages.ts +8 -7
  587. package/src/surfaces/settings-pane.json +269 -46
  588. package/src/surfaces/settings-pane.ts +88 -36
  589. package/src/surfaces/settings-rawjson.ts +5 -6
  590. package/src/surfaces/shell.json +2 -1
  591. package/src/surfaces/shell.ts +1 -2
  592. package/src/surfaces/site-panel.json +1029 -0
  593. package/src/surfaces/site-panel.ts +233 -0
  594. package/src/surfaces/slash-menu.json +63 -21
  595. package/src/surfaces/slash-menu.ts +42 -9
  596. package/src/surfaces/statements.ts +13 -18
  597. package/src/surfaces/statusbar.ts +56 -29
  598. package/src/surfaces/style-panel.ts +18 -31
  599. package/src/surfaces/stylebook-chrome.ts +3 -5
  600. package/src/surfaces/styles-panel.json +735 -0
  601. package/src/surfaces/styles-panel.ts +195 -0
  602. package/src/surfaces/styles-variables.json +149 -0
  603. package/src/surfaces/styles-variables.ts +145 -0
  604. package/src/surfaces/tab-strip.json +4 -4
  605. package/src/surfaces/tab-strip.ts +14 -13
  606. package/src/surfaces/target-line.ts +6 -7
  607. package/src/surfaces/welcome.ts +6 -8
  608. package/src/surfaces/writing-banner.json +94 -0
  609. package/src/surfaces/writing-banner.ts +80 -0
  610. package/src/tabs/bare-repeaters.ts +101 -0
  611. package/src/tabs/patch-ops.ts +4 -3
  612. package/src/tabs/project-config.ts +32 -21
  613. package/src/tabs/selection.ts +36 -8
  614. package/src/tabs/tab.ts +99 -48
  615. package/src/tabs/transact.ts +98 -53
  616. package/src/types.ts +53 -43
  617. package/src/ui/ai-credentials-form.ts +10 -13
  618. package/src/ui/ai-model-picker.ts +3 -3
  619. package/src/ui/cf-account-picker.ts +7 -9
  620. package/src/ui/color-selector.ts +9 -5
  621. package/src/ui/dynamic-slot.ts +7 -8
  622. package/src/ui/expression-editor.ts +112 -105
  623. package/src/ui/form-controls.ts +104 -56
  624. package/src/ui/formula-catalog.ts +239 -230
  625. package/src/ui/formula-chips.ts +33 -18
  626. package/src/ui/layers.ts +57 -31
  627. package/src/ui/media-picker.ts +300 -47
  628. package/src/ui/popover-surface.ts +20 -12
  629. package/src/ui/progress-modal.ts +13 -8
  630. package/src/ui/regions.ts +14 -12
  631. package/src/ui/schema-form.ts +372 -97
  632. package/src/ui/surface.ts +71 -8
  633. package/src/ui/timing.ts +9 -0
  634. package/src/ui/value-source.ts +44 -31
  635. package/src/ui/virtual-window.ts +29 -3
  636. package/src/utils/base64.ts +6 -4
  637. package/src/utils/edit-display.ts +366 -111
  638. package/src/utils/element-selectors.ts +3 -2
  639. package/src/utils/google-fonts.ts +15 -14
  640. package/src/utils/inherited-style.ts +18 -20
  641. package/src/utils/link-target.ts +1 -1
  642. package/src/utils/local-day.ts +18 -0
  643. package/src/utils/preview-format.ts +25 -3
  644. package/src/utils/strip-events.ts +49 -22
  645. package/src/utils/studio-utils.ts +29 -14
  646. package/src/view.ts +2 -3
  647. package/src/workspace/pane-derive.ts +14 -16
  648. package/src/workspace/session.ts +81 -50
  649. package/src/workspace/tab-workspace.ts +137 -0
  650. package/src/workspace/workspace-back.ts +189 -0
  651. package/src/workspace/workspace-home.ts +133 -0
  652. package/src/workspace/workspace-ids.ts +129 -0
  653. package/src/workspace/workspace-switch.ts +372 -0
  654. package/src/workspace/workspace.ts +165 -47
  655. package/styles/shell-frame.css +30 -7
  656. package/styles/shell-frame.json +15 -3
  657. package/dist/chunks/2020-va2wwra4.js +0 -4
  658. package/dist/chunks/adapter-f93pafd7.js +0 -4
  659. package/dist/chunks/cf-account-picker-af1h381v.js +0 -4
  660. package/dist/chunks/cf-settings-125tdm0w.js +0 -4
  661. package/dist/chunks/color-area-jqhna8zy.js +0 -4
  662. package/dist/chunks/color-field-embq5ctg.js +0 -4
  663. package/dist/chunks/color-fpezvnkt.js +0 -4
  664. package/dist/chunks/color-slider-1qmw7wqy.js +0 -4
  665. package/dist/chunks/combobox-773hdzyj.js +0 -4
  666. package/dist/chunks/components-ax2f1fnn.js +0 -4
  667. package/dist/chunks/content-source-108aqtk1.js +0 -4
  668. package/dist/chunks/convert-to-repeater-ry5rmppr.js +0 -4
  669. package/dist/chunks/dialog-mtm9fq5t.js +0 -4
  670. package/dist/chunks/editor-pfgdmkb0.js +0 -4
  671. package/dist/chunks/entry-commands-t0k1q0kx.js +0 -4
  672. package/dist/chunks/extension-sections-6mwh2hf8.js +0 -4
  673. package/dist/chunks/file-ops-meej5mqf.js +0 -4
  674. package/dist/chunks/files-44vp8a2s.js +0 -4
  675. package/dist/chunks/format-host-7q1petb9.js +0 -4
  676. package/dist/chunks/fs-events-h2mwnxaz.js +0 -4
  677. package/dist/chunks/git-panel-zngbymvd.js +0 -4
  678. package/dist/chunks/grid-view-sx9vynsp.js +0 -51
  679. package/dist/chunks/icons-p44xhjf0.js +0 -4
  680. package/dist/chunks/iframe-entry-f7mqjwpm.js +0 -5
  681. package/dist/chunks/iframe-entry-haw7jkvz.js +0 -5
  682. package/dist/chunks/iframe-entry-z6qrytv3.js +0 -5
  683. package/dist/chunks/iframe-host-qk3ycq87.js +0 -4
  684. package/dist/chunks/index-wkyfjeqz.js +0 -4
  685. package/dist/chunks/jsonMode-s8kt9dsj.js +0 -13
  686. package/dist/chunks/jx-validate-psgd7vsx.js +0 -4
  687. package/dist/chunks/layers-panel-1kq2jyfk.js +0 -4
  688. package/dist/chunks/layers-xd92fg8d.js +0 -4
  689. package/dist/chunks/listbox-s8fkmnq8.js +0 -4
  690. package/dist/chunks/lit-html-ac4cwwr4.js +0 -4
  691. package/dist/chunks/media-picker-0svzkdyb.js +0 -4
  692. package/dist/chunks/menu-37d07z9m.js +0 -4
  693. package/dist/chunks/menu-5c55ea3d.js +0 -4
  694. package/dist/chunks/monaco-binding-z6r70pdt.js +0 -4
  695. package/dist/chunks/monaco-buffer-fz6gq5y7.js +0 -4
  696. package/dist/chunks/monaco-setup-q4axkgj7.js +0 -4
  697. package/dist/chunks/notify-0xgtn8q1.js +0 -4
  698. package/dist/chunks/number-field-gw7sq8rn.js +0 -4
  699. package/dist/chunks/parse-897fvqah.js +0 -4
  700. package/dist/chunks/platform-v1qctbe6.js +0 -4
  701. package/dist/chunks/popover-8htra4er.js +0 -4
  702. package/dist/chunks/publish-panel-ym1fmgq5.js +0 -4
  703. package/dist/chunks/quick-search-a54e6t5n.js +0 -4
  704. package/dist/chunks/references-gmqp82fs.js +0 -4
  705. package/dist/chunks/right-panel-v7t9awbk.js +0 -4
  706. package/dist/chunks/section-registry-vhyf3zsr.js +0 -4
  707. package/dist/chunks/select-n3v7gwas.js +0 -4
  708. package/dist/chunks/split-pff8f3ze.js +0 -4
  709. package/dist/chunks/studio-0bhx5hz6.js +0 -5
  710. package/dist/chunks/studio-0k1ddnyy.js +0 -6
  711. package/dist/chunks/studio-1b04pd0j.js +0 -64
  712. package/dist/chunks/studio-4dwbj6gb.js +0 -5
  713. package/dist/chunks/studio-4tanh828.js +0 -5
  714. package/dist/chunks/studio-55h4mstj.js +0 -4
  715. package/dist/chunks/studio-5tnvjkz4.js +0 -5
  716. package/dist/chunks/studio-60dqgb0c.js +0 -5
  717. package/dist/chunks/studio-61dp09qg.js +0 -9
  718. package/dist/chunks/studio-63epcrj2.js +0 -5
  719. package/dist/chunks/studio-74k29dy9.js +0 -5
  720. package/dist/chunks/studio-7vg6jcd3.js +0 -5
  721. package/dist/chunks/studio-7zx31knw.js +0 -9
  722. package/dist/chunks/studio-8bxk97km.js +0 -5
  723. package/dist/chunks/studio-933e30n4.js +0 -5
  724. package/dist/chunks/studio-98wnwhbg.js +0 -5
  725. package/dist/chunks/studio-9mccjwjh.js +0 -14
  726. package/dist/chunks/studio-a2ke1e4t.js +0 -5
  727. package/dist/chunks/studio-e3a2a6v3.js +0 -4
  728. package/dist/chunks/studio-e81q1vb9.js +0 -5
  729. package/dist/chunks/studio-epgrmqqm.js +0 -5
  730. package/dist/chunks/studio-ery42sqr.js +0 -4
  731. package/dist/chunks/studio-g1shz58g.js +0 -5
  732. package/dist/chunks/studio-gf0fz03c.js +0 -5
  733. package/dist/chunks/studio-gjtpe62q.js +0 -6
  734. package/dist/chunks/studio-gkskhg7m.js +0 -5
  735. package/dist/chunks/studio-gx4dnjzd.js +0 -5
  736. package/dist/chunks/studio-j03zga3y.js +0 -9
  737. package/dist/chunks/studio-jhpxeckz.js +0 -5
  738. package/dist/chunks/studio-k01r7ykp.js +0 -5
  739. package/dist/chunks/studio-kk7h30ne.js +0 -7
  740. package/dist/chunks/studio-kt1zqney.js +0 -5
  741. package/dist/chunks/studio-m3cwhvye.js +0 -5
  742. package/dist/chunks/studio-mcayt6hz.js +0 -5
  743. package/dist/chunks/studio-myjcghv3.js +0 -5
  744. package/dist/chunks/studio-n8bxwc3y.js +0 -4
  745. package/dist/chunks/studio-ngm8gvpb.js +0 -5
  746. package/dist/chunks/studio-nj5a01jy.js +0 -928
  747. package/dist/chunks/studio-pcgz8heb.js +0 -5
  748. package/dist/chunks/studio-qcsq0t15.js +0 -5
  749. package/dist/chunks/studio-qkstvve9.js +0 -5
  750. package/dist/chunks/studio-qv1pwd3c.js +0 -5
  751. package/dist/chunks/studio-rc6dvxjb.js +0 -7
  752. package/dist/chunks/studio-s8dmmz66.js +0 -5
  753. package/dist/chunks/studio-sp5xzbj4.js +0 -6
  754. package/dist/chunks/studio-szsjbj0g.js +0 -5
  755. package/dist/chunks/studio-t1xzawhr.js +0 -16
  756. package/dist/chunks/studio-tdcprbqb.js +0 -5
  757. package/dist/chunks/studio-vrmcjf9g.js +0 -7
  758. package/dist/chunks/studio-vyc0b4he.js +0 -10
  759. package/dist/chunks/studio-w0cgf6jg.js +0 -5
  760. package/dist/chunks/studio-w3hskzqk.js +0 -5
  761. package/dist/chunks/studio-xgrgcdyh.js +0 -9
  762. package/dist/chunks/studio-xz2yxfcb.js +0 -5
  763. package/dist/chunks/studio-y6n42tgs.js +0 -5
  764. package/dist/chunks/studio-yb560vxr.js +0 -5
  765. package/dist/chunks/studio-yn9f8vtx.js +0 -5
  766. package/dist/chunks/studio-yw05w8f0.js +0 -7
  767. package/dist/chunks/studio-z16sgavc.js +0 -5
  768. package/dist/chunks/studio-zey7zsdw.js +0 -12
  769. package/dist/chunks/studio-zyqn40w4.js +0 -5
  770. package/dist/chunks/swatch-group-8qh9a3bm.js +0 -4
  771. package/dist/chunks/tabs-jwthg40w.js +0 -4
  772. package/dist/chunks/textfield-spy3hc77.js +0 -4
  773. package/dist/chunks/toast-4d35zd64.js +0 -4
  774. package/dist/chunks/toast-host-8sjmfed3.js +0 -4
  775. package/dist/chunks/tooltip-fd6g9xy3.js +0 -4
  776. package/dist/chunks/tree-h19v1jfz.js +0 -4
  777. package/dist/chunks/tsMode-2frah6h1.js +0 -14
  778. package/dist/chunks/workspace-zt81g1ms.js +0 -4
  779. package/dist/chunks/ws-client-n2bh4hkf.js +0 -4
  780. package/src/panels/frontmatter-panel.ts +0 -701
  781. package/src/panels/git-panel.ts +0 -1120
  782. package/src/surfaces/doc-header.json +0 -776
  783. package/src/surfaces/doc-header.ts +0 -231
  784. package/src/surfaces/git-panel.json +0 -1880
  785. package/src/surfaces/git-panel.ts +0 -272
@@ -0,0 +1,272 @@
1
+ /**
2
+ * What a component's live preview is drawn with.
3
+ *
4
+ * A preview instance used to be given nothing, so it drew its definition's DEFAULTS, and a starter
5
+ * component's defaults are empty strings: a page header with no title, a band with no label, a card
6
+ * with no name. A component is only ever seen with props, so the preview asks where it has been
7
+ * given some, in this order:
8
+ *
9
+ * 1. The definition's own `examples`: the JSON Schema keyword a typed state entry may carry (`spec.md`
10
+ * §5.3, Shape 2), whose first value is the author's own sample.
11
+ * 2. Its first use in the project that passes literal values: the reference index names the files that
12
+ * use the tag, and the instance among them that passes the most literal props is the likeliest
13
+ * to draw the component as the author meant it. A bound prop (`${…}`, `$ref`) has no value
14
+ * outside the page that binds it, so it is not one.
15
+ * 3. A list that draws it ({@link componentSampleRow}): a component used only as a repeater's row,
16
+ * every prop bound to the row, is drawn as that list's first row, with the list's data.
17
+ *
18
+ * Only a prop the definition declares, and that is not private (`spec.md` §5.6), is taken. Files in
19
+ * the project's default language are read before translations, so a preview reads in the language
20
+ * the site is written in first.
21
+ *
22
+ * @docs studio/interface
23
+ */
24
+
25
+ import {
26
+ isJsonObject,
27
+ isNodeObject,
28
+ isPrivateStateKey,
29
+ isRef,
30
+ isString,
31
+ } from "@jxsuite/schema/guards";
32
+ import { localeOfPath, resolveI18n } from "@jxsuite/schema/locale";
33
+ import { getPlatform } from "../platform";
34
+ import { formatForPath, loadFormats } from "../format/format-host";
35
+ import { parseSourceForPath } from "../files/file-ops";
36
+ import { loadUsages } from "../services/references";
37
+ import { documentBase } from "../canvas/canvas-origin";
38
+ import { bakeRepeaterSources } from "../canvas/repeater-sources";
39
+ import { pageContextFor } from "../canvas/canvas-page-context";
40
+ import { projectState } from "../store";
41
+ import type { JsonValue, JxDocument, JxDocumentValue, JxMutableNode } from "@jxsuite/schema/types";
42
+
43
+ /** A component's sample props, by state key. */
44
+ export type ExampleProps = Map<string, JsonValue>;
45
+
46
+ /** How many of the files that use a component are read for an instance to draw it from. */
47
+ const USAGE_FILES_READ = 4;
48
+
49
+ /** Whether a value is plain data a prop can hold outside any page: no template, no binding. */
50
+ export function isLiteralProp(value: JxDocumentValue | undefined): value is JsonValue {
51
+ if (value === undefined) {
52
+ return false;
53
+ }
54
+ if (isString(value)) {
55
+ return !value.includes("${");
56
+ }
57
+ if (Array.isArray(value)) {
58
+ return value.every((member) => isLiteralProp(member));
59
+ }
60
+ if (isJsonObject(value)) {
61
+ return (
62
+ !("$ref" in value) &&
63
+ !("$prototype" in value) &&
64
+ !("$expression" in value) &&
65
+ Object.values(value).every((member) => isLiteralProp(member))
66
+ );
67
+ }
68
+ return true;
69
+ }
70
+
71
+ /** The definition's public prop keys: its state entries, without the private ones. */
72
+ function propKeys(definition: JxDocument): Set<string> {
73
+ return new Set(Object.keys(definition.state ?? {}).filter((key) => !isPrivateStateKey(key)));
74
+ }
75
+
76
+ /** The first `examples` value of each typed state entry that declares one. */
77
+ export function declaredExamples(definition: JxDocument): ExampleProps {
78
+ const out: ExampleProps = new Map();
79
+ for (const [key, entry] of Object.entries(definition.state ?? {})) {
80
+ if (isPrivateStateKey(key) || !isJsonObject(entry) || !Array.isArray(entry.examples)) {
81
+ continue;
82
+ }
83
+ const [first] = entry.examples;
84
+ if (isLiteralProp(first)) {
85
+ out.set(key, first);
86
+ }
87
+ }
88
+ return out;
89
+ }
90
+
91
+ /** Every node of a tree, each with the repeater (if any) whose row template holds it. */
92
+ function eachNode(
93
+ tree: JxDocumentValue | undefined,
94
+ visit: (node: JxMutableNode, repeater: JxMutableNode | null) => void,
95
+ ): void {
96
+ const walk = (value: JxDocumentValue | undefined, repeater: JxMutableNode | null): void => {
97
+ if (Array.isArray(value)) {
98
+ for (const member of value) {
99
+ walk(member, repeater);
100
+ }
101
+ return;
102
+ }
103
+ if (!isNodeObject(value)) {
104
+ return;
105
+ }
106
+ visit(value, repeater);
107
+ walk(value.children, repeater);
108
+ walk(value.map, value.$prototype === "Array" ? value : repeater);
109
+ for (const branch of Object.values(value.cases ?? {})) {
110
+ walk(branch, repeater);
111
+ }
112
+ };
113
+ walk(tree, null);
114
+ }
115
+
116
+ /**
117
+ * The literal props of the instance of `tagName` in `tree` that passes the most of them, among the
118
+ * keys the definition declares; empty when no instance passes any.
119
+ */
120
+ export function literalUsageProps(
121
+ tree: JxDocumentValue | undefined,
122
+ tagName: string,
123
+ keys: ReadonlySet<string>,
124
+ ): ExampleProps {
125
+ let best: ExampleProps = new Map();
126
+ eachNode(tree, (node) => {
127
+ if (node.tagName !== tagName || !isJsonObject(node.$props)) {
128
+ return;
129
+ }
130
+ const found: ExampleProps = new Map();
131
+ for (const [key, prop] of Object.entries(node.$props)) {
132
+ if (keys.has(key) && isLiteralProp(prop)) {
133
+ found.set(key, prop);
134
+ }
135
+ }
136
+ if (found.size > best.size) {
137
+ best = found;
138
+ }
139
+ });
140
+ return best;
141
+ }
142
+
143
+ /** One project document as a tree, or null when it cannot be read or parsed. */
144
+ async function readTree(path: string): Promise<JxMutableNode | null> {
145
+ try {
146
+ const content = await getPlatform().readFile(path);
147
+ await loadFormats();
148
+ let tree: JxDocumentValue;
149
+ if (formatForPath(path)) {
150
+ const parsed = await parseSourceForPath(path, content);
151
+ tree = parsed.document;
152
+ } else if (path.endsWith(".json")) {
153
+ /* SAFETY: a `.json` project document is JSON, and every read of it below is guarded. */
154
+ tree = JSON.parse(content) as JxDocumentValue;
155
+ } else {
156
+ return null;
157
+ }
158
+ return isNodeObject(tree) ? tree : null;
159
+ } catch {
160
+ return null;
161
+ }
162
+ }
163
+
164
+ /** The files that use a component, default language first, at most {@link USAGE_FILES_READ}. */
165
+ async function usageFiles(path: string, tagName: string): Promise<string[]> {
166
+ const usages = await loadUsages({ path, tagName });
167
+ if (usages.status !== "ready") {
168
+ return [];
169
+ }
170
+ const { i18n } = resolveI18n(projectState?.projectConfig ?? {});
171
+ const translated = (file: string): boolean => {
172
+ const locale = localeOfPath(file, i18n);
173
+ return locale !== null && locale !== i18n?.defaultLocale;
174
+ };
175
+ const files = usages.result.files.map((file) => file.path);
176
+ return [
177
+ ...files.filter((file) => !translated(file)),
178
+ ...files.filter((file) => translated(file)),
179
+ ].slice(0, USAGE_FILES_READ);
180
+ }
181
+
182
+ /** The props a component's preview instance is given (sources 1 and 2 of the module comment). */
183
+ export async function componentExampleProps(
184
+ definition: JxDocument,
185
+ path: string,
186
+ ): Promise<ExampleProps> {
187
+ const keys = propKeys(definition);
188
+ const tagName = isString(definition.tagName) ? definition.tagName : null;
189
+ const examples = declaredExamples(definition);
190
+ if (!tagName || keys.size === 0) {
191
+ return examples;
192
+ }
193
+ let best: ExampleProps = new Map();
194
+ for (const file of await usageFiles(path, tagName)) {
195
+ const found = literalUsageProps(await readTree(file), tagName, keys);
196
+ if (found.size > best.size) {
197
+ best = found;
198
+ }
199
+ }
200
+ // The author's own sample wins over a page's value for the same prop.
201
+ return new Map([...best, ...examples]);
202
+ }
203
+
204
+ /** A sample-row document, and the file whose list it draws (its relative refs resolve there). */
205
+ export interface SampleRow {
206
+ doc: JxDocument;
207
+ file: string;
208
+ }
209
+
210
+ /** The state key a repeater reads its whole list from (`#/state/shows`), or null. */
211
+ function listKeyOf(repeater: JxMutableNode): string | null {
212
+ const { items } = repeater;
213
+ if (!isRef(items) || !items.$ref.startsWith("#/state/")) {
214
+ return null;
215
+ }
216
+ const key = items.$ref.slice("#/state/".length);
217
+ return key !== "" && !key.includes("/") ? key : null;
218
+ }
219
+
220
+ /**
221
+ * A document that draws the first row of a list using the component (source 3 of the module
222
+ * comment), or null when no file that uses it has one: the list's repeater, its data resolved the
223
+ * way the canvas resolves it for Edit (`canvas/repeater-sources.ts`) and cut to its first item, in
224
+ * the page's own state and `$site` / `$page`.
225
+ */
226
+ export async function componentSampleRow(
227
+ definition: JxDocument,
228
+ path: string,
229
+ ): Promise<SampleRow | null> {
230
+ const tagName = isString(definition.tagName) ? definition.tagName : null;
231
+ if (!tagName) {
232
+ return null;
233
+ }
234
+ for (const file of await usageFiles(path, tagName)) {
235
+ const tree = await readTree(file);
236
+ const lists: JxMutableNode[] = [];
237
+ eachNode(tree, (node, repeater) => {
238
+ if (node.tagName === tagName && repeater && listKeyOf(repeater)) {
239
+ lists.push(repeater);
240
+ }
241
+ });
242
+ const [list] = lists;
243
+ const key = list ? listKeyOf(list) : null;
244
+ if (!tree || !list || !key) {
245
+ continue;
246
+ }
247
+ const baked = await bakeRepeaterSources(
248
+ tree,
249
+ [key],
250
+ new URL(file, documentBase(projectState?.projectRoot)).href,
251
+ );
252
+ const rows = baked.state?.[key];
253
+ if (!Array.isArray(rows) || rows.length === 0) {
254
+ continue;
255
+ }
256
+ const context = file.startsWith("pages/")
257
+ ? await pageContextFor(
258
+ { documentPath: file, isEntry: false, lang: tree.$lang, title: tree.title },
259
+ projectState?.projectConfig,
260
+ )
261
+ : null;
262
+ return {
263
+ doc: {
264
+ children: [list],
265
+ state: { ...baked.state, [key]: rows.slice(0, 1), ...context },
266
+ tagName: "div",
267
+ },
268
+ file,
269
+ };
270
+ }
271
+ return null;
272
+ }
@@ -1,17 +1,16 @@
1
1
  /**
2
- * The Library's verbs.
2
+ * The Content home's verbs (`specs/studio.md` §22.5).
3
3
  *
4
- * Every piece of Library state a person can reach is reachable here, which is the difference
5
- * between this and the Manage view it replaces. That view's category filter, its search box and its
6
- * grid/table switch existed ONLY as buttons inside a modal, so `scripts/screenshots/automation.ts`
7
- * carried a hand-maintained `BROWSE_CATEGORY_LABELS` table and pressed the buttons through an XPath
8
- * matched on their rendered text, exactly what the shot contract's R1 forbids
9
- * (`scripts/screenshots/README.md`). `library.setCategory` is the same action the button runs, and
10
- * the button is now a rendering of the record.
4
+ * Every piece of the home's state a person can reach is reachable here: which collection it shows,
5
+ * how that collection is arranged, what it is filtered to. The view switch, the search field and
6
+ * the language picker are renderings of the same records, and the Collections panel's rows run
7
+ * `content.showCollection` rather than writing the state themselves, so a shot or a script names
8
+ * the collection instead of pressing a row it found by its text.
11
9
  *
12
10
  * Every setter is idempotent and names the STATE it reaches, never a delta: there is no
13
- * `library.toggleLayout`, because a toggle against unstated state is what silently inverted
14
- * eighteen manifest steps when a default flipped.
11
+ * `content.toggleLayout`, because a toggle against unstated state is what silently inverted
12
+ * eighteen manifest steps when a default flipped. The view setters write the SHOWN collection's own
13
+ * view, so each collection keeps its own.
15
14
  */
16
15
 
17
16
  import {
@@ -22,18 +21,11 @@ import {
22
21
  optionalStringArg,
23
22
  stringProperty,
24
23
  } from "../commands/command-args";
25
- import { openLibraryTab } from "../grid/grid-open";
24
+ import { LIBRARY_LAYOUTS, LIBRARY_LAYOUT_LABELS, projectLocales } from "./library-model";
25
+ import { contentCollectionKeys } from "../content/content-collections";
26
26
  import {
27
- LIBRARY_CATEGORY_KEYS,
28
- LIBRARY_LAYOUTS,
29
- LIBRARY_LAYOUT_LABELS,
30
- projectLocales,
31
- } from "./library-model";
32
- import {
33
- createLibraryEntry,
34
- libraryNewEntries,
35
27
  refreshLibrary,
36
- setLibraryCategory,
28
+ setContentCollection,
37
29
  setLibraryLayout,
38
30
  setLibraryLocale,
39
31
  setLibrarySearch,
@@ -41,76 +33,77 @@ import {
41
33
  import type { LibraryLayout } from "./library-model";
42
34
  import type { AnyCommand, CommandRegistry } from "../commands/registry";
43
35
 
44
- /** Every value `library.setLocale` accepts: the project's own locales, plus "all" for none of them. */
36
+ /** Every value `content.setLocale` accepts: the project's own locales, plus "all" for none of them. */
45
37
  function localeChoices(): string[] {
46
38
  return ["all", ...projectLocales()];
47
39
  }
48
40
 
49
- /** The Library's command records. */
50
- export function libraryCommands(): AnyCommand[] {
41
+ /**
42
+ * Show a collection in the Content home, opening the home if it is not open.
43
+ *
44
+ * Opening the home activates it, and activating a tab enters its workspace (§22.1), so this is also
45
+ * how a script reaches Content on a named collection in one step.
46
+ */
47
+ export async function showCollection(key: string): Promise<void> {
48
+ setContentCollection(key);
49
+ /* Dynamic: the home's module mounts surfaces, and this record is loaded in the bare Bun process
50
+ the CI checks run in. */
51
+ const { openWorkspaceHome } = await import("../workspace/workspace-home");
52
+ openWorkspaceHome("content");
53
+ }
54
+
55
+ /** The Content home's command records. */
56
+ export function contentViewCommands(): AnyCommand[] {
51
57
  return [
52
- {
53
- category: "Project",
54
- id: "library.open",
55
- // ⌘⇧E, as studio.md §9.1.2 names it. The Library is the content surface for a site
56
- // With a collection, and it was reachable only by palette search and one overflow menu item.
57
- keybinding: "mod+shift+e",
58
- level: "project",
59
- menus: ["commandbar/overflow", "palette", "context/file"],
60
- group: "1_file",
61
- requires: "an open project",
62
- when: (ctx) => ctx.project.open,
63
- /* No `aiTool`, by studio-ui-guidelines.md §12.4's first deletion rule: chrome. None of the
64
- Library family is projected — every one of these verbs shapes a listing a person reads,
65
- and the model has `list_files` / `search_files` for the same facts. */
66
- run: () => {
67
- openLibraryTab();
68
- },
69
- title: "Open Library",
70
- },
71
58
  {
72
59
  args: argsSchema({
73
- category: enumProperty(
74
- LIBRARY_CATEGORY_KEYS,
75
- 'Which category the Library lists. "all" clears the category filter.',
60
+ /* Derived: this record is built at module scope, before any project is open, so a frozen
61
+ enum would offer only `pages` forever. The getter is read when the prompt opens, when
62
+ the tool list is serialised, and when `registry.run` coerces the value; an enum is also
63
+ what keeps the verb in the palette, which prompts for enums only. A shot is checked with
64
+ no project open, so a manifest step may name `pages` and nothing else. */
65
+ collection: derivedEnumProperty(
66
+ contentCollectionKeys,
67
+ 'Which collection the Content home shows: "pages", or a collection project.json declares.',
76
68
  ),
77
69
  }),
78
70
  category: "Project",
79
- id: "library.setCategory",
71
+ id: "content.showCollection",
80
72
  level: "project",
81
73
  menus: ["palette"],
82
74
  group: "1_file",
83
75
  requires: "an open project",
84
76
  when: (ctx) => ctx.project.open,
85
- /* No `aiTool`: a listing filter for a person (studio-ui-guidelines.md §12.4, rule 1). */
86
- run: (_ctx, args) => {
87
- const key = enumArg("library.setCategory", args, "category", LIBRARY_CATEGORY_KEYS);
88
- setLibraryCategory(key);
77
+ /* No `aiTool`, by studio-ui-guidelines.md §12.4's first deletion rule: it shapes a listing a
78
+ person reads, and the model has `list_files` for the same facts. */
79
+ run: async (_ctx, args) => {
80
+ const key = enumArg("content.showCollection", args, "collection", contentCollectionKeys());
81
+ await showCollection(key);
89
82
  },
90
- title: "Library: Show Category",
83
+ title: "Content: Show Collection",
91
84
  },
92
85
  {
93
86
  args: argsSchema({
94
87
  layout: enumProperty(
95
88
  LIBRARY_LAYOUTS,
96
- `How the Library arranges its items — ${LIBRARY_LAYOUTS.map(
89
+ `How the Content home arranges the collection it shows: ${LIBRARY_LAYOUTS.map(
97
90
  (layout) => LIBRARY_LAYOUT_LABELS[layout],
98
91
  ).join(", ")}.`,
99
92
  ),
100
93
  }),
101
94
  category: "Project",
102
- id: "library.setLayout",
95
+ id: "content.setLayout",
103
96
  level: "project",
104
97
  menus: ["palette"],
105
98
  group: "1_file",
106
99
  requires: "an open project",
107
100
  when: (ctx) => ctx.project.open,
108
- /* No `aiTool`: a listing filter for a person (studio-ui-guidelines.md §12.4, rule 1). */
101
+ /* No `aiTool`: a listing view for a person (studio-ui-guidelines.md §12.4, rule 1). */
109
102
  run: (_ctx, args) => {
110
- const layout = enumArg<LibraryLayout>("library.setLayout", args, "layout", LIBRARY_LAYOUTS);
103
+ const layout = enumArg<LibraryLayout>("content.setLayout", args, "layout", LIBRARY_LAYOUTS);
111
104
  setLibraryLayout(layout);
112
105
  },
113
- title: "Library: Set Layout",
106
+ title: "Content: Set View",
114
107
  },
115
108
  {
116
109
  args: {
@@ -121,7 +114,7 @@ export function libraryCommands(): AnyCommand[] {
121
114
  type: "object",
122
115
  },
123
116
  category: "Project",
124
- id: "library.setSearch",
117
+ id: "content.setSearch",
125
118
  level: "project",
126
119
  menus: ["palette"],
127
120
  group: "1_file",
@@ -130,42 +123,38 @@ export function libraryCommands(): AnyCommand[] {
130
123
  /* No `aiTool`: a listing filter for a person; the model has `search_files`
131
124
  (studio-ui-guidelines.md §12.4, rule 1). */
132
125
  run: (_ctx, args) => {
133
- setLibrarySearch(optionalStringArg("library.setSearch", args, "query") ?? "");
126
+ setLibrarySearch(optionalStringArg("content.setSearch", args, "query") ?? "");
134
127
  },
135
- title: "Library: Filter Files",
128
+ title: "Content: Search Collection",
136
129
  },
137
130
  {
138
131
  args: argsSchema({
139
- /* Derived, for the reason `content/entry-commands.ts` gives at length: this record is
140
- built at module scope, before any project is open, so `enumProperty(localeChoices(), …)`
141
- would freeze at `["all"]` and the palette would offer that forever. The getter is read
142
- when the prompt opens, when the AI tool list is serialised, and when `registry.run`
143
- coerces the value. */
132
+ /* Derived, for the reason `content.showCollection` gives. */
144
133
  locale: derivedEnumProperty(
145
134
  localeChoices,
146
- 'Which language the Library lists, as a BCP 47 tag the project declares. "all" ' +
135
+ 'Which language the Content home lists, as a BCP 47 tag the project declares. "all" ' +
147
136
  "clears the language filter.",
148
137
  ),
149
138
  }),
150
139
  category: "Project",
151
- id: "library.setLocale",
140
+ id: "content.setLocale",
152
141
  level: "project",
153
142
  menus: ["palette"],
154
143
  group: "1_file",
155
144
  requires: "a project with more than one locale",
156
- // A monolingual project has no facet to set: the Library draws no picker, and offering the
157
- // Verb would name a value space with one member in it.
145
+ // A monolingual project has no facet to set: the home draws no picker, and offering the verb
146
+ // Would name a value space with one member in it.
158
147
  when: (ctx) => ctx.project.open && ctx.project.isMultilingual,
159
148
  /* No `aiTool`: a listing filter for a person (studio-ui-guidelines.md §12.4, rule 1). */
160
149
  run: (_ctx, args) => {
161
- const choice = enumArg("library.setLocale", args, "locale", localeChoices());
150
+ const choice = enumArg("content.setLocale", args, "locale", localeChoices());
162
151
  setLibraryLocale(choice === "all" ? "" : choice);
163
152
  },
164
- title: "Library: Show Language",
153
+ title: "Content: Show Language",
165
154
  },
166
155
  {
167
156
  category: "Project",
168
- id: "library.refresh",
157
+ id: "content.refresh",
169
158
  level: "project",
170
159
  menus: ["palette"],
171
160
  group: "1_file",
@@ -173,41 +162,12 @@ export function libraryCommands(): AnyCommand[] {
173
162
  when: (ctx) => ctx.project.open,
174
163
  /* No `aiTool`: chrome (studio-ui-guidelines.md §12.4, rule 1). */
175
164
  run: () => refreshLibrary(),
176
- title: "Library: Rescan Files",
177
- },
178
- {
179
- args: {
180
- additionalProperties: false,
181
- properties: {
182
- type: stringProperty(
183
- 'What to create: "page", "layout", "component", or "collection:<name>" for a ' +
184
- "content collection this project declares.",
185
- ),
186
- },
187
- required: ["type"],
188
- type: "object",
189
- },
190
- category: "Project",
191
- id: "library.newEntry",
192
- level: "project",
193
- menus: ["palette"],
194
- group: "1_file",
195
- requires: "an open project",
196
- when: (ctx) => ctx.project.open,
197
- undo: "project",
198
- /* No `aiTool`, by studio-ui-guidelines.md §12.4's second deletion rule: it waits on the New
199
- File prompt; `create_page` / `create_component` cover the job. */
200
- run: async (_ctx, args) => {
201
- const declared = libraryNewEntries().map((entry) => entry.key);
202
- const key = enumArg("library.newEntry", args, "type", declared);
203
- await createLibraryEntry(key);
204
- },
205
- title: "Library: New Entry",
165
+ title: "Content: Rescan Files",
206
166
  },
207
167
  ];
208
168
  }
209
169
 
210
- /** Register the Library's verbs. */
211
- export function registerLibraryCommands(registry: CommandRegistry): void {
212
- registry.registerAll(libraryCommands());
170
+ /** Register the Content home's verbs. */
171
+ export function registerContentViewCommands(registry: CommandRegistry): void {
172
+ registry.registerAll(contentViewCommands());
213
173
  }