@brycks/core-front 0.2.7 → 0.2.9

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 (777) hide show
  1. package/dist/components/data/InfoItem/InfoItem.cjs +2 -0
  2. package/dist/components/data/InfoItem/InfoItem.cjs.map +1 -0
  3. package/dist/components/data/InfoItem/InfoItem.js +140 -0
  4. package/dist/components/data/InfoItem/InfoItem.js.map +1 -0
  5. package/dist/components/data/List/List.cjs +2 -0
  6. package/dist/components/data/List/List.cjs.map +1 -0
  7. package/dist/components/data/List/List.js +178 -0
  8. package/dist/components/data/List/List.js.map +1 -0
  9. package/dist/components/data/Table/Table.cjs +2 -0
  10. package/dist/components/data/Table/Table.cjs.map +1 -0
  11. package/dist/components/data/Table/Table.js +247 -0
  12. package/dist/components/data/Table/Table.js.map +1 -0
  13. package/dist/components/data.cjs +2 -0
  14. package/dist/components/data.cjs.map +1 -0
  15. package/dist/components/data.d.ts +2 -0
  16. package/dist/components/data.js +20 -0
  17. package/dist/components/data.js.map +1 -0
  18. package/dist/components/feedback/Alert/Alert.cjs +2 -0
  19. package/dist/components/feedback/Alert/Alert.cjs.map +1 -0
  20. package/dist/components/feedback/Alert/Alert.js +204 -0
  21. package/dist/components/feedback/Alert/Alert.js.map +1 -0
  22. package/dist/components/feedback/Drawer/Drawer.cjs +23 -0
  23. package/dist/components/feedback/Drawer/Drawer.cjs.map +1 -0
  24. package/dist/components/feedback/Drawer/Drawer.js +199 -0
  25. package/dist/components/feedback/Drawer/Drawer.js.map +1 -0
  26. package/dist/components/feedback/Modal/Modal.cjs +2 -0
  27. package/dist/components/feedback/Modal/Modal.cjs.map +1 -0
  28. package/dist/components/feedback/Modal/Modal.js +183 -0
  29. package/dist/components/feedback/Modal/Modal.js.map +1 -0
  30. package/dist/components/feedback/Popover/Popover.cjs +7 -0
  31. package/dist/components/feedback/Popover/Popover.cjs.map +1 -0
  32. package/dist/components/feedback/Popover/Popover.js +168 -0
  33. package/dist/components/feedback/Popover/Popover.js.map +1 -0
  34. package/dist/components/feedback/Progress/Progress.cjs +12 -0
  35. package/dist/components/feedback/Progress/Progress.cjs.map +1 -0
  36. package/dist/components/feedback/Progress/Progress.js +172 -0
  37. package/dist/components/feedback/Progress/Progress.js.map +1 -0
  38. package/dist/components/feedback/Toast/Toast.cjs +11 -0
  39. package/dist/components/feedback/Toast/Toast.cjs.map +1 -0
  40. package/dist/components/feedback/Toast/Toast.js +216 -0
  41. package/dist/components/feedback/Toast/Toast.js.map +1 -0
  42. package/dist/components/feedback/Toast/ToastContext.cjs +2 -0
  43. package/dist/components/feedback/Toast/ToastContext.cjs.map +1 -0
  44. package/dist/components/feedback/Toast/ToastContext.js +13 -0
  45. package/dist/components/feedback/Toast/ToastContext.js.map +1 -0
  46. package/dist/components/feedback/Tooltip/Tooltip.cjs +7 -0
  47. package/dist/components/feedback/Tooltip/Tooltip.cjs.map +1 -0
  48. package/dist/components/feedback/Tooltip/Tooltip.js +128 -0
  49. package/dist/components/feedback/Tooltip/Tooltip.js.map +1 -0
  50. package/dist/components/feedback.cjs +2 -0
  51. package/dist/components/feedback.cjs.map +1 -0
  52. package/dist/components/feedback.d.ts +2 -0
  53. package/dist/components/feedback.js +20 -0
  54. package/dist/components/feedback.js.map +1 -0
  55. package/dist/components/form/Checkbox/Checkbox.cjs +2 -0
  56. package/dist/components/form/Checkbox/Checkbox.cjs.map +1 -0
  57. package/dist/components/form/Checkbox/Checkbox.js +144 -0
  58. package/dist/components/form/Checkbox/Checkbox.js.map +1 -0
  59. package/dist/components/form/DateInput/DateInput.cjs +2 -0
  60. package/dist/components/form/DateInput/DateInput.cjs.map +1 -0
  61. package/dist/components/form/DateInput/DateInput.js +119 -0
  62. package/dist/components/form/DateInput/DateInput.js.map +1 -0
  63. package/dist/components/form/DropZone/DropZone.cjs +2 -0
  64. package/dist/components/form/DropZone/DropZone.cjs.map +1 -0
  65. package/dist/components/form/DropZone/DropZone.js +132 -0
  66. package/dist/components/form/DropZone/DropZone.js.map +1 -0
  67. package/dist/components/form/FieldError/FieldError.cjs +2 -0
  68. package/dist/components/form/FieldError/FieldError.cjs.map +1 -0
  69. package/dist/components/form/FieldError/FieldError.js +77 -0
  70. package/dist/components/form/FieldError/FieldError.js.map +1 -0
  71. package/dist/components/form/FileInput/FileInput.cjs +2 -0
  72. package/dist/components/form/FileInput/FileInput.cjs.map +1 -0
  73. package/dist/components/form/FileInput/FileInput.js +163 -0
  74. package/dist/components/form/FileInput/FileInput.js.map +1 -0
  75. package/dist/components/form/Form/Form.cjs +2 -0
  76. package/dist/components/form/Form/Form.cjs.map +1 -0
  77. package/dist/components/form/Form/Form.js +67 -0
  78. package/dist/components/form/Form/Form.js.map +1 -0
  79. package/dist/components/form/FormCard/FormCard.cjs +2 -0
  80. package/dist/components/form/FormCard/FormCard.cjs.map +1 -0
  81. package/dist/components/form/FormCard/FormCard.js +91 -0
  82. package/dist/components/form/FormCard/FormCard.js.map +1 -0
  83. package/dist/components/form/FormField/FormField.cjs +2 -0
  84. package/dist/components/form/FormField/FormField.cjs.map +1 -0
  85. package/dist/components/form/FormField/FormField.js +97 -0
  86. package/dist/components/form/FormField/FormField.js.map +1 -0
  87. package/dist/components/form/FormGroup/FormGroup.cjs +2 -0
  88. package/dist/components/form/FormGroup/FormGroup.cjs.map +1 -0
  89. package/dist/components/form/FormGroup/FormGroup.js +79 -0
  90. package/dist/components/form/FormGroup/FormGroup.js.map +1 -0
  91. package/dist/components/form/FormLabel/FormLabel.cjs +2 -0
  92. package/dist/components/form/FormLabel/FormLabel.cjs.map +1 -0
  93. package/dist/components/form/FormLabel/FormLabel.js +68 -0
  94. package/dist/components/form/FormLabel/FormLabel.js.map +1 -0
  95. package/dist/components/form/Input/Input.cjs +2 -0
  96. package/dist/components/form/Input/Input.cjs.map +1 -0
  97. package/dist/components/form/Input/Input.js +155 -0
  98. package/dist/components/form/Input/Input.js.map +1 -0
  99. package/dist/components/form/Radio/Radio.cjs +2 -0
  100. package/dist/components/form/Radio/Radio.cjs.map +1 -0
  101. package/dist/components/form/Radio/Radio.js +162 -0
  102. package/dist/components/form/Radio/Radio.js.map +1 -0
  103. package/dist/components/form/Select/Select.cjs +2 -0
  104. package/dist/components/form/Select/Select.cjs.map +1 -0
  105. package/dist/components/form/Select/Select.js +114 -0
  106. package/dist/components/form/Select/Select.js.map +1 -0
  107. package/dist/components/form/Slider/Slider.cjs +2 -0
  108. package/dist/components/form/Slider/Slider.cjs.map +1 -0
  109. package/dist/components/form/Slider/Slider.js +147 -0
  110. package/dist/components/form/Slider/Slider.js.map +1 -0
  111. package/dist/components/form/Switch/Switch.cjs +2 -0
  112. package/dist/components/form/Switch/Switch.cjs.map +1 -0
  113. package/dist/components/form/Switch/Switch.js +118 -0
  114. package/dist/components/form/Switch/Switch.js.map +1 -0
  115. package/dist/components/form/TextField/TextField.cjs +2 -0
  116. package/dist/components/form/TextField/TextField.cjs.map +1 -0
  117. package/dist/components/form/TextField/TextField.js +89 -0
  118. package/dist/components/form/TextField/TextField.js.map +1 -0
  119. package/dist/components/form/Textarea/Textarea.cjs +2 -0
  120. package/dist/components/form/Textarea/Textarea.cjs.map +1 -0
  121. package/dist/components/form/Textarea/Textarea.js +121 -0
  122. package/dist/components/form/Textarea/Textarea.js.map +1 -0
  123. package/dist/components/form.cjs +2 -0
  124. package/dist/components/form.cjs.map +1 -0
  125. package/dist/components/form.d.ts +2 -0
  126. package/dist/components/form.js +34 -0
  127. package/dist/components/form.js.map +1 -0
  128. package/dist/components/layout/AspectRatio/AspectRatio.cjs +2 -0
  129. package/dist/components/layout/AspectRatio/AspectRatio.cjs.map +1 -0
  130. package/dist/components/layout/AspectRatio/AspectRatio.js +50 -0
  131. package/dist/components/layout/AspectRatio/AspectRatio.js.map +1 -0
  132. package/dist/components/layout/Box/Box.cjs +2 -0
  133. package/dist/components/layout/Box/Box.cjs.map +1 -0
  134. package/dist/components/layout/Box/Box.js +58 -0
  135. package/dist/components/layout/Box/Box.js.map +1 -0
  136. package/dist/components/layout/Box/Box.styles.cjs +2 -0
  137. package/dist/components/layout/Box/Box.styles.cjs.map +1 -0
  138. package/dist/components/layout/Box/Box.styles.js +30 -0
  139. package/dist/components/layout/Box/Box.styles.js.map +1 -0
  140. package/dist/components/layout/Card/Card.cjs +2 -0
  141. package/dist/components/layout/Card/Card.cjs.map +1 -0
  142. package/dist/components/layout/Card/Card.js +135 -0
  143. package/dist/components/layout/Card/Card.js.map +1 -0
  144. package/dist/components/layout/Container/Container.cjs +2 -0
  145. package/dist/components/layout/Container/Container.cjs.map +1 -0
  146. package/dist/components/layout/Container/Container.js +57 -0
  147. package/dist/components/layout/Container/Container.js.map +1 -0
  148. package/dist/components/layout/Flex/Flex.cjs +2 -0
  149. package/dist/components/layout/Flex/Flex.cjs.map +1 -0
  150. package/dist/components/layout/Flex/Flex.js +101 -0
  151. package/dist/components/layout/Flex/Flex.js.map +1 -0
  152. package/dist/components/layout/Grid/Grid.cjs +2 -0
  153. package/dist/components/layout/Grid/Grid.cjs.map +1 -0
  154. package/dist/components/layout/Grid/Grid.js +92 -0
  155. package/dist/components/layout/Grid/Grid.js.map +1 -0
  156. package/dist/components/layout/Section/Section.cjs +2 -0
  157. package/dist/components/layout/Section/Section.cjs.map +1 -0
  158. package/dist/components/layout/Section/Section.js +85 -0
  159. package/dist/components/layout/Section/Section.js.map +1 -0
  160. package/dist/components/layout/Semantic/Semantic.cjs +2 -0
  161. package/dist/components/layout/Semantic/Semantic.cjs.map +1 -0
  162. package/dist/components/layout/Semantic/Semantic.js +103 -0
  163. package/dist/components/layout/Semantic/Semantic.js.map +1 -0
  164. package/dist/components/layout/Spacer/Spacer.cjs +2 -0
  165. package/dist/components/layout/Spacer/Spacer.cjs.map +1 -0
  166. package/dist/components/layout/Spacer/Spacer.js +38 -0
  167. package/dist/components/layout/Spacer/Spacer.js.map +1 -0
  168. package/dist/components/layout/Stack/Stack.cjs +2 -0
  169. package/dist/components/layout/Stack/Stack.cjs.map +1 -0
  170. package/dist/components/layout/Stack/Stack.js +67 -0
  171. package/dist/components/layout/Stack/Stack.js.map +1 -0
  172. package/dist/components/layout.cjs +2 -0
  173. package/dist/components/layout.cjs.map +1 -0
  174. package/dist/components/layout.d.ts +2 -0
  175. package/dist/components/layout.js +35 -0
  176. package/dist/components/layout.js.map +1 -0
  177. package/dist/components/media/Image/Image.cjs +2 -0
  178. package/dist/components/media/Image/Image.cjs.map +1 -0
  179. package/dist/components/media/Image/Image.js +171 -0
  180. package/dist/components/media/Image/Image.js.map +1 -0
  181. package/dist/components/media/ImageThumbnail/ImageThumbnail.cjs +2 -0
  182. package/dist/components/media/ImageThumbnail/ImageThumbnail.cjs.map +1 -0
  183. package/dist/components/media/ImageThumbnail/ImageThumbnail.js +112 -0
  184. package/dist/components/media/ImageThumbnail/ImageThumbnail.js.map +1 -0
  185. package/dist/components/media/Video/Video.cjs +2 -0
  186. package/dist/components/media/Video/Video.cjs.map +1 -0
  187. package/dist/components/media/Video/Video.js +185 -0
  188. package/dist/components/media/Video/Video.js.map +1 -0
  189. package/dist/components/navigation/Accordion/Accordion.cjs +2 -0
  190. package/dist/components/navigation/Accordion/Accordion.cjs.map +1 -0
  191. package/dist/components/navigation/Accordion/Accordion.js +180 -0
  192. package/dist/components/navigation/Accordion/Accordion.js.map +1 -0
  193. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs +2 -0
  194. package/dist/components/navigation/Breadcrumb/Breadcrumb.cjs.map +1 -0
  195. package/dist/components/navigation/Breadcrumb/Breadcrumb.js +137 -0
  196. package/dist/components/navigation/Breadcrumb/Breadcrumb.js.map +1 -0
  197. package/dist/components/navigation/Dropdown/Dropdown.cjs +7 -0
  198. package/dist/components/navigation/Dropdown/Dropdown.cjs.map +1 -0
  199. package/dist/components/navigation/Dropdown/Dropdown.js +259 -0
  200. package/dist/components/navigation/Dropdown/Dropdown.js.map +1 -0
  201. package/dist/components/navigation/Menu/Menu.cjs +2 -0
  202. package/dist/components/navigation/Menu/Menu.cjs.map +1 -0
  203. package/dist/components/navigation/Menu/Menu.js +151 -0
  204. package/dist/components/navigation/Menu/Menu.js.map +1 -0
  205. package/dist/components/navigation/Pagination/Pagination.cjs +2 -0
  206. package/dist/components/navigation/Pagination/Pagination.cjs.map +1 -0
  207. package/dist/components/navigation/Pagination/Pagination.js +201 -0
  208. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  209. package/dist/components/navigation/Tabs/Tabs.cjs +7 -0
  210. package/dist/components/navigation/Tabs/Tabs.cjs.map +1 -0
  211. package/dist/components/navigation/Tabs/Tabs.js +196 -0
  212. package/dist/components/navigation/Tabs/Tabs.js.map +1 -0
  213. package/dist/components/navigation.cjs +2 -0
  214. package/dist/components/navigation.cjs.map +1 -0
  215. package/dist/components/navigation.d.ts +2 -0
  216. package/dist/components/navigation.js +29 -0
  217. package/dist/components/navigation.js.map +1 -0
  218. package/dist/components/primitives/Button/Button.cjs +2 -0
  219. package/dist/components/primitives/Button/Button.cjs.map +1 -0
  220. package/dist/components/primitives/Button/Button.js +173 -0
  221. package/dist/components/primitives/Button/Button.js.map +1 -0
  222. package/dist/components/primitives/Button/Button.styles.cjs +2 -0
  223. package/dist/components/primitives/Button/Button.styles.cjs.map +1 -0
  224. package/dist/components/primitives/Button/Button.styles.js +321 -0
  225. package/dist/components/primitives/Button/Button.styles.js.map +1 -0
  226. package/dist/components/primitives/Icon/Icon.cjs +2 -0
  227. package/dist/components/primitives/Icon/Icon.cjs.map +1 -0
  228. package/dist/components/primitives/Icon/Icon.js +58 -0
  229. package/dist/components/primitives/Icon/Icon.js.map +1 -0
  230. package/dist/components/primitives/Icon/iconPaths.cjs +2 -0
  231. package/dist/components/primitives/Icon/iconPaths.cjs.map +1 -0
  232. package/dist/components/primitives/Icon/iconPaths.js +63 -0
  233. package/dist/components/primitives/Icon/iconPaths.js.map +1 -0
  234. package/dist/components/typography/Heading/Heading.cjs +2 -0
  235. package/dist/components/typography/Heading/Heading.cjs.map +1 -0
  236. package/dist/components/typography/Heading/Heading.js +65 -0
  237. package/dist/components/typography/Heading/Heading.js.map +1 -0
  238. package/dist/components/typography/Text/Text.cjs +2 -0
  239. package/dist/components/typography/Text/Text.cjs.map +1 -0
  240. package/dist/components/typography/Text/Text.js +88 -0
  241. package/dist/components/typography/Text/Text.js.map +1 -0
  242. package/dist/components/utility/Avatar/Avatar.cjs +2 -0
  243. package/dist/components/utility/Avatar/Avatar.cjs.map +1 -0
  244. package/dist/components/utility/Avatar/Avatar.js +91 -0
  245. package/dist/components/utility/Avatar/Avatar.js.map +1 -0
  246. package/dist/components/utility/Badge/Badge.cjs +2 -0
  247. package/dist/components/utility/Badge/Badge.cjs.map +1 -0
  248. package/dist/components/utility/Badge/Badge.js +90 -0
  249. package/dist/components/utility/Badge/Badge.js.map +1 -0
  250. package/dist/components/utility/Divider/Divider.cjs +2 -0
  251. package/dist/components/utility/Divider/Divider.cjs.map +1 -0
  252. package/dist/components/utility/Divider/Divider.js +87 -0
  253. package/dist/components/utility/Divider/Divider.js.map +1 -0
  254. package/dist/components/utility/EmptyState/EmptyState.cjs +2 -0
  255. package/dist/components/utility/EmptyState/EmptyState.cjs.map +1 -0
  256. package/dist/components/utility/EmptyState/EmptyState.js +132 -0
  257. package/dist/components/utility/EmptyState/EmptyState.js.map +1 -0
  258. package/dist/components/utility/FocusTrap/FocusTrap.cjs +2 -0
  259. package/dist/components/utility/FocusTrap/FocusTrap.cjs.map +1 -0
  260. package/dist/components/utility/FocusTrap/FocusTrap.js +35 -0
  261. package/dist/components/utility/FocusTrap/FocusTrap.js.map +1 -0
  262. package/dist/components/utility/Loader/Loader.cjs +2 -0
  263. package/dist/components/utility/Loader/Loader.cjs.map +1 -0
  264. package/dist/components/utility/Loader/Loader.js +142 -0
  265. package/dist/components/utility/Loader/Loader.js.map +1 -0
  266. package/dist/components/utility/Logo/Logo.cjs +2 -0
  267. package/dist/components/utility/Logo/Logo.cjs.map +1 -0
  268. package/dist/components/utility/Logo/Logo.js +61 -0
  269. package/dist/components/utility/Logo/Logo.js.map +1 -0
  270. package/dist/components/utility/Overlay/Overlay.cjs +7 -0
  271. package/dist/components/utility/Overlay/Overlay.cjs.map +1 -0
  272. package/dist/components/utility/Overlay/Overlay.js +59 -0
  273. package/dist/components/utility/Overlay/Overlay.js.map +1 -0
  274. package/dist/components/utility/Portal/Portal.cjs +2 -0
  275. package/dist/components/utility/Portal/Portal.cjs.map +1 -0
  276. package/dist/components/utility/Portal/Portal.js +18 -0
  277. package/dist/components/utility/Portal/Portal.js.map +1 -0
  278. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs +2 -0
  279. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.cjs.map +1 -0
  280. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.js +53 -0
  281. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.js.map +1 -0
  282. package/dist/components/utility/Skeleton/Skeleton.cjs +2 -0
  283. package/dist/components/utility/Skeleton/Skeleton.cjs.map +1 -0
  284. package/dist/components/utility/Skeleton/Skeleton.js +91 -0
  285. package/dist/components/utility/Skeleton/Skeleton.js.map +1 -0
  286. package/dist/components/utility.cjs +2 -0
  287. package/dist/components/utility.cjs.map +1 -0
  288. package/dist/components/utility.d.ts +2 -0
  289. package/dist/components/utility.js +29 -0
  290. package/dist/components/utility.js.map +1 -0
  291. package/dist/data.d.ts +198 -0
  292. package/dist/design-system/primitives/focus.cjs +2 -0
  293. package/dist/design-system/primitives/focus.cjs.map +1 -0
  294. package/dist/design-system/primitives/focus.js +42 -0
  295. package/dist/design-system/primitives/focus.js.map +1 -0
  296. package/dist/design-system/primitives/layout.cjs +2 -0
  297. package/dist/design-system/primitives/layout.cjs.map +1 -0
  298. package/dist/design-system/primitives/layout.js +79 -0
  299. package/dist/design-system/primitives/layout.js.map +1 -0
  300. package/dist/design-system/primitives/opacity.cjs +2 -0
  301. package/dist/design-system/primitives/opacity.cjs.map +1 -0
  302. package/dist/design-system/primitives/opacity.js +72 -0
  303. package/dist/design-system/primitives/opacity.js.map +1 -0
  304. package/dist/design-system/primitives/sizing.cjs +2 -0
  305. package/dist/design-system/primitives/sizing.cjs.map +1 -0
  306. package/dist/design-system/primitives/sizing.js +118 -0
  307. package/dist/design-system/primitives/sizing.js.map +1 -0
  308. package/dist/design-system/primitives/transitions.cjs +52 -0
  309. package/dist/design-system/primitives/transitions.cjs.map +1 -0
  310. package/dist/design-system/primitives/transitions.js +121 -0
  311. package/dist/design-system/primitives/transitions.js.map +1 -0
  312. package/dist/design-system/primitives/typography.cjs +2 -0
  313. package/dist/design-system/primitives/typography.cjs.map +1 -0
  314. package/dist/design-system/primitives/typography.js +146 -0
  315. package/dist/design-system/primitives/typography.js.map +1 -0
  316. package/dist/design-system/themes/ThemeProvider.cjs +2 -0
  317. package/dist/design-system/themes/ThemeProvider.cjs.map +1 -0
  318. package/dist/design-system/themes/ThemeProvider.js +78 -0
  319. package/dist/design-system/themes/ThemeProvider.js.map +1 -0
  320. package/dist/design-system/themes/cssVariables.cjs +2 -0
  321. package/dist/design-system/themes/cssVariables.cjs.map +1 -0
  322. package/dist/design-system/themes/cssVariables.js +57 -0
  323. package/dist/design-system/themes/cssVariables.js.map +1 -0
  324. package/dist/design-system/themes/darkTheme.cjs +2 -0
  325. package/dist/design-system/themes/darkTheme.cjs.map +1 -0
  326. package/dist/design-system/themes/darkTheme.js +76 -0
  327. package/dist/design-system/themes/darkTheme.js.map +1 -0
  328. package/dist/design-system/themes/lightTheme.cjs +2 -0
  329. package/dist/design-system/themes/lightTheme.cjs.map +1 -0
  330. package/dist/design-system/themes/lightTheme.js +76 -0
  331. package/dist/design-system/themes/lightTheme.js.map +1 -0
  332. package/dist/design-system/tokens/borders.cjs +2 -0
  333. package/dist/design-system/tokens/borders.cjs.map +1 -0
  334. package/dist/design-system/tokens/borders.js +78 -0
  335. package/dist/design-system/tokens/borders.js.map +1 -0
  336. package/dist/design-system/tokens/breakpoints.cjs +2 -0
  337. package/dist/design-system/tokens/breakpoints.cjs.map +1 -0
  338. package/dist/design-system/tokens/breakpoints.js +58 -0
  339. package/dist/design-system/tokens/breakpoints.js.map +1 -0
  340. package/dist/design-system/tokens/colors.cjs +2 -0
  341. package/dist/design-system/tokens/colors.cjs.map +1 -0
  342. package/dist/{colors-B_8a3coi.js → design-system/tokens/colors.js} +16 -16
  343. package/dist/design-system/tokens/colors.js.map +1 -0
  344. package/dist/design-system/tokens/motion.cjs +2 -0
  345. package/dist/design-system/tokens/motion.cjs.map +1 -0
  346. package/dist/design-system/tokens/motion.js +133 -0
  347. package/dist/design-system/tokens/motion.js.map +1 -0
  348. package/dist/design-system/tokens/shadows.cjs +2 -0
  349. package/dist/design-system/tokens/shadows.cjs.map +1 -0
  350. package/dist/design-system/tokens/shadows.js +46 -0
  351. package/dist/design-system/tokens/shadows.js.map +1 -0
  352. package/dist/design-system/tokens/spacing.cjs +2 -0
  353. package/dist/design-system/tokens/spacing.cjs.map +1 -0
  354. package/dist/design-system/tokens/spacing.js +96 -0
  355. package/dist/design-system/tokens/spacing.js.map +1 -0
  356. package/dist/design-system/tokens/typography.cjs +2 -0
  357. package/dist/design-system/tokens/typography.cjs.map +1 -0
  358. package/dist/design-system/tokens/typography.js +199 -0
  359. package/dist/design-system/tokens/typography.js.map +1 -0
  360. package/dist/design-system/tokens/zIndex.cjs +2 -0
  361. package/dist/design-system/tokens/zIndex.cjs.map +1 -0
  362. package/dist/design-system/tokens/zIndex.js +32 -0
  363. package/dist/design-system/tokens/zIndex.js.map +1 -0
  364. package/dist/feedback.d.ts +244 -0
  365. package/dist/form.d.ts +415 -0
  366. package/dist/hooks/useClickOutside.cjs +2 -0
  367. package/dist/hooks/useClickOutside.cjs.map +1 -0
  368. package/dist/hooks/useClickOutside.js +18 -0
  369. package/dist/hooks/useClickOutside.js.map +1 -0
  370. package/dist/hooks/useControllable.cjs +2 -0
  371. package/dist/hooks/useControllable.cjs.map +1 -0
  372. package/dist/hooks/useControllable.js +25 -0
  373. package/dist/hooks/useControllable.js.map +1 -0
  374. package/dist/hooks/useDisclosure.cjs +2 -0
  375. package/dist/hooks/useDisclosure.cjs.map +1 -0
  376. package/dist/hooks/useDisclosure.js +22 -0
  377. package/dist/hooks/useDisclosure.js.map +1 -0
  378. package/dist/hooks/useFocusTrap.cjs +2 -0
  379. package/dist/hooks/useFocusTrap.cjs.map +1 -0
  380. package/dist/hooks/useFocusTrap.js +56 -0
  381. package/dist/hooks/useFocusTrap.js.map +1 -0
  382. package/dist/hooks/useId.cjs +2 -0
  383. package/dist/hooks/useId.cjs.map +1 -0
  384. package/dist/hooks/useId.js +22 -0
  385. package/dist/hooks/useId.js.map +1 -0
  386. package/dist/hooks/useKeyboardNavigation.cjs +2 -0
  387. package/dist/hooks/useKeyboardNavigation.cjs.map +1 -0
  388. package/dist/hooks/useKeyboardNavigation.js +82 -0
  389. package/dist/hooks/useKeyboardNavigation.js.map +1 -0
  390. package/dist/hooks/useMediaQuery.cjs +2 -0
  391. package/dist/hooks/useMediaQuery.cjs.map +1 -0
  392. package/dist/hooks/useMediaQuery.js +33 -0
  393. package/dist/hooks/useMediaQuery.js.map +1 -0
  394. package/dist/hooks.cjs +2 -0
  395. package/dist/hooks.cjs.map +1 -0
  396. package/dist/hooks.d.ts +146 -0
  397. package/dist/hooks.js +23 -0
  398. package/dist/hooks.js.map +1 -0
  399. package/dist/index.cjs +1 -148
  400. package/dist/index.cjs.map +1 -1
  401. package/dist/index.d.ts +4311 -141
  402. package/dist/index.js +291 -8305
  403. package/dist/index.js.map +1 -1
  404. package/dist/layout.d.ts +543 -0
  405. package/dist/navigation.d.ts +290 -0
  406. package/dist/styles.css +1 -1
  407. package/dist/themes.cjs +1 -1
  408. package/dist/themes.d.ts +214 -2
  409. package/dist/themes.js +11 -8
  410. package/dist/themes.js.map +1 -1
  411. package/dist/tokens.cjs +1 -1
  412. package/dist/tokens.cjs.map +1 -1
  413. package/dist/tokens.d.ts +976 -2
  414. package/dist/tokens.js +38 -624
  415. package/dist/tokens.js.map +1 -1
  416. package/dist/utility.d.ts +259 -0
  417. package/dist/utils/lazyComponent.cjs +2 -0
  418. package/dist/utils/lazyComponent.cjs.map +1 -0
  419. package/dist/utils/lazyComponent.js +26 -0
  420. package/dist/utils/lazyComponent.js.map +1 -0
  421. package/dist/utils/styles.cjs +2 -0
  422. package/dist/utils/styles.cjs.map +1 -0
  423. package/dist/utils/styles.js +35 -0
  424. package/dist/utils/styles.js.map +1 -0
  425. package/package.json +37 -1
  426. package/dist/colors-B_8a3coi.js.map +0 -1
  427. package/dist/colors-Bp6ROxvx.cjs +0 -2
  428. package/dist/colors-Bp6ROxvx.cjs.map +0 -1
  429. package/dist/components/data/InfoItem/InfoItem.d.ts +0 -44
  430. package/dist/components/data/InfoItem/InfoItem.d.ts.map +0 -1
  431. package/dist/components/data/InfoItem/index.d.ts +0 -2
  432. package/dist/components/data/InfoItem/index.d.ts.map +0 -1
  433. package/dist/components/data/List/List.d.ts +0 -44
  434. package/dist/components/data/List/List.d.ts.map +0 -1
  435. package/dist/components/data/List/index.d.ts +0 -3
  436. package/dist/components/data/List/index.d.ts.map +0 -1
  437. package/dist/components/data/Table/Table.d.ts +0 -74
  438. package/dist/components/data/Table/Table.d.ts.map +0 -1
  439. package/dist/components/data/Table/index.d.ts +0 -3
  440. package/dist/components/data/Table/index.d.ts.map +0 -1
  441. package/dist/components/data/index.d.ts +0 -7
  442. package/dist/components/data/index.d.ts.map +0 -1
  443. package/dist/components/feedback/Alert/Alert.d.ts +0 -29
  444. package/dist/components/feedback/Alert/Alert.d.ts.map +0 -1
  445. package/dist/components/feedback/Alert/index.d.ts +0 -3
  446. package/dist/components/feedback/Alert/index.d.ts.map +0 -1
  447. package/dist/components/feedback/Drawer/Drawer.d.ts +0 -29
  448. package/dist/components/feedback/Drawer/Drawer.d.ts.map +0 -1
  449. package/dist/components/feedback/Drawer/index.d.ts +0 -3
  450. package/dist/components/feedback/Drawer/index.d.ts.map +0 -1
  451. package/dist/components/feedback/Modal/Modal.d.ts +0 -28
  452. package/dist/components/feedback/Modal/Modal.d.ts.map +0 -1
  453. package/dist/components/feedback/Modal/index.d.ts +0 -3
  454. package/dist/components/feedback/Modal/index.d.ts.map +0 -1
  455. package/dist/components/feedback/Popover/Popover.d.ts +0 -35
  456. package/dist/components/feedback/Popover/Popover.d.ts.map +0 -1
  457. package/dist/components/feedback/Popover/index.d.ts +0 -3
  458. package/dist/components/feedback/Popover/index.d.ts.map +0 -1
  459. package/dist/components/feedback/Progress/Progress.d.ts +0 -30
  460. package/dist/components/feedback/Progress/Progress.d.ts.map +0 -1
  461. package/dist/components/feedback/Progress/index.d.ts +0 -3
  462. package/dist/components/feedback/Progress/index.d.ts.map +0 -1
  463. package/dist/components/feedback/Toast/Toast.d.ts +0 -47
  464. package/dist/components/feedback/Toast/Toast.d.ts.map +0 -1
  465. package/dist/components/feedback/Toast/index.d.ts +0 -3
  466. package/dist/components/feedback/Toast/index.d.ts.map +0 -1
  467. package/dist/components/feedback/Tooltip/Tooltip.d.ts +0 -20
  468. package/dist/components/feedback/Tooltip/Tooltip.d.ts.map +0 -1
  469. package/dist/components/feedback/Tooltip/index.d.ts +0 -3
  470. package/dist/components/feedback/Tooltip/index.d.ts.map +0 -1
  471. package/dist/components/feedback/index.d.ts +0 -13
  472. package/dist/components/feedback/index.d.ts.map +0 -1
  473. package/dist/components/form/Checkbox/Checkbox.d.ts +0 -20
  474. package/dist/components/form/Checkbox/Checkbox.d.ts.map +0 -1
  475. package/dist/components/form/Checkbox/index.d.ts +0 -3
  476. package/dist/components/form/Checkbox/index.d.ts.map +0 -1
  477. package/dist/components/form/DateInput/DateInput.d.ts +0 -28
  478. package/dist/components/form/DateInput/DateInput.d.ts.map +0 -1
  479. package/dist/components/form/DateInput/index.d.ts +0 -3
  480. package/dist/components/form/DateInput/index.d.ts.map +0 -1
  481. package/dist/components/form/DropZone/DropZone.d.ts +0 -27
  482. package/dist/components/form/DropZone/DropZone.d.ts.map +0 -1
  483. package/dist/components/form/DropZone/index.d.ts +0 -2
  484. package/dist/components/form/DropZone/index.d.ts.map +0 -1
  485. package/dist/components/form/FieldError/FieldError.d.ts +0 -18
  486. package/dist/components/form/FieldError/FieldError.d.ts.map +0 -1
  487. package/dist/components/form/FieldError/index.d.ts +0 -3
  488. package/dist/components/form/FieldError/index.d.ts.map +0 -1
  489. package/dist/components/form/FileInput/FileInput.d.ts +0 -33
  490. package/dist/components/form/FileInput/FileInput.d.ts.map +0 -1
  491. package/dist/components/form/FileInput/index.d.ts +0 -3
  492. package/dist/components/form/FileInput/index.d.ts.map +0 -1
  493. package/dist/components/form/Form/Form.d.ts +0 -16
  494. package/dist/components/form/Form/Form.d.ts.map +0 -1
  495. package/dist/components/form/Form/index.d.ts +0 -2
  496. package/dist/components/form/Form/index.d.ts.map +0 -1
  497. package/dist/components/form/FormCard/FormCard.d.ts +0 -20
  498. package/dist/components/form/FormCard/FormCard.d.ts.map +0 -1
  499. package/dist/components/form/FormCard/index.d.ts +0 -2
  500. package/dist/components/form/FormCard/index.d.ts.map +0 -1
  501. package/dist/components/form/FormField/FormField.d.ts +0 -36
  502. package/dist/components/form/FormField/FormField.d.ts.map +0 -1
  503. package/dist/components/form/FormField/index.d.ts +0 -3
  504. package/dist/components/form/FormField/index.d.ts.map +0 -1
  505. package/dist/components/form/FormGroup/FormGroup.d.ts +0 -31
  506. package/dist/components/form/FormGroup/FormGroup.d.ts.map +0 -1
  507. package/dist/components/form/FormGroup/index.d.ts +0 -2
  508. package/dist/components/form/FormGroup/index.d.ts.map +0 -1
  509. package/dist/components/form/FormLabel/FormLabel.d.ts +0 -20
  510. package/dist/components/form/FormLabel/FormLabel.d.ts.map +0 -1
  511. package/dist/components/form/FormLabel/index.d.ts +0 -2
  512. package/dist/components/form/FormLabel/index.d.ts.map +0 -1
  513. package/dist/components/form/Input/Input.d.ts +0 -21
  514. package/dist/components/form/Input/Input.d.ts.map +0 -1
  515. package/dist/components/form/Input/index.d.ts +0 -3
  516. package/dist/components/form/Input/index.d.ts.map +0 -1
  517. package/dist/components/form/Radio/Radio.d.ts +0 -46
  518. package/dist/components/form/Radio/Radio.d.ts.map +0 -1
  519. package/dist/components/form/Radio/index.d.ts +0 -3
  520. package/dist/components/form/Radio/index.d.ts.map +0 -1
  521. package/dist/components/form/Select/Select.d.ts +0 -21
  522. package/dist/components/form/Select/Select.d.ts.map +0 -1
  523. package/dist/components/form/Select/index.d.ts +0 -3
  524. package/dist/components/form/Select/index.d.ts.map +0 -1
  525. package/dist/components/form/Slider/Slider.d.ts +0 -32
  526. package/dist/components/form/Slider/Slider.d.ts.map +0 -1
  527. package/dist/components/form/Slider/index.d.ts +0 -3
  528. package/dist/components/form/Slider/index.d.ts.map +0 -1
  529. package/dist/components/form/Switch/Switch.d.ts +0 -16
  530. package/dist/components/form/Switch/Switch.d.ts.map +0 -1
  531. package/dist/components/form/Switch/index.d.ts +0 -3
  532. package/dist/components/form/Switch/index.d.ts.map +0 -1
  533. package/dist/components/form/TextField/TextField.d.ts +0 -16
  534. package/dist/components/form/TextField/TextField.d.ts.map +0 -1
  535. package/dist/components/form/TextField/index.d.ts +0 -3
  536. package/dist/components/form/TextField/index.d.ts.map +0 -1
  537. package/dist/components/form/Textarea/Textarea.d.ts +0 -27
  538. package/dist/components/form/Textarea/Textarea.d.ts.map +0 -1
  539. package/dist/components/form/Textarea/index.d.ts +0 -3
  540. package/dist/components/form/Textarea/index.d.ts.map +0 -1
  541. package/dist/components/form/index.d.ts +0 -21
  542. package/dist/components/form/index.d.ts.map +0 -1
  543. package/dist/components/index.d.ts +0 -12
  544. package/dist/components/index.d.ts.map +0 -1
  545. package/dist/components/layout/AspectRatio/AspectRatio.d.ts +0 -19
  546. package/dist/components/layout/AspectRatio/AspectRatio.d.ts.map +0 -1
  547. package/dist/components/layout/AspectRatio/index.d.ts +0 -2
  548. package/dist/components/layout/AspectRatio/index.d.ts.map +0 -1
  549. package/dist/components/layout/Box/Box.d.ts +0 -11
  550. package/dist/components/layout/Box/Box.d.ts.map +0 -1
  551. package/dist/components/layout/Box/Box.styles.d.ts +0 -4
  552. package/dist/components/layout/Box/Box.styles.d.ts.map +0 -1
  553. package/dist/components/layout/Box/Box.types.d.ts +0 -38
  554. package/dist/components/layout/Box/Box.types.d.ts.map +0 -1
  555. package/dist/components/layout/Box/index.d.ts +0 -3
  556. package/dist/components/layout/Box/index.d.ts.map +0 -1
  557. package/dist/components/layout/Card/Card.d.ts +0 -40
  558. package/dist/components/layout/Card/Card.d.ts.map +0 -1
  559. package/dist/components/layout/Card/index.d.ts +0 -3
  560. package/dist/components/layout/Card/index.d.ts.map +0 -1
  561. package/dist/components/layout/Container/Container.d.ts +0 -31
  562. package/dist/components/layout/Container/Container.d.ts.map +0 -1
  563. package/dist/components/layout/Container/index.d.ts +0 -3
  564. package/dist/components/layout/Container/index.d.ts.map +0 -1
  565. package/dist/components/layout/Flex/Flex.d.ts +0 -63
  566. package/dist/components/layout/Flex/Flex.d.ts.map +0 -1
  567. package/dist/components/layout/Flex/index.d.ts +0 -3
  568. package/dist/components/layout/Flex/index.d.ts.map +0 -1
  569. package/dist/components/layout/Grid/Grid.d.ts +0 -80
  570. package/dist/components/layout/Grid/Grid.d.ts.map +0 -1
  571. package/dist/components/layout/Grid/index.d.ts +0 -3
  572. package/dist/components/layout/Grid/index.d.ts.map +0 -1
  573. package/dist/components/layout/Section/Section.d.ts +0 -22
  574. package/dist/components/layout/Section/Section.d.ts.map +0 -1
  575. package/dist/components/layout/Section/index.d.ts +0 -3
  576. package/dist/components/layout/Section/index.d.ts.map +0 -1
  577. package/dist/components/layout/Semantic/Semantic.d.ts +0 -32
  578. package/dist/components/layout/Semantic/Semantic.d.ts.map +0 -1
  579. package/dist/components/layout/Semantic/index.d.ts +0 -3
  580. package/dist/components/layout/Semantic/index.d.ts.map +0 -1
  581. package/dist/components/layout/Spacer/Spacer.d.ts +0 -18
  582. package/dist/components/layout/Spacer/Spacer.d.ts.map +0 -1
  583. package/dist/components/layout/Spacer/index.d.ts +0 -3
  584. package/dist/components/layout/Spacer/index.d.ts.map +0 -1
  585. package/dist/components/layout/Stack/Stack.d.ts +0 -13
  586. package/dist/components/layout/Stack/Stack.d.ts.map +0 -1
  587. package/dist/components/layout/Stack/Stack.types.d.ts +0 -33
  588. package/dist/components/layout/Stack/Stack.types.d.ts.map +0 -1
  589. package/dist/components/layout/Stack/index.d.ts +0 -3
  590. package/dist/components/layout/Stack/index.d.ts.map +0 -1
  591. package/dist/components/layout/index.d.ts +0 -16
  592. package/dist/components/layout/index.d.ts.map +0 -1
  593. package/dist/components/media/Image/Image.d.ts +0 -33
  594. package/dist/components/media/Image/Image.d.ts.map +0 -1
  595. package/dist/components/media/Image/index.d.ts +0 -2
  596. package/dist/components/media/Image/index.d.ts.map +0 -1
  597. package/dist/components/media/ImageThumbnail/ImageThumbnail.d.ts +0 -27
  598. package/dist/components/media/ImageThumbnail/ImageThumbnail.d.ts.map +0 -1
  599. package/dist/components/media/ImageThumbnail/index.d.ts +0 -2
  600. package/dist/components/media/ImageThumbnail/index.d.ts.map +0 -1
  601. package/dist/components/media/Video/Video.d.ts +0 -67
  602. package/dist/components/media/Video/Video.d.ts.map +0 -1
  603. package/dist/components/media/Video/index.d.ts +0 -2
  604. package/dist/components/media/Video/index.d.ts.map +0 -1
  605. package/dist/components/media/index.d.ts +0 -8
  606. package/dist/components/media/index.d.ts.map +0 -1
  607. package/dist/components/navigation/Accordion/Accordion.d.ts +0 -41
  608. package/dist/components/navigation/Accordion/Accordion.d.ts.map +0 -1
  609. package/dist/components/navigation/Accordion/index.d.ts +0 -3
  610. package/dist/components/navigation/Accordion/index.d.ts.map +0 -1
  611. package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts +0 -31
  612. package/dist/components/navigation/Breadcrumb/Breadcrumb.d.ts.map +0 -1
  613. package/dist/components/navigation/Breadcrumb/index.d.ts +0 -3
  614. package/dist/components/navigation/Breadcrumb/index.d.ts.map +0 -1
  615. package/dist/components/navigation/Dropdown/Dropdown.d.ts +0 -47
  616. package/dist/components/navigation/Dropdown/Dropdown.d.ts.map +0 -1
  617. package/dist/components/navigation/Dropdown/index.d.ts +0 -3
  618. package/dist/components/navigation/Dropdown/index.d.ts.map +0 -1
  619. package/dist/components/navigation/Menu/Menu.d.ts +0 -45
  620. package/dist/components/navigation/Menu/Menu.d.ts.map +0 -1
  621. package/dist/components/navigation/Menu/index.d.ts +0 -3
  622. package/dist/components/navigation/Menu/index.d.ts.map +0 -1
  623. package/dist/components/navigation/Pagination/Pagination.d.ts +0 -29
  624. package/dist/components/navigation/Pagination/Pagination.d.ts.map +0 -1
  625. package/dist/components/navigation/Pagination/index.d.ts +0 -3
  626. package/dist/components/navigation/Pagination/index.d.ts.map +0 -1
  627. package/dist/components/navigation/Tabs/Tabs.d.ts +0 -52
  628. package/dist/components/navigation/Tabs/Tabs.d.ts.map +0 -1
  629. package/dist/components/navigation/Tabs/index.d.ts +0 -3
  630. package/dist/components/navigation/Tabs/index.d.ts.map +0 -1
  631. package/dist/components/navigation/index.d.ts +0 -10
  632. package/dist/components/navigation/index.d.ts.map +0 -1
  633. package/dist/components/primitives/Button/Button.d.ts +0 -12
  634. package/dist/components/primitives/Button/Button.d.ts.map +0 -1
  635. package/dist/components/primitives/Button/Button.styles.d.ts +0 -29
  636. package/dist/components/primitives/Button/Button.styles.d.ts.map +0 -1
  637. package/dist/components/primitives/Button/Button.types.d.ts +0 -37
  638. package/dist/components/primitives/Button/Button.types.d.ts.map +0 -1
  639. package/dist/components/primitives/Button/index.d.ts +0 -3
  640. package/dist/components/primitives/Button/index.d.ts.map +0 -1
  641. package/dist/components/primitives/Icon/Icon.d.ts +0 -88
  642. package/dist/components/primitives/Icon/Icon.d.ts.map +0 -1
  643. package/dist/components/primitives/Icon/index.d.ts +0 -3
  644. package/dist/components/primitives/Icon/index.d.ts.map +0 -1
  645. package/dist/components/primitives/index.d.ts +0 -8
  646. package/dist/components/primitives/index.d.ts.map +0 -1
  647. package/dist/components/typography/Heading/Heading.d.ts +0 -38
  648. package/dist/components/typography/Heading/Heading.d.ts.map +0 -1
  649. package/dist/components/typography/Heading/index.d.ts +0 -3
  650. package/dist/components/typography/Heading/index.d.ts.map +0 -1
  651. package/dist/components/typography/Text/Text.d.ts +0 -43
  652. package/dist/components/typography/Text/Text.d.ts.map +0 -1
  653. package/dist/components/typography/Text/index.d.ts +0 -3
  654. package/dist/components/typography/Text/index.d.ts.map +0 -1
  655. package/dist/components/typography/index.d.ts +0 -8
  656. package/dist/components/typography/index.d.ts.map +0 -1
  657. package/dist/components/utility/Avatar/Avatar.d.ts +0 -22
  658. package/dist/components/utility/Avatar/Avatar.d.ts.map +0 -1
  659. package/dist/components/utility/Avatar/index.d.ts +0 -3
  660. package/dist/components/utility/Avatar/index.d.ts.map +0 -1
  661. package/dist/components/utility/Badge/Badge.d.ts +0 -20
  662. package/dist/components/utility/Badge/Badge.d.ts.map +0 -1
  663. package/dist/components/utility/Badge/index.d.ts +0 -3
  664. package/dist/components/utility/Badge/index.d.ts.map +0 -1
  665. package/dist/components/utility/Divider/Divider.d.ts +0 -19
  666. package/dist/components/utility/Divider/Divider.d.ts.map +0 -1
  667. package/dist/components/utility/Divider/index.d.ts +0 -3
  668. package/dist/components/utility/Divider/index.d.ts.map +0 -1
  669. package/dist/components/utility/EmptyState/EmptyState.d.ts +0 -26
  670. package/dist/components/utility/EmptyState/EmptyState.d.ts.map +0 -1
  671. package/dist/components/utility/EmptyState/index.d.ts +0 -3
  672. package/dist/components/utility/EmptyState/index.d.ts.map +0 -1
  673. package/dist/components/utility/FocusTrap/FocusTrap.d.ts +0 -19
  674. package/dist/components/utility/FocusTrap/FocusTrap.d.ts.map +0 -1
  675. package/dist/components/utility/FocusTrap/index.d.ts +0 -3
  676. package/dist/components/utility/FocusTrap/index.d.ts.map +0 -1
  677. package/dist/components/utility/Loader/Loader.d.ts +0 -21
  678. package/dist/components/utility/Loader/Loader.d.ts.map +0 -1
  679. package/dist/components/utility/Loader/index.d.ts +0 -3
  680. package/dist/components/utility/Loader/index.d.ts.map +0 -1
  681. package/dist/components/utility/Logo/Logo.d.ts +0 -14
  682. package/dist/components/utility/Logo/Logo.d.ts.map +0 -1
  683. package/dist/components/utility/Logo/index.d.ts +0 -3
  684. package/dist/components/utility/Logo/index.d.ts.map +0 -1
  685. package/dist/components/utility/Overlay/Overlay.d.ts +0 -25
  686. package/dist/components/utility/Overlay/Overlay.d.ts.map +0 -1
  687. package/dist/components/utility/Overlay/index.d.ts +0 -3
  688. package/dist/components/utility/Overlay/index.d.ts.map +0 -1
  689. package/dist/components/utility/Portal/Portal.d.ts +0 -14
  690. package/dist/components/utility/Portal/Portal.d.ts.map +0 -1
  691. package/dist/components/utility/Portal/index.d.ts +0 -3
  692. package/dist/components/utility/Portal/index.d.ts.map +0 -1
  693. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.d.ts +0 -17
  694. package/dist/components/utility/ScreenReaderOnly/ScreenReaderOnly.d.ts.map +0 -1
  695. package/dist/components/utility/ScreenReaderOnly/index.d.ts +0 -2
  696. package/dist/components/utility/ScreenReaderOnly/index.d.ts.map +0 -1
  697. package/dist/components/utility/Skeleton/Skeleton.d.ts +0 -35
  698. package/dist/components/utility/Skeleton/Skeleton.d.ts.map +0 -1
  699. package/dist/components/utility/Skeleton/index.d.ts +0 -3
  700. package/dist/components/utility/Skeleton/index.d.ts.map +0 -1
  701. package/dist/components/utility/index.d.ts +0 -17
  702. package/dist/components/utility/index.d.ts.map +0 -1
  703. package/dist/cssVariables-BguyVeCi.cjs +0 -2
  704. package/dist/cssVariables-BguyVeCi.cjs.map +0 -1
  705. package/dist/cssVariables-D9uw0uKO.js +0 -273
  706. package/dist/cssVariables-D9uw0uKO.js.map +0 -1
  707. package/dist/design-system/index.d.ts +0 -16
  708. package/dist/design-system/index.d.ts.map +0 -1
  709. package/dist/design-system/primitives/focus.d.ts +0 -67
  710. package/dist/design-system/primitives/focus.d.ts.map +0 -1
  711. package/dist/design-system/primitives/index.d.ts +0 -15
  712. package/dist/design-system/primitives/index.d.ts.map +0 -1
  713. package/dist/design-system/primitives/layout.d.ts +0 -114
  714. package/dist/design-system/primitives/layout.d.ts.map +0 -1
  715. package/dist/design-system/primitives/opacity.d.ts +0 -88
  716. package/dist/design-system/primitives/opacity.d.ts.map +0 -1
  717. package/dist/design-system/primitives/sizing.d.ts +0 -155
  718. package/dist/design-system/primitives/sizing.d.ts.map +0 -1
  719. package/dist/design-system/primitives/transitions.d.ts +0 -92
  720. package/dist/design-system/primitives/transitions.d.ts.map +0 -1
  721. package/dist/design-system/primitives/typography.d.ts +0 -164
  722. package/dist/design-system/primitives/typography.d.ts.map +0 -1
  723. package/dist/design-system/themes/ThemeProvider.d.ts +0 -18
  724. package/dist/design-system/themes/ThemeProvider.d.ts.map +0 -1
  725. package/dist/design-system/themes/cssVariables.d.ts +0 -52
  726. package/dist/design-system/themes/cssVariables.d.ts.map +0 -1
  727. package/dist/design-system/themes/darkTheme.d.ts +0 -3
  728. package/dist/design-system/themes/darkTheme.d.ts.map +0 -1
  729. package/dist/design-system/themes/index.d.ts +0 -11
  730. package/dist/design-system/themes/index.d.ts.map +0 -1
  731. package/dist/design-system/themes/lightTheme.d.ts +0 -3
  732. package/dist/design-system/themes/lightTheme.d.ts.map +0 -1
  733. package/dist/design-system/themes/types.d.ts +0 -134
  734. package/dist/design-system/themes/types.d.ts.map +0 -1
  735. package/dist/design-system/tokens/borders.d.ts +0 -86
  736. package/dist/design-system/tokens/borders.d.ts.map +0 -1
  737. package/dist/design-system/tokens/breakpoints.d.ts +0 -66
  738. package/dist/design-system/tokens/breakpoints.d.ts.map +0 -1
  739. package/dist/design-system/tokens/colors.d.ts +0 -206
  740. package/dist/design-system/tokens/colors.d.ts.map +0 -1
  741. package/dist/design-system/tokens/index.d.ts +0 -23
  742. package/dist/design-system/tokens/index.d.ts.map +0 -1
  743. package/dist/design-system/tokens/motion.d.ts +0 -204
  744. package/dist/design-system/tokens/motion.d.ts.map +0 -1
  745. package/dist/design-system/tokens/shadows.d.ts +0 -55
  746. package/dist/design-system/tokens/shadows.d.ts.map +0 -1
  747. package/dist/design-system/tokens/spacing.d.ts +0 -104
  748. package/dist/design-system/tokens/spacing.d.ts.map +0 -1
  749. package/dist/design-system/tokens/typography.d.ts +0 -214
  750. package/dist/design-system/tokens/typography.d.ts.map +0 -1
  751. package/dist/design-system/tokens/zIndex.d.ts +0 -36
  752. package/dist/design-system/tokens/zIndex.d.ts.map +0 -1
  753. package/dist/hooks/index.d.ts +0 -13
  754. package/dist/hooks/index.d.ts.map +0 -1
  755. package/dist/hooks/useClickOutside.d.ts +0 -9
  756. package/dist/hooks/useClickOutside.d.ts.map +0 -1
  757. package/dist/hooks/useControllable.d.ts +0 -24
  758. package/dist/hooks/useControllable.d.ts.map +0 -1
  759. package/dist/hooks/useDisclosure.d.ts +0 -19
  760. package/dist/hooks/useDisclosure.d.ts.map +0 -1
  761. package/dist/hooks/useFocusTrap.d.ts +0 -21
  762. package/dist/hooks/useFocusTrap.d.ts.map +0 -1
  763. package/dist/hooks/useId.d.ts +0 -9
  764. package/dist/hooks/useId.d.ts.map +0 -1
  765. package/dist/hooks/useKeyboardNavigation.d.ts +0 -35
  766. package/dist/hooks/useKeyboardNavigation.d.ts.map +0 -1
  767. package/dist/hooks/useMediaQuery.d.ts +0 -13
  768. package/dist/hooks/useMediaQuery.d.ts.map +0 -1
  769. package/dist/index.d.ts.map +0 -1
  770. package/dist/types/common.d.ts +0 -90
  771. package/dist/types/common.d.ts.map +0 -1
  772. package/dist/types/index.d.ts +0 -7
  773. package/dist/types/index.d.ts.map +0 -1
  774. package/dist/utils/index.d.ts +0 -7
  775. package/dist/utils/index.d.ts.map +0 -1
  776. package/dist/utils/styles.d.ts +0 -17
  777. package/dist/utils/styles.d.ts.map +0 -1
