@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
@@ -0,0 +1,194 @@
1
+ import { isLineageNodeRecord } from "./types.js";
2
+ import { computeVersionGraphLayout } from "../versions/graph-layout.js";
3
+ import { BaseElement } from "../../core/index.js";
4
+ import { boeMotionDuration, boeMotionEasing } from "../../foundations/motion/index.js";
5
+ import { boeRadius } from "../../foundations/geometry/index.js";
6
+ const DEFAULT_TAG_NAME = "box-provenance-strip";
7
+ const escapeHtml = (value) => value
8
+ .replaceAll("&", "&")
9
+ .replaceAll("<", "&lt;")
10
+ .replaceAll(">", "&gt;")
11
+ .replaceAll('"', "&quot;")
12
+ .replaceAll("'", "&#39;");
13
+ const elementStyles = `
14
+ [hidden] {
15
+ display: none !important;
16
+ }
17
+
18
+ :host {
19
+ display: block;
20
+ color: inherit;
21
+ font: inherit;
22
+ }
23
+
24
+ [part="strip"] {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ align-items: center;
28
+ gap: 0.35rem;
29
+ margin: 0;
30
+ padding: 0;
31
+ list-style: none;
32
+ }
33
+
34
+ [part="item"] {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 0.35rem;
38
+ }
39
+
40
+ [part="chip"] {
41
+ appearance: none;
42
+ display: inline-flex;
43
+ align-items: center;
44
+ gap: 0.3rem;
45
+ font: inherit;
46
+ font-size: 0.8rem;
47
+ font-weight: 600;
48
+ padding: 0.22rem 0.55rem;
49
+ border-radius: 999px;
50
+ border: 1px solid color-mix(in srgb, var(--boe-token-stroke-stroke, #e8e8e8) 60%, transparent);
51
+ background: var(--boe-token-surface-surface, #ffffff);
52
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
53
+ cursor: pointer;
54
+ transition: background ${boeMotionDuration.interactive} ${boeMotionEasing.standard};
55
+ }
56
+
57
+ [part="chip"]:hover {
58
+ background: var(--boe-token-surface-surface-hover, #f4f4f4);
59
+ }
60
+
61
+ [part="chip"][aria-current="true"] {
62
+ border-color: color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 45%, transparent);
63
+ color: var(--boe-token-surface-surface-brand, #0061d5);
64
+ background: color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 8%, var(--boe-token-surface-surface, #ffffff));
65
+ }
66
+
67
+ [part="chip"]:focus-visible {
68
+ outline: none;
69
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 18%, transparent);
70
+ border-radius: ${boeRadius.large};
71
+ }
72
+
73
+ [part="kind-dot"] {
74
+ inline-size: 0.45rem;
75
+ block-size: 0.45rem;
76
+ border-radius: 999px;
77
+ background: var(--boe-token-text-text-secondary, #6f6f6f);
78
+ }
79
+
80
+ [part="item"][data-kind="clause"] [part="kind-dot"] {
81
+ background: var(--boe-token-surface-surface-brand, #0061d5);
82
+ }
83
+
84
+ [part="item"][data-kind="template"] [part="kind-dot"] {
85
+ border-radius: 2px;
86
+ }
87
+
88
+ [part="separator"] {
89
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
90
+ user-select: none;
91
+ }
92
+ `;
93
+ /**
94
+ * The cheap, high-frequency lineage sibling: a linear ancestry strip
95
+ * (Library clause v5 → Template 2026 → MSA_Acme §4.2) for record headers
96
+ * and the sidebar. Renders the chain oldest-first from the same topology
97
+ * contract as `box-lineage-graph` (branched input degrades to topological
98
+ * order), marks the newest entry as current, and emits `node-selected`.
99
+ */
100
+ export class ProvenanceStrip extends BaseElement {
101
+ static tagName = DEFAULT_TAG_NAME;
102
+ static get observedAttributes() {
103
+ return ["nodes"];
104
+ }
105
+ nodesValue = [];
106
+ hostEl;
107
+ get nodes() {
108
+ return this.nodesValue;
109
+ }
110
+ set nodes(value) {
111
+ this.nodesValue = Array.isArray(value) ? value.filter(isLineageNodeRecord) : [];
112
+ if (this.isRendered) {
113
+ this.update();
114
+ }
115
+ }
116
+ attributeChangedCallback(name, oldValue, newValue) {
117
+ if (name === "nodes") {
118
+ this.nodesValue = this.parseNodesAttribute(newValue);
119
+ }
120
+ super.attributeChangedCallback(name, oldValue, newValue);
121
+ }
122
+ parseNodesAttribute(raw) {
123
+ if (!raw) {
124
+ return [];
125
+ }
126
+ try {
127
+ const parsed = JSON.parse(raw);
128
+ return Array.isArray(parsed) ? parsed.filter(isLineageNodeRecord) : [];
129
+ }
130
+ catch {
131
+ return [];
132
+ }
133
+ }
134
+ renderTemplate() {
135
+ if (!this.shadowRoot) {
136
+ return;
137
+ }
138
+ this.shadowRoot.innerHTML = `
139
+ <style>${elementStyles}</style>
140
+ <div part="content-host"></div>
141
+ `;
142
+ this.hostEl = this.shadowRoot.querySelector('[part="content-host"]');
143
+ }
144
+ setupListeners() {
145
+ this.hostEl.addEventListener("click", event => {
146
+ const chip = event.target.closest('[part="chip"]');
147
+ if (!chip || !this.hostEl.contains(chip)) {
148
+ return;
149
+ }
150
+ const node = this.nodesValue.find(entry => entry.id === chip.getAttribute("data-id"));
151
+ if (node) {
152
+ this.dispatchEvent(new CustomEvent("node-selected", {
153
+ bubbles: true,
154
+ composed: true,
155
+ detail: { node },
156
+ }));
157
+ }
158
+ });
159
+ }
160
+ update() {
161
+ if (!this.hostEl) {
162
+ return;
163
+ }
164
+ // Placements come newest-first; the strip reads oldest → newest.
165
+ const layout = computeVersionGraphLayout(this.nodesValue.map(node => ({
166
+ id: node.id,
167
+ label: node.label,
168
+ parents: (node.parents ?? []).map(link => link.id),
169
+ })));
170
+ const byId = new Map(this.nodesValue.map(node => [node.id, node]));
171
+ const chain = [...layout.placements].reverse().map(placement => byId.get(placement.id));
172
+ const items = chain
173
+ .map((node, index) => {
174
+ const isCurrent = index === chain.length - 1;
175
+ const kind = node.kind ?? "";
176
+ return `
177
+ <li part="item"${kind ? ` data-kind="${escapeHtml(kind)}"` : ""}>
178
+ ${index > 0 ? `<span part="separator" aria-hidden="true">→</span>` : ""}
179
+ <button
180
+ type="button"
181
+ part="chip"
182
+ data-id="${escapeHtml(node.id)}"
183
+ ${isCurrent ? `aria-current="true"` : ""}
184
+ ><span part="kind-dot" aria-hidden="true"></span>${escapeHtml(node.label)}</button>
185
+ </li>
186
+ `;
187
+ })
188
+ .join("");
189
+ this.hostEl.innerHTML = chain.length
190
+ ? `<ol part="strip" aria-label="Provenance">${items}</ol>`
191
+ : "";
192
+ }
193
+ }
194
+ ProvenanceStrip.register();
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Node roles in a provenance chain. Open vocabulary — `clause`, `template`,
3
+ * and `contract` are the CLM conventions, but hosts add their own kinds
4
+ * without a schema change.
5
+ */
6
+ export type LineageKind = string;
7
+ /** How far a node's text drifted from the parent it derives from. */
8
+ export type LineageDeviation = "none" | "minor" | "major";
9
+ /**
10
+ * One typed derivation link. Unlike the versions pattern (where a parent is
11
+ * just an id), lineage links carry the comparison payload: how severely the
12
+ * child deviates from that parent, and an optional one-line summary.
13
+ */
14
+ export interface LineageParentLink {
15
+ id: string;
16
+ deviation?: LineageDeviation;
17
+ /** One-line description of the drift, e.g. "liability cap reworded". */
18
+ note?: string;
19
+ }
20
+ /**
21
+ * One node in the provenance DAG: a library clause, a template that embeds
22
+ * it, or an executed contract containing the final text. `parents` carries
23
+ * the derivation topology; a root (the source clause) has none.
24
+ */
25
+ export interface LineageNode {
26
+ id: string;
27
+ /** Short display name: "Clause 4.2 v5", "Template 2026", "MSA_Acme §4.2". */
28
+ label: string;
29
+ kind?: LineageKind;
30
+ parents?: LineageParentLink[];
31
+ /** Reference to the underlying record, for hosts to resolve on selection. */
32
+ entityRef?: {
33
+ id: string;
34
+ label?: string;
35
+ };
36
+ actor?: {
37
+ name: string;
38
+ initials?: string;
39
+ };
40
+ /** ISO timestamp; display only — `parents` defines the topology. */
41
+ timestamp?: string;
42
+ note?: string;
43
+ }
44
+ /** Detail payload for `edge-selected`; feeds the diff viewer's base/target pair. */
45
+ export interface LineageEdgeDetail {
46
+ parent: LineageNode;
47
+ child: LineageNode;
48
+ deviation: LineageDeviation;
49
+ note?: string;
50
+ }
51
+ export declare const resolveLineageDeviation: (value: string | null | undefined) => LineageDeviation;
52
+ /** Attribute payloads are author input — validate every record, not just the array. */
53
+ export declare const isLineageNodeRecord: (value: unknown) => value is LineageNode;
@@ -0,0 +1,49 @@
1
+ const DEVIATIONS = new Set(["none", "minor", "major"]);
2
+ export const resolveLineageDeviation = (value) => (value && DEVIATIONS.has(value) ? value : "none");
3
+ /** Attribute payloads are author input — validate every record, not just the array. */
4
+ export const isLineageNodeRecord = (value) => {
5
+ if (typeof value !== "object" || value === null) {
6
+ return false;
7
+ }
8
+ const node = value;
9
+ if (typeof node.id !== "string" || node.id.length === 0 || typeof node.label !== "string") {
10
+ return false;
11
+ }
12
+ for (const field of ["kind", "timestamp", "note"]) {
13
+ if (node[field] !== undefined && typeof node[field] !== "string") {
14
+ return false;
15
+ }
16
+ }
17
+ if (node.parents !== undefined) {
18
+ if (!Array.isArray(node.parents)) {
19
+ return false;
20
+ }
21
+ for (const entry of node.parents) {
22
+ const link = entry;
23
+ if (typeof link !== "object" ||
24
+ link === null ||
25
+ typeof link.id !== "string" ||
26
+ link.id.length === 0 ||
27
+ (link.deviation !== undefined && typeof link.deviation !== "string") ||
28
+ (link.note !== undefined && typeof link.note !== "string")) {
29
+ return false;
30
+ }
31
+ }
32
+ }
33
+ if (node.entityRef !== undefined) {
34
+ const ref = node.entityRef;
35
+ if (typeof ref !== "object" || ref === null || typeof ref.id !== "string") {
36
+ return false;
37
+ }
38
+ }
39
+ if (node.actor !== undefined) {
40
+ const actor = node.actor;
41
+ if (typeof actor !== "object" || actor === null || typeof actor.name !== "string") {
42
+ return false;
43
+ }
44
+ if (actor.initials !== undefined && typeof actor.initials !== "string") {
45
+ return false;
46
+ }
47
+ }
48
+ return true;
49
+ };
@@ -8,7 +8,8 @@ type MetadataFilterRule = {
8
8
  operator: string;
9
9
  value: string;
10
10
  };
