@kubex/zinc 1.1.185 → 2.0.1

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 (358) hide show
  1. package/.browserslistrc +2 -0
  2. package/.github/workflows/js_build_and_deploy.yaml +54 -1
  3. package/.github/workflows/test.yaml +27 -0
  4. package/dist/chunks/zn.UWJLIXDT.js +1 -0
  5. package/dist/custom-elements.json +10319 -2666
  6. package/dist/vscode.html-custom-data.json +1012 -57
  7. package/dist/web-types.json +2097 -145
  8. package/dist/zn.d.ts +2294 -416
  9. package/dist/zn.min.css +1 -1
  10. package/dist/zn.min.js +2310 -1637
  11. package/docs/_includes/default.njk +4 -1
  12. package/docs/assets/scripts/docs.js +22 -6
  13. package/docs/assets/styles/docs.css +9 -2
  14. package/docs/data/report-table-day-compare.json +380 -0
  15. package/docs/data/report-table.json +314 -0
  16. package/docs/pages/components/avatar-group.md +57 -0
  17. package/docs/pages/components/badge.md +67 -0
  18. package/docs/pages/components/button.md +41 -1
  19. package/docs/pages/components/chat-message.md +16 -0
  20. package/docs/pages/components/checkbox.md +1 -1
  21. package/docs/pages/components/chip.md +25 -13
  22. package/docs/pages/components/color-picker.md +37 -0
  23. package/docs/pages/components/copy-button.md +2 -2
  24. package/docs/pages/components/data-table-filter.md +33 -50
  25. package/docs/pages/components/data-table-search.md +4 -4
  26. package/docs/pages/components/data-table.md +27 -3
  27. package/docs/pages/components/date-range.md +116 -0
  28. package/docs/pages/components/dialog.md +29 -37
  29. package/docs/pages/components/diff-row.md +28 -0
  30. package/docs/pages/components/diff.md +46 -0
  31. package/docs/pages/components/editor.md +55 -0
  32. package/docs/pages/components/icon.md +46 -1
  33. package/docs/pages/components/input.md +30 -11
  34. package/docs/pages/components/item.md +35 -0
  35. package/docs/pages/components/key-value.md +25 -0
  36. package/docs/pages/components/menu.md +74 -7
  37. package/docs/pages/components/nav-item.md +15 -0
  38. package/docs/pages/components/nav-list.md +132 -0
  39. package/docs/pages/components/navbar.md +100 -1
  40. package/docs/pages/components/page.md +242 -74
  41. package/docs/pages/components/priority-list.md +43 -5
  42. package/docs/pages/components/query-builder.md +23 -0
  43. package/docs/pages/components/radio-group.md +33 -1
  44. package/docs/pages/components/radio.md +1 -1
  45. package/docs/pages/components/report-table.md +202 -0
  46. package/docs/pages/components/stat.md +30 -0
  47. package/docs/pages/components/tile.md +11 -0
  48. package/docs/pages/components/tooltip.md +1 -1
  49. package/docs/pages/components/translation-grid.md +86 -0
  50. package/docs/pages/components/vertical-stepper.md +108 -64
  51. package/package.json +2 -1
  52. package/scss/_global-spacing.scss +2 -2
  53. package/scss/_root.scss +11 -171
  54. package/scss/boot.scss +14 -0
  55. package/scss/mixins/_helper-mixins.scss +24 -2
  56. package/scss/mixins/_motion-mixins.scss +126 -0
  57. package/scss/mixins/_spacing-mixins.scss +4 -3
  58. package/scss/mixins/_tab-indicator-mixins.scss +12 -0
  59. package/scss/mixins/_typography-mixins.scss +1 -1
  60. package/scss/mixins/index.scss +14 -0
  61. package/scss/shared/_base.scss +32 -1
  62. package/scss/shared/_button-mixin.scss +7 -5
  63. package/scss/shared/_table.scss +35 -4
  64. package/scss/shared/nav.scss +4 -0
  65. package/scss/shared/shimmer.scss +1 -1
  66. package/scss/table-controls.scss +206 -0
  67. package/scss/themes/_dark.scss +1 -3
  68. package/scss/themes/_index.scss +1 -1
  69. package/scss/themes/_light.scss +46 -6
  70. package/scss/themes/_modes.scss +11 -11
  71. package/scss/themes/_openbyte.scss +944 -0
  72. package/scss/themes/_typography.scss +4 -2
  73. package/scss/variables/index.scss +0 -9
  74. package/src/components/alert/alert.component.ts +14 -4
  75. package/src/components/alert/alert.scss +55 -69
  76. package/src/components/alert/alert.test.ts +8 -0
  77. package/src/components/animated-button/animated-button.component.ts +3 -2
  78. package/src/components/animated-button/animated-button.scss +6 -23
  79. package/src/components/animated-button/animated-button.test.ts +4 -3
  80. package/src/components/avatar-group/avatar-group.component.ts +84 -0
  81. package/src/components/avatar-group/avatar-group.scss +54 -0
  82. package/src/components/avatar-group/avatar-group.test.ts +59 -0
  83. package/src/components/avatar-group/index.ts +12 -0
  84. package/src/components/badge/badge.component.ts +49 -0
  85. package/src/components/badge/badge.scss +80 -0
  86. package/src/components/badge/badge.test.ts +34 -0
  87. package/src/components/badge/index.ts +12 -0
  88. package/src/components/bulk-actions/bulk-actions.component.ts +14 -2
  89. package/src/components/button/button.component.ts +228 -8
  90. package/src/components/button/button.scss +115 -32
  91. package/src/components/button/button.test.ts +122 -0
  92. package/src/components/button-menu/button-menu.component.ts +32 -11
  93. package/src/components/button-menu/button-menu.scss +5 -1
  94. package/src/components/channel-tile/channel-tile.component.ts +34 -27
  95. package/src/components/channel-tile/channel-tile.scss +76 -43
  96. package/src/components/chart/builders.test.ts +46 -0
  97. package/src/components/chart/builders.ts +27 -3
  98. package/src/components/chart/chart-live.test.ts +4 -6
  99. package/src/components/chart/chart.component.ts +125 -5
  100. package/src/components/chart/chart.scss +121 -0
  101. package/src/components/chart/chart.test.ts +81 -0
  102. package/src/components/chat-message/chat-message.component.ts +21 -1
  103. package/src/components/chat-message/chat-message.scss +13 -2
  104. package/src/components/chat-message/chat-message.test.ts +9 -0
  105. package/src/components/checkbox/checkbox.component.ts +61 -27
  106. package/src/components/checkbox/checkbox.scss +58 -25
  107. package/src/components/checkbox-group/checkbox-group.component.ts +7 -1
  108. package/src/components/chip/chip.component.ts +11 -1
  109. package/src/components/chip/chip.scss +91 -26
  110. package/src/components/chip/chip.test.ts +17 -0
  111. package/src/components/collapsible/collapsible.component.ts +17 -3
  112. package/src/components/collapsible/collapsible.scss +19 -10
  113. package/src/components/color-picker/color-picker.component.ts +277 -0
  114. package/src/components/color-picker/color-picker.scss +141 -0
  115. package/src/components/color-picker/color-picker.test.ts +57 -0
  116. package/src/components/color-picker/index.ts +12 -0
  117. package/src/components/cols/cols.component.ts +10 -0
  118. package/src/components/cols/cols.test.ts +17 -0
  119. package/src/components/confirm/confirm.component.ts +20 -6
  120. package/src/components/confirm/confirm.test.ts +52 -0
  121. package/src/components/content-block/content-block.component.ts +38 -9
  122. package/src/components/content-block/content-block.scss +11 -5
  123. package/src/components/content-block/content-block.test.ts +26 -0
  124. package/src/components/copy-button/copy-button.component.ts +2 -2
  125. package/src/components/copy-button/copy-button.scss +17 -4
  126. package/src/components/data-select/data-select.component.ts +3 -1
  127. package/src/components/data-table/data-table.component.ts +362 -140
  128. package/src/components/data-table/data-table.scss +136 -60
  129. package/src/components/data-table/data-table.test.ts +356 -4
  130. package/src/components/data-table-filter/data-table-filter.component.ts +426 -406
  131. package/src/components/data-table-filter/data-table-filter.scss +176 -148
  132. package/src/components/data-table-filter/data-table-filter.test.ts +271 -273
  133. package/src/components/data-table-search/data-table-search.component.ts +4 -2
  134. package/src/components/data-table-search/data-table-search.scss +8 -1
  135. package/src/components/data-table-search/data-table-search.test.ts +29 -0
  136. package/src/components/date-range/date-range-math.test.ts +78 -0
  137. package/src/components/date-range/date-range-math.ts +105 -0
  138. package/src/components/date-range/date-range.component.ts +375 -0
  139. package/src/components/date-range/date-range.scss +272 -0
  140. package/src/components/date-range/date-range.test.ts +247 -0
  141. package/src/components/date-range/index.ts +12 -0
  142. package/src/components/datepicker/datepicker.component.ts +44 -7
  143. package/src/components/datepicker/datepicker.scss +9 -0
  144. package/src/components/datepicker/datepicker.test.ts +2 -2
  145. package/src/components/dialog/dialog.component.ts +38 -19
  146. package/src/components/dialog/dialog.scss +65 -36
  147. package/src/components/dialog/dialog.test.ts +14 -0
  148. package/src/components/diff/diff.component.ts +55 -0
  149. package/src/components/diff/diff.scss +46 -0
  150. package/src/components/diff/diff.test.ts +15 -0
  151. package/src/components/diff/index.ts +12 -0
  152. package/src/components/diff-row/diff-row.component.ts +75 -0
  153. package/src/components/diff-row/diff-row.scss +70 -0
  154. package/src/components/diff-row/diff-row.test.ts +37 -0
  155. package/src/components/diff-row/index.ts +12 -0
  156. package/src/components/dropdown/dropdown.component.ts +12 -10
  157. package/src/components/dropdown/dropdown.scss +2 -0
  158. package/src/components/editor/editor.component.ts +159 -11
  159. package/src/components/editor/editor.scss +250 -1
  160. package/src/components/editor/editor.test.ts +31 -3
  161. package/src/components/editor/modules/ai/panel/ai-panel.scss +0 -1
  162. package/src/components/editor/modules/attachment/attachment.ts +53 -31
  163. package/src/components/editor/modules/context-menu/context-menu.ts +17 -0
  164. package/src/components/editor/modules/dialog/dialog.component.ts +23 -1
  165. package/src/components/editor/modules/dialog/dialog.test.ts +28 -0
  166. package/src/components/editor/modules/emoji/emoji.ts +4 -5
  167. package/src/components/editor/modules/merge-field/merge-field.ts +83 -0
  168. package/src/components/editor/modules/toolbar/toolbar.component.ts +121 -68
  169. package/src/components/editor/modules/toolbar/toolbar.scss +38 -0
  170. package/src/components/editor/modules/toolbar/toolbar.ts +25 -1
  171. package/src/components/empty-state/empty-state.component.ts +6 -1
  172. package/src/components/empty-state/empty-state.scss +21 -4
  173. package/src/components/expanding-action/expanding-action.component.ts +22 -34
  174. package/src/components/expanding-action/expanding-action.scss +3 -45
  175. package/src/components/expanding-action/expanding-action.test.ts +2 -1
  176. package/src/components/file/file.component.ts +30 -2
  177. package/src/components/file/file.scss +6 -0
  178. package/src/components/flow-builder/flow-builder.component.ts +36 -3
  179. package/src/components/flow-builder/flow-builder.scss +0 -6
  180. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.component.ts +8 -0
  181. package/src/components/flow-builder/modules/flow-canvas/flow-canvas.scss +10 -5
  182. package/src/components/flow-builder/modules/flow-node/flow-node.component.ts +17 -0
  183. package/src/components/flow-builder/modules/flow-node/flow-node.scss +10 -0
  184. package/src/components/form-actions/form-actions.component.ts +48 -2
  185. package/src/components/form-actions/form-actions.scss +1 -1
  186. package/src/components/form-group/form-group.component.ts +10 -3
  187. package/src/components/form-group/form-group.scss +37 -4
  188. package/src/components/form-group/form-group.test.ts +10 -0
  189. package/src/components/header/header.component.ts +11 -4
  190. package/src/components/header/header.scss +47 -5
  191. package/src/components/hover-container/hover-container.component.ts +4 -5
  192. package/src/components/icon/icon.component.ts +95 -9
  193. package/src/components/icon/icon.scss +70 -6
  194. package/src/components/icon/icon.test.ts +55 -0
  195. package/src/components/icon-picker/icon-picker.component.ts +35 -1
  196. package/src/components/inline-edit/inline-edit.component.ts +38 -8
  197. package/src/components/inline-edit/inline-edit.scss +128 -19
  198. package/src/components/input/input.component.ts +173 -297
  199. package/src/components/input/input.scss +65 -43
  200. package/src/components/input/input.test.ts +86 -4
  201. package/src/components/item/item.component.ts +12 -0
  202. package/src/components/item/item.scss +102 -3
  203. package/src/components/item/item.test.ts +23 -0
  204. package/src/components/key/key.component.ts +2 -2
  205. package/src/components/key/key.scss +11 -0
  206. package/src/components/key-value/index.ts +12 -0
  207. package/src/components/key-value/key-value.component.ts +160 -0
  208. package/src/components/key-value/key-value.scss +20 -0
  209. package/src/components/key-value/key-value.test.ts +22 -0
  210. package/src/components/markdown-editor/markdown-editor.component.ts +8 -1
  211. package/src/components/menu/menu.component.ts +21 -2
  212. package/src/components/menu/menu.scss +43 -23
  213. package/src/components/menu/menu.test.ts +33 -0
  214. package/src/components/menu-item/menu-item.component.ts +13 -2
  215. package/src/components/menu-item/menu-item.scss +56 -23
  216. package/src/components/menu-item/menu-item.test.ts +31 -0
  217. package/src/components/menu-item/submenu-controller.ts +25 -15
  218. package/src/components/menu-label/index.ts +12 -0
  219. package/src/components/menu-label/menu-label.component.ts +30 -0
  220. package/src/components/menu-label/menu-label.scss +18 -0
  221. package/src/components/nav-item/index.ts +12 -0
  222. package/src/components/nav-item/nav-item.component.ts +83 -0
  223. package/src/components/nav-item/nav-item.scss +128 -0
  224. package/src/components/nav-list/index.ts +12 -0
  225. package/src/components/nav-list/nav-list.component.ts +313 -0
  226. package/src/components/nav-list/nav-list.scss +87 -0
  227. package/src/components/nav-list/nav-list.test.ts +250 -0
  228. package/src/components/navbar/navbar.component.ts +235 -171
  229. package/src/components/navbar/navbar.scss +333 -169
  230. package/src/components/navbar/navbar.test.ts +63 -143
  231. package/src/components/page/page.component.ts +114 -29
  232. package/src/components/page/page.scss +223 -95
  233. package/src/components/page/page.test.ts +214 -3
  234. package/src/components/page-builder/page-builder.component.ts +51 -5
  235. package/src/components/page-builder/page-builder.scss +6 -1
  236. package/src/components/page-nav/page-nav.component.ts +25 -3
  237. package/src/components/page-nav/page-nav.scss +10 -2
  238. package/src/components/pagination/pagination.scss +1 -1
  239. package/src/components/panel/panel.component.ts +14 -13
  240. package/src/components/panel/panel.scss +14 -10
  241. package/src/components/panel/panel.test.ts +42 -0
  242. package/src/components/popup/popup.component.ts +20 -13
  243. package/src/components/popup/popup.test.ts +21 -1
  244. package/src/components/priority-list/priority-list.component.ts +157 -172
  245. package/src/components/priority-list/priority-list.scss +113 -17
  246. package/src/components/priority-list/priority-list.test.ts +301 -3
  247. package/src/components/progress-bar/progress-bar.component.ts +1 -1
  248. package/src/components/progress-bar/progress-bar.scss +16 -4
  249. package/src/components/progress-tile/progress-tile.scss +1 -1
  250. package/src/components/query-builder/query-builder.component.ts +85 -10
  251. package/src/components/query-builder/query-builder.scss +7 -1
  252. package/src/components/query-builder/query-builder.test.ts +40 -0
  253. package/src/components/radio/radio.component.ts +57 -18
  254. package/src/components/radio/radio.scss +101 -26
  255. package/src/components/radio-group/radio-group.component.ts +45 -7
  256. package/src/components/radio-group/radio-group.scss +17 -0
  257. package/src/components/radio-group/radio-group.test.ts +63 -2
  258. package/src/components/rating/rating.component.ts +23 -0
  259. package/src/components/rating/rating.scss +1 -1
  260. package/src/components/remarkd-editor/remarkd-editor.component.ts +60 -5
  261. package/src/components/remarkd-editor/remarkd-editor.scss +12 -4
  262. package/src/components/report-table/index.ts +12 -0
  263. package/src/components/report-table/report-format.test.ts +86 -0
  264. package/src/components/report-table/report-format.ts +72 -0
  265. package/src/components/report-table/report-math.test.ts +74 -0
  266. package/src/components/report-table/report-math.ts +252 -0
  267. package/src/components/report-table/report-table.component.ts +681 -0
  268. package/src/components/report-table/report-table.scss +328 -0
  269. package/src/components/report-table/report-table.test.ts +702 -0
  270. package/src/components/reveal/reveal.component.ts +15 -1
  271. package/src/components/reveal/reveal.scss +5 -0
  272. package/src/components/schedule-builder/schedule-builder.component.ts +23 -8
  273. package/src/components/scroll-container/scroll-container.component.ts +19 -1
  274. package/src/components/scroll-container/scroll-container.scss +6 -1
  275. package/src/components/select/select.component.ts +52 -36
  276. package/src/components/select/select.scss +42 -25
  277. package/src/components/select/select.test.ts +14 -2
  278. package/src/components/settings-container/settings-container.scss +18 -5
  279. package/src/components/sidebar/sidebar.component.ts +8 -1
  280. package/src/components/sidebar/sidebar.scss +6 -1
  281. package/src/components/skeleton/skeleton.component.ts +3 -3
  282. package/src/components/skeleton/skeleton.scss +6 -6
  283. package/src/components/skeleton/skeleton.test.ts +9 -0
  284. package/src/components/slash-menu/slash-menu.scss +1 -1
  285. package/src/components/slideout/slideout.component.ts +20 -3
  286. package/src/components/slideout/slideout.scss +13 -6
  287. package/src/components/slideout/slideout.test.ts +19 -0
  288. package/src/components/split-button/split-button.component.ts +1 -1
  289. package/src/components/split-pane/split-pane.component.ts +71 -8
  290. package/src/components/split-pane/split-pane.scss +145 -41
  291. package/src/components/split-pane/split-pane.test.ts +23 -3
  292. package/src/components/stat/stat.component.ts +209 -14
  293. package/src/components/stat/stat.scss +305 -5
  294. package/src/components/stat/stat.test.ts +143 -2
  295. package/src/components/status-indicator/status-indicator.scss +22 -21
  296. package/src/components/stepper/stepper.scss +3 -3
  297. package/src/components/tab/tab.component.ts +1 -0
  298. package/src/components/table/table.component.ts +12 -1
  299. package/src/components/table/table.scss +21 -13
  300. package/src/components/table/table.test.ts +17 -0
  301. package/src/components/tabs/tabs.component.ts +150 -37
  302. package/src/components/tabs/tabs.scss +48 -7
  303. package/src/components/tabs/tabs.test.ts +169 -0
  304. package/src/components/textarea/textarea.component.ts +25 -3
  305. package/src/components/textarea/textarea.scss +10 -0
  306. package/src/components/textarea/textarea.test.ts +8 -4
  307. package/src/components/theme-editor/theme-editor.scss +0 -6
  308. package/src/components/tile/tile.component.ts +32 -2
  309. package/src/components/tile/tile.scss +40 -7
  310. package/src/components/tile/tile.test.ts +10 -0
  311. package/src/components/toggle/toggle.component.ts +23 -7
  312. package/src/components/toggle/toggle.scss +36 -29
  313. package/src/components/toggle/toggle.test.ts +17 -0
  314. package/src/components/tooltip/tooltip.component.ts +3 -0
  315. package/src/components/tooltip/tooltip.scss +11 -6
  316. package/src/components/tooltip/tooltip.test.ts +12 -0
  317. package/src/components/translation-field/index.ts +12 -0
  318. package/src/components/translation-field/translation-field.component.ts +55 -0
  319. package/src/components/translation-field/translation-field.scss +101 -0
  320. package/src/components/translation-fields/index.ts +12 -0
  321. package/src/components/translation-fields/translation-fields.component.ts +80 -0
  322. package/src/components/translation-fields/translation-fields.scss +60 -0
  323. package/src/components/translation-grid/index.ts +12 -0
  324. package/src/components/translation-grid/translation-grid.component.ts +157 -0
  325. package/src/components/translation-grid/translation-grid.scss +138 -0
  326. package/src/components/translation-grid/translation-grid.test.ts +28 -0
  327. package/src/components/vertical-stepper/vertical-stepper.component.ts +35 -9
  328. package/src/components/vertical-stepper/vertical-stepper.scss +110 -39
  329. package/src/components/vertical-stepper/vertical-stepper.test.ts +35 -0
  330. package/src/components/well/well.scss +2 -2
  331. package/src/events/events.ts +2 -0
  332. package/src/events/zn-chart-click.ts +13 -0
  333. package/src/events/zn-report-change.ts +7 -0
  334. package/src/form-control.scss +36 -3
  335. package/src/internal/anchored-popover.ts +175 -0
  336. package/src/internal/animate.ts +19 -5
  337. package/src/internal/cosmic-border.ts +15 -0
  338. package/src/internal/form.ts +1 -1
  339. package/src/internal/hover-intent.ts +15 -0
  340. package/src/internal/input-modality.ts +15 -0
  341. package/src/internal/pointer-intent.ts +37 -0
  342. package/src/internal/reorder.ts +632 -0
  343. package/src/internal/scroll.ts +51 -3
  344. package/src/internal/selection-card.ts +1 -1
  345. package/src/internal/tab-indicator.ts +92 -0
  346. package/src/internal/table-sort.ts +25 -0
  347. package/src/internal/table-tabs.ts +108 -0
  348. package/src/internal/test-drag.ts +35 -0
  349. package/src/internal/theme-openbyte.test.ts +126 -0
  350. package/src/internal/theme.ts +4 -4
  351. package/src/internal/zinc-element.ts +2 -2
  352. package/src/selection-card.scss +25 -0
  353. package/src/types/web-test-runner-commands.d.ts +1 -0
  354. package/src/utilities/color.test.ts +43 -0
  355. package/src/utilities/color.ts +189 -0
  356. package/src/zinc.ts +14 -0
  357. package/.github/workflows/eleventy_build.yml +0 -42
  358. package/scss/themes/_aura.scss +0 -114
