@jxsuite/studio 10.4.0 → 10.6.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 (346) hide show
  1. package/data/locales/en/elements.json +434 -0
  2. package/data/webdata.json +116 -139
  3. package/dist/chunks/2020-rqm7qrje.js +4 -0
  4. package/dist/chunks/adapter-cyy8vbcx.js +4 -0
  5. package/dist/chunks/add-new-flow-8cgtejv2.js +4 -0
  6. package/dist/chunks/{cf-account-picker-xb8vvt2h.js → cf-account-picker-v3qd2dhw.js} +3 -3
  7. package/dist/chunks/cf-settings-1fnw874z.js +4 -0
  8. package/dist/chunks/{color-area-h8dbasp1.js → color-area-frd9y9q6.js} +2 -2
  9. package/dist/chunks/color-field-rebpbe33.js +4 -0
  10. package/dist/chunks/{color-slider-nz2mrzky.js → color-slider-6bzmk3s7.js} +2 -2
  11. package/dist/chunks/color-t2bnnj8y.js +4 -0
  12. package/dist/chunks/{combobox-6hs00996.js → combobox-c49x7gf1.js} +3 -3
  13. package/dist/chunks/components-y8yhdd7d.js +4 -0
  14. package/dist/chunks/content-source-9e7qvmsf.js +4 -0
  15. package/dist/chunks/convert-to-repeater-pd2w4z21.js +4 -0
  16. package/dist/chunks/editor-mb9jzdrw.js +4 -0
  17. package/dist/chunks/entry-commands-at0wnx3f.js +4 -0
  18. package/dist/chunks/extension-sections-4z9qq0gh.js +4 -0
  19. package/dist/chunks/file-ops-dtdvjmza.js +4 -0
  20. package/dist/chunks/files-8pf70854.js +4 -0
  21. package/dist/chunks/format-host-fd3m2y2a.js +4 -0
  22. package/dist/chunks/fs-events-hrk29vcv.js +4 -0
  23. package/dist/chunks/grid-open-bh74v82z.js +4 -0
  24. package/dist/chunks/{grid-view-2f03wcgw.js → grid-view-a51mgzmq.js} +17 -17
  25. package/dist/chunks/{icons-gb967qc8.js → icons-qp8fn1k8.js} +2 -2
  26. package/dist/chunks/{iframe-entry-btck0e9s.js → iframe-entry-mpwe5pwk.js} +4 -4
  27. package/dist/chunks/{iframe-entry-2x9bn5ng.js → iframe-entry-msd43x9h.js} +4 -4
  28. package/dist/chunks/iframe-entry-rt8jz5t8.js +5 -0
  29. package/dist/chunks/{iframe-entry-b5qgggyp.js → iframe-entry-v40cr813.js} +4 -4
  30. package/dist/chunks/iframe-host-q0s0wwy3.js +4 -0
  31. package/dist/chunks/{image-bake-4afr4y6a.js → image-bake-q9ajdjsj.js} +3 -3
  32. package/dist/chunks/{image-editor-x7t8jbjn.js → image-editor-ke9std9b.js} +3 -3
  33. package/dist/chunks/index-57ang7ma.js +4 -0
  34. package/dist/chunks/index-eytr7av4.js +17 -0
  35. package/dist/chunks/{index-yjrfeks8.js → index-x495reff.js} +3 -3
  36. package/dist/chunks/{javascript-hy2mws8v.js → javascript-qe34bvaz.js} +3 -3
  37. package/dist/chunks/jsonMode-m8rseh31.js +13 -0
  38. package/dist/chunks/jx-validate-bbd1mary.js +4 -0
  39. package/dist/chunks/layers-panel-wcjtdqsa.js +4 -0
  40. package/dist/chunks/layers-yscpys6q.js +4 -0
  41. package/dist/chunks/{listbox-7gka1h86.js → listbox-tktzq5xj.js} +2 -2
  42. package/dist/chunks/lit-html-qm5wbhqz.js +4 -0
  43. package/dist/chunks/media-library-2hfff88g.js +4 -0
  44. package/dist/chunks/media-open-4pb05cne.js +4 -0
  45. package/dist/chunks/media-picker-bzktmmwr.js +4 -0
  46. package/dist/chunks/menu-xc3cbgsd.js +4 -0
  47. package/dist/chunks/{monaco-binding-a51py33c.js → monaco-binding-7t38arh9.js} +3 -3
  48. package/dist/chunks/monaco-buffer-3vz94c9f.js +4 -0
  49. package/dist/chunks/monaco-setup-fstdew02.js +4 -0
  50. package/dist/chunks/notify-gbdcckrh.js +4 -0
  51. package/dist/chunks/parse-fpdzgk4c.js +4 -0
  52. package/dist/chunks/platform-9g72gdqr.js +4 -0
  53. package/dist/chunks/popover-cnmsav6b.js +4 -0
  54. package/dist/chunks/publish-panel-91x1cb5d.js +4 -0
  55. package/dist/chunks/publish-quick-e2dmf7eg.js +4 -0
  56. package/dist/chunks/publish-workspace-1x8mnzrj.js +4 -0
  57. package/dist/chunks/quick-search-2m4y6p1x.js +4 -0
  58. package/dist/chunks/references-yg1g9rwx.js +4 -0
  59. package/dist/chunks/right-panel-7mfyhzrk.js +4 -0
  60. package/dist/chunks/source-control-rrc4jgp5.js +4 -0
  61. package/dist/chunks/{split-m5rwn31z.js → split-d15yencd.js} +2 -2
  62. package/dist/chunks/studio-0jhhznxy.js +9 -0
  63. package/dist/chunks/studio-0nb57pjg.js +7 -0
  64. package/dist/chunks/{studio-s24mhq0z.js → studio-0wa4wv4s.js} +4 -4
  65. package/dist/chunks/studio-0z8kp4xk.js +5 -0
  66. package/dist/chunks/{studio-g0hxtcga.js → studio-18gc5t3v.js} +4 -4
  67. package/dist/chunks/{studio-4fnb5648.js → studio-1b79rpcb.js} +4 -4
  68. package/dist/chunks/studio-211q5j7m.js +4 -0
  69. package/dist/chunks/studio-213pyfxh.js +16 -0
  70. package/dist/chunks/studio-2b1smjvp.js +5 -0
  71. package/dist/chunks/{studio-nwf0c32p.js → studio-2v6tc9jp.js} +4 -4
  72. package/dist/chunks/studio-30j0wz99.js +5 -0
  73. package/dist/chunks/studio-3kmqhwtt.js +5 -0
  74. package/dist/chunks/studio-44drsmhw.js +5 -0
  75. package/dist/chunks/{studio-2pk7kc7z.js → studio-495b6f2r.js} +4 -4
  76. package/dist/chunks/{studio-jma2q8r9.js → studio-4gthb2fd.js} +4 -4
  77. package/dist/chunks/{studio-0gvvqj3h.js → studio-4xadhxj1.js} +4 -4
  78. package/dist/chunks/{studio-nvcn2ykc.js → studio-52mzbxqm.js} +4 -4
  79. package/dist/chunks/{studio-v7a7yb5w.js → studio-56mmnsw8.js} +7 -7
  80. package/dist/chunks/studio-59hz8f4r.js +5 -0
  81. package/dist/chunks/{studio-sce30r7b.js → studio-5k9mfafh.js} +3 -3
  82. package/dist/chunks/{studio-rr00ex23.js → studio-5qez462c.js} +6 -6
  83. package/dist/chunks/studio-6tnpg0vx.js +5 -0
  84. package/dist/chunks/studio-6w8mt734.js +6 -0
  85. package/dist/chunks/studio-7hm04x5z.js +5 -0
  86. package/dist/chunks/studio-8atmfjjm.js +7 -0
  87. package/dist/chunks/{studio-wmjmsw0p.js → studio-8n99z71s.js} +4 -4
  88. package/dist/chunks/studio-8vmad6x2.js +5 -0
  89. package/dist/chunks/studio-93p5k4r4.js +5 -0
  90. package/dist/chunks/{studio-2x972v58.js → studio-9gb0m81w.js} +4 -4
  91. package/dist/chunks/studio-a4ymg4vd.js +5 -0
  92. package/dist/chunks/studio-anc8067x.js +5 -0
  93. package/dist/chunks/{studio-2e4hry72.js → studio-dbdt67kr.js} +5 -5
  94. package/dist/chunks/studio-dbex091t.js +5 -0
  95. package/dist/chunks/{studio-amaz545p.js → studio-dj8ctxey.js} +4 -4
  96. package/dist/chunks/{studio-k2evngrj.js → studio-ed9bz68j.js} +5 -5
  97. package/dist/chunks/{studio-4bgvvzhv.js → studio-fe2d1fp5.js} +4 -4
  98. package/dist/chunks/{studio-45mj4jqe.js → studio-fgp4cyy3.js} +4 -4
  99. package/dist/chunks/studio-ft706q02.js +5 -0
  100. package/dist/chunks/studio-g79s1dyg.js +6 -0
  101. package/dist/chunks/{studio-pj216fmn.js → studio-gahswxp4.js} +4 -4
  102. package/dist/chunks/studio-gbqc12bk.js +5 -0
  103. package/dist/chunks/studio-gxphbetb.js +6 -0
  104. package/dist/chunks/studio-hdf01j7q.js +7 -0
  105. package/dist/chunks/studio-hf259xzd.js +48 -0
  106. package/dist/chunks/studio-jbva4wxw.js +5 -0
  107. package/dist/chunks/studio-jj9gf1qc.js +5 -0
  108. package/dist/chunks/studio-jsjg3mjv.js +5 -0
  109. package/dist/chunks/studio-jtvb8hd7.js +5 -0
  110. package/dist/chunks/{studio-g9brbewz.js → studio-kp4vzrct.js} +4 -4
  111. package/dist/chunks/studio-kpx02gaa.js +7 -0
  112. package/dist/chunks/{studio-3na1r48j.js → studio-kv1728ex.js} +8 -8
  113. package/dist/chunks/studio-m25ry0mf.js +5 -0
  114. package/dist/chunks/studio-mcbwmkyh.js +5 -0
  115. package/dist/chunks/studio-meajkr51.js +5 -0
  116. package/dist/chunks/studio-mkjrjpr2.js +6 -0
  117. package/dist/chunks/{studio-eqcddvc2.js → studio-mr084886.js} +201 -201
  118. package/dist/chunks/studio-mrb10hv3.js +5 -0
  119. package/dist/chunks/{studio-0939t1q1.js → studio-nhpg405j.js} +4 -4
  120. package/dist/chunks/studio-nsec0hxm.js +64 -0
  121. package/dist/chunks/{studio-xx3r3sb0.js → studio-nv0mh0p5.js} +4 -4
  122. package/dist/chunks/studio-pafmb06w.js +5 -0
  123. package/dist/chunks/{studio-pm17wdc4.js → studio-pgftd79b.js} +4 -4
  124. package/dist/chunks/{studio-4zd6an2b.js → studio-pk961xgz.js} +4 -4
  125. package/dist/chunks/studio-pzbr7g05.js +5 -0
  126. package/dist/chunks/studio-qcc5hsw2.js +10 -0
  127. package/dist/chunks/studio-qfq58c8n.js +5 -0
  128. package/dist/chunks/studio-qvb2jr83.js +5 -0
  129. package/dist/chunks/studio-r85zw6ay.js +5 -0
  130. package/dist/chunks/studio-s0kwce5w.js +9 -0
  131. package/dist/chunks/studio-s6ymkf3q.js +14 -0
  132. package/dist/chunks/{studio-0x6f3nk9.js → studio-s7p5ccxa.js} +4 -4
  133. package/dist/chunks/{studio-1410q5dw.js → studio-s9jjap3x.js} +4 -4
  134. package/dist/chunks/{studio-evq47j2z.js → studio-t5hde1ws.js} +4 -4
  135. package/dist/chunks/studio-vj9yv897.js +5 -0
  136. package/dist/chunks/studio-wmak8xjw.js +5 -0
  137. package/dist/chunks/{studio-bnc50f9h.js → studio-wqsmvtqj.js} +4 -4
  138. package/dist/chunks/studio-x3z3rhej.js +5 -0
  139. package/dist/chunks/{studio-bg8pzprg.js → studio-xb55kpmy.js} +4 -4
  140. package/dist/chunks/studio-xxtdajmv.js +12 -0
  141. package/dist/chunks/studio-xxttcym1.js +5 -0
  142. package/dist/chunks/{studio-90zkgne5.js → studio-y2zsnzye.js} +7 -7
  143. package/dist/chunks/{studio-3qr08sxq.js → studio-y3tjh2xb.js} +3 -3
  144. package/dist/chunks/studio-y4f1rdsj.js +5 -0
  145. package/dist/chunks/studio-ybkd5w8k.js +5 -0
  146. package/dist/chunks/{studio-tpxcryf2.js → studio-yetr4gg1.js} +4 -4
  147. package/dist/chunks/studio-z295anhs.js +6 -0
  148. package/dist/chunks/studio-z89e6wpg.js +9 -0
  149. package/dist/chunks/{studio-5tet77de.js → studio-zbwr6prc.js} +3 -3
  150. package/dist/chunks/{studio-daksw8kh.js → studio-zdbsv5q2.js} +4 -4
  151. package/dist/chunks/{studio-abh9kfdh.js → studio-zvthj8hg.js} +4 -4
  152. package/dist/chunks/toast-2kn2vrn4.js +4 -0
  153. package/dist/chunks/{toast-host-g3r2s0kn.js → toast-host-3rxeyj3d.js} +3 -3
  154. package/dist/chunks/{tooltip-dj1pvgz7.js → tooltip-ghkxkasp.js} +3 -3
  155. package/dist/chunks/{tree-j0ebwr5s.js → tree-vw4nc63s.js} +2 -2
  156. package/dist/chunks/tsMode-7gngmamr.js +14 -0
  157. package/dist/chunks/workspace-gv0hxgsm.js +4 -0
  158. package/dist/chunks/workspace-home-j7e0mjy5.js +4 -0
  159. package/dist/chunks/{ws-client-arz2qsy9.js → ws-client-vs11sxc5.js} +3 -3
  160. package/dist/iframe-entry.js +14 -14
  161. package/dist/manifest.json +84 -83
  162. package/dist/studio.js +99 -98
  163. package/dist/workers/ts.worker.js +3 -3
  164. package/package.json +12 -12
  165. package/src/browse/library-layouts.ts +9 -12
  166. package/src/browse/library-pane.ts +22 -16
  167. package/src/browse/library-source.ts +3 -4
  168. package/src/browse/preview-style.ts +2 -1
  169. package/src/canvas/canvas-live-render.ts +2 -5
  170. package/src/canvas/canvas-page-context.ts +5 -0
  171. package/src/canvas/canvas-render.ts +6 -1
  172. package/src/canvas/iframe-drop.ts +84 -1
  173. package/src/canvas/iframe-entry.ts +9 -6
  174. package/src/canvas/iframe-render.ts +13 -0
  175. package/src/collab/collab-session.ts +2 -2
  176. package/src/commands/levels.ts +1 -1
  177. package/src/content/entry-commands.ts +32 -27
  178. package/src/content/entry-editor.ts +46 -44
  179. package/src/content/entry-inspector.ts +15 -12
  180. package/src/content/entry-model.ts +3 -3
  181. package/src/content/entry-summaries.ts +5 -5
  182. package/src/content/hold-state.ts +172 -0
  183. package/src/content/page-summaries.ts +10 -14
  184. package/src/create/add-new-flow.ts +2 -1
  185. package/src/editor/convert-targets.ts +2 -23
  186. package/src/editor/inline-edit.ts +6 -1
  187. package/src/editor/repeater-scope.ts +333 -74
  188. package/src/editor/slash-menu.ts +35 -17
  189. package/src/files/files.ts +18 -0
  190. package/src/format/format-choices.ts +5 -5
  191. package/src/format/format-host.ts +35 -3
  192. package/src/grid/redirects-grid.ts +4 -4
  193. package/src/grid/sources/content-source.ts +42 -66
  194. package/src/locale/element-names.ts +131 -0
  195. package/src/panels/block-action-bar.ts +3 -4
  196. package/src/panels/dnd.ts +3 -1
  197. package/src/panels/elements-panel.ts +93 -36
  198. package/src/panels/events-panel.ts +6 -2
  199. package/src/panels/formula-workspace.ts +9 -0
  200. package/src/panels/imports-panel.ts +3 -2
  201. package/src/panels/navigator-panels.ts +10 -10
  202. package/src/panels/panel-registry.ts +3 -3
  203. package/src/panels/properties-panel.ts +127 -35
  204. package/src/panels/site-panel.ts +2 -1
  205. package/src/panels/statement-editor.ts +4 -0
  206. package/src/panels/style-panel.ts +2 -1
  207. package/src/panels/styles-panel.ts +2 -2
  208. package/src/panels/tab-strip.ts +29 -26
  209. package/src/platforms/cloud.ts +5 -2
  210. package/src/services/ai-command-tools.ts +2 -1
  211. package/src/services/ai-project-tools.ts +21 -8
  212. package/src/services/ai-tools.ts +5 -5
  213. package/src/services/ai-write-report.ts +22 -4
  214. package/src/services/context-manager.ts +110 -2
  215. package/src/services/document-assistant.ts +2 -2
  216. package/src/services/harness/chat-reducer.ts +9 -4
  217. package/src/services/jxn-language.ts +110 -0
  218. package/src/services/model-uri.ts +3 -0
  219. package/src/services/monaco-setup.ts +6 -2
  220. package/src/services/render-critic.ts +234 -12
  221. package/src/services/tool-executor.ts +16 -8
  222. package/src/settings/contributed-section.ts +2 -1
  223. package/src/settings/extension-commands.ts +2 -1
  224. package/src/settings/general-settings.ts +2 -2
  225. package/src/settings/settings-document.ts +5 -5
  226. package/src/shell.ts +1 -1
  227. package/src/studio.ts +28 -11
  228. package/src/style/variables-view.ts +2 -2
  229. package/src/surfaces/collections-panel.json +1 -1
  230. package/src/surfaces/collections-panel.ts +1 -1
  231. package/src/surfaces/entry-editor.json +10 -10
  232. package/src/surfaces/entry-editor.ts +22 -19
  233. package/src/surfaces/entry-inspector.json +11 -11
  234. package/src/surfaces/entry-inspector.ts +17 -10
  235. package/src/surfaces/panel-elements.json +466 -206
  236. package/src/surfaces/panel-elements.ts +61 -25
  237. package/src/surfaces/tab-strip.json +5 -5
  238. package/src/surfaces/tab-strip.ts +2 -2
  239. package/src/tabs/project-config.ts +13 -13
  240. package/src/tabs/tab.ts +7 -2
  241. package/src/types.ts +13 -2
  242. package/src/ui/expression-editor.ts +10 -5
  243. package/src/ui/schema-form.ts +18 -1
  244. package/src/utils/edit-display.ts +27 -1
  245. package/src/view.ts +9 -2
  246. package/src/workspace/tab-workspace.ts +2 -2
  247. package/src/workspace/workspace-back.ts +2 -2
  248. package/dist/chunks/2020-906vx2dq.js +0 -4
  249. package/dist/chunks/adapter-hnvad61x.js +0 -4
  250. package/dist/chunks/add-new-flow-v0pm96mr.js +0 -4
  251. package/dist/chunks/cf-settings-mkbcz4z2.js +0 -4
  252. package/dist/chunks/color-04361ttk.js +0 -4
  253. package/dist/chunks/color-field-qv5r2b16.js +0 -4
  254. package/dist/chunks/components-w5zqwva1.js +0 -4
  255. package/dist/chunks/content-source-g38w0d3f.js +0 -4
  256. package/dist/chunks/convert-to-repeater-r8sfxjjm.js +0 -4
  257. package/dist/chunks/editor-wvf5e6j9.js +0 -4
  258. package/dist/chunks/entry-commands-t13dyw3c.js +0 -4
  259. package/dist/chunks/extension-sections-vjzw46xb.js +0 -4
  260. package/dist/chunks/file-ops-1sghzgcr.js +0 -4
  261. package/dist/chunks/files-zrqtgt41.js +0 -4
  262. package/dist/chunks/format-host-9gy76erh.js +0 -4
  263. package/dist/chunks/fs-events-45rhg3me.js +0 -4
  264. package/dist/chunks/grid-open-t4fq6bbm.js +0 -4
  265. package/dist/chunks/iframe-entry-42hpmwz5.js +0 -5
  266. package/dist/chunks/iframe-host-9aq8ze3q.js +0 -4
  267. package/dist/chunks/index-f9qr7kzh.js +0 -4
  268. package/dist/chunks/jsonMode-vj30te2h.js +0 -13
  269. package/dist/chunks/jx-validate-r4ax11e3.js +0 -4
  270. package/dist/chunks/layers-m49nmwvx.js +0 -4
  271. package/dist/chunks/layers-panel-zr92pwdp.js +0 -4
  272. package/dist/chunks/lit-html-k2mb9k0r.js +0 -4
  273. package/dist/chunks/media-library-j74rt0w4.js +0 -4
  274. package/dist/chunks/media-open-mypr0k6b.js +0 -4
  275. package/dist/chunks/media-picker-pemtbsjv.js +0 -4
  276. package/dist/chunks/menu-d2jxpgma.js +0 -4
  277. package/dist/chunks/monaco-buffer-pa0g6ax7.js +0 -4
  278. package/dist/chunks/monaco-setup-0hw9f835.js +0 -4
  279. package/dist/chunks/notify-bwehrp7q.js +0 -4
  280. package/dist/chunks/parse-hee7ne9b.js +0 -4
  281. package/dist/chunks/platform-kv0k65cy.js +0 -4
  282. package/dist/chunks/popover-9tf4cjrk.js +0 -4
  283. package/dist/chunks/publish-panel-vg1n880b.js +0 -4
  284. package/dist/chunks/publish-quick-4fwngwrw.js +0 -4
  285. package/dist/chunks/publish-workspace-jv4w2bx2.js +0 -4
  286. package/dist/chunks/quick-search-nh29rt8a.js +0 -4
  287. package/dist/chunks/references-vqyr5s9x.js +0 -4
  288. package/dist/chunks/right-panel-3ws9f2w0.js +0 -4
  289. package/dist/chunks/source-control-h3hcs5gy.js +0 -4
  290. package/dist/chunks/studio-0khd8xtx.js +0 -4
  291. package/dist/chunks/studio-1ctnw3xv.js +0 -5
  292. package/dist/chunks/studio-1ks5d9y4.js +0 -5
  293. package/dist/chunks/studio-1y9mab9m.js +0 -5
  294. package/dist/chunks/studio-2kpxm0eh.js +0 -7
  295. package/dist/chunks/studio-2zz4qbv9.js +0 -5
  296. package/dist/chunks/studio-3pz4t5a2.js +0 -5
  297. package/dist/chunks/studio-4f7thq0p.js +0 -5
  298. package/dist/chunks/studio-61rg2cz5.js +0 -5
  299. package/dist/chunks/studio-7rrdbvex.js +0 -5
  300. package/dist/chunks/studio-9c6cbq2c.js +0 -4
  301. package/dist/chunks/studio-9dq7rwc7.js +0 -5
  302. package/dist/chunks/studio-9gr7xs9r.js +0 -6
  303. package/dist/chunks/studio-a88ej93p.js +0 -7
  304. package/dist/chunks/studio-acer0g8w.js +0 -5
  305. package/dist/chunks/studio-az3wvyh2.js +0 -5
  306. package/dist/chunks/studio-brh8d2pr.js +0 -5
  307. package/dist/chunks/studio-c2fa783p.js +0 -9
  308. package/dist/chunks/studio-cfnn70h1.js +0 -5
  309. package/dist/chunks/studio-cqxj4fcy.js +0 -5
  310. package/dist/chunks/studio-cw11h078.js +0 -5
  311. package/dist/chunks/studio-dn56z7sn.js +0 -5
  312. package/dist/chunks/studio-egnjpyde.js +0 -9
  313. package/dist/chunks/studio-ejrypvmq.js +0 -5
  314. package/dist/chunks/studio-frc16j8v.js +0 -10
  315. package/dist/chunks/studio-gnazwtv3.js +0 -5
  316. package/dist/chunks/studio-hfqpfmpk.js +0 -5
  317. package/dist/chunks/studio-hh394phe.js +0 -5
  318. package/dist/chunks/studio-j0zf5x2x.js +0 -5
  319. package/dist/chunks/studio-j5fcp6gj.js +0 -5
  320. package/dist/chunks/studio-jd1qb1st.js +0 -7
  321. package/dist/chunks/studio-k0xzrse2.js +0 -64
  322. package/dist/chunks/studio-k1xqrgm5.js +0 -5
  323. package/dist/chunks/studio-k3we3kqb.js +0 -5
  324. package/dist/chunks/studio-knsjyx7n.js +0 -5
  325. package/dist/chunks/studio-mrjtnm62.js +0 -5
  326. package/dist/chunks/studio-n9qba0gx.js +0 -5
  327. package/dist/chunks/studio-nzemfbkk.js +0 -14
  328. package/dist/chunks/studio-pwctzka3.js +0 -16
  329. package/dist/chunks/studio-q80fg1d6.js +0 -12
  330. package/dist/chunks/studio-q9hx2qp0.js +0 -5
  331. package/dist/chunks/studio-qrzmfaf6.js +0 -5
  332. package/dist/chunks/studio-r6mx7vm5.js +0 -7
  333. package/dist/chunks/studio-swedpd82.js +0 -5
  334. package/dist/chunks/studio-tmfcn347.js +0 -6
  335. package/dist/chunks/studio-v5wktj6f.js +0 -5
  336. package/dist/chunks/studio-vpevkfxw.js +0 -5
  337. package/dist/chunks/studio-wqfaqw4m.js +0 -5
  338. package/dist/chunks/studio-xpx91fby.js +0 -6
  339. package/dist/chunks/studio-xva3hzkv.js +0 -5
  340. package/dist/chunks/studio-z3fztxrp.js +0 -9
  341. package/dist/chunks/studio-z9453ypn.js +0 -6
  342. package/dist/chunks/toast-w11qpkyz.js +0 -4
  343. package/dist/chunks/tsMode-jg1dtphj.js +0 -14
  344. package/dist/chunks/workspace-6ztqcrsh.js +0 -4
  345. package/dist/chunks/workspace-home-rse9h8a0.js +0 -4
  346. package/src/content/draft-state.ts +0 -108
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://jxsuite.com/schema/v1",
3
3
  "$id": "StudioPanelElements",
