@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
@@ -7,12 +7,47 @@ export interface TableColumn {
7
7
  /** Mark the column sortable — clicking its header emits `sort`. */
8
8
  sortable?: boolean;
9
9
  }
10
+ export type TableCellTone = "neutral" | "brand" | "success" | "warning" | "error";
11
+ /**
12
+ * Declarative cell content beyond plain text. Deliberately a descriptor the
13
+ * table renders itself, never an HTML string or a render callback: cell data
14
+ * is server-supplied and stays escaped — a string renderer would reopen the
15
+ * injection hole the escaping exists to close.
16
+ */
17
+ export interface TableCellDescriptor {
18
+ kind: "text" | "badge" | "link";
19
+ text: string;
20
+ /** Badge colour; the text still carries the meaning. */
21
+ tone?: TableCellTone;
22
+ /** Link target; non-http(s) schemes render as plain text. */
23
+ href?: string;
24
+ }
25
+ export type TableCellValue = string | TableCellDescriptor;
10
26
  export interface TableRow {
11
27
  id: string;
12
- /** Cell text keyed by column key, or positional strings matching `columns`. */
13
- cells: Record<string, string> | string[];
28
+ /** Cell values keyed by column key, or positional, matching `columns`. */
29
+ cells: Record<string, TableCellValue> | TableCellValue[];
30
+ /**
31
+ * Expandable detail. Renders a per-row toggle and a full-width detail row
32
+ * holding this text plus a `detail-<id>` slot for rich host content.
33
+ */
34
+ detail?: string;
14
35
  }
15
36
  export type TableSelectionMode = "none" | "single" | "multiple";
37
+ /** Detail of the `sort` event, for typed listeners. */
38
+ export interface TableSortDetail {
39
+ key: string;
40
+ direction: "ascending" | "descending";
41
+ }
42
+ /** Detail of the `selection-changed` event, for typed listeners. */
43
+ export interface TableSelectionChangedDetail {
44
+ selectedIds: string[];
45
+ }
46
+ /** Detail of the `row-toggled` event, for typed listeners. */
47
+ export interface TableRowToggledDetail {
48
+ rowId: string;
49
+ expanded: boolean;
50
+ }
16
51
  /**
17
52
  * A semantic, selectable data table — box-ui-elements `Table` + `makeSelectable`.
18
53
  * Rows and columns come from JSON. Selection supports single / Ctrl-click toggle
@@ -20,12 +55,25 @@ export type TableSelectionMode = "none" | "single" | "multiple";
20
55
  * toggle, Ctrl/Cmd+A select-all, Escape clear). Sorting is host-owned: sortable
21
56
  * headers emit `sort` and the host reorders `rows`.
22
57
  */