@@ -13,11 +13,27 @@
13
13
  }
14
14
  ]
15
15
  },
16
+ {
17
+ "name": "zn-action-bar",
18
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
19
+ "attributes": [],
20
+ "references": [
21
+ {
22
+ "name": "Documentation",
23
+ "url": "https://zinc.style/components/action-bar"
24
+ }
25
+ ]
26
+ },
16
27
  {
17
28
  "name": "zn-alert",
18
29
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
19
30
  "attributes": [
20
31
  { "name": "icon", "values": [] },
32
+ {
33
+ "name": "icon-size",
34
+ "description": "The status icon's size in pixels.",
35
+ "values": []
36
+ },
21
37
  { "name": "caption", "values": [] },
22
38
  { "name": "collapse", "values": [] },
23
39
  {
@@ -26,6 +42,7 @@
26
42
  },
27
43
  {
28
44
  "name": "level",
45
+ "description": "`ai` marks AI-generated content only.",
29
46
  "values": [
30
47
  { "name": "primary" },
31
48
  { "name": "error" },
@@ -33,7 +50,8 @@
33
50
  { "name": "success" },
34
51
  { "name": "warning" },
35
52
  { "name": "note" },
36
- { "name": "cosmic" }
53
+ { "name": "cosmic" },
54
+ { "name": "ai" }
37
55
  ]
38
56
  },
39
57
  { "name": "center", "values": [] },
@@ -53,17 +71,6 @@
53
71
  }
54
72
  ]
55
73
  },
56
- {
57
- "name": "zn-action-bar",
58
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
59
- "attributes": [],
60
- "references": [
61
- {
62
- "name": "Documentation",
63
- "url": "https://zinc.style/components/action-bar"
64
- }
65
- ]
66
- },
67
74
  {
68
75
  "name": "zn-animated-button",
69
76
  "description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
@@ -138,6 +145,23 @@
138
145
  }
139
146
  ]
140
147
  },
148
+ {
149
+ "name": "zn-avatar-group",
150
+ "description": "Overlapping avatars that show each person's name on hover, collapsing any past `max` into a \"+N\" count.\n---\n\n\n### **Slots:**\n - _default_ - `zn-icon` avatars. Each one's tooltip shows its `alt`, or its `src` when it has none.\n\n### **CSS Properties:**\n - **--zn-avatar-ring-color** - The ring that separates overlapping avatars; defaults to the panel surface. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **overflow** - The \"+N\" count standing in for the avatars past `max`.",
151
+ "attributes": [
152
+ {
153
+ "name": "max",
154
+ "description": "The most avatars to show; the rest are counted in a \"+N\" avatar whose tooltip lists them. 0 shows them all.",
155
+ "values": []
156
+ }
157
+ ],
158
+ "references": [
159
+ {
160
+ "name": "Documentation",
161
+ "url": "https://zinc.style/components/avatar-group"
162
+ }
163
+ ]
164
+ },
141
165
  {
142
166
  "name": "zn-background",
143
167
  "description": "Composes a colour, decorative image, image strength, optional motion and contrast overlay behind slotted content.\n---\n\n\n### **Slots:**\n - _default_ - Content displayed above the background layers.\n\n### **CSS Properties:**\n - **--zn-background-color** - Fallback colour when the `color` attribute is not set. _(default: undefined)_\n- **--zn-background-image-position** - Position of the background image. Defaults to `center`. _(default: undefined)_\n- **--zn-background-overlay-angle** - Direction of the overlay gradient. Defaults to `110deg`. _(default: undefined)_\n- **--zn-background-floating-icon-color** - Colour of the floating icons. Defaults to `currentColor`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's full-size background canvas.\n- **image** - The decorative background image.\n- **overlay** - The contrast overlay between the image and content.\n- **floating-icons** - The non-interactive layer containing the floating icons.\n- **floating-icon** - Each floating `zn-icon`.\n- **content** - The wrapper around the default slot.",
@@ -190,6 +214,44 @@
190
214
  }
191
215
  ]
192
216
  },
217
+ {
218
+ "name": "zn-badge",
219
+ "description": "Badges label the status or category of a record, such as \"Active\" or \"Past due\".\n---\n\n\n### **Slots:**\n - _default_ - The badge's label.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
220
+ "attributes": [
221
+ {
222
+ "name": "type",
223
+ "description": "`ai` marks AI-generated content only.",
224
+ "values": [
225
+ { "name": "neutral" },
226
+ { "name": "success" },
227
+ { "name": "warning" },
228
+ { "name": "danger" },
229
+ { "name": "info" },
230
+ { "name": "ai" }
231
+ ]
232
+ },
233
+ {
234
+ "name": "size",
235
+ "values": [{ "name": "medium" }, { "name": "large" }]
236
+ },
237
+ {
238
+ "name": "solid",
239
+ "description": "Fills the badge with its type colour.",
240
+ "values": []
241
+ },
242
+ {
243
+ "name": "dot",
244
+ "description": "Leads the label with a dot in the type colour.",
245
+ "values": []
246
+ }
247
+ ],
248
+ "references": [
249
+ {
250
+ "name": "Documentation",
251
+ "url": "https://zinc.style/components/badge"
252
+ }
253
+ ]
254
+ },
193
255
  {
194
256
  "name": "zn-bulk-actions",
195
257
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -207,10 +269,11 @@
207
269
  },
208
270
  {
209
271
  "name": "zn-button",
210
- "description": "Buttons represent actions that are available to the user.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the button loses focus.\n- **zn-focus** - Emitted when the button gains focus.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n- **cancel** - Slot for custom cancel button/content when autoClick is active.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<zn-icon>` element.\n- **spinner** - The spinner that shows when the button is in the loading state.",
272
+ "description": "Buttons represent actions that are available to the user.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the button loses focus.\n- **zn-focus** - Emitted when the button gains focus.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **showMenu()** - Opens the advanced options in the `menu` slot.\n- **hideMenu()** - Closes the advanced options in the `menu` slot.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n- **cancel** - Slot for custom cancel button/content when autoClick is active.\n- **menu** - A `<zn-menu>` of advanced options, opened by a long press, a right click, or ArrowDown on the button.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<zn-icon>` element.\n- **spinner** - The spinner that shows when the button is in the loading state.",
211
273
  "attributes": [
212
274
  {
213
275
  "name": "color",
276
+ "description": "`ai` is reserved for actions that invoke or act on AI-generated content.",
214
277
  "values": [
215
278
  { "name": "default" },
216
279
  { "name": "primary" },
@@ -219,14 +282,28 @@
219
282
  { "name": "info" },
220
283
  { "name": "success" },
221
284
  { "name": "warning" },
285
+ { "name": "ai" },
222
286
  { "name": "transparent" },
223
287
  { "name": "star" },
224
288
  { "name": "(string & Record<never, never>)" }
225
289
  ]
226
290
  },
291
+ {
292
+ "name": "size",
293
+ "values": [
294
+ { "name": "small" },
295
+ { "name": "medium" },
296
+ { "name": "large" }
297
+ ]
298
+ },
227
299
  { "name": "hover-color", "values": [] },
228
300
  { "name": "text", "values": [] },
229
301
  { "name": "outline", "values": [] },
302
+ {
303
+ "name": "solid",
304
+ "description": "Keeps the filled look where a container forces `text`, such as a page header's action menu.",
305
+ "values": []
306
+ },
230
307
  { "name": "disabled", "values": [] },
231
308
  { "name": "grow", "values": [] },
232
309
  { "name": "square", "values": [] },
@@ -251,6 +328,29 @@
251
328
  "values": []
252
329
  },
253
330
  { "name": "panel-bg", "values": [] },
331
+ {
332
+ "name": "long-press-delay",
333
+ "description": "How long, in milliseconds, the button must be held to open the `menu` slot.",
334
+ "values": []
335
+ },
336
+ {
337
+ "name": "menu-placement",
338
+ "description": "Where the `menu` slot opens relative to the button.",
339
+ "values": [
340
+ { "name": "top" },
341
+ { "name": "top-start" },
342
+ { "name": "top-end" },
343
+ { "name": "right" },
344
+ { "name": "right-start" },
345
+ { "name": "right-end" },
346
+ { "name": "bottom" },
347
+ { "name": "bottom-start" },
348
+ { "name": "bottom-end" },
349
+ { "name": "left" },
350
+ { "name": "left-start" },
351
+ { "name": "left-end" }
352
+ ]
353
+ },
254
354
  { "name": "dropdown-closer", "values": [] },
255
355
  { "name": "notification", "values": [] },
256
356
  { "name": "muted-notifications", "values": [] },
@@ -337,6 +437,16 @@
337
437
  { "name": "mixed" }
338
438
  ]