4
- "$description": "The Insert panel: the palette a page is built out of. One filter, then one accordion — the project's own components first, then the HTML elements by category — and a card per thing that can be inserted. The adapter (`surfaces/panel-elements.ts`) is handed sections whose cards are already filtered, already open or closed, and already carry the tag they insert, so nothing here asks what an element is, which npm components the document has enabled, or what the filter means. A card is inserted by CLICK from this document and by DRAG from `panels/dnd.ts`, which registers against the painted card — that seam is why three class names survive the conversion, and the style block says why.",
4
+ "$description": "The Insert panel: the palette a page is built out of. Two tabs, Elements and Components, then one filter for whichever is showing, then that tab's cards: the HTML elements in an accordion of categories, or the project's components. The adapter (`surfaces/panel-elements.ts`) is handed cards that are already filtered, already named in the reader's language and already sorted into sections that know whether they are open, so nothing here asks what an element is called, which npm components the document has enabled, or what the filter means. A card is inserted by CLICK from this document and by DRAG from `panels/dnd.ts`, which registers against the painted card — that seam is why three class names survive the conversion, and the style block says why.",
5
5
  "tagName": "div",
6
6
  "attributes": {
7
7
  "part": "palette"
@@ -38,9 +38,98 @@
38
38
  "color": "var(--fg-dim)",
39
39
  "fontSize": "var(--jx-text-sm)",
40
40
  "fontStyle": "italic"
41
+ },
42
+ "& [part=\"tabs\"]": {
43
+ "$description": "Two words in the Navigator's column. Each tab takes half the strip rather than the kit tab's own width, so the pair reads as a switch between two halves of one palette, not as two documents.",
44
+ "flex": "0 0 auto",
45
+ "gap": "0",
46
+ "fontSize": "var(--jx-text-sm)"
47
+ },
48
+ "& [part=\"tab\"]": {
49
+ "flex": "1 1 0",
50
+ "justifyContent": "center",
51
+ "minWidth": "0",
52
+ "maxWidth": "none",
53
+ "padding": "var(--jx-space-1) var(--jx-space-2)"
54
+ },
55
+ "& [part=\"panel\"]": {
56
+ "$description": "The kit's tab panel pads itself for a dialog; here the filter above it already sets the inset, and the accordion runs edge to edge as it did before the tabs.",
57
+ "padding": "0",
58
+ "minHeight": "0"
59
+ },
60
+ "& [part=\"components-section\"]": {
61
+ "$description": "The component cards sit in one column with the inset an accordion item gives its body, since this tab has no accordion around them.",
62
+ "padding": "0 var(--jx-space-2) var(--jx-space-2)"
63
+ },
64
+ "& [part=\"element-name\"]": {
65
+ "$description": "A card's caption leads with the element's name in the reader's language, in the chrome's own type. `.element-card-label` (styles/panels.css) is monospace for the tag it used to hold alone; the name is prose, so it takes the sans face back.",
66
+ "fontFamily": "var(--jx-font-sans)",
67
+ "fontSize": "var(--jx-text-sm)",
68
+ "color": "var(--fg)"
69
+ },
70
+ "& [part=\"element-tag\"]": {
71
+ "$description": "The tag rides beside the name, dimmer, for the author who knows HTML and for the filter, which matches it too.",
72
+ "marginInlineStart": "var(--jx-space-1)",
73
+ "color": "var(--fg-dim)"
74
+ },
75
+ "& [part=\"empty-actions\"]": {
76
+ "display": "flex",
77
+ "flexWrap": "wrap",
78
+ "justifyContent": "center",
79
+ "gap": "var(--jx-space-2)"
41
80
  }
