@unofficialbox/box-open-elements 0.3.0 → 0.5.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 (488) hide show
  1. package/README.md +37 -12
  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 +11 -2
  9. package/dist/components/actions/link-button.js +58 -13
  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 +9 -2
  19. package/dist/components/collections/carousel.js +74 -13
  20. package/dist/components/collections/datalist-item.d.ts +8 -2
  21. package/dist/components/collections/datalist-item.js +42 -10
  22. package/dist/components/collections/draggable-list.d.ts +2 -2
  23. package/dist/components/collections/draggable-list.js +4 -10
  24. package/dist/components/collections/grid-view.d.ts +2 -2
  25. package/dist/components/collections/grid-view.js +10 -12
  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 +2 -2
  29. package/dist/components/collections/table.js +3 -9
  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 +4 -2
  37. package/dist/components/feedback/alert.js +33 -10
  38. package/dist/components/feedback/badge.d.ts +12 -2
  39. package/dist/components/feedback/badge.js +73 -13
  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 +7 -2
  43. package/dist/components/feedback/chip.js +77 -11
  44. package/dist/components/feedback/empty-state.d.ts +2 -2
  45. package/dist/components/feedback/empty-state.js +3 -9
  46. package/dist/components/feedback/error-mask.d.ts +4 -2
  47. package/dist/components/feedback/error-mask.js +26 -9
  48. package/dist/components/feedback/help-text.d.ts +2 -2
  49. package/dist/components/feedback/help-text.js +10 -9
  50. package/dist/components/feedback/nudge.d.ts +2 -2
  51. package/dist/components/feedback/nudge.js +3 -9
  52. package/dist/components/feedback/progress-bar.d.ts +2 -2
  53. package/dist/components/feedback/progress-bar.js +3 -9
  54. package/dist/components/feedback/progress-ring.d.ts +2 -2
  55. package/dist/components/feedback/progress-ring.js +3 -9
  56. package/dist/components/feedback/progress-steps.d.ts +2 -2
  57. package/dist/components/feedback/progress-steps.js +3 -9
  58. package/dist/components/feedback/skeleton.d.ts +2 -2
  59. package/dist/components/feedback/skeleton.js +3 -9
  60. package/dist/components/feedback/spinner.d.ts +6 -2
  61. package/dist/components/feedback/spinner.js +33 -11
  62. package/dist/components/feedback/toast.d.ts +7 -2
  63. package/dist/components/feedback/toast.js +62 -20
  64. package/dist/components/files/drop-zone.d.ts +2 -2
  65. package/dist/components/files/drop-zone.js +3 -9
  66. package/dist/components/forms/calendar.d.ts +2 -2
  67. package/dist/components/forms/calendar.js +3 -9
  68. package/dist/components/forms/category-selector.d.ts +13 -2
  69. package/dist/components/forms/category-selector.js +214 -26
  70. package/dist/components/forms/checkbox-group.d.ts +2 -2
  71. package/dist/components/forms/checkbox-group.js +3 -9
  72. package/dist/components/forms/checkbox.d.ts +8 -2
  73. package/dist/components/forms/checkbox.js +61 -10
  74. package/dist/components/forms/color-picker.d.ts +2 -2
  75. package/dist/components/forms/color-picker.js +3 -9
  76. package/dist/components/forms/combobox.d.ts +32 -3
  77. package/dist/components/forms/combobox.js +351 -53
  78. package/dist/components/forms/date-field.d.ts +9 -2
  79. package/dist/components/forms/date-field.js +76 -10
  80. package/dist/components/forms/dropdown.d.ts +7 -2
  81. package/dist/components/forms/dropdown.js +35 -12
  82. package/dist/components/forms/dual-listbox.d.ts +2 -2
  83. package/dist/components/forms/dual-listbox.js +3 -9
  84. package/dist/components/forms/fieldset.d.ts +2 -2
  85. package/dist/components/forms/fieldset.js +3 -9
  86. package/dist/components/forms/multi-select.d.ts +2 -2
  87. package/dist/components/forms/multi-select.js +3 -9
  88. package/dist/components/forms/number-input.d.ts +2 -2
  89. package/dist/components/forms/number-input.js +3 -9
  90. package/dist/components/forms/pill-cloud.d.ts +2 -2
  91. package/dist/components/forms/pill-cloud.js +3 -9
  92. package/dist/components/forms/pill-selector-dropdown.d.ts +2 -2
  93. package/dist/components/forms/pill-selector-dropdown.js +3 -9
  94. package/dist/components/forms/radio-group.d.ts +11 -10
  95. package/dist/components/forms/radio-group.js +46 -15
  96. package/dist/components/forms/range-slider.d.ts +2 -2
  97. package/dist/components/forms/range-slider.js +3 -9
  98. package/dist/components/forms/rating.d.ts +2 -2
  99. package/dist/components/forms/rating.js +3 -9
  100. package/dist/components/forms/rich-text-input.d.ts +2 -2
  101. package/dist/components/forms/rich-text-input.js +3 -9
  102. package/dist/components/forms/search-field.d.ts +10 -2
  103. package/dist/components/forms/search-field.js +58 -22
  104. package/dist/components/forms/select.d.ts +20 -10
  105. package/dist/components/forms/select.js +107 -23
  106. package/dist/components/forms/slider.d.ts +2 -2
  107. package/dist/components/forms/slider.js +3 -9
  108. package/dist/components/forms/spin-button.d.ts +2 -2
  109. package/dist/components/forms/spin-button.js +3 -9
  110. package/dist/components/forms/switch.d.ts +2 -2
  111. package/dist/components/forms/switch.js +3 -9
  112. package/dist/components/forms/tag-input.d.ts +2 -2
  113. package/dist/components/forms/tag-input.js +3 -9
  114. package/dist/components/forms/text-area.d.ts +2 -2
  115. package/dist/components/forms/text-area.js +3 -9
  116. package/dist/components/forms/text-field.d.ts +15 -2
  117. package/dist/components/forms/text-field.js +139 -10
  118. package/dist/components/forms/time-field.d.ts +13 -2
  119. package/dist/components/forms/time-field.js +54 -9
  120. package/dist/components/identity/avatar.d.ts +6 -2
  121. package/dist/components/identity/avatar.js +68 -10
  122. package/dist/components/identity/contact-datalist-item.d.ts +10 -2
  123. package/dist/components/identity/contact-datalist-item.js +74 -11
  124. package/dist/components/identity/persona.d.ts +2 -2
  125. package/dist/components/identity/persona.js +3 -9
  126. package/dist/components/layout/app-shell.d.ts +2 -2
  127. package/dist/components/layout/app-shell.js +3 -9
  128. package/dist/components/layout/divider.d.ts +2 -2
  129. package/dist/components/layout/divider.js +3 -9
  130. package/dist/components/layout/nav-sidebar.d.ts +2 -2
  131. package/dist/components/layout/nav-sidebar.js +26 -9
  132. package/dist/components/layout/section.d.ts +2 -2
  133. package/dist/components/layout/section.js +3 -9
  134. package/dist/components/layout/sidebar-toggle-button.d.ts +5 -2
  135. package/dist/components/layout/sidebar-toggle-button.js +24 -11
  136. package/dist/components/layout/split-view.d.ts +2 -2
  137. package/dist/components/layout/split-view.js +3 -9
  138. package/dist/components/navigation/accordion.d.ts +5 -2
  139. package/dist/components/navigation/accordion.js +20 -11
  140. package/dist/components/navigation/breadcrumb.d.ts +2 -2
  141. package/dist/components/navigation/breadcrumb.js +3 -9
  142. package/dist/components/navigation/tabs.d.ts +2 -2
  143. package/dist/components/navigation/tabs.js +3 -9
  144. package/dist/components/overlays/context-menu.d.ts +2 -2
  145. package/dist/components/overlays/context-menu.js +3 -9
  146. package/dist/components/overlays/dialog.d.ts +2 -2
  147. package/dist/components/overlays/dialog.js +3 -9
  148. package/dist/components/overlays/drawer.d.ts +2 -2
  149. package/dist/components/overlays/drawer.js +3 -9
  150. package/dist/components/overlays/guide-tooltip.d.ts +51 -0
  151. package/dist/components/overlays/guide-tooltip.js +355 -0
  152. package/dist/components/overlays/popover.d.ts +2 -2
  153. package/dist/components/overlays/popover.js +3 -9
  154. package/dist/components/overlays/tooltip.d.ts +12 -2
  155. package/dist/components/overlays/tooltip.js +77 -20
  156. package/dist/components/visuals/illustration.d.ts +2 -2
  157. package/dist/components/visuals/illustration.js +3 -9
  158. package/dist/core/element.d.ts +5 -1
  159. package/dist/core/element.js +29 -1
  160. package/dist/entries/access-stats.d.ts +1 -0
  161. package/dist/entries/access-stats.js +1 -0
  162. package/dist/entries/accordion.d.ts +1 -0
  163. package/dist/entries/accordion.js +1 -0
  164. package/dist/entries/alert.d.ts +1 -0
  165. package/dist/entries/alert.js +1 -0
  166. package/dist/entries/annotation-inspector.d.ts +1 -0
  167. package/dist/entries/annotation-inspector.js +1 -0
  168. package/dist/entries/annotation-thread.d.ts +1 -0
  169. package/dist/entries/annotation-thread.js +1 -0
  170. package/dist/entries/annotation-toolbar.d.ts +1 -0
  171. package/dist/entries/annotation-toolbar.js +1 -0
  172. package/dist/entries/app-shell.d.ts +1 -0
  173. package/dist/entries/app-shell.js +1 -0
  174. package/dist/entries/avatar.d.ts +1 -0
  175. package/dist/entries/avatar.js +1 -0
  176. package/dist/entries/badge.d.ts +1 -0
  177. package/dist/entries/badge.js +1 -0
  178. package/dist/entries/badgeable.d.ts +1 -0
  179. package/dist/entries/badgeable.js +1 -0
  180. package/dist/entries/bar-chart.d.ts +1 -0
  181. package/dist/entries/bar-chart.js +1 -0
  182. package/dist/entries/breadcrumb.d.ts +1 -0
  183. package/dist/entries/breadcrumb.js +1 -0
  184. package/dist/entries/bulk-action-bar.d.ts +1 -0
  185. package/dist/entries/bulk-action-bar.js +1 -0
  186. package/dist/entries/button-group.d.ts +1 -0
  187. package/dist/entries/button-group.js +1 -0
  188. package/dist/entries/button.d.ts +1 -0
  189. package/dist/entries/button.js +1 -0
  190. package/dist/entries/calendar.d.ts +1 -0
  191. package/dist/entries/calendar.js +1 -0
  192. package/dist/entries/card.d.ts +1 -0
  193. package/dist/entries/card.js +1 -0
  194. package/dist/entries/carousel.d.ts +1 -0
  195. package/dist/entries/carousel.js +1 -0
  196. package/dist/entries/category-selector.d.ts +1 -0
  197. package/dist/entries/category-selector.js +1 -0
  198. package/dist/entries/chart-panel.d.ts +1 -0
  199. package/dist/entries/chart-panel.js +1 -0
  200. package/dist/entries/checkbox-group.d.ts +1 -0
  201. package/dist/entries/checkbox-group.js +1 -0
  202. package/dist/entries/checkbox.d.ts +1 -0
  203. package/dist/entries/checkbox.js +1 -0
  204. package/dist/entries/chip.d.ts +1 -0
  205. package/dist/entries/chip.js +1 -0
  206. package/dist/entries/collaborator-avatars.d.ts +1 -0
  207. package/dist/entries/collaborator-avatars.js +1 -0
  208. package/dist/entries/color-picker.d.ts +1 -0
  209. package/dist/entries/color-picker.js +1 -0
  210. package/dist/entries/combobox.d.ts +1 -0
  211. package/dist/entries/combobox.js +1 -0
  212. package/dist/entries/contact-datalist-item.d.ts +1 -0
  213. package/dist/entries/contact-datalist-item.js +1 -0
  214. package/dist/entries/content-explorer.d.ts +1 -0
  215. package/dist/entries/content-explorer.js +1 -0
  216. package/dist/entries/context-menu.d.ts +1 -0
  217. package/dist/entries/context-menu.js +1 -0
  218. package/dist/entries/datalist-item.d.ts +1 -0
  219. package/dist/entries/datalist-item.js +1 -0
  220. package/dist/entries/date-field.d.ts +1 -0
  221. package/dist/entries/date-field.js +1 -0
  222. package/dist/entries/dialog.d.ts +1 -0
  223. package/dist/entries/dialog.js +1 -0
  224. package/dist/entries/divider.d.ts +1 -0
  225. package/dist/entries/divider.js +1 -0
  226. package/dist/entries/donut-chart.d.ts +1 -0
  227. package/dist/entries/donut-chart.js +1 -0
  228. package/dist/entries/draggable-list.d.ts +1 -0
  229. package/dist/entries/draggable-list.js +1 -0
  230. package/dist/entries/drawer.d.ts +1 -0
  231. package/dist/entries/drawer.js +1 -0
  232. package/dist/entries/drop-zone.d.ts +1 -0
  233. package/dist/entries/drop-zone.js +1 -0
  234. package/dist/entries/dropdown.d.ts +1 -0
  235. package/dist/entries/dropdown.js +1 -0
  236. package/dist/entries/dual-listbox.d.ts +1 -0
  237. package/dist/entries/dual-listbox.js +1 -0
  238. package/dist/entries/empty-state.d.ts +1 -0
  239. package/dist/entries/empty-state.js +1 -0
  240. package/dist/entries/error-mask.d.ts +1 -0
  241. package/dist/entries/error-mask.js +1 -0
  242. package/dist/entries/explorer-action-menu.d.ts +1 -0
  243. package/dist/entries/explorer-action-menu.js +1 -0
  244. package/dist/entries/explorer-breadcrumbs.d.ts +1 -0
  245. package/dist/entries/explorer-breadcrumbs.js +1 -0
  246. package/dist/entries/explorer-items.d.ts +1 -0
  247. package/dist/entries/explorer-items.js +1 -0
  248. package/dist/entries/explorer-list.d.ts +1 -0
  249. package/dist/entries/explorer-list.js +1 -0
  250. package/dist/entries/explorer-table.d.ts +1 -0
  251. package/dist/entries/explorer-table.js +1 -0
  252. package/dist/entries/explorer-toolbar.d.ts +1 -0
  253. package/dist/entries/explorer-toolbar.js +1 -0
  254. package/dist/entries/fieldset.d.ts +1 -0
  255. package/dist/entries/fieldset.js +1 -0
  256. package/dist/entries/file-request-builder.d.ts +1 -0
  257. package/dist/entries/file-request-builder.js +1 -0
  258. package/dist/entries/filter-bar.d.ts +1 -0
  259. package/dist/entries/filter-bar.js +1 -0
  260. package/dist/entries/governance-panel.d.ts +1 -0
  261. package/dist/entries/governance-panel.js +1 -0
  262. package/dist/entries/grid-view.d.ts +1 -0
  263. package/dist/entries/grid-view.js +1 -0
  264. package/dist/entries/guide-tooltip.d.ts +1 -0
  265. package/dist/entries/guide-tooltip.js +1 -0
  266. package/dist/entries/help-text.d.ts +1 -0
  267. package/dist/entries/help-text.js +1 -0
  268. package/dist/entries/icon-button.d.ts +1 -0
  269. package/dist/entries/icon-button.js +1 -0
  270. package/dist/entries/illustration.d.ts +1 -0
  271. package/dist/entries/illustration.js +1 -0
  272. package/dist/entries/invite-collaborators-modal.d.ts +1 -0
  273. package/dist/entries/invite-collaborators-modal.js +1 -0
  274. package/dist/entries/item-details-panel.d.ts +1 -0
  275. package/dist/entries/item-details-panel.js +1 -0
  276. package/dist/entries/item-form.d.ts +1 -0
  277. package/dist/entries/item-form.js +1 -0
  278. package/dist/entries/line-chart.d.ts +1 -0
  279. package/dist/entries/line-chart.js +1 -0
  280. package/dist/entries/link-button.d.ts +1 -0
  281. package/dist/entries/link-button.js +1 -0
  282. package/dist/entries/menu-item.d.ts +1 -0
  283. package/dist/entries/menu-item.js +1 -0
  284. package/dist/entries/menu.d.ts +1 -0
  285. package/dist/entries/menu.js +1 -0
  286. package/dist/entries/metadata-filter-builder.d.ts +1 -0
  287. package/dist/entries/metadata-filter-builder.js +1 -0
  288. package/dist/entries/metadata-inspector.d.ts +1 -0
  289. package/dist/entries/metadata-inspector.js +1 -0
  290. package/dist/entries/metric-card.d.ts +1 -0
  291. package/dist/entries/metric-card.js +1 -0
  292. package/dist/entries/multi-select.d.ts +1 -0
  293. package/dist/entries/multi-select.js +1 -0
  294. package/dist/entries/nav-sidebar.d.ts +1 -0
  295. package/dist/entries/nav-sidebar.js +1 -0
  296. package/dist/entries/nudge.d.ts +1 -0
  297. package/dist/entries/nudge.js +1 -0
  298. package/dist/entries/number-input.d.ts +1 -0
  299. package/dist/entries/number-input.js +1 -0
  300. package/dist/entries/pagination.d.ts +1 -0
  301. package/dist/entries/pagination.js +1 -0
  302. package/dist/entries/permission-matrix.d.ts +1 -0
  303. package/dist/entries/permission-matrix.js +1 -0
  304. package/dist/entries/persona.d.ts +1 -0
  305. package/dist/entries/persona.js +1 -0
  306. package/dist/entries/pill-cloud.d.ts +1 -0
  307. package/dist/entries/pill-cloud.js +1 -0
  308. package/dist/entries/pill-selector-dropdown.d.ts +1 -0
  309. package/dist/entries/pill-selector-dropdown.js +1 -0
  310. package/dist/entries/popover.d.ts +1 -0
  311. package/dist/entries/popover.js +1 -0
  312. package/dist/entries/presence.d.ts +1 -0
  313. package/dist/entries/presence.js +1 -0
  314. package/dist/entries/preview-header.d.ts +1 -0
  315. package/dist/entries/preview-header.js +1 -0
  316. package/dist/entries/preview.d.ts +1 -0
  317. package/dist/entries/preview.js +1 -0
  318. package/dist/entries/progress-bar.d.ts +1 -0
  319. package/dist/entries/progress-bar.js +1 -0
  320. package/dist/entries/progress-ring.d.ts +1 -0
  321. package/dist/entries/progress-ring.js +1 -0
  322. package/dist/entries/progress-steps.d.ts +1 -0
  323. package/dist/entries/progress-steps.js +1 -0
  324. package/dist/entries/radio-group.d.ts +1 -0
  325. package/dist/entries/radio-group.js +1 -0
  326. package/dist/entries/range-slider.d.ts +1 -0
  327. package/dist/entries/range-slider.js +1 -0
  328. package/dist/entries/rating.d.ts +1 -0
  329. package/dist/entries/rating.js +1 -0
  330. package/dist/entries/review-queue-item.d.ts +1 -0
  331. package/dist/entries/review-queue-item.js +1 -0
  332. package/dist/entries/rich-text-input.d.ts +1 -0
  333. package/dist/entries/rich-text-input.js +1 -0
  334. package/dist/entries/saved-view-picker.d.ts +1 -0
  335. package/dist/entries/saved-view-picker.js +1 -0
  336. package/dist/entries/search-field.d.ts +1 -0
  337. package/dist/entries/search-field.js +1 -0
  338. package/dist/entries/search-results-header.d.ts +1 -0
  339. package/dist/entries/search-results-header.js +1 -0
  340. package/dist/entries/section.d.ts +1 -0
  341. package/dist/entries/section.js +1 -0
  342. package/dist/entries/segmented-control.d.ts +1 -0
  343. package/dist/entries/segmented-control.js +1 -0
  344. package/dist/entries/select.d.ts +1 -0
  345. package/dist/entries/select.js +1 -0
  346. package/dist/entries/share-panel.d.ts +1 -0
  347. package/dist/entries/share-panel.js +1 -0
  348. package/dist/entries/sidebar-toggle-button.d.ts +1 -0
  349. package/dist/entries/sidebar-toggle-button.js +1 -0
  350. package/dist/entries/skeleton.d.ts +1 -0
  351. package/dist/entries/skeleton.js +1 -0
  352. package/dist/entries/slider.d.ts +1 -0
  353. package/dist/entries/slider.js +1 -0
  354. package/dist/entries/spin-button.d.ts +1 -0
  355. package/dist/entries/spin-button.js +1 -0
  356. package/dist/entries/spinner.d.ts +1 -0
  357. package/dist/entries/spinner.js +1 -0
  358. package/dist/entries/split-view.d.ts +1 -0
  359. package/dist/entries/split-view.js +1 -0
  360. package/dist/entries/switch.d.ts +1 -0
  361. package/dist/entries/switch.js +1 -0
  362. package/dist/entries/table.d.ts +1 -0
  363. package/dist/entries/table.js +1 -0
  364. package/dist/entries/tabs.d.ts +1 -0
  365. package/dist/entries/tabs.js +1 -0
  366. package/dist/entries/tag-input.d.ts +1 -0
  367. package/dist/entries/tag-input.js +1 -0
  368. package/dist/entries/task-assignment-panel.d.ts +1 -0
  369. package/dist/entries/task-assignment-panel.js +1 -0
  370. package/dist/entries/text-area.d.ts +1 -0
  371. package/dist/entries/text-area.js +1 -0
  372. package/dist/entries/text-field.d.ts +1 -0
  373. package/dist/entries/text-field.js +1 -0
  374. package/dist/entries/thumbnail-card.d.ts +1 -0
  375. package/dist/entries/thumbnail-card.js +1 -0
  376. package/dist/entries/time-field.d.ts +1 -0
  377. package/dist/entries/time-field.js +1 -0
  378. package/dist/entries/toast.d.ts +1 -0
  379. package/dist/entries/toast.js +1 -0
  380. package/dist/entries/tooltip.d.ts +1 -0
  381. package/dist/entries/tooltip.js +1 -0
  382. package/dist/entries/tree-grid.d.ts +1 -0
  383. package/dist/entries/tree-grid.js +1 -0
  384. package/dist/entries/tree.d.ts +1 -0
  385. package/dist/entries/tree.js +1 -0
  386. package/dist/entries/unified-share-modal.d.ts +1 -0
  387. package/dist/entries/unified-share-modal.js +1 -0
  388. package/dist/foundations/geometry/tokens.d.ts +46 -45
  389. package/dist/foundations/geometry/tokens.js +46 -45
  390. package/dist/foundations/motion/tokens.d.ts +10 -10
  391. package/dist/foundations/motion/tokens.js +10 -10
  392. package/dist/foundations/overlay/positioning.js +5 -1
  393. package/dist/foundations/profiles/built-ins.d.ts +4 -0
  394. package/dist/foundations/profiles/built-ins.js +131 -0
  395. package/dist/foundations/profiles/controller.d.ts +4 -0
  396. package/dist/foundations/profiles/controller.js +107 -0
  397. package/dist/foundations/profiles/index.d.ts +4 -0
  398. package/dist/foundations/profiles/index.js +3 -0
  399. package/dist/foundations/profiles/registry.d.ts +72 -0
  400. package/dist/foundations/profiles/registry.js +119 -0
  401. package/dist/foundations/profiles/types.d.ts +94 -0
  402. package/dist/foundations/profiles/types.js +1 -0
  403. package/dist/foundations/theming/controller.d.ts +37 -0
  404. package/dist/foundations/theming/controller.js +176 -0
  405. package/dist/foundations/theming/index.d.ts +2 -0
  406. package/dist/foundations/theming/index.js +1 -0
  407. package/dist/foundations/tokens/box-dark.d.ts +3 -3
  408. package/dist/foundations/tokens/box-defaults.d.ts +3 -3
  409. package/dist/foundations/tokens/index.d.ts +2 -2
  410. package/dist/foundations/tokens/index.js +1 -1
  411. package/dist/foundations/tokens/registry.d.ts +37 -7
  412. package/dist/foundations/tokens/registry.js +55 -5
  413. package/dist/foundations/tokens/types.d.ts +38 -1
  414. package/dist/index.d.ts +7 -2
  415. package/dist/index.js +4 -1
  416. package/dist/patterns/content-explorer/adapters/action-menu.d.ts +2 -2
  417. package/dist/patterns/content-explorer/adapters/action-menu.js +3 -9
  418. package/dist/patterns/content-explorer/adapters/breadcrumbs.d.ts +2 -2
  419. package/dist/patterns/content-explorer/adapters/breadcrumbs.js +3 -9
  420. package/dist/patterns/content-explorer/adapters/items.d.ts +3 -3
  421. package/dist/patterns/content-explorer/adapters/items.js +4 -10
  422. package/dist/patterns/content-explorer/adapters/list.d.ts +2 -2
  423. package/dist/patterns/content-explorer/adapters/list.js +3 -9
  424. package/dist/patterns/content-explorer/adapters/table.d.ts +2 -2
  425. package/dist/patterns/content-explorer/adapters/table.js +3 -9
  426. package/dist/patterns/content-explorer/adapters/toolbar.d.ts +2 -2
  427. package/dist/patterns/content-explorer/adapters/toolbar.js +7 -13
  428. package/dist/patterns/content-explorer/content-explorer.d.ts +15 -15
  429. package/dist/patterns/content-explorer/content-explorer.js +5 -11
  430. package/dist/patterns/file-request/file-request-builder.d.ts +2 -2
  431. package/dist/patterns/file-request/file-request-builder.js +3 -9
  432. package/dist/patterns/governance/governance-panel.d.ts +2 -2
  433. package/dist/patterns/governance/governance-panel.js +3 -6
  434. package/dist/patterns/insights/bar-chart.d.ts +2 -2
  435. package/dist/patterns/insights/bar-chart.js +3 -6
  436. package/dist/patterns/insights/chart-panel.d.ts +2 -2
  437. package/dist/patterns/insights/chart-panel.js +3 -6
  438. package/dist/patterns/insights/donut-chart.d.ts +2 -2
  439. package/dist/patterns/insights/donut-chart.js +3 -6
  440. package/dist/patterns/insights/line-chart.d.ts +2 -2
  441. package/dist/patterns/insights/line-chart.js +3 -6
  442. package/dist/patterns/insights/metric-card.d.ts +2 -2
  443. package/dist/patterns/insights/metric-card.js +3 -6
  444. package/dist/patterns/item/bulk-action-bar.d.ts +2 -2
  445. package/dist/patterns/item/bulk-action-bar.js +3 -6
  446. package/dist/patterns/item/item-details-panel.d.ts +2 -2
  447. package/dist/patterns/item/item-details-panel.js +3 -9
  448. package/dist/patterns/item/item-form.d.ts +2 -2
  449. package/dist/patterns/item/item-form.js +3 -9
  450. package/dist/patterns/item/preview-header.d.ts +2 -2
  451. package/dist/patterns/item/preview-header.js +3 -9
  452. package/dist/patterns/metadata/metadata-filter-builder.d.ts +2 -2
  453. package/dist/patterns/metadata/metadata-filter-builder.js +3 -9
  454. package/dist/patterns/metadata/metadata-inspector.d.ts +2 -2
  455. package/dist/patterns/metadata/metadata-inspector.js +3 -9
  456. package/dist/patterns/preview/annotation-inspector.d.ts +2 -2
  457. package/dist/patterns/preview/annotation-inspector.js +3 -9
  458. package/dist/patterns/preview/annotation-thread.d.ts +2 -2
  459. package/dist/patterns/preview/annotation-thread.js +3 -9
  460. package/dist/patterns/preview/annotation-toolbar.d.ts +2 -2
  461. package/dist/patterns/preview/annotation-toolbar.js +3 -9
  462. package/dist/patterns/preview/preview-element.d.ts +2 -2
  463. package/dist/patterns/preview/preview-element.js +3 -9
  464. package/dist/patterns/search/filter-bar.d.ts +2 -2
  465. package/dist/patterns/search/filter-bar.js +3 -9
  466. package/dist/patterns/search/saved-view-picker.d.ts +2 -2
  467. package/dist/patterns/search/saved-view-picker.js +3 -9
  468. package/dist/patterns/search/search-results-header.d.ts +2 -2
  469. package/dist/patterns/search/search-results-header.js +3 -9
  470. package/dist/patterns/share/access-stats.d.ts +2 -2
  471. package/dist/patterns/share/access-stats.js +3 -9
  472. package/dist/patterns/share/collaborator-avatars.d.ts +2 -2
  473. package/dist/patterns/share/collaborator-avatars.js +3 -9
  474. package/dist/patterns/share/invite-collaborators-modal.d.ts +2 -2
  475. package/dist/patterns/share/invite-collaborators-modal.js +3 -9
  476. package/dist/patterns/share/permission-matrix.d.ts +2 -2
  477. package/dist/patterns/share/permission-matrix.js +3 -9
  478. package/dist/patterns/share/presence.d.ts +2 -2
  479. package/dist/patterns/share/presence.js +3 -9
  480. package/dist/patterns/share/share-panel.d.ts +2 -2
  481. package/dist/patterns/share/share-panel.js +3 -9
  482. package/dist/patterns/share/unified-share-modal.d.ts +2 -2
  483. package/dist/patterns/share/unified-share-modal.js +3 -9
  484. package/dist/patterns/task/review-queue-item.d.ts +2 -2
  485. package/dist/patterns/task/review-queue-item.js +3 -6
  486. package/dist/patterns/task/task-assignment-panel.d.ts +2 -2
  487. package/dist/patterns/task/task-assignment-panel.js +3 -6
  488. package/package.json +5 -1