339
439
  },
440
+ {
441
+ "name": "aria-expanded",
442
+ "description": "Popup state, forwarded to the inner button's `aria-expanded`.",
443
+ "values": [{ "name": "true" }, { "name": "false" }]
444
+ },
445
+ {
446
+ "name": "aria-haspopup",
447
+ "description": "Popup type, forwarded to the inner button's `aria-haspopup`.",
448
+ "values": []
449
+ },
340
450
  { "name": "auto-click", "values": [] },
341
451
  { "name": "auto-click-delay", "values": [] },
342
452
  { "name": "loading-text", "values": [] },
@@ -394,7 +504,7 @@
394
504
  },
395
505
  {
396
506
  "name": "zn-button-menu",
397
- "description": "Automatically hides buttons in a menu when the screen is too small.\n---\n\n\n### **Slots:**\n - _default_ - The default slot.",
507
+ "description": "Automatically hides buttons in a menu when the screen is too small.\n---\n\n\n### **Slots:**\n - _default_ - The default slot.\n- **prefix** - Controls shown just before the inline buttons, such as a segmented toggle. Their width is kept free when working out which buttons fit.",
398
508
  "attributes": [
399
509
  { "name": "max-width", "values": [] },
400
510
  { "name": "containerWidth", "values": [] },
@@ -516,7 +626,7 @@
516
626
  },
517
627
  {
518
628
  "name": "zn-chart",
519
- "description": "Chart component powered by Apache ECharts.\n---\n\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
629
+ "description": "Chart component powered by Apache ECharts.\n---\n\n\n### **Events:**\n - **zn-chart-click** - Emitted when a data point, bar or slice is clicked.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
520
630
  "attributes": [
521
631
  { "name": "type", "values": [{ "name": "ChartType" }] },
522
632
  { "name": "data", "values": [{ "name": "SeriesItem[]" }] },
@@ -534,7 +644,11 @@
534
644
  { "name": "d-size", "values": [] },
535
645
  { "name": "stacked", "values": [] },
536
646
  { "name": "live", "values": [] },
537
- { "name": "data-url", "values": [] },
647
+ {
648
+ "name": "data-url",
649
+ "description": "JSON series polled with `live`; otherwise fetched once, as a series array or `{categories, data}`.",
650
+ "values": []
651
+ },
538
652
  { "name": "stream-url", "values": [] },
539
653
  { "name": "live-renew-url", "values": [] },
540
654
  { "name": "hide-zero", "values": [] },
@@ -550,6 +664,11 @@
550
664
  { "name": "show-labels", "values": [] },
551
665
  { "name": "min-value", "values": [] },
552
666
  { "name": "max-value", "values": [] },
667
+ {
668
+ "name": "mark-latest",
669
+ "description": "On line and area charts, marks each series' latest point and hides the rest.",
670
+ "values": []
671
+ },
553
672
  { "name": "scale", "values": [] }
554
673
  ],
555
674
  "references": [
@@ -561,7 +680,7 @@
561
680
  },
562
681
  {
563
682
  "name": "zn-chat-message",
564
- "description": "A single message in a chat-style conversation: avatar, sender,\ntime, optional badge, and a message bubble with optional actions. Also renders\nsystem events (connections, transfers, etc.) as a centred card.\n---\n\n\n### **Slots:**\n - _default_ - The message content. Ignored when the `message` attribute is set.\n- **badge** - Rendered in the header after the sender and time (e.g. an INTERNAL NOTE chip).\n- **attachments** - Attachments displayed beneath the message content. Use `zn-chat-message-attachment`, which auto-assigns itself to this slot.\n- **edit-dialog-trigger** - Action rendered at the end of the bubble (e.g. a remove icon button).\n- **edit-dialog** - Pass-through for an associated dialog element.\n\n### **CSS Properties:**\n - **--message-background** - The bubble's background color. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **avatar** - The avatar column.\n- **body** - The header and bubble column.\n- **header** - The sender/time/badge row.\n- **bubble** - The message bubble.\n- **content** - The message content within the bubble.\n- **attachments** - The attachments row beneath the message content.\n- **system-card** - The card rendered for system action types.",
683
+ "description": "A single message in a chat-style conversation: avatar, sender,\ntime, optional badge, and a message bubble with optional actions. Also renders\nsystem events (connections, transfers, etc.) as a centred card.\n---\n\n\n### **Slots:**\n - _default_ - The message content. Ignored when the `message` attribute is set.\n- **badge** - Rendered in the header after the sender and time (e.g. an INTERNAL NOTE chip).\n- **attachments** - Attachments displayed beneath the message content. Use `zn-chat-message-attachment`, which auto-assigns itself to this slot.\n- **footer** - Content beneath the bubble, such as reactions or a thread summary.\n- **edit-dialog-trigger** - Action rendered at the end of the bubble (e.g. a remove icon button).\n- **edit-dialog** - Pass-through for an associated dialog element.\n\n### **CSS Properties:**\n - **--message-background** - The bubble's background color. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **avatar** - The avatar column.\n- **body** - The header and bubble column.\n- **header** - The sender/time/badge row.\n- **bubble** - The message bubble.\n- **content** - The message content within the bubble.\n- **attachments** - The attachments row beneath the message content.\n- **footer** - The row beneath the bubble.\n- **system-card** - The card rendered for system action types.",
565
684
  "attributes": [
566
685
  {
567
686
  "name": "sender",
@@ -707,6 +826,11 @@
707
826
  "description": "Squares off the corners of the container drawn by `contained`, which is rounded by default.",
708
827
  "values": []
709
828
  },
829
+ {
830
+ "name": "centered",
831
+ "description": "Centres the text of a contained checkbox that has no image or `card-title`.",
832
+ "values": []
833
+ },
710
834
  {
711
835
  "name": "src",
712
836
  "description": "URL for the image shown in a contained checkbox.",
@@ -724,7 +848,7 @@
724
848
  },
725
849
  {
726
850
  "name": "control-position",
727
- "description": "Places the checkbox indicator within a contained card. Use `none` to hide the indicator so the card itself\nshows the selected state. Requires `contained`.",
851
+ "description": "Places the checkbox indicator within a contained card. A contained checkbox without an image or `card-title` hides it\nat `start`, as does `none`. Requires `contained`.",
728
852
  "values": [{ "name": "SelectionCardControlPosition" }]
729
853
  },
730
854
  {
@@ -766,7 +890,7 @@
766
890
  },
767
891
  {
768
892
  "name": "unchecked-icon",
769
- "description": "The icon to show when the checkbox is unchecked.",
893
+ "description": "The icon to show when the checkbox is unchecked. Defaults to a muted `checked-icon`.",
770
894
  "values": []
771
895
  },
772
896
  {
@@ -845,6 +969,11 @@
845
969
  "description": "Squares off the corners of every contained checkbox in the group, which are rounded by default.",
846
970
  "values": []
847
971
  },
972
+ {
973
+ "name": "centered",
974
+ "description": "Centres the text of every contained checkbox in the group.",
975
+ "values": []
976
+ },
848
977
  {
849
978
  "name": "wrap",
850
979
  "description": "Lays horizontal contained checkboxes out as a wrapping row instead of an equal-width grid, so each one sizes from\n`--zn-checkbox-group-column-width` (set it to `auto` to size from content) and wraps onto a new line when needed.",
@@ -877,17 +1006,29 @@
877
1006
  { "name": "icon-size", "values": [] },
878
1007
  {
879
1008
  "name": "type",
1009
+ "description": "`ai` marks AI-generated content only.",
880
1010
  "values": [
881
1011
  { "name": "info" },
882
1012
  { "name": "success" },
883
1013
  { "name": "warning" },
884
1014
  { "name": "error" },
885
1015
  { "name": "primary" },
1016
+ { "name": "ai" },
886
1017
  { "name": "transparent" },
887
1018
  { "name": "custom" },
888
1019
  { "name": "neutral" }
889
1020
  ]
890
1021
  },
1022
+ {
1023
+ "name": "solid",
1024
+ "description": "Fills the chip with its type colour.",
1025
+ "values": []
1026
+ },
1027
+ {
1028
+ "name": "dot",
1029
+ "description": "Leads the label with a dot in the type colour.",
1030
+ "values": []
1031
+ },
891
1032
  { "name": "flush", "values": [] },
892
1033
  { "name": "flush-x", "values": [] },
893
1034
  { "name": "flush-y", "values": [] }
@@ -922,6 +1063,29 @@
922
1063
  }
923
1064
  ]
924
1065
  },
1066
+ {
1067
+ "name": "zn-color-picker",
1068
+ "description": "A colour panel: a saturation/brightness area, a hue slider and the colour's HEX, RGB, HSL and OKLCH values.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the colour or the format being worked in changes.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Moves focus to the colour area.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1069
+ "attributes": [
1070
+ {
1071
+ "name": "value",
1072
+ "description": "The colour, in any CSS colour syntax. Reads back as `#RRGGBB`.",
1073
+ "values": []
1074
+ },
1075
+ {
1076
+ "name": "format",
1077
+ "description": "The format being worked in. Focusing or editing a row switches to that row's format.",
1078
+ "values": [{ "name": "ColorFormat" }]
1079
+ },
1080
+ { "name": "label", "values": [] }
1081
+ ],
1082
+ "references": [
1083
+ {
1084
+ "name": "Documentation",
1085
+ "url": "https://zinc.style/components/color-picker"
1086
+ }
1087
+ ]
1088
+ },
925
1089
  {
926
1090
  "name": "zn-color-select",
927
1091
  "description": "A simple color picker. The dropdown lists color swatches with names; the closed control shows only the selected color's swatch.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the selected color changes.\n- **zn-clear** - Emitted when the clear button is activated.\n\n### **CSS Parts:**\n - **swatch** - The color swatch shown in the closed control.\n- **combobox** - The container that wraps the swatch and expand button (forwarded from zn-select).\n- **form-control-help-text** - The help text's wrapper (forwarded from zn-select).\n- **form-control-input** - The select's wrapper (forwarded from zn-select).",
@@ -976,6 +1140,11 @@
976
1140
  "values": []
977
1141
  },
978
1142
  { "name": "mc", "values": [] },
1143
+ {
1144
+ "name": "basis",
1145
+ "description": "Minimum width in px of a one-unit column before the row wraps; a column of layout `n` asks for n times this. Defaults to 250.",
1146
+ "values": []
1147
+ },
979
1148
  { "name": "no-gap", "values": [] },
980
1149
  { "name": "border", "values": [] },
981
1150
  { "name": "pad", "values": [] },
@@ -1027,9 +1196,9 @@
1027
1196
  { "name": "caption", "values": [] },
1028
1197
  { "name": "action", "values": [] },
1029
1198
  { "name": "content", "values": [] },
1030
- { "name": "confirmText", "values": [] },
1031
- { "name": "cancelText", "values": [] },
1032
- { "name": "closeText", "values": [] },
1199
+ { "name": "confirm-text", "values": [] },
1200
+ { "name": "cancel-text", "values": [] },
1201
+ { "name": "close-text", "values": [] },
1033
1202
  { "name": "hide-icon", "values": [] },
1034
1203
  {
1035
1204
  "name": "show-loading",
@@ -1242,6 +1411,37 @@
1242
1411
  { "name": "caption", "values": [] },
1243
1412
  { "name": "empty-state-caption", "values": [] },
1244
1413
  { "name": "empty-state-icon", "values": [] },
1414
+ {
1415
+ "name": "total-label",
1416
+ "description": "Unit for the row total shown with the caption: \"publishers\" reads \"16 publishers\".",
1417
+ "values": []
1418
+ },
1419
+ {
1420
+ "name": "total-label-singular",
1421
+ "description": "Unit used when the total is exactly one: \"publisher\" reads \"1 publisher\". Falls back to `total-label`.",
1422
+ "values": []
1423
+ },
1424
+ {
1425
+ "name": "tabs",
1426
+ "description": "Tabs rendered inside the table. The selected tab's value is sent as `tab-param` with every request.",
1427
+ "values": [{ "name": "TableTab[]" }]
1428
+ },
1429
+ { "name": "tab-param", "values": [] },
1430
+ {
1431
+ "name": "pill-tabs",
1432
+ "description": "Draws the tabs as a segmented control: a grey track with a pill that slides to the selected tab.",
1433
+ "values": []
1434
+ },
1435
+ {
1436
+ "name": "active-tab",
1437
+ "description": "The selected tab's value; the first tab when empty.",
1438
+ "values": []
1439
+ },
1440
+ {
1441
+ "name": "filter-fields",
1442
+ "description": "Fields for the funnel's filter builder. When set, the table renders its own zn-data-table-filter in the\nheader, in place of the `filter` slot, and the applied rules show as chips under the tabs. Rules are sent\nas `filter`.",
1443
+ "values": [{ "name": "FilterField[]" }]
1444
+ },
1245
1445
  { "name": "filters", "values": [{ "name": "[]" }] },
1246
1446
  { "name": "method", "values": [{ "name": "GET" }, { "name": "POST" }] },
1247
1447
  { "name": "no-initial-load", "values": [] },
@@ -1268,14 +1468,14 @@
1268
1468
  },
1269
1469
  {
1270
1470
  "name": "zn-data-table-filter",
1271
- "description": "An inline filter bar for data tables. Each active filter is a pill whose dropdown sets its value.\n---\n\n\n### **Events:**\n - **zn-filter-change** - Emitted when the active filters change. Read the encoded query off `value`.\n\n### **Methods:**\n - **clear()** - Removes every active filter.",
1471
+ "description": "The filter for data tables: a funnel that opens a field / operator / value builder, and chips for the\nrules that apply.\n---\n\n\n### **Events:**\n - **zn-filter-change** - Emitted when the applied rules change. Read the encoded query off `value`.\n- **zn-clear** - Emitted when `clear()` removes every rule.\n\n### **Methods:**\n - **show()** - Opens the filter builder.\n- **hide()** - Closes the filter builder.\n- **clear()** - Removes every rule.",
1272
1472
  "attributes": [
1273
- { "name": "filters", "values": [{ "name": "QueryBuilderData" }] },
1473
+ { "name": "filters", "values": [{ "name": "FilterField[]" }] },
1274
1474
  { "name": "name", "values": [] },
1275
1475
  { "name": "value", "values": [] },
1276
1476
  {
1277
1477
  "name": "default-filters",
1278
- "description": "Filter keys to show a pill for before the user adds any.",
1478
+ "description": "Fields to offer an empty rule for when the builder opens with nothing applied.",
1279
1479
  "values": []
1280
1480
  }
1281
1481
  ],
@@ -1339,6 +1539,62 @@
1339
1539
  }
1340
1540
  ]
1341
1541
  },