42
81
  },
43
82
  "children": [
83
+ {
84
+ "tagName": "jx-tabs",
85
+ "attributes": {
86
+ "part": "tabs",
87
+ "selected": "${state.tab}"
88
+ },
89
+ "$props": {
90
+ "label": "Insert"
91
+ },
92
+ "onchange": {
93
+ "$prototype": "Function",
94
+ "body": [
95
+ {
96
+ "operator": "call",
97
+ "target": {
98
+ "$ref": "#/state/selectTab"
99
+ },
100
+ "value": [
101
+ {
102
+ "$ref": "event#/detail"
103
+ }
104
+ ]
105
+ }
106
+ ]
107
+ },
108
+ "children": [
109
+ {
110
+ "tagName": "jx-tab",
111
+ "attributes": {
112
+ "part": "tab",
113
+ "id": "insert-tab-elements",
114
+ "data-tab": "elements",
115
+ "value": "elements",
116
+ "label": "Elements",
117
+ "panel": "insert-panel-elements"
118
+ }
119
+ },
120
+ {
121
+ "tagName": "jx-tab",
122
+ "attributes": {
123
+ "part": "tab",
124
+ "id": "insert-tab-components",
125
+ "data-tab": "components",
126
+ "value": "components",
127
+ "label": "Components",
128
+ "panel": "insert-panel-components"
129
+ }
130
+ }
131
+ ]
132
+ },
44
133
  {
45
134
  "tagName": "jx-textfield",
46
135
  "attributes": {
@@ -50,8 +139,8 @@
50
139
  "size": "sm",
51
140
  "type": "search",
52
141
  "clearable": true,
53
- "label": "Filter elements",
54
- "placeholder": "Filter elements…",
142
+ "label": "${state.filterLabel}",
143
+ "placeholder": "${state.filterLabel}…",
55
144
  "value": {
56
145
  "$ref": "#/state/filter"
57
146
  }
@@ -74,292 +163,463 @@
74
163
  }
75
164
  },
76
165
  {
77
- "tagName": "div",
166
+ "tagName": "jx-tab-panel",
78
167
  "attributes": {
79
- "part": "empty-slot",
80
- "role": "none"
168
+ "part": "panel",
169
+ "id": "insert-panel-elements",
170
+ "data-tab": "elements"
81
171
  },
82
- "style": {
83
- "display": "contents"
84
- },
85
- "$switch": {
86
- "$ref": "#/state/emptyState"
172
+ "$props": {
173
+ "active": {
174
+ "$ref": "#/state/elementsShowing"
175
+ },
176
+ "labelledby": "insert-tab-elements"
87
177
  },
88
- "cases": {
89
- "filtered": {
178
+ "children": [
179
+ {
90
180
  "tagName": "div",
91
181
  "attributes": {
92
- "part": "empty"
182
+ "part": "empty-slot",
183
+ "role": "none"
93
184
  },
94
- "children": [
95
- {
96
- "tagName": "p",
97
- "attributes": {
98
- "part": "empty-message"
99
- },
100
- "textContent": "Nothing here matches “${state.filter}”."
101
- },
102
- {
185
+ "style": {
186
+ "display": "contents"
187
+ },
188
+ "$switch": {
189
+ "$ref": "#/state/elementsEmpty"
190
+ },
191
+ "cases": {
192
+ "filtered": {
103
193
  "tagName": "div",
104
194
  "attributes": {
105
- "part": "empty-actions"
195
+ "part": "empty"
106
196
  },
107
197
  "children": [
108
198
  {
109
- "tagName": "jx-button",
110
- "$props": {
111
- "size": "sm"
112
- },
199
+ "tagName": "p",
113
200
  "attributes": {
114
- "part": "clear-filter"
201
+ "part": "empty-message"
115
202
  },
116
- "onclick": {
117
- "$prototype": "Function",
118
- "body": [
119
- {
120
- "operator": "call",
121
- "target": {
122
- "$ref": "#/state/clearFilter"
123
- }
124
- }
125
- ]
203
+ "textContent": "Nothing here matches “${state.filter}”."
204
+ },
205
+ {
206
+ "tagName": "div",
207
+ "attributes": {
208
+ "part": "empty-actions"
126
209
  },
127
210
  "children": [
128
211
  {
129
- "tagName": "span",
130
- "textContent": "Clear the filter"
212
+ "tagName": "jx-button",
213
+ "$props": {
214
+ "size": "sm"
215
+ },
216
+ "attributes": {
217
+ "part": "clear-filter"
218
+ },
219
+ "onclick": {
220
+ "$prototype": "Function",
221
+ "body": [
222
+ {
223
+ "operator": "call",
224
+ "target": {
225
+ "$ref": "#/state/clearFilter"
226
+ }
227
+ }
228
+ ]
229
+ },
230
+ "children": [
231
+ {
232
+ "tagName": "span",
233
+ "textContent": "Clear the filter"
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ "tagName": "div",
239
+ "attributes": {
240
+ "part": "other-tab-slot",
241
+ "role": "none"
242
+ },
243
+ "style": {
244
+ "display": "contents"
245
+ },
246
+ "$switch": {
247
+ "$ref": "#/state/hasOtherMatches"
248
+ },
249
+ "cases": {
250
+ "true": {
251
+ "tagName": "jx-button",
252
+ "$props": {
253
+ "size": "sm"
254
+ },
255
+ "attributes": {
256
+ "part": "show-other-tab"
257
+ },
258
+ "onclick": {
259
+ "$prototype": "Function",
260
+ "body": [
261
+ {
262
+ "operator": "call",
263
+ "target": {
264
+ "$ref": "#/state/showOtherTab"
265
+ }
266
+ }
267
+ ]
268
+ },
269
+ "children": [
270
+ {
271
+ "tagName": "span",
272
+ "textContent": "${state.otherMatches}"
273
+ }
274
+ ]
275
+ }
276
+ }
131
277
  }
132
278
  ]
133
279
  }
134
280
  ]
281
+ },
282
+ "empty": {
283
+ "tagName": "div",
284
+ "attributes": {
285
+ "part": "empty"
286
+ },
287
+ "children": [
288
+ {
289
+ "tagName": "p",
290
+ "attributes": {
291
+ "part": "empty-message"
292
+ },
293
+ "textContent": "Elements you can drop onto the page live here: headings, text, images, layout containers and more."
294
+ }
295
+ ]
135
296
  }
136
- ]
297
+ }
137
298
  },
138
- "empty": {
139
- "tagName": "div",
299
+ {
300
+ "tagName": "jx-accordion",
140
301
  "attributes": {
141
- "part": "empty"
302
+ "part": "list"
142
303
  },
143
304
  "children": [
144
305
  {
145
- "tagName": "p",
146
- "attributes": {
147
- "part": "empty-message"
306
+ "$prototype": "Array",
307
+ "items": {
308
+ "$ref": "#/state/categories"
309
+ },
310
+ "key": {
311
+ "$ref": "$map/item/name"
148
312
  },
149
- "textContent": "Elements you can drop onto the page live here — text, images, layout containers and your own components."
313
+ "map": {
314
+ "tagName": "jx-accordion-item",
315
+ "$props": {
316
+ "label": {
317
+ "$ref": "$map/item/name"
318
+ },
319
+ "open": {
320
+ "$ref": "$map/item/open"
321
+ }
322
+ },
323
+ "attributes": {
324
+ "data-section": "${$map.item.key}"
325
+ },
326
+ "ontoggle": {
327
+ "$prototype": "Function",
328
+ "body": [
329
+ {
330
+ "operator": "call",
331
+ "target": {
332
+ "$ref": "#/state/setSectionOpen"
333
+ },
334
+ "value": [
335
+ {
336
+ "$ref": "$map/item/key"
337
+ },
338
+ {
339
+ "$ref": "event#/detail"
340
+ }
341
+ ]
342
+ }
343
+ ]
344
+ },
345
+ "children": [
346
+ {
347
+ "$prototype": "Array",
348
+ "items": {
349
+ "$ref": "$map/item/elements"
350
+ },
351
+ "key": {
352
+ "$ref": "$map/item/tag"
353
+ },
354
+ "map": {
355
+ "tagName": "div",
356
+ "attributes": {
357
+ "class": "element-card",
358
+ "data-block-tag": "${$map.item.tag}",
359
+ "title": "${$map.item.description}"
360
+ },
361
+ "onclick": {
362
+ "$prototype": "Function",
363
+ "body": [
364
+ {
365
+ "operator": "call",
366
+ "target": {
367
+ "$ref": "#/state/insertElement"
368
+ },
369
+ "value": [
370
+ {
371
+ "$ref": "$map/item/tag"
372
+ }
373
+ ]
374
+ }
375
+ ]
376
+ },
377
+ "children": [
378
+ {
379
+ "tagName": "div",
380
+ "attributes": {
381
+ "class": "element-card-preview"
382
+ }
383
+ },
384
+ {
385
+ "tagName": "div",
386
+ "attributes": {
387
+ "class": "element-card-label"
388
+ },
389
+ "children": [
390
+ {
391
+ "tagName": "span",
392
+ "attributes": {
393
+ "part": "element-name"
394
+ },
395
+ "textContent": "${$map.item.name}"
396
+ },
397
+ {
398
+ "tagName": "span",
399
+ "attributes": {
400
+ "part": "element-tag"
401
+ },
402
+ "textContent": "<${$map.item.tag}>"
403
+ }
404
+ ]
405
+ }
406
+ ]
407
+ }
408
+ }
409
+ ]
410
+ }
150
411
  }
151
412
  ]
152
413
  }
153
- }
414
+ ]
154
415
  },
155
416
  {
156
- "tagName": "jx-accordion",
417
+ "tagName": "jx-tab-panel",
157
418
  "attributes": {
158
- "part": "list"
419
+ "part": "panel",
420
+ "id": "insert-panel-components",
421
+ "data-tab": "components"
422
+ },
423
+ "$props": {
424
+ "active": {
425
+ "$ref": "#/state/componentsShowing"
426
+ },
427
+ "labelledby": "insert-tab-components"
159
428
  },
160
429
  "children": [
161
430
  {
162
431
  "tagName": "div",
163
432
  "attributes": {
164
- "part": "components-slot",
165
- "role": "none",
166
- "hidden": "${state.hasComponents ? null : ''}"
433
+ "part": "empty-slot",
434
+ "role": "none"
167
435
  },
168
436
  "style": {
169
- "$description": "The section stands or falls as a whole, so the slot is `display: contents` — the accordion item inside it has to be the accordion's own layout child. `hidden` is what keeps the separator honest: `jx-accordion` gives a top border to every child that FOLLOWS a visible one, so an empty slot left visible would draw a line above the first category with nothing above it.",
170
437
  "display": "contents"
171
438
  },
172
439
  "$switch": {
173
- "$ref": "#/state/hasComponents"
440
+ "$ref": "#/state/componentsEmpty"
174
441
  },
175
442
  "cases": {
176
- "true": {
177
- "tagName": "jx-accordion-item",
178
- "$props": {
179
- "label": "Components",
180
- "open": {
181
- "$ref": "#/state/componentsOpen"
182
- }
183
- },
443
+ "filtered": {
444
+ "tagName": "div",
184
445
  "attributes": {
185
- "data-section": "components"
186
- },
187
- "ontoggle": {
188
- "$prototype": "Function",
189
- "body": [
190
- {
191
- "operator": "call",
192
- "target": {
193
- "$ref": "#/state/setComponentsOpen"
194
- },
195
- "value": [
196
- {
197
- "$ref": "event#/detail"
198
- }
199
- ]
200
- }
201
- ]
446
+ "part": "empty"
202
447
  },
203
448
  "children": [
449
+ {
450
+ "tagName": "p",
451
+ "attributes": {
452
+ "part": "empty-message"
453
+ },
454
+ "textContent": "Nothing here matches “${state.filter}”."
455
+ },
204
456
  {
205
457
  "tagName": "div",
206
458
  "attributes": {
207
- "class": "components-section"
459
+ "part": "empty-actions"
208
460
  },
209
461
  "children": [
210
462
  {
211
- "$prototype": "Array",
212
- "items": {
213
- "$ref": "#/state/components"
463
+ "tagName": "jx-button",
464
+ "$props": {
465
+ "size": "sm"
214
466
  },
215
- "key": {
216
- "$ref": "$map/item/tagName"
467
+ "attributes": {
468
+ "part": "clear-filter"
217
469
  },
218
- "map": {
219
- "tagName": "div",
220
- "attributes": {
221
- "class": "element-card",
222
- "data-component-tag": "${$map.item.tagName}",
223
- "title": "${$map.item.title}"
224
- },
225
- "onclick": {
226
- "$prototype": "Function",
227
- "body": [
228
- {
229
- "operator": "call",
230
- "target": {
231
- "$ref": "#/state/insertComponent"
232
- },
233
- "value": [
234
- {
235
- "$ref": "$map/item/tagName"
236
- }
237
- ]
238
- }
239
- ]
240
- },
241
- "children": [
470
+ "onclick": {
471
+ "$prototype": "Function",
472
+ "body": [
242
473
  {
243
- "tagName": "div",
244
- "attributes": {
245
- "class": "element-card-preview"
246
- },
247
- "children": [
474
+ "operator": "call",
475
+ "target": {
476
+ "$ref": "#/state/clearFilter"
477
+ }
478
+ }
479
+ ]
480
+ },
481
+ "children": [
482
+ {
483
+ "tagName": "span",
484
+ "textContent": "Clear the filter"
485
+ }
486
+ ]
487
+ },
488
+ {
489
+ "tagName": "div",
490
+ "attributes": {
491
+ "part": "other-tab-slot",
492
+ "role": "none"
493
+ },
494
+ "style": {
495
+ "display": "contents"
496
+ },
497
+ "$switch": {
498
+ "$ref": "#/state/hasOtherMatches"
499
+ },
500
+ "cases": {
501
+ "true": {
502
+ "tagName": "jx-button",
503
+ "$props": {
504
+ "size": "sm"
505
+ },
506
+ "attributes": {
507
+ "part": "show-other-tab"
508
+ },
509
+ "onclick": {
510
+ "$prototype": "Function",
511
+ "body": [
248
512
  {
249
- "tagName": "span",
250
- "attributes": {
251
- "part": "component-tag"
252
- },
253
- "textContent": "<${$map.item.tagName}>"
513
+ "operator": "call",
514
+ "target": {
515
+ "$ref": "#/state/showOtherTab"
516
+ }
254
517
  }
255
518
  ]
256
519
  },
257
- {
258
- "tagName": "div",
259
- "attributes": {
260
- "class": "element-card-label"
261
- },
262
- "textContent": "${$map.item.tagName}"
263
- }
264
- ]
520
+ "children": [
521
+ {
522
+ "tagName": "span",
523
+ "textContent": "${state.otherMatches}"
524
+ }
525
+ ]
526
+ }
265
527
  }
266
528
  }
267
529
  ]
268
530
  }
269
531
  ]
532
+ },
533
+ "empty": {
534
+ "tagName": "div",
535
+ "attributes": {
536
+ "part": "empty"
537
+ },
538
+ "children": [
539
+ {
540
+ "tagName": "p",
541
+ "attributes": {
542
+ "part": "empty-message"
543
+ },
544
+ "textContent": "Components you make live here. Right-click a block and choose Convert to Component, or create one with Add new."
545
+ }
546
+ ]
270
547
  }
271
548
  }
272
549
  },
273
550
  {
274
- "$prototype": "Array",
275
- "items": {
276
- "$ref": "#/state/categories"
277
- },
278
- "key": {
279
- "$ref": "$map/item/name"
551
+ "tagName": "div",
552
+ "attributes": {
553
+ "class": "components-section",
554
+ "part": "components-section"
280
555
  },
281
- "map": {
282
- "tagName": "jx-accordion-item",
283
- "$props": {
284
- "label": {
285
- "$ref": "$map/item/name"
556
+ "children": [
557
+ {
558
+ "$prototype": "Array",
559
+ "items": {
560
+ "$ref": "#/state/components"
286
561
  },
287
- "open": {
288
- "$ref": "$map/item/open"
289
- }
290
- },
291
- "attributes": {
292
- "data-section": "${$map.item.name}"
293
- },
294
- "ontoggle": {
295
- "$prototype": "Function",
296
- "body": [
297
- {
298
- "operator": "call",
299
- "target": {
300
- "$ref": "#/state/setSectionOpen"
301
- },
302
- "value": [
303
- {
304
- "$ref": "$map/item/name"
305
- },
562
+ "key": {
563
+ "$ref": "$map/item/tagName"
564
+ },
565
+ "map": {
566
+ "tagName": "div",
567
+ "attributes": {
568
+ "class": "element-card",
569
+ "data-component-tag": "${$map.item.tagName}",
570
+ "title": "${$map.item.title}"
571
+ },
572
+ "onclick": {
573
+ "$prototype": "Function",
574
+ "body": [
306
575
  {
307
- "$ref": "event#/detail"
576
+ "operator": "call",
577
+ "target": {
578
+ "$ref": "#/state/insertComponent"
579
+ },
580
+ "value": [
581
+ {
582
+ "$ref": "$map/item/tagName"
583
+ }
584
+ ]
308
585
  }
309
586
  ]
310
- }
311
- ]
312
- },
313
- "children": [
314
- {
315
- "$prototype": "Array",
316
- "items": {
317
- "$ref": "$map/item/elements"
318
- },
319
- "key": {
320
- "$ref": "$map/item/tag"
321
587
  },
322
- "map": {
323
- "tagName": "div",
324
- "attributes": {
325
- "class": "element-card",
326
- "data-block-tag": "${$map.item.tag}"
327
- },
328
- "onclick": {
329
- "$prototype": "Function",
330
- "body": [
588
+ "children": [
589
+ {
590
+ "tagName": "div",
591
+ "attributes": {
592
+ "class": "element-card-preview"
593
+ },
594
+ "children": [
331
595
  {
332
- "operator": "call",
333
- "target": {
334
- "$ref": "#/state/insertElement"
596
+ "tagName": "span",
597
+ "attributes": {
598
+ "part": "component-tag"
335
599
  },
336
- "value": [
337
- {
338
- "$ref": "$map/item/tag"
339
- }
340
- ]
600
+ "textContent": "<${$map.item.tagName}>"
341
601
  }
342
602
  ]
343
603
  },
344
- "children": [
345
- {
346
- "tagName": "div",
347
- "attributes": {
348
- "class": "element-card-preview"
349
- }
604
+ {
605
+ "tagName": "div",
606
+ "attributes": {
607
+ "class": "element-card-label"
350
608
  },
351
- {
352
- "tagName": "div",
353
- "attributes": {
354
- "class": "element-card-label"
355
- },
356
- "textContent": "<${$map.item.tag}>"
357
- }
358
- ]
359
- }
609
+ "children": [
610
+ {
611
+ "tagName": "span",
612
+ "attributes": {
613
+ "part": "element-name"
614
+ },
615
+ "textContent": "${$map.item.tagName}"
616
+ }
617
+ ]
618
+ }
619
+ ]
360
620
  }
361
- ]
362
- }
621
+ }
622
+ ]
363
623
  }
364
624
  ]
365
625
  }