package/README.md CHANGED
@@ -1,7 +1,15 @@
1
+ <p align="center">
2
+ <a href="https://unofficialbox.github.io/box-open-elements">
3
+ <img src="https://raw.githubusercontent.com/unofficialbox/box-open-elements/main/assets/banner.svg" alt="Box Open Elements — framework-agnostic Web Components that track Box's design language" width="100%">
4
+ </a>
5
+ </p>
6
+
1
7
  # box-open-elements
2
8
 
3
9
  `box-open-elements` is an open, framework-agnostic design system and web component library for Box-style experiences.
4
10
 
11
+ > **Community project — not affiliated with, authorized, or endorsed by Box, Inc.** “Box” is a trademark of Box, Inc. This library tracks Box’s public design language for interoperability; it ships no Box code.
12
+
5
13
  It is a ground-up rebuild of [`box-open-web-components`](https://github.com/unofficialbox/box-open-web-components), carrying forward that repo's validated architecture, docs, and research — without its accumulated baggage — under a new industry-standard taxonomy:
6
14
 
7
15
  - **Foundations** — design decisions as data: tokens, color, typography, iconography, accessibility, theming
@@ -18,6 +26,16 @@ The guiding idea is unchanged: predictable, extensible building blocks that are
18
26
  - accessibility semantics and keyboard support as part of the component contract
19
27
  - injected transport contracts instead of SDK coupling
20
28
 
29
+ ## Preview
30
+
31
+ [![The box-open-elements documentation site](https://raw.githubusercontent.com/unofficialbox/box-open-elements/main/docs/screenshots/docs-site/home.png)](https://unofficialbox.github.io/box-open-elements)
32
+
33
+ The **[live docs site](https://unofficialbox.github.io/box-open-elements)** browses the full catalog with live previews, an events/properties inspector, per-framework code snippets (React / Angular / Vue / Svelte / HTML), and the foundations pages.
34
+
35
+ Components track Box’s design language out of the box — tokens-driven, light and dark, keyboard-accessible:
36
+
37
+ ![A selection of form components — text field, search, select, checkboxes, radios, and a pill-selector dropdown](https://raw.githubusercontent.com/unofficialbox/box-open-elements/main/docs/screenshots/gallery/forms.png)
38
+
21
39
  ## Setup
22
40
 
23
41
  This package uses Bun as its package manager and task runner.
@@ -48,13 +66,14 @@ Full catalog parity with the reference repo, plus every scoped gap the research
48
66
  - `src/core` — typed event emitter, controller base class, `BaseElement` (in-place shadow DOM render contract), and `FormAssociatedElement` (native form participation + invalid state)
49
67
  - `src/foundations/tokens` — the design-system registry (tokens, icons, illustrations), the Box default bundle, and the Box dark bundle, retoned to Box's modernized Blueprint palette with an Inter typography baseline; shared interaction helpers (`interaction.ts`) for focus/hover/active/disabled
50
68
  - `src/foundations/motion` — shared duration/easing vocabulary and reduced-motion CSS helper
69
+ - `src/foundations/profiles` — typed runtime profiles for density, geometry, typography, elevation, and motion
51
70
  - `src/foundations/icons` — the generated Box iconography manifest and alias layer
52
71
  - `tools/style-bridge` — CSS/SCSS → BOE token/selector bridge (`bun run style-bridge`; BUE explorer: `bun run style-bridge:bue-explorer`)
53
- - `src/components` — 72 components across all ten categories, including the Phase 5 gap fills (`box-chip`, `box-divider`, `box-calendar`, `box-tag-input`, `box-nav-sidebar`, `box-sidebar-toggle-button`, `box-grid-view`, `box-fieldset`, `box-section`, `box-error-mask`, `box-draggable-list`, `box-nudge`, `box-pill-cloud`, `box-pill-selector-dropdown`, `box-datalist-item`, `box-contact-datalist-item`, `box-category-selector`)
72
+ - `src/components` — 78 components across all ten categories, including the Phase 5 gap fills (`box-chip`, `box-divider`, `box-calendar`, `box-tag-input`, `box-nav-sidebar`, `box-sidebar-toggle-button`, `box-grid-view`, `box-fieldset`, `box-section`, `box-error-mask`, `box-draggable-list`, `box-nudge`, `box-pill-cloud`, `box-pill-selector-dropdown`, `box-datalist-item`, `box-contact-datalist-item`, `box-category-selector`)
54
73
  - `src/patterns/content-explorer` — the full headless explorer stack (collection, navigation, selection, actions, facade controller, data-source contracts, Box transport, wire schemas) plus the `box-explorer-*` presentation adapters and the composed `box-content-explorer` surface
55
74
  - `src/patterns/{search,item,metadata,share,preview,file-request,task,governance,insights}` — all nine composition/workflow areas, including contracts and wire schemas for metadata and share, the provider-neutral preview adapter stack, the pluggable `box-preview-element`, and the share workflows (`box-presence`, `box-invite-collaborators-modal`, `box-unified-share-modal`, `box-access-stats`, `box-collaborator-avatars`)
56
75
  - `packages/box-server` — a dependency-free server-side adapter: CCG auth + REST client, Box-backed explorer/share/metadata data sources, DTO mappers, and framework-neutral route handlers (see [docs/integration/box-server.md](./docs/integration/box-server.md))
57
- - `packages/react` — optional React wrappers (`@box-open-elements/react`); the validated surface ships `BoxButton`, `BoxTextField`, and `BoxSelect`. React, Angular, Vue, and Svelte progress is tracked in [docs/integration/framework-adapters.md](./docs/integration/framework-adapters.md).
76
+ - `packages/react` — optional React wrappers (`@box-open-elements/react`); the validated surface ships `Button`, `TextField`, and `Select`. React, Angular, Vue, and Svelte progress is tracked in [docs/integration/framework-adapters.md](./docs/integration/framework-adapters.md).
58
77
  - `storybook/` — a Bun-native workshop: typed stories → identity-guarded extracted JSON → a self-contained, separately-deployable static site, with no Storybook/Vite runtime or consumer dependency (see [storybook/README.md](./storybook/README.md))
59
78
  - Docs site + CI — live GitHub Pages deploy, Storybook-backed variant dropdown, and a strict pixel-diff visual-regression gate in CI
60
79
 
@@ -66,14 +85,12 @@ Everything in the [components catalog](./docs/components/catalog.md) and [patter
66
85
 
67
86
  ```ts
68
87
  import {
69
- applyDesignTokens,
70
- registerBoxDefaultDesignSystem,
71
- } from "@unofficialbox/box-open-elements/foundations/tokens";
72
- import { defineBoxButtonElement } from "@unofficialbox/box-open-elements/components/actions/button";
73
-
74
- registerBoxDefaultDesignSystem({ setActive: true });
75
- applyDesignTokens(document.documentElement, "box-default");
76
- defineBoxButtonElement();
88
+ createThemeController,
89
+ } from "@unofficialbox/box-open-elements/foundations/theming";
90
+ import { Button } from "@unofficialbox/box-open-elements";
91
+
92
+ const theme = createThemeController();
93
+ theme.start();
77
94
  ```
78
95
 
79
96
  ```html
@@ -104,10 +121,18 @@ Workflow patterns begin as headless behavior and gain presentation adapters, so
104
121
  - root exports: `@unofficialbox/box-open-elements`
105
122
  - shared runtime: `@unofficialbox/box-open-elements/core`
106
123
  - foundations: `@unofficialbox/box-open-elements/foundations/<module>`
107
- - components: `@unofficialbox/box-open-elements/components/<category>/<name>`
124
+ - optimized component entrypoints: `@unofficialbox/box-open-elements/<name>`
108
125
  - patterns: `@unofficialbox/box-open-elements/patterns/<area>` and `@unofficialbox/box-open-elements/patterns/<area>/<module>`
109
126
 
110
- New exports follow the wildcard contract by default instead of adding explicit `package.json` entries. See [docs/api-guidelines.md](./docs/api-guidelines.md).
127
+ The root entrypoint is the concise convenience API and registers the full
128
+ catalog. Flat component entrypoints register only the imported component:
129
+
130
+ ```ts
131
+ import { Accordion, Avatar, Button, Switch } from "@unofficialbox/box-open-elements";
132
+ import { TextField } from "@unofficialbox/box-open-elements/text-field";
133
+ ```
134
+
135
+ See [docs/api-guidelines.md](./docs/api-guidelines.md).
111
136
 
112
137
  ## Documentation
113
138
 
@@ -3,7 +3,8 @@ export interface ButtonGroupOption {
3
3
  label: string;
4
4
  value: string;
5
5
  }
6
- export declare class BoxButtonGroupElement extends BaseElement {
6
+ export declare class ButtonGroup extends BaseElement {
7
+ static readonly tagName: string;
7
8
  static get observedAttributes(): string[];
8
9
  private valueInternal;
9
10
  private groupEl;
@@ -19,4 +20,3 @@ export declare class BoxButtonGroupElement extends BaseElement {
19
20
  protected renderTemplate(): void;
20
21
  protected update(): void;
21
22
  }
22
- export declare const defineBoxButtonGroupElement: (tagName?: string) => typeof BoxButtonGroupElement;
@@ -91,7 +91,8 @@ const buttonGroupStyles = `
91
91
  opacity: 0.55;
92
92
  }
93
93
  `;
94
- export class BoxButtonGroupElement extends BaseElement {
94
+ export class ButtonGroup extends BaseElement {
95
+ static tagName = DEFAULT_TAG_NAME;
95
96
  static get observedAttributes() {
96
97
  return ["label", "layout", "options", "value"];
97
98
  }
@@ -245,11 +246,4 @@ export class BoxButtonGroupElement extends BaseElement {
245
246
  });
246
247
  }
247
248
  }
248
- export const defineBoxButtonGroupElement = (tagName = DEFAULT_TAG_NAME) => {
249
- const existingElement = customElements.get(tagName);
250
- if (existingElement) {
251
- return existingElement;
252
- }
253
- customElements.define(tagName, BoxButtonGroupElement);
254
- return BoxButtonGroupElement;
255
- };
249
+ ButtonGroup.register();
@@ -1,6 +1,7 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
2
  export type ButtonType = "button" | "submit" | "reset";
3
- export declare class BoxButtonElement extends BaseElement {
3
+ export declare class Button extends BaseElement {
4
+ static readonly tagName: string;
4
5
  static formAssociated: boolean;
5
6
  static get observedAttributes(): string[];
6
7
  private buttonEl;
@@ -28,4 +29,3 @@ export declare class BoxButtonElement extends BaseElement {
28
29
  private syncIconVisibility;
29
30
  protected update(): void;
30
31
  }
31
- export declare const defineBoxButtonElement: (tagName?: string) => typeof BoxButtonElement;
@@ -163,7 +163,8 @@ const buttonStyles = `
163
163
  [part="spinner"] { animation-duration: 1.6s; }
164
164
  }
165
165
  `;
166
- export class BoxButtonElement extends BaseElement {
166
+ export class Button extends BaseElement {
167
+ static tagName = DEFAULT_TAG_NAME;
167
168
  static formAssociated = true;
168
169
  static get observedAttributes() {
169
170
  return ["disabled", "label", "size", "tone", "is-loading", "type"];
@@ -284,11 +285,4 @@ export class BoxButtonElement extends BaseElement {
284
285
  this.syncIconVisibility();
285
286
  }
286
287
  }
287
- export const defineBoxButtonElement = (tagName = DEFAULT_TAG_NAME) => {
288
- const existingElement = customElements.get(tagName);
289
- if (existingElement) {
290
- return existingElement;
291
- }
292
- customElements.define(tagName, BoxButtonElement);
293
- return BoxButtonElement;
294
- };
288
+ Button.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxIconButtonElement extends BaseElement {
2
+ export declare class IconButton extends BaseElement {
3
+ static readonly tagName: string;
3
4
  private readonly handleDesignSystemChange;
4
5
  static get observedAttributes(): string[];
5
6
  private buttonEl;
@@ -17,4 +18,3 @@ export declare class BoxIconButtonElement extends BaseElement {
17
18
  protected renderTemplate(): void;
18
19
  protected update(): void;
19
20
  }
20
- export declare const defineBoxIconButtonElement: (tagName?: string) => typeof BoxIconButtonElement;
@@ -98,7 +98,8 @@ const iconButtonStyles = `
98
98
  fill: currentColor;
99
99
  }
100
100
  `;
101
- export class BoxIconButtonElement extends BaseElement {
101
+ export class IconButton extends BaseElement {
102
+ static tagName = DEFAULT_TAG_NAME;
102
103
  handleDesignSystemChange = () => {
103
104
  if (this.isRendered) {
104
105
  this.update();
@@ -177,11 +178,4 @@ export class BoxIconButtonElement extends BaseElement {
177
178
  this.iconEl.innerHTML = iconMarkup;
178
179
  }
179
180
  }
180
- export const defineBoxIconButtonElement = (tagName = DEFAULT_TAG_NAME) => {
181
- const existingElement = customElements.get(tagName);
182
- if (existingElement) {
183
- return existingElement;
184
- }
185
- customElements.define(tagName, BoxIconButtonElement);
186
- return BoxIconButtonElement;
187
- };
181
+ IconButton.register();
@@ -1,7 +1,16 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxLinkButtonElement extends BaseElement {
2
+ export declare class LinkButton extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private linkEl;
6
+ private labelEl;
7
+ private contentSlot;
8
+ /** Anchor target (e.g. `_blank`). Opening a new tab auto-adds a safe rel. */
9
+ get target(): string;
10
+ set target(value: string);
11
+ /** Explicit rel; defaults to `noopener noreferrer` when target is `_blank`. */
12
+ get rel(): string;
13
+ set rel(value: string);
5
14
  get href(): string;
6
15
  set href(value: string);
7
16
  get label(): string;
@@ -9,6 +18,6 @@ export declare class BoxLinkButtonElement extends BaseElement {
9
18
  get tone(): string;
10
19
  set tone(value: string);
11
20
  protected renderTemplate(): void;
21
+ protected setupListeners(): void;
12
22
  protected update(): void;
13
23
  }
14
- export declare const defineBoxLinkButtonElement: (tagName?: string) => typeof BoxLinkButtonElement;
@@ -84,11 +84,28 @@ const linkButtonStyles = `
84
84
  color: var(--boe-token-surface-status-surface-error, #ed3757);
85
85
  }
86
86
  `;
87
- export class BoxLinkButtonElement extends BaseElement {
87
+ export class LinkButton extends BaseElement {
88
+ static tagName = DEFAULT_TAG_NAME;
88
89
  static get observedAttributes() {
89
- return ["href", "label", "tone"];
90
+ return ["href", "label", "tone", "target", "rel"];
90
91
  }
91
92
  linkEl;
93
+ labelEl;
94
+ contentSlot;
95
+ /** Anchor target (e.g. `_blank`). Opening a new tab auto-adds a safe rel. */
96
+ get target() {
97
+ return this.getAttribute("target") ?? "";
98
+ }
99
+ set target(value) {
100
+ this.setAttribute("target", value);
101
+ }
102
+ /** Explicit rel; defaults to `noopener noreferrer` when target is `_blank`. */
103
+ get rel() {
104
+ return this.getAttribute("rel") ?? "";
105
+ }
106
+ set rel(value) {
107
+ this.setAttribute("rel", value);
108
+ }
92
109
  get href() {
93
110
  return this.getAttribute("href") ?? "#";
94
111
  }
@@ -113,9 +130,18 @@ export class BoxLinkButtonElement extends BaseElement {
113
130
  }
114
131
  this.shadowRoot.innerHTML = `
115
132
  <style>${linkButtonStyles}</style>
116
- <a part="link"></a>
133
+ <a part="link"><slot><span part="label"></span></slot></a>
117
134
  `;
118
135
  this.linkEl = this.shadowRoot.querySelector('[part="link"]');
136
+ this.contentSlot = this.shadowRoot.querySelector("slot");
137
+ this.labelEl = this.shadowRoot.querySelector('[part="label"]');
138
+ }
139
+ setupListeners() {
140
+ this.contentSlot.addEventListener("slotchange", () => {
141
+ if (this.isRendered) {
142
+ this.update();
143
+ }
144
+ });
119
145
  }
120
146
  update() {
121
147
  if (!this.linkEl) {
@@ -123,15 +149,34 @@ export class BoxLinkButtonElement extends BaseElement {
123
149
  }
124
150
  this.linkEl.dataset.tone = this.tone;
125
151
  this.linkEl.setAttribute("href", escapeHtml(safeHref(this.href)));
126
- this.linkEl.setAttribute("aria-label", this.label);
127
- this.linkEl.textContent = this.label;
152
+ // Rich children (slotted) replace the `label` text; keep the fallback in
153
+ // sync. Detect real host content only — assignedNodes() without flatten
154
+ // excludes the fallback span; ignore whitespace-only text nodes.
155
+ const hasSlotted = this.contentSlot
156
+ .assignedNodes()
157
+ .some(node => node.nodeType === Node.ELEMENT_NODE || (node.textContent ?? "").trim() !== "");
158
+ this.labelEl.textContent = this.label;
159
+ if (hasSlotted) {
160
+ this.linkEl.removeAttribute("aria-label");
161
+ }
162
+ else {
163
+ this.linkEl.setAttribute("aria-label", this.label);
164
+ }
165
+ const target = this.target;
166
+ if (target) {
167
+ this.linkEl.setAttribute("target", target);
168
+ }
169
+ else {
170
+ this.linkEl.removeAttribute("target");
171
+ }
172
+ // Explicit rel wins; opening a new tab defaults to a safe rel.
173
+ const rel = this.rel || (target === "_blank" ? "noopener noreferrer" : "");
174
+ if (rel) {
175
+ this.linkEl.setAttribute("rel", rel);
176
+ }
177
+ else {
178
+ this.linkEl.removeAttribute("rel");
179
+ }
128
180
  }
129
181
  }
130
- export const defineBoxLinkButtonElement = (tagName = DEFAULT_TAG_NAME) => {
131
- const existingElement = customElements.get(tagName);
132
- if (existingElement) {
133
- return existingElement;
134
- }
135
- customElements.define(tagName, BoxLinkButtonElement);
136
- return BoxLinkButtonElement;
137
- };
182
+ LinkButton.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxMenuItemElement extends BaseElement {
2
+ export declare class MenuItem extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private itemEl;
5
6
  get disabled(): boolean;
@@ -14,4 +15,3 @@ export declare class BoxMenuItemElement extends BaseElement {
14
15
  protected setupListeners(): void;
15
16
  protected update(): void;
16
17
  }
17
- export declare const defineBoxMenuItemElement: (tagName?: string) => typeof BoxMenuItemElement;
@@ -55,7 +55,8 @@ const menuItemStyles = `
55
55
  opacity: ${boeControl.disabledOpacity};
56
56
  }
57
57
  `;
58
- export class BoxMenuItemElement extends BaseElement {
58
+ export class MenuItem extends BaseElement {
59
+ static tagName = DEFAULT_TAG_NAME;
59
60
  static get observedAttributes() {
60
61
  return ["disabled", "label", "selected", "value"];
61
62
  }
@@ -127,11 +128,4 @@ export class BoxMenuItemElement extends BaseElement {
127
128
  this.itemEl.textContent = this.label;
128
129
  }
129
130
  }
130
- export const defineBoxMenuItemElement = (tagName = DEFAULT_TAG_NAME) => {
131
- const existingElement = customElements.get(tagName);
132
- if (existingElement) {
133
- return existingElement;
134
- }
135
- customElements.define(tagName, BoxMenuItemElement);
136
- return BoxMenuItemElement;
137
- };
131
+ MenuItem.register();
@@ -12,7 +12,8 @@ type BoxMenuItem = {
12
12
  /** Checkable item — renders menuitemcheckbox with aria-checked. */
13
13
  checked?: boolean;
14
14
  };
15
- export declare class BoxMenuElement extends BaseElement {
15
+ export declare class Menu extends BaseElement {
16
+ static readonly tagName: string;
16
17
  static get observedAttributes(): string[];
17
18
  private menuEl;
18
19
  get disabled(): boolean;
@@ -28,5 +29,4 @@ export declare class BoxMenuElement extends BaseElement {
28
29
  private enabledMenuItems;
29
30
  protected update(): void;
30
31
  }
31
- export declare const defineBoxMenuElement: (tagName?: string) => typeof BoxMenuElement;
32
32
  export {};
@@ -98,7 +98,8 @@ const menuStyles = `
98
98
  content: "✓";
99
99
  }
100
100
  `;
101
- export class BoxMenuElement extends BaseElement {
101
+ export class Menu extends BaseElement {
102
+ static tagName = DEFAULT_TAG_NAME;
102
103
  static get observedAttributes() {
103
104
  return ["disabled", "items", "label"];
104
105
  }
@@ -225,11 +226,4 @@ export class BoxMenuElement extends BaseElement {
225
226
  applyRovingTabindex(buttons, 0);
226
227
  }
227
228
  }
228
- export const defineBoxMenuElement = (tagName = DEFAULT_TAG_NAME) => {
229
- const existingElement = customElements.get(tagName);
230
- if (existingElement) {
231
- return existingElement;
232
- }
233
- customElements.define(tagName, BoxMenuElement);
234
- return BoxMenuElement;
235
- };
229
+ Menu.register();
@@ -4,7 +4,8 @@ export interface SegmentedControlOption {
4
4
  value: string;
5
5
  disabled?: boolean;
6
6
  }
7
- export declare class BoxSegmentedControlElement extends BaseElement {
7
+ export declare class SegmentedControl extends BaseElement {
8
+ static readonly tagName: string;
8
9
  static get observedAttributes(): string[];
9
10
  private valueInternal;
10
11
  private controlEl;
@@ -24,4 +25,3 @@ export declare class BoxSegmentedControlElement extends BaseElement {
24
25
  protected renderTemplate(): void;
25
26
  protected update(): void;
26
27
  }
27
- export declare const defineBoxSegmentedControlElement: (tagName?: string) => typeof BoxSegmentedControlElement;
@@ -71,7 +71,8 @@ const segmentedControlStyles = `
71
71
  opacity: 0.55;
72
72
  }
