@box/blueprint-web 5.31.3

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 (601) hide show
  1. package/LICENSE +379 -0
  2. package/README.md +191 -0
  3. package/THIRD_PARTY_LICENSES +2051 -0
  4. package/lib-esm/accordion/accordion.d.ts +20 -0
  5. package/lib-esm/accordion/accordion.js +112 -0
  6. package/lib-esm/accordion/accordion.module.js +4 -0
  7. package/lib-esm/accordion/index.d.ts +2 -0
  8. package/lib-esm/accordion/types.d.ts +43 -0
  9. package/lib-esm/actionable-inline-notice/actionable-inline-notice.d.ts +3 -0
  10. package/lib-esm/actionable-inline-notice/actionable-inline-notice.js +34 -0
  11. package/lib-esm/actionable-inline-notice/index.d.ts +60 -0
  12. package/lib-esm/actionable-inline-notice/index.js +9 -0
  13. package/lib-esm/actionable-inline-notice/types.d.ts +21 -0
  14. package/lib-esm/avatar/avatar.d.ts +109 -0
  15. package/lib-esm/avatar/avatar.js +127 -0
  16. package/lib-esm/avatar/avatar.module.js +4 -0
  17. package/lib-esm/avatar/consts.d.ts +5 -0
  18. package/lib-esm/avatar/consts.js +29 -0
  19. package/lib-esm/avatar/index.d.ts +2 -0
  20. package/lib-esm/avatar/types.d.ts +34 -0
  21. package/lib-esm/avatar/utils.d.ts +3 -0
  22. package/lib-esm/basics/button/button.d.ts +30 -0
  23. package/lib-esm/basics/button/button.js +23 -0
  24. package/lib-esm/basics/button/index.d.ts +2 -0
  25. package/lib-esm/basics/button/types.d.ts +8 -0
  26. package/lib-esm/basics/collapsible/collapsible-section.d.ts +15 -0
  27. package/lib-esm/basics/collapsible/collapsible-section.js +62 -0
  28. package/lib-esm/basics/collapsible/collapsible-section.module.js +4 -0
  29. package/lib-esm/basics/collapsible/index.d.ts +2 -0
  30. package/lib-esm/basics/collapsible/types.d.ts +12 -0
  31. package/lib-esm/basics/date-picker/date-picker.d.ts +5 -0
  32. package/lib-esm/basics/date-picker/date-picker.js +200 -0
  33. package/lib-esm/basics/date-picker/date-picker.module.js +4 -0
  34. package/lib-esm/basics/date-picker/index.d.ts +2 -0
  35. package/lib-esm/basics/date-picker/types.d.ts +32 -0
  36. package/lib-esm/basics/grid-list-item/grid-list.d.ts +3 -0
  37. package/lib-esm/basics/grid-list-item/grid-list.js +18 -0
  38. package/lib-esm/basics/grid-list-item/index.d.ts +74 -0
  39. package/lib-esm/basics/grid-list-item/index.js +73 -0
  40. package/lib-esm/basics/grid-list-item/types.d.ts +10 -0
  41. package/lib-esm/basics/large-list-item/index.d.ts +88 -0
  42. package/lib-esm/basics/large-list-item/index.js +87 -0
  43. package/lib-esm/basics/large-list-item/large-list-item-description.d.ts +4 -0
  44. package/lib-esm/basics/large-list-item/large-list-item-description.js +30 -0
  45. package/lib-esm/basics/large-list-item/large-list-item-snippet.d.ts +3 -0
  46. package/lib-esm/basics/large-list-item/large-list-item-snippet.js +36 -0
  47. package/lib-esm/basics/large-list-item/large-list.d.ts +3 -0
  48. package/lib-esm/basics/large-list-item/large-list.js +18 -0
  49. package/lib-esm/basics/large-list-item/types.d.ts +15 -0
  50. package/lib-esm/basics/navigation-menu/index.d.ts +16 -0
  51. package/lib-esm/basics/navigation-menu/index.js +17 -0
  52. package/lib-esm/basics/navigation-menu/navigation-menu-content.d.ts +7 -0
  53. package/lib-esm/basics/navigation-menu/navigation-menu-content.js +21 -0
  54. package/lib-esm/basics/navigation-menu/navigation-menu-item.d.ts +13 -0
  55. package/lib-esm/basics/navigation-menu/navigation-menu-item.js +52 -0
  56. package/lib-esm/basics/navigation-menu/navigation-menu-link.d.ts +5 -0
  57. package/lib-esm/basics/navigation-menu/navigation-menu-link.js +24 -0
  58. package/lib-esm/basics/navigation-menu/navigation-menu-root.d.ts +10 -0
  59. package/lib-esm/basics/navigation-menu/navigation-menu-root.js +19 -0
  60. package/lib-esm/basics/navigation-menu/navigation-menu-separator.d.ts +2 -0
  61. package/lib-esm/basics/navigation-menu/navigation-menu-separator.js +12 -0
  62. package/lib-esm/basics/navigation-menu/navigation-menu-trigger.d.ts +7 -0
  63. package/lib-esm/basics/navigation-menu/navigation-menu-trigger.js +21 -0
  64. package/lib-esm/basics/navigation-menu/navigation-menu.module.js +4 -0
  65. package/lib-esm/basics/small-list-item/index.d.ts +47 -0
  66. package/lib-esm/basics/small-list-item/index.js +46 -0
  67. package/lib-esm/basics/small-list-item/small-list.d.ts +3 -0
  68. package/lib-esm/basics/small-list-item/small-list.js +18 -0
  69. package/lib-esm/basics/small-list-item/types.d.ts +6 -0
  70. package/lib-esm/basics/text-input/index.d.ts +2 -0
  71. package/lib-esm/basics/text-input/text-input.d.ts +48 -0
  72. package/lib-esm/basics/text-input/text-input.js +77 -0
  73. package/lib-esm/basics/text-input/text-input.module.js +4 -0
  74. package/lib-esm/basics/text-input/types.d.ts +23 -0
  75. package/lib-esm/branding-styles/branding-styles.d.ts +2 -0
  76. package/lib-esm/branding-styles/branding-styles.js +10 -0
  77. package/lib-esm/branding-styles/index.d.ts +3 -0
  78. package/lib-esm/branding-styles/types.d.ts +4 -0
  79. package/lib-esm/branding-styles/useCustomBranding.d.ts +1 -0
  80. package/lib-esm/branding-styles/useCustomBranding.js +40 -0
  81. package/lib-esm/branding-styles/utils/createTheme.d.ts +69 -0
  82. package/lib-esm/branding-styles/utils/createTheme.js +167 -0
  83. package/lib-esm/branding-styles/utils/theme.d.ts +41 -0
  84. package/lib-esm/branding-styles/utils/theme.js +48 -0
  85. package/lib-esm/branding-styles/utils/variables.d.ts +117 -0
  86. package/lib-esm/branding-styles/utils/variables.js +18 -0
  87. package/lib-esm/card/card.d.ts +6 -0
  88. package/lib-esm/card/card.js +24 -0
  89. package/lib-esm/card/card.module.js +4 -0
  90. package/lib-esm/card/index.d.ts +2 -0
  91. package/lib-esm/card/types.d.ts +10 -0
  92. package/lib-esm/card-tooltip/card-tooltip.d.ts +13 -0
  93. package/lib-esm/card-tooltip/card-tooltip.js +66 -0
  94. package/lib-esm/card-tooltip/card-tooltip.module.js +4 -0
  95. package/lib-esm/card-tooltip/index.d.ts +2 -0
  96. package/lib-esm/card-tooltip/types.d.ts +30 -0
  97. package/lib-esm/checkbox/checkbox-item.d.ts +6 -0
  98. package/lib-esm/checkbox/checkbox-item.js +78 -0
  99. package/lib-esm/checkbox/checkbox.module.js +4 -0
  100. package/lib-esm/checkbox/index.d.ts +8 -0
  101. package/lib-esm/checkbox/index.js +9 -0
  102. package/lib-esm/checkbox/types.d.ts +32 -0
  103. package/lib-esm/combobox/chips-group.d.ts +3 -0
  104. package/lib-esm/combobox/chips-group.js +100 -0
  105. package/lib-esm/combobox/chips-group.module.js +4 -0
  106. package/lib-esm/combobox/chips-group.types.d.ts +5 -0
  107. package/lib-esm/combobox/combobox.d.ts +14 -0
  108. package/lib-esm/combobox/combobox.js +422 -0
  109. package/lib-esm/combobox/combobox.module.js +4 -0
  110. package/lib-esm/combobox/index.d.ts +2 -0
  111. package/lib-esm/combobox/types.d.ts +206 -0
  112. package/lib-esm/content-card/content-card-body.d.ts +4 -0
  113. package/lib-esm/content-card/content-card-body.js +28 -0
  114. package/lib-esm/content-card/content-card-footer.d.ts +3 -0
  115. package/lib-esm/content-card/content-card-footer.js +17 -0
  116. package/lib-esm/content-card/content-card-image.d.ts +5 -0
  117. package/lib-esm/content-card/content-card-image.js +41 -0
  118. package/lib-esm/content-card/content-card-title.d.ts +4 -0
  119. package/lib-esm/content-card/content-card-title.js +28 -0
  120. package/lib-esm/content-card/content-card.d.ts +13 -0
  121. package/lib-esm/content-card/content-card.js +93 -0
  122. package/lib-esm/content-card/content-card.module.js +4 -0
  123. package/lib-esm/content-card/index.d.ts +2 -0
  124. package/lib-esm/content-card/types.d.ts +28 -0
  125. package/lib-esm/content-field/content-field.d.ts +5 -0
  126. package/lib-esm/content-field/content-field.js +93 -0
  127. package/lib-esm/content-field/content-field.module.js +4 -0
  128. package/lib-esm/content-field/index.d.ts +2 -0
  129. package/lib-esm/content-field/messages.d.ts +6 -0
  130. package/lib-esm/content-field/messages.js +8 -0
  131. package/lib-esm/content-field/types.d.ts +23 -0
  132. package/lib-esm/data-table/data-table-wrapper.d.ts +6 -0
  133. package/lib-esm/data-table/index.d.ts +1 -0
  134. package/lib-esm/empty-state/empty-state.d.ts +44 -0
  135. package/lib-esm/empty-state/empty-state.js +92 -0
  136. package/lib-esm/empty-state/empty-state.module.js +4 -0
  137. package/lib-esm/empty-state/index.d.ts +2 -0
  138. package/lib-esm/empty-state/types.d.ts +19 -0
  139. package/lib-esm/ghost/ghost.d.ts +27 -0
  140. package/lib-esm/ghost/ghost.js +37 -0
  141. package/lib-esm/ghost/ghost.module.js +4 -0
  142. package/lib-esm/ghost/index.d.ts +1 -0
  143. package/lib-esm/guided-tooltip/guided-tooltip-body.d.ts +11 -0
  144. package/lib-esm/guided-tooltip/guided-tooltip-body.js +49 -0
  145. package/lib-esm/guided-tooltip/guided-tooltip-footer.d.ts +71 -0
  146. package/lib-esm/guided-tooltip/guided-tooltip-footer.js +77 -0
  147. package/lib-esm/guided-tooltip/guided-tooltip-icon.d.ts +7 -0
  148. package/lib-esm/guided-tooltip/guided-tooltip-icon.js +22 -0
  149. package/lib-esm/guided-tooltip/guided-tooltip-illustration.d.ts +7 -0
  150. package/lib-esm/guided-tooltip/guided-tooltip-illustration.js +20 -0
  151. package/lib-esm/guided-tooltip/guided-tooltip-title.d.ts +6 -0
  152. package/lib-esm/guided-tooltip/guided-tooltip-title.js +36 -0
  153. package/lib-esm/guided-tooltip/guided-tooltip.d.ts +69 -0
  154. package/lib-esm/guided-tooltip/guided-tooltip.js +110 -0
  155. package/lib-esm/guided-tooltip/guided-tooltip.module.js +4 -0
  156. package/lib-esm/guided-tooltip/index.d.ts +3 -0
  157. package/lib-esm/guided-tooltip/types.d.ts +98 -0
  158. package/lib-esm/guided-tooltip/utils/guided-tooltip-context.d.ts +11 -0
  159. package/lib-esm/guided-tooltip/utils/guided-tooltip-context.js +12 -0
  160. package/lib-esm/index.css +5328 -0
  161. package/lib-esm/index.d.ts +55 -0
  162. package/lib-esm/index.js +62 -0
  163. package/lib-esm/inline-notice/inline-notice.d.ts +17 -0
  164. package/lib-esm/inline-notice/inline-notice.js +64 -0
  165. package/lib-esm/inline-table/index.d.ts +2 -0
  166. package/lib-esm/inline-table/inline-table.d.ts +10 -0
  167. package/lib-esm/inline-table/inline-table.js +53 -0
  168. package/lib-esm/inline-table/inline-table.module.js +4 -0
  169. package/lib-esm/inline-table/types.d.ts +14 -0
  170. package/lib-esm/input-chip/index.d.ts +2 -0
  171. package/lib-esm/input-chip/input-chip.d.ts +4 -0
  172. package/lib-esm/input-chip/input-chip.js +58 -0
  173. package/lib-esm/input-chip/input-chip.module.js +4 -0
  174. package/lib-esm/input-chip/types.d.ts +21 -0
  175. package/lib-esm/list-item/cell/action-cell.d.ts +13 -0
  176. package/lib-esm/list-item/cell/action-cell.js +49 -0
  177. package/lib-esm/list-item/cell/cell.d.ts +10 -0
  178. package/lib-esm/list-item/cell/cell.js +30 -0
  179. package/lib-esm/list-item/drop-indicator.d.ts +3 -0
  180. package/lib-esm/list-item/drop-indicator.js +19 -0
  181. package/lib-esm/list-item/drop-indicator.module.js +4 -0
  182. package/lib-esm/list-item/index.d.ts +25 -0
  183. package/lib-esm/list-item/list-item.d.ts +25 -0
  184. package/lib-esm/list-item/list-item.js +19 -0
  185. package/lib-esm/list-item/main.module.js +4 -0
  186. package/lib-esm/list-item/row.d.ts +12 -0
  187. package/lib-esm/list-item/row.js +32 -0
  188. package/lib-esm/list-item/table-body.d.ts +16 -0
  189. package/lib-esm/list-item/table-body.js +26 -0
  190. package/lib-esm/list-item/table-column.d.ts +14 -0
  191. package/lib-esm/list-item/table-column.js +78 -0
  192. package/lib-esm/list-item/table-header.d.ts +12 -0
  193. package/lib-esm/list-item/table-header.js +30 -0
  194. package/lib-esm/list-item/table.d.ts +8 -0
  195. package/lib-esm/list-item/table.js +30 -0
  196. package/lib-esm/loading-indicator/loading-indicator.d.ts +16 -0
  197. package/lib-esm/loading-indicator/loading-indicator.js +29 -0
  198. package/lib-esm/loading-indicator/loading-indicator.module.js +4 -0
  199. package/lib-esm/modal/index.d.ts +2 -0
  200. package/lib-esm/modal/modal-body.d.ts +7 -0
  201. package/lib-esm/modal/modal-body.js +20 -0
  202. package/lib-esm/modal/modal-close.d.ts +7 -0
  203. package/lib-esm/modal/modal-close.js +47 -0
  204. package/lib-esm/modal/modal-content.d.ts +7 -0
  205. package/lib-esm/modal/modal-content.js +28 -0
  206. package/lib-esm/modal/modal-footer.d.ts +65 -0
  207. package/lib-esm/modal/modal-footer.js +54 -0
  208. package/lib-esm/modal/modal-header.d.ts +7 -0
  209. package/lib-esm/modal/modal-header.js +42 -0
  210. package/lib-esm/modal/modal-scrollable-container.d.ts +8 -0
  211. package/lib-esm/modal/modal-scrollable-container.js +21 -0
  212. package/lib-esm/modal/modal-title.d.ts +7 -0
  213. package/lib-esm/modal/modal-title.js +29 -0
  214. package/lib-esm/modal/modal-trigger.d.ts +7 -0
  215. package/lib-esm/modal/modal-trigger.js +18 -0
  216. package/lib-esm/modal/modal.d.ts +93 -0
  217. package/lib-esm/modal/modal.js +55 -0
  218. package/lib-esm/modal/modal.module.js +4 -0
  219. package/lib-esm/modal/types.d.ts +48 -0
  220. package/lib-esm/primitives/base-button/base-button-context.d.ts +4 -0
  221. package/lib-esm/primitives/base-button/base-button-context.js +10 -0
  222. package/lib-esm/primitives/base-button/base-button-icon.d.ts +7 -0
  223. package/lib-esm/primitives/base-button/base-button-icon.js +47 -0
  224. package/lib-esm/primitives/base-button/base-button-label.d.ts +6 -0
  225. package/lib-esm/primitives/base-button/base-button-label.js +17 -0
  226. package/lib-esm/primitives/base-button/base-button.d.ts +24 -0
  227. package/lib-esm/primitives/base-button/base-button.js +58 -0
  228. package/lib-esm/primitives/base-button/base-button.module.js +4 -0
  229. package/lib-esm/primitives/base-button/index.d.ts +36 -0
  230. package/lib-esm/primitives/base-button/index.js +10 -0
  231. package/lib-esm/primitives/base-button/types.d.ts +28 -0
  232. package/lib-esm/primitives/base-button/utils.d.ts +8 -0
  233. package/lib-esm/primitives/base-button/utils.js +28 -0
  234. package/lib-esm/primitives/base-inline-notice/base-inline-notice-actions.d.ts +116 -0
  235. package/lib-esm/primitives/base-inline-notice/base-inline-notice-actions.js +55 -0
  236. package/lib-esm/primitives/base-inline-notice/base-inline-notice-content-container.d.ts +8 -0
  237. package/lib-esm/primitives/base-inline-notice/base-inline-notice-content-container.js +21 -0
  238. package/lib-esm/primitives/base-inline-notice/base-inline-notice-content.d.ts +7 -0
  239. package/lib-esm/primitives/base-inline-notice/base-inline-notice-content.js +49 -0
  240. package/lib-esm/primitives/base-inline-notice/base-inline-notice-icon.d.ts +7 -0
  241. package/lib-esm/primitives/base-inline-notice/base-inline-notice-icon.js +30 -0
  242. package/lib-esm/primitives/base-inline-notice/base-inline-notice.d.ts +4 -0
  243. package/lib-esm/primitives/base-inline-notice/base-inline-notice.js +21 -0
  244. package/lib-esm/primitives/base-inline-notice/base-inline-notice.module.js +4 -0
  245. package/lib-esm/primitives/base-inline-notice/index.d.ts +73 -0
  246. package/lib-esm/primitives/base-inline-notice/index.js +14 -0
  247. package/lib-esm/primitives/base-inline-notice/types.d.ts +39 -0
  248. package/lib-esm/primitives/calendar/calendar.d.ts +3 -0
  249. package/lib-esm/primitives/calendar/calendar.js +67 -0
  250. package/lib-esm/primitives/calendar/calendar.module.js +4 -0
  251. package/lib-esm/primitives/calendar/index.d.ts +3 -0
  252. package/lib-esm/primitives/calendar/parse-date.util.d.ts +7 -0
  253. package/lib-esm/primitives/calendar/parse-date.util.js +10 -0
  254. package/lib-esm/primitives/calendar/types.d.ts +17 -0
  255. package/lib-esm/primitives/chips/chip-dropdown-indicator.d.ts +2 -0
  256. package/lib-esm/primitives/chips/chip-dropdown-indicator.js +15 -0
  257. package/lib-esm/primitives/chips/chip-icon.d.ts +3 -0
  258. package/lib-esm/primitives/chips/chip-icon.js +18 -0
  259. package/lib-esm/primitives/chips/chip-label.d.ts +4 -0
  260. package/lib-esm/primitives/chips/chip-label.js +21 -0
  261. package/lib-esm/primitives/chips/chip-status.d.ts +4 -0
  262. package/lib-esm/primitives/chips/chip-status.js +20 -0
  263. package/lib-esm/primitives/chips/chip.d.ts +3 -0
  264. package/lib-esm/primitives/chips/chip.js +21 -0
  265. package/lib-esm/primitives/chips/chip.module.js +4 -0
  266. package/lib-esm/primitives/chips/chips-group.d.ts +7 -0
  267. package/lib-esm/primitives/chips/chips-group.js +22 -0
  268. package/lib-esm/primitives/chips/filter-chip/filter-chip-button.d.ts +8 -0
  269. package/lib-esm/primitives/chips/filter-chip/filter-chip-button.js +30 -0
  270. package/lib-esm/primitives/chips/filter-chip/filter-chip-group-context.d.ts +11 -0
  271. package/lib-esm/primitives/chips/filter-chip/filter-chip-group-context.js +9 -0
  272. package/lib-esm/primitives/chips/filter-chip/filter-chip.d.ts +18 -0
  273. package/lib-esm/primitives/chips/filter-chip/filter-chip.js +85 -0
  274. package/lib-esm/primitives/chips/filter-chip/filter-combo-chip.d.ts +27 -0
  275. package/lib-esm/primitives/chips/filter-chip/filter-combo-chip.js +84 -0
  276. package/lib-esm/primitives/chips/filter-chip/filter-trigger-chip.d.ts +16 -0
  277. package/lib-esm/primitives/chips/filter-chip/filter-trigger-chip.js +37 -0
  278. package/lib-esm/primitives/chips/filter-chip/index.d.ts +27 -0
  279. package/lib-esm/primitives/chips/filter-chip/index.js +23 -0
  280. package/lib-esm/primitives/chips/types.d.ts +23 -0
  281. package/lib-esm/primitives/context-menu/context-menu-item.d.ts +17 -0
  282. package/lib-esm/primitives/context-menu/context-menu-item.js +40 -0
  283. package/lib-esm/primitives/context-menu/context-menu-items-separator.d.ts +5 -0
  284. package/lib-esm/primitives/context-menu/context-menu-items-separator.js +16 -0
  285. package/lib-esm/primitives/context-menu/context-menu-menu-content.d.ts +11 -0
  286. package/lib-esm/primitives/context-menu/context-menu-menu-content.js +29 -0
  287. package/lib-esm/primitives/context-menu/context-menu-menu-root.d.ts +8 -0
  288. package/lib-esm/primitives/context-menu/context-menu-menu-root.js +19 -0
  289. package/lib-esm/primitives/context-menu/context-menu-menu-trigger.d.ts +8 -0
  290. package/lib-esm/primitives/context-menu/context-menu-menu-trigger.js +21 -0
  291. package/lib-esm/primitives/context-menu/context-menu-sub-menu-content.d.ts +12 -0
  292. package/lib-esm/primitives/context-menu/context-menu-sub-menu-content.js +34 -0
  293. package/lib-esm/primitives/context-menu/context-menu-sub-menu-root.d.ts +11 -0
  294. package/lib-esm/primitives/context-menu/context-menu-sub-menu-root.js +20 -0
  295. package/lib-esm/primitives/context-menu/context-menu-sub-menu-trigger.d.ts +18 -0
  296. package/lib-esm/primitives/context-menu/context-menu-sub-menu-trigger.js +39 -0
  297. package/lib-esm/primitives/context-menu/context-menu.module.js +4 -0
  298. package/lib-esm/primitives/context-menu/index.d.ts +27 -0
  299. package/lib-esm/primitives/context-menu/index.js +21 -0
  300. package/lib-esm/primitives/date-i18n-provider/date-i18n-provider.d.ts +15 -0
  301. package/lib-esm/primitives/date-i18n-provider/date-i18n-provider.js +17 -0
  302. package/lib-esm/primitives/dropdown-menu/dropdown-menu-checkbox-item.d.ts +8 -0
  303. package/lib-esm/primitives/dropdown-menu/dropdown-menu-checkbox-item.js +42 -0
  304. package/lib-esm/primitives/dropdown-menu/dropdown-menu-content.d.ts +12 -0
  305. package/lib-esm/primitives/dropdown-menu/dropdown-menu-content.js +35 -0
  306. package/lib-esm/primitives/dropdown-menu/dropdown-menu-item.d.ts +7 -0
  307. package/lib-esm/primitives/dropdown-menu/dropdown-menu-item.js +29 -0
  308. package/lib-esm/primitives/dropdown-menu/dropdown-menu-radio-group.d.ts +8 -0
  309. package/lib-esm/primitives/dropdown-menu/dropdown-menu-radio-group.js +17 -0
  310. package/lib-esm/primitives/dropdown-menu/dropdown-menu-radio-select-item.d.ts +8 -0
  311. package/lib-esm/primitives/dropdown-menu/dropdown-menu-radio-select-item.js +43 -0
  312. package/lib-esm/primitives/dropdown-menu/dropdown-menu-root.d.ts +10 -0
  313. package/lib-esm/primitives/dropdown-menu/dropdown-menu-root.js +19 -0
  314. package/lib-esm/primitives/dropdown-menu/dropdown-menu-separator.d.ts +5 -0
  315. package/lib-esm/primitives/dropdown-menu/dropdown-menu-separator.js +17 -0
  316. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-content.d.ts +12 -0
  317. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-content.js +34 -0
  318. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-root.d.ts +11 -0
  319. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-root.js +20 -0
  320. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-trigger.d.ts +17 -0
  321. package/lib-esm/primitives/dropdown-menu/dropdown-menu-sub-menu-trigger.js +38 -0
  322. package/lib-esm/primitives/dropdown-menu/dropdown-menu-trigger.d.ts +8 -0
  323. package/lib-esm/primitives/dropdown-menu/dropdown-menu-trigger.js +23 -0
  324. package/lib-esm/primitives/dropdown-menu/dropdown-menu.module.js +4 -0
  325. package/lib-esm/primitives/dropdown-menu/index.d.ts +29 -0
  326. package/lib-esm/primitives/dropdown-menu/index.js +27 -0
  327. package/lib-esm/primitives/icon-button/icon-button.d.ts +4 -0
  328. package/lib-esm/primitives/icon-button/icon-button.js +30 -0
  329. package/lib-esm/primitives/icon-button/icon-button.module.js +4 -0
  330. package/lib-esm/primitives/icon-button/index.d.ts +2 -0
  331. package/lib-esm/primitives/icon-button/types.d.ts +9 -0
  332. package/lib-esm/primitives/icon-button/utils.d.ts +3 -0
  333. package/lib-esm/primitives/icon-button/utils.js +9 -0
  334. package/lib-esm/primitives/inline-error/inline-error.d.ts +4 -0
  335. package/lib-esm/primitives/inline-error/inline-error.js +33 -0
  336. package/lib-esm/primitives/inline-error/inline-error.module.js +4 -0
  337. package/lib-esm/primitives/inline-error/types.d.ts +5 -0
  338. package/lib-esm/primitives/link/index.d.ts +2 -0
  339. package/lib-esm/primitives/link/link.d.ts +3 -0
  340. package/lib-esm/primitives/link/link.js +25 -0
  341. package/lib-esm/primitives/link/link.module.js +4 -0
  342. package/lib-esm/primitives/link/types.d.ts +21 -0
  343. package/lib-esm/primitives/notification/index.d.ts +12 -0
  344. package/lib-esm/primitives/notification/index.js +12 -0
  345. package/lib-esm/primitives/notification/notification-button.d.ts +9 -0
  346. package/lib-esm/primitives/notification/notification-button.js +23 -0
  347. package/lib-esm/primitives/notification/notification-provider.d.ts +37 -0
  348. package/lib-esm/primitives/notification/notification-provider.js +94 -0
  349. package/lib-esm/primitives/notification/notification.module.js +4 -0
  350. package/lib-esm/primitives/notification/notification.viewport.d.ts +9 -0
  351. package/lib-esm/primitives/notification/notification.viewport.js +35 -0
  352. package/lib-esm/primitives/notification/private-notification-element.d.ts +33 -0
  353. package/lib-esm/primitives/notification/private-notification-element.js +91 -0
  354. package/lib-esm/primitives/page-header/index.d.ts +2 -0
  355. package/lib-esm/primitives/page-header/page-header.d.ts +12 -0
  356. package/lib-esm/primitives/page-header/page-header.js +73 -0
  357. package/lib-esm/primitives/page-header/page-header.module.js +4 -0
  358. package/lib-esm/primitives/page-header/types.d.ts +8 -0
  359. package/lib-esm/primitives/popover/index.d.ts +18 -0
  360. package/lib-esm/primitives/popover/index.js +17 -0
  361. package/lib-esm/primitives/popover/popover-close.d.ts +8 -0
  362. package/lib-esm/primitives/popover/popover-close.js +23 -0
  363. package/lib-esm/primitives/popover/popover-content-container.d.ts +12 -0
  364. package/lib-esm/primitives/popover/popover-content-container.js +46 -0
  365. package/lib-esm/primitives/popover/popover-footer.d.ts +7 -0
  366. package/lib-esm/primitives/popover/popover-footer.js +30 -0
  367. package/lib-esm/primitives/popover/popover-main-content.d.ts +7 -0
  368. package/lib-esm/primitives/popover/popover-main-content.js +45 -0
  369. package/lib-esm/primitives/popover/popover-overflow-context.d.ts +6 -0
  370. package/lib-esm/primitives/popover/popover-overflow-context.js +8 -0
  371. package/lib-esm/primitives/popover/popover-root.d.ts +10 -0
  372. package/lib-esm/primitives/popover/popover-root.js +20 -0
  373. package/lib-esm/primitives/popover/popover-trigger.d.ts +9 -0
  374. package/lib-esm/primitives/popover/popover-trigger.js +24 -0
  375. package/lib-esm/primitives/popover/popover.module.js +4 -0
  376. package/lib-esm/primitives/select-menu-grid/index.d.ts +12 -0
  377. package/lib-esm/primitives/select-menu-grid/index.js +11 -0
  378. package/lib-esm/primitives/select-menu-grid/select-menu-grid-option.d.ts +343 -0
  379. package/lib-esm/primitives/select-menu-grid/select-menu-grid-option.js +100 -0
  380. package/lib-esm/primitives/select-menu-grid/select-menu-grid-option.module.js +4 -0
  381. package/lib-esm/primitives/select-menu-grid/select-menu-grid.d.ts +5 -0
  382. package/lib-esm/primitives/select-menu-grid/select-menu-grid.js +31 -0
  383. package/lib-esm/primitives/select-menu-grid/select-menu-grid.module.js +4 -0
  384. package/lib-esm/primitives/select-menu-grid/types.d.ts +35 -0
  385. package/lib-esm/primitives/slot.d.ts +5 -0
  386. package/lib-esm/primitives/slot.js +4 -0
  387. package/lib-esm/primitives/supplementary-fonts/get-supplementary-font-faces-config.d.ts +5 -0
  388. package/lib-esm/primitives/supplementary-fonts/get-supplementary-font-faces-config.js +17 -0
  389. package/lib-esm/primitives/supplementary-fonts/index.d.ts +4 -0
  390. package/lib-esm/primitives/supplementary-fonts/supplementary-fonts.d.ts +6 -0
  391. package/lib-esm/primitives/supplementary-fonts/supplementary-fonts.js +12 -0
  392. package/lib-esm/primitives/supplementary-fonts/types.d.ts +2 -0
  393. package/lib-esm/primitives/supplementary-fonts/useSupplementaryFonts.hook.d.ts +2 -0
  394. package/lib-esm/primitives/supplementary-fonts/useSupplementaryFonts.hook.js +36 -0
  395. package/lib-esm/primitives/tabs/index.d.ts +27 -0
  396. package/lib-esm/primitives/tabs/index.js +22 -0
  397. package/lib-esm/primitives/tabs/tab-list.d.ts +4 -0
  398. package/lib-esm/primitives/tabs/tab-list.js +27 -0
  399. package/lib-esm/primitives/tabs/tab-panel.d.ts +4 -0
  400. package/lib-esm/primitives/tabs/tab-panel.js +23 -0
  401. package/lib-esm/primitives/tabs/tab.d.ts +11 -0
  402. package/lib-esm/primitives/tabs/tab.js +58 -0
  403. package/lib-esm/primitives/tabs/tabs.d.ts +6 -0
  404. package/lib-esm/primitives/tabs/tabs.js +15 -0
  405. package/lib-esm/primitives/tabs/tabs.module.js +4 -0
  406. package/lib-esm/primitives/tabs/use-tabs.d.ts +1 -0
  407. package/lib-esm/primitives/tabs/use-tabs.js +7 -0
  408. package/lib-esm/primitives/utility/AreaIndicator.d.ts +7 -0
  409. package/lib-esm/radio-group/index.d.ts +9 -0
  410. package/lib-esm/radio-group/index.js +11 -0
  411. package/lib-esm/radio-group/radio-group.d.ts +4 -0
  412. package/lib-esm/radio-group/radio-group.js +35 -0
  413. package/lib-esm/radio-group/radio-group.module.js +4 -0
  414. package/lib-esm/radio-group/radio-item.d.ts +4 -0
  415. package/lib-esm/radio-group/radio-item.js +50 -0
  416. package/lib-esm/radio-group/types.d.ts +13 -0
  417. package/lib-esm/search-input/index.d.ts +22 -0
  418. package/lib-esm/search-input/index.js +11 -0
  419. package/lib-esm/search-input/search-input-action-button.d.ts +2 -0
  420. package/lib-esm/search-input/search-input-action-button.js +26 -0
  421. package/lib-esm/search-input/search-input.d.ts +16 -0
  422. package/lib-esm/search-input/search-input.js +95 -0
  423. package/lib-esm/search-input/search.module.js +4 -0
  424. package/lib-esm/search-input/types.d.ts +53 -0
  425. package/lib-esm/select/index.d.ts +2 -0
  426. package/lib-esm/select/select.d.ts +68 -0
  427. package/lib-esm/select/select.js +187 -0
  428. package/lib-esm/select/select.module.js +4 -0
  429. package/lib-esm/select/types.d.ts +105 -0
  430. package/lib-esm/side-panel/index.d.ts +2 -0
  431. package/lib-esm/side-panel/scroll-context.d.ts +11 -0
  432. package/lib-esm/side-panel/scroll-context.js +43 -0
  433. package/lib-esm/side-panel/side-panel-close.d.ts +7 -0
  434. package/lib-esm/side-panel/side-panel-close.js +26 -0
  435. package/lib-esm/side-panel/side-panel-content.d.ts +13 -0
  436. package/lib-esm/side-panel/side-panel-content.js +41 -0
  437. package/lib-esm/side-panel/side-panel-footer.d.ts +65 -0
  438. package/lib-esm/side-panel/side-panel-footer.js +62 -0
  439. package/lib-esm/side-panel/side-panel-header.d.ts +7 -0
  440. package/lib-esm/side-panel/side-panel-header.js +62 -0
  441. package/lib-esm/side-panel/side-panel-overlay.d.ts +8 -0
  442. package/lib-esm/side-panel/side-panel-overlay.js +31 -0
  443. package/lib-esm/side-panel/side-panel-scrollable-container.d.ts +8 -0
  444. package/lib-esm/side-panel/side-panel-scrollable-container.js +42 -0
  445. package/lib-esm/side-panel/side-panel.d.ts +70 -0
  446. package/lib-esm/side-panel/side-panel.js +52 -0
  447. package/lib-esm/side-panel/side-panel.module.js +4 -0
  448. package/lib-esm/side-panel/types.d.ts +38 -0
  449. package/lib-esm/side-panel/variant-context.d.ts +6 -0
  450. package/lib-esm/side-panel/variant-context.js +22 -0
  451. package/lib-esm/slider/index.d.ts +2 -0
  452. package/lib-esm/slider/slider-incrementer.d.ts +6 -0
  453. package/lib-esm/slider/slider-incrementer.js +57 -0
  454. package/lib-esm/slider/slider-incrementer.module.js +4 -0
  455. package/lib-esm/slider/slider-range.d.ts +6 -0
  456. package/lib-esm/slider/slider-range.js +65 -0
  457. package/lib-esm/slider/slider-range.module.js +4 -0
  458. package/lib-esm/slider/slider.d.ts +5 -0
  459. package/lib-esm/slider/slider.js +51 -0
  460. package/lib-esm/slider/slider.module.js +4 -0
  461. package/lib-esm/slider/types.d.ts +181 -0
  462. package/lib-esm/status/consts.d.ts +4 -0
  463. package/lib-esm/status/consts.js +25 -0
  464. package/lib-esm/status/index.d.ts +2 -0
  465. package/lib-esm/status/status.d.ts +3 -0
  466. package/lib-esm/status/status.js +82 -0
  467. package/lib-esm/status/status.module.js +4 -0
  468. package/lib-esm/status/types.d.ts +31 -0
  469. package/lib-esm/switch/index.d.ts +9 -0
  470. package/lib-esm/switch/index.js +9 -0
  471. package/lib-esm/switch/switch-item.d.ts +5 -0
  472. package/lib-esm/switch/switch-item.js +71 -0
  473. package/lib-esm/switch/switch-legend.d.ts +4 -0
  474. package/lib-esm/switch/switch-legend.js +11 -0
  475. package/lib-esm/switch/switch.module.js +4 -0
  476. package/lib-esm/switch/types.d.ts +32 -0
  477. package/lib-esm/text/index.d.ts +2 -0
  478. package/lib-esm/text/text.d.ts +4 -0
  479. package/lib-esm/text/text.js +21 -0
  480. package/lib-esm/text/text.module.js +4 -0
  481. package/lib-esm/text/types.d.ts +34 -0
  482. package/lib-esm/text-area/index.d.ts +2 -0
  483. package/lib-esm/text-area/text-area-autosize/text-area-autosize.d.ts +10 -0
  484. package/lib-esm/text-area/text-area-autosize/text-area-autosize.js +322 -0
  485. package/lib-esm/text-area/text-area-autosize/text-area-autosize.module.js +4 -0
  486. package/lib-esm/text-area/text-area-autosize/types.d.ts +21 -0
  487. package/lib-esm/text-area/text-area.d.ts +36 -0
  488. package/lib-esm/text-area/text-area.js +57 -0
  489. package/lib-esm/text-area/text-area.module.js +4 -0
  490. package/lib-esm/text-area/types.d.ts +22 -0
  491. package/lib-esm/text-button/index.d.ts +2 -0
  492. package/lib-esm/text-button/text-button.d.ts +24 -0
  493. package/lib-esm/text-button/text-button.js +54 -0
  494. package/lib-esm/text-button/text-button.module.js +4 -0
  495. package/lib-esm/text-button/types.d.ts +25 -0
  496. package/lib-esm/tooltip/index.d.ts +2 -0
  497. package/lib-esm/tooltip/tooltip.d.ts +16 -0
  498. package/lib-esm/tooltip/tooltip.js +128 -0
  499. package/lib-esm/tooltip/tooltip.module.js +4 -0
  500. package/lib-esm/tooltip/types.d.ts +41 -0
  501. package/lib-esm/trigger-button/index.d.ts +1 -0
  502. package/lib-esm/trigger-button/trigger-button.d.ts +50 -0
  503. package/lib-esm/trigger-button/trigger-button.js +41 -0
  504. package/lib-esm/types/modify.d.ts +1 -0
  505. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-actions.d.ts +4 -0
  506. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-actions.js +132 -0
  507. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-header.d.ts +3 -0
  508. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-header.js +57 -0
  509. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-subtitle.d.ts +4 -0
  510. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-subtitle.js +58 -0
  511. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-thumbnail.d.ts +4 -0
  512. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item-thumbnail.js +30 -0
  513. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item.d.ts +4 -0
  514. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item.js +70 -0
  515. package/lib-esm/util-components/base-grid-list-item/base-grid-list-item.module.js +4 -0
  516. package/lib-esm/util-components/base-grid-list-item/base-grid-list.d.ts +6 -0
  517. package/lib-esm/util-components/base-grid-list-item/base-grid-list.js +62 -0
  518. package/lib-esm/util-components/base-grid-list-item/index.d.ts +41 -0
  519. package/lib-esm/util-components/base-grid-list-item/index.js +42 -0
  520. package/lib-esm/util-components/base-grid-list-item/types.d.ts +32 -0
  521. package/lib-esm/util-components/base-grid-list-item/utils/rac-button.d.ts +12 -0
  522. package/lib-esm/util-components/base-grid-list-item/utils/rac-button.js +34 -0
  523. package/lib-esm/util-components/base-grid-list-item/utils/rac-tooltip.d.ts +7 -0
  524. package/lib-esm/util-components/base-grid-list-item/utils/rac-tooltip.js +30 -0
  525. package/lib-esm/util-components/focus-trap/focus-trap.d.ts +3 -0
  526. package/lib-esm/util-components/focus-trap/index.d.ts +1 -0
  527. package/lib-esm/util-components/focus-trap/types.d.ts +8 -0
  528. package/lib-esm/util-components/interactive-icon/index.d.ts +1 -0
  529. package/lib-esm/util-components/interactive-icon/interactive-icon.d.ts +4 -0
  530. package/lib-esm/util-components/interactive-icon/interactive-icon.js +24 -0
  531. package/lib-esm/util-components/interactive-icon/interactive-icon.module.js +4 -0
  532. package/lib-esm/util-components/interactive-icon/types.d.ts +9 -0
  533. package/lib-esm/util-components/legend/index.d.ts +1 -0
  534. package/lib-esm/util-components/legend/legend.d.ts +4 -0
  535. package/lib-esm/util-components/legend/legend.js +31 -0
  536. package/lib-esm/util-components/legend/legend.module.js +4 -0
  537. package/lib-esm/util-components/legend/types.d.ts +18 -0
  538. package/lib-esm/util-components/list-checkbox/index.d.ts +1 -0
  539. package/lib-esm/util-components/list-checkbox/list-checkbox.d.ts +10 -0
  540. package/lib-esm/util-components/list-checkbox/list-checkbox.js +36 -0
  541. package/lib-esm/util-components/list-checkbox/list-checkbox.module.js +4 -0
  542. package/lib-esm/util-components/menu-item-sections/menu-item-sections.d.ts +19 -0
  543. package/lib-esm/util-components/menu-item-sections/menu-item-sections.js +43 -0
  544. package/lib-esm/util-components/menu-item-sections/menu-item-sections.module.js +4 -0
  545. package/lib-esm/util-components/scrollable-container/scrollable-container.d.ts +30 -0
  546. package/lib-esm/util-components/scrollable-container/scrollable-container.js +65 -0
  547. package/lib-esm/util-components/scrollable-container/scrollable-container.module.js +4 -0
  548. package/lib-esm/util-components/search-term-string/index.d.ts +1 -0
  549. package/lib-esm/util-components/search-term-string/search-term-string.d.ts +5 -0
  550. package/lib-esm/util-components/search-term-string/search-term-string.js +41 -0
  551. package/lib-esm/util-components/search-term-string/search-term-string.module.js +4 -0
  552. package/lib-esm/util-components/search-term-string/types.d.ts +4 -0
  553. package/lib-esm/util-components/text-with-info-badge/index.d.ts +1 -0
  554. package/lib-esm/util-components/text-with-info-badge/text-with-info-badge.d.ts +4 -0
  555. package/lib-esm/util-components/text-with-info-badge/text-with-info-badge.js +36 -0
  556. package/lib-esm/util-components/text-with-info-badge/text-with-info-badge.module.js +4 -0
  557. package/lib-esm/util-components/text-with-info-badge/types.d.ts +15 -0
  558. package/lib-esm/utils/DocsStoryHeightDecorator.d.ts +14 -0
  559. package/lib-esm/utils/VariantsAggregator.d.ts +15 -0
  560. package/lib-esm/utils/a11yExceptionsConfig.d.ts +65 -0
  561. package/lib-esm/utils/commonTypes.d.ts +2 -0
  562. package/lib-esm/utils/debounce.d.ts +4 -0
  563. package/lib-esm/utils/debounce.js +13 -0
  564. package/lib-esm/utils/getButtonOptions.d.ts +7 -0
  565. package/lib-esm/utils/getButtonOptions.js +15 -0
  566. package/lib-esm/utils/isDefined.d.ts +1 -0
  567. package/lib-esm/utils/isDefined.js +8 -0
  568. package/lib-esm/utils/keyboardUtils.d.ts +5 -0
  569. package/lib-esm/utils/keyboardUtils.js +14 -0
  570. package/lib-esm/utils/ownerWindow.d.ts +1 -0
  571. package/lib-esm/utils/ownerWindow.js +9 -0
  572. package/lib-esm/utils/processString.d.ts +13 -0
  573. package/lib-esm/utils/processString.js +27 -0
  574. package/lib-esm/utils/switchCase.d.ts +1 -0
  575. package/lib-esm/utils/switchCase.js +5 -0
  576. package/lib-esm/utils/testStories.utils.d.ts +99 -0
  577. package/lib-esm/utils/unstableStorybookMessage.utils.d.ts +1 -0
  578. package/lib-esm/utils/use-debounce.d.ts +1 -0
  579. package/lib-esm/utils/use-debounce.js +14 -0
  580. package/lib-esm/utils/useBreakpoint.d.ts +16 -0
  581. package/lib-esm/utils/useBreakpoint.js +42 -0
  582. package/lib-esm/utils/useEnhancedEffect.d.ts +7 -0
  583. package/lib-esm/utils/useEnhancedEffect.js +10 -0
  584. package/lib-esm/utils/useForkRef.d.ts +12 -0
  585. package/lib-esm/utils/useForkRef.js +39 -0
  586. package/lib-esm/utils/useFullTextTooltip.d.ts +15 -0
  587. package/lib-esm/utils/useFullTextTooltip.js +28 -0
  588. package/lib-esm/utils/useIsTriggerInteractive.d.ts +5 -0
  589. package/lib-esm/utils/useIsTriggerInteractive.js +21 -0
  590. package/lib-esm/utils/useMobile.d.ts +1 -0
  591. package/lib-esm/utils/useMobile.js +14 -0
  592. package/lib-esm/utils/useNamedSlots.hook.d.ts +2 -0
  593. package/lib-esm/utils/useNamedSlots.hook.js +10 -0
  594. package/lib-esm/utils/useScreenSize.d.ts +4 -0
  595. package/lib-esm/utils/useScreenSize.js +23 -0
  596. package/lib-esm/utils/useSubMenuFocus.hook.d.ts +2 -0
  597. package/lib-esm/utils/useSubMenuFocus.hook.js +39 -0
  598. package/lib-esm/utils/useUniqueId.d.ts +2 -0
  599. package/lib-esm/utils/useUniqueId.js +8 -0
  600. package/lib-esm/utils/waitForAnimation.d.ts +13 -0
  601. package/package.json +83 -0
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ import { type AccordionItemProps, type AccordionProps } from './types';
3
+ /**
4
+ * The root component that contains all the parts of a accordion.
5
+ *
6
+ * @example
7
+ * <Accordion>
8
+ * <Accordion.Item id="1" value="item-1" title="Item 1"><div>1st item</div></Accordion.Item>
9
+ * <Accordion.Item id="2" value="item-2" title="Item 2"><div>2nd item</div></Accordion.Item>
10
+ * <Accordion.Item id="3" value="item-3" title="Item 3"><div>3rd item </div></Accordion.Item>
11
+ * </Accordion>
12
+ */
13
+ export declare const Root: (props: AccordionProps) => JSX.Element;
14
+ export declare const Item: (props: AccordionItemProps) => JSX.Element;
15
+ export declare const Accordion: ((props: AccordionProps) => JSX.Element) & {
16
+ /**
17
+ * The component that displays a Accordion item.
18
+ */
19
+ Item: (props: AccordionItemProps) => JSX.Element;
20
+ };
@@ -0,0 +1,112 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { PointerChevron } from '@box/blueprint-web-assets/icons/Fill';
3
+ import { SurfaceStatusSurfaceLightBlue } from '@box/blueprint-web-assets/tokens/tokens';
4
+ import * as RadixAccordion from '@radix-ui/react-accordion';
5
+ import clsx from 'clsx';
6
+ import { Ghost } from '../ghost/ghost.js';
7
+ import { Status } from '../status/status.js';
8
+ import { isDefined } from '../utils/isDefined.js';
9
+ import styles from './accordion.module.js';
10
+
11
+ /**
12
+ * The root component that contains all the parts of a accordion.
13
+ *
14
+ * @example
15
+ * <Accordion>
16
+ * <Accordion.Item id="1" value="item-1" title="Item 1"><div>1st item</div></Accordion.Item>
17
+ * <Accordion.Item id="2" value="item-2" title="Item 2"><div>2nd item</div></Accordion.Item>
18
+ * <Accordion.Item id="3" value="item-3" title="Item 3"><div>3rd item </div></Accordion.Item>
19
+ * </Accordion>
20
+ */
21
+ const Root = props => {
22
+ return jsx(RadixAccordion.Root, {
23
+ ...props
24
+ });
25
+ };
26
+ const Item = props => {
27
+ const {
28
+ loading,
29
+ loadingAriaLabel,
30
+ id,
31
+ children,
32
+ className,
33
+ ...rest
34
+ } = props;
35
+ const accordionItemClasses = clsx(styles.accordionItem, className);
36
+ if (loading) {
37
+ return jsx("div", {
38
+ ...rest,
39
+ className: accordionItemClasses,
40
+ children: jsx("button", {
41
+ "aria-label": loadingAriaLabel,
42
+ className: styles.accordionTrigger,
43
+ disabled: true,
44
+ type: "button",
45
+ children: jsx(Ghost, {
46
+ variant: "rectangle"
47
+ })
48
+ })
49
+ });
50
+ }
51
+ if ('fixed' in props) {
52
+ return jsx("div", {
53
+ ...rest,
54
+ className: accordionItemClasses,
55
+ children: jsx("div", {
56
+ className: clsx({
57
+ [styles.accordionFixedContent]: Boolean(children)
58
+ }),
59
+ children: children
60
+ })
61
+ }, id);
62
+ }
63
+ // TODO: [DSYS-549] Refactor - spread props in a single place
64
+ const {
65
+ status,
66
+ title,
67
+ disabled,
68
+ ...itemRest
69
+ } = props;
70
+ return jsxs(RadixAccordion.Item, {
71
+ ...itemRest,
72
+ className: accordionItemClasses,
73
+ value: id,
74
+ children: [jsx(RadixAccordion.Header, {
75
+ asChild: true,
76
+ children: jsx(RadixAccordion.Trigger, {
77
+ className: styles.accordionTrigger,
78
+ disabled: disabled,
79
+ children: jsxs("h4", {
80
+ className: styles.accordionHeader,
81
+ children: [jsx("span", {
82
+ children: title
83
+ }), jsxs("div", {
84
+ className: styles.accordionHeaderTrigger,
85
+ children: [isDefined(status) && jsx(Status, {
86
+ className: styles.accordionStatus,
87
+ color: SurfaceStatusSurfaceLightBlue,
88
+ text: `${status}`
89
+ }), jsx(PointerChevron, {
90
+ "aria-hidden": "true",
91
+ className: styles.accordionTriggerIcon
92
+ })]
93
+ })]
94
+ })
95
+ })
96
+ }), jsx(RadixAccordion.Content, {
97
+ className: clsx(children && styles.accordionContent),
98
+ children: jsx("div", {
99
+ className: styles.accordionContentWrapper,
100
+ children: children
101
+ })
102
+ })]
103
+ }, id);
104
+ };
105
+ const Accordion = Object.assign(Root, {
106
+ /**
107
+ * The component that displays a Accordion item.
108
+ */
109
+ Item
110
+ });
111
+
112
+ export { Accordion, Item, Root };
@@ -0,0 +1,4 @@
1
+ import '../index.css';
2
+ var styles = {"accordionContent":"accordion-module_accordionContent__KFoGN","slideDown":"accordion-module_slideDown__Fx53W","slideUp":"accordion-module_slideUp__BVdEl","accordionContentWrapper":"accordion-module_accordionContentWrapper__msgJ-","accordionItem":"accordion-module_accordionItem__GAe-t","accordionFixedContent":"accordion-module_accordionFixedContent__RX-Rt","accordionHeader":"accordion-module_accordionHeader__yaoxJ","accordionHeaderTrigger":"accordion-module_accordionHeaderTrigger__QGvxX","accordionStatus":"accordion-module_accordionStatus__BLj91","accordionTrigger":"accordion-module_accordionTrigger__N0z-R","accordionTriggerIcon":"accordion-module_accordionTriggerIcon__jOsgi"};
3
+
4
+ export { styles as default };
@@ -0,0 +1,2 @@
1
+ export { Accordion } from './accordion';
2
+ export type { AccordionFixedItem, AccordionItem, AccordionProps, AccordionSectionItem } from './types';
@@ -0,0 +1,43 @@
1
+ /// <reference types="react" />
2
+ import { type AccordionItemProps as RadixAccordionItemProps, type AccordionMultipleProps, type AccordionSingleProps } from '@radix-ui/react-accordion';
3
+ import { type RequireAllOrNone } from 'type-fest';
4
+ type Loading = {
5
+ /** Loading state of the section. Loading sections are displaying a placeholder. When this is true `loadingAriaLabel` must also be provided. */
6
+ loading: boolean;
7
+ /** The aria-label for the ghost state. */
8
+ loadingAriaLabel: string;
9
+ };
10
+ export type AccordionBaseItem = {
11
+ /**
12
+ * Content of the accordion item that is displayed when the secton is expanded
13
+ */
14
+ id: string;
15
+ /**
16
+ * Content of the accordion item that is displayed when the secton is expanded
17
+ */
18
+ children?: React.ReactNode;
19
+ } & RequireAllOrNone<Loading, keyof Loading>;
20
+ /**
21
+ * Fixed sections are non-collapsible, have no title, only content, can't be disabled
22
+ */
23
+ export type AccordionFixedItem = AccordionBaseItem & {
24
+ fixed: true;
25
+ };
26
+ export type AccordionSectionItem = AccordionBaseItem & Omit<RadixAccordionItemProps, 'id'> & {
27
+ /**
28
+ * Header text displayed
29
+ */
30
+ title: string;
31
+ /**
32
+ * Number displayed in a status pill next to the title
33
+ * */
34
+ status?: number;
35
+ /**
36
+ * Disabled state of the section.
37
+ */
38
+ disabled?: boolean;
39
+ };
40
+ export type AccordionItem = AccordionSectionItem | AccordionFixedItem;
41
+ export type AccordionItemProps = AccordionItem & React.ComponentPropsWithRef<'div'>;
42
+ export type AccordionProps = (AccordionSingleProps | AccordionMultipleProps) & React.ComponentPropsWithRef<'div'>;
43
+ export {};
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { type ActionableInlineNoticeProps } from './types';
3
+ export declare const ActionableInlineNotice: import("react").ForwardRefExoticComponent<ActionableInlineNoticeProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,34 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { BaseInlineNotice } from '../primitives/base-inline-notice/index.js';
4
+
5
+ const ActionableInlineNotice = /*#__PURE__*/forwardRef(function ActionableInlineNotice(props, forwardedRef) {
6
+ const {
7
+ backgroundColor = 'backgroundBlue',
8
+ children,
9
+ icon,
10
+ iconAriaLabel,
11
+ text,
12
+ title
13
+ } = props;
14
+ return jsxs(BaseInlineNotice, {
15
+ ref: forwardedRef,
16
+ backgroundColor: backgroundColor,
17
+ children: [jsxs(BaseInlineNotice.ContentContainer, {
18
+ children: [icon && iconAriaLabel && jsx(BaseInlineNotice.Icon, {
19
+ icon: icon,
20
+ iconAriaLabel: iconAriaLabel
21
+ }), jsxs(BaseInlineNotice.Content, {
22
+ children: [title && jsx(BaseInlineNotice.Content.Title, {
23
+ children: title
24
+ }), jsx(BaseInlineNotice.Content.Body, {
25
+ children: text
26
+ })]
27
+ })]
28
+ }), jsx(BaseInlineNotice.Actions, {
29
+ children: children
30
+ })]
31
+ });
32
+ });
33
+
34
+ export { ActionableInlineNotice };
@@ -0,0 +1,60 @@
1
+ /// <reference types="react" />
2
+ export declare const ActionableInlineNotice: import("react").ForwardRefExoticComponent<import("./types").ActionableInlineNoticeProps & import("react").RefAttributes<HTMLDivElement>> & {
3
+ PrimaryAction: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/base-button").BaseButtonInterface & Required<Pick<{
4
+ loading?: boolean | undefined;
5
+ loadingAriaLabel?: string | undefined;
6
+ }, keyof {
7
+ loading?: boolean | undefined;
8
+ loadingAriaLabel?: string | undefined;
9
+ }>> & Omit<{
10
+ loading?: boolean | undefined;
11
+ loadingAriaLabel?: string | undefined;
12
+ }, keyof {
13
+ loading?: boolean | undefined;
14
+ loadingAriaLabel?: string | undefined;
15
+ }> & {
16
+ children: string;
17
+ className?: string | undefined;
18
+ }, "ref"> | Omit<import("../primitives/base-button").BaseButtonInterface & Partial<Record<keyof {
19
+ loading?: boolean | undefined;
20
+ loadingAriaLabel?: string | undefined;
21
+ }, never>> & Omit<{
22
+ loading?: boolean | undefined;
23
+ loadingAriaLabel?: string | undefined;
24
+ }, keyof {
25
+ loading?: boolean | undefined;
26
+ loadingAriaLabel?: string | undefined;
27
+ }> & {
28
+ children: string;
29
+ className?: string | undefined;
30
+ }, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
31
+ TertiaryAction: import("react").ForwardRefExoticComponent<(Omit<import("../primitives/base-button").BaseButtonInterface & Required<Pick<{
32
+ loading?: boolean | undefined;
33
+ loadingAriaLabel?: string | undefined;
34
+ }, keyof {
35
+ loading?: boolean | undefined;
36
+ loadingAriaLabel?: string | undefined;
37
+ }>> & Omit<{
38
+ loading?: boolean | undefined;
39
+ loadingAriaLabel?: string | undefined;
40
+ }, keyof {
41
+ loading?: boolean | undefined;
42
+ loadingAriaLabel?: string | undefined;
43
+ }> & {
44
+ children: string;
45
+ className?: string | undefined;
46
+ }, "ref"> | Omit<import("../primitives/base-button").BaseButtonInterface & Partial<Record<keyof {
47
+ loading?: boolean | undefined;
48
+ loadingAriaLabel?: string | undefined;
49
+ }, never>> & Omit<{
50
+ loading?: boolean | undefined;
51
+ loadingAriaLabel?: string | undefined;
52
+ }, keyof {
53
+ loading?: boolean | undefined;
54
+ loadingAriaLabel?: string | undefined;
55
+ }> & {
56
+ children: string;
57
+ className?: string | undefined;
58
+ }, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
59
+ };
60
+ export * from './types';
@@ -0,0 +1,9 @@
1
+ import { PrimaryAction, TertiaryAction } from '../primitives/base-inline-notice/base-inline-notice-actions.js';
2
+ import { ActionableInlineNotice as ActionableInlineNotice$1 } from './actionable-inline-notice.js';
3
+
4
+ const ActionableInlineNotice = Object.assign(ActionableInlineNotice$1, {
5
+ PrimaryAction,
6
+ TertiaryAction
7
+ });
8
+
9
+ export { ActionableInlineNotice };
@@ -0,0 +1,21 @@
1
+ import { type ReactElement } from 'react';
2
+ import { type RequireAllOrNone } from 'type-fest';
3
+ import { type BaseInlineNoticeProps, type ButtonProps } from '../primitives/base-inline-notice';
4
+ export type ActionableInlineNoticeProps = {
5
+ /** Governs background color for inline notice
6
+ * @default backgroundBlue
7
+ */
8
+ backgroundColor?: Extract<BaseInlineNoticeProps['backgroundColor'], 'backgroundBlue' | 'backgroundPurple'>;
9
+ /** Text for the body of the inline notice */
10
+ text: string;
11
+ /** Children buttons for the inline notice CTA. Specify either PrimaryAction OR both TertiaryAction and PrimaryAction. */
12
+ children: ReactElement<ButtonProps>;
13
+ /** Optional title for the inner text of the notice */
14
+ title?: string;
15
+ } & RequireAllOrNone<Icon, keyof Icon>;
16
+ export type Icon = {
17
+ /** Icon for notice */
18
+ icon: React.FunctionComponent<React.PropsWithChildren<React.SVGProps<SVGSVGElement>>>;
19
+ /** Icon aria label for notice when icon is provided */
20
+ iconAriaLabel: string;
21
+ };
@@ -0,0 +1,109 @@
1
+ /// <reference types="react" />
2
+ export declare const Avatar: import("react").ForwardRefExoticComponent<(Omit<Omit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
3
+ ref?: ((instance: HTMLImageElement | null) => void) | import("react").RefObject<HTMLImageElement> | null | undefined;
4
+ } & {
5
+ anonymous?: boolean | undefined;
6
+ children?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
7
+ size?: import("./types").Size | undefined;
8
+ text?: string | undefined;
9
+ } & Required<Pick<{
10
+ src?: string | undefined;
11
+ alt?: string | undefined;
12
+ }, keyof {
13
+ src?: string | undefined;
14
+ alt?: string | undefined;
15
+ }>> & Omit<{
16
+ src?: string | undefined;
17
+ alt?: string | undefined;
18
+ }, keyof {
19
+ src?: string | undefined;
20
+ alt?: string | undefined;
21
+ }> & Required<Pick<{
22
+ color?: string | undefined;
23
+ colorIndex?: number | undefined;
24
+ }, "color">> & Partial<Record<"colorIndex", never>> & Omit<{
25
+ color?: string | undefined;
26
+ colorIndex?: number | undefined;
27
+ }, keyof {
28
+ color?: string | undefined;
29
+ colorIndex?: number | undefined;
30
+ }>, "ref"> | Omit<Omit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
31
+ ref?: ((instance: HTMLImageElement | null) => void) | import("react").RefObject<HTMLImageElement> | null | undefined;
32
+ } & {
33
+ anonymous?: boolean | undefined;
34
+ children?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
35
+ size?: import("./types").Size | undefined;
36
+ text?: string | undefined;
37
+ } & Required<Pick<{
38
+ src?: string | undefined;
39
+ alt?: string | undefined;
40
+ }, keyof {
41
+ src?: string | undefined;
42
+ alt?: string | undefined;
43
+ }>> & Omit<{
44
+ src?: string | undefined;
45
+ alt?: string | undefined;
46
+ }, keyof {
47
+ src?: string | undefined;
48
+ alt?: string | undefined;
49
+ }> & Required<Pick<{
50
+ color?: string | undefined;
51
+ colorIndex?: number | undefined;
52
+ }, "colorIndex">> & Partial<Record<"color", never>> & Omit<{
53
+ color?: string | undefined;
54
+ colorIndex?: number | undefined;
55
+ }, keyof {
56
+ color?: string | undefined;
57
+ colorIndex?: number | undefined;
58
+ }>, "ref"> | Omit<Omit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
59
+ ref?: ((instance: HTMLImageElement | null) => void) | import("react").RefObject<HTMLImageElement> | null | undefined;
60
+ } & {
61
+ anonymous?: boolean | undefined;
62
+ children?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
63
+ size?: import("./types").Size | undefined;
64
+ text?: string | undefined;
65
+ } & Partial<Record<keyof {
66
+ src?: string | undefined;
67
+ alt?: string | undefined;
68
+ }, never>> & Omit<{
69
+ src?: string | undefined;
70
+ alt?: string | undefined;
71
+ }, keyof {
72
+ src?: string | undefined;
73
+ alt?: string | undefined;
74
+ }> & Required<Pick<{
75
+ color?: string | undefined;
76
+ colorIndex?: number | undefined;
77
+ }, "color">> & Partial<Record<"colorIndex", never>> & Omit<{
78
+ color?: string | undefined;
79
+ colorIndex?: number | undefined;
80
+ }, keyof {
81
+ color?: string | undefined;
82
+ colorIndex?: number | undefined;
83
+ }>, "ref"> | Omit<Omit<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, "ref"> & {
84
+ ref?: ((instance: HTMLImageElement | null) => void) | import("react").RefObject<HTMLImageElement> | null | undefined;
85
+ } & {
86
+ anonymous?: boolean | undefined;
87
+ children?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
88
+ size?: import("./types").Size | undefined;
89
+ text?: string | undefined;
90
+ } & Partial<Record<keyof {
91
+ src?: string | undefined;
92
+ alt?: string | undefined;
93
+ }, never>> & Omit<{
94
+ src?: string | undefined;
95
+ alt?: string | undefined;
96
+ }, keyof {
97
+ src?: string | undefined;
98
+ alt?: string | undefined;
99
+ }> & Required<Pick<{
100
+ color?: string | undefined;
101
+ colorIndex?: number | undefined;
102
+ }, "colorIndex">> & Partial<Record<"color", never>> & Omit<{
103
+ color?: string | undefined;
104
+ colorIndex?: number | undefined;
105
+ }, keyof {
106
+ color?: string | undefined;
107
+ colorIndex?: number | undefined;
108
+ }>, "ref">) & import("react").RefAttributes<HTMLImageElement>>;
109
+ export default Avatar;
@@ -0,0 +1,127 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { AvatarBadge } from '@box/blueprint-web-assets/icons/Fill';
3
+ import { Gray10, GrayBlack } from '@box/blueprint-web-assets/tokens/tokens';
4
+ import clsx from 'clsx';
5
+ import { forwardRef, useState, useEffect, Children, cloneElement } from 'react';
6
+ import styles from './avatar.module.js';
7
+ import { colors, anonymousAvatarSizes, badgeSizes } from './consts.js';
8
+
9
+ /** This components serves the purpose of the underlay for AvatarBadge to make the transparent lines displayed in proper color. */
10
+ function AnonymousAvatarIconBackground({
11
+ size
12
+ }) {
13
+ return jsx("svg", {
14
+ className: styles.svg,
15
+ height: size,
16
+ role: "presentation",
17
+ viewBox: `0 0 ${size} ${size}`,
18
+ width: size,
19
+ children: jsx("circle", {
20
+ cx: `calc(${size} / 2)`,
21
+ cy: `calc(${size} / 2)`,
22
+ fill: GrayBlack,
23
+ r: `calc(${size} / 2 - 1px)`
24
+ })
25
+ });
26
+ }
27
+ function AnonymousAvatarIcon({
28
+ size
29
+ }) {
30
+ return jsxs("div", {
31
+ className: styles.anonymousAvatar,
32
+ style: {
33
+ width: size,
34
+ height: size
35
+ },
36
+ children: [jsx(AnonymousAvatarIconBackground, {
37
+ size: size
38
+ }), jsx(AvatarBadge, {
39
+ className: styles.svg,
40
+ color: Gray10,
41
+ height: size,
42
+ role: "presentation",
43
+ width: size
44
+ })]
45
+ });
46
+ }
47
+ const Avatar = /*#__PURE__*/forwardRef((props, forwardedRef) => {
48
+ const {
49
+ alt,
50
+ anonymous,
51
+ // 'aria-label': ariaLabel, disabled till we implement proper styles for clickable avatar
52
+ children,
53
+ className,
54
+ color,
55
+ colorIndex,
56
+ loading = 'lazy',
57
+ // onClick,
58
+ onLoad,
59
+ src,
60
+ size = 'large',
61
+ text,
62
+ ...rest
63
+ } = props;
64
+ const [imageIsLoaded, setImageIsLoaded] = useState(false);
65
+ useEffect(() => {
66
+ setImageIsLoaded(false);
67
+ }, [src]);
68
+ const backgroundColor = color || colors[(colorIndex || 0) % colors.length];
69
+ const anonymousAvatarSize = anonymousAvatarSizes[size];
70
+ const child = children && Children.only(children);
71
+ const badgeSize = badgeSizes[size];
72
+ const badge = child && /*#__PURE__*/cloneElement(child, {
73
+ height: badgeSize,
74
+ width: badgeSize
75
+ });
76
+ const imageIsLoading = !!src && !imageIsLoaded;
77
+ const shouldShowText = !anonymous && text && !imageIsLoaded;
78
+ const shouldShowAnonymousAvatar = anonymous || imageIsLoading && !text;
79
+ const shouldShowImage = !anonymous && src;
80
+ const avatarContents = jsxs(Fragment, {
81
+ children: [shouldShowText && jsx("div", {
82
+ className: clsx(styles.text, styles[`length-${text.length}`]),
83
+ style: {
84
+ backgroundColor
85
+ },
86
+ children: text
87
+ }), shouldShowAnonymousAvatar && jsx(AnonymousAvatarIcon, {
88
+ size: anonymousAvatarSize
89
+ }), shouldShowImage && jsx("img", {
90
+ ...rest,
91
+ ref: forwardedRef,
92
+ alt: alt,
93
+ className: clsx(styles.image, {
94
+ [styles.loading]: imageIsLoading
95
+ }),
96
+ loading: loading,
97
+ onLoad: event => {
98
+ setImageIsLoaded(true);
99
+ onLoad?.(event);
100
+ },
101
+ src: src
102
+ }), badge && jsx("div", {
103
+ className: styles.badge,
104
+ children: badge
105
+ })]
106
+ });
107
+ // disabled till we implement proper styles for clickable avatar
108
+ // if (onClick) {
109
+ // return (
110
+ // <button
111
+ // aria-label={ariaLabel}
112
+ // className={className}
113
+ // onClick={onClick}
114
+ // type="button"
115
+ // >
116
+ // {avatarContents}
117
+ // </button>
118
+ // );
119
+ // }
120
+ return jsx("div", {
121
+ className: clsx(styles.avatar, styles[size], className),
122
+ children: avatarContents
123
+ });
124
+ });
125
+ Avatar.displayName = 'Avatar';
126
+
127
+ export { Avatar, Avatar as default };
@@ -0,0 +1,4 @@
1
+ import '../index.css';
2
+ var styles = {"avatar":"avatar-module_avatar__rAG5F","badge":"avatar-module_badge__RYzyA","text":"avatar-module_text__jfYUy","small":"avatar-module_small__fHJyP","length-1":"avatar-module_length-1__wXxq7","length-2":"avatar-module_length-2__5LvKQ","medium":"avatar-module_medium__PXTvh","large":"avatar-module_large__iZJKW","length-3":"avatar-module_length-3__1-Ica","length-4":"avatar-module_length-4__0XGeM","xlarge":"avatar-module_xlarge__QAnxm","image":"avatar-module_image__pCMuB","loading":"avatar-module_loading__qXzH-","anonymousAvatar":"avatar-module_anonymousAvatar__-1tzk","svg":"avatar-module_svg__AuhV9"};
3
+
4
+ export { styles as default };
@@ -0,0 +1,5 @@
1
+ import { type Color, type Size } from './types';
2
+ export declare const anonymousAvatarSizes: Record<Size, string>;
3
+ export declare const badgeSizes: Record<Size, string>;
4
+ export declare const colorsMap: Record<string, Color>;
5
+ export declare const colors: string[];
@@ -0,0 +1,29 @@
1
+ import { BoxBlue50, DarkBlue50, Yellow50, GreenLight50, Yellorange50, LightBlue50, WatermelonRed50, PurpleRain50, Orange50, Grimace50, Size4, Size5, Size6, Size8, Size2, Size3 } from '@box/blueprint-web-assets/tokens/tokens';
2
+
3
+ const anonymousAvatarSizes = {
4
+ small: Size4,
5
+ medium: Size5,
6
+ large: Size6,
7
+ xlarge: Size8
8
+ };
9
+ const badgeSizes = {
10
+ small: Size2,
11
+ medium: Size3,
12
+ large: Size3,
13
+ xlarge: Size4
14
+ };
15
+ const colorsMap = {
16
+ BoxBlue50,
17
+ DarkBlue50,
18
+ Yellow50,
19
+ GreenLight50,
20
+ Yellorange50,
21
+ LightBlue50,
22
+ WatermelonRed50,
23
+ PurpleRain50,
24
+ Orange50,
25
+ Grimace50
26
+ };
27
+ const colors = Object.values(colorsMap);
28
+
29
+ export { anonymousAvatarSizes, badgeSizes, colors, colorsMap };
@@ -0,0 +1,2 @@
1
+ export { Avatar } from './avatar';
2
+ export { type AvatarProps } from './types';
@@ -0,0 +1,34 @@
1
+ import { type BoxBlue50, type DarkBlue50, type GreenLight50, type Grimace50, type LightBlue50, type Orange50, type PurpleRain50, type WatermelonRed50, type Yellorange50, type Yellow50 } from '@box/blueprint-web-assets/tokens/tokens';
2
+ import { type ReactElement } from 'react';
3
+ import { type RequireAllOrNone, type RequireExactlyOne } from 'type-fest';
4
+ export type Size = 'small' | 'medium' | 'large' | 'xlarge';
5
+ export type Color = typeof BoxBlue50 | typeof DarkBlue50 | typeof Yellow50 | typeof GreenLight50 | typeof Yellorange50 | typeof LightBlue50 | typeof WatermelonRed50 | typeof PurpleRain50 | typeof Orange50 | typeof Grimace50;
6
+ type Image = {
7
+ /** The image to display. When the image is loading or if it fails to load, the fallback is displayed.
8
+ * The fallback is the text. If the text is not provided, the fallback is the anonymous user image.
9
+ */
10
+ src?: string;
11
+ /** The alt text for the image */
12
+ alt?: string;
13
+ };
14
+ type WithColor = {
15
+ /** The color of the avatar background when displaying the letter or the number */
16
+ color?: Color;
17
+ /** The index of the color of the avatar background when displaying the letter or the number.
18
+ * A convenience replacement for the color prop to facilitate providing a hash of the user data.
19
+ * It is ignored when the color prop is provided. */
20
+ colorIndex?: number;
21
+ };
22
+ export type AvatarProps = React.ComponentPropsWithRef<'img'> & {
23
+ /** Whether to display the anonymous user image */
24
+ anonymous?: boolean;
25
+ /** The badge */
26
+ children?: ReactElement;
27
+ /** The size of the avatar */
28
+ size?: Size;
29
+ /** The text to display, e.g. the user initial or the number of users editing the document.
30
+ * Numbers can be formatted with formatNumber() that is exposed along with the Avatar component.
31
+ */
32
+ text?: string;
33
+ } & RequireAllOrNone<Image, keyof Image> & RequireExactlyOne<WithColor, keyof WithColor>;
34
+ export {};
@@ -0,0 +1,3 @@
1
+ /** Used for presentational puproses in storybook.
2
+ * It is not meant for production because it doesn't take i18n into account */
3
+ export declare function formatNumber(input: number): string;