1542
+ {
1543
+ "name": "zn-date-range",
1544
+ "description": "A button showing a date range that opens a two-month calendar with quick ranges.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when a range is applied, with `{from, to}` as its detail.\n\n### **Methods:**\n - **show()** - Opens the picker.\n- **hide()** - Closes the picker without applying.\n\n### **CSS Parts:**\n - **trigger** - The button that opens the picker.\n- **popover** - The picker popover.",
1545
+ "attributes": [
1546
+ {
1547
+ "name": "from",
1548
+ "description": "The first day of the range, `YYYY-MM-DD`. Defaults to today.",
1549
+ "values": []
1550
+ },
1551
+ {
1552
+ "name": "to",
1553
+ "description": "The last day of the range, `YYYY-MM-DD`. Defaults to today.",
1554
+ "values": []
1555
+ },
1556
+ {
1557
+ "name": "min",
1558
+ "description": "The earliest day that can be picked.",
1559
+ "values": []
1560
+ },
1561
+ {
1562
+ "name": "max",
1563
+ "description": "The latest day that can be picked.",
1564
+ "values": []
1565
+ },
1566
+ {
1567
+ "name": "presets",
1568
+ "description": "Quick ranges as a JSON array of `{label, from, to}`, replacing the default ones.",
1569
+ "values": [{ "name": "DatePreset[]" }]
1570
+ },
1571
+ {
1572
+ "name": "note",
1573
+ "description": "A short line shown under the calendar, such as how the range is used.",
1574
+ "values": []
1575
+ },
1576
+ {
1577
+ "name": "name",
1578
+ "description": "Submits `name[from]` and `name[to]` with the form.",
1579
+ "values": []
1580
+ },
1581
+ {
1582
+ "name": "size",
1583
+ "description": "The trigger button's size.",
1584
+ "values": [
1585
+ { "name": "small" },
1586
+ { "name": "medium" },
1587
+ { "name": "large" }
1588
+ ]
1589
+ }
1590
+ ],
1591
+ "references": [
1592
+ {
1593
+ "name": "Documentation",
1594
+ "url": "https://zinc.style/components/date-range"
1595
+ }
1596
+ ]
1597
+ },
1342
1598
  {
1343
1599
  "name": "zn-datepicker",
1344
1600
  "description": "A date picker component with calendar popup and input validation.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the date value changes.\n- **zn-input** - Emitted when the input value changes.\n- **zn-blur** - Emitted when the input loses focus.\n- **zn-focus** - Emitted when the input gains focus.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the input.\n- **blur()** - Removes focus from the input.\n- **select()** - Selects all the text in the input.\n- **checkValidity(): _boolean_** - Checks the validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The datepicker's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Tooltip content for the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Additional context text displayed above the input. Alternatively, you can use the `context-note` attribute.\n- **help-text** - Help text displayed below the input. Alternatively, you can use the `help-text` attribute.\n- **prefix** - Content to display before the input (in addition to the default calendar icon).\n- **suffix** - Content to display after the input.\n\n### **CSS Properties:**\n - **--zn-input-*** - Inherited input component CSS custom properties. _(default: undefined)_\n- **--zn-datepicker-inline-border-color** - Border colour of the calendar in `inline` mode. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **form-control** - The form control wrapper.\n- **form-control-label** - The label element.\n- **form-control-input** - The input wrapper.\n- **form-control-help-text** - The help text element.",
@@ -1414,6 +1670,11 @@
1414
1670
  "description": "Makes the input a required field.",
1415
1671
  "values": []
1416
1672
  },
1673
+ {
1674
+ "name": "label-note",
1675
+ "description": "Short text shown next to the label, styled like the help text, e.g. `optional`.",
1676
+ "values": []
1677
+ },
1417
1678
  {
1418
1679
  "name": "clearable",
1419
1680
  "description": "Adds a clear button to the calendar for removing a selected date. *",
@@ -1531,7 +1792,7 @@
1531
1792
  },
1532
1793
  {
1533
1794
  "name": "zn-dialog",
1534
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-show** - Emitted when the dialog is opens.\n- **zn-close** - Emitted when the dialog is closed.\n- **zn-request-close** - Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss.\n\n### **Methods:**\n - **show()** - Shows the dialog.\n- **hide()** - Hides the dialog.\n\n### **Slots:**\n - _default_ - The default slot.\n- **label** - The dialog's label. Alternatively you can use the `label` attribute.\n- **header-icon** - Optional icon to add to the left of the dialog's label (title). A color will be applied to the icon depending on the dialog variant.\n- **announcement-intro** - Optional Intro text to display below the icon, when using the variant `announcement`.\n- **header-actions** - Optional actions to add to the header. Works best with `<zn-button>` elements.\n- **footer** - The dialog's footer. This is typically used for buttons representing various options.\n- **footer-text** - Optional text to include below the footer buttons, when using the variant `announcement`.\n\n### **CSS Properties:**\n - **--width** - The preferred width of the dialog. Note the dialog will shrink to accommodate smaller screens. _(default: undefined)_\n- **--header-spacing** - The amount of padding to use for the header. _(default: undefined)_\n- **--body-spacing** - The amount of padding to use for the body. _(default: undefined)_\n- **--footer-spacing** - The amount of padding to use for the footer. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header** - The dialog's header. This element wraps the title and header actions.\n- **header-actions** - Optional actions to add to the header. Works best with `<zn-button>` elements.\n- **title** - The dialog's title.\n- **close-button** - The dialog's close button.\n- **close-button__base** - The close buttons exported `base` part.\n- **body** - The dialog's body.\n- **footer** - The dialog's footer.",
1795
+ "description": "A modal that appears above the page for a decision that blocks the flow.\n---\n\n\n### **Events:**\n - **zn-show** - Emitted when the dialog opens.\n- **zn-close** - Emitted when the dialog is closed.\n- **zn-request-close** - Emitted when the user attempts to close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in destructive behavior such as data loss.\n\n### **Methods:**\n - **show()** - Shows the dialog.\n- **hide()** - Hides the dialog.\n\n### **Slots:**\n - _default_ - The default slot.\n- **label** - The dialog's label. Alternatively you can use the `label` attribute.\n- **header-icon** - Optional icon to add to the left of the dialog's label (title). A color will be applied to the icon depending on the dialog variant.\n- **announcement-intro** - Optional intro text to display below the icon, when using the variant `announcement`.\n- **header-actions** - Optional actions to add to the header. Works best with `<zn-button>` elements.\n- **footer** - The dialog's footer. This is typically used for buttons representing various options.\n- **footer-text** - Optional text to include below the footer buttons, when using the variant `announcement`.\n\n### **CSS Properties:**\n - **--width** - The preferred width of a `size=\"custom\"` dialog. The dialog shrinks to fit smaller screens. _(default: undefined)_\n- **--header-spacing** - The amount of padding to use for the header. _(default: undefined)_\n- **--body-spacing** - The amount of padding to use for the body. _(default: undefined)_\n- **--footer-spacing** - The amount of padding to use for the footer. _(default: undefined)_\n- **--zn-dialog-width-small** - Theme token: the width of `size=\"small\"`. _(default: undefined)_\n- **--zn-dialog-width-medium** - Theme token: the width of `size=\"medium\"`. _(default: undefined)_\n- **--zn-dialog-width-large** - Theme token: the width of `size=\"large\"`. _(default: undefined)_\n- **--zn-dialog-border-radius** - Theme token: the dialog's corner radius. _(default: undefined)_\n- **--zn-dialog-backdrop** - Theme token: the backdrop behind the dialog. _(default: undefined)_\n- **--zn-dialog-body-color** - Theme token: the body text colour. _(default: undefined)_\n- **--zn-dialog-icon-background** - Theme token: the fill behind a default or warning header icon. _(default: undefined)_\n- **--zn-dialog-close-color** - Theme token: the close button's icon colour. _(default: undefined)_\n- **--zn-dialog-close-icon-size** - Theme token: the close button's icon size, read when the dialog opens. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header** - The dialog's header. This element wraps the title and header actions.\n- **header-actions** - Optional actions to add to the header. Works best with `<zn-button>` elements.\n- **title** - The dialog's title.\n- **close-button** - The dialog's close button.\n- **close-button__base** - The close button's exported `base` part.\n- **body** - The dialog's body.\n- **footer** - The dialog's footer.",
1535
1796
  "attributes": [
1536
1797
  {
1537
1798
  "name": "variant",
@@ -1581,6 +1842,72 @@
1581
1842
  }
1582
1843
  ]
1583
1844
  },
1845
+ {
1846
+ "name": "zn-diff",
1847
+ "description": "A side-by-side comparison of two versions of something, one column each, built from `zn-diff-row`s.\n---\n\n\n### **Slots:**\n - _default_ - The `zn-diff-row`s.\n- **before** - Inline content after the left heading, such as a status badge.\n- **after** - Inline content after the right heading, such as a status badge.\n\n### **CSS Properties:**\n - **--zn-diff-head-background** - The heading row's background. _(default: undefined)_\n- **--zn-diff-sticky-top** - How far from the top of its scroll container the heading row sticks. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The table.\n- **head** - The sticky row of column headings.",
1848
+ "attributes": [
1849
+ {
1850
+ "name": "before-caption",
1851
+ "description": "The left column's heading, such as the older version.",
1852
+ "values": []
1853
+ },
1854
+ {
1855
+ "name": "before-description",
1856
+ "description": "A line under the left heading.",
1857
+ "values": []
1858
+ },
1859
+ {
1860
+ "name": "after-caption",
1861
+ "description": "The right column's heading, such as the newer version.",
1862
+ "values": []
1863
+ },
1864
+ {
1865
+ "name": "after-description",
1866
+ "description": "A line under the right heading.",
1867
+ "values": []
1868
+ }
1869
+ ],
1870
+ "references": [
1871
+ { "name": "Documentation", "url": "https://zinc.style/components/diff" }
1872
+ ]
1873
+ },
1874
+ {
1875
+ "name": "zn-diff-row",
1876
+ "description": "One aligned row of a `zn-diff`: the same item in both versions, tinted by how it changed.\n---\n\n\n### **Slots:**\n - **before** - The item's details in the older version.\n- **after** - The item's details in the newer version.\n\n### **CSS Properties:**\n - **--zn-diff-row-border** - The line below the row. _(default: undefined)_\n\n### **CSS Parts:**\n - **row** - The row.\n- **before** - The left cell.\n- **after** - The right cell.",
1877
+ "attributes": [
1878
+ {
1879
+ "name": "caption",
1880
+ "description": "The item's name, shown in both columns.",
1881
+ "values": []
1882
+ },
1883
+ {
1884
+ "name": "change",
1885
+ "description": "How the item changed: `changed`, `added` or `removed`. Unchanged when empty.",
1886
+ "values": []
1887
+ },
1888
+ {
1889
+ "name": "heading",
1890
+ "description": "When true, the row is a heading spanning both columns, such as a section name.",
1891
+ "values": []
1892
+ },
1893
+ {
1894
+ "name": "before-placeholder",
1895
+ "description": "Shown in the left column when the item was added.",
1896
+ "values": []
1897
+ },
1898
+ {
1899
+ "name": "after-placeholder",
1900
+ "description": "Shown in the right column when the item was removed.",
1901
+ "values": []
1902
+ }
1903
+ ],
1904
+ "references": [
1905
+ {
1906
+ "name": "Documentation",
1907
+ "url": "https://zinc.style/components/diff-row"
1908
+ }
1909
+ ]
1910
+ },
1584
1911
  {
1585
1912
  "name": "zn-dropdown",
1586
1913
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n - **show()** - Opens the dropdown\n- **hide()** - Closes the dropdown\n- **reposition()** - Instructs the dropdown to reposition itself\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -1654,11 +1981,42 @@
1654
1981
  },
1655
1982
  {
1656
1983
  "name": "zn-editor",
1657
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1984
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n- **help-text** - Text under the editor. Alternatively, use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1658
1985
  "attributes": [
1659
1986
  { "name": "id", "values": [] },
1660
1987
  { "name": "name", "values": [] },
1661
1988
  { "name": "value", "values": [] },
1989
+ { "name": "placeholder", "values": [] },
1990
+ {
1991
+ "name": "compact",
1992
+ "description": "Draws the editor as a form field: a bordered, resizable box under a small toolbar of bold, italic, link and lists.",
1993
+ "values": []
1994
+ },
1995
+ {
1996
+ "name": "source",
1997
+ "description": "Adds a Source button that switches to editing the raw HTML, which is submitted as written.",
1998
+ "values": []
1999
+ },
2000
+ {
2001
+ "name": "document-mode",
2002
+ "description": "Edits the HTML in place as a whole document, keeping layout the editor can't hold, such as a designed email.",
2003
+ "values": []
2004
+ },
2005
+ {
2006
+ "name": "readonly",
2007
+ "description": "Shows only the content, without a toolbar or box, such as the source beside a translation.",
2008
+ "values": []
2009
+ },
2010
+ {
2011
+ "name": "prefix",
2012
+ "description": "With `compact`, a short label inside the box ahead of the content, such as a language code.",
2013
+ "values": []
2014
+ },
2015
+ {
2016
+ "name": "help-text",
2017
+ "description": "Text under the editor that describes how to use it. If you need to display HTML, use the `help-text` slot instead.",
2018
+ "values": []
2019
+ },
1662
2020
  {
1663
2021
  "name": "interaction-type",
1664
2022
  "values": [{ "name": "ticket" }, { "name": "chat" }]
@@ -1674,6 +2032,11 @@
1674
2032
  { "name": "emojis", "values": [] },
1675
2033
  { "name": "code", "values": [] },
1676
2034
  { "name": "ai", "values": [] },
2035
+ {
2036
+ "name": "merge-fields",
2037
+ "description": "Shows `{{token}}` replacements as highlighted chips, labelled from the matching `context-items`\nquick action. The value still holds the raw tokens.",
2038
+ "values": []
2039
+ },
1677
2040
  { "name": "ai-path", "values": [] },
1678
2041
  {
1679
2042
  "name": "store-key",
@@ -1714,7 +2077,12 @@
1714
2077
  { "name": "''" }
1715
2078
  ]
1716
2079
  },
1717
- { "name": "padded", "values": [] }
2080
+ { "name": "padded", "values": [] },
2081
+ {
2082
+ "name": "tile",
2083
+ "description": "Draws the icon small inside a tinted, rounded tile rather than as a large glyph.",
2084
+ "values": []
2085
+ }
1718
2086
  ],
1719
2087
  "references": [
1720
2088
  {
@@ -1857,6 +2225,11 @@
1857
2225
  "name": "upload-url",
1858
2226
  "description": "When set, a chosen file is immediately POSTed (multipart, field `file`) to this URL.\nThe endpoint must respond with JSON `{\"url\": \"...\"}`; that URL becomes the control's\nvalue (and `src` preview) in place of the file bytes, so the control works inside\nJSON-serialising hosts such as `zn-page-builder`. Emits `zn-error` when the upload fails.",
1859
2227
  "values": []
2228
+ },
2229
+ {
2230
+ "name": "max-size",
2231
+ "description": "The largest each file can be, in megabytes. A bigger file makes the control invalid. 0 for no limit.",
2232
+ "values": []
1860
2233
  }
1861
2234
  ],
1862
2235
  "references": [
@@ -1972,6 +2345,11 @@
1972
2345
  "name": "form",
1973
2346
  "description": "The id of the form to act on. If omitted, the closest containing form is used.",
1974
2347
  "values": []
2348
+ },
2349
+ {
2350
+ "name": "loading-on-submit",
2351
+ "description": "Shows the submit button loading and ignores further submits until the console reports the request finished,\nso a slow save such as an upload can't be sent twice. Only for forms the console submits.",
2352
+ "values": []
1975
2353
  }
1976
2354
  ],
1977
2355
  "references": [
@@ -2002,6 +2380,11 @@
2002
2380
  },
2003
2381
  { "name": "cols", "values": [] },
2004
2382
  { "name": "layout", "values": [] },
2383
+ {
2384
+ "name": "compact",
2385
+ "description": "Labels the group like one of its fields and keeps it tight to them, for a section inside a form or dialog.",
2386
+ "values": []
2387
+ },
2005
2388
  { "name": "pad", "values": [] }
2006
2389
  ],