23
- export declare class BoxTableElement extends BaseElement {
58
+ export declare class Table extends BaseElement {
59
+ static readonly tagName: string;
24
60
  static get observedAttributes(): string[];
25
61
  private bodyEl;
26
62
  private headEl;
27
63
  private selected;
28
64
  private anchorIndex;
65
+ private readonly expandedIds;
66
+ /** True while rows are being fetched: the body states "Loading rows…". */
67
+ get loading(): boolean;
68
+ set loading(value: boolean);
69
+ /** What the body says when there are no rows and nothing is loading. */
70
+ get emptyText(): string;
71
+ set emptyText(value: string);
72
+ /** Non-empty puts the table in an error state stating this text. */
73
+ get errorText(): string;
74
+ set errorText(value: string);
75
+ /** Ids of the rows whose detail is expanded (host-readable). */
76
+ get expandedRows(): string[];
29
77
  get columns(): TableColumn[];
30
78
  set columns(value: TableColumn[]);
31
79
  get rows(): TableRow[];
@@ -37,10 +85,17 @@ export declare class BoxTableElement extends BaseElement {
37
85
  get label(): string;
38
86
  set label(value: string);
39
87
  private parseJson;
40
- private cellText;
88
+ private cellValue;
89
+ /**
90
+ * Descriptor rendering. Everything is escaped; a link with a non-http(s)
91
+ * href renders as plain text; a badge's tone colours a word that already
92
+ * carries the meaning.
93
+ */
94
+ private cellMarkup;
41
95
  protected renderTemplate(): void;
42
96
  protected setupListeners(): void;
43
97
  private rowElements;
98
+ private toggleRowDetail;
44
99
  private onBodyKeydown;
45
100
  private toggleSort;
46
101
  private activateRow;
@@ -50,4 +105,3 @@ export declare class BoxTableElement extends BaseElement {
50
105
  private applySelectionState;
51
106
  protected update(): void;
52
107
  }
53
- export declare const defineBoxTableElement: (tagName?: string) => typeof BoxTableElement;
@@ -1,6 +1,15 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
2
  import { boePanel, boeRadius, boeSpace } from "../../foundations/geometry/index.js";
3
+ import { isSafeHref } from "../../patterns/internal/safe-href.js";
3
4
  const DEFAULT_TAG_NAME = "box-table";
5
+ const CELL_TONES = new Set(["neutral", "brand", "success", "warning", "error"]);
6
+ const CELL_ALIGNS = new Set(["start", "end", "center"]);
7
+ /** `align` is author input from a JSON attribute like everything else — an
8
+ * unvalidated value would close the attribute and inject markup. */
9
+ const alignAttr = (align) => align && CELL_ALIGNS.has(align) ? ` data-align="${align}"` : "";
10
+ const isCellDescriptor = (value) => typeof value === "object" && value !== null && typeof value.text === "string";
11
+ /** Escape a value for use inside a double-quoted attribute selector. */
12
+ const cssAttrValue = (value) => value.replaceAll("\\", "\\\\").replaceAll('"', '\\"');
4
13
  const escapeHtml = (value) => value
5
14
  .replaceAll("&", "&amp;")
6
15
  .replaceAll("<", "&lt;")
@@ -47,8 +56,35 @@ const tableStyles = `
47
56
  th[part="sortable"] {
48
57
  cursor: pointer;
49
58
  user-select: none;
59
+ /* The button carries the padding so its hit area fills the cell. */
60
+ padding: 0;
50
61
  }
51
62
  th[part="sortable"]:hover { color: var(--boe-token-text-text, #222222); }
63
+
64
+ /* A real button, so sorting is reachable by keyboard: focus, Enter and
65
+ Space come from the platform instead of a keydown reimplementation. */
66
+ [part="sort-button"] {
67
+ appearance: none;
68
+ display: block;
69
+ width: 100%;
70
+ padding: ${boeSpace[2]} ${boeSpace[3]};
71
+ border: 0;
72
+ background: transparent;
73
+ font: inherit;
74
+ letter-spacing: inherit;
75
+ text-transform: inherit;
76
+ text-align: inherit;
77
+ color: inherit;
78
+ cursor: pointer;
79
+ }
80
+
81
+ th[data-align="end"] [part="sort-button"] { text-align: end; }
82
+ th[data-align="center"] [part="sort-button"] { text-align: center; }
83
+
84
+ [part="sort-button"]:focus-visible {
85
+ outline: none;
86
+ box-shadow: inset 0 0 0 2px var(--boe-token-surface-surface-brand, #0061d5);
87
+ }
52
88
  th[aria-sort] .boe-sort-arrow::after { content: " ↕"; opacity: 0.5; }
53
89
  th[aria-sort="ascending"] .boe-sort-arrow::after { content: " ↑"; opacity: 1; }
54
90
  th[aria-sort="descending"] .boe-sort-arrow::after { content: " ↓"; opacity: 1; }
@@ -76,7 +112,143 @@ const tableStyles = `
76
112
  tbody tr[part="row"]:focus-visible td {
77
113
  box-shadow: inset 0 0 0 2px var(--boe-token-surface-surface-brand, #0061d5);
78
114
  }
115
+
116
+ [part="cell-badge"] {
117
+ display: inline-block;
118
+ padding: 0.08rem 0.5rem;
119
+ border-radius: 999px;
120
+ font-size: 0.74rem;
121
+ font-weight: 700;
122
+ color: color-mix(in srgb, var(--cell-tone, var(--boe-token-text-text-secondary, #6f6f6f)) 76%, black 24%);
123
+ background: color-mix(in srgb, var(--cell-tone, var(--boe-token-text-text-secondary, #6f6f6f)) 14%, transparent);
124
+ border: 1px solid color-mix(in srgb, var(--cell-tone, var(--boe-token-text-text-secondary, #6f6f6f)) 30%, transparent);
125
+ }
126
+
127
+ [part="cell-link"] {
128
+ color: var(--boe-token-surface-surface-brand, #0061d5);
129
+ text-decoration: none;
130
+ }
131
+
132
+ [part="cell-link"]:hover {
133
+ text-decoration: underline;
134
+ }
135
+
136
+ [part="expander"] {
137
+ appearance: none;
138
+ display: inline-grid;
139
+ place-items: center;
140
+ inline-size: 1.4rem;
141
+ block-size: 1.4rem;
142
+ border: 0;
143
+ border-radius: 4px;
144
+ background: transparent;
145
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
146
+ font: inherit;
147
+ font-size: 0.72rem;
148
+ cursor: pointer;
149
+ }
150
+
151
+ [part="expander"]:hover {
152
+ background: var(--boe-token-surface-surface-hover, #f4f4f4);
153
+ }
154
+
155
+ [part="expander"]:focus-visible {
156
+ outline: 2px solid color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 34%, transparent);
157
+ outline-offset: 1px;
158
+ }
159
+
160
+ [part="expander"]::before {
161
+ content: "▸";
162
+ transition: transform 120ms ease;
163
+ }
164
+
165
+ [part="expander"][aria-expanded="true"]::before {
166
+ transform: rotate(90deg);
167
+ }
168
+
169
+ tr[part="detail-row"] td {
170
+ background: color-mix(in srgb, var(--boe-token-surface-surface-secondary, #fbfbfb) 80%, transparent);
171
+ font-size: 0.84rem;
172
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
173
+ }
174
+
175
+ tr[part="state-row"] td {
176
+ padding: 1.1rem ${boeSpace[3]};
177
+ text-align: center;
178
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
179
+ }
180
+
181
+ tr[part="state-row"][data-state="error"] td {
182
+ color: color-mix(in srgb, var(--boe-token-surface-status-surface-error, #ed3757) 76%, black 24%);
183
+ }
184
+
185
+ [part="state-spinner"] {
186
+ display: inline-block;
187
+ vertical-align: -0.15rem;
188
+ margin-inline-end: 0.45rem;
189
+ inline-size: 0.95rem;
190
+ block-size: 0.95rem;
191
+ border-radius: 999px;
192
+ border: 2px solid color-mix(in srgb, var(--boe-token-surface-surface-brand, #0061d5) 20%, transparent);
193
+ border-top-color: var(--boe-token-surface-surface-brand, #0061d5);
194
+ animation: boe-table-spin 0.9s linear infinite;
195
+ }
196
+
197
+ @keyframes boe-table-spin {
198
+ to { transform: rotate(360deg); }
199
+ }
200
+
201
+ @media (prefers-reduced-motion: reduce) {
202
+ [part="state-spinner"] { animation-duration: 1.6s; }
203
+ }
204
+
205
+ /* Stacked rows: each row becomes a card, each cell states its column via
206
+ data-label. Roles are explicit on rows and cells, so the grid semantics
207
+ survive the display change. stacked="always" forces it; stacked="auto"
208
+ stacks when the host container narrows. */
209
+ :host {
210
+ container-type: inline-size;
211
+ }
212
+ ` +
213
+ (() => {
214
+ const rules = (scope) => `
215
+ ${scope} thead { display: none; }
216
+ ${scope} tr[part="row"] {
217
+ display: block;
218
+ padding: ${boeSpace[2]} 0;
219
+ }
220
+ ${scope} tbody td {
221
+ display: grid;
222
+ grid-template-columns: minmax(7.5rem, 9rem) 1fr;
223
+ gap: 0.5rem;
224
+ border-bottom: none;
225
+ padding-block: 0.18rem;
226
+ text-align: start;
227
+ }
228
+ ${scope} tbody td[data-label]::before {
229
+ content: attr(data-label);
230
+ font-size: 0.74rem;
231
+ font-weight: 700;
232
+ letter-spacing: 0.05em;
233
+ text-transform: uppercase;
234
+ color: var(--boe-token-text-text-secondary, #6f6f6f);
235
+ align-self: center;
236
+ }
237
+ ${scope} tr[part="row"]:not(:last-child) {
238
+ border-bottom: 1px solid var(--boe-token-stroke-stroke, #e8e8e8);
239
+ }
240
+ ${scope} tr[part="detail-row"] td,
241
+ ${scope} tr[part="state-row"] td {
242
+ display: block;
243
+ }
79
244
  `;
245
+ return `
246
+ ${rules(':host([stacked]:not([stacked="auto"]))')}
247
+ @container (max-width: 560px) {
248
+ ${rules(':host([stacked="auto"])')}
249
+ }
250
+ `;
251
+ })();
80
252
  /**
81
253
  * A semantic, selectable data table — box-ui-elements `Table` + `makeSelectable`.
82
254
  * Rows and columns come from JSON. Selection supports single / Ctrl-click toggle
@@ -84,14 +256,57 @@ const tableStyles = `
84
256
  * toggle, Ctrl/Cmd+A select-all, Escape clear). Sorting is host-owned: sortable
85
257
  * headers emit `sort` and the host reorders `rows`.
86
258
  */
87
- export class BoxTableElement extends BaseElement {
259
+ export class Table extends BaseElement {
260
+ static tagName = DEFAULT_TAG_NAME;
88
261
  static get observedAttributes() {
89
- return ["columns", "rows", "selection-mode", "label", "sort-key", "sort-direction"];
262
+ return [
263
+ "columns",
264
+ "empty-text",
265
+ "error-text",
266
+ "label",
267
+ "loading",
268
+ "rows",
269
+ "selection-mode",
270
+ "sort-direction",
271
+ "sort-key",
272
+ "stacked",
273
+ ];
90
274
  }
91
275
  bodyEl;
92
276
  headEl;
93
277
  selected = new Set();
94
278
  anchorIndex = -1;
279
+ expandedIds = new Set();
280
+ /** True while rows are being fetched: the body states "Loading rows…". */
281
+ get loading() {
282
+ return this.hasAttribute("loading");
283
+ }
284
+ set loading(value) {
285
+ this.toggleAttribute("loading", Boolean(value));
286
+ }
287
+ /** What the body says when there are no rows and nothing is loading. */
288
+ get emptyText() {
289
+ return this.getAttribute("empty-text") ?? "No rows";
290
+ }
291
+ set emptyText(value) {
292
+ this.setAttribute("empty-text", value);
293
+ }
294
+ /** Non-empty puts the table in an error state stating this text. */
295
+ get errorText() {
296
+ return this.getAttribute("error-text") ?? "";
297
+ }
298
+ set errorText(value) {
299
+ if (value) {
300
+ this.setAttribute("error-text", value);
301
+ }
302
+ else {
303
+ this.removeAttribute("error-text");
304
+ }
305
+ }
306
+ /** Ids of the rows whose detail is expanded (host-readable). */
307
+ get expandedRows() {
308
+ return [...this.expandedIds];
309
+ }
95
310
  get columns() {
96
311
  return this.parseJson("columns", []);
97
312
  }
@@ -138,12 +353,35 @@ export class BoxTableElement extends BaseElement {
138
353
  return fallback;
139
354
  }
140
355
  }
141
- cellText(row, column, index) {
356
+ cellValue(row, column, index) {
142
357
  if (Array.isArray(row.cells)) {
143
358
  return row.cells[index] ?? "";
144
359
  }
145
360
  return row.cells[column.key] ?? "";
146
361
  }
362
+ /**
363
+ * Descriptor rendering. Everything is escaped; a link with a non-http(s)
364
+ * href renders as plain text; a badge's tone colours a word that already
365
+ * carries the meaning.
366
+ */
367
+ cellMarkup(value) {
368
+ if (!isCellDescriptor(value)) {
369
+ return escapeHtml(typeof value === "string" ? value : "");
370
+ }
371
+ if (value.kind === "badge") {
372
+ const tone = value.tone && CELL_TONES.has(value.tone) ? value.tone : "neutral";
373
+ const toneVar = tone === "neutral"
374
+ ? "var(--boe-token-text-text-secondary, #6f6f6f)"
375
+ : tone === "brand"
376
+ ? "var(--boe-token-surface-surface-brand, #0061d5)"
377
+ : `var(--boe-token-surface-status-surface-${tone}, #6f6f6f)`;
378
+ return `<span part="cell-badge" style="--cell-tone:${toneVar};">${escapeHtml(value.text)}</span>`;
379
+ }
380
+ if (value.kind === "link" && value.href && isSafeHref(value.href)) {
381
+ return `<a part="cell-link" href="${escapeHtml(value.href)}">${escapeHtml(value.text)}</a>`;
382
+ }
383
+ return escapeHtml(value.text);
384
+ }
147
385
  renderTemplate() {
148
386
  if (!this.shadowRoot)
149
387
  return;
@@ -167,6 +405,11 @@ export class BoxTableElement extends BaseElement {
167
405
  this.toggleSort(th.dataset.key ?? "");
168
406
  });
169
407
  this.bodyEl.addEventListener("click", event => {
408
+ const expander = event.target.closest('[part="expander"]');
409
+ if (expander) {
410
+ this.toggleRowDetail(expander.dataset.rowId ?? "");
411
+ return; // expanding is not selecting
412
+ }
170
413
  const row = event.target.closest('[part="row"]');
171
414
  if (!row)
172
415
  return;
@@ -178,7 +421,33 @@ export class BoxTableElement extends BaseElement {
178
421
  rowElements() {
179
422
  return Array.from(this.bodyEl.querySelectorAll('[part="row"]'));
180
423
  }
424
+ toggleRowDetail(rowId) {
425
+ if (!rowId)
426
+ return;
427
+ const expanded = !this.expandedIds.has(rowId);
428
+ if (expanded) {
429
+ this.expandedIds.add(rowId);
430
+ }
431
+ else {
432
+ this.expandedIds.delete(rowId);
433
+ }
434
+ this.dispatchEvent(new CustomEvent("row-toggled", {
435
+ bubbles: true,
436
+ composed: true,
437
+ detail: { rowId, expanded },
438
+ }));
439
+ this.update();
440
+ // update() rewrote the body, destroying the button that was activated;
441
+ // put focus on its replacement so a keyboard user is not dropped.
442
+ this.bodyEl
443
+ .querySelector(`[part="expander"][data-row-id="${cssAttrValue(rowId)}"]`)
444
+ ?.focus();
445
+ }
181
446
  onBodyKeydown(event) {
447
+ // Keys aimed at the expander button (Enter/Space activate it natively)
448
+ // must not double as row selection.
449
+ if (event.target.closest('[part="expander"]'))
450
+ return;
182
451
  const rows = this.rowElements();
183
452
  if (rows.length === 0)
184
453
  return;
@@ -225,7 +494,11 @@ export class BoxTableElement extends BaseElement {
225
494
  const currentKey = this.getAttribute("sort-key");
226
495
  const currentDir = this.getAttribute("sort-direction");
227
496
  const direction = currentKey === key && currentDir === "ascending" ? "descending" : "ascending";
228
- this.dispatchEvent(new CustomEvent("sort", { bubbles: true, composed: true, detail: { key, direction } }));
497
+ this.dispatchEvent(new CustomEvent("sort", {
498
+ bubbles: true,
499
+ composed: true,
500
+ detail: { key, direction },
501
+ }));
229
502
  }
230
503
  activateRow(index, options = {}) {
231
504
  const rows = this.rows;
@@ -283,41 +556,81 @@ export class BoxTableElement extends BaseElement {
283
556
  const selectable = this.selectionMode !== "none";
284
557
  const sortKey = this.getAttribute("sort-key");
285
558
  const sortDir = this.getAttribute("sort-direction");
286
- this.shadowRoot?.querySelector('[part="table"]')?.setAttribute("aria-label", this.label);
287
- this.shadowRoot?.querySelector('[part="table"]')?.setAttribute("role", selectable ? "grid" : "table");
288
- this.headEl.innerHTML = columns
289
- .map(column => {
290
- const align = column.align ? ` data-align="${column.align}"` : "";
291
- if (column.sortable) {
292
- const sort = sortKey === column.key ? ` aria-sort="${sortDir === "descending" ? "descending" : "ascending"}"` : ' aria-sort="none"';
293
- return `<th part="sortable" scope="col" data-key="${escapeHtml(column.key)}"${align}${sort}>${escapeHtml(column.label)}<span class="boe-sort-arrow" aria-hidden="true"></span></th>`;
294
- }
295
- return `<th scope="col"${align}>${escapeHtml(column.label)}</th>`;
296
- })
297
- .join("");
559
+ // A non-string detail is malformed input, not a crash: it gets no expander.
560
+ const expandable = rows.some(row => typeof row.detail === "string");
561
+ const columnCount = columns.length + (expandable ? 1 : 0);
562
+ const tableEl = this.shadowRoot?.querySelector('[part="table"]');
563
+ tableEl?.setAttribute("aria-label", this.label);
564
+ tableEl?.setAttribute("role", selectable ? "grid" : "table");
565
+ if (this.loading) {
566
+ tableEl?.setAttribute("aria-busy", "true");
567
+ }
568
+ else {
569
+ tableEl?.removeAttribute("aria-busy");
570
+ }
571
+ this.headEl.innerHTML =
572
+ (expandable ? `<th scope="col" aria-label="Row details"></th>` : "") +
573
+ columns
574
+ .map(column => {
575
+ const align = alignAttr(column.align);
576
+ if (column.sortable) {
577
+ const sorted = sortKey === column.key;
578
+ const sort = sorted
579
+ ? ` aria-sort="${sortDir === "descending" ? "descending" : "ascending"}"`
580
+ : ' aria-sort="none"';
581
+ // The state, in words as well as the arrow glyph.
582
+ const stateLabel = sorted
583
+ ? `, sorted ${sortDir === "descending" ? "descending" : "ascending"}`
584
+ : ", not sorted";
585
+ return `<th part="sortable" scope="col" data-key="${escapeHtml(column.key)}"${align}${sort}><button type="button" part="sort-button" aria-label="Sort by ${escapeHtml(column.label)}${stateLabel}">${escapeHtml(column.label)}<span class="boe-sort-arrow" aria-hidden="true"></span></button></th>`;
586
+ }
587
+ return `<th scope="col"${align}>${escapeHtml(column.label)}</th>`;
588
+ })
589
+ .join("");
590
+ // Loading, error, and empty are stated in words in the body — a blank
591
+ // grid reads as broken. Loading wins; a stale error must not outlive a
592
+ // retry that is visibly in flight.
593
+ if (this.loading) {
594
+ this.bodyEl.innerHTML = `<tr part="state-row" data-state="loading" role="row"><td role="${selectable ? "gridcell" : "cell"}" colspan="${String(columnCount)}"><span part="state-spinner" aria-hidden="true"></span>Loading rows…</td></tr>`;
595
+ return;
596
+ }
597
+ if (this.errorText) {
598
+ this.bodyEl.innerHTML = `<tr part="state-row" data-state="error" role="row"><td role="${selectable ? "gridcell" : "cell"}" colspan="${String(columnCount)}">${escapeHtml(this.errorText)}</td></tr>`;
599
+ return;
600
+ }
601
+ if (rows.length === 0) {
602
+ this.bodyEl.innerHTML = `<tr part="state-row" data-state="empty" role="row"><td role="${selectable ? "gridcell" : "cell"}" colspan="${String(columnCount)}">${escapeHtml(this.emptyText)}</td></tr>`;
603
+ return;
604
+ }
298
605
  this.bodyEl.innerHTML = rows
299
606
  .map((row, index) => {
300
607
  const selected = this.selected.has(row.id);
608
+ const cellRole = selectable ? ' role="gridcell"' : ' role="cell"';
301
609
  const rowAttrs = selectable
302
610
  ? ` part="row" role="row" tabindex="${index === 0 ? "0" : "-1"}" aria-selected="${selected}"`
303
611
  : ' part="row" role="row"';
612
+ const expanded = this.expandedIds.has(row.id);
613
+ const expanderCell = expandable
614
+ ? `<td${cellRole} part="expander-cell">${typeof row.detail === "string"
615
+ ? `<button type="button" part="expander" data-row-id="${escapeHtml(row.id)}" aria-expanded="${String(expanded)}" aria-label="${expanded ? "Hide" : "Show"} details for row ${escapeHtml(row.id)}"></button>`
616
+ : ""}</td>`
617
+ : "";
304
618
  const cells = columns
305
- .map(column => {
306
- const align = column.align ? ` data-align="${column.align}"` : "";
307
- const role = selectable ? ' role="gridcell"' : ' role="cell"';
308
- return `<td${align}${role}>${escapeHtml(this.cellText(row, column, columns.indexOf(column)))}</td>`;
619
+ .map((column, columnIndex) => {
620
+ const align = alignAttr(column.align);
621
+ const value = this.cellValue(row, column, columnIndex);
622
+ return `<td${align}${cellRole} data-label="${escapeHtml(column.label)}">${this.cellMarkup(value)}</td>`;
309
623
  })
310
624
  .join("");
311
- return `<tr${rowAttrs} data-index="${index}" data-id="${escapeHtml(row.id)}">${cells}</tr>`;
625
+ const rowMarkup = `<tr${rowAttrs} data-index="${index}" data-id="${escapeHtml(row.id)}">${expanderCell}${cells}</tr>`;
626
+ // The detail row renders only while expanded, keeping the roving
627
+ // tabindex and shift-range math on visible [part="row"] rows only.
628
+ const detailRow = typeof row.detail === "string" && expanded
629
+ ? `<tr part="detail-row" role="row" data-for="${escapeHtml(row.id)}"><td${cellRole} colspan="${String(columnCount)}">${escapeHtml(row.detail)}<slot name="detail-${escapeHtml(row.id)}"></slot></td></tr>`
630
+ : "";
631
+ return rowMarkup + detailRow;
312
632
  })
313
633
  .join("");
314
634
  }
315
635
  }
316
- export const defineBoxTableElement = (tagName = DEFAULT_TAG_NAME) => {
317
- const existingElement = customElements.get(tagName);
318
- if (existingElement) {
319
- return existingElement;
320
- }
321
- customElements.define(tagName, BoxTableElement);
322
- return BoxTableElement;
323
- };
636
+ Table.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxThumbnailCardElement extends BaseElement {
2
+ export declare class ThumbnailCard extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private cardEl;
5
6
  private titleEl;
@@ -16,4 +17,3 @@ export declare class BoxThumbnailCardElement extends BaseElement {
16
17
  private activate;
17
18
  protected update(): void;
18
19
  }
19
- export declare const defineBoxThumbnailCardElement: (tagName?: string) => typeof BoxThumbnailCardElement;
@@ -105,7 +105,8 @@ const thumbnailCardStyles = `
105
105
  display: none;
106
106
  }
107
107
  `;
108
- export class BoxThumbnailCardElement extends BaseElement {
108
+ export class ThumbnailCard extends BaseElement {
109
+ static tagName = DEFAULT_TAG_NAME;
109
110
  static get observedAttributes() {
110
111
  return ["title", "subtitle", "interactive", "highlight-on-hover"];
111
112
  }
@@ -200,11 +201,4 @@ export class BoxThumbnailCardElement extends BaseElement {
200
201
  }
201
202
  }
202
203
  }
203
- export const defineBoxThumbnailCardElement = (tagName = DEFAULT_TAG_NAME) => {
204
- const existingElement = customElements.get(tagName);
205
- if (existingElement) {
206
- return existingElement;
207
- }
208
- customElements.define(tagName, BoxThumbnailCardElement);
209
- return BoxThumbnailCardElement;
210
- };
204
+ ThumbnailCard.register();
@@ -9,7 +9,8 @@ type BoxTreeGridItem = {
9
9
  label: string;
10
10
  value: string;
11
11
  };
12
- export declare class BoxTreeGridElement extends BaseElement {
12
+ export declare class TreeGrid extends BaseElement {
13
+ static readonly tagName: string;
13
14
  static get observedAttributes(): string[];
14
15
  private expandedInternal;
15
16
  private valueInternal;
@@ -43,5 +44,4 @@ export declare class BoxTreeGridElement extends BaseElement {
43
44
  protected setupListeners(): void;
44
45
  protected update(): void;
45
46
  }
46
- export declare const defineBoxTreeGridElement: (tagName?: string) => typeof BoxTreeGridElement;
47
47
  export {};
@@ -220,7 +220,8 @@ const treeGridStyles = `
220
220
  color: var(--boe-token-text-text-secondary, #6f6f6f);
221
221
  }
222
222
  `;
223
- export class BoxTreeGridElement extends BaseElement {
223
+ export class TreeGrid extends BaseElement {
224
+ static tagName = DEFAULT_TAG_NAME;
224
225
  static get observedAttributes() {
225
226
  return ["columns", "items", "label", "value"];
226
227
  }
@@ -583,11 +584,4 @@ export class BoxTreeGridElement extends BaseElement {
583
584
  }
584
585
  }
585
586
  }
586
- export const defineBoxTreeGridElement = (tagName = DEFAULT_TAG_NAME) => {
587
- const existingElement = customElements.get(tagName);
588
- if (existingElement) {
589
- return existingElement;
590
- }
591
- customElements.define(tagName, BoxTreeGridElement);
592
- return BoxTreeGridElement;
593
- };
587
+ TreeGrid.register();
@@ -4,7 +4,8 @@ type BoxTreeItem = {
4
4
  label: string;
5
5
  value?: string;
6
6
  };
7
- export declare class BoxTreeElement extends BaseElement {
7
+ export declare class Tree extends BaseElement {
8
+ static readonly tagName: string;
8
9
  static get observedAttributes(): string[];
9
10
  private expandedInternal;
10
11
  private valueInternal;
@@ -33,5 +34,4 @@ export declare class BoxTreeElement extends BaseElement {
33
34
  protected setupListeners(): void;
34
35
  protected update(): void;
35
36
  }
36
- export declare const defineBoxTreeElement: (tagName?: string) => typeof BoxTreeElement;
37
37
  export {};
@@ -198,7 +198,8 @@ const treeStyles = `
198
198
  outline-offset: 2px;
199
199
  }
200
200
  `;
201
- export class BoxTreeElement extends BaseElement {
201
+ export class Tree extends BaseElement {
202
+ static tagName = DEFAULT_TAG_NAME;
202
203
  static get observedAttributes() {
203
204
  return ["items", "label", "value"];
204
205
  }
@@ -516,11 +517,4 @@ export class BoxTreeElement extends BaseElement {
516
517
  }
517
518
  }
518
519
  }
519
- export const defineBoxTreeElement = (tagName = DEFAULT_TAG_NAME) => {
520
- const existingElement = customElements.get(tagName);
521
- if (existingElement) {
522
- return existingElement;
523
- }
524
- customElements.define(tagName, BoxTreeElement);
525
- return BoxTreeElement;
526
- };
520
+ Tree.register();