@unofficialbox/box-open-elements 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/README.md +39 -14
  2. package/dist/components/actions/button-group.d.ts +2 -2
  3. package/dist/components/actions/button-group.js +3 -9
  4. package/dist/components/actions/button.d.ts +2 -2
  5. package/dist/components/actions/button.js +3 -9
  6. package/dist/components/actions/icon-button.d.ts +2 -2
  7. package/dist/components/actions/icon-button.js +3 -9
  8. package/dist/components/actions/link-button.d.ts +2 -2
  9. package/dist/components/actions/link-button.js +3 -9
  10. package/dist/components/actions/menu-item.d.ts +2 -2
  11. package/dist/components/actions/menu-item.js +3 -9
  12. package/dist/components/actions/menu.d.ts +2 -2
  13. package/dist/components/actions/menu.js +3 -9
  14. package/dist/components/actions/segmented-control.d.ts +2 -2
  15. package/dist/components/actions/segmented-control.js +3 -9
  16. package/dist/components/collections/card.d.ts +2 -2
  17. package/dist/components/collections/card.js +3 -9
  18. package/dist/components/collections/carousel.d.ts +2 -2
  19. package/dist/components/collections/carousel.js +3 -9
  20. package/dist/components/collections/datalist-item.d.ts +2 -2
  21. package/dist/components/collections/datalist-item.js +3 -9
  22. package/dist/components/collections/draggable-list.d.ts +2 -2
  23. package/dist/components/collections/draggable-list.js +3 -9
  24. package/dist/components/collections/grid-view.d.ts +2 -2
  25. package/dist/components/collections/grid-view.js +3 -9
  26. package/dist/components/collections/pagination.d.ts +2 -2
  27. package/dist/components/collections/pagination.js +3 -9
  28. package/dist/components/collections/table.d.ts +59 -5
  29. package/dist/components/collections/table.js +342 -29
  30. package/dist/components/collections/thumbnail-card.d.ts +2 -2
  31. package/dist/components/collections/thumbnail-card.js +3 -9
  32. package/dist/components/collections/tree-grid.d.ts +2 -2
  33. package/dist/components/collections/tree-grid.js +3 -9
  34. package/dist/components/collections/tree.d.ts +2 -2
  35. package/dist/components/collections/tree.js +3 -9
  36. package/dist/components/feedback/alert.d.ts +2 -2
  37. package/dist/components/feedback/alert.js +3 -9
  38. package/dist/components/feedback/badge.d.ts +2 -2
  39. package/dist/components/feedback/badge.js +3 -9
  40. package/dist/components/feedback/badgeable.d.ts +2 -2
  41. package/dist/components/feedback/badgeable.js +3 -9
  42. package/dist/components/feedback/chip.d.ts +2 -2
  43. package/dist/components/feedback/chip.js +3 -9
  44. package/dist/components/feedback/due-badge.d.ts +38 -0
  45. package/dist/components/feedback/due-badge.js +168 -0
  46. package/dist/components/feedback/due-types.d.ts +32 -0
  47. package/dist/components/feedback/due-types.js +91 -0
  48. package/dist/components/feedback/empty-state.d.ts +2 -2
  49. package/dist/components/feedback/empty-state.js +3 -9
  50. package/dist/components/feedback/error-mask.d.ts +2 -2
  51. package/dist/components/feedback/error-mask.js +3 -9
  52. package/dist/components/feedback/help-text.d.ts +2 -2
  53. package/dist/components/feedback/help-text.js +3 -9
  54. package/dist/components/feedback/nudge.d.ts +2 -2
  55. package/dist/components/feedback/nudge.js +3 -9
  56. package/dist/components/feedback/progress-bar.d.ts +2 -2
  57. package/dist/components/feedback/progress-bar.js +3 -9
  58. package/dist/components/feedback/progress-ring.d.ts +2 -2
  59. package/dist/components/feedback/progress-ring.js +3 -9
  60. package/dist/components/feedback/progress-steps.d.ts +53 -7
  61. package/dist/components/feedback/progress-steps.js +203 -31
  62. package/dist/components/feedback/skeleton.d.ts +2 -2
  63. package/dist/components/feedback/skeleton.js +3 -9
  64. package/dist/components/feedback/spinner.d.ts +2 -2
  65. package/dist/components/feedback/spinner.js +3 -9
  66. package/dist/components/feedback/stage-path.d.ts +44 -0
  67. package/dist/components/feedback/stage-path.js +235 -0
  68. package/dist/components/feedback/toast.d.ts +2 -2
  69. package/dist/components/feedback/toast.js +3 -9
  70. package/dist/components/files/drop-zone.d.ts +2 -2
  71. package/dist/components/files/drop-zone.js +3 -9
  72. package/dist/components/forms/calendar.d.ts +2 -2
  73. package/dist/components/forms/calendar.js +3 -9
  74. package/dist/components/forms/category-selector.d.ts +2 -2
  75. package/dist/components/forms/category-selector.js +3 -9
  76. package/dist/components/forms/checkbox-group.d.ts +2 -2
  77. package/dist/components/forms/checkbox-group.js +3 -9
  78. package/dist/components/forms/checkbox.d.ts +2 -2
  79. package/dist/components/forms/checkbox.js +3 -9
  80. package/dist/components/forms/color-picker.d.ts +2 -2
  81. package/dist/components/forms/color-picker.js +3 -9
  82. package/dist/components/forms/combobox.d.ts +2 -2
  83. package/dist/components/forms/combobox.js +3 -9
  84. package/dist/components/forms/date-field.d.ts +2 -2
  85. package/dist/components/forms/date-field.js +3 -9
  86. package/dist/components/forms/dropdown.d.ts +2 -2
  87. package/dist/components/forms/dropdown.js +3 -9
  88. package/dist/components/forms/dual-listbox.d.ts +2 -2
  89. package/dist/components/forms/dual-listbox.js +3 -9
  90. package/dist/components/forms/fieldset.d.ts +2 -2
  91. package/dist/components/forms/fieldset.js +3 -9
  92. package/dist/components/forms/multi-select.d.ts +2 -2
  93. package/dist/components/forms/multi-select.js +3 -9
  94. package/dist/components/forms/number-input.d.ts +2 -2
  95. package/dist/components/forms/number-input.js +3 -9
  96. package/dist/components/forms/pill-cloud.d.ts +2 -2
  97. package/dist/components/forms/pill-cloud.js +3 -9
  98. package/dist/components/forms/pill-selector-dropdown.d.ts +2 -2
  99. package/dist/components/forms/pill-selector-dropdown.js +3 -9
  100. package/dist/components/forms/radio-group.d.ts +2 -2
  101. package/dist/components/forms/radio-group.js +3 -9
  102. package/dist/components/forms/range-slider.d.ts +2 -2
  103. package/dist/components/forms/range-slider.js +3 -9
  104. package/dist/components/forms/rating.d.ts +2 -2
  105. package/dist/components/forms/rating.js +3 -9
  106. package/dist/components/forms/rich-text-input.d.ts +2 -2
  107. package/dist/components/forms/rich-text-input.js +3 -9
  108. package/dist/components/forms/search-field.d.ts +2 -2
  109. package/dist/components/forms/search-field.js +3 -9
  110. package/dist/components/forms/select.d.ts +23 -2
  111. package/dist/components/forms/select.js +103 -12
  112. package/dist/components/forms/slider.d.ts +2 -2
  113. package/dist/components/forms/slider.js +3 -9
  114. package/dist/components/forms/spin-button.d.ts +2 -2
  115. package/dist/components/forms/spin-button.js +3 -9
  116. package/dist/components/forms/switch.d.ts +2 -2
  117. package/dist/components/forms/switch.js +3 -9
  118. package/dist/components/forms/tag-input.d.ts +2 -2
  119. package/dist/components/forms/tag-input.js +3 -9
  120. package/dist/components/forms/text-area.d.ts +2 -2
  121. package/dist/components/forms/text-area.js +3 -9
  122. package/dist/components/forms/text-field.d.ts +23 -2
  123. package/dist/components/forms/text-field.js +103 -10
  124. package/dist/components/forms/time-field.d.ts +2 -2
  125. package/dist/components/forms/time-field.js +4 -10
  126. package/dist/components/identity/avatar.d.ts +2 -2
  127. package/dist/components/identity/avatar.js +3 -9
  128. package/dist/components/identity/contact-datalist-item.d.ts +2 -2
  129. package/dist/components/identity/contact-datalist-item.js +3 -9
  130. package/dist/components/identity/persona.d.ts +2 -2
  131. package/dist/components/identity/persona.js +3 -9
  132. package/dist/components/layout/app-shell.d.ts +2 -2
  133. package/dist/components/layout/app-shell.js +3 -9
  134. package/dist/components/layout/divider.d.ts +2 -2
  135. package/dist/components/layout/divider.js +3 -9
  136. package/dist/components/layout/nav-sidebar.d.ts +16 -2
  137. package/dist/components/layout/nav-sidebar.js +52 -9
  138. package/dist/components/layout/section.d.ts +2 -2
  139. package/dist/components/layout/section.js +3 -9
  140. package/dist/components/layout/sidebar-toggle-button.d.ts +2 -2
  141. package/dist/components/layout/sidebar-toggle-button.js +3 -9
  142. package/dist/components/layout/split-view.d.ts +16 -2
  143. package/dist/components/layout/split-view.js +83 -10
  144. package/dist/components/navigation/accordion.d.ts +2 -2
  145. package/dist/components/navigation/accordion.js +3 -9
  146. package/dist/components/navigation/breadcrumb.d.ts +2 -2
  147. package/dist/components/navigation/breadcrumb.js +3 -9
  148. package/dist/components/navigation/tabs.d.ts +2 -2
  149. package/dist/components/navigation/tabs.js +3 -9
  150. package/dist/components/overlays/command-palette.d.ts +62 -0
  151. package/dist/components/overlays/command-palette.js +537 -0
  152. package/dist/components/overlays/command-types.d.ts +90 -0
  153. package/dist/components/overlays/command-types.js +259 -0
  154. package/dist/components/overlays/context-menu.d.ts +2 -2
  155. package/dist/components/overlays/context-menu.js +3 -9
  156. package/dist/components/overlays/dialog.d.ts +2 -2
  157. package/dist/components/overlays/dialog.js +3 -9
  158. package/dist/components/overlays/drawer.d.ts +20 -2
  159. package/dist/components/overlays/drawer.js +138 -18
  160. package/dist/components/overlays/guide-tooltip.d.ts +2 -2
  161. package/dist/components/overlays/guide-tooltip.js +3 -9
  162. package/dist/components/overlays/popover.d.ts +2 -2
  163. package/dist/components/overlays/popover.js +3 -9
  164. package/dist/components/overlays/shortcuts-overlay.d.ts +48 -0
  165. package/dist/components/overlays/shortcuts-overlay.js +385 -0
  166. package/dist/components/overlays/tooltip.d.ts +2 -2
  167. package/dist/components/overlays/tooltip.js +4 -10
  168. package/dist/components/visuals/illustration.d.ts +2 -2
  169. package/dist/components/visuals/illustration.js +3 -9
  170. package/dist/core/element.d.ts +5 -1
  171. package/dist/core/element.js +29 -1
  172. package/dist/element-maps.d.ts +292 -0
  173. package/dist/element-maps.js +1 -0
  174. package/dist/entries/access-stats.d.ts +1 -0
  175. package/dist/entries/access-stats.js +1 -0
  176. package/dist/entries/accordion.d.ts +1 -0
  177. package/dist/entries/accordion.js +1 -0
  178. package/dist/entries/activity-density.d.ts +1 -0
  179. package/dist/entries/activity-density.js +1 -0
  180. package/dist/entries/agent-chat.d.ts +1 -0
  181. package/dist/entries/agent-chat.js +1 -0
  182. package/dist/entries/alert.d.ts +1 -0
  183. package/dist/entries/alert.js +1 -0
  184. package/dist/entries/annotation-inspector.d.ts +1 -0
  185. package/dist/entries/annotation-inspector.js +1 -0
  186. package/dist/entries/annotation-thread.d.ts +1 -0
  187. package/dist/entries/annotation-thread.js +1 -0
  188. package/dist/entries/annotation-toolbar.d.ts +1 -0
  189. package/dist/entries/annotation-toolbar.js +1 -0
  190. package/dist/entries/app-shell.d.ts +1 -0
  191. package/dist/entries/app-shell.js +1 -0
  192. package/dist/entries/audit-log.d.ts +1 -0
  193. package/dist/entries/audit-log.js +1 -0
  194. package/dist/entries/avatar.d.ts +1 -0
  195. package/dist/entries/avatar.js +1 -0
  196. package/dist/entries/badge.d.ts +1 -0
  197. package/dist/entries/badge.js +1 -0
  198. package/dist/entries/badgeable.d.ts +1 -0
  199. package/dist/entries/badgeable.js +1 -0
  200. package/dist/entries/bar-chart.d.ts +1 -0
  201. package/dist/entries/bar-chart.js +1 -0
  202. package/dist/entries/breadcrumb.d.ts +1 -0
  203. package/dist/entries/breadcrumb.js +1 -0
  204. package/dist/entries/bulk-action-bar.d.ts +1 -0
  205. package/dist/entries/bulk-action-bar.js +1 -0
  206. package/dist/entries/button-group.d.ts +1 -0
  207. package/dist/entries/button-group.js +1 -0
  208. package/dist/entries/button.d.ts +1 -0
  209. package/dist/entries/button.js +1 -0
  210. package/dist/entries/calendar.d.ts +1 -0
  211. package/dist/entries/calendar.js +1 -0
  212. package/dist/entries/card.d.ts +1 -0
  213. package/dist/entries/card.js +1 -0
  214. package/dist/entries/carousel.d.ts +1 -0
  215. package/dist/entries/carousel.js +1 -0
  216. package/dist/entries/category-selector.d.ts +1 -0
  217. package/dist/entries/category-selector.js +1 -0
  218. package/dist/entries/chart-panel.d.ts +1 -0
  219. package/dist/entries/chart-panel.js +1 -0
  220. package/dist/entries/checkbox-group.d.ts +1 -0
  221. package/dist/entries/checkbox-group.js +1 -0
  222. package/dist/entries/checkbox.d.ts +1 -0
  223. package/dist/entries/checkbox.js +1 -0
  224. package/dist/entries/chip.d.ts +1 -0
  225. package/dist/entries/chip.js +1 -0
  226. package/dist/entries/collaborator-avatars.d.ts +1 -0
  227. package/dist/entries/collaborator-avatars.js +1 -0
  228. package/dist/entries/color-picker.d.ts +1 -0
  229. package/dist/entries/color-picker.js +1 -0
  230. package/dist/entries/combobox.d.ts +1 -0
  231. package/dist/entries/combobox.js +1 -0
  232. package/dist/entries/command-palette.d.ts +1 -0
  233. package/dist/entries/command-palette.js +1 -0
  234. package/dist/entries/compare-view.d.ts +1 -0
  235. package/dist/entries/compare-view.js +1 -0
  236. package/dist/entries/contact-datalist-item.d.ts +1 -0
  237. package/dist/entries/contact-datalist-item.js +1 -0
  238. package/dist/entries/content-explorer.d.ts +1 -0
  239. package/dist/entries/content-explorer.js +1 -0
  240. package/dist/entries/context-menu.d.ts +1 -0
  241. package/dist/entries/context-menu.js +1 -0
  242. package/dist/entries/datalist-item.d.ts +1 -0
  243. package/dist/entries/datalist-item.js +1 -0
  244. package/dist/entries/date-field.d.ts +1 -0
  245. package/dist/entries/date-field.js +1 -0
  246. package/dist/entries/dialog.d.ts +1 -0
  247. package/dist/entries/dialog.js +1 -0
  248. package/dist/entries/diff-viewer.d.ts +1 -0
  249. package/dist/entries/diff-viewer.js +1 -0
  250. package/dist/entries/divider.d.ts +1 -0
  251. package/dist/entries/divider.js +1 -0
  252. package/dist/entries/donut-chart.d.ts +1 -0
  253. package/dist/entries/donut-chart.js +1 -0
  254. package/dist/entries/draggable-list.d.ts +1 -0
  255. package/dist/entries/draggable-list.js +1 -0
  256. package/dist/entries/drawer.d.ts +1 -0
  257. package/dist/entries/drawer.js +1 -0
  258. package/dist/entries/drop-zone.d.ts +1 -0
  259. package/dist/entries/drop-zone.js +1 -0
  260. package/dist/entries/dropdown.d.ts +1 -0
  261. package/dist/entries/dropdown.js +1 -0
  262. package/dist/entries/dual-listbox.d.ts +1 -0
  263. package/dist/entries/dual-listbox.js +1 -0
  264. package/dist/entries/due-badge.d.ts +1 -0
  265. package/dist/entries/due-badge.js +1 -0
  266. package/dist/entries/empty-state.d.ts +1 -0
  267. package/dist/entries/empty-state.js +1 -0
  268. package/dist/entries/error-mask.d.ts +1 -0
  269. package/dist/entries/error-mask.js +1 -0
  270. package/dist/entries/explorer-action-menu.d.ts +1 -0
  271. package/dist/entries/explorer-action-menu.js +1 -0
  272. package/dist/entries/explorer-breadcrumbs.d.ts +1 -0
  273. package/dist/entries/explorer-breadcrumbs.js +1 -0
  274. package/dist/entries/explorer-items.d.ts +1 -0
  275. package/dist/entries/explorer-items.js +1 -0
  276. package/dist/entries/explorer-list.d.ts +1 -0
  277. package/dist/entries/explorer-list.js +1 -0
  278. package/dist/entries/explorer-table.d.ts +1 -0
  279. package/dist/entries/explorer-table.js +1 -0
  280. package/dist/entries/explorer-toolbar.d.ts +1 -0
  281. package/dist/entries/explorer-toolbar.js +1 -0
  282. package/dist/entries/fieldset.d.ts +1 -0
  283. package/dist/entries/fieldset.js +1 -0
  284. package/dist/entries/file-request-builder.d.ts +1 -0
  285. package/dist/entries/file-request-builder.js +1 -0
  286. package/dist/entries/filter-bar.d.ts +1 -0
  287. package/dist/entries/filter-bar.js +1 -0
  288. package/dist/entries/form-wizard.d.ts +1 -0
  289. package/dist/entries/form-wizard.js +1 -0
  290. package/dist/entries/governance-panel.d.ts +1 -0
  291. package/dist/entries/governance-panel.js +1 -0
  292. package/dist/entries/grid-view.d.ts +1 -0
  293. package/dist/entries/grid-view.js +1 -0
  294. package/dist/entries/guide-tooltip.d.ts +1 -0
  295. package/dist/entries/guide-tooltip.js +1 -0
  296. package/dist/entries/help-text.d.ts +1 -0
  297. package/dist/entries/help-text.js +1 -0
  298. package/dist/entries/icon-button.d.ts +1 -0
  299. package/dist/entries/icon-button.js +1 -0
  300. package/dist/entries/illustration.d.ts +1 -0
  301. package/dist/entries/illustration.js +1 -0
  302. package/dist/entries/invite-collaborators-modal.d.ts +1 -0
  303. package/dist/entries/invite-collaborators-modal.js +1 -0
  304. package/dist/entries/item-details-panel.d.ts +1 -0
  305. package/dist/entries/item-details-panel.js +1 -0
  306. package/dist/entries/item-form.d.ts +1 -0
  307. package/dist/entries/item-form.js +1 -0
  308. package/dist/entries/line-chart.d.ts +1 -0
  309. package/dist/entries/line-chart.js +1 -0
  310. package/dist/entries/lineage-graph.d.ts +1 -0
  311. package/dist/entries/lineage-graph.js +1 -0
  312. package/dist/entries/link-button.d.ts +1 -0
  313. package/dist/entries/link-button.js +1 -0
  314. package/dist/entries/menu-item.d.ts +1 -0
  315. package/dist/entries/menu-item.js +1 -0
  316. package/dist/entries/menu.d.ts +1 -0
  317. package/dist/entries/menu.js +1 -0
  318. package/dist/entries/metadata-filter-builder.d.ts +1 -0
  319. package/dist/entries/metadata-filter-builder.js +1 -0
  320. package/dist/entries/metadata-inspector.d.ts +1 -0
  321. package/dist/entries/metadata-inspector.js +1 -0
  322. package/dist/entries/metric-card.d.ts +1 -0
  323. package/dist/entries/metric-card.js +1 -0
  324. package/dist/entries/multi-select.d.ts +1 -0
  325. package/dist/entries/multi-select.js +1 -0
  326. package/dist/entries/nav-sidebar.d.ts +1 -0
  327. package/dist/entries/nav-sidebar.js +1 -0
  328. package/dist/entries/notification-bell.d.ts +1 -0
  329. package/dist/entries/notification-bell.js +1 -0
  330. package/dist/entries/notification-inbox.d.ts +1 -0
  331. package/dist/entries/notification-inbox.js +1 -0
  332. package/dist/entries/nudge.d.ts +1 -0
  333. package/dist/entries/nudge.js +1 -0
  334. package/dist/entries/number-input.d.ts +1 -0
  335. package/dist/entries/number-input.js +1 -0
  336. package/dist/entries/pagination.d.ts +1 -0
  337. package/dist/entries/pagination.js +1 -0
  338. package/dist/entries/permission-matrix.d.ts +1 -0
  339. package/dist/entries/permission-matrix.js +1 -0
  340. package/dist/entries/persona.d.ts +1 -0
  341. package/dist/entries/persona.js +1 -0
  342. package/dist/entries/pill-cloud.d.ts +1 -0
  343. package/dist/entries/pill-cloud.js +1 -0
  344. package/dist/entries/pill-selector-dropdown.d.ts +1 -0
  345. package/dist/entries/pill-selector-dropdown.js +1 -0
  346. package/dist/entries/popover.d.ts +1 -0
  347. package/dist/entries/popover.js +1 -0
  348. package/dist/entries/presence.d.ts +1 -0
  349. package/dist/entries/presence.js +1 -0
  350. package/dist/entries/preview-header.d.ts +1 -0
  351. package/dist/entries/preview-header.js +1 -0
  352. package/dist/entries/preview.d.ts +1 -0
  353. package/dist/entries/preview.js +1 -0
  354. package/dist/entries/progress-bar.d.ts +1 -0
  355. package/dist/entries/progress-bar.js +1 -0
  356. package/dist/entries/progress-ring.d.ts +1 -0
  357. package/dist/entries/progress-ring.js +1 -0
  358. package/dist/entries/progress-steps.d.ts +1 -0
  359. package/dist/entries/progress-steps.js +1 -0
  360. package/dist/entries/provenance-strip.d.ts +1 -0
  361. package/dist/entries/provenance-strip.js +1 -0
  362. package/dist/entries/radio-group.d.ts +1 -0
  363. package/dist/entries/radio-group.js +1 -0
  364. package/dist/entries/range-slider.d.ts +1 -0
  365. package/dist/entries/range-slider.js +1 -0
  366. package/dist/entries/rating.d.ts +1 -0
  367. package/dist/entries/rating.js +1 -0
  368. package/dist/entries/review-queue-item.d.ts +1 -0
  369. package/dist/entries/review-queue-item.js +1 -0
  370. package/dist/entries/rich-text-input.d.ts +1 -0
  371. package/dist/entries/rich-text-input.js +1 -0
  372. package/dist/entries/run-trace.d.ts +1 -0
  373. package/dist/entries/run-trace.js +1 -0
  374. package/dist/entries/saved-view-picker.d.ts +1 -0
  375. package/dist/entries/saved-view-picker.js +1 -0
  376. package/dist/entries/search-field.d.ts +1 -0
  377. package/dist/entries/search-field.js +1 -0
  378. package/dist/entries/search-results-header.d.ts +1 -0
  379. package/dist/entries/search-results-header.js +1 -0
  380. package/dist/entries/section.d.ts +1 -0
  381. package/dist/entries/section.js +1 -0
  382. package/dist/entries/segmented-control.d.ts +1 -0
  383. package/dist/entries/segmented-control.js +1 -0
  384. package/dist/entries/select.d.ts +1 -0
  385. package/dist/entries/select.js +1 -0
  386. package/dist/entries/share-panel.d.ts +1 -0
  387. package/dist/entries/share-panel.js +1 -0
  388. package/dist/entries/shortcuts-overlay.d.ts +1 -0
  389. package/dist/entries/shortcuts-overlay.js +1 -0
  390. package/dist/entries/sidebar-toggle-button.d.ts +1 -0
  391. package/dist/entries/sidebar-toggle-button.js +1 -0
  392. package/dist/entries/signature-ceremony.d.ts +1 -0
  393. package/dist/entries/signature-ceremony.js +1 -0
  394. package/dist/entries/skeleton.d.ts +1 -0
  395. package/dist/entries/skeleton.js +1 -0
  396. package/dist/entries/slider.d.ts +1 -0
  397. package/dist/entries/slider.js +1 -0
  398. package/dist/entries/spin-button.d.ts +1 -0
  399. package/dist/entries/spin-button.js +1 -0
  400. package/dist/entries/spinner.d.ts +1 -0
  401. package/dist/entries/spinner.js +1 -0
  402. package/dist/entries/split-view.d.ts +1 -0
  403. package/dist/entries/split-view.js +1 -0
  404. package/dist/entries/stage-path.d.ts +1 -0
  405. package/dist/entries/stage-path.js +1 -0
  406. package/dist/entries/switch.d.ts +1 -0
  407. package/dist/entries/switch.js +1 -0
  408. package/dist/entries/table.d.ts +1 -0
  409. package/dist/entries/table.js +1 -0
  410. package/dist/entries/tabs.d.ts +1 -0
  411. package/dist/entries/tabs.js +1 -0
  412. package/dist/entries/tag-input.d.ts +1 -0
  413. package/dist/entries/tag-input.js +1 -0
  414. package/dist/entries/task-assignment-panel.d.ts +1 -0
  415. package/dist/entries/task-assignment-panel.js +1 -0
  416. package/dist/entries/text-area.d.ts +1 -0
  417. package/dist/entries/text-area.js +1 -0
  418. package/dist/entries/text-field.d.ts +1 -0
  419. package/dist/entries/text-field.js +1 -0
  420. package/dist/entries/thumbnail-card.d.ts +1 -0
  421. package/dist/entries/thumbnail-card.js +1 -0
  422. package/dist/entries/time-field.d.ts +1 -0
  423. package/dist/entries/time-field.js +1 -0
  424. package/dist/entries/timeline.d.ts +1 -0
  425. package/dist/entries/timeline.js +1 -0
  426. package/dist/entries/toast.d.ts +1 -0
  427. package/dist/entries/toast.js +1 -0
  428. package/dist/entries/tooltip.d.ts +1 -0
  429. package/dist/entries/tooltip.js +1 -0
  430. package/dist/entries/tree-grid.d.ts +1 -0
  431. package/dist/entries/tree-grid.js +1 -0
  432. package/dist/entries/tree.d.ts +1 -0
  433. package/dist/entries/tree.js +1 -0
  434. package/dist/entries/unified-share-modal.d.ts +1 -0
  435. package/dist/entries/unified-share-modal.js +1 -0
  436. package/dist/entries/version-graph.d.ts +1 -0
  437. package/dist/entries/version-graph.js +1 -0
  438. package/dist/entries/version-list.d.ts +1 -0
  439. package/dist/entries/version-list.js +1 -0
  440. package/dist/entries/wizard-summary.d.ts +1 -0
  441. package/dist/entries/wizard-summary.js +1 -0
  442. package/dist/entries/work-queue.d.ts +1 -0
  443. package/dist/entries/work-queue.js +1 -0
  444. package/dist/entries/workload-board.d.ts +1 -0
  445. package/dist/entries/workload-board.js +1 -0
  446. package/dist/foundations/geometry/tokens.d.ts +46 -45
  447. package/dist/foundations/geometry/tokens.js +46 -45
  448. package/dist/foundations/motion/tokens.d.ts +10 -10
  449. package/dist/foundations/motion/tokens.js +10 -10
  450. package/dist/foundations/profiles/built-ins.d.ts +4 -0
  451. package/dist/foundations/profiles/built-ins.js +131 -0
  452. package/dist/foundations/profiles/controller.d.ts +4 -0
  453. package/dist/foundations/profiles/controller.js +107 -0
  454. package/dist/foundations/profiles/index.d.ts +4 -0
  455. package/dist/foundations/profiles/index.js +3 -0
  456. package/dist/foundations/profiles/registry.d.ts +72 -0
  457. package/dist/foundations/profiles/registry.js +119 -0
  458. package/dist/foundations/profiles/types.d.ts +94 -0
  459. package/dist/foundations/profiles/types.js +1 -0
  460. package/dist/foundations/theming/controller.d.ts +37 -0
  461. package/dist/foundations/theming/controller.js +176 -0
  462. package/dist/foundations/theming/index.d.ts +2 -0
  463. package/dist/foundations/theming/index.js +1 -0
  464. package/dist/foundations/tokens/box-dark.d.ts +3 -3
  465. package/dist/foundations/tokens/box-defaults.d.ts +3 -3
  466. package/dist/foundations/tokens/index.d.ts +2 -2
  467. package/dist/foundations/tokens/index.js +1 -1
  468. package/dist/foundations/tokens/registry.d.ts +37 -7
  469. package/dist/foundations/tokens/registry.js +55 -5
  470. package/dist/foundations/tokens/types.d.ts +38 -1
  471. package/dist/index.d.ts +27 -2
  472. package/dist/index.js +24 -1
  473. package/dist/patterns/agent-chat/agent-chat.d.ts +75 -0
  474. package/dist/patterns/agent-chat/agent-chat.js +820 -0
  475. package/dist/patterns/agent-chat/controller.d.ts +27 -0
  476. package/dist/patterns/agent-chat/controller.js +182 -0
  477. package/dist/patterns/agent-chat/index.d.ts +3 -0
  478. package/dist/patterns/agent-chat/index.js +6 -0
  479. package/dist/patterns/agent-chat/types.d.ts +109 -0
  480. package/dist/patterns/agent-chat/types.js +1 -0
  481. package/dist/patterns/audit/activity-density.d.ts +68 -0
  482. package/dist/patterns/audit/activity-density.js +428 -0
  483. package/dist/patterns/audit/audit-log.d.ts +81 -0
  484. package/dist/patterns/audit/audit-log.js +794 -0
  485. package/dist/patterns/audit/index.d.ts +3 -0
  486. package/dist/patterns/audit/index.js +7 -0
  487. package/dist/patterns/audit/shared.d.ts +10 -0
  488. package/dist/patterns/audit/shared.js +50 -0
  489. package/dist/patterns/audit/types.d.ts +143 -0
  490. package/dist/patterns/audit/types.js +327 -0
  491. package/dist/patterns/content-explorer/actions/controller.js +12 -2
  492. package/dist/patterns/content-explorer/adapters/action-menu.d.ts +2 -2
  493. package/dist/patterns/content-explorer/adapters/action-menu.js +3 -9
  494. package/dist/patterns/content-explorer/adapters/breadcrumbs.d.ts +2 -2
  495. package/dist/patterns/content-explorer/adapters/breadcrumbs.js +3 -9
  496. package/dist/patterns/content-explorer/adapters/items.d.ts +3 -3
  497. package/dist/patterns/content-explorer/adapters/items.js +4 -10
  498. package/dist/patterns/content-explorer/adapters/list.d.ts +2 -2
  499. package/dist/patterns/content-explorer/adapters/list.js +3 -9
  500. package/dist/patterns/content-explorer/adapters/table.d.ts +2 -2
  501. package/dist/patterns/content-explorer/adapters/table.js +3 -9
  502. package/dist/patterns/content-explorer/adapters/toolbar.d.ts +2 -2
  503. package/dist/patterns/content-explorer/adapters/toolbar.js +7 -13
  504. package/dist/patterns/content-explorer/box-transport.js +117 -25
  505. package/dist/patterns/content-explorer/content-explorer.d.ts +28 -16
  506. package/dist/patterns/content-explorer/content-explorer.js +41 -14
  507. package/dist/patterns/content-explorer/contracts.d.ts +24 -1
  508. package/dist/patterns/content-explorer/contracts.js +68 -11
  509. package/dist/patterns/content-explorer/controller.d.ts +16 -1
  510. package/dist/patterns/content-explorer/controller.js +130 -4
  511. package/dist/patterns/content-explorer/navigation/controller.js +11 -9
  512. package/dist/patterns/content-explorer/types.d.ts +58 -1
  513. package/dist/patterns/content-picker/content-picker.d.ts +71 -0
  514. package/dist/patterns/content-picker/content-picker.js +747 -0
  515. package/dist/patterns/content-picker/controller.d.ts +38 -0
  516. package/dist/patterns/content-picker/controller.js +141 -0
  517. package/dist/patterns/content-picker/index.d.ts +3 -0
  518. package/dist/patterns/content-picker/index.js +6 -0
  519. package/dist/patterns/content-picker/types.d.ts +52 -0
  520. package/dist/patterns/content-picker/types.js +26 -0
  521. package/dist/patterns/content-sidebar/content-sidebar.d.ts +43 -0
  522. package/dist/patterns/content-sidebar/content-sidebar.js +293 -0
  523. package/dist/patterns/content-sidebar/index.d.ts +2 -0
  524. package/dist/patterns/content-sidebar/index.js +4 -0
  525. package/dist/patterns/content-sidebar/types.d.ts +18 -0
  526. package/dist/patterns/content-sidebar/types.js +20 -0
  527. package/dist/patterns/content-uploader/box-transport.d.ts +14 -0
  528. package/dist/patterns/content-uploader/box-transport.js +54 -0
  529. package/dist/patterns/content-uploader/content-uploader.d.ts +62 -0
  530. package/dist/patterns/content-uploader/content-uploader.js +559 -0
  531. package/dist/patterns/content-uploader/controller.d.ts +39 -0
  532. package/dist/patterns/content-uploader/controller.js +227 -0
  533. package/dist/patterns/content-uploader/index.d.ts +4 -0
  534. package/dist/patterns/content-uploader/index.js +8 -0
  535. package/dist/patterns/content-uploader/types.d.ts +120 -0
  536. package/dist/patterns/content-uploader/types.js +38 -0
  537. package/dist/patterns/diff/compare-view.d.ts +47 -0
  538. package/dist/patterns/diff/compare-view.js +276 -0
  539. package/dist/patterns/diff/diff-viewer.d.ts +42 -0
  540. package/dist/patterns/diff/diff-viewer.js +434 -0
  541. package/dist/patterns/diff/engine.d.ts +22 -0
  542. package/dist/patterns/diff/engine.js +276 -0
  543. package/dist/patterns/diff/index.d.ts +4 -0
  544. package/dist/patterns/diff/index.js +8 -0
  545. package/dist/patterns/diff/types.d.ts +69 -0
  546. package/dist/patterns/diff/types.js +24 -0
  547. package/dist/patterns/file-request/file-request-builder.d.ts +2 -2
  548. package/dist/patterns/file-request/file-request-builder.js +3 -9
  549. package/dist/patterns/form-wizard/controller.d.ts +39 -0
  550. package/dist/patterns/form-wizard/controller.js +157 -0
  551. package/dist/patterns/form-wizard/form-wizard.d.ts +63 -0
  552. package/dist/patterns/form-wizard/form-wizard.js +468 -0
  553. package/dist/patterns/form-wizard/index.d.ts +4 -0
  554. package/dist/patterns/form-wizard/index.js +8 -0
  555. package/dist/patterns/form-wizard/types.d.ts +109 -0
  556. package/dist/patterns/form-wizard/types.js +83 -0
  557. package/dist/patterns/form-wizard/wizard-summary.d.ts +62 -0
  558. package/dist/patterns/form-wizard/wizard-summary.js +324 -0
  559. package/dist/patterns/governance/governance-panel.d.ts +2 -2
  560. package/dist/patterns/governance/governance-panel.js +3 -6
  561. package/dist/patterns/insights/bar-chart.d.ts +2 -2
  562. package/dist/patterns/insights/bar-chart.js +3 -6
  563. package/dist/patterns/insights/chart-panel.d.ts +2 -2
  564. package/dist/patterns/insights/chart-panel.js +3 -6
  565. package/dist/patterns/insights/donut-chart.d.ts +2 -2
  566. package/dist/patterns/insights/donut-chart.js +3 -6
  567. package/dist/patterns/insights/line-chart.d.ts +2 -2
  568. package/dist/patterns/insights/line-chart.js +3 -6
  569. package/dist/patterns/insights/metric-card.d.ts +2 -2
  570. package/dist/patterns/insights/metric-card.js +3 -6
  571. package/dist/patterns/internal/safe-href.d.ts +17 -0
  572. package/dist/patterns/internal/safe-href.js +17 -0
  573. package/dist/patterns/item/bulk-action-bar.d.ts +2 -2
  574. package/dist/patterns/item/bulk-action-bar.js +3 -6
  575. package/dist/patterns/item/item-details-panel.d.ts +2 -2
  576. package/dist/patterns/item/item-details-panel.js +3 -9
  577. package/dist/patterns/item/item-form.d.ts +2 -2
  578. package/dist/patterns/item/item-form.js +3 -9
  579. package/dist/patterns/item/preview-header.d.ts +2 -2
  580. package/dist/patterns/item/preview-header.js +3 -9
  581. package/dist/patterns/lineage/index.d.ts +3 -0
  582. package/dist/patterns/lineage/index.js +6 -0
  583. package/dist/patterns/lineage/lineage-graph.d.ts +30 -0
  584. package/dist/patterns/lineage/lineage-graph.js +434 -0
  585. package/dist/patterns/lineage/provenance-strip.d.ts +22 -0
  586. package/dist/patterns/lineage/provenance-strip.js +194 -0
  587. package/dist/patterns/lineage/types.d.ts +53 -0
  588. package/dist/patterns/lineage/types.js +49 -0
  589. package/dist/patterns/metadata/metadata-filter-builder.d.ts +2 -2
  590. package/dist/patterns/metadata/metadata-filter-builder.js +3 -9
  591. package/dist/patterns/metadata/metadata-inspector.d.ts +2 -2
  592. package/dist/patterns/metadata/metadata-inspector.js +3 -9
  593. package/dist/patterns/notifications/index.d.ts +3 -0
  594. package/dist/patterns/notifications/index.js +6 -0
  595. package/dist/patterns/notifications/notification-bell.d.ts +38 -0
  596. package/dist/patterns/notifications/notification-bell.js +198 -0
  597. package/dist/patterns/notifications/notification-inbox.d.ts +46 -0
  598. package/dist/patterns/notifications/notification-inbox.js +537 -0
  599. package/dist/patterns/notifications/types.d.ts +61 -0
  600. package/dist/patterns/notifications/types.js +108 -0
  601. package/dist/patterns/preview/annotation-inspector.d.ts +27 -8
  602. package/dist/patterns/preview/annotation-inspector.js +242 -103
  603. package/dist/patterns/preview/annotation-thread.d.ts +27 -7
  604. package/dist/patterns/preview/annotation-thread.js +236 -91
  605. package/dist/patterns/preview/annotation-toolbar.d.ts +22 -8
  606. package/dist/patterns/preview/annotation-toolbar.js +165 -105
  607. package/dist/patterns/preview/content-preview-adapter.d.ts +10 -1
  608. package/dist/patterns/preview/content-preview-adapter.js +26 -1
  609. package/dist/patterns/preview/preview-element.d.ts +17 -4
  610. package/dist/patterns/preview/preview-element.js +226 -61
  611. package/dist/patterns/preview/provider-adapter.d.ts +47 -0
  612. package/dist/patterns/preview/provider-adapter.js +17 -0
  613. package/dist/patterns/run/index.d.ts +2 -0
  614. package/dist/patterns/run/index.js +4 -0
  615. package/dist/patterns/run/run-trace.d.ts +40 -0
  616. package/dist/patterns/run/run-trace.js +441 -0
  617. package/dist/patterns/run/types.d.ts +66 -0
  618. package/dist/patterns/run/types.js +152 -0
  619. package/dist/patterns/search/filter-bar.d.ts +2 -2
  620. package/dist/patterns/search/filter-bar.js +3 -9
  621. package/dist/patterns/search/saved-view-picker.d.ts +2 -2
  622. package/dist/patterns/search/saved-view-picker.js +3 -9
  623. package/dist/patterns/search/search-results-header.d.ts +2 -2
  624. package/dist/patterns/search/search-results-header.js +3 -9
  625. package/dist/patterns/share/access-stats.d.ts +2 -2
  626. package/dist/patterns/share/access-stats.js +3 -9
  627. package/dist/patterns/share/collaborator-avatars.d.ts +2 -2
  628. package/dist/patterns/share/collaborator-avatars.js +3 -9
  629. package/dist/patterns/share/invite-collaborators-modal.d.ts +2 -2
  630. package/dist/patterns/share/invite-collaborators-modal.js +3 -9
  631. package/dist/patterns/share/permission-matrix.d.ts +2 -2
  632. package/dist/patterns/share/permission-matrix.js +3 -9
  633. package/dist/patterns/share/presence.d.ts +2 -2
  634. package/dist/patterns/share/presence.js +3 -9
  635. package/dist/patterns/share/share-panel.d.ts +2 -2
  636. package/dist/patterns/share/share-panel.js +3 -9
  637. package/dist/patterns/share/unified-share-modal.d.ts +2 -2
  638. package/dist/patterns/share/unified-share-modal.js +3 -9
  639. package/dist/patterns/signature/index.d.ts +2 -0
  640. package/dist/patterns/signature/index.js +4 -0
  641. package/dist/patterns/signature/signature-ceremony.d.ts +33 -0
  642. package/dist/patterns/signature/signature-ceremony.js +317 -0
  643. package/dist/patterns/signature/types.d.ts +68 -0
  644. package/dist/patterns/signature/types.js +89 -0
  645. package/dist/patterns/task/review-queue-item.d.ts +2 -2
  646. package/dist/patterns/task/review-queue-item.js +3 -6
  647. package/dist/patterns/task/task-assignment-panel.d.ts +2 -2
  648. package/dist/patterns/task/task-assignment-panel.js +3 -6
  649. package/dist/patterns/timeline/index.d.ts +2 -0
  650. package/dist/patterns/timeline/index.js +4 -0
  651. package/dist/patterns/timeline/timeline.d.ts +27 -0
  652. package/dist/patterns/timeline/timeline.js +430 -0
  653. package/dist/patterns/timeline/types.d.ts +36 -0
  654. package/dist/patterns/timeline/types.js +27 -0
  655. package/dist/patterns/versions/graph-layout.d.ts +43 -0
  656. package/dist/patterns/versions/graph-layout.js +159 -0
  657. package/dist/patterns/versions/index.d.ts +4 -0
  658. package/dist/patterns/versions/index.js +8 -0
  659. package/dist/patterns/versions/shared.d.ts +4 -0
  660. package/dist/patterns/versions/shared.js +13 -0
  661. package/dist/patterns/versions/types.d.ts +37 -0
  662. package/dist/patterns/versions/types.js +39 -0
  663. package/dist/patterns/versions/version-graph.d.ts +36 -0
  664. package/dist/patterns/versions/version-graph.js +438 -0
  665. package/dist/patterns/versions/version-list.d.ts +39 -0
  666. package/dist/patterns/versions/version-list.js +407 -0
  667. package/dist/patterns/work-queue/controller.d.ts +26 -0
  668. package/dist/patterns/work-queue/controller.js +150 -0
  669. package/dist/patterns/work-queue/index.d.ts +4 -0
  670. package/dist/patterns/work-queue/index.js +7 -0
  671. package/dist/patterns/work-queue/types.d.ts +128 -0
  672. package/dist/patterns/work-queue/types.js +45 -0
  673. package/dist/patterns/work-queue/work-queue.d.ts +48 -0
  674. package/dist/patterns/work-queue/work-queue.js +534 -0
  675. package/dist/patterns/work-queue/workload-board.d.ts +53 -0
  676. package/dist/patterns/work-queue/workload-board.js +608 -0
  677. package/package.json +93 -5