73
73
  `;
74
- export class BoxSegmentedControlElement extends BaseElement {
74
+ export class SegmentedControl extends BaseElement {
75
+ static tagName = DEFAULT_TAG_NAME;
75
76
  static get observedAttributes() {
76
77
  return ["disabled", "label", "layout", "options", "value"];
77
78
  }
@@ -263,11 +264,4 @@ export class BoxSegmentedControlElement extends BaseElement {
263
264
  });
264
265
  }
265
266
  }
266
- export const defineBoxSegmentedControlElement = (tagName = DEFAULT_TAG_NAME) => {
267
- const existingElement = customElements.get(tagName);
268
- if (existingElement) {
269
- return existingElement;
270
- }
271
- customElements.define(tagName, BoxSegmentedControlElement);
272
- return BoxSegmentedControlElement;
273
- };
267
+ SegmentedControl.register();
@@ -1,5 +1,6 @@
1
1
  import { BaseElement } from "../../core/index.js";
2
- export declare class BoxCardElement extends BaseElement {
2
+ export declare class Card extends BaseElement {
3
+ static readonly tagName: string;
3
4
  static get observedAttributes(): string[];
4
5
  private eyebrowEl;
5
6
  private titleEl;
@@ -10,4 +11,3 @@ export declare class BoxCardElement extends BaseElement {
10
11
  protected renderTemplate(): void;
11
12
  protected update(): void;
12
13
  }
13
- export declare const defineBoxCardElement: (tagName?: string) => typeof BoxCardElement;
@@ -51,7 +51,8 @@ const cardStyles = `
51
51
  display: none;