2007
2390
  "references": [
@@ -2020,6 +2403,16 @@
2020
2403
  { "name": "entity-id-show", "values": [] },
2021
2404
  { "name": "transparent", "values": [] },
2022
2405
  { "name": "caption", "values": [] },
2406
+ {
2407
+ "name": "description",
2408
+ "description": "A line of muted text under the caption.",
2409
+ "values": []
2410
+ },
2411
+ {
2412
+ "name": "inline-description",
2413
+ "description": "Sets the description beside the caption rather than under it, e.g. a row count.",
2414
+ "values": []
2415
+ },
2023
2416
  { "name": "icon", "values": [] },
2024
2417
  { "name": "navigation", "values": [{ "name": "array" }] },
2025
2418
  { "name": "full-width", "values": [] },
@@ -2073,11 +2466,15 @@
2073
2466
  },
2074
2467
  {
2075
2468
  "name": "zn-icon",
2076
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2469
+ "description": "\n---\n",
2077
2470
  "attributes": [
2078
2471
  { "name": "src", "values": [] },
2079
2472
  { "name": "alt", "values": [] },
2080
- { "name": "size", "values": [] },
2473
+ {
2474
+ "name": "size",
2475
+ "description": "Size in pixels, or one of the avatar sizes `sm` (22), `md` (28), `lg` (40) and `xl` (56).",
2476
+ "values": []
2477
+ },
2081
2478
  { "name": "round", "values": [] },
2082
2479
  { "name": "tile", "values": [] },
2083
2480
  { "name": "depth", "values": [] },
@@ -2086,7 +2483,17 @@
2086
2483
  { "name": "fill", "values": [{ "name": "IconColor" }] },
2087
2484
  { "name": "padded", "values": [] },
2088
2485
  { "name": "blink", "values": [] },
2089
- { "name": "squared", "values": [] }
2486
+ { "name": "squared", "values": [] },
2487
+ {
2488
+ "name": "presence",
2489
+ "description": "A live-status dot on an avatar: `online`, `away`, `busy`, `meeting` or `offline`.",
2490
+ "values": [{ "name": "AvatarPresence" }]
2491
+ },
2492
+ {
2493
+ "name": "solid",
2494
+ "description": "Draws an avatar as a solid circle even where the theme tints avatars.",
2495
+ "values": []
2496
+ }
2090
2497
  ],
2091
2498
  "references": [
2092
2499
  { "name": "Documentation", "url": "https://zinc.style/components/icon" }
@@ -2120,7 +2527,7 @@
2120
2527
  },
2121
2528
  {
2122
2529
  "name": "zn-inline-edit",
2123
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - Default slot. When `input-type` is `select`, accepts `zn-option` elements to define select options. If provided, takes precedence over the `options` property.\n- **example** - An example slot.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2530
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - Default slot. When `input-type` is `select`, accepts `zn-option` elements to define select options. If provided, takes precedence over the `options` property.\n- **example** - An example slot.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-inline-edit-hover-background** - The fill behind a field while hovered or focused. _(default: undefined)_\n- **--zn-inline-edit-bleed** - How far the hover fill extends past the left edge of the value. _(default: undefined)_\n- **--zn-inline-edit-underline-color** - The dotted underline marking an editable value at rest. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
2124
2531
  "attributes": [
2125
2532
  { "name": "value", "values": [{ "name": "string[]" }] },
2126
2533
  { "name": "name", "values": [] },
@@ -2255,7 +2662,7 @@
2255
2662
  },
2256
2663
  {
2257
2664
  "name": "zn-input",
2258
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the control loses focus.\n- **zn-change** - Emitted when an alteration to the control's value is committed by the user.\n- **zn-clear** - Emitted when the clear button is activated.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-input** - Emitted when the control receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-slash-select** - Emitted when a slash menu item is chosen. Cancelable — call `preventDefault()` to suppress the insertion and handle the item yourself.\n- **zn-slash-insert** - Emitted after a slash menu item's value has been inserted.\n\n### **Methods:**\n - **resolveSlashItems(search): _Promise<SlashMenuItem[]>_** - The insertions the slash menu offers, gathered from every source, in the order they were declared.\n- **showSlashMenu()** - Opens the slash menu at the caret, inserting the trigger if it isn't already there.\n- **hideSlashMenu()** - Closes the slash menu.\n- **focus(options: _FocusOptions_)** - Sets focus on the input.\n- **blur()** - Removes focus from the input.\n- **select()** - Selects all the text in the input.\n- **setSelectionRange(selectionStart: _number_, selectionEnd: _number_, selectionDirection: _'forward' | 'backward' | 'none'_)** - Sets the start and end positions of the text selection (0-based).\n- **setRangeText(replacement: _string_, start: _number_, end: _number_, selectMode: _'select' | 'start' | 'end' | 'preserve'_)** - Replaces a range of text with a new string.\n- **showPicker()** - Displays the browser picker for an input element (only works if the browser supports it for the input type).\n- **stepUp()** - Increments the value of a numeric input type by the value of the step attribute.\n- **stepDown()** - Decrements the value of a numeric input type by the value of the step attribute.\n- **checkValidity(): _boolean_** - Checks the validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the input, on the right. Alternatively, you can use the `context-note` attribute. Range inputs display their live value here unless this is set.\n- **prefix** - Used to prepend a presentational icon or similar element to the input.\n- **suffix** - Used to append a presentational icon or similar element to the input.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **show-password-icon** - An icon to use in lieu of the default show password icon.\n- **hide-password-icon** - An icon to use in lieu of the default hide password icon.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n- **slash-items** - `<zn-slash-item>` elements describing the insertions offered by the slash menu. Items are picked up wherever they sit inside the input, so this slot name is optional.\n- **slash-menu** - A `<zn-slash-menu>` to use instead of the built-in one, so its heading, sizing and styling can be set in markup. Any `<zn-slash-item>` children of it become the menu's items.\n\n### **CSS Properties:**\n - **--zn-range-track-height** - The height of a range input's track. _(default: undefined)_\n- **--zn-range-track-color** - The color of a range input's track. _(default: undefined)_\n- **--zn-range-thumb-size** - The diameter of a range input's thumb. _(default: undefined)_\n- **--zn-range-thumb-color** - The color of a range input's thumb. _(default: undefined)_\n- **--zn-range-thumb-ring-width** - The width of the ring drawn around a range input's thumb. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **slash-menu** - The slash menu shown at the caret.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **base** - The component's base wrapper.\n- **input** - The internal `<input>` control.\n- **prefix** - The container that wraps the prefix.\n- **clear-button** - The clear button.\n- **password-toggle-button** - The password toggle button.\n- **suffix** - The container that wraps the suffix.",
2665
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the control loses focus.\n- **zn-change** - Emitted when an alteration to the control's value is committed by the user.\n- **zn-clear** - Emitted when the clear button is activated.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-input** - Emitted when the control receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-slash-select** - Emitted when a slash menu item is chosen. Cancelable — call `preventDefault()` to suppress the insertion and handle the item yourself.\n- **zn-slash-insert** - Emitted after a slash menu item's value has been inserted.\n\n### **Methods:**\n - **resolveSlashItems(search): _Promise<SlashMenuItem[]>_** - The insertions the slash menu offers, gathered from every source, in the order they were declared.\n- **showSlashMenu()** - Opens the slash menu at the caret, inserting the trigger if it isn't already there.\n- **hideSlashMenu()** - Closes the slash menu.\n- **focus(options: _FocusOptions_)** - Sets focus on the input.\n- **blur()** - Removes focus from the input.\n- **select()** - Selects all the text in the input.\n- **setSelectionRange(selectionStart: _number_, selectionEnd: _number_, selectionDirection: _'forward' | 'backward' | 'none'_)** - Sets the start and end positions of the text selection (0-based).\n- **setRangeText(replacement: _string_, start: _number_, end: _number_, selectMode: _'select' | 'start' | 'end' | 'preserve'_)** - Replaces a range of text with a new string.\n- **showPicker()** - Displays the browser picker for an input element (only works if the browser supports it for the input type).\n- **stepUp()** - Increments the value of a numeric input type by the value of the step attribute.\n- **stepDown()** - Decrements the value of a numeric input type by the value of the step attribute.\n- **checkValidity(): _boolean_** - Checks the validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the input, on the right. Alternatively, you can use the `context-note` attribute. Range inputs display their live value here unless this is set.\n- **prefix** - Used to prepend a presentational icon or similar element to the input.\n- **suffix** - Used to append a presentational icon or similar element to the input.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **show-password-icon** - An icon to use in lieu of the default show password icon.\n- **hide-password-icon** - An icon to use in lieu of the default hide password icon.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n- **slash-items** - `<zn-slash-item>` elements describing the insertions offered by the slash menu. Items are picked up wherever they sit inside the input, so this slot name is optional.\n- **slash-menu** - A `<zn-slash-menu>` to use instead of the built-in one, so its heading, sizing and styling can be set in markup. Any `<zn-slash-item>` children of it become the menu's items.\n\n### **CSS Properties:**\n - **--zn-range-track-height** - The height of a range input's track. _(default: undefined)_\n- **--zn-range-track-color** - The color of a range input's track. _(default: undefined)_\n- **--zn-range-thumb-size** - The diameter of a range input's thumb. _(default: undefined)_\n- **--zn-range-thumb-color** - The color of a range input's thumb. _(default: undefined)_\n- **--zn-range-thumb-ring-width** - The width of the ring drawn around a range input's thumb. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **slash-menu** - The slash menu shown at the caret.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **base** - The component's base wrapper.\n- **input** - The internal `<input>` control.\n- **prefix** - The container that wraps the prefix.\n- **clear-button** - The clear button.\n- **password-toggle-button** - The password toggle button.\n- **suffix** - The container that wraps the suffix.\n- **color-swatch** - The swatch that opens the colour panel on colour inputs.\n- **color-picker** - The colour panel.",
2259
2666
  "attributes": [
2260
2667
  { "name": "title", "values": [] },
2261
2668
  {
@@ -2369,13 +2776,8 @@
2369
2776
  },
2370
2777
  {
2371
2778
  "name": "color-format",
2372
- "description": "The color format to display for color inputs. Only applies when type is 'color'. *",
2373
- "values": [
2374
- { "name": "hex" },
2375
- { "name": "rgb" },
2376
- { "name": "hsl" },
2377
- { "name": "oklch" }
2378
- ]
2779
+ "description": "The format a colour input writes its value in. Typing a colour in another format, or working in another format's\nrow of the colour panel, switches to that format. Only applies when type is 'color'.",
2780
+ "values": [{ "name": "ColorFormat" }]
2379
2781
  },
2380
2782
  {
2381
2783
  "name": "value-suffix",
@@ -2392,6 +2794,11 @@
2392
2794
  "description": "Makes the input a required field.",
2393
2795
  "values": []
2394
2796
  },
2797
+ {
2798
+ "name": "label-note",
2799
+ "description": "Short text shown next to the label, styled like the help text, e.g. `optional`.",
2800
+ "values": []
2801
+ },
2395
2802
  {
2396
2803
  "name": "pattern",
2397
2804
  "description": "A regular expression pattern to validate input against.",
@@ -2553,6 +2960,21 @@
2553
2960
  { "name": "caption", "values": [] },
2554
2961
  { "name": "description", "values": [] },
2555
2962
  { "name": "stacked", "values": [] },
2963
+ {
2964
+ "name": "fact",
2965
+ "description": "A fact in a grid of headline attributes: a small muted caption above the value, without padding.",
2966
+ "values": []
2967
+ },
2968
+ {
2969
+ "name": "key-value",
2970
+ "description": "A row in a key–value list: a small muted caption beside a right-aligned value, on a compact row.",
2971
+ "values": []
2972
+ },
2973
+ {
2974
+ "name": "mono",
2975
+ "description": "Shows the value in the monospace font, for identifiers and codes.",
2976
+ "values": []
2977
+ },
2556
2978
  {
2557
2979
  "name": "size",
2558
2980
  "values": [
@@ -2626,6 +3048,36 @@
2626
3048
  }
2627
3049
  ]
2628
3050
  },
3051
+ {
3052
+ "name": "zn-key-value",
3053
+ "description": "Edits a list of name and value pairs, submitted as a JSON object.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when a pair is added, removed or edited.\n\n### **Slots:**\n - **label** - The label. Alternatively, use the `label` attribute.\n- **help-text** - Text under the pairs. Alternatively, use the `help-text` attribute.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **row** - Each name and value pair.",
3054
+ "attributes": [
3055
+ { "name": "name", "values": [] },
3056
+ {
3057
+ "name": "value",
3058
+ "description": "The pairs as a JSON object, such as `{\"1\": \"{{recipient.firstName}}\"}`.",
3059
+ "values": []
3060
+ },
3061
+ { "name": "label", "values": [] },
3062
+ { "name": "help-text", "values": [] },
3063
+ { "name": "key-label", "values": [] },
3064
+ { "name": "value-label", "values": [] },
3065
+ { "name": "add-text", "values": [] },
3066
+ {
3067
+ "name": "slash-items",
3068
+ "description": "Passed to each value input, so its slash menu can insert merge fields.",
3069
+ "values": []
3070
+ },
3071
+ { "name": "form", "values": [] },
3072
+ { "name": "disabled", "values": [] }
3073
+ ],
3074
+ "references": [
3075
+ {
3076
+ "name": "Documentation",
3077
+ "url": "https://zinc.style/components/key-value"
3078
+ }
3079
+ ]
3080
+ },
2629
3081
  {
2630
3082
  "name": "zn-linked-select",
2631
3083
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -2661,7 +3113,7 @@
2661
3113
  },
2662
3114
  {
2663
3115
  "name": "zn-markdown-editor",
2664
- "description": "A markdown editor with live preview, split view, and a fullscreen mode.\n---\n\n\n### **Events:**\n - **zn-view-mode-change** - Emitted when the user switches between editor / split / preview.\n- **zn-change** - Emitted when the markdown content changes.\n- **zn-input** - Emitted on each keystroke in the editor.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the editor.\n- **blur()** - Removes focus from the editor.\n\n### **Slots:**\n - **label** - The editor label. Alternatively, use the `label` attribute.\n- **help-text** - Help text shown below the editor. Alternatively, use the `help-text` attribute.\n- _default_ - The panel's main content.\n- **actions** - Actions displayed in the panel header (buttons, chips, etc).\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The toolbar containing the view-mode and fullscreen controls.\n- **editor** - The textarea wrapper.\n- **preview** - The rendered markdown preview.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
3116
+ "description": "A markdown editor with live preview, split view, and a fullscreen mode.\n---\n\n\n### **Events:**\n - **zn-view-mode-change** - Emitted when the user switches between editor / split / preview.\n- **zn-change** - Emitted when the markdown content changes.\n- **zn-input** - Emitted on each keystroke in the editor.\n\n### **Methods:**\n - **focus(options: _FocusOptions_)** - Sets focus on the editor.\n- **blur()** - Removes focus from the editor.\n\n### **Slots:**\n - **label** - The editor label. Alternatively, use the `label` attribute.\n- **help-text** - Help text shown below the editor. Alternatively, use the `help-text` attribute.\n- _default_ - The panel's main content.\n- **actions** - Actions displayed in the panel header (buttons, chips, etc).\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n- **--zn-panel-padding** - Padding around the body. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-shadow** - Resting shadow. Defaults to none. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The toolbar containing the view-mode and fullscreen controls.\n- **editor** - The textarea wrapper.\n- **preview** - The rendered markdown preview.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **header-left** - The caption and description, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
2665
3117
  "attributes": [
2666
3118
  {
2667
3119
  "name": "name",
@@ -2725,6 +3177,16 @@
2725
3177
  },
2726
3178
  { "name": "basis-px", "values": [] },
2727
3179
  { "name": "caption", "values": [] },
3180
+ {
3181
+ "name": "description",
3182
+ "description": "Help text under the caption, in the panel's header.",
3183
+ "values": []
3184
+ },
3185
+ {
3186
+ "name": "inline-description",
3187
+ "description": "Sets the description beside the caption rather than under it.",
3188
+ "values": []
3189
+ },
2728
3190
  { "name": "icon", "values": [] },
2729
3191
  { "name": "tabbed", "values": [] },
2730
3192
  { "name": "header-borderless", "values": [] },
@@ -2760,7 +3222,7 @@
2760
3222
  },
2761
3223
  {
2762
3224
  "name": "zn-menu-item",
2763
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n - **getTextLabel()** - Returns a text label based on the contents of the menu item's default slot.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3225
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n - **getTextLabel()** - Returns a text label based on the contents of the menu item's default slot.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **shortcut** - The key cap showing the item's `shortcut`.",
2764
3226
  "attributes": [
2765
3227
  {
2766
3228
  "name": "type",
@@ -2848,6 +3310,11 @@
2848
3310
  "name": "active",
2849
3311
  "description": "Marks the menu item as currently active/selected.",
2850
3312
  "values": []
3313
+ },
3314
+ {
3315
+ "name": "shortcut",
3316
+ "description": "A keyboard shortcut shown as a key cap at the end of the item, such as `E` or `⌘K`.",
3317
+ "values": []
2851
3318
  }
2852
3319
  ],
2853
3320
  "references": [
@@ -2857,9 +3324,96 @@
2857
3324
  }
2858
3325
  ]
2859
3326
  },
3327
+ {
3328
+ "name": "zn-menu-label",
3329
+ "description": "A heading for a group of items in a `zn-menu`. It is skipped by the menu's keyboard navigation.\n---\n\n\n### **Slots:**\n - _default_ - The label text.\n\n### **CSS Properties:**\n - **--zn-menu-label-padding** - Space around the label. _(default: undefined)_\n- **--zn-menu-label-color** - The label's text colour. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3330
+ "attributes": [],
3331
+ "references": [
3332
+ {
3333
+ "name": "Documentation",
3334
+ "url": "https://zinc.style/components/menu-label"
3335
+ }
3336
+ ]
3337
+ },
3338
+ {
3339
+ "name": "zn-nav-item",
3340
+ "description": "A selectable row in a `zn-nav-list`, with an optional description and count.\n---\n\n\n### **Slots:**\n - _default_ - The item's label.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **label** - The label, truncated with an ellipsis.\n- **description** - The description shown below the label.\n- **count** - The count shown at the end of the row.\n- **handle** - The drag handle, shown when the list is sortable.",
3341
+ "attributes": [
3342
+ {
3343
+ "name": "count",
3344
+ "description": "A count shown at the end of the row, such as the number of entries in the group.",
3345
+ "values": []
3346
+ },
3347
+ {
3348
+ "name": "description",
3349
+ "description": "A line of detail shown below the label.",
3350
+ "values": []
3351
+ }
3352
+ ],
3353
+ "references": [
3354
+ {
3355
+ "name": "Documentation",
3356
+ "url": "https://zinc.style/components/nav-item"
3357
+ }
3358
+ ]
3359
+ },
3360
+ {
3361
+ "name": "zn-nav-list",
3362
+ "description": "The list side of a master–detail layout: a card of selectable groups shown beside the selected group's\ncontents. Place it in the `left` slot of `<zn-tabs gap>`, which switches the detail panels.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when a sortable list's items have been moved.\n- **zn-reorder** - Emitted when a sortable list's items have been moved.\n\n### **Methods:**\n - **getPriorityMap()** - The order as `{key, priority}` pairs, counting from 1.\n\n### **Slots:**\n - _default_ - `zn-nav-item` elements.\n- **actions** - Actions in the card's header, beside the caption.\n\n### **CSS Properties:**\n - **--zn-nav-list-width** - The width of the card beside the detail. _(default: undefined)_\n- **--zn-nav-list-max-height** - Caps the card's height; the list scrolls beyond it. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header** - The header holding the caption and actions.\n- **search** - The wrapper around the search input.\n- **list** - The scrolling list of items.\n- **empty** - The message shown when the search matches nothing.",
3363
+ "attributes": [
3364
+ {
3365
+ "name": "searchable",
3366
+ "description": "Shows a search input that filters the items by their label.",
3367
+ "values": []
3368
+ },
3369
+ { "name": "search-placeholder", "values": [] },
3370
+ {
3371
+ "name": "empty-label",
3372
+ "description": "Shown when the search matches no items.",
3373
+ "values": []
3374
+ },
3375
+ {
3376
+ "name": "caption",
3377
+ "description": "A heading for the card, shown with the `actions` slot above the items.",
3378
+ "values": []
3379
+ },
3380
+ {
3381
+ "name": "divide",
3382
+ "description": "Draws the items as full-width rows split by dividers, marking the selected one with a bar on its edge.",
3383
+ "values": []
3384
+ },
3385
+ {
3386
+ "name": "sortable",
3387
+ "description": "Lets the items be dragged, or moved with Alt+Arrow keys, into a new order.",
3388
+ "values": []
3389
+ },
3390
+ {
3391
+ "name": "name",
3392
+ "description": "Submits the order as `[{key, priority}]` JSON, keyed by each item's `value` (or `tab`), counting from 1.",
3393
+ "values": []
3394
+ },
3395
+ {
3396
+ "name": "form",
3397
+ "description": "Associates the list with a form by id.",
3398
+ "values": []
3399
+ },
3400
+ { "name": "disabled", "values": [] },
3401
+ {
3402
+ "name": "formaction",
3403
+ "description": "When set, the form is submitted after each reorder, to this URL or, when empty, the form's own action.",
3404
+ "values": []
3405
+ }
3406
+ ],
3407
+ "references": [
3408
+ {
3409
+ "name": "Documentation",
3410
+ "url": "https://zinc.style/components/nav-list"
3411
+ }
3412
+ ]
3413
+ },
2860
3414
  {
2861
3415
  "name": "zn-navbar",
2862
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **expand** - Expanding action panels rendered alongside the navbar items.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters).\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3416
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **expand** - Expanding action panels rendered alongside the navbar items.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters).\n\n### **CSS Properties:**\n - **--zn-navbar-tab-indicator-slide** - `1` shows the sliding indicator in place of each tab's own line. _(default: undefined)_\n- **--zn-navbar-tab-indicator-duration** - Duration of the indicator's leading edge (default 300ms). _(default: undefined)_\n- **--zn-navbar-tab-indicator-easing** - Easing of both indicator edges. _(default: undefined)_\n- **--zn-navbar-tab-indicator-trail-duration** - Duration of the trailing edge; longer than the lead stretches the indicator. _(default: undefined)_\n- **--zn-navbar-tab-indicator-trail-easing** - Easing of the trailing edge; defaults to `--zn-navbar-tab-indicator-easing`. _(default: undefined)_\n- **--zn-navbar-tab-indicator-trail-delay** - Delay before the trailing edge follows (default 0ms). _(default: undefined)_\n- **--zn-navbar-tab-indicator-delay** - Delay before the indicator starts to move (default 0ms). _(default: undefined)_\n- **--zn-navbar-tab-indicator-squash** - Vertical scale the indicator squishes to before it travels (default 1, off). _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **indicator** - The active-tab indicator that slides between tabs. Exposes `--zn-navbar-indicator-top` / `--zn-navbar-indicator-height` (the active tab's box) for styles that fill the tab.",
2863
3417
  "attributes": [
2864
3418
  { "name": "navigation", "values": [{ "name": "array" }] },
2865
3419
  { "name": "full-width", "values": [] },
@@ -2869,6 +3423,21 @@
2869
3423
  { "name": "hide-one", "values": [] },
2870
3424
  { "name": "flush", "values": [] },
2871
3425
  { "name": "gutter", "values": [] },
3426
+ {
3427
+ "name": "pill",
3428
+ "description": "Draws the tabs as a segmented control: a grey track with a pill that slides to the active tab.",
3429
+ "values": []
3430
+ },
3431
+ {
3432
+ "name": "size",
3433
+ "description": "With `pill`, `small` draws a shorter track to sit with small controls, such as above a form field.",
3434
+ "values": [{ "name": "small" }, { "name": "medium" }]
3435
+ },
3436
+ {
3437
+ "name": "tabs",
3438
+ "description": "The id of a zn-tabs elsewhere on the page that this navbar's tabs switch, such as one below a page header.",
3439
+ "values": []
3440
+ },
2872
3441
  { "name": "stacked", "values": [] },
2873
3442
  { "name": "dropdown", "values": [{ "name": "array" }] },
2874
3443
  { "name": "no-pad", "values": [{ "name": "false" }] },
@@ -2961,7 +3530,7 @@
2961
3530
  },
2962
3531
  {
2963
3532
  "name": "zn-page",
2964
- "description": "Combines a page header with tab navigation and tab panels.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n \n\n\n### **Slots:**\n - _default_ - Page content. Use zn-tab for named tabs and header-action/header-actions for header actions. Clicking an element in the content with `tab=\"<tab id>\"` opens that tab.\n- **description** - Rich subtitle/description content. Falls back to the `summary` attribute when empty.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters). Forwarded to the navbar's bottom slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3533
+ "description": "Combines a page header with tab navigation and tab panels.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n \n\n\n### **Slots:**\n - _default_ - Page content. Use zn-tab for named tabs; without any, the content is shown as the page's only view. A zn-tab holding zn-tabs shows them as a second tab set, drawn as pills. Use header-action/header-actions for header actions. Clicking an element in the content with `tab=\"<tab id>\"` opens that tab.\n- **caption-badges** - Badges shown beside the caption, wrapping onto the next line as one group.\n- **description** - Rich subtitle/description content. Falls back to the `summary` attribute when empty.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters). Forwarded to the navbar's bottom slot.\n- **footer** - Actions pinned below the content, such as a form's `zn-form-actions`. In a modal page it takes the dialog footer's styling.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **footer** - The footer wrapping the footer slot.\n- **base** - The component's base wrapper.",
2965
3534
  "attributes": [
2966
3535
  { "name": "caption", "values": [] },
2967
3536
  { "name": "entity-id", "values": [] },
@@ -2969,6 +3538,15 @@
2969
3538
  { "name": "full-location", "values": [] },
2970
3539
  { "name": "modal", "values": [] },
2971
3540
  { "name": "nested", "values": [] },
3541
+ {
3542
+ "name": "navigation-style",
3543
+ "description": "The tab design: `tabs` (the default), `pills` for a second tab set below a main tab bar, shown without the page\nheader, or `sidebar` when the tabs are shown outside the page, which hides the tab bar unless it has bottom content.",
3544
+ "values": [
3545
+ { "name": "tabs" },
3546
+ { "name": "pills" },
3547
+ { "name": "sidebar" }
3548
+ ]
3549
+ },
2972
3550
  { "name": "primary", "values": [] },
2973
3551
  { "name": "previous-path", "values": [] },
2974
3552
  { "name": "previous-target", "values": [] },
@@ -2988,6 +3566,16 @@
2988
3566
  { "name": "store-key", "values": [] },
2989
3567
  { "name": "store-ttl", "values": [] },
2990
3568
  { "name": "padded", "values": [] },
3569
+ {
3570
+ "name": "select-added",
3571
+ "description": "With `store-key`, opens a tab that has appeared since the page was last shown, such as one for an item just\nadded, in place of the remembered tab.",
3572
+ "values": []
3573
+ },
3574
+ {
3575
+ "name": "gap",
3576
+ "description": "Spaces a left or right slot from the content, for side navigation laid out as its own card.",
3577
+ "values": []
3578
+ },
2991
3579
  { "name": "fetch-style", "values": [] },
2992
3580
  { "name": "full-width", "values": [] },
2993
3581
  { "name": "padded-right", "values": [] },
@@ -3067,6 +3655,16 @@
3067
3655
  { "name": "store-key", "values": [] },
3068
3656
  { "name": "store-ttl", "values": [] },
3069
3657
  { "name": "padded", "values": [] },
3658
+ {
3659
+ "name": "select-added",
3660
+ "description": "With `store-key`, opens a tab that has appeared since the page was last shown, such as one for an item just\nadded, in place of the remembered tab.",
3661
+ "values": []
3662
+ },
3663
+ {
3664
+ "name": "gap",
3665
+ "description": "Spaces a left or right slot from the content, for side navigation laid out as its own card.",
3666
+ "values": []
3667
+ },
3070
3668
  { "name": "fetch-style", "values": [] },
3071
3669
  { "name": "full-width", "values": [] },
3072
3670
  { "name": "padded-right", "values": [] },
@@ -3107,10 +3705,20 @@
3107
3705
  },
3108
3706
  {
3109
3707
  "name": "zn-panel",
3110
- "description": "Panels are versatile containers that provide structure for organizing content with optional headers and footers.\n---\n\n\n### **Slots:**\n - _default_ - The panel's main content.\n- **actions** - Actions displayed in the panel header (buttons, chips, etc).\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
3708
+ "description": "Panels are versatile containers that provide structure for organizing content with optional headers and footers.\n---\n\n\n### **Slots:**\n - _default_ - The panel's main content.\n- **actions** - Actions displayed in the panel header (buttons, chips, etc).\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n- **--zn-panel-padding** - Padding around the body. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-shadow** - Resting shadow. Defaults to none. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **header-left** - The caption and description, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
3111
3709
  "attributes": [
3112
3710
  { "name": "basis-px", "values": [] },
3113
3711
  { "name": "caption", "values": [] },
3712
+ {
3713
+ "name": "description",
3714
+ "description": "Help text under the caption, in the panel's header.",
3715
+ "values": []
3716
+ },
3717
+ {
3718
+ "name": "inline-description",
3719
+ "description": "Sets the description beside the caption rather than under it.",
3720
+ "values": []
3721
+ },
3114
3722
  { "name": "icon", "values": [] },
3115
3723
  { "name": "tabbed", "values": [] },
3116
3724
  { "name": "header-borderless", "values": [] },
@@ -3145,7 +3753,7 @@
3145
3753
  },
3146
3754
  {
3147
3755
  "name": "placement",
3148
- "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
3756
+ "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside the viewport.",
3149
3757
  "values": [
3150
3758
  { "name": "" },
3151
3759
  { "name": "top" },
@@ -3352,7 +3960,7 @@
3352
3960
  },
3353
3961
  {
3354
3962
  "name": "zn-priority-list",
3355
- "description": "A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\nand keyboard reordering. Priority values are submitted as form data via hidden inputs.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the order of items changes.\n- **zn-reorder** - Emitted when items are reordered. Call `getPriorityMap()` on the component to get the updated `{ key: string, priority: number }[]` array.\n\n### **Methods:**\n - **getPriorityMap(): _PriorityItem[]_** - Returns the priority map: an array of { key, priority } objects.\n- **checkValidity(): _boolean_** - Checks for validity but does not show a validation message.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where list items are placed. Each slotted element must have a `value` attribute that uniquely identifies the item. The component automatically assigns slot names to project each item into the correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing).\n- **label** - The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.\n- **label-tooltip** - Used to add text displayed in a tooltip next to the label.\n- **help-text** - Text that describes how to use the component. Alternatively, use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-priority-list-item-gap** - The gap between list items. Defaults to `var(--zn-spacing-2x-small)`. _(default: undefined)_\n- **--zn-priority-list-item-padding** - The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`. _(default: undefined)_\n- **--zn-priority-list-actions-gap** - The gap between an item's slotted actions. Defaults to `var(--zn-spacing-x-small)`. _(default: undefined)_\n- **--zn-priority-list-handle-color** - The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`. _(default: undefined)_\n- **--zn-priority-list-priority-color** - The color of the priority number. Defaults to `var(--zn-color-neutral-600)`. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control wrapper.\n- **form-control-label** - The label wrapper.\n- **form-control-input** - The input area wrapper.\n- **form-control-help-text** - The help text wrapper.\n- **list** - The list container.\n- **item** - An individual list item row.\n- **drag-handle** - The drag handle icon.\n- **priority** - The priority number badge.\n- **content** - The content area of an item.",
3963
+ "description": "A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\nand keyboard reordering. Priority values are submitted as form data via hidden inputs.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the order of items changes.\n- **zn-reorder** - Emitted when items are reordered. Call `getPriorityMap()` on the component to get the updated `{ key: string, priority: number }[]` array.\n\n### **Methods:**\n - **getPriorityMap(): _PriorityItem[]_** - Returns the priority map: an array of { key, priority } objects.\n- **checkValidity(): _boolean_** - Checks for validity but does not show a validation message.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where list items are placed. Each slotted element must have a `value` attribute that uniquely identifies the item. The component automatically assigns slot names to project each item into the correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing). Use `zn-tile` items for titled rows with their own actions. Set `locked` on an item to pin it where it is.\n- **action-{value}** - Controls shown at the end of the item with that `value`.\n- **label** - The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.\n- **label-tooltip** - Used to add text displayed in a tooltip next to the label.\n- **help-text** - Text that describes how to use the component. Alternatively, use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-priority-list-item-gap** - The gap between list items. Defaults to `var(--zn-spacing-2x-small)`. _(default: undefined)_\n- **--zn-priority-list-item-padding** - The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`. _(default: undefined)_\n- **--zn-priority-list-actions-gap** - The gap between an item's slotted actions. Defaults to `var(--zn-spacing-x-small)`. _(default: undefined)_\n- **--zn-priority-list-handle-color** - The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`. _(default: undefined)_\n- **--zn-priority-list-priority-color** - The color of the priority number. Defaults to `var(--zn-color-neutral-600)`. _(default: undefined)_\n\n### **CSS Parts:**\n - **form-control** - The form control wrapper.\n- **form-control-label** - The label wrapper.\n- **form-control-input** - The input area wrapper.\n- **form-control-help-text** - The help text wrapper.\n- **list** - The list container.\n- **item** - An individual list item row.\n- **drag-handle** - The drag handle icon.\n- **priority** - The priority number badge.\n- **content** - The content area of an item.",
3356
3964
  "attributes": [
3357
3965
  {
3358
3966
  "name": "name",
@@ -3408,6 +4016,31 @@
3408
4016
  "description": "The starting priority number. Defaults to 1.",
3409
4017
  "values": []
3410
4018
  },
4019
+ {
4020
+ "name": "flush",
4021
+ "description": "Draws the items as rows divided edge to edge, for a list filling a flush panel; the label is kept for\nscreen readers only.",
4022
+ "values": []
4023
+ },
4024
+ {
4025
+ "name": "selectable",
4026
+ "description": "Lets a click or Enter select an item as well as drag it, for a list that doubles as navigation. The click is\npassed on to the item, so a `tab` or link on it acts as if clicked.",
4027
+ "values": []
4028
+ },
4029
+ {
4030
+ "name": "selected",
4031
+ "description": "The selected item's value. An item marked active by zn-tabs takes precedence, so the list follows its tabs.",
4032
+ "values": []
4033
+ },
4034
+ {
4035
+ "name": "hide-priority",
4036
+ "description": "Hides each item's priority number, for lists where the order shows the priority.",
4037
+ "values": []
4038
+ },
4039
+ {
4040
+ "name": "move-buttons",
4041
+ "description": "Shows move up and move down buttons on each item.",
4042
+ "values": []
4043
+ },
3411
4044
  {
3412
4045
  "name": "formaction",
3413
4046
  "description": "When set, the associated form will be submitted with the given action URL whenever items are reordered.\nIf set to an empty string, the form will be submitted using its existing action.",
@@ -3472,7 +4105,17 @@
3472
4105
  { "name": "dropdown", "values": [] },
3473
4106
  { "name": "name", "values": [] },
3474
4107
  { "name": "value", "values": [{ "name": "PropertyKey" }] },
3475
- { "name": "show-values", "values": [{ "name": "string[]" }] }
4108
+ { "name": "show-values", "values": [{ "name": "string[]" }] },
4109
+ {
4110
+ "name": "rules",
4111
+ "description": "Rules to start with, in the shape the builder submits.",
4112
+ "values": [{ "name": "QueryBuilderRule[]" }]
4113
+ },
4114
+ {
4115
+ "name": "repeatable",
4116
+ "description": "Allows a filter to be added more than once, e.g. for a date range.",
4117
+ "values": []
4118
+ }
3476
4119
  ],
3477
4120
  "references": [
3478
4121
  {
@@ -3483,7 +4126,7 @@
3483
4126
  },
3484
4127
  {
3485
4128
  "name": "zn-radio",
3486
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the radio loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the radio gains focus.\n- **zn-input** - Emitted when the radio receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the radio.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio.\n- **blur()** - Removes focus from the radio.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The radio's label.\n- **image** - Replaces the built-in image used by contained radios.\n- **description** - A description of the radio's label. Serves as help text for a radio item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected radio item. Use only with the contained style.\n\n### **CSS Properties:**\n - **--zn-selection-card-image-width** - Width of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-image-height** - Height of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-min-height** - Minimum height of a contained radio with an image. _(default: undefined)_\n- **--zn-selection-card-content-min-width** - Width the card text keeps before it wraps below the image. _(default: undefined)_\n- **--zn-selection-card-title-font-size** - Font size of a selection card title. _(default: undefined)_\n- **--zn-selection-card-padding** - Equal inset around the contents of a selection card. _(default: undefined)_\n- **--zn-selection-card-gap** - Space between the image, title, and indicator gutter. _(default: undefined)_\n- **--zn-selection-card-control-offset** - Distance between a positioned control and the card edge. _(default: undefined)_\n- **--zn-selection-card-border-radius** - Corner radius of a contained container. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the radio's checked state.\n- **control--checked** - Matches the control part when the radio is checked.\n- **checked-icon** - The checked icon, an `<zn-icon>` element.\n- **image-container** - The wrapper around the built-in image or image slot.\n- **image** - The built-in image.\n- **card-title** - The title inside a selection card.\n- **label** - The container that wraps the radio's label.\n- **description** - The container that wraps the radio's description.\n- **selected-content** - The container that wraps optional content that appears when a radio is checked.",
4129
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the radio loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the radio gains focus.\n- **zn-input** - Emitted when the radio receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the radio.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio.\n- **blur()** - Removes focus from the radio.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The radio's label.\n- **image** - Replaces the built-in image used by contained radios.\n- **description** - A description of the radio's label. Serves as help text for a radio item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected radio item. Use only with the contained style.\n\n### **CSS Properties:**\n - **--zn-selection-card-image-width** - Width of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-image-height** - Height of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-min-height** - Minimum height of a contained radio with an image. _(default: undefined)_\n- **--zn-selection-card-content-min-width** - Width the card text keeps before it wraps below the image. _(default: undefined)_\n- **--zn-selection-card-title-font-size** - Font size of a selection card title. _(default: undefined)_\n- **--zn-selection-card-padding** - Equal inset around the contents of a selection card. _(default: undefined)_\n- **--zn-selection-card-gap** - Space between the image, title, and indicator gutter. _(default: undefined)_\n- **--zn-selection-card-control-offset** - Distance between a positioned control and the card edge. _(default: undefined)_\n- **--zn-selection-card-border-radius** - Corner radius of a contained container. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the radio's checked state.\n- **control--checked** - Matches the control part when the radio is checked.\n- **checked-icon** - The checked dot, a `<span>` element.\n- **image-container** - The wrapper around the built-in image or image slot.\n- **image** - The built-in image.\n- **card-title** - The title inside a selection card.\n- **label** - The container that wraps the radio's label.\n- **description** - The container that wraps the radio's description.\n- **selected-content** - The container that wraps optional content that appears when a radio is checked.",
3487
4130
  "attributes": [
3488
4131
  { "name": "title", "values": [] },
3489
4132
  {
@@ -3530,6 +4173,11 @@
3530
4173
  "description": "Squares off the corners of the container drawn by `contained`, which is rounded by default.",
3531
4174
  "values": []
3532
4175
  },
4176
+ {
4177
+ "name": "centered",
4178
+ "description": "Centres the text of a contained radio that has no image or `card-title`.",
4179
+ "values": []
4180
+ },
3533
4181
  {
3534
4182
  "name": "src",
3535
4183
  "description": "URL for the image shown in a contained radio.",
@@ -3547,7 +4195,7 @@
3547
4195
  },
3548
4196
  {
3549
4197
  "name": "control-position",
3550
- "description": "Places the radio indicator within a contained card. Use `none` to hide the indicator so the card itself\nshows the selected state. Requires `contained`.",
4198
+ "description": "Places the radio indicator within a contained card. A contained radio without an image or `card-title` hides it\nat `start`, as does `none`. Requires `contained`.",
3551
4199
  "values": [{ "name": "SelectionCardControlPosition" }]
3552
4200
  },
3553
4201
  {
@@ -3555,6 +4203,16 @@
3555
4203
  "description": "Applies styles relevant to radios in a horizontal layout.",
3556
4204
  "values": []
3557
4205
  },
4206
+ {
4207
+ "name": "scale",
4208
+ "description": "Draws the radio as one segment of a scale. Set by a radio group with `scale`.",
4209
+ "values": []
4210
+ },
4211
+ {
4212
+ "name": "filled",
4213
+ "description": "Fills a scale segment, as one at or before the group's checked radio. Set by a radio group with `scale`.",
4214
+ "values": []
4215
+ },
3558
4216
  {
3559
4217
  "name": "form",
3560
4218
  "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
@@ -3633,11 +4291,21 @@
3633
4291
  "description": "Squares off the corners of every contained radio in the group, which are rounded by default.",
3634
4292
  "values": []
3635
4293
  },
4294
+ {
4295
+ "name": "centered",
4296
+ "description": "Centres the text of every contained radio in the group.",
4297
+ "values": []
4298
+ },
3636
4299
  {
3637
4300
  "name": "wrap",
3638
4301
  "description": "Lays horizontal contained radios out as a wrapping row instead of an equal-width grid, so each one sizes from\n`--zn-radio-group-column-width` (set it to `auto` to size from content) and wraps onto a new line when needed.",
3639
4302
  "values": []
3640
4303
  },
4304
+ {
4305
+ "name": "scale",
4306
+ "description": "Lays the radios out as a segmented scale, in document order, filling every segment up to the checked one. Suits\nordered answers such as 1 to 10, and unlike a range input it has no value until one is picked.",
4307
+ "values": []
4308
+ },
3641
4309
  {
3642
4310
  "name": "form",
3643
4311
  "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
@@ -3764,6 +4432,79 @@
3764
4432
  }
3765
4433
  ]
3766
4434
  },
4435
+ {
4436
+ "name": "zn-report-table",
4437
+ "description": "A grouped report: one row per value of a dimension, read column by column, with a total row.\n---\n\n\n### **Events:**\n - **zn-report-change** - Emitted when the type, group by, date range or filter is changed, before the report is fetched again.\n\n### **Slots:**\n - **inputs** - Inputs whose name and value are sent with every request (csrf tokens and similar).\n- **empty-state** - Replaces the default empty state.",
4438
+ "attributes": [
4439
+ { "name": "data-uri", "values": [] },
4440
+ { "name": "method", "values": [{ "name": "GET" }, { "name": "POST" }] },
4441
+ { "name": "caption", "values": [] },
4442
+ { "name": "type", "values": [] },
4443
+ { "name": "group-by", "values": [] },
4444
+ { "name": "from", "values": [] },
4445
+ { "name": "to", "values": [] },
4446
+ { "name": "filter", "values": [] },
4447
+ { "name": "currency", "values": [] },
4448
+ { "name": "locale", "values": [] },
4449
+ {
4450
+ "name": "types",
4451
+ "description": "Report types, shown as tabs when there are two or more. `type` defaults to the first.",
4452
+ "values": [{ "name": "ReportOption[]" }]
4453
+ },
4454
+ {
4455
+ "name": "group-bys",
4456
+ "description": "Group by options; those with a `category` are listed under its heading.",
4457
+ "values": [{ "name": "ReportOption[]" }]
4458
+ },
4459
+ {
4460
+ "name": "filter-fields",
4461
+ "description": "Fields for the funnel's filter builder. The funnel is hidden when there are none.",
4462
+ "values": [{ "name": "ReportFilterField[]" }]
4463
+ },
4464
+ {
4465
+ "name": "presets",
4466
+ "description": "Quick ranges for the date range, replacing the default ones.",
4467
+ "values": [{ "name": "DatePreset[]" }]
4468
+ },
4469
+ {
4470
+ "name": "max-date",
4471
+ "description": "The latest day that can be picked. Defaults to today.",
4472
+ "values": []
4473
+ },
4474
+ {
4475
+ "name": "date-note",
4476
+ "description": "A short line shown under the date range's calendar.",
4477
+ "values": []
4478
+ },
4479
+ { "name": "search-placeholder", "values": [] },
4480
+ {
4481
+ "name": "sharable",
4482
+ "description": "Mirrors the type, group by, dates, filter and search to the URL query string, and reads them back on load.",
4483
+ "values": []
4484
+ },
4485
+ {
4486
+ "name": "hide-empty-columns",
4487
+ "description": "Leaves out columns that are zero or empty in every row, and groups left without columns.",
4488
+ "values": []
4489
+ },
4490
+ {
4491
+ "name": "selectable",
4492
+ "description": "Gives each row a tick box that highlights it, with one in the heading for every row shown.",
4493
+ "values": []
4494
+ },
4495
+ {
4496
+ "name": "heatmap",
4497
+ "description": "Shades number cells by their size against the largest in their column.",
4498
+ "values": []
4499
+ }
4500
+ ],
4501
+ "references": [
4502
+ {
4503
+ "name": "Documentation",
4504
+ "url": "https://zinc.style/components/report-table"
4505
+ }
4506
+ ]
4507
+ },
3767
4508
  {
3768
4509
  "name": "zn-reveal",
3769
4510
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -4044,6 +4785,11 @@
4044
4785
  "description": "The select's required attribute.",
4045
4786
  "values": []
4046
4787
  },
4788
+ {
4789
+ "name": "label-note",
4790
+ "description": "Short text shown next to the label, styled like the help text, e.g. `optional`.",
4791
+ "values": []
4792
+ },
4047
4793
  { "name": "cache-key", "values": [] },
4048
4794
  { "name": "trigger-submit", "values": [] },
4049
4795
  {
@@ -4181,7 +4927,7 @@
4181
4927
  },
4182
4928
  {
4183
4929
  "name": "radius",
4184
- "description": "Border radius of the skeleton element. Default: \"4px\"",
4930
+ "description": "Border radius of the skeleton element. Defaults to the theme's `--zn-skeleton-border-radius` (4px).",
4185
4931
  "values": []
4186
4932
  }
4187
4933
  ],
@@ -4485,8 +5231,49 @@
4485
5231
  },
4486
5232
  {
4487
5233
  "name": "layout",
4488
- "description": "`value-first` puts the amount under the caption with the description beneath it, and tints the amount rather\nthan the description with `color`.",
4489
- "values": [{ "name": "default" }, { "name": "value-first" }]
5234
+ "description": "`value-first` puts the amount under the caption with the description beneath it, and tints the amount rather\nthan the description with `color`. `tile` is a self-contained card: caption, amount, a footer with the delta and\n`description`, an optional sparkline, and the default slot beneath.",
5235
+ "values": [
5236
+ { "name": "default" },
5237
+ { "name": "value-first" },
5238
+ { "name": "tile" }
5239
+ ]
5240
+ },
5241
+ {
5242
+ "name": "spark",
5243
+ "description": "Comma-separated values drawn as a sparkline under a `tile`.",
5244
+ "values": []
5245
+ },
5246
+ {
5247
+ "name": "spark-color",
5248
+ "description": "The sparkline's colour: a tone (`primary`, `info`, `success`, `warning`, `danger`, `ai`) or any CSS colour.",
5249
+ "values": []
5250
+ },
5251
+ {
5252
+ "name": "invert-delta",
5253
+ "description": "Treats a rise as bad news, so an increase is coloured as a loss (declines, refunds, failures).",
5254
+ "values": []
5255
+ },
5256
+ {
5257
+ "name": "tone",
5258
+ "description": "A coloured dot before a `tile`'s caption.",
5259
+ "values": [
5260
+ { "name": "''" },
5261
+ { "name": "info" },
5262
+ { "name": "success" },
5263
+ { "name": "warning" },
5264
+ { "name": "danger" },
5265
+ { "name": "neutral" }
5266
+ ]
5267
+ },
5268
+ {
5269
+ "name": "selectable",
5270
+ "description": "Renders a `tile` as a toggle button, for tiles that filter the content below them.",
5271
+ "values": []
5272
+ },
5273
+ {
5274
+ "name": "selected",
5275
+ "description": "Whether a `selectable` tile is pressed, or a linked tile marks the view the page is showing.",
5276
+ "values": []
4490
5277
  },
4491
5278
  {
4492
5279
  "name": "delta-format",
@@ -4512,6 +5299,23 @@
4512
5299
  "name": "padded",
4513
5300
  "description": "Pads the stat, for stats laid edge to edge in a flush container such as `zn-cols no-gap divide`.",
4514
5301
  "values": []
5302
+ },
5303
+ {
5304
+ "name": "href",
5305
+ "description": "Makes the whole stat a link, marked with an arrow in its corner.",
5306
+ "values": []
5307
+ },
5308
+ { "name": "data-target", "values": [] },
5309
+ { "name": "gaid", "values": [] },
5310
+ {
5311
+ "name": "data-url",
5312
+ "description": "JSON fetched once to fill the stat: any of `caption`, `amount`, `description`, `previous`, `spark` and\n`sparkColor`. The stat's own attributes show until it loads.",
5313
+ "values": []
5314
+ },
5315
+ {
5316
+ "name": "loading",
5317
+ "description": "Shows a `tile` as a placeholder. Set while `data-url` loads; the sparkline draws in once it clears.",
5318
+ "values": []
4515
5319
  }
4516
5320
  ],
4517
5321
  "references": [
@@ -4625,6 +5429,7 @@
4625
5429
  "description": "Defines a tab panel for use inside zn-page.\n---\n\n\n### **Slots:**\n - _default_ - The tab panel content.",
4626
5430
  "attributes": [
4627
5431
  { "name": "caption", "values": [] },
5432
+ { "name": "icon", "values": [] },
4628
5433
  { "name": "priority", "values": [] },
4629
5434
  { "name": "uri", "values": [] },
4630
5435
  {
@@ -4674,6 +5479,16 @@
4674
5479
  { "name": "store-key", "values": [] },
4675
5480
  { "name": "store-ttl", "values": [] },
4676
5481
  { "name": "padded", "values": [] },
5482
+ {
5483
+ "name": "select-added",
5484
+ "description": "With `store-key`, opens a tab that has appeared since the page was last shown, such as one for an item just\nadded, in place of the remembered tab.",
5485
+ "values": []
5486
+ },
5487
+ {
5488
+ "name": "gap",
5489
+ "description": "Spaces a left or right slot from the content, for side navigation laid out as its own card.",
5490
+ "values": []
5491
+ },
4677
5492
  { "name": "fetch-style", "values": [] },
4678
5493
  { "name": "full-width", "values": [] },
4679
5494
  { "name": "padded-right", "values": [] },
@@ -4769,6 +5584,11 @@
4769
5584
  "description": "Makes the textarea a required field.",
4770
5585
  "values": []
4771
5586
  },
5587
+ {
5588
+ "name": "label-note",
5589
+ "description": "Short text shown next to the label, styled like the help text, e.g. `optional`.",
5590
+ "values": []
5591
+ },
4772
5592
  {
4773
5593
  "name": "minlength",
4774
5594
  "description": "The minimum length of input that will be considered valid.",
@@ -5145,10 +5965,27 @@
5145
5965
  },
5146
5966
  {
5147
5967
  "name": "zn-tile",
5148
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
5968
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n- **--zn-tile-hover-caption-color** - The caption color while a linked tile is hovered. _(default: undefined)_\n- **--zn-tile-hover-caption-decoration** - The caption text decoration while a linked tile is hovered. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **icon** - The tinted square around the icon.",
5149
5969
  "attributes": [
5150
5970
  { "name": "caption", "values": [] },
5151
5971
  { "name": "description", "values": [] },
5972
+ {
5973
+ "name": "icon",
5974
+ "description": "Shows the icon in a tinted square before the caption.",
5975
+ "values": []
5976
+ },
5977
+ {
5978
+ "name": "icon-color",
5979
+ "description": "The tint of the icon square: `success`, `warning`, `danger`, `info`, `ai` or `neutral`.",
5980
+ "values": [
5981
+ { "name": "success" },
5982
+ { "name": "warning" },
5983
+ { "name": "danger" },
5984
+ { "name": "info" },
5985
+ { "name": "ai" },
5986
+ { "name": "neutral" }
5987
+ ]
5988
+ },
5152
5989
  { "name": "href", "values": [] },
5153
5990
  { "name": "data-target", "values": [] },
5154
5991
  { "name": "gaid", "values": [] },
@@ -5222,7 +6059,7 @@
5222
6059
  },
5223
6060
  {
5224
6061
  "name": "zn-toggle",
5225
- "description": "Toggles allow the user to switch an option on or off.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the toggle receives input.\n\n### **Slots:**\n - _default_ - The toggle's label.\n- **description** - A description of the toggle's label. Alternatively, you can use the `description` attribute.\n- **help-text** - Text that describes how to use the toggle. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-toggle-margin** - The margin around the toggle switch. Defaults to `8px 0`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper containing the toggle switch.\n- **control** - The toggle switch control (the circular button that slides).\n- **label** - The toggle's label.\n- **description** - The container that wraps the toggle's description.",
6062
+ "description": "Toggles allow the user to switch an option on or off.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted when the toggle receives input.\n- **zn-change** - Emitted when the toggle is switched on or off.\n\n### **Slots:**\n - _default_ - The toggle's label.\n- **description** - A description of the toggle's label. Alternatively, you can use the `description` attribute.\n- **help-text** - Text that describes how to use the toggle. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-toggle-margin** - The margin around the toggle switch. Defaults to `8px 0`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper containing the toggle switch.\n- **control** - The toggle switch control (the circular button that slides).\n- **label** - The toggle's label.\n- **description** - The container that wraps the toggle's description.",
5226
6063
  "attributes": [
5227
6064
  { "name": "title", "values": [] },
5228
6065
  { "name": "name", "values": [] },
@@ -5304,9 +6141,97 @@
5304
6141
  }
5305
6142
  ]
5306
6143
  },
6144
+ {
6145
+ "name": "zn-translation-field",
6146
+ "description": "A field's source text beside the control that translates it.\n---\n\n\n### **Slots:**\n - _default_ - The control the translation is written in, such as a `zn-input` with the language code as its prefix.\n- **source** - The source text, shown read-only.\n- **actions** - Actions beside the label.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **source** - The box holding the source.",
6147
+ "attributes": [
6148
+ { "name": "label", "values": [] },
6149
+ {
6150
+ "name": "source-code",
6151
+ "description": "The source's language code, shown beside it.",
6152
+ "values": []
6153
+ },
6154
+ {
6155
+ "name": "multiline",
6156
+ "description": "For source text that runs over several lines, such as a message body.",
6157
+ "values": []
6158
+ },
6159
+ {
6160
+ "name": "offset",
6161
+ "description": "Lines the source up with a control that has a toolbar above it, such as a compact `zn-editor`.",
6162
+ "values": []
6163
+ }
6164
+ ],
6165
+ "references": [
6166
+ {
6167
+ "name": "Documentation",
6168
+ "url": "https://zinc.style/components/translation-field"
6169
+ }
6170
+ ]
6171
+ },
6172
+ {
6173
+ "name": "zn-translation-fields",
6174
+ "description": "Lays out `zn-translation-field`s with their source beside or above the translation, chosen by the viewer.\n---\n\n\n### **Slots:**\n - _default_ - The `zn-translation-field`s.\n- **actions** - Actions level with the layout switch.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
6175
+ "attributes": [
6176
+ { "name": "layout", "values": [{ "name": "TranslationFieldsLayout" }] },
6177
+ {
6178
+ "name": "store-key",
6179
+ "description": "Remembers the viewer's layout under this key in `localStorage`; leave empty to forget it.",
6180
+ "values": []
6181
+ }
6182
+ ],
6183
+ "references": [
6184
+ {
6185
+ "name": "Documentation",
6186
+ "url": "https://zinc.style/components/translation-fields"
6187
+ }
6188
+ ]
6189
+ },
6190
+ {
6191
+ "name": "zn-translation-grid",
6192
+ "description": "Shows how far each language's translation has got, with a column per language to choose and enable it,\nand optionally a row per translated field.\n---\n\n\n### **Slots:**\n - _default_ - Help text under the legend.\n- **enable-{code}** - The control that enables the language with that code, such as a `zn-checkbox` in a form. The Enable row only shows when at least one is given.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
6193
+ "attributes": [
6194
+ {
6195
+ "name": "languages",
6196
+ "description": "The languages, in column order, as a JSON array of `{code, label, status, href}`.",
6197
+ "values": [{ "name": "TranslationGridLanguage[]" }]
6198
+ },
6199
+ {
6200
+ "name": "fields",
6201
+ "description": "A row per translated field, as a JSON array of `{key, label, cells}`; without it there is one Translation row.",
6202
+ "values": [{ "name": "TranslationGridField[]" }]
6203
+ },
6204
+ {
6205
+ "name": "selected",
6206
+ "description": "The code of the language being edited.",
6207
+ "values": []
6208
+ },
6209
+ {
6210
+ "name": "selected-field",
6211
+ "description": "The key of the field being edited, when there are `fields`.",
6212
+ "values": []
6213
+ },
6214
+ {
6215
+ "name": "link-target",
6216
+ "description": "Where the language links open, as a console `data-target`; `self` replaces the content they sit in.",
6217
+ "values": []
6218
+ },
6219
+ {
6220
+ "name": "source-label",
6221
+ "description": "Names the source in the legend, such as \"English changed\".",
6222
+ "values": []
6223
+ }
6224
+ ],
6225
+ "references": [
6226
+ {
6227
+ "name": "Documentation",
6228
+ "url": "https://zinc.style/components/translation-grid"
6229
+ }
6230
+ ]
6231
+ },
5307
6232
  {
5308
6233
  "name": "zn-translation-group",
5309
- "description": "Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\ntranslated a language at a time.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - The `zn-translations` fields the select drives.\n- **actions** - Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows.\n- **footer** - Content displayed in the grey panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **form-group** - The form group holding the caption, the language select and the fields.\n- **actions** - The row of buttons at the bottom of the body.\n- **language-field** - The select that chooses the language every child is editing, in the group's chip slot.\n- **language-select** - The select itself.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
6234
+ "description": "Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\ntranslated a language at a time.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - The `zn-translations` fields the select drives.\n- **actions** - Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows.\n- **footer** - Content displayed in the grey panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n- **--zn-panel-header-padding** - Padding around the header row. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-footer-padding** - Padding around the footer row. _(default: undefined)_\n- **--zn-panel-padding** - Padding around the body. Defaults to `--zn-base-gap`. _(default: undefined)_\n- **--zn-panel-shadow** - Resting shadow. Defaults to none. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **form-group** - The form group holding the caption, the language select and the fields.\n- **actions** - The row of buttons at the bottom of the body.\n- **language-field** - The select that chooses the language every child is editing, in the group's chip slot.\n- **language-select** - The select itself.\n- **header** - The header region, when a caption or actions are given.\n- **header-content** - The padded row inside the header, forwarded from zn-header.\n- **header-left** - The caption and description, forwarded from zn-header.\n- **footer** - The footer region, when the footer slot is filled.",
5310
6235
  "attributes": [
5311
6236
  {
5312
6237
  "name": "label",
@@ -5335,6 +6260,16 @@
5335
6260
  },
5336
6261
  { "name": "basis-px", "values": [] },
5337
6262
  { "name": "caption", "values": [] },
6263
+ {
6264
+ "name": "description",
6265
+ "description": "Help text under the caption, in the panel's header.",
6266
+ "values": []
6267
+ },
6268
+ {
6269
+ "name": "inline-description",
6270
+ "description": "Sets the description beside the caption rather than under it.",
6271
+ "values": []
6272
+ },
5338
6273
  { "name": "icon", "values": [] },
5339
6274
  { "name": "tabbed", "values": [] },
5340
6275
  { "name": "header-borderless", "values": [] },
@@ -5487,7 +6422,7 @@
5487
6422
  },
5488
6423
  {
5489
6424
  "name": "zn-vertical-stepper",
5490
- "description": "Vertical steppers display a sequence of steps in a vertical layout with descriptions and optional icons.\n---\n\n\n### **Slots:**\n - **icon** - Optional slot for adding an icon or indicator before the step content.\n\n### **CSS Parts:**\n - **vs** - The main container for the vertical stepper.\n- **vs__left** - The left section containing the icon and connecting line.\n- **vs__icon** - The icon container.\n- **vs__line** - The vertical connecting line between steps.\n- **vs__right** - The right section containing caption and description text.\n- **vs__caption** - The caption/title text element.\n- **vs__description** - The description text element.",
6425
+ "description": "Vertical steppers display a sequence of steps in a vertical layout with descriptions and optional icons.\n---\n\n\n### **Slots:**\n - _default_ - Content below the caption and description, such as metadata or chips.\n- **icon** - Optional slot for adding an icon or indicator before the step content.\n- **suffix** - Inline content after the caption and description, such as status chips.\n- **actions** - Controls aligned to the end of the step.\n\n### **CSS Parts:**\n - **vs** - The main container for the vertical stepper.\n- **vs__left** - The left section containing the icon and connecting line.\n- **vs__icon** - The icon container.\n- **vs__line** - The vertical connecting line between steps.\n- **vs__right** - The right section containing caption and description text.\n- **vs__caption** - The caption/title text element.\n- **vs__description** - The description text element.\n- **vs__content** - The container for the default slot.\n- **vs__actions** - The container for the actions slot.",
5491
6426
  "attributes": [
5492
6427
  {
5493
6428
  "name": "last",
@@ -5513,6 +6448,26 @@
5513
6448
  "name": "caption",
5514
6449
  "description": "The main label/title for this step.",
5515
6450
  "values": []
6451
+ },
6452
+ {
6453
+ "name": "type",
6454
+ "description": "Marker colour: neutral, primary, success, error, warning, info or ai (AI-generated steps only). Overrides `active`.",
6455
+ "values": []
6456
+ },
6457
+ {
6458
+ "name": "selected",
6459
+ "description": "When true, rings the marker to show the step is picked.",
6460
+ "values": []
6461
+ },
6462
+ {
6463
+ "name": "dashed",
6464
+ "description": "When true, draws the marker's border dashed, for a step that is not yet final.",
6465
+ "values": []
6466
+ },
6467
+ {
6468
+ "name": "highlight-line",
6469
+ "description": "When true, colours the line below this step's marker, joining it to the next step.",
6470
+ "values": []
5516
6471
  }
5517
6472
  ],
5518
6473
  "references": [