@@ -52,7 +52,8 @@ const progressBarStyles = `
52
52
  transition: width ${boeMotionDuration.interactive} ${boeMotionEasing.standard};
53
53
  }
54
54
  `;
55
- export class BoxProgressBarElement extends BaseElement {
55
+ export class ProgressBar extends BaseElement {
56
+ static tagName = DEFAULT_TAG_NAME;
56
57
  static get observedAttributes() {
57
58
  return ["label", "max", "value"];
58
59
  }
@@ -118,11 +119,4 @@ export class BoxProgressBarElement extends BaseElement {
118
119
  this.indicatorEl.style.width = `${percentage}%`;
119
120
  }
120
121
  }
121
- export const defineBoxProgressBarElement = (tagName = DEFAULT_TAG_NAME) => {
122
- const existingElement = customElements.get(tagName);
123
- if (existingElement) {
124
- return existingElement;
125
- }
126
- customElements.define(tagName, BoxProgressBarElement);
127
- return BoxProgressBarElement;
128
- };
122
+ ProgressBar.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxProgressRingElement extends BaseElement {
2
+ export declare class ProgressRing extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private ringEl;
5
6
  private svgEl;
@@ -18,4 +19,3 @@ export declare class BoxProgressRingElement extends BaseElement {
18
19
  protected renderTemplate(): void;
19
20
  protected update(): void;
20
21
  }
21
- export declare const defineBoxProgressRingElement: (tagName?: string) => typeof BoxProgressRingElement;
@@ -53,7 +53,8 @@ const progressRingStyles = `
53
53
  color: var(--boe-token-text-text-secondary, #6f6f6f);
54
54
  }
55
55
  `;
56
- export class BoxProgressRingElement extends BaseElement {
56
+ export class ProgressRing extends BaseElement {
57
+ static tagName = DEFAULT_TAG_NAME;
57
58
  static get observedAttributes() {
58
59
  return ["label", "max", "size", "value"];
59
60
  }
@@ -145,11 +146,4 @@ export class BoxProgressRingElement extends BaseElement {
145
146
  this.labelEl.textContent = this.label;
146
147
  }
147
148
  }
148
- export const defineBoxProgressRingElement = (tagName = DEFAULT_TAG_NAME) => {
149
- const existingElement = customElements.get(tagName);
150
- if (existingElement) {
151
- return existingElement;
152
- }
153
- customElements.define(tagName, BoxProgressRingElement);
154
- return BoxProgressRingElement;
155
- };
149
+ ProgressRing.register();
@@ -1,25 +1,71 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- type BoxProgressStep = {
2
+ /**
3
+ * Explicit per-step status. Absent means the step derives complete / current /
4
+ * upcoming from its position relative to `value` — the behaviour existing
5
+ * hosts rely on. An explicit status wins over the positional derivation:
6
+ * `complete` marks out-of-order completion, `blocked` and `disabled` make the
7
+ * step non-interactive, `failed` stays interactive because a failed step is
8
+ * usually exactly where the user needs to go.
9
+ */
10
+ export type ProgressStepStatus = "complete" | "blocked" | "failed" | "disabled";
11
+ export interface ProgressStepItem {
3
12
  description?: string;
4
13
  label: string;
5
14
  value: string;
6
- };
7
- export declare class BoxProgressStepsElement extends BaseElement {
15
+ status?: ProgressStepStatus;
16
+ /** Short visible note under the label explaining the status ("Waiting on legal review"). */
17
+ statusNote?: string;
18
+ }
19
+ export type ProgressStepState = "current" | "upcoming" | ProgressStepStatus;
20
+ export interface ResolvedProgressStep {
21
+ item: ProgressStepItem;
22
+ state: ProgressStepState;
23
+ /**
24
+ * True on the step `value` points at, whatever its status — currency is
25
+ * position, status is condition, and the two are stated separately so a
26
+ * failed step can still be the one the user is on.
27
+ */
28
+ isCurrent: boolean;
29
+ /** Blocked and disabled steps take no clicks and no focus. */
30
+ interactive: boolean;
31
+ }
32
+ /** Attribute payloads are author input — validate every record. */
33
+ export declare const isProgressStepRecord: (value: unknown) => value is ProgressStepItem;
34
+ /**
35
+ * The state rules, pure and DOM-free, so a host can drive its own surface
36
+ * (or decide whether "Continue" is enabled) from the same function the
37
+ * component renders from. An unknown `value` falls back to the first step,
38
+ * matching the component's long-standing behaviour.
39
+ */
40
+ export declare const resolveStepStates: (items: readonly ProgressStepItem[], value: string) => ResolvedProgressStep[];
41
+ /** Every state in words — colour never carries the meaning alone. */
42
+ export declare const STEP_STATE_LABEL: Record<ProgressStepState, string>;
43
+ export declare class ProgressSteps extends BaseElement {
44
+ static readonly tagName: string;
8
45
  static get observedAttributes(): string[];
9
46
  private valueInternal;
10
47
  private stepsEl;
48
+ private liveEl;
11
49
  private itemsSignature;
12
50
  get label(): string;
13
51
  set label(value: string);
14
- get items(): BoxProgressStep[];
15
- set items(value: BoxProgressStep[]);
52
+ get items(): ProgressStepItem[];
53
+ set items(value: ProgressStepItem[]);
54
+ /** The resolved states — same objects the render uses. */
55
+ get resolvedSteps(): ResolvedProgressStep[];
16
56
  get value(): string;
17
57
  set value(nextValue: string);
18
58
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
19
59
  protected renderTemplate(): void;
20
60
  protected setupListeners(): void;
21
61
  private selectValue;
62
+ /** A polite announcement on user-driven step changes, never on render. */
63
+ private announceStep;
64
+ /**
65
+ * The tab stop lives on the current step — unless that step is blocked or
66
+ * disabled (a host can point `value` anywhere), in which case the first
67
+ * interactive step takes it so the group stays reachable.
68
+ */
69
+ private tabbableIndex;
22
70
  protected update(): void;
23
71
  }
24
- export declare const defineBoxProgressStepsElement: (tagName?: string) => typeof BoxProgressStepsElement;
25
- export {};
@@ -8,6 +8,50 @@ const escapeHtml = (value) => value
8
8
  .replaceAll(">", "&gt;")
9
9
  .replaceAll('"', "&quot;")
10
10
  .replaceAll("'", "&#39;");
11
+ const STEP_STATUSES = new Set(["complete", "blocked", "failed", "disabled"]);
12
+ /** Attribute payloads are author input — validate every record. */
13
+ export const isProgressStepRecord = (value) => {
14
+ if (typeof value !== "object" || value === null) {
15
+ return false;
16
+ }
17
+ const step = value;
18
+ return (typeof step.value === "string" &&
19
+ step.value.length > 0 &&
20
+ typeof step.label === "string" &&
21
+ step.label.length > 0 &&
22
+ (step.status === undefined || STEP_STATUSES.has(step.status)) &&
23
+ // Non-string text fields would reach escapeHtml and throw mid-render.
24
+ (step.description === undefined || typeof step.description === "string") &&
25
+ (step.statusNote === undefined || typeof step.statusNote === "string"));
26
+ };
27
+ /**
28
+ * The state rules, pure and DOM-free, so a host can drive its own surface
29
+ * (or decide whether "Continue" is enabled) from the same function the
30
+ * component renders from. An unknown `value` falls back to the first step,
31
+ * matching the component's long-standing behaviour.
32
+ */
33
+ export const resolveStepStates = (items, value) => {
34
+ const currentIndex = Math.max(0, items.findIndex(item => item.value === value));
35
+ return items.map((item, index) => {
36
+ const positional = index < currentIndex ? "complete" : index === currentIndex ? "current" : "upcoming";
37
+ const state = item.status ?? positional;
38
+ return {
39
+ item,
40
+ state,
41
+ isCurrent: index === currentIndex,
42
+ interactive: state !== "blocked" && state !== "disabled",
43
+ };
44
+ });
45
+ };
46
+ /** Every state in words — colour never carries the meaning alone. */
47
+ export const STEP_STATE_LABEL = {
48
+ complete: "Complete",
49
+ current: "Current step",
50
+ upcoming: "Not started",
51
+ blocked: "Blocked",
52
+ failed: "Failed",
53
+ disabled: "Unavailable",
54
+ };
11
55
  const progressStepsStyles = `
12
56
  :host {
13
57
  display: block;
@@ -100,13 +144,75 @@ const progressStepsStyles = `
100
144
  color: var(--boe-token-text-text-secondary, #6f6f6f);
101
145
  line-height: 1.45;
102
146
  }
147
+
148
+ [part="step"]:disabled {
149
+ cursor: not-allowed;
150
+ background: var(--boe-token-surface-surface, #ffffff);
151
+ }
152
+
153
+ [part="step"][data-state="blocked"] [part="step-label"],
154
+ [part="step"][data-state="disabled"] [part="step-label"] {
155
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
156
+ }
157
+
158
+ [part="step"][data-state="blocked"] [part="marker"] {
159
+ background: color-mix(in srgb, var(--boe-token-surface-status-surface-warning, #f5b31b) 18%, var(--boe-token-surface-surface, #ffffff) 82%);
160
+ color: color-mix(in srgb, var(--boe-token-surface-status-surface-warning, #f5b31b) 52%, var(--boe-token-text-text, #222222));
161
+ }
162
+
163
+ [part="step"][data-state="failed"] {
164
+ border-color: color-mix(in srgb, var(--boe-token-surface-status-surface-error, #ed3757) 34%, transparent);
165
+ }
166
+
167
+ [part="step"][data-state="failed"] [part="marker"] {
168
+ border-color: transparent;
169
+ background: color-mix(in srgb, var(--boe-token-surface-status-surface-error, #ed3757) 16%, var(--boe-token-surface-surface, #ffffff) 84%);
170
+ color: color-mix(in srgb, var(--boe-token-surface-status-surface-error, #ed3757) 72%, black 28%);
171
+ }
172
+
173
+ [part="step"][data-state="disabled"] {
174
+ opacity: 0.62;
175
+ }
176
+
177
+ /* The status, in words: visible for the conditions a user must not miss. */
178
+ [part="step-status"] {
179
+ font-size: 0.8rem;
180
+ font-weight: 700;
181
+ }
182
+
183
+ [part="step"][data-state="blocked"] [part="step-status"] {
184
+ color: color-mix(in srgb, var(--boe-token-surface-status-surface-warning, #f5b31b) 48%, var(--boe-token-text-text, #222222));
185
+ }
186
+
187
+ [part="step"][data-state="failed"] [part="step-status"] {
188
+ color: color-mix(in srgb, var(--boe-token-surface-status-surface-error, #ed3757) 76%, black 24%);
189
+ }
190
+
191
+ [part="step-status-note"] {
192
+ font-size: 0.82rem;
193
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
194
+ }
195
+
196
+ .boe-sr-only {
197
+ position: absolute;
198
+ width: 1px;
199
+ height: 1px;
200
+ margin: -1px;
201
+ padding: 0;
202
+ border: 0;
203
+ clip: rect(0, 0, 0, 0);
204
+ overflow: hidden;
205
+ white-space: nowrap;
206
+ }
103
207
  `;
104
- export class BoxProgressStepsElement extends BaseElement {
208
+ export class ProgressSteps extends BaseElement {
209
+ static tagName = DEFAULT_TAG_NAME;
105
210
  static get observedAttributes() {
106
211
  return ["items", "label", "value"];
107
212
  }
108
213
  valueInternal = "";
109
214
  stepsEl;
215
+ liveEl;
110
216
  itemsSignature = "";
111
217
  get label() {
112
218
  return this.getAttribute("label") ?? "Progress Steps";
@@ -121,7 +227,9 @@ export class BoxProgressStepsElement extends BaseElement {
121
227
  }
122
228
  try {
123
229
  const parsed = JSON.parse(raw);
124
- return Array.isArray(parsed) ? parsed : [];
230
+ return Array.isArray(parsed) && parsed.every(isProgressStepRecord)
231
+ ? parsed
232
+ : [];
125
233
  }
126
234
  catch {
127
235
  return [];
@@ -130,6 +238,10 @@ export class BoxProgressStepsElement extends BaseElement {
130
238
  set items(value) {
131
239
  this.setAttribute("items", JSON.stringify(value));
132
240
  }
241
+ /** The resolved states — same objects the render uses. */
242
+ get resolvedSteps() {
243
+ return resolveStepStates(this.items, this.valueInternal);
244
+ }
133
245
  get value() {
134
246
  return this.valueInternal;
135
247
  }
@@ -153,8 +265,10 @@ export class BoxProgressStepsElement extends BaseElement {
153
265
  this.shadowRoot.innerHTML = `
154
266
  <style>${progressStepsStyles}</style>
155
267
  <div part="steps" role="group"></div>
268
+ <div part="live" class="boe-sr-only" aria-live="polite"></div>
156
269
  `;
157
270
  this.stepsEl = this.shadowRoot.querySelector('[part="steps"]');
271
+ this.liveEl = this.shadowRoot.querySelector('[part="live"]');
158
272
  }
159
273
  setupListeners() {
160
274
  this.stepsEl.addEventListener("click", event => {
@@ -174,34 +288,51 @@ export class BoxProgressStepsElement extends BaseElement {
174
288
  if (!step || !this.stepsEl.contains(step)) {
175
289
  return;
176
290
  }
177
- const items = this.items;
291
+ const resolved = this.resolvedSteps;
178
292
  const index = Array.from(this.stepsEl.querySelectorAll('[part="step"]')).indexOf(step);
179
- if (index < 0) {
293
+ if (index < 0 || resolved.length === 0) {
180
294
  return;
181
295
  }
182
- const lastIndex = items.length - 1;
183
- let nextIndex = index;
296
+ // Arrows walk to the next *interactive* step — blocked and disabled
297
+ // steps are skipped, not landed on and bounced off.
298
+ const isInteractive = (candidate) => resolved[candidate]?.interactive ?? false;
299
+ const walk = (direction) => {
300
+ for (let offset = 1; offset <= resolved.length; offset += 1) {
301
+ const candidate = (((index + direction * offset) % resolved.length) + resolved.length) % resolved.length;
302
+ if (isInteractive(candidate)) {
303
+ return candidate;
304
+ }
305
+ }
306
+ return -1;
307
+ };
308
+ let nextIndex;
184
309
  if (keyboardEvent.key === "ArrowRight" || keyboardEvent.key === "ArrowDown") {
185
- nextIndex = index >= lastIndex ? 0 : index + 1;
310
+ nextIndex = walk(1);
186
311
  }
187
312
  else if (keyboardEvent.key === "ArrowLeft" || keyboardEvent.key === "ArrowUp") {
188
- nextIndex = index <= 0 ? lastIndex : index - 1;
313
+ nextIndex = walk(-1);
189
314
  }
190
315
  else if (keyboardEvent.key === "Home") {
191
- nextIndex = 0;
316
+ nextIndex = resolved.findIndex(entry => entry.interactive);
192
317
  }
193
318
  else if (keyboardEvent.key === "End") {
194
- nextIndex = lastIndex;
319
+ nextIndex = -1;
320
+ for (let candidate = resolved.length - 1; candidate >= 0; candidate -= 1) {
321
+ if (isInteractive(candidate)) {
322
+ nextIndex = candidate;
323
+ break;
324
+ }
325
+ }
195
326
  }
196
327
  else {
197
328
  return;
198
329
  }
199
330
  keyboardEvent.preventDefault();
200
- const nextStep = items[nextIndex];
201
- if (!nextStep) {
331
+ const nextStep = resolved[nextIndex];
332
+ if (nextIndex < 0 || !nextStep) {
202
333
  return;
203
334
  }
204
- this.selectValue(nextStep.value);
335
+ this.selectValue(nextStep.item.value);
205
336
  queueMicrotask(() => {
206
337
  const nextButton = this.stepsEl.querySelectorAll('[part="step"]')[nextIndex];
207
338
  nextButton?.focus();
@@ -209,6 +340,13 @@ export class BoxProgressStepsElement extends BaseElement {
209
340
  });
210
341
  }
211
342
  selectValue(nextValue) {
343
+ // Disabled buttons never emit clicks and the keyboard path skips them,
344
+ // but the invariant should not depend on every caller knowing that.
345
+ const resolved = resolveStepStates(this.items, this.valueInternal);
346
+ const target = resolved.find(entry => entry.item.value === nextValue);
347
+ if (!target || !target.interactive) {
348
+ return;
349
+ }
212
350
  this.valueInternal = nextValue;
213
351
  this.setAttribute("value", nextValue);
214
352
  this.dispatchEvent(new CustomEvent("value-changed", {
@@ -217,6 +355,28 @@ export class BoxProgressStepsElement extends BaseElement {
217
355
  detail: { value: nextValue },
218
356
  }));
219
357
  this.update();
358
+ this.announceStep(target);
359
+ }
360
+ /** A polite announcement on user-driven step changes, never on render. */
361
+ announceStep(target) {
362
+ if (!this.liveEl) {
363
+ return;
364
+ }
365
+ const items = this.items;
366
+ const position = items.findIndex(item => item.value === target.item.value) + 1;
367
+ this.liveEl.textContent = `${target.item.label}, step ${String(position)} of ${String(items.length)}`;
368
+ }
369
+ /**
370
+ * The tab stop lives on the current step — unless that step is blocked or
371
+ * disabled (a host can point `value` anywhere), in which case the first
372
+ * interactive step takes it so the group stays reachable.
373
+ */
374
+ tabbableIndex(resolved) {
375
+ const currentIndex = resolved.findIndex(entry => entry.isCurrent);
376
+ if (resolved[currentIndex]?.interactive) {
377
+ return currentIndex;
378
+ }
379
+ return resolved.findIndex(entry => entry.interactive);
220
380
  }
221
381
  update() {
222
382
  if (!this.stepsEl) {
@@ -230,24 +390,35 @@ export class BoxProgressStepsElement extends BaseElement {
230
390
  this.setAttribute("value", selectedValue);
231
391
  }
232
392
  this.stepsEl.setAttribute("aria-label", this.label);
393
+ const resolved = resolveStepStates(items, this.valueInternal);
394
+ const tabbable = this.tabbableIndex(resolved);
233
395
  const signature = JSON.stringify(items);
234
396
  if (signature !== this.itemsSignature) {
235
397
  this.itemsSignature = signature;
236
- this.stepsEl.innerHTML = items
237
- .map((item, index) => {
238
- const state = index < activeIndex ? "complete" : index === activeIndex ? "current" : "upcoming";
398
+ this.stepsEl.innerHTML = resolved
399
+ .map((entry, index) => {
400
+ const { item, state, isCurrent, interactive } = entry;
401
+ // Blocked / failed / disabled are said out loud on the surface; the
402
+ // positional states get a screen-reader word so colour and a number
403
+ // are never the only carriers of the state.
404
+ const explicitStatus = item.status
405
+ ? `<span part="step-status">${STEP_STATE_LABEL[state]}</span>
406
+ ${item.statusNote ? `<span part="step-status-note">${escapeHtml(item.statusNote)}</span>` : ""}`
407
+ : `<span part="step-state" class="boe-sr-only">${STEP_STATE_LABEL[state]}</span>`;
239
408
  return `
240
409
  <button
241
410
  type="button"
242
411
  part="step"
243
412
  data-state="${state}"
244
413
  data-value="${escapeHtml(item.value)}"
245
- aria-current="${state === "current" ? "step" : "false"}"
246
- tabindex="${index === activeIndex ? "0" : "-1"}"
414
+ aria-current="${isCurrent ? "step" : "false"}"
415
+ tabindex="${index === tabbable ? "0" : "-1"}"
416
+ ${interactive ? "" : "disabled"}
247
417
  >
248
418
  <span part="marker">${index + 1}</span>
249
419
  <span part="content">
250
420
  <strong part="step-label">${escapeHtml(item.label)}</strong>
421
+ ${explicitStatus}
251
422
  ${item.description ? `<span part="step-description">${escapeHtml(item.description)}</span>` : ""}
252
423
  </span>
253
424
  </button>
@@ -257,20 +428,21 @@ export class BoxProgressStepsElement extends BaseElement {
257
428
  return;
258
429
  }
259
430
  this.stepsEl.querySelectorAll('[part="step"]').forEach((step, index) => {
260
- const state = index < activeIndex ? "complete" : index === activeIndex ? "current" : "upcoming";
431
+ const entry = resolved[index];
432
+ if (!entry) {
433
+ return;
434
+ }
261
435
  const button = step;
262
- button.dataset.state = state;
263
- button.setAttribute("aria-current", state === "current" ? "step" : "false");
264
- button.setAttribute("aria-selected", String(index === activeIndex));
265
- button.tabIndex = index === activeIndex ? 0 : -1;
436
+ button.dataset.state = entry.state;
437
+ button.setAttribute("aria-current", entry.isCurrent ? "step" : "false");
438
+ button.tabIndex = index === tabbable ? 0 : -1;
439
+ button.disabled = !entry.interactive;
440
+ // Positional states move with `value`; keep the spoken word in step.
441
+ const stateWord = button.querySelector('[part="step-state"]');
442
+ if (stateWord) {
443
+ stateWord.textContent = STEP_STATE_LABEL[entry.state];
444
+ }
266
445
  });
267
446
  }
268
447
  }
269
- export const defineBoxProgressStepsElement = (tagName = DEFAULT_TAG_NAME) => {
270
- const existingElement = customElements.get(tagName);
271
- if (existingElement) {
272
- return existingElement;
273
- }
274
- customElements.define(tagName, BoxProgressStepsElement);
275
- return BoxProgressStepsElement;
276
- };
448
+ ProgressSteps.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxSkeletonElement extends BaseElement {
2
+ export declare class Skeleton extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private skeletonEl;
5
6
  private appliedWidth;
@@ -11,4 +12,3 @@ export declare class BoxSkeletonElement extends BaseElement {
11
12
  protected renderTemplate(): void;
12
13
  protected update(): void;
13
14
  }
14
- export declare const defineBoxSkeletonElement: (tagName?: string) => typeof BoxSkeletonElement;
@@ -34,7 +34,8 @@ const skeletonStyles = `
34
34
 
35
35
  ${boeReducedMotionStyles('[part="skeleton"]', "animation: none;")}
36
36
  `;
37
- export class BoxSkeletonElement extends BaseElement {
37
+ export class Skeleton extends BaseElement {
38
+ static tagName = DEFAULT_TAG_NAME;
38
39
  static get observedAttributes() {
39
40
  return ["height", "width"];
40
41
  }
@@ -85,11 +86,4 @@ export class BoxSkeletonElement extends BaseElement {
85
86
  }
86
87
  }
87
88
  }
88
- export const defineBoxSkeletonElement = (tagName = DEFAULT_TAG_NAME) => {
89
- const existingElement = customElements.get(tagName);
90
- if (existingElement) {
91
- return existingElement;
92
- }
93
- customElements.define(tagName, BoxSkeletonElement);
94
- return BoxSkeletonElement;
95
- };
89
+ Skeleton.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxSpinnerElement extends BaseElement {
2
+ export declare class Spinner extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private labelEl;
5
6
  private indicatorEl;
@@ -11,4 +12,3 @@ export declare class BoxSpinnerElement extends BaseElement {
11
12
  protected renderTemplate(): void;
12
13
  protected update(): void;
13
14
  }
14
- export declare const defineBoxSpinnerElement: (tagName?: string) => typeof BoxSpinnerElement;
@@ -51,7 +51,8 @@ const spinnerStyles = `
51
51
  color: var(--boe-token-text-text-secondary, #6f6f6f);
52
52
  }
53
53
  `;
54
- export class BoxSpinnerElement extends BaseElement {
54
+ export class Spinner extends BaseElement {
55
+ static tagName = DEFAULT_TAG_NAME;
55
56
  static get observedAttributes() {
56
57
  return ["label", "size"];
57
58
  }
@@ -98,11 +99,4 @@ export class BoxSpinnerElement extends BaseElement {
98
99
  }
99
100
  }
100
101
  }
101
- export const defineBoxSpinnerElement = (tagName = DEFAULT_TAG_NAME) => {
102
- const existingElement = customElements.get(tagName);
103
- if (existingElement) {
104
- return existingElement;
105
- }
106
- customElements.define(tagName, BoxSpinnerElement);
107
- return BoxSpinnerElement;
108
- };
102
+ Spinner.register();
@@ -0,0 +1,44 @@
1
+ import { BaseElement } from "../../core/index.js";
2
+ /** One point in a record's lifecycle. */
3
+ export interface StagePathStage {
4
+ id: string;
5
+ label: string;
6
+ /** Optional detail shown under the label on the current stage. */
7
+ description?: string;
8
+ }
9
+ export type StageState = "complete" | "current" | "upcoming";
10
+ /** Attribute payloads are author input — validate every record. */
11
+ export declare const isStagePathStageRecord: (value: unknown) => value is StagePathStage;
12
+ /** State of each stage relative to the current one. */
13
+ export declare const resolveStageStates: (stages: readonly StagePathStage[], currentId: string) => StageState[];
14
+ /**
15
+ * Horizontal chevron lifecycle tracker for record headers — Draft → In
16
+ * Review → Approved → Executed.
17
+ *
18
+ * Distinct from `box-progress-steps`, which is a vertical setup rail for a
19
+ * task the reader is working through: this states where a *record* sits in
20
+ * its lifecycle, is read-only, and belongs in a header rather than a form.
21
+ *
22
+ * Rendered as an ordered list with the current stage marked `aria-current`,
23
+ * so the sequence and the position are both available without relying on the
24
+ * chevron geometry — which is decoration, and collapses on narrow viewports.
25
+ */
26
+ export declare class StagePath extends BaseElement {
27
+ static readonly tagName: string;
28
+ static get observedAttributes(): string[];
29
+ private pathEl;
30
+ private stagesRaw;
31
+ private stagesCache;
32
+ get label(): string;
33
+ set label(value: string);
34
+ /** Id of the stage the record is at. An unknown id leaves every stage upcoming. */
35
+ get current(): string;
36
+ set current(value: string);
37
+ get stages(): StagePathStage[];
38
+ set stages(value: StagePathStage[]);
39
+ /** State of each stage, in order. */
40
+ get states(): StageState[];
41
+ protected renderTemplate(): void;
42
+ protected setupListeners(): void;
43
+ protected update(): void;
44
+ }