11
- export declare class BoxMetadataFilterBuilderElement extends BaseElement {
11
+ export declare class MetadataFilterBuilder extends BaseElement {
12
+ static readonly tagName: string;
12
13
  static get observedAttributes(): string[];
13
14
  private rulesInternal;
14
15
  private syncingFromUi;
@@ -39,5 +40,4 @@ export declare class BoxMetadataFilterBuilderElement extends BaseElement {
39
40
  protected setupListeners(): void;
40
41
  protected update(): void;
41
42
  }
42
- export declare const defineBoxMetadataFilterBuilderElement: (tagName?: string) => typeof BoxMetadataFilterBuilderElement;
43
43
  export {};
@@ -97,7 +97,8 @@ const builderStyles = `
97
97
  }
98
98
  }
99
99
  `;
100
- export class BoxMetadataFilterBuilderElement extends BaseElement {
100
+ export class MetadataFilterBuilder extends BaseElement {
101
+ static tagName = DEFAULT_TAG_NAME;
101
102
  static get observedAttributes() {
102
103
  return ["fields", "label", "rules"];
103
104
  }
@@ -352,11 +353,4 @@ export class BoxMetadataFilterBuilderElement extends BaseElement {
352
353
  this.rulesEl.innerHTML = this.renderRulesMarkup();
353
354
  }
354
355
  }
355
- export const defineBoxMetadataFilterBuilderElement = (tagName = DEFAULT_TAG_NAME) => {
356
- const existingElement = customElements.get(tagName);
357
- if (existingElement) {
358
- return existingElement;
359
- }
360
- customElements.define(tagName, BoxMetadataFilterBuilderElement);
361
- return BoxMetadataFilterBuilderElement;
362
- };
356
+ MetadataFilterBuilder.register();
@@ -9,7 +9,8 @@ type MetadataInspectorSection = {
9
9
  fields: MetadataInspectorField[];
10
10
  title: string;
11
11
  };
12
- export declare class BoxMetadataInspectorElement extends BaseElement {
12
+ export declare class MetadataInspector extends BaseElement {
13
+ static readonly tagName: string;
13
14
  static get observedAttributes(): string[];
14
15
  get eyebrow(): string;
15
16
  set eyebrow(value: string);
@@ -27,5 +28,4 @@ export declare class BoxMetadataInspectorElement extends BaseElement {
27
28
  protected renderTemplate(): void;
28
29
  protected update(): void;
29
30
  }
30
- export declare const defineBoxMetadataInspectorElement: (tagName?: string) => typeof BoxMetadataInspectorElement;
31
31
  export {};
@@ -118,7 +118,8 @@ const elementStyles = `
118
118
  line-height: 1.5;
119
119
  }
120
120
  `;
121
- export class BoxMetadataInspectorElement extends BaseElement {
121
+ export class MetadataInspector extends BaseElement {
122
+ static tagName = DEFAULT_TAG_NAME;
122
123
  static get observedAttributes() {
123
124
  return ["eyebrow", "heading", "message", "sections"];
124
125
  }
@@ -235,11 +236,4 @@ export class BoxMetadataInspectorElement extends BaseElement {
235
236
  });
236
237
  }
237
238
  }
238
- export const defineBoxMetadataInspectorElement = (tagName = DEFAULT_TAG_NAME) => {
239
- const existingElement = customElements.get(tagName);
240
- if (existingElement) {
241
- return existingElement;
242
- }
243
- customElements.define(tagName, BoxMetadataInspectorElement);
244
- return BoxMetadataInspectorElement;
245
- };
239
+ MetadataInspector.register();
@@ -0,0 +1,3 @@
1
+ export * from "./types.js";
2
+ export * from "./notification-bell.js";
3
+ export * from "./notification-inbox.js";
@@ -0,0 +1,6 @@
1
+ // Notification model + pure grouping/counting engine
2
+ export * from "./types.js";
3
+ // Bell with unread count for the app chrome
4
+ export * from "./notification-bell.js";
5
+ // Triage inbox panel
6
+ export * from "./notification-inbox.js";
@@ -0,0 +1,38 @@
1
+ import type { NotificationItem } from "./types.js";
2
+ import { BaseElement } from "../../core/index.js";
3
+ /**
4
+ * The bell: an unread count over a trigger, for the app chrome.
5
+ *
6
+ * The count is the accessible name, not decoration — "Notifications, 3
7
+ * unread" — because a red dot alone tells a screen-reader user nothing. Past
8
+ * `max` the badge reads "9+" while the label still states the true count,
9
+ * since the abbreviation is a layout concession and the number is the fact.
10
+ */
11
+ export declare class NotificationBell extends BaseElement {
12
+ static readonly tagName: string;
13
+ static get observedAttributes(): string[];
14
+ private triggerEl;
15
+ private countEl;
16
+ private notificationsRaw;
17
+ private notificationsCache;
18
+ get label(): string;
19
+ set label(value: string);
20
+ /** Largest number rendered before the badge abbreviates, e.g. `9+`. */
21
+ get max(): number;
22
+ set max(value: number);
23
+ get expanded(): boolean;
24
+ set expanded(value: boolean);
25
+ /** Optional records; supply these or `unread-count`, not both. */
26
+ get notifications(): NotificationItem[];
27
+ set notifications(value: NotificationItem[]);
28
+ /**
29
+ * Unread total. Derived from `notifications` when they are supplied;
30
+ * otherwise read from the attribute, so a host that keeps the list on the
31
+ * server can still drive the badge with one number.
32
+ */
33
+ get unreadCount(): number;
34
+ set unreadCount(value: number);
35
+ protected renderTemplate(): void;
36
+ protected setupListeners(): void;
37
+ protected update(): void;
38
+ }
@@ -0,0 +1,198 @@
1
+ import { countUnreadNotifications, isNotificationItemRecord } from "./types.js";
2
+ import { BaseElement } from "../../core/index.js";
3
+ import { boeRadius } from "../../foundations/geometry/index.js";
4
+ import { boeMotionDuration, boeMotionEasing } from "../../foundations/motion/index.js";
5
+ const DEFAULT_TAG_NAME = "box-notification-bell";
6
+ const escapeHtml = (value) => value
7
+ .replaceAll("&", "&amp;")
8
+ .replaceAll("<", "&lt;")
9
+ .replaceAll(">", "&gt;")
10
+ .replaceAll('"', "&quot;")
11
+ .replaceAll("'", "&#39;");
12
+ const elementStyles = `
13
+ [hidden] {
14
+ display: none !important;
15
+ }
16
+
17
+ :host {
18
+ display: inline-block;
19
+ }
20
+
21
+ [part="trigger"] {
22
+ position: relative;
23
+ appearance: none;
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ inline-size: 2.25rem;
28
+ block-size: 2.25rem;
29
+ padding: 0;
30
+ border: 1px solid transparent;
31
+ border-radius: ${boeRadius.control};
32
+ background: none;
33
+ color: var(--boe-token-text-text, #1f1e1b);
34
+ font: inherit;
35
+ font-size: 1.05rem;
36
+ cursor: pointer;
37
+ transition: background ${boeMotionDuration.interactive} ${boeMotionEasing.standard};
38
+ }
39
+
40
+ [part="trigger"]:hover {
41
+ background: var(--boe-token-surface-surface-hover, #f4f4f4);
42
+ }
43
+
44
+ [part="trigger"]:focus-visible {
45
+ outline: none;
46
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 18%, transparent);
47
+ }
48
+
49
+ [part="trigger"][aria-expanded="true"] {
50
+ background: color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 12%, transparent);
51
+ border-color: color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 30%, transparent);
52
+ }
53
+
54
+ [part="count"] {
55
+ position: absolute;
56
+ inset-block-start: 0;
57
+ inset-inline-end: 0;
58
+ transform: translate(35%, -35%);
59
+ min-inline-size: 1.1rem;
60
+ padding: 0 0.25rem;
61
+ border-radius: 999px;
62
+ background: var(--boe-token-surface-status-surface-error, #ed3757);
63
+ color: var(--boe-token-text-text-on-brand, #ffffff);
64
+ font-size: 0.68rem;
65
+ font-weight: 700;
66
+ line-height: 1.1rem;
67
+ text-align: center;
68
+ }
69
+
70
+ [part="count"][data-dot="true"] {
71
+ min-inline-size: 0.5rem;
72
+ block-size: 0.5rem;
73
+ padding: 0;
74
+ }
75
+ `;
76
+ /**
77
+ * The bell: an unread count over a trigger, for the app chrome.
78
+ *
79
+ * The count is the accessible name, not decoration — "Notifications, 3
80
+ * unread" — because a red dot alone tells a screen-reader user nothing. Past
81
+ * `max` the badge reads "9+" while the label still states the true count,
82
+ * since the abbreviation is a layout concession and the number is the fact.
83
+ */
84
+ export class NotificationBell extends BaseElement {
85
+ static tagName = DEFAULT_TAG_NAME;
86
+ static get observedAttributes() {
87
+ return ["expanded", "label", "max", "notifications", "unread-count"];
88
+ }
89
+ triggerEl;
90
+ countEl;
91
+ notificationsRaw = null;
92
+ notificationsCache = [];
93
+ get label() {
94
+ return this.getAttribute("label") ?? "Notifications";
95
+ }
96
+ set label(value) {
97
+ this.setAttribute("label", value);
98
+ }
99
+ /** Largest number rendered before the badge abbreviates, e.g. `9+`. */
100
+ get max() {
101
+ const raw = Number.parseInt(this.getAttribute("max") ?? "", 10);
102
+ return Number.isFinite(raw) && raw > 0 ? raw : 99;
103
+ }
104
+ set max(value) {
105
+ this.setAttribute("max", String(value));
106
+ }
107
+ get expanded() {
108
+ return this.hasAttribute("expanded");
109
+ }
110
+ set expanded(value) {
111
+ this.toggleAttribute("expanded", value);
112
+ }
113
+ /** Optional records; supply these or `unread-count`, not both. */
114
+ get notifications() {
115
+ const raw = this.getAttribute("notifications");
116
+ if (!raw) {
117
+ return [];
118
+ }
119
+ if (raw !== this.notificationsRaw) {
120
+ this.notificationsRaw = raw;
121
+ try {
122
+ const parsed = JSON.parse(raw);
123
+ this.notificationsCache =
124
+ Array.isArray(parsed) && parsed.every(isNotificationItemRecord)
125
+ ? parsed
126
+ : [];
127
+ }
128
+ catch {
129
+ this.notificationsCache = [];
130
+ }
131
+ }
132
+ return [...this.notificationsCache];
133
+ }
134
+ set notifications(value) {
135
+ if (value.length) {
136
+ this.setAttribute("notifications", JSON.stringify(value));
137
+ return;
138
+ }
139
+ this.removeAttribute("notifications");
140
+ }
141
+ /**
142
+ * Unread total. Derived from `notifications` when they are supplied;
143
+ * otherwise read from the attribute, so a host that keeps the list on the
144
+ * server can still drive the badge with one number.
145
+ */
146
+ get unreadCount() {
147
+ if (this.hasAttribute("notifications")) {
148
+ return countUnreadNotifications(this.notifications);
149
+ }
150
+ const raw = Number.parseInt(this.getAttribute("unread-count") ?? "", 10);
151
+ return Number.isFinite(raw) && raw > 0 ? raw : 0;
152
+ }
153
+ set unreadCount(value) {
154
+ this.setAttribute("unread-count", String(Math.max(0, Math.trunc(value))));
155
+ }
156
+ renderTemplate() {
157
+ if (!this.shadowRoot) {
158
+ return;
159
+ }
160
+ this.shadowRoot.innerHTML = `
161
+ <style>${elementStyles}</style>
162
+ <button type="button" part="trigger" aria-expanded="false" aria-haspopup="dialog">
163
+ <span part="icon" aria-hidden="true">🔔</span>
164
+ <span part="count" aria-hidden="true" hidden></span>
165
+ </button>
166
+ `;
167
+ this.triggerEl = this.shadowRoot.querySelector('[part="trigger"]');
168
+ this.countEl = this.shadowRoot.querySelector('[part="count"]');
169
+ }
170
+ setupListeners() {
171
+ this.triggerEl.addEventListener("click", () => {
172
+ const expanded = !this.expanded;
173
+ this.expanded = expanded;
174
+ this.dispatchEvent(new CustomEvent("toggle", {
175
+ bubbles: true,
176
+ composed: true,
177
+ detail: { expanded, unreadCount: this.unreadCount },
178
+ }));
179
+ });
180
+ }
181
+ update() {
182
+ if (!this.triggerEl) {
183
+ return;
184
+ }
185
+ const unread = this.unreadCount;
186
+ const max = this.max;
187
+ this.countEl.hidden = unread === 0;
188
+ this.countEl.textContent = unread > max ? `${String(max)}+` : String(unread);
189
+ // A zero-width badge would be invisible; a dot is the honest minimum.
190
+ this.countEl.setAttribute("data-dot", String(this.countEl.textContent === ""));
191
+ // The abbreviated badge is a layout concession — the label keeps the
192
+ // real number so assistive tech is never told "9+" when it is 240.
193
+ const suffix = unread === 0 ? "no unread" : `${String(unread)} unread`;
194
+ this.triggerEl.setAttribute("aria-label", `${escapeHtml(this.label)}, ${suffix}`);
195
+ this.triggerEl.setAttribute("aria-expanded", String(this.expanded));
196
+ }
197
+ }
198
+ NotificationBell.register();
@@ -0,0 +1,46 @@
1
+ import type { NotificationFilter, NotificationItem } from "./types.js";
2
+ import { BaseElement } from "../../core/index.js";
3
+ /**
4
+ * The triage inbox: approvals waiting, SLA breaches, mentions — grouped by
5
+ * type, filterable to unread, with per-row and bulk intents.
6
+ *
7
+ * Toasts are the wrong surface for this: they are transient and unordered,
8
+ * while triage needs a list you can come back to. Sections lead with the most
9
+ * unread so what needs attention rises to the top.
10
+ *
11
+ * Mutations are intents, not state changes. The element never marks anything
12
+ * read on its own — the host owns the write and feeds back a new list, so the
13
+ * inbox can never disagree with the server about what has been seen.
14
+ */
15
+ export declare class NotificationInbox extends BaseElement {
16
+ static readonly tagName: string;
17
+ static get observedAttributes(): string[];
18
+ private panelEl;
19
+ private titleEl;
20
+ private unreadPillEl;
21
+ private markAllEl;
22
+ private filtersEl;
23
+ private groupsEl;
24
+ private emptyEl;
25
+ private signature;
26
+ private notificationsRaw;
27
+ private notificationsCache;
28
+ get heading(): string;
29
+ set heading(value: string);
30
+ get filter(): NotificationFilter;
31
+ set filter(value: NotificationFilter);
32
+ /** Notification records; JSON payloads are validated per record. */
33
+ get notifications(): NotificationItem[];
34
+ set notifications(value: NotificationItem[]);
35
+ /** Optional `{ type: heading }` map; unmapped types are humanized. */
36
+ get typeLabels(): Record<string, string>;
37
+ set typeLabels(value: Record<string, string>);
38
+ get unreadCount(): number;
39
+ /** The records currently on screen, after the filter. */
40
+ get visibleNotifications(): NotificationItem[];
41
+ private emitIntent;
42
+ private itemHtml;
43
+ protected renderTemplate(): void;
44
+ protected setupListeners(): void;
45
+ protected update(): void;
46
+ }