@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 @@
1
+ {"version":3,"file":"Radio.js","sources":["../../../../src/components/form/Radio/Radio.tsx"],"sourcesContent":["/**\n * Radio Component\n *\n * Accessible radio button with custom styling.\n * Supports different sizes and states.\n */\n\nimport {\n forwardRef,\n useState,\n type CSSProperties,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type RadioSize = 'sm' | 'md' | 'lg'\n\nexport interface RadioProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n /** Radio size */\n size?: RadioSize\n /** Radio label */\n label?: ReactNode\n /** Description below the label */\n description?: ReactNode\n /** Whether the radio is invalid */\n isInvalid?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<RadioSize, { radio: number; dot: number; fontSize: number; gap: number }> = {\n sm: { radio: 16, dot: 6, fontSize: 13, gap: 8 },\n md: { radio: 20, dot: 8, fontSize: 14, gap: 10 },\n lg: { radio: 24, dot: 10, fontSize: 16, gap: 12 },\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n size = 'md',\n label,\n description,\n isInvalid = false,\n disabled = false,\n className,\n style,\n testId,\n checked,\n ...props\n },\n ref\n) {\n const [isHovered, setIsHovered] = useState(false)\n const [isFocused, setIsFocused] = useState(false)\n const config = sizeConfig[size]\n\n const containerStyle: CSSProperties = {\n display: 'inline-flex',\n alignItems: 'flex-start',\n gap: config.gap,\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n ...style,\n }\n\n const radioContainerStyle: CSSProperties = {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: config.radio,\n height: config.radio,\n flexShrink: 0,\n }\n\n const radioStyle: CSSProperties = {\n width: config.radio,\n height: config.radio,\n borderRadius: '50%',\n border: `2px solid ${\n isInvalid\n ? 'var(--brycks-error-default)'\n : checked\n ? 'var(--brycks-primary-default)'\n : isHovered\n ? 'var(--brycks-border-strong)'\n : 'var(--brycks-border-default)'\n }`,\n backgroundColor: checked\n ? 'var(--brycks-primary-default)'\n : 'var(--brycks-background-input)',\n transition: 'all 150ms ease-out',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: isFocused\n ? '0 0 0 3px var(--brycks-primary-100)'\n : undefined,\n }\n\n const dotStyle: CSSProperties = {\n width: config.dot,\n height: config.dot,\n borderRadius: '50%',\n backgroundColor: 'white',\n transform: checked ? 'scale(1)' : 'scale(0)',\n transition: 'transform 150ms ease-out',\n }\n\n const inputStyle: CSSProperties = {\n position: 'absolute',\n width: config.radio,\n height: config.radio,\n opacity: 0,\n margin: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }\n\n const labelContainerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: disabled\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-foreground-default)',\n lineHeight: 1.4,\n }\n\n const descriptionStyle: CSSProperties = {\n fontSize: config.fontSize - 1,\n color: 'var(--brycks-foreground-muted)',\n lineHeight: 1.4,\n }\n\n return (\n <label\n className={cx('brycks-radio', `brycks-radio--${size}`, className)}\n style={containerStyle}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <span style={radioContainerStyle}>\n <span style={radioStyle}>\n <span style={dotStyle} />\n </span>\n <input\n ref={ref}\n type=\"radio\"\n disabled={disabled}\n checked={checked}\n style={inputStyle}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n data-testid={testId}\n {...props}\n />\n </span>\n {(label || description) && (\n <span style={labelContainerStyle}>\n {label && <span style={labelStyle}>{label}</span>}\n {description && <span style={descriptionStyle}>{description}</span>}\n </span>\n )}\n </label>\n )\n})\n\nRadio.displayName = 'Radio'\n\n// RadioGroup component for grouping radios\nexport interface RadioGroupProps {\n /** Radio group name */\n name: string\n /** Current value */\n value?: string\n /** Default value (uncontrolled) */\n defaultValue?: string\n /** Callback when value changes */\n onChange?: (value: string) => void\n /** Whether the group is disabled */\n disabled?: boolean\n /** Radio size */\n size?: RadioSize\n /** Orientation */\n orientation?: 'horizontal' | 'vertical'\n /** Gap between items */\n gap?: number\n /** Children (Radio components) */\n children: ReactNode\n /** Custom class name */\n className?: string\n /** Custom styles */\n style?: CSSProperties\n}\n\nexport function RadioGroup({\n name,\n value: controlledValue,\n defaultValue,\n onChange,\n disabled = false,\n size = 'md',\n orientation = 'vertical',\n gap = 12,\n children,\n className,\n style,\n}: RadioGroupProps) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? '')\n const value = controlledValue ?? internalValue\n\n const handleChange = (newValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(newValue)\n }\n onChange?.(newValue)\n }\n\n const groupStyle: CSSProperties = {\n display: 'flex',\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n flexWrap: orientation === 'horizontal' ? 'wrap' : undefined,\n gap,\n ...style,\n }\n\n // Clone children and inject props\n const clonedChildren = Array.isArray(children)\n ? children.map((child, index) => {\n if (child && typeof child === 'object' && 'props' in child) {\n const childValue = child.props.value\n return {\n ...child,\n key: child.key ?? index,\n props: {\n ...child.props,\n name,\n size,\n disabled: disabled || child.props.disabled,\n checked: childValue === value,\n onChange: () => handleChange(childValue),\n },\n }\n }\n return child\n })\n : children\n\n return (\n <div\n role=\"radiogroup\"\n className={cx('brycks-radio-group', className)}\n style={groupStyle}\n >\n {clonedChildren}\n </div>\n )\n}\n\nRadioGroup.displayName = 'RadioGroup'\n"],"names":["sizeConfig","Radio","forwardRef","size","label","description","isInvalid","disabled","className","style","testId","checked","props","ref","isHovered","setIsHovered","useState","isFocused","setIsFocused","config","containerStyle","radioContainerStyle","radioStyle","dotStyle","inputStyle","labelContainerStyle","labelStyle","descriptionStyle","jsxs","cx","jsx","RadioGroup","name","controlledValue","defaultValue","onChange","orientation","gap","children","internalValue","setInternalValue","value","handleChange","newValue","groupStyle","clonedChildren","child","index","childValue"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),L=require("../../../utils/styles.cjs"),R={sm:{height:32,fontSize:13,padding:10},md:{height:40,fontSize:14,padding:12},lg:{height:48,fontSize:15,padding:14}};function q(){return e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:e.jsx("path",{d:"M2.5 4.5L6 8L9.5 4.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}const p=u.forwardRef(function({size:c="md",variant:n="outline",isInvalid:s,placeholder:a,className:b,style:f,testId:y,disabled:o,children:g,onFocus:h,onBlur:k,value:i,...S},m){const[d,l]=u.useState(!1),t=R[c],x=i!==void 0&&i!=="",v={position:"relative",display:"inline-flex",width:"100%"},w=()=>{const r={width:"100%",height:t.height,paddingLeft:t.padding,paddingRight:t.padding+24,fontSize:t.fontSize,fontFamily:"var(--brycks-font-sans)",color:x||!a?"var(--brycks-foreground-default)":"var(--brycks-foreground-muted)",backgroundColor:n==="filled"?"var(--brycks-background-muted)":"var(--brycks-background-app)",border:`1px solid ${s?"var(--brycks-error-default)":d?"var(--brycks-border-focus)":n==="filled"?"transparent":"var(--brycks-border-default)"}`,borderRadius:"var(--brycks-radius-default)",outline:"none",cursor:o?"not-allowed":"pointer",appearance:"none",WebkitAppearance:"none",transition:"all 200ms ease-out",boxShadow:d?s?"0 0 0 3px rgba(239, 68, 68, 0.15)":"0 0 0 3px rgba(85, 120, 244, 0.15)":"none"};return o&&(r.opacity=.5),r},j={position:"absolute",right:t.padding,top:"50%",transform:"translateY(-50%)",pointerEvents:"none",color:"var(--brycks-foreground-muted)",transition:"transform 200ms ease-out"},z=r=>{l(!0),h?.(r)},F=r=>{l(!1),k?.(r)};return e.jsxs("div",{className:L.cx("brycks-select-wrapper",`brycks-select-wrapper--${n}`,`brycks-select-wrapper--${c}`,s&&"brycks-select-wrapper--invalid",o&&"brycks-select-wrapper--disabled",b),style:{...v,...f},children:[e.jsxs("select",{ref:m,className:"brycks-select",style:w(),disabled:o,"aria-invalid":s,"data-testid":y,value:i,onFocus:z,onBlur:F,...S,children:[a&&e.jsx("option",{value:"",disabled:!0,children:a}),g]}),e.jsx("span",{style:j,children:e.jsx(q,{})})]})});p.displayName="Select";exports.Select=p;
2
+ //# sourceMappingURL=Select.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.cjs","sources":["../../../../src/components/form/Select/Select.tsx"],"sourcesContent":["/**\r\n * Select Component\r\n *\r\n * Native select with custom styling for cross-browser consistency.\r\n * Maintains accessibility while providing Apple-inspired visuals.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useState,\r\n type CSSProperties,\r\n type SelectHTMLAttributes,\r\n type ReactNode,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type SelectSize = 'sm' | 'md' | 'lg'\r\nexport type SelectVariant = 'outline' | 'filled'\r\n\r\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\r\n /** Select size */\r\n size?: SelectSize\r\n /** Visual variant */\r\n variant?: SelectVariant\r\n /** Error state */\r\n isInvalid?: boolean\r\n /** Placeholder option */\r\n placeholder?: string\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Children (option elements) */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<SelectSize, { height: number; fontSize: number; padding: number }> = {\r\n sm: { height: 32, fontSize: 13, padding: 10 },\r\n md: { height: 40, fontSize: 14, padding: 12 },\r\n lg: { height: 48, fontSize: 15, padding: 14 },\r\n}\r\n\r\n/** Chevron down icon */\r\nfunction ChevronIcon() {\r\n return (\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M2.5 4.5L6 8L9.5 4.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(\r\n {\r\n size = 'md',\r\n variant = 'outline',\r\n isInvalid,\r\n placeholder,\r\n className,\r\n style,\r\n testId,\r\n disabled,\r\n children,\r\n onFocus,\r\n onBlur,\r\n value,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const [isFocused, setIsFocused] = useState(false)\r\n\r\n const sizeValue = sizeStyles[size]\r\n const hasValue = value !== undefined && value !== ''\r\n\r\n const wrapperStyle: CSSProperties = {\r\n position: 'relative',\r\n display: 'inline-flex',\r\n width: '100%',\r\n }\r\n\r\n const getSelectStyle = (): CSSProperties => {\r\n const base: CSSProperties = {\r\n width: '100%',\r\n height: sizeValue.height,\r\n paddingLeft: sizeValue.padding,\r\n paddingRight: sizeValue.padding + 24,\r\n fontSize: sizeValue.fontSize,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n color: hasValue || !placeholder ? 'var(--brycks-foreground-default)' : 'var(--brycks-foreground-muted)',\r\n backgroundColor: variant === 'filled' ? 'var(--brycks-background-muted)' : 'var(--brycks-background-app)',\r\n border: `1px solid ${\r\n isInvalid\r\n ? 'var(--brycks-error-default)'\r\n : isFocused\r\n ? 'var(--brycks-border-focus)'\r\n : variant === 'filled'\r\n ? 'transparent'\r\n : 'var(--brycks-border-default)'\r\n }`,\r\n borderRadius: 'var(--brycks-radius-default)',\r\n outline: 'none',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n appearance: 'none',\r\n WebkitAppearance: 'none',\r\n transition: 'all 200ms ease-out',\r\n boxShadow: isFocused\r\n ? isInvalid\r\n ? '0 0 0 3px rgba(239, 68, 68, 0.15)'\r\n : '0 0 0 3px rgba(85, 120, 244, 0.15)'\r\n : 'none',\r\n }\r\n\r\n if (disabled) {\r\n base.opacity = 0.5\r\n }\r\n\r\n return base\r\n }\r\n\r\n const iconStyle: CSSProperties = {\r\n position: 'absolute',\r\n right: sizeValue.padding,\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n pointerEvents: 'none',\r\n color: 'var(--brycks-foreground-muted)',\r\n transition: 'transform 200ms ease-out',\r\n }\r\n\r\n const handleFocus = (e: React.FocusEvent<HTMLSelectElement>) => {\r\n setIsFocused(true)\r\n onFocus?.(e)\r\n }\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLSelectElement>) => {\r\n setIsFocused(false)\r\n onBlur?.(e)\r\n }\r\n\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-select-wrapper',\r\n `brycks-select-wrapper--${variant}`,\r\n `brycks-select-wrapper--${size}`,\r\n isInvalid && 'brycks-select-wrapper--invalid',\r\n disabled && 'brycks-select-wrapper--disabled',\r\n className\r\n )}\r\n style={{ ...wrapperStyle, ...style }}\r\n >\r\n <select\r\n ref={ref}\r\n className=\"brycks-select\"\r\n style={getSelectStyle()}\r\n disabled={disabled}\r\n aria-invalid={isInvalid}\r\n data-testid={testId}\r\n value={value}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n {...props}\r\n >\r\n {placeholder && (\r\n <option value=\"\" disabled>\r\n {placeholder}\r\n </option>\r\n )}\r\n {children}\r\n </select>\r\n\r\n <span style={iconStyle}>\r\n <ChevronIcon />\r\n </span>\r\n </div>\r\n )\r\n})\r\n\r\nSelect.displayName = 'Select'\r\n"],"names":["sizeStyles","ChevronIcon","jsx","Select","forwardRef","size","variant","isInvalid","placeholder","className","style","testId","disabled","children","onFocus","onBlur","value","props","ref","isFocused","setIsFocused","useState","sizeValue","hasValue","wrapperStyle","getSelectStyle","base","iconStyle","handleFocus","e","handleBlur","jsxs","cx"],"mappings":"+KAoCMA,EAAwF,CAC5F,GAAI,CAAE,OAAQ,GAAI,SAAU,GAAI,QAAS,EAAA,EACzC,GAAI,CAAE,OAAQ,GAAI,SAAU,GAAI,QAAS,EAAA,EACzC,GAAI,CAAE,OAAQ,GAAI,SAAU,GAAI,QAAS,EAAA,CAC3C,EAGA,SAASC,GAAc,CACrB,OACEC,EAAAA,IAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,SAAAA,EAAAA,IAAC,OAAA,CACC,EAAE,uBACF,OAAO,eACP,YAAY,MACZ,cAAc,QACd,eAAe,OAAA,CAAA,EAEnB,CAEJ,CAEO,MAAMC,EAASC,EAAAA,WAA2C,SAC/D,CACE,KAAAC,EAAO,KACP,QAAAC,EAAU,UACV,UAAAC,EACA,YAAAC,EACA,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,SAAAC,EACA,SAAAC,EACA,QAAAC,EACA,OAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAE1CC,EAAYtB,EAAWK,CAAI,EAC3BkB,EAAWP,IAAU,QAAaA,IAAU,GAE5CQ,EAA8B,CAClC,SAAU,WACV,QAAS,cACT,MAAO,MAAA,EAGHC,EAAiB,IAAqB,CAC1C,MAAMC,EAAsB,CAC1B,MAAO,OACP,OAAQJ,EAAU,OAClB,YAAaA,EAAU,QACvB,aAAcA,EAAU,QAAU,GAClC,SAAUA,EAAU,SACpB,WAAY,0BACZ,MAAOC,GAAY,CAACf,EAAc,mCAAqC,iCACvE,gBAAiBF,IAAY,SAAW,iCAAmC,+BAC3E,OAAQ,aACNC,EACI,8BACAY,EACE,6BACAb,IAAY,SACV,cACA,8BACV,GACA,aAAc,+BACd,QAAS,OACT,OAAQM,EAAW,cAAgB,UACnC,WAAY,OACZ,iBAAkB,OAClB,WAAY,qBACZ,UAAWO,EACPZ,EACE,oCACA,qCACF,MAAA,EAGN,OAAIK,IACFc,EAAK,QAAU,IAGVA,CACT,EAEMC,EAA2B,CAC/B,SAAU,WACV,MAAOL,EAAU,QACjB,IAAK,MACL,UAAW,mBACX,cAAe,OACf,MAAO,iCACP,WAAY,0BAAA,EAGRM,EAAeC,GAA2C,CAC9DT,EAAa,EAAI,EACjBN,IAAUe,CAAC,CACb,EAEMC,EAAcD,GAA2C,CAC7DT,EAAa,EAAK,EAClBL,IAASc,CAAC,CACZ,EAEA,OACEE,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,GACT,wBACA,0BAA0B1B,CAAO,GACjC,0BAA0BD,CAAI,GAC9BE,GAAa,iCACbK,GAAY,kCACZH,CAAA,EAEF,MAAO,CAAE,GAAGe,EAAc,GAAGd,CAAA,EAE7B,SAAA,CAAAqB,EAAAA,KAAC,SAAA,CACC,IAAAb,EACA,UAAU,gBACV,MAAOO,EAAA,EACP,SAAAb,EACA,eAAcL,EACd,cAAaI,EACb,MAAAK,EACA,QAASY,EACT,OAAQE,EACP,GAAGb,EAEH,SAAA,CAAAT,SACE,SAAA,CAAO,MAAM,GAAG,SAAQ,GACtB,SAAAA,EACH,EAEDK,CAAA,CAAA,CAAA,QAGF,OAAA,CAAK,MAAOc,EACX,SAAAzB,EAAAA,IAACD,IAAY,CAAA,CACf,CAAA,CAAA,CAAA,CAGN,CAAC,EAEDE,EAAO,YAAc"}
@@ -0,0 +1,114 @@
1
+ import { jsxs as p, jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as L, useState as j } from "react";
3
+ import { cx as B } from "../../../utils/styles.js";
4
+ const C = {
5
+ sm: { height: 32, fontSize: 13, padding: 10 },
6
+ md: { height: 40, fontSize: 14, padding: 12 },
7
+ lg: { height: 48, fontSize: 15, padding: 14 }
8
+ };
9
+ function N() {
10
+ return /* @__PURE__ */ t("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", children: /* @__PURE__ */ t(
11
+ "path",
12
+ {
13
+ d: "M2.5 4.5L6 8L9.5 4.5",
14
+ stroke: "currentColor",
15
+ strokeWidth: "1.5",
16
+ strokeLinecap: "round",
17
+ strokeLinejoin: "round"
18
+ }
19
+ ) });
20
+ }
21
+ const R = L(function({
22
+ size: c = "md",
23
+ variant: s = "outline",
24
+ isInvalid: o,
25
+ placeholder: a,
26
+ className: u,
27
+ style: f,
28
+ testId: b,
29
+ disabled: n,
30
+ children: g,
31
+ onFocus: h,
32
+ onBlur: y,
33
+ value: i,
34
+ ...k
35
+ }, m) {
36
+ const [d, l] = j(!1), r = C[c], S = i !== void 0 && i !== "", v = {
37
+ position: "relative",
38
+ display: "inline-flex",
39
+ width: "100%"
40
+ }, w = () => {
41
+ const e = {
42
+ width: "100%",
43
+ height: r.height,
44
+ paddingLeft: r.padding,
45
+ paddingRight: r.padding + 24,
46
+ fontSize: r.fontSize,
47
+ fontFamily: "var(--brycks-font-sans)",
48
+ color: S || !a ? "var(--brycks-foreground-default)" : "var(--brycks-foreground-muted)",
49
+ backgroundColor: s === "filled" ? "var(--brycks-background-muted)" : "var(--brycks-background-app)",
50
+ border: `1px solid ${o ? "var(--brycks-error-default)" : d ? "var(--brycks-border-focus)" : s === "filled" ? "transparent" : "var(--brycks-border-default)"}`,
51
+ borderRadius: "var(--brycks-radius-default)",
52
+ outline: "none",
53
+ cursor: n ? "not-allowed" : "pointer",
54
+ appearance: "none",
55
+ WebkitAppearance: "none",
56
+ transition: "all 200ms ease-out",
57
+ boxShadow: d ? o ? "0 0 0 3px rgba(239, 68, 68, 0.15)" : "0 0 0 3px rgba(85, 120, 244, 0.15)" : "none"
58
+ };
59
+ return n && (e.opacity = 0.5), e;
60
+ }, x = {
61
+ position: "absolute",
62
+ right: r.padding,
63
+ top: "50%",
64
+ transform: "translateY(-50%)",
65
+ pointerEvents: "none",
66
+ color: "var(--brycks-foreground-muted)",
67
+ transition: "transform 200ms ease-out"
68
+ }, z = (e) => {
69
+ l(!0), h?.(e);
70
+ }, F = (e) => {
71
+ l(!1), y?.(e);
72
+ };
73
+ return /* @__PURE__ */ p(
74
+ "div",
75
+ {
76
+ className: B(
77
+ "brycks-select-wrapper",
78
+ `brycks-select-wrapper--${s}`,
79
+ `brycks-select-wrapper--${c}`,
80
+ o && "brycks-select-wrapper--invalid",
81
+ n && "brycks-select-wrapper--disabled",
82
+ u
83
+ ),
84
+ style: { ...v, ...f },
85
+ children: [
86
+ /* @__PURE__ */ p(
87
+ "select",
88
+ {
89
+ ref: m,
90
+ className: "brycks-select",
91
+ style: w(),
92
+ disabled: n,
93
+ "aria-invalid": o,
94
+ "data-testid": b,
95
+ value: i,
96
+ onFocus: z,
97
+ onBlur: F,
98
+ ...k,
99
+ children: [
100
+ a && /* @__PURE__ */ t("option", { value: "", disabled: !0, children: a }),
101
+ g
102
+ ]
103
+ }
104
+ ),
105
+ /* @__PURE__ */ t("span", { style: x, children: /* @__PURE__ */ t(N, {}) })
106
+ ]
107
+ }
108
+ );
109
+ });
110
+ R.displayName = "Select";
111
+ export {
112
+ R as Select
113
+ };
114
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":["../../../../src/components/form/Select/Select.tsx"],"sourcesContent":["/**\r\n * Select Component\r\n *\r\n * Native select with custom styling for cross-browser consistency.\r\n * Maintains accessibility while providing Apple-inspired visuals.\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useState,\r\n type CSSProperties,\r\n type SelectHTMLAttributes,\r\n type ReactNode,\r\n} from 'react'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type SelectSize = 'sm' | 'md' | 'lg'\r\nexport type SelectVariant = 'outline' | 'filled'\r\n\r\nexport interface SelectProps extends Omit<SelectHTMLAttributes<HTMLSelectElement>, 'size'> {\r\n /** Select size */\r\n size?: SelectSize\r\n /** Visual variant */\r\n variant?: SelectVariant\r\n /** Error state */\r\n isInvalid?: boolean\r\n /** Placeholder option */\r\n placeholder?: string\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n /** Children (option elements) */\r\n children?: ReactNode\r\n}\r\n\r\nconst sizeStyles: Record<SelectSize, { height: number; fontSize: number; padding: number }> = {\r\n sm: { height: 32, fontSize: 13, padding: 10 },\r\n md: { height: 40, fontSize: 14, padding: 12 },\r\n lg: { height: 48, fontSize: 15, padding: 14 },\r\n}\r\n\r\n/** Chevron down icon */\r\nfunction ChevronIcon() {\r\n return (\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path\r\n d=\"M2.5 4.5L6 8L9.5 4.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n )\r\n}\r\n\r\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(function Select(\r\n {\r\n size = 'md',\r\n variant = 'outline',\r\n isInvalid,\r\n placeholder,\r\n className,\r\n style,\r\n testId,\r\n disabled,\r\n children,\r\n onFocus,\r\n onBlur,\r\n value,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const [isFocused, setIsFocused] = useState(false)\r\n\r\n const sizeValue = sizeStyles[size]\r\n const hasValue = value !== undefined && value !== ''\r\n\r\n const wrapperStyle: CSSProperties = {\r\n position: 'relative',\r\n display: 'inline-flex',\r\n width: '100%',\r\n }\r\n\r\n const getSelectStyle = (): CSSProperties => {\r\n const base: CSSProperties = {\r\n width: '100%',\r\n height: sizeValue.height,\r\n paddingLeft: sizeValue.padding,\r\n paddingRight: sizeValue.padding + 24,\r\n fontSize: sizeValue.fontSize,\r\n fontFamily: 'var(--brycks-font-sans)',\r\n color: hasValue || !placeholder ? 'var(--brycks-foreground-default)' : 'var(--brycks-foreground-muted)',\r\n backgroundColor: variant === 'filled' ? 'var(--brycks-background-muted)' : 'var(--brycks-background-app)',\r\n border: `1px solid ${\r\n isInvalid\r\n ? 'var(--brycks-error-default)'\r\n : isFocused\r\n ? 'var(--brycks-border-focus)'\r\n : variant === 'filled'\r\n ? 'transparent'\r\n : 'var(--brycks-border-default)'\r\n }`,\r\n borderRadius: 'var(--brycks-radius-default)',\r\n outline: 'none',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n appearance: 'none',\r\n WebkitAppearance: 'none',\r\n transition: 'all 200ms ease-out',\r\n boxShadow: isFocused\r\n ? isInvalid\r\n ? '0 0 0 3px rgba(239, 68, 68, 0.15)'\r\n : '0 0 0 3px rgba(85, 120, 244, 0.15)'\r\n : 'none',\r\n }\r\n\r\n if (disabled) {\r\n base.opacity = 0.5\r\n }\r\n\r\n return base\r\n }\r\n\r\n const iconStyle: CSSProperties = {\r\n position: 'absolute',\r\n right: sizeValue.padding,\r\n top: '50%',\r\n transform: 'translateY(-50%)',\r\n pointerEvents: 'none',\r\n color: 'var(--brycks-foreground-muted)',\r\n transition: 'transform 200ms ease-out',\r\n }\r\n\r\n const handleFocus = (e: React.FocusEvent<HTMLSelectElement>) => {\r\n setIsFocused(true)\r\n onFocus?.(e)\r\n }\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLSelectElement>) => {\r\n setIsFocused(false)\r\n onBlur?.(e)\r\n }\r\n\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-select-wrapper',\r\n `brycks-select-wrapper--${variant}`,\r\n `brycks-select-wrapper--${size}`,\r\n isInvalid && 'brycks-select-wrapper--invalid',\r\n disabled && 'brycks-select-wrapper--disabled',\r\n className\r\n )}\r\n style={{ ...wrapperStyle, ...style }}\r\n >\r\n <select\r\n ref={ref}\r\n className=\"brycks-select\"\r\n style={getSelectStyle()}\r\n disabled={disabled}\r\n aria-invalid={isInvalid}\r\n data-testid={testId}\r\n value={value}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n {...props}\r\n >\r\n {placeholder && (\r\n <option value=\"\" disabled>\r\n {placeholder}\r\n </option>\r\n )}\r\n {children}\r\n </select>\r\n\r\n <span style={iconStyle}>\r\n <ChevronIcon />\r\n </span>\r\n </div>\r\n )\r\n})\r\n\r\nSelect.displayName = 'Select'\r\n"],"names":["sizeStyles","ChevronIcon","jsx","Select","forwardRef","size","variant","isInvalid","placeholder","className","style","testId","disabled","children","onFocus","onBlur","value","props","ref","isFocused","setIsFocused","useState","sizeValue","hasValue","wrapperStyle","getSelectStyle","base","iconStyle","handleFocus","handleBlur","jsxs","cx"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),r=require("react"),V=require("../../../utils/styles.cjs"),A={sm:{track:4,thumb:14,fontSize:12},md:{track:6,thumb:18,fontSize:14},lg:{track:8,thumb:22,fontSize:16}},x=r.forwardRef(function({size:g="md",min:o=0,max:i=100,step:w=1,value:d,defaultValue:j=o,onChange:p,showValue:b=!1,formatValue:R=y=>String(y),label:f,disabled:n=!1,className:C,style:z,testId:M,...E},l){const[y,I]=r.useState(j),[c,u]=r.useState(!1),[$,m]=r.useState(!1),v=r.useRef(null),h=d??y,t=A[g],S=(h-o)/(i-o)*100,k=r.useCallback(e=>{const a=Math.max(o,Math.min(i,e));d===void 0&&I(a),p?.(a)},[d,o,i,p]);r.useEffect(()=>{const e=v.current;if(!e)return;const a=P=>{const U=P.target;k(parseFloat(U.value))};return e.addEventListener("input",a),()=>e.removeEventListener("input",a)},[k]);const D={display:"flex",flexDirection:"column",gap:8,opacity:n?.5:1,...z},q={display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},L={fontSize:t.fontSize,fontWeight:500,color:"var(--brycks-foreground-default)"},N={fontSize:t.fontSize,fontWeight:500,color:"var(--brycks-foreground-muted)",fontVariantNumeric:"tabular-nums"},T={position:"relative",display:"flex",alignItems:"center",height:t.thumb,cursor:n?"not-allowed":"pointer"},H={position:"absolute",width:"100%",height:t.track,borderRadius:t.track/2,backgroundColor:"var(--brycks-background-muted)"},W={position:"absolute",left:0,height:t.track,width:`${S}%`,borderRadius:t.track/2,backgroundColor:n?"var(--brycks-foreground-muted)":"var(--brycks-primary-default)",transition:c?"none":"width 100ms ease-out"},F={position:"absolute",left:`calc(${S}% - ${t.thumb/2}px)`,width:t.thumb,height:t.thumb,borderRadius:"50%",backgroundColor:"white",border:`2px solid ${n?"var(--brycks-foreground-muted)":"var(--brycks-primary-default)"}`,boxShadow:c||$?"var(--brycks-shadow-md)":"var(--brycks-shadow-sm)",transform:c?"scale(1.1)":"scale(1)",transition:c?"transform 100ms ease-out, box-shadow 100ms ease-out":"all 100ms ease-out",pointerEvents:"none"},O={position:"absolute",width:"100%",height:t.thumb,margin:0,padding:0,opacity:0,cursor:n?"not-allowed":"pointer"};return s.jsxs("div",{className:V.cx("brycks-slider",`brycks-slider--${g}`,C),style:D,children:[(f||b)&&s.jsxs("div",{style:q,children:[f&&s.jsx("span",{style:L,children:f}),b&&s.jsx("span",{style:N,children:R(h)})]}),s.jsxs("div",{style:T,onMouseEnter:()=>m(!0),onMouseLeave:()=>m(!1),children:[s.jsx("div",{style:H}),s.jsx("div",{style:W}),s.jsx("div",{style:F}),s.jsx("input",{ref:e=>{v.current=e,typeof l=="function"?l(e):l&&(l.current=e)},type:"range",min:o,max:i,step:w,value:h,disabled:n,style:O,onMouseDown:()=>u(!0),onMouseUp:()=>u(!1),onTouchStart:()=>u(!0),onTouchEnd:()=>u(!1),"data-testid":M,...E})]})]})});x.displayName="Slider";exports.Slider=x;
2
+ //# sourceMappingURL=Slider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.cjs","sources":["../../../../src/components/form/Slider/Slider.tsx"],"sourcesContent":["/**\n * Slider Component\n *\n * Accessible range slider with custom styling.\n * Supports different sizes and shows value feedback.\n */\n\nimport {\n forwardRef,\n useState,\n useCallback,\n useRef,\n useEffect,\n type CSSProperties,\n type InputHTMLAttributes,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type SliderSize = 'sm' | 'md' | 'lg'\n\nexport interface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {\n /** Slider size */\n size?: SliderSize\n /** Minimum value */\n min?: number\n /** Maximum value */\n max?: number\n /** Step increment */\n step?: number\n /** Current value (controlled) */\n value?: number\n /** Default value (uncontrolled) */\n defaultValue?: number\n /** Callback when value changes */\n onChange?: (value: number) => void\n /** Whether to show the value label */\n showValue?: boolean\n /** Format the value for display */\n formatValue?: (value: number) => string\n /** Label for the slider */\n label?: string\n /** Whether the slider is disabled */\n disabled?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<SliderSize, { track: number; thumb: number; fontSize: number }> = {\n sm: { track: 4, thumb: 14, fontSize: 12 },\n md: { track: 6, thumb: 18, fontSize: 14 },\n lg: { track: 8, thumb: 22, fontSize: 16 },\n}\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(function Slider(\n {\n size = 'md',\n min = 0,\n max = 100,\n step = 1,\n value: controlledValue,\n defaultValue = min,\n onChange,\n showValue = false,\n formatValue = (v) => String(v),\n label,\n disabled = false,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [isDragging, setIsDragging] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const value = controlledValue ?? internalValue\n const config = sizeConfig[size]\n const percentage = ((value - min) / (max - min)) * 100\n\n const handleChange = useCallback(\n (newValue: number) => {\n const clampedValue = Math.max(min, Math.min(max, newValue))\n if (controlledValue === undefined) {\n setInternalValue(clampedValue)\n }\n onChange?.(clampedValue)\n },\n [controlledValue, min, max, onChange]\n )\n\n useEffect(() => {\n const input = inputRef.current\n if (!input) return\n\n const handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement\n handleChange(parseFloat(target.value))\n }\n\n input.addEventListener('input', handleInputChange)\n return () => input.removeEventListener('input', handleInputChange)\n }, [handleChange])\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: 8,\n opacity: disabled ? 0.5 : 1,\n ...style,\n }\n\n const labelRowStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 12,\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const valueStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-muted)',\n fontVariantNumeric: 'tabular-nums',\n }\n\n const sliderContainerStyle: CSSProperties = {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n height: config.thumb,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }\n\n const trackStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: config.track,\n borderRadius: config.track / 2,\n backgroundColor: 'var(--brycks-background-muted)',\n }\n\n const fillStyle: CSSProperties = {\n position: 'absolute',\n left: 0,\n height: config.track,\n width: `${percentage}%`,\n borderRadius: config.track / 2,\n backgroundColor: disabled\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-primary-default)',\n transition: isDragging ? 'none' : 'width 100ms ease-out',\n }\n\n const thumbStyle: CSSProperties = {\n position: 'absolute',\n left: `calc(${percentage}% - ${config.thumb / 2}px)`,\n width: config.thumb,\n height: config.thumb,\n borderRadius: '50%',\n backgroundColor: 'white',\n border: `2px solid ${\n disabled ? 'var(--brycks-foreground-muted)' : 'var(--brycks-primary-default)'\n }`,\n boxShadow: isDragging || isHovered\n ? 'var(--brycks-shadow-md)'\n : 'var(--brycks-shadow-sm)',\n transform: isDragging ? 'scale(1.1)' : 'scale(1)',\n transition: isDragging\n ? 'transform 100ms ease-out, box-shadow 100ms ease-out'\n : 'all 100ms ease-out',\n pointerEvents: 'none',\n }\n\n const inputStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: config.thumb,\n margin: 0,\n padding: 0,\n opacity: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }\n\n return (\n <div className={cx('brycks-slider', `brycks-slider--${size}`, className)} style={containerStyle}>\n {(label || showValue) && (\n <div style={labelRowStyle}>\n {label && <span style={labelStyle}>{label}</span>}\n {showValue && <span style={valueStyle}>{formatValue(value)}</span>}\n </div>\n )}\n <div\n style={sliderContainerStyle}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <div style={trackStyle} />\n <div style={fillStyle} />\n <div style={thumbStyle} />\n <input\n ref={(node) => {\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n style={inputStyle}\n onMouseDown={() => setIsDragging(true)}\n onMouseUp={() => setIsDragging(false)}\n onTouchStart={() => setIsDragging(true)}\n onTouchEnd={() => setIsDragging(false)}\n data-testid={testId}\n {...props}\n />\n </div>\n </div>\n )\n})\n\nSlider.displayName = 'Slider'\n"],"names":["sizeConfig","Slider","forwardRef","size","min","max","step","controlledValue","defaultValue","onChange","showValue","formatValue","v","label","disabled","className","style","testId","props","ref","internalValue","setInternalValue","useState","isDragging","setIsDragging","isHovered","setIsHovered","inputRef","useRef","value","config","percentage","handleChange","useCallback","newValue","clampedValue","useEffect","input","handleInputChange","e","target","containerStyle","labelRowStyle","labelStyle","valueStyle","sliderContainerStyle","trackStyle","fillStyle","thumbStyle","inputStyle","jsxs","cx","jsx","node"],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { jsxs as p, jsx as n } from "react/jsx-runtime";
2
+ import { forwardRef as B, useState as y, useRef as G, useCallback as J, useEffect as K } from "react";
3
+ import { cx as O } from "../../../utils/styles.js";
4
+ const P = {
5
+ sm: { track: 4, thumb: 14, fontSize: 12 },
6
+ md: { track: 6, thumb: 18, fontSize: 14 },
7
+ lg: { track: 8, thumb: 22, fontSize: 16 }
8
+ }, Q = B(function({
9
+ size: g = "md",
10
+ min: o = 0,
11
+ max: a = 100,
12
+ step: x = 1,
13
+ value: u,
14
+ defaultValue: C = o,
15
+ onChange: m,
16
+ showValue: b = !1,
17
+ formatValue: z = (f) => String(f),
18
+ label: d,
19
+ disabled: r = !1,
20
+ className: R,
21
+ style: E,
22
+ testId: I,
23
+ ...M
24
+ }, i) {
25
+ const [f, $] = y(C), [l, c] = y(!1), [D, v] = y(!1), k = G(null), h = u ?? f, t = P[g], S = (h - o) / (a - o) * 100, w = J(
26
+ (e) => {
27
+ const s = Math.max(o, Math.min(a, e));
28
+ u === void 0 && $(s), m?.(s);
29
+ },
30
+ [u, o, a, m]
31
+ );
32
+ K(() => {
33
+ const e = k.current;
34
+ if (!e) return;
35
+ const s = (q) => {
36
+ const A = q.target;
37
+ w(parseFloat(A.value));
38
+ };
39
+ return e.addEventListener("input", s), () => e.removeEventListener("input", s);
40
+ }, [w]);
41
+ const j = {
42
+ display: "flex",
43
+ flexDirection: "column",
44
+ gap: 8,
45
+ opacity: r ? 0.5 : 1,
46
+ ...E
47
+ }, L = {
48
+ display: "flex",
49
+ alignItems: "center",
50
+ justifyContent: "space-between",
51
+ gap: 12
52
+ }, N = {
53
+ fontSize: t.fontSize,
54
+ fontWeight: 500,
55
+ color: "var(--brycks-foreground-default)"
56
+ }, H = {
57
+ fontSize: t.fontSize,
58
+ fontWeight: 500,
59
+ color: "var(--brycks-foreground-muted)",
60
+ fontVariantNumeric: "tabular-nums"
61
+ }, T = {
62
+ position: "relative",
63
+ display: "flex",
64
+ alignItems: "center",
65
+ height: t.thumb,
66
+ cursor: r ? "not-allowed" : "pointer"
67
+ }, W = {
68
+ position: "absolute",
69
+ width: "100%",
70
+ height: t.track,
71
+ borderRadius: t.track / 2,
72
+ backgroundColor: "var(--brycks-background-muted)"
73
+ }, F = {
74
+ position: "absolute",
75
+ left: 0,
76
+ height: t.track,
77
+ width: `${S}%`,
78
+ borderRadius: t.track / 2,
79
+ backgroundColor: r ? "var(--brycks-foreground-muted)" : "var(--brycks-primary-default)",
80
+ transition: l ? "none" : "width 100ms ease-out"
81
+ }, U = {
82
+ position: "absolute",
83
+ left: `calc(${S}% - ${t.thumb / 2}px)`,
84
+ width: t.thumb,
85
+ height: t.thumb,
86
+ borderRadius: "50%",
87
+ backgroundColor: "white",
88
+ border: `2px solid ${r ? "var(--brycks-foreground-muted)" : "var(--brycks-primary-default)"}`,
89
+ boxShadow: l || D ? "var(--brycks-shadow-md)" : "var(--brycks-shadow-sm)",
90
+ transform: l ? "scale(1.1)" : "scale(1)",
91
+ transition: l ? "transform 100ms ease-out, box-shadow 100ms ease-out" : "all 100ms ease-out",
92
+ pointerEvents: "none"
93
+ }, V = {
94
+ position: "absolute",
95
+ width: "100%",
96
+ height: t.thumb,
97
+ margin: 0,
98
+ padding: 0,
99
+ opacity: 0,
100
+ cursor: r ? "not-allowed" : "pointer"
101
+ };
102
+ return /* @__PURE__ */ p("div", { className: O("brycks-slider", `brycks-slider--${g}`, R), style: j, children: [
103
+ (d || b) && /* @__PURE__ */ p("div", { style: L, children: [
104
+ d && /* @__PURE__ */ n("span", { style: N, children: d }),
105
+ b && /* @__PURE__ */ n("span", { style: H, children: z(h) })
106
+ ] }),
107
+ /* @__PURE__ */ p(
108
+ "div",
109
+ {
110
+ style: T,
111
+ onMouseEnter: () => v(!0),
112
+ onMouseLeave: () => v(!1),
113
+ children: [
114
+ /* @__PURE__ */ n("div", { style: W }),
115
+ /* @__PURE__ */ n("div", { style: F }),
116
+ /* @__PURE__ */ n("div", { style: U }),
117
+ /* @__PURE__ */ n(
118
+ "input",
119
+ {
120
+ ref: (e) => {
121
+ k.current = e, typeof i == "function" ? i(e) : i && (i.current = e);
122
+ },
123
+ type: "range",
124
+ min: o,
125
+ max: a,
126
+ step: x,
127
+ value: h,
128
+ disabled: r,
129
+ style: V,
130
+ onMouseDown: () => c(!0),
131
+ onMouseUp: () => c(!1),
132
+ onTouchStart: () => c(!0),
133
+ onTouchEnd: () => c(!1),
134
+ "data-testid": I,
135
+ ...M
136
+ }
137
+ )
138
+ ]
139
+ }
140
+ )
141
+ ] });
142
+ });
143
+ Q.displayName = "Slider";
144
+ export {
145
+ Q as Slider
146
+ };
147
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","sources":["../../../../src/components/form/Slider/Slider.tsx"],"sourcesContent":["/**\n * Slider Component\n *\n * Accessible range slider with custom styling.\n * Supports different sizes and shows value feedback.\n */\n\nimport {\n forwardRef,\n useState,\n useCallback,\n useRef,\n useEffect,\n type CSSProperties,\n type InputHTMLAttributes,\n} from 'react'\nimport { cx } from '../../../utils/styles'\n\nexport type SliderSize = 'sm' | 'md' | 'lg'\n\nexport interface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'onChange'> {\n /** Slider size */\n size?: SliderSize\n /** Minimum value */\n min?: number\n /** Maximum value */\n max?: number\n /** Step increment */\n step?: number\n /** Current value (controlled) */\n value?: number\n /** Default value (uncontrolled) */\n defaultValue?: number\n /** Callback when value changes */\n onChange?: (value: number) => void\n /** Whether to show the value label */\n showValue?: boolean\n /** Format the value for display */\n formatValue?: (value: number) => string\n /** Label for the slider */\n label?: string\n /** Whether the slider is disabled */\n disabled?: boolean\n /** Custom class name */\n className?: string\n /** Test ID */\n testId?: string\n}\n\nconst sizeConfig: Record<SliderSize, { track: number; thumb: number; fontSize: number }> = {\n sm: { track: 4, thumb: 14, fontSize: 12 },\n md: { track: 6, thumb: 18, fontSize: 14 },\n lg: { track: 8, thumb: 22, fontSize: 16 },\n}\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(function Slider(\n {\n size = 'md',\n min = 0,\n max = 100,\n step = 1,\n value: controlledValue,\n defaultValue = min,\n onChange,\n showValue = false,\n formatValue = (v) => String(v),\n label,\n disabled = false,\n className,\n style,\n testId,\n ...props\n },\n ref\n) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const [isDragging, setIsDragging] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const value = controlledValue ?? internalValue\n const config = sizeConfig[size]\n const percentage = ((value - min) / (max - min)) * 100\n\n const handleChange = useCallback(\n (newValue: number) => {\n const clampedValue = Math.max(min, Math.min(max, newValue))\n if (controlledValue === undefined) {\n setInternalValue(clampedValue)\n }\n onChange?.(clampedValue)\n },\n [controlledValue, min, max, onChange]\n )\n\n useEffect(() => {\n const input = inputRef.current\n if (!input) return\n\n const handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement\n handleChange(parseFloat(target.value))\n }\n\n input.addEventListener('input', handleInputChange)\n return () => input.removeEventListener('input', handleInputChange)\n }, [handleChange])\n\n const containerStyle: CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n gap: 8,\n opacity: disabled ? 0.5 : 1,\n ...style,\n }\n\n const labelRowStyle: CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 12,\n }\n\n const labelStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-default)',\n }\n\n const valueStyle: CSSProperties = {\n fontSize: config.fontSize,\n fontWeight: 500,\n color: 'var(--brycks-foreground-muted)',\n fontVariantNumeric: 'tabular-nums',\n }\n\n const sliderContainerStyle: CSSProperties = {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n height: config.thumb,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }\n\n const trackStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: config.track,\n borderRadius: config.track / 2,\n backgroundColor: 'var(--brycks-background-muted)',\n }\n\n const fillStyle: CSSProperties = {\n position: 'absolute',\n left: 0,\n height: config.track,\n width: `${percentage}%`,\n borderRadius: config.track / 2,\n backgroundColor: disabled\n ? 'var(--brycks-foreground-muted)'\n : 'var(--brycks-primary-default)',\n transition: isDragging ? 'none' : 'width 100ms ease-out',\n }\n\n const thumbStyle: CSSProperties = {\n position: 'absolute',\n left: `calc(${percentage}% - ${config.thumb / 2}px)`,\n width: config.thumb,\n height: config.thumb,\n borderRadius: '50%',\n backgroundColor: 'white',\n border: `2px solid ${\n disabled ? 'var(--brycks-foreground-muted)' : 'var(--brycks-primary-default)'\n }`,\n boxShadow: isDragging || isHovered\n ? 'var(--brycks-shadow-md)'\n : 'var(--brycks-shadow-sm)',\n transform: isDragging ? 'scale(1.1)' : 'scale(1)',\n transition: isDragging\n ? 'transform 100ms ease-out, box-shadow 100ms ease-out'\n : 'all 100ms ease-out',\n pointerEvents: 'none',\n }\n\n const inputStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: config.thumb,\n margin: 0,\n padding: 0,\n opacity: 0,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }\n\n return (\n <div className={cx('brycks-slider', `brycks-slider--${size}`, className)} style={containerStyle}>\n {(label || showValue) && (\n <div style={labelRowStyle}>\n {label && <span style={labelStyle}>{label}</span>}\n {showValue && <span style={valueStyle}>{formatValue(value)}</span>}\n </div>\n )}\n <div\n style={sliderContainerStyle}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n <div style={trackStyle} />\n <div style={fillStyle} />\n <div style={thumbStyle} />\n <input\n ref={(node) => {\n (inputRef as React.MutableRefObject<HTMLInputElement | null>).current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) ref.current = node\n }}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n style={inputStyle}\n onMouseDown={() => setIsDragging(true)}\n onMouseUp={() => setIsDragging(false)}\n onTouchStart={() => setIsDragging(true)}\n onTouchEnd={() => setIsDragging(false)}\n data-testid={testId}\n {...props}\n />\n </div>\n </div>\n )\n})\n\nSlider.displayName = 'Slider'\n"],"names":["sizeConfig","Slider","forwardRef","size","min","max","step","controlledValue","defaultValue","onChange","showValue","formatValue","v","label","disabled","className","style","testId","props","ref","internalValue","setInternalValue","useState","isDragging","setIsDragging","isHovered","setIsHovered","inputRef","useRef","value","config","percentage","handleChange","useCallback","newValue","clampedValue","useEffect","input","handleInputChange","e","target","containerStyle","labelRowStyle","labelStyle","valueStyle","sliderContainerStyle","trackStyle","fillStyle","thumbStyle","inputStyle","jsxs","cx","jsx","node"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),C=require("../../../utils/styles.cjs"),p=require("../../../design-system/primitives/sizing.cjs"),d=require("../../../design-system/primitives/opacity.cjs"),I=require("../../../design-system/primitives/focus.cjs"),b=require("../../../design-system/primitives/transitions.cjs"),r=require("../../../design-system/primitives/typography.cjs"),f=h.forwardRef(function({size:i="md",label:a,description:c,className:m,style:S,testId:w,disabled:o,checked:s,onChange:x,...k},v){const[j,y]=h.useState(!1),[g,l]=h.useState(!1),t=p.switchSizes[i],u=r.componentFontSize[i],n=(t.height-t.thumb)/2,q=t.width-t.thumb-n*2,R={display:"inline-flex",alignItems:"flex-start",gap:p.componentGap.xl,cursor:o?"not-allowed":"pointer",opacity:o?d.stateOpacity.disabled:1},H={position:"relative",width:t.width,height:t.height,borderRadius:t.height/2,backgroundColor:s?"var(--brycks-primary-default)":"var(--brycks-background-muted)",border:`1px solid ${s?"var(--brycks-primary-default)":"var(--brycks-border-default)"}`,transition:b.transition.spring,boxShadow:j?I.focusRing.default:"inset 0 1px 2px rgba(0,0,0,0.05)",flexShrink:0},F={position:"absolute",top:n,left:s?n+q:n,width:g?t.thumb+4:t.thumb,height:t.thumb,borderRadius:t.thumb/2,backgroundColor:"var(--brycks-background-elevated)",boxShadow:"var(--brycks-shadow-sm)",transition:b.transition.spring,transform:g?`scale(${d.scale.pressedStrong})`:`scale(${d.scale.normal})`},L={position:"absolute",width:"100%",height:"100%",opacity:0,cursor:o?"not-allowed":"pointer",margin:0},M={display:"flex",flexDirection:"column",gap:p.componentGap.xs,paddingTop:(t.height-u*r.componentLineHeight.snug)/2},$={fontSize:u,lineHeight:r.componentLineHeight.snug,color:"var(--brycks-foreground-default)",userSelect:"none"},z={fontSize:u-1,lineHeight:r.componentLineHeight.snug,color:"var(--brycks-foreground-muted)",userSelect:"none"};return e.jsxs("label",{className:C.cx("brycks-switch",`brycks-switch--${i}`,s&&"brycks-switch--checked",o&&"brycks-switch--disabled",m),style:{...R,...S},"data-testid":w,onMouseDown:()=>l(!0),onMouseUp:()=>l(!1),onMouseLeave:()=>l(!1),children:[e.jsxs("span",{style:H,children:[e.jsx("input",{ref:v,type:"checkbox",role:"switch",style:L,checked:s,disabled:o,"aria-checked":s,onChange:x,onFocus:()=>y(!0),onBlur:()=>y(!1),...k}),e.jsx("span",{style:F})]}),(a||c)&&e.jsxs("span",{style:M,children:[a&&e.jsx("span",{style:$,children:a}),c&&e.jsx("span",{style:z,children:c})]})]})});f.displayName="Switch";exports.Switch=f;
2
+ //# sourceMappingURL=Switch.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.cjs","sources":["../../../../src/components/form/Switch/Switch.tsx"],"sourcesContent":["/**\r\n * Switch Component\r\n *\r\n * Apple-inspired toggle switch with smooth spring animation.\r\n * Clean, tactile design with satisfying micro-interactions.\r\n *\r\n * @module components/form/Switch\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useState,\r\n type CSSProperties,\r\n type InputHTMLAttributes,\r\n type ReactNode,\r\n} from 'react'\r\nimport {\r\n switchSizes,\r\n componentGap,\r\n componentFontSize,\r\n componentLineHeight,\r\n focusRing,\r\n transition,\r\n stateOpacity,\r\n scale,\r\n} from '../../../design-system'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type SwitchSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\r\n /** Switch size */\r\n size?: SwitchSize\r\n /** Label text */\r\n label?: ReactNode\r\n /** Description below label */\r\n description?: ReactNode\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\r\n {\r\n size = 'md',\r\n label,\r\n description,\r\n className,\r\n style,\r\n testId,\r\n disabled,\r\n checked,\r\n onChange,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const [isFocused, setIsFocused] = useState(false)\r\n const [isPressed, setIsPressed] = useState(false)\r\n\r\n const config = switchSizes[size]\r\n const fontSize = componentFontSize[size]\r\n\r\n const padding = (config.height - config.thumb) / 2\r\n const travel = config.width - config.thumb - padding * 2\r\n\r\n const wrapperStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'flex-start',\r\n gap: componentGap.xl,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n opacity: disabled ? stateOpacity.disabled : 1,\r\n }\r\n\r\n const trackStyle: CSSProperties = {\r\n position: 'relative',\r\n width: config.width,\r\n height: config.height,\r\n borderRadius: config.height / 2,\r\n backgroundColor: checked\r\n ? 'var(--brycks-primary-default)'\r\n : 'var(--brycks-background-muted)',\r\n border: `1px solid ${checked ? 'var(--brycks-primary-default)' : 'var(--brycks-border-default)'}`,\r\n transition: transition.spring,\r\n boxShadow: isFocused ? focusRing.default : 'inset 0 1px 2px rgba(0,0,0,0.05)',\r\n flexShrink: 0,\r\n }\r\n\r\n const thumbStyle: CSSProperties = {\r\n position: 'absolute',\r\n top: padding,\r\n left: checked ? padding + travel : padding,\r\n width: isPressed ? config.thumb + 4 : config.thumb,\r\n height: config.thumb,\r\n borderRadius: config.thumb / 2,\r\n backgroundColor: 'var(--brycks-background-elevated)',\r\n boxShadow: 'var(--brycks-shadow-sm)',\r\n transition: transition.spring,\r\n transform: isPressed ? `scale(${scale.pressedStrong})` : `scale(${scale.normal})`,\r\n }\r\n\r\n const inputStyle: CSSProperties = {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n opacity: 0,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n margin: 0,\r\n }\r\n\r\n const labelContainerStyle: CSSProperties = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: componentGap.xs,\r\n paddingTop: (config.height - fontSize * componentLineHeight.snug) / 2,\r\n }\r\n\r\n const labelStyle: CSSProperties = {\r\n fontSize,\r\n lineHeight: componentLineHeight.snug,\r\n color: 'var(--brycks-foreground-default)',\r\n userSelect: 'none',\r\n }\r\n\r\n const descriptionStyle: CSSProperties = {\r\n fontSize: fontSize - 1,\r\n lineHeight: componentLineHeight.snug,\r\n color: 'var(--brycks-foreground-muted)',\r\n userSelect: 'none',\r\n }\r\n\r\n return (\r\n <label\r\n className={cx(\r\n 'brycks-switch',\r\n `brycks-switch--${size}`,\r\n checked && 'brycks-switch--checked',\r\n disabled && 'brycks-switch--disabled',\r\n className\r\n )}\r\n style={{ ...wrapperStyle, ...style }}\r\n data-testid={testId}\r\n onMouseDown={() => setIsPressed(true)}\r\n onMouseUp={() => setIsPressed(false)}\r\n onMouseLeave={() => setIsPressed(false)}\r\n >\r\n <span style={trackStyle}>\r\n <input\r\n ref={ref}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n style={inputStyle}\r\n checked={checked}\r\n disabled={disabled}\r\n aria-checked={checked}\r\n onChange={onChange}\r\n onFocus={() => setIsFocused(true)}\r\n onBlur={() => setIsFocused(false)}\r\n {...props}\r\n />\r\n <span style={thumbStyle} />\r\n </span>\r\n\r\n {(label || description) && (\r\n <span style={labelContainerStyle}>\r\n {label && <span style={labelStyle}>{label}</span>}\r\n {description && <span style={descriptionStyle}>{description}</span>}\r\n </span>\r\n )}\r\n </label>\r\n )\r\n})\r\n\r\nSwitch.displayName = 'Switch'\r\n"],"names":["Switch","forwardRef","size","label","description","className","style","testId","disabled","checked","onChange","props","ref","isFocused","setIsFocused","useState","isPressed","setIsPressed","config","switchSizes","fontSize","componentFontSize","padding","travel","wrapperStyle","componentGap","stateOpacity","trackStyle","transition","focusRing","thumbStyle","scale","inputStyle","labelContainerStyle","componentLineHeight","labelStyle","descriptionStyle","jsxs","cx","jsx"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import { jsxs as p, jsx as s } from "react/jsx-runtime";
2
+ import { forwardRef as D, useState as m } from "react";
3
+ import { cx as L } from "../../../utils/styles.js";
4
+ import { componentGap as y, switchSizes as N } from "../../../design-system/primitives/sizing.js";
5
+ import { stateOpacity as P, scale as f } from "../../../design-system/primitives/opacity.js";
6
+ import { focusRing as B } from "../../../design-system/primitives/focus.js";
7
+ import { transition as b } from "../../../design-system/primitives/transitions.js";
8
+ import { componentLineHeight as u, componentFontSize as G } from "../../../design-system/primitives/typography.js";
9
+ const O = D(function({
10
+ size: n = "md",
11
+ label: i,
12
+ description: a,
13
+ className: g,
14
+ style: w,
15
+ testId: S,
16
+ disabled: e,
17
+ checked: o,
18
+ onChange: x,
19
+ ...k
20
+ }, v) {
21
+ const [F, h] = m(!1), [d, l] = m(!1), t = N[n], c = G[n], r = (t.height - t.thumb) / 2, R = t.width - t.thumb - r * 2, $ = {
22
+ display: "inline-flex",
23
+ alignItems: "flex-start",
24
+ gap: y.xl,
25
+ cursor: e ? "not-allowed" : "pointer",
26
+ opacity: e ? P.disabled : 1
27
+ }, C = {
28
+ position: "relative",
29
+ width: t.width,
30
+ height: t.height,
31
+ borderRadius: t.height / 2,
32
+ backgroundColor: o ? "var(--brycks-primary-default)" : "var(--brycks-background-muted)",
33
+ border: `1px solid ${o ? "var(--brycks-primary-default)" : "var(--brycks-border-default)"}`,
34
+ transition: b.spring,
35
+ boxShadow: F ? B.default : "inset 0 1px 2px rgba(0,0,0,0.05)",
36
+ flexShrink: 0
37
+ }, H = {
38
+ position: "absolute",
39
+ top: r,
40
+ left: o ? r + R : r,
41
+ width: d ? t.thumb + 4 : t.thumb,
42
+ height: t.thumb,
43
+ borderRadius: t.thumb / 2,
44
+ backgroundColor: "var(--brycks-background-elevated)",
45
+ boxShadow: "var(--brycks-shadow-sm)",
46
+ transition: b.spring,
47
+ transform: d ? `scale(${f.pressedStrong})` : `scale(${f.normal})`
48
+ }, I = {
49
+ position: "absolute",
50
+ width: "100%",
51
+ height: "100%",
52
+ opacity: 0,
53
+ cursor: e ? "not-allowed" : "pointer",
54
+ margin: 0
55
+ }, M = {
56
+ display: "flex",
57
+ flexDirection: "column",
58
+ gap: y.xs,
59
+ paddingTop: (t.height - c * u.snug) / 2
60
+ }, j = {
61
+ fontSize: c,
62
+ lineHeight: u.snug,
63
+ color: "var(--brycks-foreground-default)",
64
+ userSelect: "none"
65
+ }, z = {
66
+ fontSize: c - 1,
67
+ lineHeight: u.snug,
68
+ color: "var(--brycks-foreground-muted)",
69
+ userSelect: "none"
70
+ };
71
+ return /* @__PURE__ */ p(
72
+ "label",
73
+ {
74
+ className: L(
75
+ "brycks-switch",
76
+ `brycks-switch--${n}`,
77
+ o && "brycks-switch--checked",
78
+ e && "brycks-switch--disabled",
79
+ g
80
+ ),
81
+ style: { ...$, ...w },
82
+ "data-testid": S,
83
+ onMouseDown: () => l(!0),
84
+ onMouseUp: () => l(!1),
85
+ onMouseLeave: () => l(!1),
86
+ children: [
87
+ /* @__PURE__ */ p("span", { style: C, children: [
88
+ /* @__PURE__ */ s(
89
+ "input",
90
+ {
91
+ ref: v,
92
+ type: "checkbox",
93
+ role: "switch",
94
+ style: I,
95
+ checked: o,
96
+ disabled: e,
97
+ "aria-checked": o,
98
+ onChange: x,
99
+ onFocus: () => h(!0),
100
+ onBlur: () => h(!1),
101
+ ...k
102
+ }
103
+ ),
104
+ /* @__PURE__ */ s("span", { style: H })
105
+ ] }),
106
+ (i || a) && /* @__PURE__ */ p("span", { style: M, children: [
107
+ i && /* @__PURE__ */ s("span", { style: j, children: i }),
108
+ a && /* @__PURE__ */ s("span", { style: z, children: a })
109
+ ] })
110
+ ]
111
+ }
112
+ );
113
+ });
114
+ O.displayName = "Switch";
115
+ export {
116
+ O as Switch
117
+ };
118
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.js","sources":["../../../../src/components/form/Switch/Switch.tsx"],"sourcesContent":["/**\r\n * Switch Component\r\n *\r\n * Apple-inspired toggle switch with smooth spring animation.\r\n * Clean, tactile design with satisfying micro-interactions.\r\n *\r\n * @module components/form/Switch\r\n */\r\n\r\nimport {\r\n forwardRef,\r\n useState,\r\n type CSSProperties,\r\n type InputHTMLAttributes,\r\n type ReactNode,\r\n} from 'react'\r\nimport {\r\n switchSizes,\r\n componentGap,\r\n componentFontSize,\r\n componentLineHeight,\r\n focusRing,\r\n transition,\r\n stateOpacity,\r\n scale,\r\n} from '../../../design-system'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport type SwitchSize = 'sm' | 'md' | 'lg'\r\n\r\nexport interface SwitchProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\r\n /** Switch size */\r\n size?: SwitchSize\r\n /** Label text */\r\n label?: ReactNode\r\n /** Description below label */\r\n description?: ReactNode\r\n /** Custom class name */\r\n className?: string\r\n /** Test ID */\r\n testId?: string\r\n}\r\n\r\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\r\n {\r\n size = 'md',\r\n label,\r\n description,\r\n className,\r\n style,\r\n testId,\r\n disabled,\r\n checked,\r\n onChange,\r\n ...props\r\n },\r\n ref\r\n) {\r\n const [isFocused, setIsFocused] = useState(false)\r\n const [isPressed, setIsPressed] = useState(false)\r\n\r\n const config = switchSizes[size]\r\n const fontSize = componentFontSize[size]\r\n\r\n const padding = (config.height - config.thumb) / 2\r\n const travel = config.width - config.thumb - padding * 2\r\n\r\n const wrapperStyle: CSSProperties = {\r\n display: 'inline-flex',\r\n alignItems: 'flex-start',\r\n gap: componentGap.xl,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n opacity: disabled ? stateOpacity.disabled : 1,\r\n }\r\n\r\n const trackStyle: CSSProperties = {\r\n position: 'relative',\r\n width: config.width,\r\n height: config.height,\r\n borderRadius: config.height / 2,\r\n backgroundColor: checked\r\n ? 'var(--brycks-primary-default)'\r\n : 'var(--brycks-background-muted)',\r\n border: `1px solid ${checked ? 'var(--brycks-primary-default)' : 'var(--brycks-border-default)'}`,\r\n transition: transition.spring,\r\n boxShadow: isFocused ? focusRing.default : 'inset 0 1px 2px rgba(0,0,0,0.05)',\r\n flexShrink: 0,\r\n }\r\n\r\n const thumbStyle: CSSProperties = {\r\n position: 'absolute',\r\n top: padding,\r\n left: checked ? padding + travel : padding,\r\n width: isPressed ? config.thumb + 4 : config.thumb,\r\n height: config.thumb,\r\n borderRadius: config.thumb / 2,\r\n backgroundColor: 'var(--brycks-background-elevated)',\r\n boxShadow: 'var(--brycks-shadow-sm)',\r\n transition: transition.spring,\r\n transform: isPressed ? `scale(${scale.pressedStrong})` : `scale(${scale.normal})`,\r\n }\r\n\r\n const inputStyle: CSSProperties = {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n opacity: 0,\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n margin: 0,\r\n }\r\n\r\n const labelContainerStyle: CSSProperties = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: componentGap.xs,\r\n paddingTop: (config.height - fontSize * componentLineHeight.snug) / 2,\r\n }\r\n\r\n const labelStyle: CSSProperties = {\r\n fontSize,\r\n lineHeight: componentLineHeight.snug,\r\n color: 'var(--brycks-foreground-default)',\r\n userSelect: 'none',\r\n }\r\n\r\n const descriptionStyle: CSSProperties = {\r\n fontSize: fontSize - 1,\r\n lineHeight: componentLineHeight.snug,\r\n color: 'var(--brycks-foreground-muted)',\r\n userSelect: 'none',\r\n }\r\n\r\n return (\r\n <label\r\n className={cx(\r\n 'brycks-switch',\r\n `brycks-switch--${size}`,\r\n checked && 'brycks-switch--checked',\r\n disabled && 'brycks-switch--disabled',\r\n className\r\n )}\r\n style={{ ...wrapperStyle, ...style }}\r\n data-testid={testId}\r\n onMouseDown={() => setIsPressed(true)}\r\n onMouseUp={() => setIsPressed(false)}\r\n onMouseLeave={() => setIsPressed(false)}\r\n >\r\n <span style={trackStyle}>\r\n <input\r\n ref={ref}\r\n type=\"checkbox\"\r\n role=\"switch\"\r\n style={inputStyle}\r\n checked={checked}\r\n disabled={disabled}\r\n aria-checked={checked}\r\n onChange={onChange}\r\n onFocus={() => setIsFocused(true)}\r\n onBlur={() => setIsFocused(false)}\r\n {...props}\r\n />\r\n <span style={thumbStyle} />\r\n </span>\r\n\r\n {(label || description) && (\r\n <span style={labelContainerStyle}>\r\n {label && <span style={labelStyle}>{label}</span>}\r\n {description && <span style={descriptionStyle}>{description}</span>}\r\n </span>\r\n )}\r\n </label>\r\n )\r\n})\r\n\r\nSwitch.displayName = 'Switch'\r\n"],"names":["Switch","forwardRef","size","label","description","className","style","testId","disabled","checked","onChange","props","ref","isFocused","setIsFocused","useState","isPressed","setIsPressed","config","switchSizes","fontSize","componentFontSize","padding","travel","wrapperStyle","componentGap","stateOpacity","trackStyle","transition","focusRing","thumbStyle","scale","inputStyle","labelContainerStyle","componentLineHeight","labelStyle","descriptionStyle","jsxs","cx","jsx"],"mappings":";;;;;;;;AA2CO,MAAMA,IAASC,EAA0C,SAC9D;AAAA,EACE,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAWC,CAAY,IAAIF,EAAS,EAAK,GAE1CG,IAASC,EAAYjB,CAAI,GACzBkB,IAAWC,EAAkBnB,CAAI,GAEjCoB,KAAWJ,EAAO,SAASA,EAAO,SAAS,GAC3CK,IAASL,EAAO,QAAQA,EAAO,QAAQI,IAAU,GAEjDE,IAA8B;AAAA,IAClC,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,KAAKC,EAAa;AAAA,IAClB,QAAQjB,IAAW,gBAAgB;AAAA,IACnC,SAASA,IAAWkB,EAAa,WAAW;AAAA,EAAA,GAGxCC,IAA4B;AAAA,IAChC,UAAU;AAAA,IACV,OAAOT,EAAO;AAAA,IACd,QAAQA,EAAO;AAAA,IACf,cAAcA,EAAO,SAAS;AAAA,IAC9B,iBAAiBT,IACb,kCACA;AAAA,IACJ,QAAQ,aAAaA,IAAU,kCAAkC,8BAA8B;AAAA,IAC/F,YAAYmB,EAAW;AAAA,IACvB,WAAWf,IAAYgB,EAAU,UAAU;AAAA,IAC3C,YAAY;AAAA,EAAA,GAGRC,IAA4B;AAAA,IAChC,UAAU;AAAA,IACV,KAAKR;AAAA,IACL,MAAMb,IAAUa,IAAUC,IAASD;AAAA,IACnC,OAAON,IAAYE,EAAO,QAAQ,IAAIA,EAAO;AAAA,IAC7C,QAAQA,EAAO;AAAA,IACf,cAAcA,EAAO,QAAQ;AAAA,IAC7B,iBAAiB;AAAA,IACjB,WAAW;AAAA,IACX,YAAYU,EAAW;AAAA,IACvB,WAAWZ,IAAY,SAASe,EAAM,aAAa,MAAM,SAASA,EAAM,MAAM;AAAA,EAAA,GAG1EC,IAA4B;AAAA,IAChC,UAAU;AAAA,IACV,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQxB,IAAW,gBAAgB;AAAA,IACnC,QAAQ;AAAA,EAAA,GAGJyB,IAAqC;AAAA,IACzC,SAAS;AAAA,IACT,eAAe;AAAA,IACf,KAAKR,EAAa;AAAA,IAClB,aAAaP,EAAO,SAASE,IAAWc,EAAoB,QAAQ;AAAA,EAAA,GAGhEC,IAA4B;AAAA,IAChC,UAAAf;AAAA,IACA,YAAYc,EAAoB;AAAA,IAChC,OAAO;AAAA,IACP,YAAY;AAAA,EAAA,GAGRE,IAAkC;AAAA,IACtC,UAAUhB,IAAW;AAAA,IACrB,YAAYc,EAAoB;AAAA,IAChC,OAAO;AAAA,IACP,YAAY;AAAA,EAAA;AAGd,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA,kBAAkBpC,CAAI;AAAA,QACtBO,KAAW;AAAA,QACXD,KAAY;AAAA,QACZH;AAAA,MAAA;AAAA,MAEF,OAAO,EAAE,GAAGmB,GAAc,GAAGlB,EAAA;AAAA,MAC7B,eAAaC;AAAA,MACb,aAAa,MAAMU,EAAa,EAAI;AAAA,MACpC,WAAW,MAAMA,EAAa,EAAK;AAAA,MACnC,cAAc,MAAMA,EAAa,EAAK;AAAA,MAEtC,UAAA;AAAA,QAAA,gBAAAoB,EAAC,QAAA,EAAK,OAAOV,GACX,UAAA;AAAA,UAAA,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAA3B;AAAA,cACA,MAAK;AAAA,cACL,MAAK;AAAA,cACL,OAAOoB;AAAA,cACP,SAAAvB;AAAA,cACA,UAAAD;AAAA,cACA,gBAAcC;AAAA,cACd,UAAAC;AAAA,cACA,SAAS,MAAMI,EAAa,EAAI;AAAA,cAChC,QAAQ,MAAMA,EAAa,EAAK;AAAA,cAC/B,GAAGH;AAAA,YAAA;AAAA,UAAA;AAAA,UAEN,gBAAA4B,EAAC,QAAA,EAAK,OAAOT,EAAA,CAAY;AAAA,QAAA,GAC3B;AAAA,SAEE3B,KAASC,MACT,gBAAAiC,EAAC,QAAA,EAAK,OAAOJ,GACV,UAAA;AAAA,UAAA9B,KAAS,gBAAAoC,EAAC,QAAA,EAAK,OAAOJ,GAAa,UAAAhC,GAAM;AAAA,UACzCC,KAAe,gBAAAmC,EAAC,QAAA,EAAK,OAAOH,GAAmB,UAAAhC,EAAA,CAAY;AAAA,QAAA,EAAA,CAC9D;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,CAAC;AAEDJ,EAAO,cAAc;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),I=require("../../../utils/styles.cjs"),S=require("../Input/Input.cjs"),u=a.forwardRef(function({label:d,helperText:o,errorMessage:i,isRequired:l,hideLabel:y,isInvalid:f,id:b,className:h,testId:p,...x},g){const m=a.useId(),t=b??m,n=`${t}-helper`,s=`${t}-error`,r=!!i||f,j=[r&&s,o&&n].filter(Boolean).join(" "),v={display:"block",marginBottom:6,fontSize:13,fontWeight:500,color:"var(--brycks-foreground-default)",...y&&{position:"absolute",width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",border:0}},c={display:"block",marginTop:6,fontSize:12,lineHeight:1.5,color:"var(--brycks-foreground-muted)"},k={...c,color:"var(--brycks-error-default)"};return e.jsxs("div",{className:I.cx("brycks-text-field",r&&"brycks-text-field--error",h),"data-testid":p,children:[d&&e.jsxs("label",{htmlFor:t,style:v,children:[d,l&&e.jsx("span",{"aria-hidden":"true",style:{color:"var(--brycks-error-default)",marginLeft:2},children:"*"})]}),e.jsx(S.Input,{ref:g,id:t,isInvalid:r,"aria-describedby":j||void 0,"aria-required":l,...x}),r&&i&&e.jsx("span",{id:s,role:"alert",style:k,children:i}),!r&&o&&e.jsx("span",{id:n,style:c,children:o})]})});u.displayName="TextField";exports.TextField=u;
2
+ //# sourceMappingURL=TextField.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextField.cjs","sources":["../../../../src/components/form/TextField/TextField.tsx"],"sourcesContent":["/**\r\n * TextField Component\r\n *\r\n * Complete text input field with label, helper text, and error handling.\r\n * Combines Input with proper accessibility and form structure.\r\n */\r\n\r\nimport { forwardRef, useId, type ReactNode } from 'react'\r\nimport { Input, type InputProps } from '../Input'\r\nimport { cx } from '../../../utils/styles'\r\n\r\nexport interface TextFieldProps extends InputProps {\r\n /** Field label */\r\n label?: ReactNode\r\n /** Helper text below the input */\r\n helperText?: ReactNode\r\n /** Error message (also sets isInvalid) */\r\n errorMessage?: ReactNode\r\n /** Whether the field is required */\r\n isRequired?: boolean\r\n /** Whether to hide the label visually (still accessible) */\r\n hideLabel?: boolean\r\n}\r\n\r\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(function TextField(\r\n {\r\n label,\r\n helperText,\r\n errorMessage,\r\n isRequired,\r\n hideLabel,\r\n isInvalid,\r\n id,\r\n className,\r\n testId,\r\n ...inputProps\r\n },\r\n ref\r\n) {\r\n const generatedId = useId()\r\n const fieldId = id ?? generatedId\r\n const helperId = `${fieldId}-helper`\r\n const errorId = `${fieldId}-error`\r\n\r\n const hasError = Boolean(errorMessage) || isInvalid\r\n const describedBy = [hasError && errorId, helperText && helperId].filter(Boolean).join(' ')\r\n\r\n const labelStyle: React.CSSProperties = {\r\n display: 'block',\r\n marginBottom: 6,\r\n fontSize: 13,\r\n fontWeight: 500,\r\n color: 'var(--brycks-foreground-default)',\r\n ...(hideLabel && {\r\n position: 'absolute',\r\n width: 1,\r\n height: 1,\r\n padding: 0,\r\n margin: -1,\r\n overflow: 'hidden',\r\n clip: 'rect(0, 0, 0, 0)',\r\n whiteSpace: 'nowrap',\r\n border: 0,\r\n }),\r\n }\r\n\r\n const helperStyle: React.CSSProperties = {\r\n display: 'block',\r\n marginTop: 6,\r\n fontSize: 12,\r\n lineHeight: 1.5,\r\n color: 'var(--brycks-foreground-muted)',\r\n }\r\n\r\n const errorStyle: React.CSSProperties = {\r\n ...helperStyle,\r\n color: 'var(--brycks-error-default)',\r\n }\r\n\r\n return (\r\n <div\r\n className={cx(\r\n 'brycks-text-field',\r\n hasError && 'brycks-text-field--error',\r\n className\r\n )}\r\n data-testid={testId}\r\n >\r\n {label && (\r\n <label htmlFor={fieldId} style={labelStyle}>\r\n {label}\r\n {isRequired && (\r\n <span\r\n aria-hidden=\"true\"\r\n style={{\r\n color: 'var(--brycks-error-default)',\r\n marginLeft: 2,\r\n }}\r\n >\r\n *\r\n </span>\r\n )}\r\n </label>\r\n )}\r\n\r\n <Input\r\n ref={ref}\r\n id={fieldId}\r\n isInvalid={hasError}\r\n aria-describedby={describedBy || undefined}\r\n aria-required={isRequired}\r\n {...inputProps}\r\n />\r\n\r\n {hasError && errorMessage && (\r\n <span id={errorId} role=\"alert\" style={errorStyle}>\r\n {errorMessage}\r\n </span>\r\n )}\r\n\r\n {!hasError && helperText && (\r\n <span id={helperId} style={helperStyle}>\r\n {helperText}\r\n </span>\r\n )}\r\n </div>\r\n )\r\n})\r\n\r\nTextField.displayName = 'TextField'\r\n"],"names":["TextField","forwardRef","label","helperText","errorMessage","isRequired","hideLabel","isInvalid","id","className","testId","inputProps","ref","generatedId","useId","fieldId","helperId","errorId","hasError","describedBy","labelStyle","helperStyle","errorStyle","jsxs","cx","jsx","Input"],"mappings":"+MAwBaA,EAAYC,EAAAA,WAA6C,SACpE,CACE,MAAAC,EACA,WAAAC,EACA,aAAAC,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,EACA,GAAAC,EACA,UAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAcC,EAAAA,MAAA,EACdC,EAAUP,GAAMK,EAChBG,EAAW,GAAGD,CAAO,UACrBE,EAAU,GAAGF,CAAO,SAEpBG,EAAW,EAAQd,GAAiBG,EACpCY,EAAc,CAACD,GAAYD,EAASd,GAAca,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAEpFI,EAAkC,CACtC,QAAS,QACT,aAAc,EACd,SAAU,GACV,WAAY,IACZ,MAAO,mCACP,GAAId,GAAa,CACf,SAAU,WACV,MAAO,EACP,OAAQ,EACR,QAAS,EACT,OAAQ,GACR,SAAU,SACV,KAAM,mBACN,WAAY,SACZ,OAAQ,CAAA,CACV,EAGIe,EAAmC,CACvC,QAAS,QACT,UAAW,EACX,SAAU,GACV,WAAY,IACZ,MAAO,gCAAA,EAGHC,EAAkC,CACtC,GAAGD,EACH,MAAO,6BAAA,EAGT,OACEE,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,GACT,oBACAN,GAAY,2BACZT,CAAA,EAEF,cAAaC,EAEZ,SAAA,CAAAR,GACCqB,EAAAA,KAAC,QAAA,CAAM,QAASR,EAAS,MAAOK,EAC7B,SAAA,CAAAlB,EACAG,GACCoB,EAAAA,IAAC,OAAA,CACC,cAAY,OACZ,MAAO,CACL,MAAO,8BACP,WAAY,CAAA,EAEf,SAAA,GAAA,CAAA,CAED,EAEJ,EAGFA,EAAAA,IAACC,EAAAA,MAAA,CACC,IAAAd,EACA,GAAIG,EACJ,UAAWG,EACX,mBAAkBC,GAAe,OACjC,gBAAed,EACd,GAAGM,CAAA,CAAA,EAGLO,GAAYd,GACXqB,EAAAA,IAAC,OAAA,CAAK,GAAIR,EAAS,KAAK,QAAQ,MAAOK,EACpC,SAAAlB,CAAA,CACH,EAGD,CAACc,GAAYf,GACZsB,EAAAA,IAAC,QAAK,GAAIT,EAAU,MAAOK,EACxB,SAAAlB,CAAA,CACH,CAAA,CAAA,CAAA,CAIR,CAAC,EAEDH,EAAU,YAAc"}