52
52
  }
53
53
  `;
54
- export class BoxCardElement extends BaseElement {
54
+ export class Card extends BaseElement {
55
+ static tagName = DEFAULT_TAG_NAME;
55
56
  static get observedAttributes() {
56
57
  return ["eyebrow", "heading"];
57
58
  }
@@ -100,11 +101,4 @@ export class BoxCardElement extends BaseElement {
100
101
  this.titleEl.hidden = !heading;
101
102
  }
102
103
  }
103
- export const defineBoxCardElement = (tagName = DEFAULT_TAG_NAME) => {
104
- const existingElement = customElements.get(tagName);
105
- if (existingElement) {
106
- return existingElement;
107
- }
108
- customElements.define(tagName, BoxCardElement);
109
- return BoxCardElement;
110
- };
104
+ Card.register();
@@ -5,13 +5,17 @@ type CarouselItem = {
5
5
  description?: string;
6
6
  imageSrc?: string;
7
7
  };
8
- export declare class BoxCarouselElement extends BaseElement {
8
+ export declare class Carousel extends BaseElement {
9
+ static readonly tagName: string;
9
10
  static get observedAttributes(): string[];
10
11
  private valueInternal;
11
12
  private lastItemsJson;
12
13
  private carouselEl;
13
14
  private labelEl;
14
15
  private stageEl;
16
+ private viewportEl;
17
+ private slottedStageEl;
18
+ private slideSlot;
15
19
  private mediaEl;
16
20
  private eyebrowEl;
17
21
  private titleEl;
@@ -28,6 +32,10 @@ export declare class BoxCarouselElement extends BaseElement {
28
32
  get value(): number;
29
33
  set value(value: number);
30
34
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
35
+ /** Slotted slides (elements assigned to the `slide` slot). */
36
+ private slottedSlides;
37
+ /** Active slide count — slotted slides when present, else JSON items. */
38
+ private slideCount;
31
39
  private normalizeIndex;
32
40
  private emitValueChanged;
33
41
  private setIndex;
@@ -36,5 +44,4 @@ export declare class BoxCarouselElement extends BaseElement {
36
44
  protected setupListeners(): void;
37
45
  protected update(): void;
38
46
  }
39
- export declare const defineBoxCarouselElement: (tagName?: string) => typeof BoxCarouselElement;
40
47
  export {};