@@ -0,0 +1,171 @@
1
+ import { jsx as t, jsxs as N } from "react/jsx-runtime";
2
+ import { forwardRef as z, useState as A, useCallback as j } from "react";
3
+ import { cx as p } from "../../../utils/styles.js";
4
+ const F = {
5
+ none: "0",
6
+ sm: "var(--brycks-radius-sm)",
7
+ md: "var(--brycks-radius-md)",
8
+ lg: "var(--brycks-radius-lg)",
9
+ xl: "var(--brycks-radius-xl)",
10
+ full: "var(--brycks-radius-full)"
11
+ };
12
+ function E(r) {
13
+ if (r === void 0) return;
14
+ if (typeof r == "number") return r;
15
+ const s = r.split(/[:/]/);
16
+ if (s.length === 2) {
17
+ const n = parseFloat(s[0]), i = parseFloat(s[1]);
18
+ if (!isNaN(n) && !isNaN(i) && i !== 0)
19
+ return n / i;
20
+ }
21
+ const e = parseFloat(r);
22
+ return isNaN(e) ? void 0 : e;
23
+ }
24
+ const L = z(function({
25
+ src: s,
26
+ alt: e,
27
+ aspectRatio: n,
28
+ fit: i = "cover",
29
+ loading: S = "lazy",
30
+ fallback: d,
31
+ placeholder: l,
32
+ radius: C = "none",
33
+ showBackground: R = !0,
34
+ onLoad: h,
35
+ onError: v,
36
+ className: g,
37
+ style: u,
38
+ testId: y,
39
+ ...f
40
+ }, B) {
41
+ const [o, k] = A("loading"), I = j(
42
+ (b) => {
43
+ k("loaded"), h?.(b);
44
+ },
45
+ [h]
46
+ ), $ = j(
47
+ (b) => {
48
+ k("error"), v?.(b);
49
+ },
50
+ [v]
51
+ ), a = E(n), c = F[C] ?? F.none, m = {
52
+ position: "relative",
53
+ overflow: "hidden",
54
+ borderRadius: c,
55
+ backgroundColor: R && o === "loading" ? "var(--brycks-background-muted)" : void 0,
56
+ ...a ? {
57
+ width: "100%",
58
+ paddingBottom: `${1 / a * 100}%`
59
+ } : {}
60
+ }, w = {
61
+ display: "block",
62
+ objectFit: i,
63
+ borderRadius: c,
64
+ ...a ? {
65
+ position: "absolute",
66
+ top: 0,
67
+ left: 0,
68
+ width: "100%",
69
+ height: "100%"
70
+ } : {
71
+ width: u?.width ?? "100%",
72
+ height: u?.height ?? "auto"
73
+ },
74
+ opacity: o === "loaded" ? 1 : 0,
75
+ transition: "opacity var(--brycks-duration-normal, 200ms) var(--brycks-easing-out, ease-out)",
76
+ ...u
77
+ }, x = {
78
+ position: "absolute",
79
+ top: 0,
80
+ left: 0,
81
+ right: 0,
82
+ bottom: 0,
83
+ display: "flex",
84
+ alignItems: "center",
85
+ justifyContent: "center",
86
+ borderRadius: c
87
+ };
88
+ return o === "error" ? typeof d == "string" ? /* @__PURE__ */ t(
89
+ "div",
90
+ {
91
+ className: p("brycks-image", "brycks-image--fallback", g),
92
+ style: m,
93
+ "data-testid": y,
94
+ children: /* @__PURE__ */ t(
95
+ "img",
96
+ {
97
+ src: d,
98
+ alt: e,
99
+ style: {
100
+ ...w,
101
+ opacity: 1
102
+ },
103
+ ...f
104
+ }
105
+ )
106
+ }
107
+ ) : /* @__PURE__ */ N(
108
+ "div",
109
+ {
110
+ className: p("brycks-image", "brycks-image--error", g),
111
+ style: {
112
+ ...m,
113
+ backgroundColor: "var(--brycks-background-muted)"
114
+ },
115
+ "data-testid": y,
116
+ role: "img",
117
+ "aria-label": e,
118
+ children: [
119
+ a && /* @__PURE__ */ t("div", { style: { paddingBottom: `${1 / a * 100}%` } }),
120
+ d && /* @__PURE__ */ t("div", { style: x, children: d })
121
+ ]
122
+ }
123
+ ) : /* @__PURE__ */ N(
124
+ "div",
125
+ {
126
+ className: p(
127
+ "brycks-image",
128
+ o === "loading" && "brycks-image--loading",
129
+ o === "loaded" && "brycks-image--loaded",
130
+ g
131
+ ),
132
+ style: a ? m : { position: "relative", borderRadius: c },
133
+ "data-testid": y,
134
+ children: [
135
+ o === "loading" && l && /* @__PURE__ */ t("div", { style: x, children: typeof l == "string" ? /* @__PURE__ */ t(
136
+ "img",
137
+ {
138
+ src: l,
139
+ alt: "",
140
+ "aria-hidden": "true",
141
+ style: {
142
+ width: "100%",
143
+ height: "100%",
144
+ objectFit: i,
145
+ filter: "blur(10px)",
146
+ transform: "scale(1.1)"
147
+ }
148
+ }
149
+ ) : l }),
150
+ /* @__PURE__ */ t(
151
+ "img",
152
+ {
153
+ ref: B,
154
+ src: s,
155
+ alt: e,
156
+ loading: S,
157
+ onLoad: I,
158
+ onError: $,
159
+ style: w,
160
+ ...f
161
+ }
162
+ )
163
+ ]
164
+ }
165
+ );
166
+ });
167
+ L.displayName = "Image";
168
+ export {
169
+ L as Image
170
+ };
171
+ //# sourceMappingURL=Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.js","sources":["../../../../src/components/media/Image/Image.tsx"],"sourcesContent":["/**\r\n * Image Component\r\n *\r\n * Responsive image with lazy loading, fallback support, and aspect ratio control.\r\n * Follows accessibility best practices and design system conventions.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useState,\r\n useCallback,\r\n type CSSProperties,\r\n type ImgHTMLAttributes,\r\n type ReactNode,\r\n type SyntheticEvent,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type ImageFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'\r\nexport type ImageLoading = 'lazy' | 'eager'\r\n\r\nexport interface ImageProps\r\n extends Omit<ImgHTMLAttributes<HTMLImageElement>, 'placeholder'> {\r\n /** Image source URL */\r\n src: string\r\n /** Alternative text for accessibility (required) */\r\n alt: string\r\n /** Aspect ratio (width/height). If set, maintains ratio */\r\n aspectRatio?: number | string\r\n /** How the image should fit within its container */\r\n fit?: ImageFit\r\n /** Loading strategy */\r\n loading?: ImageLoading\r\n /** Fallback content or URL when image fails to load */\r\n fallback?: ReactNode | string\r\n /** Placeholder shown while loading */\r\n placeholder?: ReactNode | string\r\n /** Border radius using design tokens */\r\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'\r\n /** Whether to show a subtle background while loading */\r\n showBackground?: boolean\r\n /** Callback when image loads successfully */\r\n onLoad?: (event: SyntheticEvent<HTMLImageElement>) => void\r\n /** Callback when image fails to load */\r\n onError?: (event: SyntheticEvent<HTMLImageElement>) => void\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nconst radiusMap: Record<string, string> = {\r\n none: '0',\r\n sm: 'var(--brycks-radius-sm)',\r\n md: 'var(--brycks-radius-md)',\r\n lg: 'var(--brycks-radius-lg)',\r\n xl: 'var(--brycks-radius-xl)',\r\n full: 'var(--brycks-radius-full)',\r\n}\r\n\r\nfunction parseAspectRatio(ratio: number | string | undefined): number | undefined {\r\n if (ratio === undefined) return undefined\r\n if (typeof ratio === 'number') return ratio\r\n\r\n // Handle string formats like \"16:9\" or \"16/9\"\r\n const parts = ratio.split(/[:/]/)\r\n if (parts.length === 2) {\r\n const width = parseFloat(parts[0])\r\n const height = parseFloat(parts[1])\r\n if (!isNaN(width) && !isNaN(height) && height !== 0) {\r\n return width / height\r\n }\r\n }\r\n\r\n const parsed = parseFloat(ratio)\r\n return isNaN(parsed) ? undefined : parsed\r\n}\r\n\r\nexport const Image = forwardRef<HTMLImageElement, ImageProps>(function Image(\r\n {\r\n src,\r\n alt,\r\n aspectRatio,\r\n fit = 'cover',\r\n loading = 'lazy',\r\n fallback,\r\n placeholder,\r\n radius = 'none',\r\n showBackground = true,\r\n onLoad,\r\n onError,\r\n className,\r\n style,\r\n testId,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const [status, setStatus] = useState<'loading' | 'loaded' | 'error'>('loading')\r\n\r\n const handleLoad = useCallback(\r\n (event: SyntheticEvent<HTMLImageElement>) => {\r\n setStatus('loaded')\r\n onLoad?.(event)\r\n },\r\n [onLoad]\r\n )\r\n\r\n const handleError = useCallback(\r\n (event: SyntheticEvent<HTMLImageElement>) => {\r\n setStatus('error')\r\n onError?.(event)\r\n },\r\n [onError]\r\n )\r\n\r\n const parsedRatio = parseAspectRatio(aspectRatio)\r\n const borderRadius = radiusMap[radius] ?? radiusMap.none\r\n\r\n // Container styles for aspect ratio support\r\n const containerStyle: CSSProperties = {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n borderRadius,\r\n backgroundColor:\r\n showBackground && status === 'loading'\r\n ? 'var(--brycks-background-muted)'\r\n : undefined,\r\n ...(parsedRatio\r\n ? {\r\n width: '100%',\r\n paddingBottom: `${(1 / parsedRatio) * 100}%`,\r\n }\r\n : {}),\r\n }\r\n\r\n const imageStyle: CSSProperties = {\r\n display: 'block',\r\n objectFit: fit,\r\n borderRadius,\r\n ...(parsedRatio\r\n ? {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n }\r\n : {\r\n width: style?.width ?? '100%',\r\n height: style?.height ?? 'auto',\r\n }),\r\n opacity: status === 'loaded' ? 1 : 0,\r\n transition: 'opacity var(--brycks-duration-normal, 200ms) var(--brycks-easing-out, ease-out)',\r\n ...style,\r\n }\r\n\r\n const overlayStyle: CSSProperties = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius,\r\n }\r\n\r\n // Render fallback content\r\n if (status === 'error') {\r\n if (typeof fallback === 'string') {\r\n // Fallback is an image URL\r\n return (\r\n <div\r\n className={cx('brycks-image', 'brycks-image--fallback', className)}\r\n style={containerStyle}\r\n data-testid={testId}\r\n >\r\n <img\r\n src={fallback}\r\n alt={alt}\r\n style={{\r\n ...imageStyle,\r\n opacity: 1,\r\n }}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n }\r\n\r\n // Fallback is a ReactNode\r\n return (\r\n <div\r\n className={cx('brycks-image', 'brycks-image--error', className)}\r\n style={{\r\n ...containerStyle,\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n }}\r\n data-testid={testId}\r\n role=\"img\"\r\n aria-label={alt}\r\n >\r\n {parsedRatio && <div style={{ paddingBottom: `${(1 / parsedRatio) * 100}%` }} />}\r\n {fallback && <div style={overlayStyle}>{fallback}</div>}\r\n </div>\r\n )\r\n }\r\n\r\n // Render image with optional placeholder\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-image',\r\n status === 'loading' && 'brycks-image--loading',\r\n status === 'loaded' && 'brycks-image--loaded',\r\n className\r\n )}\r\n style={parsedRatio ? containerStyle : { position: 'relative', borderRadius }}\r\n data-testid={testId}\r\n >\r\n {/* Placeholder */}\r\n {status === 'loading' && placeholder && (\r\n <div style={overlayStyle}>\r\n {typeof placeholder === 'string' ? (\r\n <img\r\n src={placeholder}\r\n alt=\"\"\r\n aria-hidden=\"true\"\r\n style={{\r\n width: '100%',\r\n height: '100%',\r\n objectFit: fit,\r\n filter: 'blur(10px)',\r\n transform: 'scale(1.1)',\r\n }}\r\n />\r\n ) : (\r\n placeholder\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Main image */}\r\n <img\r\n ref={ref}\r\n src={src}\r\n alt={alt}\r\n loading={loading}\r\n onLoad={handleLoad}\r\n onError={handleError}\r\n style={imageStyle}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\n\r\nImage.displayName = 'Image'\r\n"],"names":["radiusMap","parseAspectRatio","ratio","parts","width","height","parsed","Image","forwardRef","src","alt","aspectRatio","fit","loading","fallback","placeholder","radius","showBackground","onLoad","onError","className","style","testId","props","ref","status","setStatus","useState","handleLoad","useCallback","event","handleError","parsedRatio","borderRadius","containerStyle","imageStyle","overlayStyle","jsx","cx","jsxs"],"mappings":";;;AAmDA,MAAMA,IAAoC;AAAA,EACxC,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AACR;AAEA,SAASC,EAAiBC,GAAwD;AAChF,MAAIA,MAAU,OAAW;AACzB,MAAI,OAAOA,KAAU,SAAU,QAAOA;AAGtC,QAAMC,IAAQD,EAAM,MAAM,MAAM;AAChC,MAAIC,EAAM,WAAW,GAAG;AACtB,UAAMC,IAAQ,WAAWD,EAAM,CAAC,CAAC,GAC3BE,IAAS,WAAWF,EAAM,CAAC,CAAC;AAClC,QAAI,CAAC,MAAMC,CAAK,KAAK,CAAC,MAAMC,CAAM,KAAKA,MAAW;AAChD,aAAOD,IAAQC;AAAA,EAEnB;AAEA,QAAMC,IAAS,WAAWJ,CAAK;AAC/B,SAAO,MAAMI,CAAM,IAAI,SAAYA;AACrC;AAEO,MAAMC,IAAQC,EAAyC,SAC5D;AAAA,EACE,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,SAAAC,IAAU;AAAA,EACV,UAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,gBAAAC,IAAiB;AAAA,EACjB,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAyC,SAAS,GAExEC,IAAaC;AAAA,IACjB,CAACC,MAA4C;AAC3C,MAAAJ,EAAU,QAAQ,GAClBR,IAASY,CAAK;AAAA,IAChB;AAAA,IACA,CAACZ,CAAM;AAAA,EAAA,GAGHa,IAAcF;AAAA,IAClB,CAACC,MAA4C;AAC3C,MAAAJ,EAAU,OAAO,GACjBP,IAAUW,CAAK;AAAA,IACjB;AAAA,IACA,CAACX,CAAO;AAAA,EAAA,GAGJa,IAAc/B,EAAiBU,CAAW,GAC1CsB,IAAejC,EAAUgB,CAAM,KAAKhB,EAAU,MAG9CkC,IAAgC;AAAA,IACpC,UAAU;AAAA,IACV,UAAU;AAAA,IACV,cAAAD;AAAA,IACA,iBACEhB,KAAkBQ,MAAW,YACzB,mCACA;AAAA,IACN,GAAIO,IACA;AAAA,MACE,OAAO;AAAA,MACP,eAAe,GAAI,IAAIA,IAAe,GAAG;AAAA,IAAA,IAE3C,CAAA;AAAA,EAAC,GAGDG,IAA4B;AAAA,IAChC,SAAS;AAAA,IACT,WAAWvB;AAAA,IACX,cAAAqB;AAAA,IACA,GAAID,IACA;AAAA,MACE,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,IAAA,IAEV;AAAA,MACE,OAAOX,GAAO,SAAS;AAAA,MACvB,QAAQA,GAAO,UAAU;AAAA,IAAA;AAAA,IAE/B,SAASI,MAAW,WAAW,IAAI;AAAA,IACnC,YAAY;AAAA,IACZ,GAAGJ;AAAA,EAAA,GAGCe,IAA8B;AAAA,IAClC,UAAU;AAAA,IACV,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAAH;AAAA,EAAA;AAIF,SAAIR,MAAW,UACT,OAAOX,KAAa,WAGpB,gBAAAuB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,gBAAgB,0BAA0BlB,CAAS;AAAA,MACjE,OAAOc;AAAA,MACP,eAAaZ;AAAA,MAEb,UAAA,gBAAAe;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKvB;AAAA,UACL,KAAAJ;AAAA,UACA,OAAO;AAAA,YACL,GAAGyB;AAAA,YACH,SAAS;AAAA,UAAA;AAAA,UAEV,GAAGZ;AAAA,QAAA;AAAA,MAAA;AAAA,IACN;AAAA,EAAA,IAOJ,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD,EAAG,gBAAgB,uBAAuBlB,CAAS;AAAA,MAC9D,OAAO;AAAA,QACL,GAAGc;AAAA,QACH,iBAAiB;AAAA,MAAA;AAAA,MAEnB,eAAaZ;AAAA,MACb,MAAK;AAAA,MACL,cAAYZ;AAAA,MAEX,UAAA;AAAA,QAAAsB,KAAe,gBAAAK,EAAC,OAAA,EAAI,OAAO,EAAE,eAAe,GAAI,IAAIL,IAAe,GAAG,IAAA,EAAI,CAAG;AAAA,QAC7ElB,KAAY,gBAAAuB,EAAC,OAAA,EAAI,OAAOD,GAAe,UAAAtB,EAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAOrD,gBAAAyB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD;AAAA,QACT;AAAA,QACAb,MAAW,aAAa;AAAA,QACxBA,MAAW,YAAY;AAAA,QACvBL;AAAA,MAAA;AAAA,MAEF,OAAOY,IAAcE,IAAiB,EAAE,UAAU,YAAY,cAAAD,EAAA;AAAA,MAC9D,eAAaX;AAAA,MAGZ,UAAA;AAAA,QAAAG,MAAW,aAAaV,KACvB,gBAAAsB,EAAC,OAAA,EAAI,OAAOD,GACT,UAAA,OAAOrB,KAAgB,WACtB,gBAAAsB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKtB;AAAA,YACL,KAAI;AAAA,YACJ,eAAY;AAAA,YACZ,OAAO;AAAA,cACL,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,WAAWH;AAAA,cACX,QAAQ;AAAA,cACR,WAAW;AAAA,YAAA;AAAA,UACb;AAAA,QAAA,IAGFG,EAAA,CAEJ;AAAA,QAIF,gBAAAsB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAb;AAAA,YACA,KAAAf;AAAA,YACA,KAAAC;AAAA,YACA,SAAAG;AAAA,YACA,QAAQe;AAAA,YACR,SAASG;AAAA,YACT,OAAOI;AAAA,YACN,GAAGZ;AAAA,UAAA;AAAA,QAAA;AAAA,MACN;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;AAEDhB,EAAM,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),w=require("react"),x=require("../../../utils/styles.cjs"),S={sm:{width:60,deleteSize:18},md:{width:80,deleteSize:20},lg:{width:100,deleteSize:24}},l=w.forwardRef(function({src:d,alt:c,isSelected:r=!1,badge:o,onClick:u,onDelete:s,size:i="md",aspectRatio:b="1",disabled:e=!1,className:m,testId:g},y){const t=S[i],h={position:"relative",width:t.width,aspectRatio:b,padding:0,border:r?"2px solid var(--brycks-primary-default)":"2px solid transparent",borderRadius:"var(--brycks-radius-md)",overflow:"hidden",cursor:e?"not-allowed":"pointer",background:"var(--brycks-background-muted)",opacity:e?.5:1,transition:"border-color var(--brycks-duration-fast) var(--brycks-easing-out)"},p={width:"100%",height:"100%",objectFit:"cover",display:"block"},k={position:"absolute",top:4,right:4,width:t.deleteSize,height:t.deleteSize,borderRadius:"50%",background:"rgba(0, 0, 0, 0.7)",color:"white",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:t.deleteSize*.6,fontWeight:600,lineHeight:1,padding:0,transition:"background var(--brycks-duration-fast) var(--brycks-easing-out)"},f={position:"absolute",bottom:4,left:4,background:"var(--brycks-primary-default)",color:"white",padding:"2px 6px",borderRadius:"var(--brycks-radius-sm)",fontSize:i==="sm"?8:i==="md"?10:11,fontWeight:600,lineHeight:1,textTransform:"uppercase"},v=n=>{n.stopPropagation(),s?.(n)};return a.jsxs("button",{ref:y,type:"button",className:x.cx("brycks-image-thumbnail",r&&"brycks-image-thumbnail--selected",e&&"brycks-image-thumbnail--disabled",m),style:h,onClick:u,disabled:e,"data-testid":g,"aria-pressed":r,children:[a.jsx("img",{src:d,alt:c,style:p}),s&&!e&&a.jsx("button",{type:"button",className:"brycks-image-thumbnail__delete",style:k,onClick:v,"aria-label":"Remove image",children:"×"}),o&&a.jsx("span",{className:"brycks-image-thumbnail__badge",style:f,children:o})]})});l.displayName="ImageThumbnail";exports.ImageThumbnail=l;
2
+ //# sourceMappingURL=ImageThumbnail.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnail.cjs","sources":["../../../../src/components/media/ImageThumbnail/ImageThumbnail.tsx"],"sourcesContent":["/**\n * ImageThumbnail Component\n *\n * Thumbnail image with selection state, optional badge, and delete action.\n * Designed for image galleries and media selection interfaces.\n */\n\nimport {\n forwardRef,\n type CSSProperties,\n type ReactNode,\n type MouseEvent,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport interface ImageThumbnailProps {\n /** Image source URL */\n src: string\n /** Alternative text for accessibility */\n alt: string\n /** Whether this thumbnail is selected */\n isSelected?: boolean\n /** Badge content (e.g., \"COVER\", \"PRIMARY\") */\n badge?: ReactNode\n /** Callback when thumbnail is clicked */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Callback when delete button is clicked */\n onDelete?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Size of the thumbnail */\n size?: 'sm' | 'md' | 'lg'\n /** Aspect ratio of the thumbnail */\n aspectRatio?: '1' | '4/3' | '16/9'\n /** Whether the thumbnail is disabled */\n disabled?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeMap: Record<string, { width: number; deleteSize: number }> = {\n sm: { width: 60, deleteSize: 18 },\n md: { width: 80, deleteSize: 20 },\n lg: { width: 100, deleteSize: 24 },\n}\n\nexport const ImageThumbnail = forwardRef<HTMLButtonElement, ImageThumbnailProps>(\n function ImageThumbnail(\n {\n src,\n alt,\n isSelected = false,\n badge,\n onClick,\n onDelete,\n size = 'md',\n aspectRatio = '1',\n disabled = false,\n className,\n testId,\n },\n ref\n ) {\n const sizeValue = sizeMap[size]\n\n const containerStyle: CSSProperties = {\n position: 'relative',\n width: sizeValue.width,\n aspectRatio,\n padding: 0,\n border: isSelected\n ? '2px solid var(--brycks-primary-default)'\n : '2px solid transparent',\n borderRadius: 'var(--brycks-radius-md)',\n overflow: 'hidden',\n cursor: disabled ? 'not-allowed' : 'pointer',\n background: 'var(--brycks-background-muted)',\n opacity: disabled ? 0.5 : 1,\n transition: 'border-color var(--brycks-duration-fast) var(--brycks-easing-out)',\n }\n\n const imageStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n }\n\n const deleteButtonStyle: CSSProperties = {\n position: 'absolute',\n top: 4,\n right: 4,\n width: sizeValue.deleteSize,\n height: sizeValue.deleteSize,\n borderRadius: '50%',\n background: 'rgba(0, 0, 0, 0.7)',\n color: 'white',\n border: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: sizeValue.deleteSize * 0.6,\n fontWeight: 600,\n lineHeight: 1,\n padding: 0,\n transition: 'background var(--brycks-duration-fast) var(--brycks-easing-out)',\n }\n\n const badgeStyle: CSSProperties = {\n position: 'absolute',\n bottom: 4,\n left: 4,\n background: 'var(--brycks-primary-default)',\n color: 'white',\n padding: '2px 6px',\n borderRadius: 'var(--brycks-radius-sm)',\n fontSize: size === 'sm' ? 8 : size === 'md' ? 10 : 11,\n fontWeight: 600,\n lineHeight: 1,\n textTransform: 'uppercase',\n }\n\n const handleDelete = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n onDelete?.(e)\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cx(\n 'brycks-image-thumbnail',\n isSelected && 'brycks-image-thumbnail--selected',\n disabled && 'brycks-image-thumbnail--disabled',\n className\n )}\n style={containerStyle}\n onClick={onClick}\n disabled={disabled}\n data-testid={testId}\n aria-pressed={isSelected}\n >\n <img src={src} alt={alt} style={imageStyle} />\n\n {onDelete && !disabled && (\n <button\n type=\"button\"\n className=\"brycks-image-thumbnail__delete\"\n style={deleteButtonStyle}\n onClick={handleDelete}\n aria-label=\"Remove image\"\n >\n ×\n </button>\n )}\n\n {badge && (\n <span className=\"brycks-image-thumbnail__badge\" style={badgeStyle}>\n {badge}\n </span>\n )}\n </button>\n )\n }\n)\n\nImageThumbnail.displayName = 'ImageThumbnail'\n"],"names":["sizeMap","ImageThumbnail","forwardRef","src","alt","isSelected","badge","onClick","onDelete","size","aspectRatio","disabled","className","testId","ref","sizeValue","containerStyle","imageStyle","deleteButtonStyle","badgeStyle","handleDelete","e","jsxs","cx","jsx"],"mappings":"+KAwCMA,EAAiE,CACrE,GAAI,CAAE,MAAO,GAAI,WAAY,EAAA,EAC7B,GAAI,CAAE,MAAO,GAAI,WAAY,EAAA,EAC7B,GAAI,CAAE,MAAO,IAAK,WAAY,EAAA,CAChC,EAEaC,EAAiBC,EAAAA,WAC5B,SACE,CACE,IAAAC,EACA,IAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,KAAAC,EAAO,KACP,YAAAC,EAAc,IACd,SAAAC,EAAW,GACX,UAAAC,EACA,OAAAC,CAAA,EAEFC,EACA,CACA,MAAMC,EAAYf,EAAQS,CAAI,EAExBO,EAAgC,CACpC,SAAU,WACV,MAAOD,EAAU,MACjB,YAAAL,EACA,QAAS,EACT,OAAQL,EACJ,0CACA,wBACJ,aAAc,0BACd,SAAU,SACV,OAAQM,EAAW,cAAgB,UACnC,WAAY,iCACZ,QAASA,EAAW,GAAM,EAC1B,WAAY,mEAAA,EAGRM,EAA4B,CAChC,MAAO,OACP,OAAQ,OACR,UAAW,QACX,QAAS,OAAA,EAGLC,EAAmC,CACvC,SAAU,WACV,IAAK,EACL,MAAO,EACP,MAAOH,EAAU,WACjB,OAAQA,EAAU,WAClB,aAAc,MACd,WAAY,qBACZ,MAAO,QACP,OAAQ,OACR,OAAQ,UACR,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,SAAUA,EAAU,WAAa,GACjC,WAAY,IACZ,WAAY,EACZ,QAAS,EACT,WAAY,iEAAA,EAGRI,EAA4B,CAChC,SAAU,WACV,OAAQ,EACR,KAAM,EACN,WAAY,gCACZ,MAAO,QACP,QAAS,UACT,aAAc,0BACd,SAAUV,IAAS,KAAO,EAAIA,IAAS,KAAO,GAAK,GACnD,WAAY,IACZ,WAAY,EACZ,cAAe,WAAA,EAGXW,EAAgBC,GAAqC,CACzDA,EAAE,gBAAA,EACFb,IAAWa,CAAC,CACd,EAEA,OACEC,EAAAA,KAAC,SAAA,CACC,IAAAR,EACA,KAAK,SACL,UAAWS,EAAAA,GACT,yBACAlB,GAAc,mCACdM,GAAY,mCACZC,CAAA,EAEF,MAAOI,EACP,QAAAT,EACA,SAAAI,EACA,cAAaE,EACb,eAAcR,EAEd,SAAA,CAAAmB,EAAAA,IAAC,MAAA,CAAI,IAAArB,EAAU,IAAAC,EAAU,MAAOa,EAAY,EAE3CT,GAAY,CAACG,GACZa,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,iCACV,MAAON,EACP,QAASE,EACT,aAAW,eACZ,SAAA,GAAA,CAAA,EAKFd,GACCkB,EAAAA,IAAC,OAAA,CAAK,UAAU,gCAAgC,MAAOL,EACpD,SAAAb,CAAA,CACH,CAAA,CAAA,CAAA,CAIR,CACF,EAEAL,EAAe,YAAc"}
@@ -0,0 +1,112 @@
1
+ import { jsxs as v, jsx as i } from "react/jsx-runtime";
2
+ import { forwardRef as w } from "react";
3
+ import { cx as x } from "../../../utils/styles.js";
4
+ const S = {
5
+ sm: { width: 60, deleteSize: 18 },
6
+ md: { width: 80, deleteSize: 20 },
7
+ lg: { width: 100, deleteSize: 24 }
8
+ }, z = w(
9
+ function({
10
+ src: d,
11
+ alt: l,
12
+ isSelected: r = !1,
13
+ badge: o,
14
+ onClick: c,
15
+ onDelete: n,
16
+ size: a = "md",
17
+ aspectRatio: m = "1",
18
+ disabled: e = !1,
19
+ className: b,
20
+ testId: u
21
+ }, g) {
22
+ const t = S[a], p = {
23
+ position: "relative",
24
+ width: t.width,
25
+ aspectRatio: m,
26
+ padding: 0,
27
+ border: r ? "2px solid var(--brycks-primary-default)" : "2px solid transparent",
28
+ borderRadius: "var(--brycks-radius-md)",
29
+ overflow: "hidden",
30
+ cursor: e ? "not-allowed" : "pointer",
31
+ background: "var(--brycks-background-muted)",
32
+ opacity: e ? 0.5 : 1,
33
+ transition: "border-color var(--brycks-duration-fast) var(--brycks-easing-out)"
34
+ }, h = {
35
+ width: "100%",
36
+ height: "100%",
37
+ objectFit: "cover",
38
+ display: "block"
39
+ }, y = {
40
+ position: "absolute",
41
+ top: 4,
42
+ right: 4,
43
+ width: t.deleteSize,
44
+ height: t.deleteSize,
45
+ borderRadius: "50%",
46
+ background: "rgba(0, 0, 0, 0.7)",
47
+ color: "white",
48
+ border: "none",
49
+ cursor: "pointer",
50
+ display: "flex",
51
+ alignItems: "center",
52
+ justifyContent: "center",
53
+ fontSize: t.deleteSize * 0.6,
54
+ fontWeight: 600,
55
+ lineHeight: 1,
56
+ padding: 0,
57
+ transition: "background var(--brycks-duration-fast) var(--brycks-easing-out)"
58
+ }, f = {
59
+ position: "absolute",
60
+ bottom: 4,
61
+ left: 4,
62
+ background: "var(--brycks-primary-default)",
63
+ color: "white",
64
+ padding: "2px 6px",
65
+ borderRadius: "var(--brycks-radius-sm)",
66
+ fontSize: a === "sm" ? 8 : a === "md" ? 10 : 11,
67
+ fontWeight: 600,
68
+ lineHeight: 1,
69
+ textTransform: "uppercase"
70
+ }, k = (s) => {
71
+ s.stopPropagation(), n?.(s);
72
+ };
73
+ return /* @__PURE__ */ v(
74
+ "button",
75
+ {
76
+ ref: g,
77
+ type: "button",
78
+ className: x(
79
+ "brycks-image-thumbnail",
80
+ r && "brycks-image-thumbnail--selected",
81
+ e && "brycks-image-thumbnail--disabled",
82
+ b
83
+ ),
84
+ style: p,
85
+ onClick: c,
86
+ disabled: e,
87
+ "data-testid": u,
88
+ "aria-pressed": r,
89
+ children: [
90
+ /* @__PURE__ */ i("img", { src: d, alt: l, style: h }),
91
+ n && !e && /* @__PURE__ */ i(
92
+ "button",
93
+ {
94
+ type: "button",
95
+ className: "brycks-image-thumbnail__delete",
96
+ style: y,
97
+ onClick: k,
98
+ "aria-label": "Remove image",
99
+ children: "×"
100
+ }
101
+ ),
102
+ o && /* @__PURE__ */ i("span", { className: "brycks-image-thumbnail__badge", style: f, children: o })
103
+ ]
104
+ }
105
+ );
106
+ }
107
+ );
108
+ z.displayName = "ImageThumbnail";
109
+ export {
110
+ z as ImageThumbnail
111
+ };
112
+ //# sourceMappingURL=ImageThumbnail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageThumbnail.js","sources":["../../../../src/components/media/ImageThumbnail/ImageThumbnail.tsx"],"sourcesContent":["/**\n * ImageThumbnail Component\n *\n * Thumbnail image with selection state, optional badge, and delete action.\n * Designed for image galleries and media selection interfaces.\n */\n\nimport {\n forwardRef,\n type CSSProperties,\n type ReactNode,\n type MouseEvent,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport interface ImageThumbnailProps {\n /** Image source URL */\n src: string\n /** Alternative text for accessibility */\n alt: string\n /** Whether this thumbnail is selected */\n isSelected?: boolean\n /** Badge content (e.g., \"COVER\", \"PRIMARY\") */\n badge?: ReactNode\n /** Callback when thumbnail is clicked */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Callback when delete button is clicked */\n onDelete?: (event: MouseEvent<HTMLButtonElement>) => void\n /** Size of the thumbnail */\n size?: 'sm' | 'md' | 'lg'\n /** Aspect ratio of the thumbnail */\n aspectRatio?: '1' | '4/3' | '16/9'\n /** Whether the thumbnail is disabled */\n disabled?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeMap: Record<string, { width: number; deleteSize: number }> = {\n sm: { width: 60, deleteSize: 18 },\n md: { width: 80, deleteSize: 20 },\n lg: { width: 100, deleteSize: 24 },\n}\n\nexport const ImageThumbnail = forwardRef<HTMLButtonElement, ImageThumbnailProps>(\n function ImageThumbnail(\n {\n src,\n alt,\n isSelected = false,\n badge,\n onClick,\n onDelete,\n size = 'md',\n aspectRatio = '1',\n disabled = false,\n className,\n testId,\n },\n ref\n ) {\n const sizeValue = sizeMap[size]\n\n const containerStyle: CSSProperties = {\n position: 'relative',\n width: sizeValue.width,\n aspectRatio,\n padding: 0,\n border: isSelected\n ? '2px solid var(--brycks-primary-default)'\n : '2px solid transparent',\n borderRadius: 'var(--brycks-radius-md)',\n overflow: 'hidden',\n cursor: disabled ? 'not-allowed' : 'pointer',\n background: 'var(--brycks-background-muted)',\n opacity: disabled ? 0.5 : 1,\n transition: 'border-color var(--brycks-duration-fast) var(--brycks-easing-out)',\n }\n\n const imageStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n }\n\n const deleteButtonStyle: CSSProperties = {\n position: 'absolute',\n top: 4,\n right: 4,\n width: sizeValue.deleteSize,\n height: sizeValue.deleteSize,\n borderRadius: '50%',\n background: 'rgba(0, 0, 0, 0.7)',\n color: 'white',\n border: 'none',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: sizeValue.deleteSize * 0.6,\n fontWeight: 600,\n lineHeight: 1,\n padding: 0,\n transition: 'background var(--brycks-duration-fast) var(--brycks-easing-out)',\n }\n\n const badgeStyle: CSSProperties = {\n position: 'absolute',\n bottom: 4,\n left: 4,\n background: 'var(--brycks-primary-default)',\n color: 'white',\n padding: '2px 6px',\n borderRadius: 'var(--brycks-radius-sm)',\n fontSize: size === 'sm' ? 8 : size === 'md' ? 10 : 11,\n fontWeight: 600,\n lineHeight: 1,\n textTransform: 'uppercase',\n }\n\n const handleDelete = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n onDelete?.(e)\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cx(\n 'brycks-image-thumbnail',\n isSelected && 'brycks-image-thumbnail--selected',\n disabled && 'brycks-image-thumbnail--disabled',\n className\n )}\n style={containerStyle}\n onClick={onClick}\n disabled={disabled}\n data-testid={testId}\n aria-pressed={isSelected}\n >\n <img src={src} alt={alt} style={imageStyle} />\n\n {onDelete && !disabled && (\n <button\n type=\"button\"\n className=\"brycks-image-thumbnail__delete\"\n style={deleteButtonStyle}\n onClick={handleDelete}\n aria-label=\"Remove image\"\n >\n ×\n </button>\n )}\n\n {badge && (\n <span className=\"brycks-image-thumbnail__badge\" style={badgeStyle}>\n {badge}\n </span>\n )}\n </button>\n )\n }\n)\n\nImageThumbnail.displayName = 'ImageThumbnail'\n"],"names":["sizeMap","ImageThumbnail","forwardRef","src","alt","isSelected","badge","onClick","onDelete","size","aspectRatio","disabled","className","testId","ref","sizeValue","containerStyle","imageStyle","deleteButtonStyle","badgeStyle","handleDelete","e","jsxs","cx","jsx"],"mappings":";;;AAwCA,MAAMA,IAAiE;AAAA,EACrE,IAAI,EAAE,OAAO,IAAI,YAAY,GAAA;AAAA,EAC7B,IAAI,EAAE,OAAO,IAAI,YAAY,GAAA;AAAA,EAC7B,IAAI,EAAE,OAAO,KAAK,YAAY,GAAA;AAChC,GAEaC,IAAiBC;AAAA,EAC5B,SACE;AAAA,IACE,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA,YAAAC,IAAa;AAAA,IACb,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,IACP,aAAAC,IAAc;AAAA,IACd,UAAAC,IAAW;AAAA,IACX,WAAAC;AAAA,IACA,QAAAC;AAAA,EAAA,GAEFC,GACA;AACA,UAAMC,IAAYf,EAAQS,CAAI,GAExBO,IAAgC;AAAA,MACpC,UAAU;AAAA,MACV,OAAOD,EAAU;AAAA,MACjB,aAAAL;AAAA,MACA,SAAS;AAAA,MACT,QAAQL,IACJ,4CACA;AAAA,MACJ,cAAc;AAAA,MACd,UAAU;AAAA,MACV,QAAQM,IAAW,gBAAgB;AAAA,MACnC,YAAY;AAAA,MACZ,SAASA,IAAW,MAAM;AAAA,MAC1B,YAAY;AAAA,IAAA,GAGRM,IAA4B;AAAA,MAChC,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,WAAW;AAAA,MACX,SAAS;AAAA,IAAA,GAGLC,IAAmC;AAAA,MACvC,UAAU;AAAA,MACV,KAAK;AAAA,MACL,OAAO;AAAA,MACP,OAAOH,EAAU;AAAA,MACjB,QAAQA,EAAU;AAAA,MAClB,cAAc;AAAA,MACd,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,UAAUA,EAAU,aAAa;AAAA,MACjC,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,SAAS;AAAA,MACT,YAAY;AAAA,IAAA,GAGRI,IAA4B;AAAA,MAChC,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,UAAUV,MAAS,OAAO,IAAIA,MAAS,OAAO,KAAK;AAAA,MACnD,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ,eAAe;AAAA,IAAA,GAGXW,IAAe,CAACC,MAAqC;AACzD,MAAAA,EAAE,gBAAA,GACFb,IAAWa,CAAC;AAAA,IACd;AAEA,WACE,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,KAAAR;AAAA,QACA,MAAK;AAAA,QACL,WAAWS;AAAA,UACT;AAAA,UACAlB,KAAc;AAAA,UACdM,KAAY;AAAA,UACZC;AAAA,QAAA;AAAA,QAEF,OAAOI;AAAA,QACP,SAAAT;AAAA,QACA,UAAAI;AAAA,QACA,eAAaE;AAAA,QACb,gBAAcR;AAAA,QAEd,UAAA;AAAA,UAAA,gBAAAmB,EAAC,OAAA,EAAI,KAAArB,GAAU,KAAAC,GAAU,OAAOa,GAAY;AAAA,UAE3CT,KAAY,CAACG,KACZ,gBAAAa;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAU;AAAA,cACV,OAAON;AAAA,cACP,SAASE;AAAA,cACT,cAAW;AAAA,cACZ,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAKFd,KACC,gBAAAkB,EAAC,QAAA,EAAK,WAAU,iCAAgC,OAAOL,GACpD,UAAAb,EAAA,CACH;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;AAEAL,EAAe,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),r=require("react"),x=require("../../../utils/styles.cjs"),G=require("../../../hooks/useMediaQuery.cjs"),j={none:"0",sm:"var(--brycks-radius-sm)",md:"var(--brycks-radius-md)",lg:"var(--brycks-radius-lg)",xl:"var(--brycks-radius-xl)",full:"var(--brycks-radius-full)"};function J(s){if(s===void 0)return;if(typeof s=="number")return s;const n=s.split(/[:/]/);if(n.length===2){const u=parseFloat(n[0]),i=parseFloat(n[1]);if(!isNaN(u)&&!isNaN(i)&&i!==0)return u/i}const l=parseFloat(s);return isNaN(l)?void 0:l}const R=r.forwardRef(function({src:n,poster:l,aspectRatio:u,fit:i="cover",preload:w="metadata",autoPlay:y=!1,loop:C=!1,controls:N=!0,muted:S,playsInline:P=!0,radius:E="none",onPlay:p,onPause:b,onEnded:v,onCanPlay:M,onError:m,className:g,style:V,testId:h,...q},A){const e=r.useRef(null),[F,d]=r.useState(!1),[T,z]=r.useState(!1),B=G.usePrefersReducedMotion(),f=!(B||y===!1),H=S??(f||y==="muted");r.useImperativeHandle(A,()=>({play:async()=>{e.current&&await e.current.play()},pause:()=>{e.current?.pause()},toggle:()=>{e.current&&(e.current.paused?e.current.play():e.current.pause())},seek:t=>{e.current&&(e.current.currentTime=t)},getCurrentTime:()=>e.current?.currentTime??0,getDuration:()=>e.current?.duration??0,isPlaying:()=>!e.current?.paused,getElement:()=>e.current}),[]),r.useEffect(()=>{f&&e.current&&(async()=>{try{await e.current?.play()}catch{}})()},[f]);const I=r.useCallback(t=>{d(!0),p?.(t)},[p]),O=r.useCallback(t=>{d(!1),b?.(t)},[b]),$=r.useCallback(t=>{d(!1),v?.(t)},[v]),D=r.useCallback(t=>{z(!0),m?.(t)},[m]),a=J(u),c=j[E]??j.none,k={position:"relative",overflow:"hidden",borderRadius:c,backgroundColor:"var(--brycks-background-muted)",...a?{width:"100%",paddingBottom:`${1/a*100}%`}:{},...V},Q={display:"block",objectFit:i,borderRadius:c,...a?{position:"absolute",top:0,left:0,width:"100%",height:"100%"}:{width:"100%",height:"auto"}},U={position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"var(--brycks-background-muted)",color:"var(--brycks-foreground-muted)",fontSize:"var(--brycks-font-size-sm)",borderRadius:c};return T?o.jsxs("div",{className:x.cx("brycks-video","brycks-video--error",g),style:k,"data-testid":h,role:"img","aria-label":"Video failed to load",children:[a&&o.jsx("div",{style:{paddingBottom:`${1/a*100}%`}}),o.jsx("div",{style:U,children:o.jsx("span",{children:"Unable to load video"})})]}):o.jsx("div",{className:x.cx("brycks-video",F&&"brycks-video--playing",g),style:a?k:{position:"relative",borderRadius:c},"data-testid":h,children:o.jsx("video",{ref:e,src:n,poster:l,preload:w,loop:C,controls:N,muted:H,playsInline:P,onPlay:I,onPause:O,onEnded:$,onCanPlay:M,onError:D,style:Q,...q})})});R.displayName="Video";exports.Video=R;
2
+ //# sourceMappingURL=Video.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Video.cjs","sources":["../../../../src/components/media/Video/Video.tsx"],"sourcesContent":["/**\r\n * Video Component\r\n *\r\n * Accessible video player with customizable controls, poster support,\r\n * and respect for user motion preferences.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useRef,\r\n useState,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n type CSSProperties,\r\n type VideoHTMLAttributes,\r\n type SyntheticEvent,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { usePrefersReducedMotion } from '../../../hooks/useMediaQuery'\r\n\r\nexport type VideoFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'\r\nexport type VideoPreload = 'none' | 'metadata' | 'auto'\r\n\r\nexport interface VideoProps\r\n extends Omit<VideoHTMLAttributes<HTMLVideoElement>, 'autoPlay'> {\r\n /** Video source URL */\r\n src: string\r\n /** Poster image URL shown before playback */\r\n poster?: string\r\n /** Aspect ratio (width/height) */\r\n aspectRatio?: number | string\r\n /** How the video should fit within its container */\r\n fit?: VideoFit\r\n /** Preload behavior */\r\n preload?: VideoPreload\r\n /**\r\n * Autoplay behavior.\r\n * - true: Autoplay (muted, respects reduced motion)\r\n * - 'muted': Autoplay muted only\r\n * - false: No autoplay\r\n * @default false\r\n */\r\n autoPlay?: boolean | 'muted'\r\n /** Loop video playback */\r\n loop?: boolean\r\n /** Show native controls */\r\n controls?: boolean\r\n /** Start muted */\r\n muted?: boolean\r\n /** Play inline on mobile (vs fullscreen) */\r\n playsInline?: boolean\r\n /** Border radius using design tokens */\r\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'\r\n /** Callback when video starts playing */\r\n onPlay?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video pauses */\r\n onPause?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video ends */\r\n onEnded?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video can play */\r\n onCanPlay?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback on error */\r\n onError?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport interface VideoRef {\r\n /** Play the video */\r\n play: () => Promise<void>\r\n /** Pause the video */\r\n pause: () => void\r\n /** Toggle play/pause */\r\n toggle: () => void\r\n /** Seek to time in seconds */\r\n seek: (time: number) => void\r\n /** Get current time in seconds */\r\n getCurrentTime: () => number\r\n /** Get duration in seconds */\r\n getDuration: () => number\r\n /** Check if video is playing */\r\n isPlaying: () => boolean\r\n /** Get the underlying video element */\r\n getElement: () => HTMLVideoElement | null\r\n}\r\n\r\nconst radiusMap: Record<string, string> = {\r\n none: '0',\r\n sm: 'var(--brycks-radius-sm)',\r\n md: 'var(--brycks-radius-md)',\r\n lg: 'var(--brycks-radius-lg)',\r\n xl: 'var(--brycks-radius-xl)',\r\n full: 'var(--brycks-radius-full)',\r\n}\r\n\r\nfunction parseAspectRatio(ratio: number | string | undefined): number | undefined {\r\n if (ratio === undefined) return undefined\r\n if (typeof ratio === 'number') return ratio\r\n\r\n const parts = ratio.split(/[:/]/)\r\n if (parts.length === 2) {\r\n const width = parseFloat(parts[0])\r\n const height = parseFloat(parts[1])\r\n if (!isNaN(width) && !isNaN(height) && height !== 0) {\r\n return width / height\r\n }\r\n }\r\n\r\n const parsed = parseFloat(ratio)\r\n return isNaN(parsed) ? undefined : parsed\r\n}\r\n\r\nexport const Video = forwardRef<VideoRef, VideoProps>(function Video(\r\n {\r\n src,\r\n poster,\r\n aspectRatio,\r\n fit = 'cover',\r\n preload = 'metadata',\r\n autoPlay = false,\r\n loop = false,\r\n controls = true,\r\n muted,\r\n playsInline = true,\r\n radius = 'none',\r\n onPlay,\r\n onPause,\r\n onEnded,\r\n onCanPlay,\r\n onError,\r\n className,\r\n style,\r\n testId,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const videoRef = useRef<HTMLVideoElement>(null)\r\n const [isPlaying, setIsPlaying] = useState(false)\r\n const [hasError, setHasError] = useState(false)\r\n const prefersReducedMotion = usePrefersReducedMotion()\r\n\r\n // Determine if autoplay should be enabled\r\n const shouldAutoPlay = (() => {\r\n // Never autoplay if user prefers reduced motion\r\n if (prefersReducedMotion) return false\r\n if (autoPlay === false) return false\r\n return true\r\n })()\r\n\r\n // Autoplay must be muted to work in most browsers\r\n const shouldMute = muted ?? (shouldAutoPlay || autoPlay === 'muted')\r\n\r\n // Expose imperative handle\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n play: async () => {\r\n if (videoRef.current) {\r\n await videoRef.current.play()\r\n }\r\n },\r\n pause: () => {\r\n videoRef.current?.pause()\r\n },\r\n toggle: () => {\r\n if (videoRef.current) {\r\n if (videoRef.current.paused) {\r\n videoRef.current.play()\r\n } else {\r\n videoRef.current.pause()\r\n }\r\n }\r\n },\r\n seek: (time: number) => {\r\n if (videoRef.current) {\r\n videoRef.current.currentTime = time\r\n }\r\n },\r\n getCurrentTime: () => videoRef.current?.currentTime ?? 0,\r\n getDuration: () => videoRef.current?.duration ?? 0,\r\n isPlaying: () => !videoRef.current?.paused,\r\n getElement: () => videoRef.current,\r\n }),\r\n []\r\n )\r\n\r\n // Handle autoplay on mount\r\n useEffect(() => {\r\n if (shouldAutoPlay && videoRef.current) {\r\n // Use a small delay to ensure video is ready\r\n const attemptAutoplay = async () => {\r\n try {\r\n await videoRef.current?.play()\r\n } catch {\r\n // Autoplay was blocked - this is expected in many browsers\r\n // The video will remain paused with poster visible\r\n }\r\n }\r\n attemptAutoplay()\r\n }\r\n }, [shouldAutoPlay])\r\n\r\n const handlePlay = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(true)\r\n onPlay?.(event)\r\n },\r\n [onPlay]\r\n )\r\n\r\n const handlePause = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(false)\r\n onPause?.(event)\r\n },\r\n [onPause]\r\n )\r\n\r\n const handleEnded = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(false)\r\n onEnded?.(event)\r\n },\r\n [onEnded]\r\n )\r\n\r\n const handleError = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setHasError(true)\r\n onError?.(event)\r\n },\r\n [onError]\r\n )\r\n\r\n const parsedRatio = parseAspectRatio(aspectRatio)\r\n const borderRadius = radiusMap[radius] ?? radiusMap.none\r\n\r\n const containerStyle: CSSProperties = {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n borderRadius,\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n ...(parsedRatio\r\n ? {\r\n width: '100%',\r\n paddingBottom: `${(1 / parsedRatio) * 100}%`,\r\n }\r\n : {}),\r\n ...style,\r\n }\r\n\r\n const videoStyle: CSSProperties = {\r\n display: 'block',\r\n objectFit: fit,\r\n borderRadius,\r\n ...(parsedRatio\r\n ? {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n }\r\n : {\r\n width: '100%',\r\n height: 'auto',\r\n }),\r\n }\r\n\r\n const errorOverlayStyle: CSSProperties = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n color: 'var(--brycks-foreground-muted)',\r\n fontSize: 'var(--brycks-font-size-sm)',\r\n borderRadius,\r\n }\r\n\r\n if (hasError) {\r\n return (\r\n <div\r\n className={cx('brycks-video', 'brycks-video--error', className)}\r\n style={containerStyle}\r\n data-testid={testId}\r\n role=\"img\"\r\n aria-label=\"Video failed to load\"\r\n >\r\n {parsedRatio && <div style={{ paddingBottom: `${(1 / parsedRatio) * 100}%` }} />}\r\n <div style={errorOverlayStyle}>\r\n <span>Unable to load video</span>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-video',\r\n isPlaying && 'brycks-video--playing',\r\n className\r\n )}\r\n style={parsedRatio ? containerStyle : { position: 'relative', borderRadius }}\r\n data-testid={testId}\r\n >\r\n <video\r\n ref={videoRef}\r\n src={src}\r\n poster={poster}\r\n preload={preload}\r\n loop={loop}\r\n controls={controls}\r\n muted={shouldMute}\r\n playsInline={playsInline}\r\n onPlay={handlePlay}\r\n onPause={handlePause}\r\n onEnded={handleEnded}\r\n onCanPlay={onCanPlay}\r\n onError={handleError}\r\n style={videoStyle}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\n\r\nVideo.displayName = 'Video'\r\n"],"names":["radiusMap","parseAspectRatio","ratio","parts","width","height","parsed","Video","forwardRef","src","poster","aspectRatio","fit","preload","autoPlay","loop","controls","muted","playsInline","radius","onPlay","onPause","onEnded","onCanPlay","onError","className","style","testId","props","ref","videoRef","useRef","isPlaying","setIsPlaying","useState","hasError","setHasError","prefersReducedMotion","usePrefersReducedMotion","shouldAutoPlay","shouldMute","useImperativeHandle","time","useEffect","handlePlay","useCallback","event","handlePause","handleEnded","handleError","parsedRatio","borderRadius","containerStyle","videoStyle","errorOverlayStyle","jsxs","cx","jsx"],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { jsxs as J, jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as K, useRef as L, useState as w, useImperativeHandle as Q, useEffect as W, useCallback as c } from "react";
3
+ import { cx as N } from "../../../utils/styles.js";
4
+ import { usePrefersReducedMotion as X } from "../../../hooks/useMediaQuery.js";
5
+ const R = {
6
+ none: "0",
7
+ sm: "var(--brycks-radius-sm)",
8
+ md: "var(--brycks-radius-md)",
9
+ lg: "var(--brycks-radius-lg)",
10
+ xl: "var(--brycks-radius-xl)",
11
+ full: "var(--brycks-radius-full)"
12
+ };
13
+ function Y(r) {
14
+ if (r === void 0) return;
15
+ if (typeof r == "number") return r;
16
+ const o = r.split(/[:/]/);
17
+ if (o.length === 2) {
18
+ const l = parseFloat(o[0]), a = parseFloat(o[1]);
19
+ if (!isNaN(l) && !isNaN(a) && a !== 0)
20
+ return l / a;
21
+ }
22
+ const i = parseFloat(r);
23
+ return isNaN(i) ? void 0 : i;
24
+ }
25
+ const Z = K(function({
26
+ src: o,
27
+ poster: i,
28
+ aspectRatio: l,
29
+ fit: a = "cover",
30
+ preload: x = "metadata",
31
+ autoPlay: p = !1,
32
+ loop: E = !1,
33
+ controls: P = !0,
34
+ muted: C,
35
+ playsInline: S = !0,
36
+ radius: j = "none",
37
+ onPlay: y,
38
+ onPause: m,
39
+ onEnded: v,
40
+ onCanPlay: A,
41
+ onError: b,
42
+ className: g,
43
+ style: F,
44
+ testId: h,
45
+ ...M
46
+ }, V) {
47
+ const e = L(null), [T, u] = w(!1), [z, B] = w(!1), H = X(), f = !(H || p === !1), I = C ?? (f || p === "muted");
48
+ Q(
49
+ V,
50
+ () => ({
51
+ play: async () => {
52
+ e.current && await e.current.play();
53
+ },
54
+ pause: () => {
55
+ e.current?.pause();
56
+ },
57
+ toggle: () => {
58
+ e.current && (e.current.paused ? e.current.play() : e.current.pause());
59
+ },
60
+ seek: (t) => {
61
+ e.current && (e.current.currentTime = t);
62
+ },
63
+ getCurrentTime: () => e.current?.currentTime ?? 0,
64
+ getDuration: () => e.current?.duration ?? 0,
65
+ isPlaying: () => !e.current?.paused,
66
+ getElement: () => e.current
67
+ }),
68
+ []
69
+ ), W(() => {
70
+ f && e.current && (async () => {
71
+ try {
72
+ await e.current?.play();
73
+ } catch {
74
+ }
75
+ })();
76
+ }, [f]);
77
+ const $ = c(
78
+ (t) => {
79
+ u(!0), y?.(t);
80
+ },
81
+ [y]
82
+ ), D = c(
83
+ (t) => {
84
+ u(!1), m?.(t);
85
+ },
86
+ [m]
87
+ ), O = c(
88
+ (t) => {
89
+ u(!1), v?.(t);
90
+ },
91
+ [v]
92
+ ), U = c(
93
+ (t) => {
94
+ B(!0), b?.(t);
95
+ },
96
+ [b]
97
+ ), s = Y(l), d = R[j] ?? R.none, k = {
98
+ position: "relative",
99
+ overflow: "hidden",
100
+ borderRadius: d,
101
+ backgroundColor: "var(--brycks-background-muted)",
102
+ ...s ? {
103
+ width: "100%",
104
+ paddingBottom: `${1 / s * 100}%`
105
+ } : {},
106
+ ...F
107
+ }, q = {
108
+ display: "block",
109
+ objectFit: a,
110
+ borderRadius: d,
111
+ ...s ? {
112
+ position: "absolute",
113
+ top: 0,
114
+ left: 0,
115
+ width: "100%",
116
+ height: "100%"
117
+ } : {
118
+ width: "100%",
119
+ height: "auto"
120
+ }
121
+ }, G = {
122
+ position: "absolute",
123
+ top: 0,
124
+ left: 0,
125
+ right: 0,
126
+ bottom: 0,
127
+ display: "flex",
128
+ alignItems: "center",
129
+ justifyContent: "center",
130
+ backgroundColor: "var(--brycks-background-muted)",
131
+ color: "var(--brycks-foreground-muted)",
132
+ fontSize: "var(--brycks-font-size-sm)",
133
+ borderRadius: d
134
+ };
135
+ return z ? /* @__PURE__ */ J(
136
+ "div",
137
+ {
138
+ className: N("brycks-video", "brycks-video--error", g),
139
+ style: k,
140
+ "data-testid": h,
141
+ role: "img",
142
+ "aria-label": "Video failed to load",
143
+ children: [
144
+ s && /* @__PURE__ */ n("div", { style: { paddingBottom: `${1 / s * 100}%` } }),
145
+ /* @__PURE__ */ n("div", { style: G, children: /* @__PURE__ */ n("span", { children: "Unable to load video" }) })
146
+ ]
147
+ }
148
+ ) : /* @__PURE__ */ n(
149
+ "div",
150
+ {
151
+ className: N(
152
+ "brycks-video",
153
+ T && "brycks-video--playing",
154
+ g
155
+ ),
156
+ style: s ? k : { position: "relative", borderRadius: d },
157
+ "data-testid": h,
158
+ children: /* @__PURE__ */ n(
159
+ "video",
160
+ {
161
+ ref: e,
162
+ src: o,
163
+ poster: i,
164
+ preload: x,
165
+ loop: E,
166
+ controls: P,
167
+ muted: I,
168
+ playsInline: S,
169
+ onPlay: $,
170
+ onPause: D,
171
+ onEnded: O,
172
+ onCanPlay: A,
173
+ onError: U,
174
+ style: q,
175
+ ...M
176
+ }
177
+ )
178
+ }
179
+ );
180
+ });
181
+ Z.displayName = "Video";
182
+ export {
183
+ Z as Video
184
+ };
185
+ //# sourceMappingURL=Video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Video.js","sources":["../../../../src/components/media/Video/Video.tsx"],"sourcesContent":["/**\r\n * Video Component\r\n *\r\n * Accessible video player with customizable controls, poster support,\r\n * and respect for user motion preferences.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useRef,\r\n useState,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n type CSSProperties,\r\n type VideoHTMLAttributes,\r\n type SyntheticEvent,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\nimport { usePrefersReducedMotion } from '../../../hooks/useMediaQuery'\r\n\r\nexport type VideoFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down'\r\nexport type VideoPreload = 'none' | 'metadata' | 'auto'\r\n\r\nexport interface VideoProps\r\n extends Omit<VideoHTMLAttributes<HTMLVideoElement>, 'autoPlay'> {\r\n /** Video source URL */\r\n src: string\r\n /** Poster image URL shown before playback */\r\n poster?: string\r\n /** Aspect ratio (width/height) */\r\n aspectRatio?: number | string\r\n /** How the video should fit within its container */\r\n fit?: VideoFit\r\n /** Preload behavior */\r\n preload?: VideoPreload\r\n /**\r\n * Autoplay behavior.\r\n * - true: Autoplay (muted, respects reduced motion)\r\n * - 'muted': Autoplay muted only\r\n * - false: No autoplay\r\n * @default false\r\n */\r\n autoPlay?: boolean | 'muted'\r\n /** Loop video playback */\r\n loop?: boolean\r\n /** Show native controls */\r\n controls?: boolean\r\n /** Start muted */\r\n muted?: boolean\r\n /** Play inline on mobile (vs fullscreen) */\r\n playsInline?: boolean\r\n /** Border radius using design tokens */\r\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'\r\n /** Callback when video starts playing */\r\n onPlay?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video pauses */\r\n onPause?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video ends */\r\n onEnded?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback when video can play */\r\n onCanPlay?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Callback on error */\r\n onError?: (event: SyntheticEvent<HTMLVideoElement>) => void\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport interface VideoRef {\r\n /** Play the video */\r\n play: () => Promise<void>\r\n /** Pause the video */\r\n pause: () => void\r\n /** Toggle play/pause */\r\n toggle: () => void\r\n /** Seek to time in seconds */\r\n seek: (time: number) => void\r\n /** Get current time in seconds */\r\n getCurrentTime: () => number\r\n /** Get duration in seconds */\r\n getDuration: () => number\r\n /** Check if video is playing */\r\n isPlaying: () => boolean\r\n /** Get the underlying video element */\r\n getElement: () => HTMLVideoElement | null\r\n}\r\n\r\nconst radiusMap: Record<string, string> = {\r\n none: '0',\r\n sm: 'var(--brycks-radius-sm)',\r\n md: 'var(--brycks-radius-md)',\r\n lg: 'var(--brycks-radius-lg)',\r\n xl: 'var(--brycks-radius-xl)',\r\n full: 'var(--brycks-radius-full)',\r\n}\r\n\r\nfunction parseAspectRatio(ratio: number | string | undefined): number | undefined {\r\n if (ratio === undefined) return undefined\r\n if (typeof ratio === 'number') return ratio\r\n\r\n const parts = ratio.split(/[:/]/)\r\n if (parts.length === 2) {\r\n const width = parseFloat(parts[0])\r\n const height = parseFloat(parts[1])\r\n if (!isNaN(width) && !isNaN(height) && height !== 0) {\r\n return width / height\r\n }\r\n }\r\n\r\n const parsed = parseFloat(ratio)\r\n return isNaN(parsed) ? undefined : parsed\r\n}\r\n\r\nexport const Video = forwardRef<VideoRef, VideoProps>(function Video(\r\n {\r\n src,\r\n poster,\r\n aspectRatio,\r\n fit = 'cover',\r\n preload = 'metadata',\r\n autoPlay = false,\r\n loop = false,\r\n controls = true,\r\n muted,\r\n playsInline = true,\r\n radius = 'none',\r\n onPlay,\r\n onPause,\r\n onEnded,\r\n onCanPlay,\r\n onError,\r\n className,\r\n style,\r\n testId,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const videoRef = useRef<HTMLVideoElement>(null)\r\n const [isPlaying, setIsPlaying] = useState(false)\r\n const [hasError, setHasError] = useState(false)\r\n const prefersReducedMotion = usePrefersReducedMotion()\r\n\r\n // Determine if autoplay should be enabled\r\n const shouldAutoPlay = (() => {\r\n // Never autoplay if user prefers reduced motion\r\n if (prefersReducedMotion) return false\r\n if (autoPlay === false) return false\r\n return true\r\n })()\r\n\r\n // Autoplay must be muted to work in most browsers\r\n const shouldMute = muted ?? (shouldAutoPlay || autoPlay === 'muted')\r\n\r\n // Expose imperative handle\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n play: async () => {\r\n if (videoRef.current) {\r\n await videoRef.current.play()\r\n }\r\n },\r\n pause: () => {\r\n videoRef.current?.pause()\r\n },\r\n toggle: () => {\r\n if (videoRef.current) {\r\n if (videoRef.current.paused) {\r\n videoRef.current.play()\r\n } else {\r\n videoRef.current.pause()\r\n }\r\n }\r\n },\r\n seek: (time: number) => {\r\n if (videoRef.current) {\r\n videoRef.current.currentTime = time\r\n }\r\n },\r\n getCurrentTime: () => videoRef.current?.currentTime ?? 0,\r\n getDuration: () => videoRef.current?.duration ?? 0,\r\n isPlaying: () => !videoRef.current?.paused,\r\n getElement: () => videoRef.current,\r\n }),\r\n []\r\n )\r\n\r\n // Handle autoplay on mount\r\n useEffect(() => {\r\n if (shouldAutoPlay && videoRef.current) {\r\n // Use a small delay to ensure video is ready\r\n const attemptAutoplay = async () => {\r\n try {\r\n await videoRef.current?.play()\r\n } catch {\r\n // Autoplay was blocked - this is expected in many browsers\r\n // The video will remain paused with poster visible\r\n }\r\n }\r\n attemptAutoplay()\r\n }\r\n }, [shouldAutoPlay])\r\n\r\n const handlePlay = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(true)\r\n onPlay?.(event)\r\n },\r\n [onPlay]\r\n )\r\n\r\n const handlePause = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(false)\r\n onPause?.(event)\r\n },\r\n [onPause]\r\n )\r\n\r\n const handleEnded = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setIsPlaying(false)\r\n onEnded?.(event)\r\n },\r\n [onEnded]\r\n )\r\n\r\n const handleError = useCallback(\r\n (event: SyntheticEvent<HTMLVideoElement>) => {\r\n setHasError(true)\r\n onError?.(event)\r\n },\r\n [onError]\r\n )\r\n\r\n const parsedRatio = parseAspectRatio(aspectRatio)\r\n const borderRadius = radiusMap[radius] ?? radiusMap.none\r\n\r\n const containerStyle: CSSProperties = {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n borderRadius,\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n ...(parsedRatio\r\n ? {\r\n width: '100%',\r\n paddingBottom: `${(1 / parsedRatio) * 100}%`,\r\n }\r\n : {}),\r\n ...style,\r\n }\r\n\r\n const videoStyle: CSSProperties = {\r\n display: 'block',\r\n objectFit: fit,\r\n borderRadius,\r\n ...(parsedRatio\r\n ? {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n width: '100%',\r\n height: '100%',\r\n }\r\n : {\r\n width: '100%',\r\n height: 'auto',\r\n }),\r\n }\r\n\r\n const errorOverlayStyle: CSSProperties = {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n backgroundColor: 'var(--brycks-background-muted)',\r\n color: 'var(--brycks-foreground-muted)',\r\n fontSize: 'var(--brycks-font-size-sm)',\r\n borderRadius,\r\n }\r\n\r\n if (hasError) {\r\n return (\r\n <div\r\n className={cx('brycks-video', 'brycks-video--error', className)}\r\n style={containerStyle}\r\n data-testid={testId}\r\n role=\"img\"\r\n aria-label=\"Video failed to load\"\r\n >\r\n {parsedRatio && <div style={{ paddingBottom: `${(1 / parsedRatio) * 100}%` }} />}\r\n <div style={errorOverlayStyle}>\r\n <span>Unable to load video</span>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-video',\r\n isPlaying && 'brycks-video--playing',\r\n className\r\n )}\r\n style={parsedRatio ? containerStyle : { position: 'relative', borderRadius }}\r\n data-testid={testId}\r\n >\r\n <video\r\n ref={videoRef}\r\n src={src}\r\n poster={poster}\r\n preload={preload}\r\n loop={loop}\r\n controls={controls}\r\n muted={shouldMute}\r\n playsInline={playsInline}\r\n onPlay={handlePlay}\r\n onPause={handlePause}\r\n onEnded={handleEnded}\r\n onCanPlay={onCanPlay}\r\n onError={handleError}\r\n style={videoStyle}\r\n {...props}\r\n />\r\n </div>\r\n )\r\n})\r\n\r\nVideo.displayName = 'Video'\r\n"],"names":["radiusMap","parseAspectRatio","ratio","parts","width","height","parsed","Video","forwardRef","src","poster","aspectRatio","fit","preload","autoPlay","loop","controls","muted","playsInline","radius","onPlay","onPause","onEnded","onCanPlay","onError","className","style","testId","props","ref","videoRef","useRef","isPlaying","setIsPlaying","useState","hasError","setHasError","prefersReducedMotion","usePrefersReducedMotion","shouldAutoPlay","shouldMute","useImperativeHandle","time","useEffect","handlePlay","useCallback","event","handlePause","handleEnded","handleError","parsedRatio","borderRadius","containerStyle","videoStyle","errorOverlayStyle","jsxs","cx","jsx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),c=require("react"),p=require("../../../utils/styles.cjs"),v=c.createContext(null);function h(){const o=c.useContext(v);if(!o)throw new Error("AccordionItem must be used within an Accordion");return o}const A=c.forwardRef(function({value:t,defaultValue:l=[],onChange:a,allowMultiple:i=!1,variant:d="default",className:s,style:u,children:f,testId:n,...e},x){const[k,g]=c.useState(l),m=t??k,N=c.useCallback(b=>{const E=m.includes(b);let y;E?y=m.filter(R=>R!==b):i?y=[...m,b]:y=[b],t===void 0&&g(y),a?.(y)},[m,i,t,a]),T={display:"flex",flexDirection:"column",gap:d==="separated"?8:0,...u};return r.jsx(v.Provider,{value:{expandedItems:m,toggleItem:N,allowMultiple:i,variant:d},children:r.jsx("div",{ref:x,className:p.cx("brycks-accordion",`brycks-accordion--${d}`,s),style:T,"data-testid":n,...e,children:f})})});A.displayName="Accordion";const C=c.createContext(null);function w(){const o=c.useContext(C);if(!o)throw new Error("AccordionTrigger/AccordionContent must be used within an AccordionItem");return o}const j=c.forwardRef(function({value:t,disabled:l=!1,className:a,style:i,children:d,...s},u){const{expandedItems:f,variant:n}=h(),e=f.includes(t),x={borderBottom:n==="default"?"1px solid var(--brycks-border-muted)":void 0,border:n==="bordered"||n==="separated"?"1px solid var(--brycks-border-default)":void 0,borderRadius:n==="separated"?"var(--brycks-radius-lg)":void 0,overflow:"hidden",...i};return n==="bordered"&&!e&&(x.borderBottom="1px solid var(--brycks-border-default)"),r.jsx(C.Provider,{value:{value:t,isExpanded:e,disabled:l},children:r.jsx("div",{ref:u,className:p.cx("brycks-accordion-item",e&&"brycks-accordion-item--expanded",a),style:x,...s,children:d})})});j.displayName="AccordionItem";function L({isExpanded:o}){return r.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",style:{transform:o?"rotate(180deg)":"rotate(0deg)",transition:"transform 200ms ease-out"},children:r.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}const I=c.forwardRef(function({icon:t,className:l,style:a,children:i,...d},s){const{toggleItem:u}=h(),{value:f,isExpanded:n,disabled:e}=w(),x=()=>{e||u(f)},k={display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",padding:"16px",fontSize:15,fontWeight:500,color:e?"var(--brycks-foreground-muted)":"var(--brycks-foreground-default)",backgroundColor:"transparent",border:"none",cursor:e?"not-allowed":"pointer",textAlign:"left",transition:"background-color 150ms ease-out",outline:"none",...a};return r.jsxs("button",{ref:s,type:"button","aria-expanded":n,"aria-disabled":e,disabled:e,className:p.cx("brycks-accordion-trigger",l),style:k,onClick:x,onMouseEnter:g=>{e||(g.currentTarget.style.backgroundColor="var(--brycks-background-muted)")},onMouseLeave:g=>{g.currentTarget.style.backgroundColor="transparent"},...d,children:[i,r.jsx("span",{style:{color:"var(--brycks-foreground-muted)",flexShrink:0,marginLeft:12},children:t??r.jsx(L,{isExpanded:n})})]})});I.displayName="AccordionTrigger";const S=c.forwardRef(function({className:t,style:l,children:a,...i},d){const{isExpanded:s}=w(),u={overflow:"hidden",transition:"max-height 200ms ease-out, opacity 200ms ease-out",maxHeight:s?"1000px":"0",opacity:s?1:0},f={padding:"0 16px 16px 16px",color:"var(--brycks-foreground-muted)",fontSize:14,lineHeight:1.6,...l};return r.jsx("div",{ref:d,role:"region","aria-hidden":!s,className:p.cx("brycks-accordion-content",t),style:u,...i,children:r.jsx("div",{style:f,children:a})})});S.displayName="AccordionContent";exports.Accordion=A;exports.AccordionContent=S;exports.AccordionItem=j;exports.AccordionTrigger=I;
2
+ //# sourceMappingURL=Accordion.cjs.map