@simplybusiness/mobius 4.16.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/cjs/components/Accordion/Accordion.js +8 -8
  3. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/cjs/components/Alert/Alert.js +4 -4
  5. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  6. package/dist/cjs/components/Box/Box.js +1 -1
  7. package/dist/cjs/components/Box/Box.js.map +1 -1
  8. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js +2 -2
  9. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  10. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -1
  11. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  12. package/dist/cjs/components/Button/Button.js +4 -2
  13. package/dist/cjs/components/Button/Button.js.map +1 -1
  14. package/dist/cjs/components/Button/Loading.js +12 -6
  15. package/dist/cjs/components/Button/Loading.js.map +1 -1
  16. package/dist/cjs/components/Button/Success.js +4 -3
  17. package/dist/cjs/components/Button/Success.js.map +1 -1
  18. package/dist/cjs/components/Checkbox/Checkbox.js +10 -6
  19. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  20. package/dist/cjs/components/Checkbox/CheckboxGroup.js +2 -2
  21. package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +1 -1
  22. package/dist/cjs/components/Container/Container.js +1 -1
  23. package/dist/cjs/components/Container/Container.js.map +1 -1
  24. package/dist/cjs/components/Divider/Divider.js +2 -2
  25. package/dist/cjs/components/Divider/Divider.js.map +1 -1
  26. package/dist/cjs/components/Drawer/Content.js +1 -1
  27. package/dist/cjs/components/Drawer/Content.js.map +1 -1
  28. package/dist/cjs/components/Drawer/Drawer.js +1 -1
  29. package/dist/cjs/components/Drawer/Drawer.js.map +1 -1
  30. package/dist/cjs/components/Drawer/Header.js +2 -2
  31. package/dist/cjs/components/Drawer/Header.js.map +1 -1
  32. package/dist/cjs/components/DropdownMenu/DropdownMenu.js +3 -3
  33. package/dist/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  34. package/dist/cjs/components/DropdownMenu/Item.js +1 -1
  35. package/dist/cjs/components/DropdownMenu/Item.js.map +1 -1
  36. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +7 -4
  37. package/dist/cjs/components/ErrorMessage/ErrorMessage.js.map +1 -1
  38. package/dist/cjs/components/Fieldset/Fieldset.js +2 -2
  39. package/dist/cjs/components/Fieldset/Fieldset.js.map +1 -1
  40. package/dist/cjs/components/Flex/Flex.js +1 -1
  41. package/dist/cjs/components/Flex/Flex.js.map +1 -1
  42. package/dist/cjs/components/Grid/Grid.js +1 -1
  43. package/dist/cjs/components/Grid/Grid.js.map +1 -1
  44. package/dist/cjs/components/Grid/Item.js +1 -1
  45. package/dist/cjs/components/Grid/Item.js.map +1 -1
  46. package/dist/cjs/components/Icon/Icon.js +1 -1
  47. package/dist/cjs/components/Icon/Icon.js.map +1 -1
  48. package/dist/cjs/components/Image/Image.js +1 -1
  49. package/dist/cjs/components/Image/Image.js.map +1 -1
  50. package/dist/cjs/components/Label/Label.js +1 -1
  51. package/dist/cjs/components/Label/Label.js.map +1 -1
  52. package/dist/cjs/components/Link/Link.js +1 -1
  53. package/dist/cjs/components/Link/Link.js.map +1 -1
  54. package/dist/cjs/components/LinkButton/LinkButton.js +1 -1
  55. package/dist/cjs/components/LinkButton/LinkButton.js.map +1 -1
  56. package/dist/cjs/components/List/List.js +1 -1
  57. package/dist/cjs/components/List/List.js.map +1 -1
  58. package/dist/cjs/components/List/ListItem.js +3 -3
  59. package/dist/cjs/components/List/ListItem.js.map +1 -1
  60. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js +1 -1
  61. package/dist/cjs/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  62. package/dist/cjs/components/Logo/Logo.js +1 -1
  63. package/dist/cjs/components/Logo/Logo.js.map +1 -1
  64. package/dist/cjs/components/Modal/Content.js +1 -1
  65. package/dist/cjs/components/Modal/Content.js.map +1 -1
  66. package/dist/cjs/components/Modal/Header.js +2 -2
  67. package/dist/cjs/components/Modal/Header.js.map +1 -1
  68. package/dist/cjs/components/Modal/Modal.js +1 -1
  69. package/dist/cjs/components/Modal/Modal.js.map +1 -1
  70. package/dist/cjs/components/NumberField/NumberField.js +7 -5
  71. package/dist/cjs/components/NumberField/NumberField.js.map +1 -1
  72. package/dist/cjs/components/PasswordField/PasswordField.js +1 -1
  73. package/dist/cjs/components/PasswordField/PasswordField.js.map +1 -1
  74. package/dist/cjs/components/PasswordField/ShowHideButton.js +1 -1
  75. package/dist/cjs/components/PasswordField/ShowHideButton.js.map +1 -1
  76. package/dist/cjs/components/Popover/Popover.js +8 -8
  77. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  78. package/dist/cjs/components/Progress/Progress.js +5 -5
  79. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  80. package/dist/cjs/components/Radio/Radio.js +6 -6
  81. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  82. package/dist/cjs/components/Radio/RadioGroup.js +36 -32
  83. package/dist/cjs/components/Radio/RadioGroup.js.map +1 -1
  84. package/dist/cjs/components/SVG/SVG.js +1 -1
  85. package/dist/cjs/components/SVG/SVG.js.map +1 -1
  86. package/dist/cjs/components/Segment/Segment.js +2 -2
  87. package/dist/cjs/components/Segment/Segment.js.map +1 -1
  88. package/dist/cjs/components/Segment/SegmentGroup.js +5 -5
  89. package/dist/cjs/components/Segment/SegmentGroup.js.map +1 -1
  90. package/dist/cjs/components/Select/Select.js +8 -8
  91. package/dist/cjs/components/Select/Select.js.map +1 -1
  92. package/dist/cjs/components/Slider/Slider.js +7 -7
  93. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  94. package/dist/cjs/components/Stack/Stack.js +72 -0
  95. package/dist/cjs/components/Stack/Stack.js.map +1 -0
  96. package/dist/cjs/components/Stack/index.js +20 -0
  97. package/dist/cjs/components/Stack/index.js.map +1 -0
  98. package/dist/cjs/components/Table/Body.js +1 -1
  99. package/dist/cjs/components/Table/Body.js.map +1 -1
  100. package/dist/cjs/components/Table/Cell.js +1 -1
  101. package/dist/cjs/components/Table/Cell.js.map +1 -1
  102. package/dist/cjs/components/Table/Foot.js +1 -1
  103. package/dist/cjs/components/Table/Foot.js.map +1 -1
  104. package/dist/cjs/components/Table/Head.js +1 -1
  105. package/dist/cjs/components/Table/Head.js.map +1 -1
  106. package/dist/cjs/components/Table/HeaderCell.js +1 -1
  107. package/dist/cjs/components/Table/HeaderCell.js.map +1 -1
  108. package/dist/cjs/components/Table/Row.js +1 -1
  109. package/dist/cjs/components/Table/Row.js.map +1 -1
  110. package/dist/cjs/components/Table/Table.js +1 -1
  111. package/dist/cjs/components/Table/Table.js.map +1 -1
  112. package/dist/cjs/components/Text/Text.js +5 -2
  113. package/dist/cjs/components/Text/Text.js.map +1 -1
  114. package/dist/cjs/components/TextArea/TextArea.js +5 -5
  115. package/dist/cjs/components/TextArea/TextArea.js.map +1 -1
  116. package/dist/cjs/components/TextAreaInput/TextAreaInput.js +1 -1
  117. package/dist/cjs/components/TextAreaInput/TextAreaInput.js.map +1 -1
  118. package/dist/cjs/components/TextField/TextField.js +12 -10
  119. package/dist/cjs/components/TextField/TextField.js.map +1 -1
  120. package/dist/cjs/components/Title/Title.js +4 -4
  121. package/dist/cjs/components/Title/Title.js.map +1 -1
  122. package/dist/cjs/components/Trust/Trust.js +4 -5
  123. package/dist/cjs/components/Trust/Trust.js.map +1 -1
  124. package/dist/cjs/components/Trust/constants.js +3 -3
  125. package/dist/cjs/components/Trust/constants.js.map +1 -1
  126. package/dist/cjs/components/index.js +1 -0
  127. package/dist/cjs/components/index.js.map +1 -1
  128. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  129. package/dist/esm/components/Accordion/Accordion.js +8 -8
  130. package/dist/esm/components/Accordion/Accordion.js.map +1 -1
  131. package/dist/esm/components/Alert/Alert.js +4 -4
  132. package/dist/esm/components/Alert/Alert.js.map +1 -1
  133. package/dist/esm/components/Box/Box.js +1 -1
  134. package/dist/esm/components/Box/Box.js.map +1 -1
  135. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js +2 -2
  136. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js.map +1 -1
  137. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -1
  138. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  139. package/dist/esm/components/Button/Button.js +4 -2
  140. package/dist/esm/components/Button/Button.js.map +1 -1
  141. package/dist/esm/components/Button/Loading.js +12 -6
  142. package/dist/esm/components/Button/Loading.js.map +1 -1
  143. package/dist/esm/components/Button/Success.js +4 -3
  144. package/dist/esm/components/Button/Success.js.map +1 -1
  145. package/dist/esm/components/Checkbox/Checkbox.js +11 -7
  146. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  147. package/dist/esm/components/Checkbox/CheckboxGroup.js +2 -2
  148. package/dist/esm/components/Checkbox/CheckboxGroup.js.map +1 -1
  149. package/dist/esm/components/Container/Container.js +1 -1
  150. package/dist/esm/components/Container/Container.js.map +1 -1
  151. package/dist/esm/components/Divider/Divider.js +2 -2
  152. package/dist/esm/components/Divider/Divider.js.map +1 -1
  153. package/dist/esm/components/Drawer/Content.js +1 -1
  154. package/dist/esm/components/Drawer/Content.js.map +1 -1
  155. package/dist/esm/components/Drawer/Drawer.js +1 -1
  156. package/dist/esm/components/Drawer/Drawer.js.map +1 -1
  157. package/dist/esm/components/Drawer/Header.js +2 -2
  158. package/dist/esm/components/Drawer/Header.js.map +1 -1
  159. package/dist/esm/components/DropdownMenu/DropdownMenu.js +3 -3
  160. package/dist/esm/components/DropdownMenu/DropdownMenu.js.map +1 -1
  161. package/dist/esm/components/DropdownMenu/Item.js +1 -1
  162. package/dist/esm/components/DropdownMenu/Item.js.map +1 -1
  163. package/dist/esm/components/ErrorMessage/ErrorMessage.js +7 -4
  164. package/dist/esm/components/ErrorMessage/ErrorMessage.js.map +1 -1
  165. package/dist/esm/components/Fieldset/Fieldset.js +2 -2
  166. package/dist/esm/components/Fieldset/Fieldset.js.map +1 -1
  167. package/dist/esm/components/Flex/Flex.js +1 -1
  168. package/dist/esm/components/Flex/Flex.js.map +1 -1
  169. package/dist/esm/components/Grid/Grid.js +1 -1
  170. package/dist/esm/components/Grid/Grid.js.map +1 -1
  171. package/dist/esm/components/Grid/Item.js +1 -1
  172. package/dist/esm/components/Grid/Item.js.map +1 -1
  173. package/dist/esm/components/Icon/Icon.js +1 -1
  174. package/dist/esm/components/Icon/Icon.js.map +1 -1
  175. package/dist/esm/components/Image/Image.js +1 -1
  176. package/dist/esm/components/Image/Image.js.map +1 -1
  177. package/dist/esm/components/Label/Label.js +1 -1
  178. package/dist/esm/components/Label/Label.js.map +1 -1
  179. package/dist/esm/components/Link/Link.js +1 -1
  180. package/dist/esm/components/Link/Link.js.map +1 -1
  181. package/dist/esm/components/LinkButton/LinkButton.js +1 -1
  182. package/dist/esm/components/LinkButton/LinkButton.js.map +1 -1
  183. package/dist/esm/components/List/List.js +1 -1
  184. package/dist/esm/components/List/List.js.map +1 -1
  185. package/dist/esm/components/List/ListItem.js +3 -3
  186. package/dist/esm/components/List/ListItem.js.map +1 -1
  187. package/dist/esm/components/LoadingIndicator/LoadingIndicator.js +1 -1
  188. package/dist/esm/components/LoadingIndicator/LoadingIndicator.js.map +1 -1
  189. package/dist/esm/components/Logo/Logo.js +1 -1
  190. package/dist/esm/components/Logo/Logo.js.map +1 -1
  191. package/dist/esm/components/Modal/Content.js +1 -1
  192. package/dist/esm/components/Modal/Content.js.map +1 -1
  193. package/dist/esm/components/Modal/Header.js +2 -2
  194. package/dist/esm/components/Modal/Header.js.map +1 -1
  195. package/dist/esm/components/Modal/Modal.js +1 -1
  196. package/dist/esm/components/Modal/Modal.js.map +1 -1
  197. package/dist/esm/components/NumberField/NumberField.js +7 -5
  198. package/dist/esm/components/NumberField/NumberField.js.map +1 -1
  199. package/dist/esm/components/PasswordField/PasswordField.js +1 -1
  200. package/dist/esm/components/PasswordField/PasswordField.js.map +1 -1
  201. package/dist/esm/components/PasswordField/ShowHideButton.js +1 -1
  202. package/dist/esm/components/PasswordField/ShowHideButton.js.map +1 -1
  203. package/dist/esm/components/Popover/Popover.js +8 -8
  204. package/dist/esm/components/Popover/Popover.js.map +1 -1
  205. package/dist/esm/components/Progress/Progress.js +5 -5
  206. package/dist/esm/components/Progress/Progress.js.map +1 -1
  207. package/dist/esm/components/Radio/Radio.js +6 -6
  208. package/dist/esm/components/Radio/Radio.js.map +1 -1
  209. package/dist/esm/components/Radio/RadioGroup.js +36 -32
  210. package/dist/esm/components/Radio/RadioGroup.js.map +1 -1
  211. package/dist/esm/components/SVG/SVG.js +1 -1
  212. package/dist/esm/components/SVG/SVG.js.map +1 -1
  213. package/dist/esm/components/Segment/Segment.js +2 -2
  214. package/dist/esm/components/Segment/Segment.js.map +1 -1
  215. package/dist/esm/components/Segment/SegmentGroup.js +5 -5
  216. package/dist/esm/components/Segment/SegmentGroup.js.map +1 -1
  217. package/dist/esm/components/Select/Select.js +8 -8
  218. package/dist/esm/components/Select/Select.js.map +1 -1
  219. package/dist/esm/components/Slider/Slider.js +7 -7
  220. package/dist/esm/components/Slider/Slider.js.map +1 -1
  221. package/dist/esm/components/Stack/Stack.js +16 -0
  222. package/dist/esm/components/Stack/Stack.js.map +1 -0
  223. package/dist/esm/components/Stack/index.js +3 -0
  224. package/dist/esm/components/Stack/index.js.map +1 -0
  225. package/dist/esm/components/Table/Body.js +1 -1
  226. package/dist/esm/components/Table/Body.js.map +1 -1
  227. package/dist/esm/components/Table/Cell.js +1 -1
  228. package/dist/esm/components/Table/Cell.js.map +1 -1
  229. package/dist/esm/components/Table/Foot.js +1 -1
  230. package/dist/esm/components/Table/Foot.js.map +1 -1
  231. package/dist/esm/components/Table/Head.js +1 -1
  232. package/dist/esm/components/Table/Head.js.map +1 -1
  233. package/dist/esm/components/Table/HeaderCell.js +1 -1
  234. package/dist/esm/components/Table/HeaderCell.js.map +1 -1
  235. package/dist/esm/components/Table/Row.js +1 -1
  236. package/dist/esm/components/Table/Row.js.map +1 -1
  237. package/dist/esm/components/Table/Table.js +1 -1
  238. package/dist/esm/components/Table/Table.js.map +1 -1
  239. package/dist/esm/components/Text/Text.js +5 -2
  240. package/dist/esm/components/Text/Text.js.map +1 -1
  241. package/dist/esm/components/TextArea/TextArea.js +5 -5
  242. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  243. package/dist/esm/components/TextAreaInput/TextAreaInput.js +1 -1
  244. package/dist/esm/components/TextAreaInput/TextAreaInput.js.map +1 -1
  245. package/dist/esm/components/TextField/TextField.js +12 -10
  246. package/dist/esm/components/TextField/TextField.js.map +1 -1
  247. package/dist/esm/components/Title/Title.js +4 -4
  248. package/dist/esm/components/Title/Title.js.map +1 -1
  249. package/dist/esm/components/Trust/Trust.js +4 -5
  250. package/dist/esm/components/Trust/Trust.js.map +1 -1
  251. package/dist/esm/components/Trust/constants.js +3 -3
  252. package/dist/esm/components/Trust/constants.js.map +1 -1
  253. package/dist/esm/components/index.js +1 -0
  254. package/dist/esm/components/index.js.map +1 -1
  255. package/dist/types/components/Button/Button.d.ts +2 -2
  256. package/dist/types/components/Button/Loading.d.ts +5 -1
  257. package/dist/types/components/Segment/Segment.stories.d.ts +2 -2
  258. package/dist/types/components/Segment/SegmentGroup.d.ts +1 -1
  259. package/dist/types/components/Stack/Stack.d.ts +15 -0
  260. package/dist/types/components/Stack/Stack.stories.d.ts +7 -0
  261. package/dist/types/components/Stack/Stack.test.d.ts +1 -0
  262. package/dist/types/components/Stack/index.d.ts +1 -0
  263. package/dist/types/components/index.d.ts +1 -0
  264. package/package.json +3 -2
  265. package/src/components/Accordion/Accordion.css +72 -0
  266. package/src/components/Accordion/Accordion.mdx +9 -10
  267. package/src/components/Accordion/Accordion.test.tsx +4 -4
  268. package/src/components/Accordion/Accordion.tsx +8 -8
  269. package/src/components/Alert/Alert.css +53 -0
  270. package/src/components/Alert/Alert.mdx +1 -5
  271. package/src/components/Alert/Alert.tsx +4 -4
  272. package/src/components/Box/Box.css +3 -0
  273. package/src/components/Box/Box.mdx +1 -5
  274. package/src/components/Box/Box.test.tsx +1 -1
  275. package/src/components/Box/Box.tsx +1 -1
  276. package/src/components/Breadcrumbs/BreadcrumbItem.tsx +2 -2
  277. package/src/components/Breadcrumbs/Breadcrumbs.css +34 -0
  278. package/src/components/Breadcrumbs/Breadcrumbs.mdx +4 -8
  279. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +2 -2
  280. package/src/components/Breadcrumbs/Breadcrumbs.tsx +1 -1
  281. package/src/components/Button/Button.css +253 -0
  282. package/src/components/Button/Button.mdx +3 -11
  283. package/src/components/Button/Button.story.styles.css +2 -2
  284. package/src/components/Button/Button.test.tsx +4 -6
  285. package/src/components/Button/Button.tsx +4 -4
  286. package/src/components/Button/Loading.tsx +21 -8
  287. package/src/components/Button/Success.tsx +5 -3
  288. package/src/components/Checkbox/Checkbox.css +112 -0
  289. package/src/components/Checkbox/Checkbox.mdx +6 -12
  290. package/src/components/Checkbox/Checkbox.test.tsx +1 -7
  291. package/src/components/Checkbox/Checkbox.tsx +9 -7
  292. package/src/components/Checkbox/CheckboxGroup.css +26 -0
  293. package/src/components/Checkbox/CheckboxGroup.mdx +12 -22
  294. package/src/components/Checkbox/CheckboxGroup.test.tsx +2 -7
  295. package/src/components/Checkbox/CheckboxGroup.tsx +2 -2
  296. package/src/components/Container/Container.css +13 -0
  297. package/src/components/Container/Container.mdx +1 -5
  298. package/src/components/Container/Container.test.tsx +1 -2
  299. package/src/components/Container/Container.tsx +1 -1
  300. package/src/components/Divider/Divider.css +14 -0
  301. package/src/components/Divider/Divider.mdx +2 -6
  302. package/src/components/Divider/Divider.test.tsx +1 -1
  303. package/src/components/Divider/Divider.tsx +2 -2
  304. package/src/components/Drawer/Content.tsx +1 -1
  305. package/src/components/Drawer/Drawer.css +189 -0
  306. package/src/components/Drawer/Drawer.mdx +5 -12
  307. package/src/components/Drawer/Drawer.test.tsx +2 -2
  308. package/src/components/Drawer/Drawer.tsx +1 -1
  309. package/src/components/Drawer/Header.tsx +2 -2
  310. package/src/components/DropdownMenu/DropdownMenu.css +70 -0
  311. package/src/components/DropdownMenu/DropdownMenu.mdx +4 -8
  312. package/src/components/DropdownMenu/DropdownMenu.story.styles.css +3 -3
  313. package/src/components/DropdownMenu/DropdownMenu.test.tsx +4 -4
  314. package/src/components/DropdownMenu/DropdownMenu.tsx +3 -3
  315. package/src/components/DropdownMenu/Item.tsx +1 -1
  316. package/src/components/ErrorMessage/ErrorMessage.css +11 -0
  317. package/src/components/ErrorMessage/ErrorMessage.test.tsx +1 -1
  318. package/src/components/ErrorMessage/ErrorMessage.tsx +5 -3
  319. package/src/components/Fieldset/Fieldset.css +15 -0
  320. package/src/components/Fieldset/Fieldset.mdx +2 -6
  321. package/src/components/Fieldset/Fieldset.tsx +2 -2
  322. package/src/components/Flex/Flex.css +4 -0
  323. package/src/components/Flex/Flex.mdx +1 -5
  324. package/src/components/Flex/Flex.test.tsx +1 -1
  325. package/src/components/Flex/Flex.tsx +1 -1
  326. package/src/components/Grid/Grid.mdx +0 -4
  327. package/src/components/Grid/Grid.tsx +1 -1
  328. package/src/components/Grid/Item.tsx +1 -1
  329. package/src/components/Icon/Icon.css +44 -0
  330. package/src/components/Icon/Icon.mdx +1 -5
  331. package/src/components/Icon/Icon.test.tsx +1 -1
  332. package/src/components/Icon/Icon.tsx +1 -1
  333. package/src/components/Image/Image.mdx +1 -5
  334. package/src/components/Image/Image.test.tsx +1 -1
  335. package/src/components/Image/Image.tsx +1 -1
  336. package/src/components/Label/Label.css +21 -0
  337. package/src/components/Label/Label.mdx +1 -5
  338. package/src/components/Label/Label.test.tsx +1 -1
  339. package/src/components/Label/Label.tsx +1 -1
  340. package/src/components/Link/Link.css +26 -0
  341. package/src/components/Link/Link.mdx +1 -5
  342. package/src/components/Link/Link.test.tsx +1 -1
  343. package/src/components/Link/Link.tsx +1 -1
  344. package/src/components/LinkButton/LinkButton.mdx +1 -5
  345. package/src/components/LinkButton/LinkButton.tsx +1 -1
  346. package/src/components/List/List.css +60 -0
  347. package/src/components/List/List.mdx +4 -8
  348. package/src/components/List/List.test.tsx +4 -4
  349. package/src/components/List/List.tsx +1 -1
  350. package/src/components/List/ListItem.tsx +3 -3
  351. package/src/components/LoadingIndicator/LoadingIndicator.css +3 -0
  352. package/src/components/LoadingIndicator/LoadingIndicator.mdx +1 -5
  353. package/src/components/LoadingIndicator/LoadingIndicator.test.tsx +1 -1
  354. package/src/components/LoadingIndicator/LoadingIndicator.tsx +1 -1
  355. package/src/components/Logo/Logo.mdx +1 -5
  356. package/src/components/Logo/Logo.test.tsx +1 -1
  357. package/src/components/Logo/Logo.tsx +1 -1
  358. package/src/components/Modal/Content.tsx +1 -1
  359. package/src/components/Modal/Header.tsx +2 -2
  360. package/src/components/Modal/Modal.css +145 -0
  361. package/src/components/Modal/Modal.mdx +5 -12
  362. package/src/components/Modal/Modal.test.tsx +2 -2
  363. package/src/components/Modal/Modal.tsx +1 -1
  364. package/src/components/NumberField/NumberField.css +64 -0
  365. package/src/components/NumberField/NumberField.mdx +4 -8
  366. package/src/components/NumberField/NumberField.tsx +7 -6
  367. package/src/components/PasswordField/PasswordField.css +31 -0
  368. package/src/components/PasswordField/PasswordField.mdx +4 -8
  369. package/src/components/PasswordField/PasswordField.tsx +1 -1
  370. package/src/components/PasswordField/ShowHideButton.tsx +1 -1
  371. package/src/components/Popover/Popover.css +43 -0
  372. package/src/components/Popover/Popover.mdx +7 -11
  373. package/src/components/Popover/Popover.story.styles.css +3 -3
  374. package/src/components/Popover/Popover.test.tsx +7 -7
  375. package/src/components/Popover/Popover.tsx +8 -8
  376. package/src/components/Progress/Progress.css +30 -0
  377. package/src/components/Progress/Progress.mdx +5 -11
  378. package/src/components/Progress/Progress.test.tsx +7 -3
  379. package/src/components/Progress/Progress.tsx +5 -5
  380. package/src/components/Radio/Radio.css +185 -0
  381. package/src/components/Radio/Radio.mdx +9 -13
  382. package/src/components/Radio/Radio.test.tsx +10 -5
  383. package/src/components/Radio/Radio.tsx +6 -6
  384. package/src/components/Radio/RadioGroup.tsx +28 -25
  385. package/src/components/SVG/SVG.mdx +1 -5
  386. package/src/components/SVG/SVG.test.tsx +1 -1
  387. package/src/components/SVG/SVG.tsx +1 -1
  388. package/src/components/Segment/Segment.css +204 -0
  389. package/src/components/Segment/Segment.mdx +9 -13
  390. package/src/components/Segment/Segment.stories.tsx +7 -7
  391. package/src/components/Segment/Segment.tsx +2 -2
  392. package/src/components/Segment/SegmentGroup.tsx +6 -6
  393. package/src/components/Select/Select.css +85 -0
  394. package/src/components/Select/Select.mdx +4 -8
  395. package/src/components/Select/Select.test.tsx +2 -2
  396. package/src/components/Select/Select.tsx +7 -7
  397. package/src/components/Slider/Slider.css +138 -0
  398. package/src/components/Slider/Slider.mdx +8 -14
  399. package/src/components/Slider/Slider.test.tsx +4 -1
  400. package/src/components/Slider/Slider.tsx +7 -7
  401. package/src/components/Stack/Stack.css +30 -0
  402. package/src/components/Stack/Stack.mdx +41 -0
  403. package/src/components/Stack/Stack.stories.tsx +56 -0
  404. package/src/components/Stack/Stack.test.tsx +8 -0
  405. package/src/components/Stack/Stack.tsx +34 -0
  406. package/src/components/Stack/index.tsx +1 -0
  407. package/src/components/Table/Body.tsx +1 -1
  408. package/src/components/Table/Cell.tsx +1 -1
  409. package/src/components/Table/Foot.tsx +1 -1
  410. package/src/components/Table/Head.tsx +1 -1
  411. package/src/components/Table/HeaderCell.tsx +1 -1
  412. package/src/components/Table/Row.tsx +1 -1
  413. package/src/components/Table/Table.css +62 -0
  414. package/src/components/Table/Table.mdx +10 -14
  415. package/src/components/Table/Table.test.tsx +28 -15
  416. package/src/components/Table/Table.tsx +1 -1
  417. package/src/components/Text/Text.css +94 -0
  418. package/src/components/Text/Text.mdx +1 -5
  419. package/src/components/Text/Text.test.tsx +1 -1
  420. package/src/components/Text/Text.tsx +3 -4
  421. package/src/components/TextArea/TextArea.css +46 -0
  422. package/src/components/TextArea/TextArea.mdx +4 -8
  423. package/src/components/TextArea/TextArea.test.tsx +1 -1
  424. package/src/components/TextArea/TextArea.tsx +8 -5
  425. package/src/components/TextAreaInput/TextAreaInput.test.tsx +1 -1
  426. package/src/components/TextAreaInput/TextAreaInput.tsx +1 -1
  427. package/src/components/TextField/TextField.css +166 -0
  428. package/src/components/TextField/TextField.mdx +4 -8
  429. package/src/components/TextField/TextField.test.tsx +10 -10
  430. package/src/components/TextField/TextField.tsx +14 -11
  431. package/src/components/Title/Title.css +41 -0
  432. package/src/components/Title/Title.mdx +4 -8
  433. package/src/components/Title/Title.tsx +4 -4
  434. package/src/components/Trust/Trust.mdx +1 -7
  435. package/src/components/Trust/Trust.test.tsx +1 -1
  436. package/src/components/Trust/Trust.tsx +4 -5
  437. package/src/components/Trust/constants.ts +3 -3
  438. package/src/components/VisuallyHidden/VisuallyHidden.mdx +0 -4
  439. package/src/components/index.tsx +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/NumberField/NumberField.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport {\n ChangeEvent,\n CompositionEvent,\n Ref,\n RefAttributes,\n forwardRef,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport { DOMProps } from \"../../types/dom\";\nimport { UseLabelProps, useLabel, useValidationClasses } from \"../../hooks\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { spaceDelimitedList } from \"../../utils/spaceDelimitedList\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\nimport { Validation } from \"../../types\";\n\nexport type NumberFieldElementType = HTMLInputElement;\n\nexport interface NumberFieldProps\n extends DOMProps,\n Validation,\n UseLabelProps,\n RefAttributes<NumberFieldElementType> {\n id?: string;\n /** Custom class name for setting specific CSS */\n className?: string;\n /** The smallest value allowed for the input. */\n minValue?: number;\n /** The largest value allowed for the input. */\n maxValue?: number;\n /** The amount that the input value changes with each increment or decrement \"tick\". */\n step?: number; // ??\n /** The default value (uncontrolled). */\n defaultValue?: number;\n /** Handler that is called when the value changes. */\n onChange?: (event: ChangeEvent<NumberFieldElementType>) => void;\n /** Temporary text that occupies the text input when it is empty. */\n placeholder?: string;\n /** Whether user input is required on the input before form submission. */\n isRequired?: boolean;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input can be selected but not changed by the user. */\n isReadOnly?: boolean;\n /** An error message for the field. */\n errorMessage?: string;\n /** Identifies the element (or elements) that describes the object. */\n \"aria-describedby\"?: string | undefined;\n}\n\nexport type NumberFieldRef = Ref<NumberFieldElementType>;\n\nexport const NumberField: ForwardedRefComponent<\n NumberFieldProps,\n NumberFieldElementType\n> = forwardRef((props: NumberFieldProps, ref: NumberFieldRef) => {\n const {\n id,\n isDisabled,\n isRequired,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n className,\n errorMessage,\n validationState,\n isInvalid,\n isReadOnly,\n minValue,\n maxValue,\n step,\n placeholder,\n defaultValue = 0,\n onChange,\n } = props;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [value, setValue] = useState<number>(defaultValue);\n const valueWithoutLeadingZero = value.toString().replace(/^0+/, \"\");\n const optional = typeof isRequired === \"boolean\" && !isRequired;\n const required = typeof isRequired === \"boolean\" && isRequired;\n\n const { labelProps, fieldProps } = useLabel({\n id,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const containerClasses = classNames(\"mobius/NumberField\", className, {\n \"--is-optional\": optional,\n });\n\n const validationClasses = useValidationClasses({\n validationState,\n isInvalid,\n });\n\n const inputClasses = classNames(\n \"mobius/NumberFieldInput\",\n className,\n {\n \"--is-required\": required,\n \"--is-optional\": optional,\n \"--is-disabled\": isDisabled,\n },\n validationClasses,\n );\n\n const labelClasses = classNames(\n \"mobius/NumberFieldLabel\",\n {\n \"--is-disabled\": isDisabled,\n },\n validationClasses,\n );\n\n const errorMessageId = useId();\n const shouldErrorMessageShow = errorMessage ? errorMessageId : undefined;\n const describedBy = spaceDelimitedList([\n shouldErrorMessageShow,\n ariaDescribedBy,\n ]);\n\n const handleChange = (event: ChangeEvent<NumberFieldElementType>) => {\n // Only allow change between min and max values\n const enteredValue = Number(event.target.value);\n if (\n (minValue && enteredValue < minValue) ||\n (maxValue && enteredValue > maxValue)\n ) {\n return;\n }\n setValue(enteredValue);\n if (onChange) {\n onChange(event);\n }\n };\n\n // Only allow numeric input\n const handleBeforeInput = (\n event: CompositionEvent<NumberFieldElementType>,\n ) => {\n const allowedChars = /[\\d]/;\n\n if (event.data && !allowedChars.test(event.data)) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return (\n <div className={containerClasses}>\n {label && (\n <Label {...labelProps} className={labelClasses}>\n {label}\n </Label>\n )}\n <div className=\"mobius/NumberFieldInputWrapper\">\n <input\n {...fieldProps}\n ref={inputRef || ref}\n className={inputClasses}\n type=\"number\"\n onChange={handleChange}\n onBeforeInput={handleBeforeInput}\n max={maxValue}\n min={minValue}\n step={step}\n value={valueWithoutLeadingZero}\n placeholder={placeholder}\n required={required}\n aria-describedby={describedBy}\n aria-errormessage={shouldErrorMessageShow}\n aria-invalid={isInvalid}\n readOnly={isReadOnly}\n disabled={isDisabled}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n />\n </div>\n <ErrorMessage id={errorMessageId} errorMessage={errorMessage} />\n </div>\n );\n});\n"],"names":["classNames","forwardRef","useId","useRef","useState","useLabel","useValidationClasses","spaceDelimitedList","ErrorMessage","Label","NumberField","props","ref","id","isDisabled","isRequired","label","ariaLabel","ariaLabelledBy","ariaDescribedBy","className","errorMessage","validationState","isInvalid","isReadOnly","minValue","maxValue","step","placeholder","defaultValue","onChange","inputRef","value","setValue","valueWithoutLeadingZero","toString","replace","optional","required","labelProps","fieldProps","containerClasses","validationClasses","inputClasses","labelClasses","errorMessageId","shouldErrorMessageShow","undefined","describedBy","handleChange","event","enteredValue","Number","target","handleBeforeInput","allowedChars","data","test","preventDefault","stopPropagation","div","input","type","onBeforeInput","max","min","aria-describedby","aria-errormessage","aria-invalid","readOnly","disabled","autoComplete","autoCorrect","spellCheck"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/NumberField/NumberField.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport {\n ChangeEvent,\n CompositionEvent,\n Ref,\n RefAttributes,\n forwardRef,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport { DOMProps } from \"../../types/dom\";\nimport { UseLabelProps, useLabel, useValidationClasses } from \"../../hooks\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { spaceDelimitedList } from \"../../utils/spaceDelimitedList\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\nimport { Validation } from \"../../types\";\nimport { Stack } from \"../Stack\";\n\nexport type NumberFieldElementType = HTMLInputElement;\n\nexport interface NumberFieldProps\n extends DOMProps,\n Validation,\n UseLabelProps,\n RefAttributes<NumberFieldElementType> {\n id?: string;\n /** Custom class name for setting specific CSS */\n className?: string;\n /** The smallest value allowed for the input. */\n minValue?: number;\n /** The largest value allowed for the input. */\n maxValue?: number;\n /** The amount that the input value changes with each increment or decrement \"tick\". */\n step?: number; // ??\n /** The default value (uncontrolled). */\n defaultValue?: number;\n /** Handler that is called when the value changes. */\n onChange?: (event: ChangeEvent<NumberFieldElementType>) => void;\n /** Temporary text that occupies the text input when it is empty. */\n placeholder?: string;\n /** Whether user input is required on the input before form submission. */\n isRequired?: boolean;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input can be selected but not changed by the user. */\n isReadOnly?: boolean;\n /** An error message for the field. */\n errorMessage?: string;\n /** Identifies the element (or elements) that describes the object. */\n \"aria-describedby\"?: string | undefined;\n}\n\nexport type NumberFieldRef = Ref<NumberFieldElementType>;\n\nexport const NumberField: ForwardedRefComponent<\n NumberFieldProps,\n NumberFieldElementType\n> = forwardRef((props: NumberFieldProps, ref: NumberFieldRef) => {\n const {\n id,\n isDisabled,\n isRequired,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n className,\n errorMessage,\n validationState,\n isInvalid,\n isReadOnly,\n minValue,\n maxValue,\n step,\n placeholder,\n defaultValue = 0,\n onChange,\n } = props;\n const inputRef = useRef<HTMLInputElement | null>(null);\n const [value, setValue] = useState<number>(defaultValue);\n const valueWithoutLeadingZero = value.toString().replace(/^0+/, \"\");\n const optional = typeof isRequired === \"boolean\" && !isRequired;\n const required = typeof isRequired === \"boolean\" && isRequired;\n\n const { labelProps, fieldProps } = useLabel({\n id,\n label,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n });\n\n const containerClasses = classNames(\"mobius-number-field\", className, {\n \"--is-optional\": optional,\n });\n\n const validationClasses = useValidationClasses({\n validationState,\n isInvalid,\n });\n\n const inputClasses = classNames(\n \"mobius-number-field__input\",\n className,\n {\n \"--is-required\": required,\n \"--is-optional\": optional,\n \"--is-disabled\": isDisabled,\n },\n validationClasses,\n );\n\n const labelClasses = classNames(\n \"mobius-number-field__label\",\n {\n \"--is-disabled\": isDisabled,\n },\n validationClasses,\n );\n\n const errorMessageId = useId();\n const shouldErrorMessageShow = errorMessage ? errorMessageId : undefined;\n const describedBy = spaceDelimitedList([\n shouldErrorMessageShow,\n ariaDescribedBy,\n ]);\n\n const handleChange = (event: ChangeEvent<NumberFieldElementType>) => {\n // Only allow change between min and max values\n const enteredValue = Number(event.target.value);\n if (\n (minValue && enteredValue < minValue) ||\n (maxValue && enteredValue > maxValue)\n ) {\n return;\n }\n setValue(enteredValue);\n if (onChange) {\n onChange(event);\n }\n };\n\n // Only allow numeric input\n const handleBeforeInput = (\n event: CompositionEvent<NumberFieldElementType>,\n ) => {\n const allowedChars = /[\\d]/;\n\n if (event.data && !allowedChars.test(event.data)) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return (\n <Stack gap=\"xs\" className={containerClasses}>\n {label && (\n <Label {...labelProps} className={labelClasses}>\n {label}\n </Label>\n )}\n <div className=\"mobius-number-field__input-wrapper\">\n <input\n {...fieldProps}\n ref={inputRef || ref}\n className={inputClasses}\n type=\"number\"\n onChange={handleChange}\n onBeforeInput={handleBeforeInput}\n max={maxValue}\n min={minValue}\n step={step}\n value={valueWithoutLeadingZero}\n placeholder={placeholder}\n required={required}\n aria-describedby={describedBy}\n aria-errormessage={shouldErrorMessageShow}\n aria-invalid={isInvalid}\n readOnly={isReadOnly}\n disabled={isDisabled}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck=\"false\"\n />\n </div>\n <ErrorMessage id={errorMessageId} errorMessage={errorMessage} />\n </Stack>\n );\n});\n"],"names":["classNames","forwardRef","useId","useRef","useState","useLabel","useValidationClasses","spaceDelimitedList","ErrorMessage","Label","Stack","NumberField","props","ref","id","isDisabled","isRequired","label","ariaLabel","ariaLabelledBy","ariaDescribedBy","className","errorMessage","validationState","isInvalid","isReadOnly","minValue","maxValue","step","placeholder","defaultValue","onChange","inputRef","value","setValue","valueWithoutLeadingZero","toString","replace","optional","required","labelProps","fieldProps","containerClasses","validationClasses","inputClasses","labelClasses","errorMessageId","shouldErrorMessageShow","undefined","describedBy","handleChange","event","enteredValue","Number","target","handleBeforeInput","allowedChars","data","test","preventDefault","stopPropagation","gap","div","input","type","onBeforeInput","max","min","aria-describedby","aria-errormessage","aria-invalid","readOnly","disabled","autoComplete","autoCorrect","spellCheck"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { ShowHideButton } from "./ShowHideButton";
8
8
  export const PasswordField = /*#__PURE__*/ forwardRef(({ className, ...props }, ref)=>{
9
9
  const [show, setShow] = useState(false);
10
10
  const type = show ? "text" : "password";
11
- const classes = classNames("mobius/PasswordField", className);
11
+ const classes = classNames("mobius-password-field", className);
12
12
  const localRef = useRef(null);
13
13
  const handleShowHideButtonClick = ()=>{
14
14
  var _localRef_current;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PasswordField/PasswordField.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport { forwardRef, useState, useRef } from \"react\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport {\n TextField,\n type TextFieldProps,\n type TextFieldRef,\n type TextFieldElementType,\n} from \"../TextField\";\nimport { ShowHideButton } from \"./ShowHideButton\";\n\nexport interface PasswordFieldProps extends TextFieldProps {}\n\nexport type PasswordFieldRef = TextFieldRef;\n\nexport const PasswordField = forwardRef(\n ({ className, ...props }: PasswordFieldProps, ref: TextFieldRef) => {\n const [show, setShow] = useState(false);\n const type = show ? \"text\" : \"password\";\n const classes = classNames(\"mobius/PasswordField\", className);\n const localRef = useRef<TextFieldElementType>(null);\n\n const handleShowHideButtonClick = () => {\n setShow(oldShow => !oldShow);\n localRef.current?.focus();\n };\n\n return (\n <TextField\n ref={mergeRefs([localRef, ref])}\n className={classes}\n {...props}\n type={type}\n suffixInside={\n <ShowHideButton onClick={handleShowHideButtonClick} show={show} />\n }\n />\n );\n },\n);\n"],"names":["classNames","forwardRef","useState","useRef","mergeRefs","TextField","ShowHideButton","PasswordField","className","props","ref","show","setShow","type","classes","localRef","handleShowHideButtonClick","oldShow","current","focus","suffixInside","onClick"],"mappings":"AAAA;;AAEA,OAAOA,gBAAgB,oBAAoB;AAC3C,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,QAAQ;AACrD,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SACEC,SAAS,QAIJ,eAAe;AACtB,SAASC,cAAc,QAAQ,mBAAmB;AAMlD,OAAO,MAAMC,8BAAgBN,WAC3B,CAAC,EAAEO,SAAS,EAAE,GAAGC,OAA2B,EAAEC;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGV,SAAS;IACjC,MAAMW,OAAOF,OAAO,SAAS;IAC7B,MAAMG,UAAUd,WAAW,wBAAwBQ;IACnD,MAAMO,WAAWZ,OAA6B;IAE9C,MAAMa,4BAA4B;YAEhCD;QADAH,QAAQK,CAAAA,UAAW,CAACA;SACpBF,oBAAAA,SAASG,OAAO,cAAhBH,wCAAAA,kBAAkBI,KAAK;IACzB;IAEA,qBACE,KAACd;QACCK,KAAKN,UAAU;YAACW;YAAUL;SAAI;QAC9BF,WAAWM;QACV,GAAGL,KAAK;QACTI,MAAMA;QACNO,4BACE,KAACd;YAAee,SAASL;YAA2BL,MAAMA;;;AAIlE,GACA"}
1
+ {"version":3,"sources":["../../../../src/components/PasswordField/PasswordField.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport { forwardRef, useState, useRef } from \"react\";\nimport { mergeRefs } from \"../../utils/mergeRefs\";\nimport {\n TextField,\n type TextFieldProps,\n type TextFieldRef,\n type TextFieldElementType,\n} from \"../TextField\";\nimport { ShowHideButton } from \"./ShowHideButton\";\n\nexport interface PasswordFieldProps extends TextFieldProps {}\n\nexport type PasswordFieldRef = TextFieldRef;\n\nexport const PasswordField = forwardRef(\n ({ className, ...props }: PasswordFieldProps, ref: TextFieldRef) => {\n const [show, setShow] = useState(false);\n const type = show ? \"text\" : \"password\";\n const classes = classNames(\"mobius-password-field\", className);\n const localRef = useRef<TextFieldElementType>(null);\n\n const handleShowHideButtonClick = () => {\n setShow(oldShow => !oldShow);\n localRef.current?.focus();\n };\n\n return (\n <TextField\n ref={mergeRefs([localRef, ref])}\n className={classes}\n {...props}\n type={type}\n suffixInside={\n <ShowHideButton onClick={handleShowHideButtonClick} show={show} />\n }\n />\n );\n },\n);\n"],"names":["classNames","forwardRef","useState","useRef","mergeRefs","TextField","ShowHideButton","PasswordField","className","props","ref","show","setShow","type","classes","localRef","handleShowHideButtonClick","oldShow","current","focus","suffixInside","onClick"],"mappings":"AAAA;;AAEA,OAAOA,gBAAgB,oBAAoB;AAC3C,SAASC,UAAU,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,QAAQ;AACrD,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SACEC,SAAS,QAIJ,eAAe;AACtB,SAASC,cAAc,QAAQ,mBAAmB;AAMlD,OAAO,MAAMC,8BAAgBN,WAC3B,CAAC,EAAEO,SAAS,EAAE,GAAGC,OAA2B,EAAEC;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGV,SAAS;IACjC,MAAMW,OAAOF,OAAO,SAAS;IAC7B,MAAMG,UAAUd,WAAW,yBAAyBQ;IACpD,MAAMO,WAAWZ,OAA6B;IAE9C,MAAMa,4BAA4B;YAEhCD;QADAH,QAAQK,CAAAA,UAAW,CAACA;SACpBF,oBAAAA,SAASG,OAAO,cAAhBH,wCAAAA,kBAAkBI,KAAK;IACzB;IAEA,qBACE,KAACd;QACCK,KAAKN,UAAU;YAACW;YAAUL;SAAI;QAC9BF,WAAWM;QACV,GAAGL,KAAK;QACTI,MAAMA;QACNO,4BACE,KAACd;YAAee,SAASL;YAA2BL,MAAMA;;;AAIlE,GACA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export const ShowHideButton = ({ show = false, onClick })=>/*#__PURE__*/ _jsx("button", {
3
- className: "mobius/PasswordFieldShowButton",
3
+ className: "mobius-password-field__show-button",
4
4
  type: "button",
5
5
  onClick: (e)=>{
6
6
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PasswordField/ShowHideButton.tsx"],"sourcesContent":["export interface ShowHideButtonProps {\n show?: boolean;\n onClick: () => void;\n}\n\nexport const ShowHideButton = ({\n show = false,\n onClick,\n}: ShowHideButtonProps) => (\n <button\n className=\"mobius/PasswordFieldShowButton\"\n type=\"button\"\n onClick={e => {\n e.preventDefault();\n onClick();\n }}\n aria-label={`${show ? \"Hide\" : \"Show\"} password`}\n data-testid=\"show-hide-button\"\n >\n {show ? \"hide\" : \"show\"}\n </button>\n);\n"],"names":["ShowHideButton","show","onClick","button","className","type","e","preventDefault","aria-label","data-testid"],"mappings":";AAKA,OAAO,MAAMA,iBAAiB,CAAC,EAC7BC,OAAO,KAAK,EACZC,OAAO,EACa,iBACpB,KAACC;QACCC,WAAU;QACVC,MAAK;QACLH,SAASI,CAAAA;YACPA,EAAEC,cAAc;YAChBL;QACF;QACAM,cAAY,CAAC,EAAEP,OAAO,SAAS,OAAO,SAAS,CAAC;QAChDQ,eAAY;kBAEXR,OAAO,SAAS;OAEnB"}
1
+ {"version":3,"sources":["../../../../src/components/PasswordField/ShowHideButton.tsx"],"sourcesContent":["export interface ShowHideButtonProps {\n show?: boolean;\n onClick: () => void;\n}\n\nexport const ShowHideButton = ({\n show = false,\n onClick,\n}: ShowHideButtonProps) => (\n <button\n className=\"mobius-password-field__show-button\"\n type=\"button\"\n onClick={e => {\n e.preventDefault();\n onClick();\n }}\n aria-label={`${show ? \"Hide\" : \"Show\"} password`}\n data-testid=\"show-hide-button\"\n >\n {show ? \"hide\" : \"show\"}\n </button>\n);\n"],"names":["ShowHideButton","show","onClick","button","className","type","e","preventDefault","aria-label","data-testid"],"mappings":";AAKA,OAAO,MAAMA,iBAAiB,CAAC,EAC7BC,OAAO,KAAK,EACZC,OAAO,EACa,iBACpB,KAACC;QACCC,WAAU;QACVC,MAAK;QACLH,SAASI,CAAAA;YACPA,EAAEC,cAAc;YAChBL;QACF;QACAM,cAAY,CAAC,EAAEP,OAAO,SAAS,OAAO,SAAS,CAAC;QAChDQ,eAAY;kBAEXR,OAAO,SAAS;OAEnB"}
@@ -39,7 +39,7 @@ export const Popover = (props)=>{
39
39
  const { getReferenceProps, getFloatingProps } = useInteractions([
40
40
  dismiss
41
41
  ]);
42
- const containerClasses = classNames("mobius", "mobius/PopoverContainer", className);
42
+ const containerClasses = classNames("mobius", "mobius-popover__container", className);
43
43
  const toggleVisibility = ()=>{
44
44
  if (isOpen) {
45
45
  setIsOpen(false);
@@ -51,7 +51,7 @@ export const Popover = (props)=>{
51
51
  };
52
52
  const triggerComponent = /*#__PURE__*/ cloneElement(trigger, {
53
53
  ref: refs.setReference,
54
- className: classNames(trigger.props.className, "mobius/PopoverToggle"),
54
+ className: classNames(trigger.props.className, "mobius-popover__toggle"),
55
55
  onClick: toggleVisibility,
56
56
  ...getReferenceProps()
57
57
  });
@@ -72,25 +72,25 @@ export const Popover = (props)=>{
72
72
  ...getFloatingProps(),
73
73
  children: [
74
74
  /*#__PURE__*/ _jsxs("div", {
75
- className: "mobius/Popover",
75
+ className: "mobius-popover",
76
76
  children: [
77
77
  /*#__PURE__*/ _jsx("header", {
78
- className: "mobius/PopoverHeader",
78
+ className: "mobius-popover__header",
79
79
  children: /*#__PURE__*/ _jsx(Button, {
80
80
  type: "button",
81
- className: "mobius/PopoverCloseButton",
81
+ className: "mobius-popover__close-button",
82
82
  onClick: toggleVisibility,
83
83
  "aria-label": "Close",
84
84
  variant: "ghost",
85
85
  children: /*#__PURE__*/ _jsx(Icon, {
86
86
  icon: cross,
87
87
  size: "md",
88
- className: "mobius/PopoverCloseIcon"
88
+ className: "mobius-popover__close-icon"
89
89
  })
90
90
  })
91
91
  }),
92
92
  /*#__PURE__*/ _jsx("div", {
93
- className: "mobius/PopoverBody",
93
+ className: "mobius-popover__body",
94
94
  children: children
95
95
  })
96
96
  ]
@@ -99,7 +99,7 @@ export const Popover = (props)=>{
99
99
  ref: arrowRef,
100
100
  context: context,
101
101
  width: 20,
102
- className: "mobius/PopoverArrowIcon"
102
+ className: "mobius-popover__arrow-icon"
103
103
  })
104
104
  ]
105
105
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n FloatingArrow,\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { cross } from \"@simplybusiness/icons\";\nimport classNames from \"classnames\";\nimport {\n ReactElement,\n ReactNode,\n Ref,\n RefAttributes,\n cloneElement,\n useRef,\n useState,\n} from \"react\";\nimport { useWindowEvent } from \"../../hooks\";\nimport { DOMProps } from \"../../types\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\n\nexport type PopoverElementType = HTMLDivElement;\n\nexport interface PopoverProps\n extends DOMProps,\n RefAttributes<PopoverElementType> {\n children?: ReactNode;\n trigger: ReactElement;\n /** Callback that fires each time the accordion is opened */\n onOpen?: () => void;\n /** Callback that fires each time the accordion is closed */\n onClose?: () => void;\n /** Custom class name for setting specific CSS */\n className?: string;\n}\n\nexport type PopoverRef = Ref<PopoverElementType>;\n\nconst OFFSET_FROM_CONTENT_DEFAULT = 10;\n\nexport const Popover = (props: PopoverProps) => {\n const { trigger, children, onOpen, onClose, className } = props;\n const arrowRef = useRef(null);\n const [isOpen, setIsOpen] = useState(false);\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n arrow({\n element: arrowRef,\n }),\n offset(OFFSET_FROM_CONTENT_DEFAULT),\n shift(),\n flip(),\n ],\n });\n const dismiss = useDismiss(context, {\n bubbles: true,\n outsidePress: (event: MouseEvent) => {\n // Prevent 'onClose' from firing when clicking the toggle to close\n const toggle = refs.reference.current as HTMLElement;\n const isToggleClick = !toggle?.contains(event.target as HTMLElement);\n if (isToggleClick) {\n onClose?.();\n }\n return true;\n },\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n const containerClasses = classNames(\n \"mobius\",\n \"mobius/PopoverContainer\",\n className,\n );\n\n const toggleVisibility = () => {\n if (isOpen) {\n setIsOpen(false);\n onClose?.();\n return;\n }\n\n setIsOpen(true);\n onOpen?.();\n };\n\n const triggerComponent = cloneElement(trigger, {\n ref: refs.setReference,\n className: classNames(trigger.props.className, \"mobius/PopoverToggle\"),\n onClick: toggleVisibility,\n ...getReferenceProps(),\n });\n\n useWindowEvent(\"keydown\", e => {\n if (e.key === \"Escape\") {\n onClose?.();\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n return (\n <>\n {triggerComponent}\n {isOpen && (\n <div\n className={containerClasses}\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div className=\"mobius/Popover\">\n <header className=\"mobius/PopoverHeader\">\n <Button\n type=\"button\"\n className=\"mobius/PopoverCloseButton\"\n onClick={toggleVisibility}\n aria-label=\"Close\"\n variant=\"ghost\"\n >\n <Icon\n icon={cross}\n size=\"md\"\n className=\"mobius/PopoverCloseIcon\"\n />\n </Button>\n </header>\n <div className=\"mobius/PopoverBody\">{children}</div>\n </div>\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={20}\n className=\"mobius/PopoverArrowIcon\"\n />\n </div>\n )}\n </>\n );\n};\n"],"names":["FloatingArrow","arrow","autoUpdate","flip","offset","shift","useDismiss","useFloating","useInteractions","cross","classNames","cloneElement","useRef","useState","useWindowEvent","Button","Icon","OFFSET_FROM_CONTENT_DEFAULT","Popover","props","trigger","children","onOpen","onClose","className","arrowRef","isOpen","setIsOpen","refs","floatingStyles","context","open","onOpenChange","whileElementsMounted","middleware","element","dismiss","bubbles","outsidePress","event","toggle","reference","current","isToggleClick","contains","target","getReferenceProps","getFloatingProps","containerClasses","toggleVisibility","triggerComponent","ref","setReference","onClick","e","key","preventDefault","stopPropagation","div","setFloating","style","header","type","aria-label","variant","icon","size","width"],"mappings":";AAAA,SACEA,aAAa,EACbC,KAAK,EACLC,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLC,UAAU,EACVC,WAAW,EACXC,eAAe,QACV,qBAAqB;AAC5B,SAASC,KAAK,QAAQ,wBAAwB;AAC9C,OAAOC,gBAAgB,aAAa;AACpC,SAKEC,YAAY,EACZC,MAAM,EACNC,QAAQ,QACH,QAAQ;AACf,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,MAAM,QAAQ,YAAY;AACnC,SAASC,IAAI,QAAQ,UAAU;AAmB/B,MAAMC,8BAA8B;AAEpC,OAAO,MAAMC,UAAU,CAACC;IACtB,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGL;IAC1D,MAAMM,WAAWb,OAAO;IACxB,MAAM,CAACc,QAAQC,UAAU,GAAGd,SAAS;IACrC,MAAM,EAAEe,IAAI,EAAEC,cAAc,EAAEC,OAAO,EAAE,GAAGvB,YAAY;QACpDwB,MAAML;QACNM,cAAcL;QACdM,sBAAsB/B;QACtBgC,YAAY;YACVjC,MAAM;gBACJkC,SAASV;YACX;YACArB,OAAOa;YACPZ;YACAF;SACD;IACH;IACA,MAAMiC,UAAU9B,WAAWwB,SAAS;QAClCO,SAAS;QACTC,cAAc,CAACC;YACb,kEAAkE;YAClE,MAAMC,SAASZ,KAAKa,SAAS,CAACC,OAAO;YACrC,MAAMC,gBAAgB,EAACH,mBAAAA,6BAAAA,OAAQI,QAAQ,CAACL,MAAMM,MAAM;YACpD,IAAIF,eAAe;gBACjBpB,oBAAAA,8BAAAA;YACF;YACA,OAAO;QACT;IACF;IACA,MAAM,EAAEuB,iBAAiB,EAAEC,gBAAgB,EAAE,GAAGvC,gBAAgB;QAAC4B;KAAQ;IAEzE,MAAMY,mBAAmBtC,WACvB,UACA,2BACAc;IAGF,MAAMyB,mBAAmB;QACvB,IAAIvB,QAAQ;YACVC,UAAU;YACVJ,oBAAAA,8BAAAA;YACA;QACF;QAEAI,UAAU;QACVL,mBAAAA,6BAAAA;IACF;IAEA,MAAM4B,iCAAmBvC,aAAaS,SAAS;QAC7C+B,KAAKvB,KAAKwB,YAAY;QACtB5B,WAAWd,WAAWU,QAAQD,KAAK,CAACK,SAAS,EAAE;QAC/C6B,SAASJ;QACT,GAAGH,mBAAmB;IACxB;IAEAhC,eAAe,WAAWwC,CAAAA;QACxB,IAAIA,EAAEC,GAAG,KAAK,UAAU;YACtBhC,oBAAAA,8BAAAA;YACA+B,EAAEE,cAAc;YAChBF,EAAEG,eAAe;QACnB;IACF;IAEA,qBACE;;YACGP;YACAxB,wBACC,MAACgC;gBACClC,WAAWwB;gBACXG,KAAKvB,KAAK+B,WAAW;gBACrBC,OAAO/B;gBACN,GAAGkB,kBAAkB;;kCAEtB,MAACW;wBAAIlC,WAAU;;0CACb,KAACqC;gCAAOrC,WAAU;0CAChB,cAAA,KAACT;oCACC+C,MAAK;oCACLtC,WAAU;oCACV6B,SAASJ;oCACTc,cAAW;oCACXC,SAAQ;8CAER,cAAA,KAAChD;wCACCiD,MAAMxD;wCACNyD,MAAK;wCACL1C,WAAU;;;;0CAIhB,KAACkC;gCAAIlC,WAAU;0CAAsBH;;;;kCAEvC,KAACrB;wBACCmD,KAAK1B;wBACLK,SAASA;wBACTqC,OAAO;wBACP3C,WAAU;;;;;;AAMtB,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n FloatingArrow,\n arrow,\n autoUpdate,\n flip,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n} from \"@floating-ui/react\";\nimport { cross } from \"@simplybusiness/icons\";\nimport classNames from \"classnames\";\nimport {\n ReactElement,\n ReactNode,\n Ref,\n RefAttributes,\n cloneElement,\n useRef,\n useState,\n} from \"react\";\nimport { useWindowEvent } from \"../../hooks\";\nimport { DOMProps } from \"../../types\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\n\nexport type PopoverElementType = HTMLDivElement;\n\nexport interface PopoverProps\n extends DOMProps,\n RefAttributes<PopoverElementType> {\n children?: ReactNode;\n trigger: ReactElement;\n /** Callback that fires each time the accordion is opened */\n onOpen?: () => void;\n /** Callback that fires each time the accordion is closed */\n onClose?: () => void;\n /** Custom class name for setting specific CSS */\n className?: string;\n}\n\nexport type PopoverRef = Ref<PopoverElementType>;\n\nconst OFFSET_FROM_CONTENT_DEFAULT = 10;\n\nexport const Popover = (props: PopoverProps) => {\n const { trigger, children, onOpen, onClose, className } = props;\n const arrowRef = useRef(null);\n const [isOpen, setIsOpen] = useState(false);\n const { refs, floatingStyles, context } = useFloating({\n open: isOpen,\n onOpenChange: setIsOpen,\n whileElementsMounted: autoUpdate,\n middleware: [\n arrow({\n element: arrowRef,\n }),\n offset(OFFSET_FROM_CONTENT_DEFAULT),\n shift(),\n flip(),\n ],\n });\n const dismiss = useDismiss(context, {\n bubbles: true,\n outsidePress: (event: MouseEvent) => {\n // Prevent 'onClose' from firing when clicking the toggle to close\n const toggle = refs.reference.current as HTMLElement;\n const isToggleClick = !toggle?.contains(event.target as HTMLElement);\n if (isToggleClick) {\n onClose?.();\n }\n return true;\n },\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n const containerClasses = classNames(\n \"mobius\",\n \"mobius-popover__container\",\n className,\n );\n\n const toggleVisibility = () => {\n if (isOpen) {\n setIsOpen(false);\n onClose?.();\n return;\n }\n\n setIsOpen(true);\n onOpen?.();\n };\n\n const triggerComponent = cloneElement(trigger, {\n ref: refs.setReference,\n className: classNames(trigger.props.className, \"mobius-popover__toggle\"),\n onClick: toggleVisibility,\n ...getReferenceProps(),\n });\n\n useWindowEvent(\"keydown\", e => {\n if (e.key === \"Escape\") {\n onClose?.();\n e.preventDefault();\n e.stopPropagation();\n }\n });\n\n return (\n <>\n {triggerComponent}\n {isOpen && (\n <div\n className={containerClasses}\n ref={refs.setFloating}\n style={floatingStyles}\n {...getFloatingProps()}\n >\n <div className=\"mobius-popover\">\n <header className=\"mobius-popover__header\">\n <Button\n type=\"button\"\n className=\"mobius-popover__close-button\"\n onClick={toggleVisibility}\n aria-label=\"Close\"\n variant=\"ghost\"\n >\n <Icon\n icon={cross}\n size=\"md\"\n className=\"mobius-popover__close-icon\"\n />\n </Button>\n </header>\n <div className=\"mobius-popover__body\">{children}</div>\n </div>\n <FloatingArrow\n ref={arrowRef}\n context={context}\n width={20}\n className=\"mobius-popover__arrow-icon\"\n />\n </div>\n )}\n </>\n );\n};\n"],"names":["FloatingArrow","arrow","autoUpdate","flip","offset","shift","useDismiss","useFloating","useInteractions","cross","classNames","cloneElement","useRef","useState","useWindowEvent","Button","Icon","OFFSET_FROM_CONTENT_DEFAULT","Popover","props","trigger","children","onOpen","onClose","className","arrowRef","isOpen","setIsOpen","refs","floatingStyles","context","open","onOpenChange","whileElementsMounted","middleware","element","dismiss","bubbles","outsidePress","event","toggle","reference","current","isToggleClick","contains","target","getReferenceProps","getFloatingProps","containerClasses","toggleVisibility","triggerComponent","ref","setReference","onClick","e","key","preventDefault","stopPropagation","div","setFloating","style","header","type","aria-label","variant","icon","size","width"],"mappings":";AAAA,SACEA,aAAa,EACbC,KAAK,EACLC,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,KAAK,EACLC,UAAU,EACVC,WAAW,EACXC,eAAe,QACV,qBAAqB;AAC5B,SAASC,KAAK,QAAQ,wBAAwB;AAC9C,OAAOC,gBAAgB,aAAa;AACpC,SAKEC,YAAY,EACZC,MAAM,EACNC,QAAQ,QACH,QAAQ;AACf,SAASC,cAAc,QAAQ,cAAc;AAE7C,SAASC,MAAM,QAAQ,YAAY;AACnC,SAASC,IAAI,QAAQ,UAAU;AAmB/B,MAAMC,8BAA8B;AAEpC,OAAO,MAAMC,UAAU,CAACC;IACtB,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGL;IAC1D,MAAMM,WAAWb,OAAO;IACxB,MAAM,CAACc,QAAQC,UAAU,GAAGd,SAAS;IACrC,MAAM,EAAEe,IAAI,EAAEC,cAAc,EAAEC,OAAO,EAAE,GAAGvB,YAAY;QACpDwB,MAAML;QACNM,cAAcL;QACdM,sBAAsB/B;QACtBgC,YAAY;YACVjC,MAAM;gBACJkC,SAASV;YACX;YACArB,OAAOa;YACPZ;YACAF;SACD;IACH;IACA,MAAMiC,UAAU9B,WAAWwB,SAAS;QAClCO,SAAS;QACTC,cAAc,CAACC;YACb,kEAAkE;YAClE,MAAMC,SAASZ,KAAKa,SAAS,CAACC,OAAO;YACrC,MAAMC,gBAAgB,EAACH,mBAAAA,6BAAAA,OAAQI,QAAQ,CAACL,MAAMM,MAAM;YACpD,IAAIF,eAAe;gBACjBpB,oBAAAA,8BAAAA;YACF;YACA,OAAO;QACT;IACF;IACA,MAAM,EAAEuB,iBAAiB,EAAEC,gBAAgB,EAAE,GAAGvC,gBAAgB;QAAC4B;KAAQ;IAEzE,MAAMY,mBAAmBtC,WACvB,UACA,6BACAc;IAGF,MAAMyB,mBAAmB;QACvB,IAAIvB,QAAQ;YACVC,UAAU;YACVJ,oBAAAA,8BAAAA;YACA;QACF;QAEAI,UAAU;QACVL,mBAAAA,6BAAAA;IACF;IAEA,MAAM4B,iCAAmBvC,aAAaS,SAAS;QAC7C+B,KAAKvB,KAAKwB,YAAY;QACtB5B,WAAWd,WAAWU,QAAQD,KAAK,CAACK,SAAS,EAAE;QAC/C6B,SAASJ;QACT,GAAGH,mBAAmB;IACxB;IAEAhC,eAAe,WAAWwC,CAAAA;QACxB,IAAIA,EAAEC,GAAG,KAAK,UAAU;YACtBhC,oBAAAA,8BAAAA;YACA+B,EAAEE,cAAc;YAChBF,EAAEG,eAAe;QACnB;IACF;IAEA,qBACE;;YACGP;YACAxB,wBACC,MAACgC;gBACClC,WAAWwB;gBACXG,KAAKvB,KAAK+B,WAAW;gBACrBC,OAAO/B;gBACN,GAAGkB,kBAAkB;;kCAEtB,MAACW;wBAAIlC,WAAU;;0CACb,KAACqC;gCAAOrC,WAAU;0CAChB,cAAA,KAACT;oCACC+C,MAAK;oCACLtC,WAAU;oCACV6B,SAASJ;oCACTc,cAAW;oCACXC,SAAQ;8CAER,cAAA,KAAChD;wCACCiD,MAAMxD;wCACNyD,MAAK;wCACL1C,WAAU;;;;0CAIhB,KAACkC;gCAAIlC,WAAU;0CAAwBH;;;;kCAEzC,KAACrB;wBACCmD,KAAK1B;wBACLK,SAASA;wBACTqC,OAAO;wBACP3C,WAAU;;;;;;AAMtB,EAAE"}
@@ -23,7 +23,7 @@ const getLabelComponent = (label, progressLabelId, showLabel)=>{
23
23
  if (showLabel) {
24
24
  return /*#__PURE__*/ _jsx(Label, {
25
25
  id: progressLabelId,
26
- className: "mobius/ProgressLabel",
26
+ className: "mobius-progress__label",
27
27
  elementType: "span",
28
28
  children: label
29
29
  });
@@ -31,7 +31,7 @@ const getLabelComponent = (label, progressLabelId, showLabel)=>{
31
31
  return /*#__PURE__*/ _jsx(VisuallyHidden, {
32
32
  children: /*#__PURE__*/ _jsx(Label, {
33
33
  id: progressLabelId,
34
- className: "mobius/ProgressLabel",
34
+ className: "mobius-progress__label",
35
35
  elementType: "span",
36
36
  children: label
37
37
  })
@@ -57,7 +57,7 @@ const Progress = /*#__PURE__*/ forwardRef((props, ref)=>{
57
57
  const clamp = (num, min, max)=>Math.min(Math.max(num, min), max);
58
58
  const percentage = clamp(Math.round((value - minValue) / (maxValue - minValue) * 100), 0, 100);
59
59
  const barWidth = `${percentage}%`;
60
- const classes = classNames("mobius", "mobius/Progress", className, {
60
+ const classes = classNames("mobius", "mobius-progress", className, {
61
61
  "--is-primary": variant === "primary",
62
62
  "--is-secondary": variant === "secondary"
63
63
  });
@@ -78,9 +78,9 @@ const Progress = /*#__PURE__*/ forwardRef((props, ref)=>{
78
78
  children: [
79
79
  labelComponent,
80
80
  /*#__PURE__*/ _jsx("div", {
81
- className: "mobius/ProgressTrack",
81
+ className: "mobius-progress__track",
82
82
  children: /*#__PURE__*/ _jsx("div", {
83
- className: "mobius/ProgressBar",
83
+ className: "mobius-progress__bar",
84
84
  style: {
85
85
  width: barWidth
86
86
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Progress/Progress.tsx"],"sourcesContent":["\"use client\";\n\n/* eslint no-console: \"off\" */\nimport type { AriaProgressBarProps } from \"@react-types/progress\";\nimport classNames from \"classnames/dedupe\";\nimport { ReactNode, Ref, RefAttributes, forwardRef, useId } from \"react\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { Label } from \"../Label\";\nimport { VisuallyHidden } from \"../VisuallyHidden\";\n\nexport type ProgressElementType = HTMLDivElement;\n\nexport interface ProgressProps\n extends Omit<AriaProgressBarProps, \"label\">,\n DOMProps,\n RefAttributes<ProgressElementType> {\n label: ReactNode;\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n id?: string;\n className?: string;\n showLabel?: boolean;\n showValueLabel?: boolean;\n variant?: \"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"info\";\n value?: number;\n minValue?: number;\n maxValue?: number;\n valueFormatter?: (\n value: number,\n minValue: number,\n maxValue: number,\n ) => string;\n}\n\nexport type ProgressRef = Ref<ProgressElementType>;\n\nfunction warnAboutInvalidValues(\n value: number,\n minValue: number,\n maxValue: number,\n) {\n if (minValue > maxValue) {\n console.warn(\"minValue is greater than maxValue\");\n }\n if (value < minValue) {\n console.warn(\"Progress value is less than minValue\");\n }\n if (value > maxValue) {\n console.warn(\"Progress value is greater than maxValue\");\n }\n}\n\nconst sanitizedValue = (\n value: number | undefined,\n defaultValue: number,\n): number => {\n const numberValue = parseFloat(value as any);\n return Number.isNaN(numberValue) ? defaultValue : numberValue;\n};\n\nconst getLabelComponent = (\n label: ReactNode,\n progressLabelId: string,\n showLabel: boolean,\n) => {\n if (showLabel) {\n return (\n <Label\n id={progressLabelId}\n className=\"mobius/ProgressLabel\"\n elementType=\"span\"\n >\n {label}\n </Label>\n );\n }\n\n return (\n <VisuallyHidden>\n <Label\n id={progressLabelId}\n className=\"mobius/ProgressLabel\"\n elementType=\"span\"\n >\n {label}\n </Label>\n </VisuallyHidden>\n );\n};\n\nconst DEFAULT_VALUE = 0;\nconst DEFAULT_MIN_VALUE = 0;\nconst DEFAULT_MAX_VALUE = 100;\n\nconst Progress: ForwardedRefComponent<ProgressProps, ProgressElementType> =\n forwardRef((props: ProgressProps, ref: ProgressRef) => {\n const progressId = useId();\n const progressLabelId = useId();\n const {\n id,\n label,\n showLabel = true,\n showValueLabel = !!label,\n valueFormatter,\n variant = \"primary\",\n className,\n } = props;\n\n let { value, minValue, maxValue } = props;\n\n value = sanitizedValue(value, DEFAULT_VALUE);\n minValue = sanitizedValue(minValue, DEFAULT_MIN_VALUE);\n maxValue = sanitizedValue(maxValue, DEFAULT_MAX_VALUE);\n\n // Will never happen but lets appease the typescript gods\n if (\n value === undefined ||\n minValue === undefined ||\n maxValue === undefined\n ) {\n return null;\n }\n\n warnAboutInvalidValues(value, minValue, maxValue);\n\n // Calculate the width of the progress bar as a percentage\n const clamp = (num: number, min: number, max: number): number =>\n Math.min(Math.max(num, min), max);\n const percentage = clamp(\n Math.round(((value - minValue) / (maxValue - minValue)) * 100),\n 0,\n 100,\n );\n const barWidth = `${percentage}%`;\n\n const classes = classNames(\"mobius\", \"mobius/Progress\", className, {\n \"--is-primary\": variant === \"primary\",\n \"--is-secondary\": variant === \"secondary\",\n });\n\n // Set progress aria values\n const progressBarProps: Record<string, string> = {};\n progressBarProps[\"aria-valuemin\"] = minValue.toString();\n progressBarProps[\"aria-valuemax\"] = maxValue.toString();\n progressBarProps[\"aria-valuenow\"] = value.toString();\n progressBarProps[\"aria-valuetext\"] =\n valueFormatter instanceof Function\n ? valueFormatter(value, minValue, maxValue!)\n : barWidth;\n const labelComponent = getLabelComponent(label, progressLabelId, showLabel);\n\n return (\n <div\n id={id || progressId}\n {...progressBarProps}\n ref={ref}\n className={classes}\n role=\"progressbar\"\n aria-labelledby={progressLabelId}\n >\n {labelComponent}\n <div className=\"mobius/ProgressTrack\">\n <div className=\"mobius/ProgressBar\" style={{ width: barWidth }} />\n </div>\n {showValueLabel && (\n <Label data-testid=\"value-label\" elementType=\"span\">\n {progressBarProps[\"aria-valuetext\"]}\n </Label>\n )}\n </div>\n );\n });\n\nProgress.displayName = \"Progress\";\nexport { Progress };\n"],"names":["classNames","forwardRef","useId","Label","VisuallyHidden","warnAboutInvalidValues","value","minValue","maxValue","console","warn","sanitizedValue","defaultValue","numberValue","parseFloat","Number","isNaN","getLabelComponent","label","progressLabelId","showLabel","id","className","elementType","DEFAULT_VALUE","DEFAULT_MIN_VALUE","DEFAULT_MAX_VALUE","Progress","props","ref","progressId","showValueLabel","valueFormatter","variant","undefined","clamp","num","min","max","Math","percentage","round","barWidth","classes","progressBarProps","toString","Function","labelComponent","div","role","aria-labelledby","style","width","data-testid","displayName"],"mappings":"AAAA;;AAIA,OAAOA,gBAAgB,oBAAoB;AAC3C,SAAwCC,UAAU,EAAEC,KAAK,QAAQ,QAAQ;AAGzE,SAASC,KAAK,QAAQ,WAAW;AACjC,SAASC,cAAc,QAAQ,oBAAoB;AA4BnD,SAASC,uBACPC,KAAa,EACbC,QAAgB,EAChBC,QAAgB;IAEhB,IAAID,WAAWC,UAAU;QACvBC,QAAQC,IAAI,CAAC;IACf;IACA,IAAIJ,QAAQC,UAAU;QACpBE,QAAQC,IAAI,CAAC;IACf;IACA,IAAIJ,QAAQE,UAAU;QACpBC,QAAQC,IAAI,CAAC;IACf;AACF;AAEA,MAAMC,iBAAiB,CACrBL,OACAM;IAEA,MAAMC,cAAcC,WAAWR;IAC/B,OAAOS,OAAOC,KAAK,CAACH,eAAeD,eAAeC;AACpD;AAEA,MAAMI,oBAAoB,CACxBC,OACAC,iBACAC;IAEA,IAAIA,WAAW;QACb,qBACE,KAACjB;YACCkB,IAAIF;YACJG,WAAU;YACVC,aAAY;sBAEXL;;IAGP;IAEA,qBACE,KAACd;kBACC,cAAA,KAACD;YACCkB,IAAIF;YACJG,WAAU;YACVC,aAAY;sBAEXL;;;AAIT;AAEA,MAAMM,gBAAgB;AACtB,MAAMC,oBAAoB;AAC1B,MAAMC,oBAAoB;AAE1B,MAAMC,yBACJ1B,WAAW,CAAC2B,OAAsBC;IAChC,MAAMC,aAAa5B;IACnB,MAAMiB,kBAAkBjB;IACxB,MAAM,EACJmB,EAAE,EACFH,KAAK,EACLE,YAAY,IAAI,EAChBW,iBAAiB,CAAC,CAACb,KAAK,EACxBc,cAAc,EACdC,UAAU,SAAS,EACnBX,SAAS,EACV,GAAGM;IAEJ,IAAI,EAAEtB,KAAK,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGoB;IAEpCtB,QAAQK,eAAeL,OAAOkB;IAC9BjB,WAAWI,eAAeJ,UAAUkB;IACpCjB,WAAWG,eAAeH,UAAUkB;IAEpC,yDAAyD;IACzD,IACEpB,UAAU4B,aACV3B,aAAa2B,aACb1B,aAAa0B,WACb;QACA,OAAO;IACT;IAEA7B,uBAAuBC,OAAOC,UAAUC;IAExC,0DAA0D;IAC1D,MAAM2B,QAAQ,CAACC,KAAaC,KAAaC,MACvCC,KAAKF,GAAG,CAACE,KAAKD,GAAG,CAACF,KAAKC,MAAMC;IAC/B,MAAME,aAAaL,MACjBI,KAAKE,KAAK,CAAC,AAAEnC,CAAAA,QAAQC,QAAO,IAAMC,CAAAA,WAAWD,QAAO,IAAM,MAC1D,GACA;IAEF,MAAMmC,WAAW,CAAC,EAAEF,WAAW,CAAC,CAAC;IAEjC,MAAMG,UAAU3C,WAAW,UAAU,mBAAmBsB,WAAW;QACjE,gBAAgBW,YAAY;QAC5B,kBAAkBA,YAAY;IAChC;IAEA,2BAA2B;IAC3B,MAAMW,mBAA2C,CAAC;IAClDA,gBAAgB,CAAC,gBAAgB,GAAGrC,SAASsC,QAAQ;IACrDD,gBAAgB,CAAC,gBAAgB,GAAGpC,SAASqC,QAAQ;IACrDD,gBAAgB,CAAC,gBAAgB,GAAGtC,MAAMuC,QAAQ;IAClDD,gBAAgB,CAAC,iBAAiB,GAChCZ,0BAA0Bc,WACtBd,eAAe1B,OAAOC,UAAUC,YAChCkC;IACN,MAAMK,iBAAiB9B,kBAAkBC,OAAOC,iBAAiBC;IAEjE,qBACE,MAAC4B;QACC3B,IAAIA,MAAMS;QACT,GAAGc,gBAAgB;QACpBf,KAAKA;QACLP,WAAWqB;QACXM,MAAK;QACLC,mBAAiB/B;;YAEhB4B;0BACD,KAACC;gBAAI1B,WAAU;0BACb,cAAA,KAAC0B;oBAAI1B,WAAU;oBAAqB6B,OAAO;wBAAEC,OAAOV;oBAAS;;;YAE9DX,gCACC,KAAC5B;gBAAMkD,eAAY;gBAAc9B,aAAY;0BAC1CqB,gBAAgB,CAAC,iBAAiB;;;;AAK7C;AAEFjB,SAAS2B,WAAW,GAAG;AACvB,SAAS3B,QAAQ,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/Progress/Progress.tsx"],"sourcesContent":["\"use client\";\n\n/* eslint no-console: \"off\" */\nimport type { AriaProgressBarProps } from \"@react-types/progress\";\nimport classNames from \"classnames/dedupe\";\nimport { ReactNode, Ref, RefAttributes, forwardRef, useId } from \"react\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { Label } from \"../Label\";\nimport { VisuallyHidden } from \"../VisuallyHidden\";\n\nexport type ProgressElementType = HTMLDivElement;\n\nexport interface ProgressProps\n extends Omit<AriaProgressBarProps, \"label\">,\n DOMProps,\n RefAttributes<ProgressElementType> {\n label: ReactNode;\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n id?: string;\n className?: string;\n showLabel?: boolean;\n showValueLabel?: boolean;\n variant?: \"primary\" | \"secondary\" | \"success\" | \"danger\" | \"warning\" | \"info\";\n value?: number;\n minValue?: number;\n maxValue?: number;\n valueFormatter?: (\n value: number,\n minValue: number,\n maxValue: number,\n ) => string;\n}\n\nexport type ProgressRef = Ref<ProgressElementType>;\n\nfunction warnAboutInvalidValues(\n value: number,\n minValue: number,\n maxValue: number,\n) {\n if (minValue > maxValue) {\n console.warn(\"minValue is greater than maxValue\");\n }\n if (value < minValue) {\n console.warn(\"Progress value is less than minValue\");\n }\n if (value > maxValue) {\n console.warn(\"Progress value is greater than maxValue\");\n }\n}\n\nconst sanitizedValue = (\n value: number | undefined,\n defaultValue: number,\n): number => {\n const numberValue = parseFloat(value as any);\n return Number.isNaN(numberValue) ? defaultValue : numberValue;\n};\n\nconst getLabelComponent = (\n label: ReactNode,\n progressLabelId: string,\n showLabel: boolean,\n) => {\n if (showLabel) {\n return (\n <Label\n id={progressLabelId}\n className=\"mobius-progress__label\"\n elementType=\"span\"\n >\n {label}\n </Label>\n );\n }\n\n return (\n <VisuallyHidden>\n <Label\n id={progressLabelId}\n className=\"mobius-progress__label\"\n elementType=\"span\"\n >\n {label}\n </Label>\n </VisuallyHidden>\n );\n};\n\nconst DEFAULT_VALUE = 0;\nconst DEFAULT_MIN_VALUE = 0;\nconst DEFAULT_MAX_VALUE = 100;\n\nconst Progress: ForwardedRefComponent<ProgressProps, ProgressElementType> =\n forwardRef((props: ProgressProps, ref: ProgressRef) => {\n const progressId = useId();\n const progressLabelId = useId();\n const {\n id,\n label,\n showLabel = true,\n showValueLabel = !!label,\n valueFormatter,\n variant = \"primary\",\n className,\n } = props;\n\n let { value, minValue, maxValue } = props;\n\n value = sanitizedValue(value, DEFAULT_VALUE);\n minValue = sanitizedValue(minValue, DEFAULT_MIN_VALUE);\n maxValue = sanitizedValue(maxValue, DEFAULT_MAX_VALUE);\n\n // Will never happen but lets appease the typescript gods\n if (\n value === undefined ||\n minValue === undefined ||\n maxValue === undefined\n ) {\n return null;\n }\n\n warnAboutInvalidValues(value, minValue, maxValue);\n\n // Calculate the width of the progress bar as a percentage\n const clamp = (num: number, min: number, max: number): number =>\n Math.min(Math.max(num, min), max);\n const percentage = clamp(\n Math.round(((value - minValue) / (maxValue - minValue)) * 100),\n 0,\n 100,\n );\n const barWidth = `${percentage}%`;\n\n const classes = classNames(\"mobius\", \"mobius-progress\", className, {\n \"--is-primary\": variant === \"primary\",\n \"--is-secondary\": variant === \"secondary\",\n });\n\n // Set progress aria values\n const progressBarProps: Record<string, string> = {};\n progressBarProps[\"aria-valuemin\"] = minValue.toString();\n progressBarProps[\"aria-valuemax\"] = maxValue.toString();\n progressBarProps[\"aria-valuenow\"] = value.toString();\n progressBarProps[\"aria-valuetext\"] =\n valueFormatter instanceof Function\n ? valueFormatter(value, minValue, maxValue!)\n : barWidth;\n const labelComponent = getLabelComponent(label, progressLabelId, showLabel);\n\n return (\n <div\n id={id || progressId}\n {...progressBarProps}\n ref={ref}\n className={classes}\n role=\"progressbar\"\n aria-labelledby={progressLabelId}\n >\n {labelComponent}\n <div className=\"mobius-progress__track\">\n <div className=\"mobius-progress__bar\" style={{ width: barWidth }} />\n </div>\n {showValueLabel && (\n <Label data-testid=\"value-label\" elementType=\"span\">\n {progressBarProps[\"aria-valuetext\"]}\n </Label>\n )}\n </div>\n );\n });\n\nProgress.displayName = \"Progress\";\nexport { Progress };\n"],"names":["classNames","forwardRef","useId","Label","VisuallyHidden","warnAboutInvalidValues","value","minValue","maxValue","console","warn","sanitizedValue","defaultValue","numberValue","parseFloat","Number","isNaN","getLabelComponent","label","progressLabelId","showLabel","id","className","elementType","DEFAULT_VALUE","DEFAULT_MIN_VALUE","DEFAULT_MAX_VALUE","Progress","props","ref","progressId","showValueLabel","valueFormatter","variant","undefined","clamp","num","min","max","Math","percentage","round","barWidth","classes","progressBarProps","toString","Function","labelComponent","div","role","aria-labelledby","style","width","data-testid","displayName"],"mappings":"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"}
@@ -15,8 +15,8 @@ const Radio = /*#__PURE__*/ forwardRef((props, ref)=>{
15
15
  "--is-multiline": !!isMultiline,
16
16
  "--is-required": isRequired
17
17
  };
18
- const containerClasses = classNames("mobius/RadioLabel", radioClasses, className);
19
- const inputClasses = classNames("mobius/RadioInput", radioClasses);
18
+ const containerClasses = classNames("mobius-radio__label", radioClasses, className);
19
+ const inputClasses = classNames("mobius-radio__input", radioClasses);
20
20
  const handleClick = (event)=>{
21
21
  if (onChange) {
22
22
  onChange(event);
@@ -50,19 +50,19 @@ const Radio = /*#__PURE__*/ forwardRef((props, ref)=>{
50
50
  ...rest
51
51
  }),
52
52
  isMultiline ? /*#__PURE__*/ _jsxs("div", {
53
- className: "mobius/RadioContentMultiline",
53
+ className: "mobius-radio__content--multiline",
54
54
  children: [
55
55
  /*#__PURE__*/ _jsx("div", {
56
- className: "mobius/RadioContentFirstLine",
56
+ className: "mobius-radio__content-first-line",
57
57
  children: label
58
58
  }),
59
59
  /*#__PURE__*/ _jsx("div", {
60
- className: "mobius/RadioExtraContent",
60
+ className: "mobius-radio__extra-content",
61
61
  children: children
62
62
  })
63
63
  ]
64
64
  }) : /*#__PURE__*/ _jsx("div", {
65
- className: "mobius/RadioContent",
65
+ className: "mobius-radio__content",
66
66
  children: label || children
67
67
  })
68
68
  ]
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport { MouseEvent, ReactNode, Ref, RefAttributes, forwardRef } from \"react\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { DOMProps } from \"../../types/dom\";\nimport { HTMLElementEvent } from \"../../types/events\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\n\nexport type RadioElementType = HTMLInputElement;\n\nexport type AriaRadioProps = {\n /**\n * Defines a string value that labels the current element.\n */\n \"aria-label\"?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n \"aria-labelledby\"?: string;\n /**\n * Identifies the element (or elements) that describes the object.\n */\n \"aria-describedby\"?: string;\n /**\n * Identifies the element (or elements) that provide a detailed, extended description for the object.\n */\n \"aria-details\"?: string;\n};\n\nexport interface RadioProps\n extends DOMProps,\n AriaRadioProps,\n RefAttributes<RadioElementType> {\n children?: ReactNode;\n className?: string;\n label?: ReactNode;\n errorMessage?: string;\n value: string;\n isDisabled?: boolean;\n onChange?: (event: HTMLElementEvent<RadioElementType>) => void;\n defaultChecked?: boolean;\n /**\n * **Internal:** Do not use\n */\n groupDisabled?: boolean;\n /**\n * **Internal:** Do not use\n */\n name?: string;\n /**\n * **Internal:** Do not use\n */\n selected?: string;\n /**\n * **Internal:** Do not use\n */\n setSelected?: React.Dispatch<React.SetStateAction<string>>;\n isRequired?: boolean;\n}\n\nexport type RadioRef = Ref<RadioElementType>;\n\nconst Radio: ForwardedRefComponent<RadioProps, RadioElementType> = forwardRef(\n (props: RadioProps, ref: RadioRef) => {\n const {\n children,\n value,\n label,\n className,\n isDisabled,\n errorMessage,\n onChange,\n defaultChecked,\n groupDisabled,\n name,\n selected,\n setSelected,\n isRequired,\n ...otherProps\n } = props;\n const realDisabled = groupDisabled || isDisabled;\n const isMultiline = label && children;\n const isDefaultSelected = selected === value || defaultChecked;\n const radioClasses = {\n \"--is-disabled\": realDisabled,\n \"--is-selected\": selected === value,\n \"--is-multiline\": !!isMultiline,\n \"--is-required\": isRequired,\n };\n const containerClasses = classNames(\n \"mobius/RadioLabel\",\n radioClasses,\n className,\n );\n const inputClasses = classNames(\"mobius/RadioInput\", radioClasses);\n\n const handleClick = (event: MouseEvent<RadioElementType>) => {\n if (onChange) {\n onChange(event as unknown as HTMLElementEvent<RadioElementType>);\n }\n if (setSelected) {\n setSelected(event.currentTarget.value);\n }\n };\n\n // Exlucde props that are passed via cloneElement in `<RadioGroup />`\n const {\n // @ts-ignore\n // eslint-disable-next-line\n orientation,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"aria-describedby\": _ariaDescribedBy,\n ...rest\n } = otherProps;\n\n return (\n <>\n <Label className={containerClasses}>\n <input\n aria-describedby={otherProps[\"aria-describedby\"]}\n disabled={realDisabled}\n ref={ref}\n className={inputClasses}\n onClick={handleClick}\n value={value}\n tabIndex={0}\n type=\"radio\"\n defaultChecked={isDefaultSelected}\n name={name}\n required={isRequired}\n {...rest}\n />\n {isMultiline ? (\n <div className=\"mobius/RadioContentMultiline\">\n <div className=\"mobius/RadioContentFirstLine\">{label}</div>\n <div className=\"mobius/RadioExtraContent\">{children}</div>\n </div>\n ) : (\n <div className=\"mobius/RadioContent\">{label || children}</div>\n )}\n </Label>\n {errorMessage && <ErrorMessage errorMessage={errorMessage} />}\n </>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\nexport { Radio };\n"],"names":["classNames","forwardRef","ErrorMessage","Label","Radio","props","ref","children","value","label","className","isDisabled","errorMessage","onChange","defaultChecked","groupDisabled","name","selected","setSelected","isRequired","otherProps","realDisabled","isMultiline","isDefaultSelected","radioClasses","containerClasses","inputClasses","handleClick","event","currentTarget","orientation","_ariaDescribedBy","rest","input","aria-describedby","disabled","onClick","tabIndex","type","required","div","displayName"],"mappings":"AAAA;;AAEA,OAAOA,gBAAgB,oBAAoB;AAC3C,SAAoDC,UAAU,QAAQ,QAAQ;AAI9E,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,KAAK,QAAQ,WAAW;AAwDjC,MAAMC,sBAA6DH,WACjE,CAACI,OAAmBC;IAClB,MAAM,EACJC,QAAQ,EACRC,KAAK,EACLC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACV,GAAGC,YACJ,GAAGf;IACJ,MAAMgB,eAAeN,iBAAiBJ;IACtC,MAAMW,cAAcb,SAASF;IAC7B,MAAMgB,oBAAoBN,aAAaT,SAASM;IAChD,MAAMU,eAAe;QACnB,iBAAiBH;QACjB,iBAAiBJ,aAAaT;QAC9B,kBAAkB,CAAC,CAACc;QACpB,iBAAiBH;IACnB;IACA,MAAMM,mBAAmBzB,WACvB,qBACAwB,cACAd;IAEF,MAAMgB,eAAe1B,WAAW,qBAAqBwB;IAErD,MAAMG,cAAc,CAACC;QACnB,IAAIf,UAAU;YACZA,SAASe;QACX;QACA,IAAIV,aAAa;YACfA,YAAYU,MAAMC,aAAa,CAACrB,KAAK;QACvC;IACF;IAEA,qEAAqE;IACrE,MAAM,EACJ,aAAa;IACb,2BAA2B;IAC3BsB,WAAW,EACX,6DAA6D;IAC7D,oBAAoBC,gBAAgB,EACpC,GAAGC,MACJ,GAAGZ;IAEJ,qBACE;;0BACE,MAACjB;gBAAMO,WAAWe;;kCAChB,KAACQ;wBACCC,oBAAkBd,UAAU,CAAC,mBAAmB;wBAChDe,UAAUd;wBACVf,KAAKA;wBACLI,WAAWgB;wBACXU,SAAST;wBACTnB,OAAOA;wBACP6B,UAAU;wBACVC,MAAK;wBACLxB,gBAAgBS;wBAChBP,MAAMA;wBACNuB,UAAUpB;wBACT,GAAGa,IAAI;;oBAETV,4BACC,MAACkB;wBAAI9B,WAAU;;0CACb,KAAC8B;gCAAI9B,WAAU;0CAAgCD;;0CAC/C,KAAC+B;gCAAI9B,WAAU;0CAA4BH;;;uCAG7C,KAACiC;wBAAI9B,WAAU;kCAAuBD,SAASF;;;;YAGlDK,8BAAgB,KAACV;gBAAaU,cAAcA;;;;AAGnD;AAGFR,MAAMqC,WAAW,GAAG;AACpB,SAASrC,KAAK,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/Radio/Radio.tsx"],"sourcesContent":["\"use client\";\n\nimport classNames from \"classnames/dedupe\";\nimport { MouseEvent, ReactNode, Ref, RefAttributes, forwardRef } from \"react\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { DOMProps } from \"../../types/dom\";\nimport { HTMLElementEvent } from \"../../types/events\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\n\nexport type RadioElementType = HTMLInputElement;\n\nexport type AriaRadioProps = {\n /**\n * Defines a string value that labels the current element.\n */\n \"aria-label\"?: string;\n /**\n * Identifies the element (or elements) that labels the current element.\n */\n \"aria-labelledby\"?: string;\n /**\n * Identifies the element (or elements) that describes the object.\n */\n \"aria-describedby\"?: string;\n /**\n * Identifies the element (or elements) that provide a detailed, extended description for the object.\n */\n \"aria-details\"?: string;\n};\n\nexport interface RadioProps\n extends DOMProps,\n AriaRadioProps,\n RefAttributes<RadioElementType> {\n children?: ReactNode;\n className?: string;\n label?: ReactNode;\n errorMessage?: string;\n value: string;\n isDisabled?: boolean;\n onChange?: (event: HTMLElementEvent<RadioElementType>) => void;\n defaultChecked?: boolean;\n /**\n * **Internal:** Do not use\n */\n groupDisabled?: boolean;\n /**\n * **Internal:** Do not use\n */\n name?: string;\n /**\n * **Internal:** Do not use\n */\n selected?: string;\n /**\n * **Internal:** Do not use\n */\n setSelected?: React.Dispatch<React.SetStateAction<string>>;\n isRequired?: boolean;\n}\n\nexport type RadioRef = Ref<RadioElementType>;\n\nconst Radio: ForwardedRefComponent<RadioProps, RadioElementType> = forwardRef(\n (props: RadioProps, ref: RadioRef) => {\n const {\n children,\n value,\n label,\n className,\n isDisabled,\n errorMessage,\n onChange,\n defaultChecked,\n groupDisabled,\n name,\n selected,\n setSelected,\n isRequired,\n ...otherProps\n } = props;\n const realDisabled = groupDisabled || isDisabled;\n const isMultiline = label && children;\n const isDefaultSelected = selected === value || defaultChecked;\n const radioClasses = {\n \"--is-disabled\": realDisabled,\n \"--is-selected\": selected === value,\n \"--is-multiline\": !!isMultiline,\n \"--is-required\": isRequired,\n };\n const containerClasses = classNames(\n \"mobius-radio__label\",\n radioClasses,\n className,\n );\n const inputClasses = classNames(\"mobius-radio__input\", radioClasses);\n\n const handleClick = (event: MouseEvent<RadioElementType>) => {\n if (onChange) {\n onChange(event as unknown as HTMLElementEvent<RadioElementType>);\n }\n if (setSelected) {\n setSelected(event.currentTarget.value);\n }\n };\n\n // Exlucde props that are passed via cloneElement in `<RadioGroup />`\n const {\n // @ts-ignore\n // eslint-disable-next-line\n orientation,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n \"aria-describedby\": _ariaDescribedBy,\n ...rest\n } = otherProps;\n\n return (\n <>\n <Label className={containerClasses}>\n <input\n aria-describedby={otherProps[\"aria-describedby\"]}\n disabled={realDisabled}\n ref={ref}\n className={inputClasses}\n onClick={handleClick}\n value={value}\n tabIndex={0}\n type=\"radio\"\n defaultChecked={isDefaultSelected}\n name={name}\n required={isRequired}\n {...rest}\n />\n {isMultiline ? (\n <div className=\"mobius-radio__content--multiline\">\n <div className=\"mobius-radio__content-first-line\">{label}</div>\n <div className=\"mobius-radio__extra-content\">{children}</div>\n </div>\n ) : (\n <div className=\"mobius-radio__content\">{label || children}</div>\n )}\n </Label>\n {errorMessage && <ErrorMessage errorMessage={errorMessage} />}\n </>\n );\n },\n);\n\nRadio.displayName = \"Radio\";\nexport { Radio };\n"],"names":["classNames","forwardRef","ErrorMessage","Label","Radio","props","ref","children","value","label","className","isDisabled","errorMessage","onChange","defaultChecked","groupDisabled","name","selected","setSelected","isRequired","otherProps","realDisabled","isMultiline","isDefaultSelected","radioClasses","containerClasses","inputClasses","handleClick","event","currentTarget","orientation","_ariaDescribedBy","rest","input","aria-describedby","disabled","onClick","tabIndex","type","required","div","displayName"],"mappings":"AAAA;;AAEA,OAAOA,gBAAgB,oBAAoB;AAC3C,SAAoDC,UAAU,QAAQ,QAAQ;AAI9E,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,KAAK,QAAQ,WAAW;AAwDjC,MAAMC,sBAA6DH,WACjE,CAACI,OAAmBC;IAClB,MAAM,EACJC,QAAQ,EACRC,KAAK,EACLC,KAAK,EACLC,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,IAAI,EACJC,QAAQ,EACRC,WAAW,EACXC,UAAU,EACV,GAAGC,YACJ,GAAGf;IACJ,MAAMgB,eAAeN,iBAAiBJ;IACtC,MAAMW,cAAcb,SAASF;IAC7B,MAAMgB,oBAAoBN,aAAaT,SAASM;IAChD,MAAMU,eAAe;QACnB,iBAAiBH;QACjB,iBAAiBJ,aAAaT;QAC9B,kBAAkB,CAAC,CAACc;QACpB,iBAAiBH;IACnB;IACA,MAAMM,mBAAmBzB,WACvB,uBACAwB,cACAd;IAEF,MAAMgB,eAAe1B,WAAW,uBAAuBwB;IAEvD,MAAMG,cAAc,CAACC;QACnB,IAAIf,UAAU;YACZA,SAASe;QACX;QACA,IAAIV,aAAa;YACfA,YAAYU,MAAMC,aAAa,CAACrB,KAAK;QACvC;IACF;IAEA,qEAAqE;IACrE,MAAM,EACJ,aAAa;IACb,2BAA2B;IAC3BsB,WAAW,EACX,6DAA6D;IAC7D,oBAAoBC,gBAAgB,EACpC,GAAGC,MACJ,GAAGZ;IAEJ,qBACE;;0BACE,MAACjB;gBAAMO,WAAWe;;kCAChB,KAACQ;wBACCC,oBAAkBd,UAAU,CAAC,mBAAmB;wBAChDe,UAAUd;wBACVf,KAAKA;wBACLI,WAAWgB;wBACXU,SAAST;wBACTnB,OAAOA;wBACP6B,UAAU;wBACVC,MAAK;wBACLxB,gBAAgBS;wBAChBP,MAAMA;wBACNuB,UAAUpB;wBACT,GAAGa,IAAI;;oBAETV,4BACC,MAACkB;wBAAI9B,WAAU;;0CACb,KAAC8B;gCAAI9B,WAAU;0CAAoCD;;0CACnD,KAAC+B;gCAAI9B,WAAU;0CAA+BH;;;uCAGhD,KAACiC;wBAAI9B,WAAU;kCAAyBD,SAASF;;;;YAGpDK,8BAAgB,KAACV;gBAAaU,cAAcA;;;;AAGnD;AAGFR,MAAMqC,WAAW,GAAG;AACpB,SAASrC,KAAK,GAAG"}
@@ -6,6 +6,7 @@ import { spaceDelimitedList } from "../../utils/spaceDelimitedList";
6
6
  import { ErrorMessage } from "../ErrorMessage";
7
7
  import { Label } from "../Label";
8
8
  import { useValidationClasses } from "../../hooks";
9
+ import { Stack } from "../Stack";
9
10
  const getDefaultVal = (children, defaultValue)=>{
10
11
  if (Array.isArray(children) && defaultValue) {
11
12
  const option = children === null || children === void 0 ? void 0 : children.find((item)=>item.props.value === defaultValue);
@@ -29,8 +30,8 @@ const RadioGroup = /*#__PURE__*/ forwardRef((props, ref)=>{
29
30
  [`--is-${orientation}`]: true,
30
31
  [className || ""]: true
31
32
  };
32
- const radioGroupClasses = classNames("mobius", "mobius/RadioGroup", radioClasses, validationClasses);
33
- const radioWrapperClasses = classNames("mobius/RadioWrapper", {
33
+ const radioGroupClasses = classNames("mobius", "mobius-radio-group", radioClasses, validationClasses);
34
+ const radioWrapperClasses = classNames("mobius-radio__wrapper", {
34
35
  [`--is-${orientation}`]: true
35
36
  });
36
37
  const labelClasses = classNames(radioClasses, validationClasses);
@@ -43,7 +44,7 @@ const RadioGroup = /*#__PURE__*/ forwardRef((props, ref)=>{
43
44
  props["aria-describedby"]
44
45
  ]);
45
46
  const labelId = useId();
46
- return /*#__PURE__*/ _jsxs("div", {
47
+ return /*#__PURE__*/ _jsx("div", {
47
48
  ...rest,
48
49
  "aria-describedby": describedBy,
49
50
  "aria-disabled": isDisabled,
@@ -57,36 +58,39 @@ const RadioGroup = /*#__PURE__*/ forwardRef((props, ref)=>{
57
58
  ref: ref,
58
59
  className: radioGroupClasses,
59
60
  role: "radiogroup",
60
- children: [
61
- label && /*#__PURE__*/ _jsx(Label, {
62
- htmlFor: name,
63
- id: labelId,
64
- className: labelClasses,
65
- children: label
66
- }),
67
- /*#__PURE__*/ _jsx("div", {
68
- className: radioWrapperClasses,
69
- children: Children.map(children, (child)=>{
70
- if (/*#__PURE__*/ isValidElement(child)) {
71
- return /*#__PURE__*/ cloneElement(child, {
72
- orientation,
73
- groupDisabled: isDisabled,
74
- name: nameAttribute,
75
- selected,
76
- setSelected,
77
- isRequired,
78
- "aria-describedby": describedBy,
79
- onChange
80
- });
81
- }
82
- return child;
61
+ children: /*#__PURE__*/ _jsxs(Stack, {
62
+ gap: "xs",
63
+ children: [
64
+ label && /*#__PURE__*/ _jsx(Label, {
65
+ htmlFor: name,
66
+ id: labelId,
67
+ className: labelClasses,
68
+ children: label
69
+ }),
70
+ /*#__PURE__*/ _jsx("div", {
71
+ className: radioWrapperClasses,
72
+ children: Children.map(children, (child)=>{
73
+ if (/*#__PURE__*/ isValidElement(child)) {
74
+ return /*#__PURE__*/ cloneElement(child, {
75
+ orientation,
76
+ groupDisabled: isDisabled,
77
+ name: nameAttribute,
78
+ selected,
79
+ setSelected,
80
+ isRequired,
81
+ "aria-describedby": describedBy,
82
+ onChange
83
+ });
84
+ }
85
+ return child;
86
+ })
87
+ }),
88
+ /*#__PURE__*/ _jsx(ErrorMessage, {
89
+ id: errorMessageId,
90
+ errorMessage: errorMessage
83
91
  })
84
- }),
85
- /*#__PURE__*/ _jsx(ErrorMessage, {
86
- id: errorMessageId,
87
- errorMessage: errorMessage
88
- })
89
- ]
92
+ ]
93
+ })
90
94
  });
91
95
  });
92
96
  RadioGroup.displayName = "RadioGroup";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n ReactElement,\n ReactNode,\n Ref,\n RefAttributes,\n cloneElement,\n forwardRef,\n isValidElement,\n useId,\n useState,\n} from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { HTMLElementEvent } from \"../../types/events\";\nimport { spaceDelimitedList } from \"../../utils/spaceDelimitedList\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\nimport { Validation } from \"../../types\";\nimport { useValidationClasses } from \"../../hooks\";\n\nexport type RadioGroupElementType = HTMLDivElement;\n\nexport interface RadioGroupProps\n extends DOMProps,\n Validation,\n RefAttributes<RadioGroupElementType> {\n children: ReactNode;\n className?: string;\n orientation?: \"horizontal\" | \"vertical\";\n errorMessage?: string;\n // Callback that fires when select changes\n onChange?: (event: HTMLElementEvent<HTMLInputElement>) => void;\n // Defines a string value that labels the current element.\n \"aria-label\"?: string;\n // Identifies the element (or elements) that labels the current element.\n \"aria-labelledby\"?: string;\n // Identifies the element that provides an error message for the object.\n \"aria-errormessage\"?: string;\n // Identifies the element (or elements) that describes the object.\n \"aria-describedby\"?: string;\n // Whether user input is required on the input before form submission.\n isRequired?: boolean;\n // Whether the input is disabled.\n isDisabled?: boolean;\n // Whether the input can be selected but not changed by the user.\n isReadOnly?: boolean;\n // The default value (uncontrolled).\n defaultValue?: string;\n // The content to display as the label.\n label?: ReactNode;\n /**\n * The value of the radio button, used when submitting an HTML form.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio#Value).\n */\n value?: string;\n name?: string;\n}\n\nexport type RadioGroupRef = Ref<RadioGroupElementType>;\n\nconst getDefaultVal = (children: ReactNode, defaultValue?: string) => {\n if (Array.isArray(children) && defaultValue) {\n const option = children?.find(item => item.props.value === defaultValue);\n\n if (!option) return \"\";\n\n return option.props.value;\n }\n\n return \"\";\n};\n\nconst RadioGroup: ForwardedRefComponent<\n RadioGroupProps,\n RadioGroupElementType\n> = forwardRef((props: RadioGroupProps, ref: RadioGroupRef) => {\n const {\n label,\n isDisabled = false,\n isRequired,\n validationState,\n isInvalid,\n orientation = \"vertical\",\n className,\n errorMessage,\n children,\n defaultValue,\n isReadOnly,\n name,\n onChange,\n ...rest\n } = props;\n const defaultSelected = getDefaultVal(children, defaultValue);\n const [selected, setSelected] = useState<string>(defaultSelected);\n const validationClasses = useValidationClasses({\n validationState,\n isInvalid,\n });\n const radioClasses = {\n \"--is-disabled\": isDisabled,\n \"--is-required\": typeof isRequired === \"boolean\" && isRequired,\n \"--is-optional\": typeof isRequired === \"boolean\" && !isRequired,\n [`--is-${orientation}`]: true,\n [className || \"\"]: true,\n };\n const radioGroupClasses = classNames(\n \"mobius\",\n \"mobius/RadioGroup\",\n radioClasses,\n validationClasses,\n );\n const radioWrapperClasses = classNames(\"mobius/RadioWrapper\", {\n [`--is-${orientation}`]: true,\n });\n const labelClasses = classNames(radioClasses, validationClasses);\n const errorMessageId = useId();\n const defaultNameAttrId = useId();\n const nameAttribute = name || defaultNameAttrId;\n const shouldErrorMessageShow = errorMessage ? errorMessageId : undefined;\n const describedBy = spaceDelimitedList([\n shouldErrorMessageShow,\n props[\"aria-describedby\"],\n ]);\n const labelId = useId();\n\n return (\n <div\n {...rest}\n aria-describedby={describedBy}\n aria-disabled={isDisabled}\n aria-errormessage={shouldErrorMessageShow}\n aria-invalid={isInvalid}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"] || labelId}\n aria-orientation={orientation}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n ref={ref}\n className={radioGroupClasses}\n role=\"radiogroup\"\n >\n {label && (\n <Label htmlFor={name} id={labelId} className={labelClasses}>\n {label}\n </Label>\n )}\n <div className={radioWrapperClasses}>\n {Children.map(children, child => {\n if (isValidElement(child)) {\n return cloneElement(child as ReactElement, {\n orientation,\n groupDisabled: isDisabled,\n name: nameAttribute,\n selected,\n setSelected,\n isRequired,\n \"aria-describedby\": describedBy,\n onChange,\n });\n }\n\n return child;\n })}\n </div>\n <ErrorMessage id={errorMessageId} errorMessage={errorMessage} />\n </div>\n );\n});\n\nRadioGroup.displayName = \"RadioGroup\";\nexport { RadioGroup };\n"],"names":["Children","cloneElement","forwardRef","isValidElement","useId","useState","classNames","spaceDelimitedList","ErrorMessage","Label","useValidationClasses","getDefaultVal","children","defaultValue","Array","isArray","option","find","item","props","value","RadioGroup","ref","label","isDisabled","isRequired","validationState","isInvalid","orientation","className","errorMessage","isReadOnly","name","onChange","rest","defaultSelected","selected","setSelected","validationClasses","radioClasses","radioGroupClasses","radioWrapperClasses","labelClasses","errorMessageId","defaultNameAttrId","nameAttribute","shouldErrorMessageShow","undefined","describedBy","labelId","div","aria-describedby","aria-disabled","aria-errormessage","aria-invalid","aria-label","aria-labelledby","aria-orientation","aria-readonly","aria-required","role","htmlFor","id","map","child","groupDisabled","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Radio/RadioGroup.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n ReactElement,\n ReactNode,\n Ref,\n RefAttributes,\n cloneElement,\n forwardRef,\n isValidElement,\n useId,\n useState,\n} from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\nimport { HTMLElementEvent } from \"../../types/events\";\nimport { spaceDelimitedList } from \"../../utils/spaceDelimitedList\";\nimport { ErrorMessage } from \"../ErrorMessage\";\nimport { Label } from \"../Label\";\nimport { Validation } from \"../../types\";\nimport { useValidationClasses } from \"../../hooks\";\nimport { Stack } from \"../Stack\";\n\nexport type RadioGroupElementType = HTMLDivElement;\n\nexport interface RadioGroupProps\n extends DOMProps,\n Validation,\n RefAttributes<RadioGroupElementType> {\n children: ReactNode;\n className?: string;\n orientation?: \"horizontal\" | \"vertical\";\n errorMessage?: string;\n // Callback that fires when select changes\n onChange?: (event: HTMLElementEvent<HTMLInputElement>) => void;\n // Defines a string value that labels the current element.\n \"aria-label\"?: string;\n // Identifies the element (or elements) that labels the current element.\n \"aria-labelledby\"?: string;\n // Identifies the element that provides an error message for the object.\n \"aria-errormessage\"?: string;\n // Identifies the element (or elements) that describes the object.\n \"aria-describedby\"?: string;\n // Whether user input is required on the input before form submission.\n isRequired?: boolean;\n // Whether the input is disabled.\n isDisabled?: boolean;\n // Whether the input can be selected but not changed by the user.\n isReadOnly?: boolean;\n // The default value (uncontrolled).\n defaultValue?: string;\n // The content to display as the label.\n label?: ReactNode;\n /**\n * The value of the radio button, used when submitting an HTML form.\n * See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio#Value).\n */\n value?: string;\n name?: string;\n}\n\nexport type RadioGroupRef = Ref<RadioGroupElementType>;\n\nconst getDefaultVal = (children: ReactNode, defaultValue?: string) => {\n if (Array.isArray(children) && defaultValue) {\n const option = children?.find(item => item.props.value === defaultValue);\n\n if (!option) return \"\";\n\n return option.props.value;\n }\n\n return \"\";\n};\n\nconst RadioGroup: ForwardedRefComponent<\n RadioGroupProps,\n RadioGroupElementType\n> = forwardRef((props: RadioGroupProps, ref: RadioGroupRef) => {\n const {\n label,\n isDisabled = false,\n isRequired,\n validationState,\n isInvalid,\n orientation = \"vertical\",\n className,\n errorMessage,\n children,\n defaultValue,\n isReadOnly,\n name,\n onChange,\n ...rest\n } = props;\n const defaultSelected = getDefaultVal(children, defaultValue);\n const [selected, setSelected] = useState<string>(defaultSelected);\n const validationClasses = useValidationClasses({\n validationState,\n isInvalid,\n });\n const radioClasses = {\n \"--is-disabled\": isDisabled,\n \"--is-required\": typeof isRequired === \"boolean\" && isRequired,\n \"--is-optional\": typeof isRequired === \"boolean\" && !isRequired,\n [`--is-${orientation}`]: true,\n [className || \"\"]: true,\n };\n const radioGroupClasses = classNames(\n \"mobius\",\n \"mobius-radio-group\",\n radioClasses,\n validationClasses,\n );\n const radioWrapperClasses = classNames(\"mobius-radio__wrapper\", {\n [`--is-${orientation}`]: true,\n });\n const labelClasses = classNames(radioClasses, validationClasses);\n const errorMessageId = useId();\n const defaultNameAttrId = useId();\n const nameAttribute = name || defaultNameAttrId;\n const shouldErrorMessageShow = errorMessage ? errorMessageId : undefined;\n const describedBy = spaceDelimitedList([\n shouldErrorMessageShow,\n props[\"aria-describedby\"],\n ]);\n const labelId = useId();\n\n return (\n <div\n {...rest}\n aria-describedby={describedBy}\n aria-disabled={isDisabled}\n aria-errormessage={shouldErrorMessageShow}\n aria-invalid={isInvalid}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"] || labelId}\n aria-orientation={orientation}\n aria-readonly={isReadOnly}\n aria-required={isRequired}\n ref={ref}\n className={radioGroupClasses}\n role=\"radiogroup\"\n >\n <Stack gap=\"xs\">\n {label && (\n <Label htmlFor={name} id={labelId} className={labelClasses}>\n {label}\n </Label>\n )}\n <div className={radioWrapperClasses}>\n {Children.map(children, child => {\n if (isValidElement(child)) {\n return cloneElement(child as ReactElement, {\n orientation,\n groupDisabled: isDisabled,\n name: nameAttribute,\n selected,\n setSelected,\n isRequired,\n \"aria-describedby\": describedBy,\n onChange,\n });\n }\n\n return child;\n })}\n </div>\n <ErrorMessage id={errorMessageId} errorMessage={errorMessage} />\n </Stack>\n </div>\n );\n});\n\nRadioGroup.displayName = \"RadioGroup\";\nexport { RadioGroup };\n"],"names":["Children","cloneElement","forwardRef","isValidElement","useId","useState","classNames","spaceDelimitedList","ErrorMessage","Label","useValidationClasses","Stack","getDefaultVal","children","defaultValue","Array","isArray","option","find","item","props","value","RadioGroup","ref","label","isDisabled","isRequired","validationState","isInvalid","orientation","className","errorMessage","isReadOnly","name","onChange","rest","defaultSelected","selected","setSelected","validationClasses","radioClasses","radioGroupClasses","radioWrapperClasses","labelClasses","errorMessageId","defaultNameAttrId","nameAttribute","shouldErrorMessageShow","undefined","describedBy","labelId","div","aria-describedby","aria-disabled","aria-errormessage","aria-invalid","aria-label","aria-labelledby","aria-orientation","aria-readonly","aria-required","role","gap","htmlFor","id","map","child","groupDisabled","displayName"],"mappings":"AAAA;;AAEA,SACEA,QAAQ,EAKRC,YAAY,EACZC,UAAU,EACVC,cAAc,EACdC,KAAK,EACLC,QAAQ,QACH,QAAQ;AACf,OAAOC,gBAAgB,oBAAoB;AAI3C,SAASC,kBAAkB,QAAQ,iCAAiC;AACpE,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,KAAK,QAAQ,WAAW;AAEjC,SAASC,oBAAoB,QAAQ,cAAc;AACnD,SAASC,KAAK,QAAQ,WAAW;AA0CjC,MAAMC,gBAAgB,CAACC,UAAqBC;IAC1C,IAAIC,MAAMC,OAAO,CAACH,aAAaC,cAAc;QAC3C,MAAMG,SAASJ,qBAAAA,+BAAAA,SAAUK,IAAI,CAACC,CAAAA,OAAQA,KAAKC,KAAK,CAACC,KAAK,KAAKP;QAE3D,IAAI,CAACG,QAAQ,OAAO;QAEpB,OAAOA,OAAOG,KAAK,CAACC,KAAK;IAC3B;IAEA,OAAO;AACT;AAEA,MAAMC,2BAGFpB,WAAW,CAACkB,OAAwBG;IACtC,MAAM,EACJC,KAAK,EACLC,aAAa,KAAK,EAClBC,UAAU,EACVC,eAAe,EACfC,SAAS,EACTC,cAAc,UAAU,EACxBC,SAAS,EACTC,YAAY,EACZlB,QAAQ,EACRC,YAAY,EACZkB,UAAU,EACVC,IAAI,EACJC,QAAQ,EACR,GAAGC,MACJ,GAAGf;IACJ,MAAMgB,kBAAkBxB,cAAcC,UAAUC;IAChD,MAAM,CAACuB,UAAUC,YAAY,GAAGjC,SAAiB+B;IACjD,MAAMG,oBAAoB7B,qBAAqB;QAC7CiB;QACAC;IACF;IACA,MAAMY,eAAe;QACnB,iBAAiBf;QACjB,iBAAiB,OAAOC,eAAe,aAAaA;QACpD,iBAAiB,OAAOA,eAAe,aAAa,CAACA;QACrD,CAAC,CAAC,KAAK,EAAEG,YAAY,CAAC,CAAC,EAAE;QACzB,CAACC,aAAa,GAAG,EAAE;IACrB;IACA,MAAMW,oBAAoBnC,WACxB,UACA,sBACAkC,cACAD;IAEF,MAAMG,sBAAsBpC,WAAW,yBAAyB;QAC9D,CAAC,CAAC,KAAK,EAAEuB,YAAY,CAAC,CAAC,EAAE;IAC3B;IACA,MAAMc,eAAerC,WAAWkC,cAAcD;IAC9C,MAAMK,iBAAiBxC;IACvB,MAAMyC,oBAAoBzC;IAC1B,MAAM0C,gBAAgBb,QAAQY;IAC9B,MAAME,yBAAyBhB,eAAea,iBAAiBI;IAC/D,MAAMC,cAAc1C,mBAAmB;QACrCwC;QACA3B,KAAK,CAAC,mBAAmB;KAC1B;IACD,MAAM8B,UAAU9C;IAEhB,qBACE,KAAC+C;QACE,GAAGhB,IAAI;QACRiB,oBAAkBH;QAClBI,iBAAe5B;QACf6B,qBAAmBP;QACnBQ,gBAAc3B;QACd4B,cAAYpC,KAAK,CAAC,aAAa;QAC/BqC,mBAAiBrC,KAAK,CAAC,kBAAkB,IAAI8B;QAC7CQ,oBAAkB7B;QAClB8B,iBAAe3B;QACf4B,iBAAelC;QACfH,KAAKA;QACLO,WAAWW;QACXoB,MAAK;kBAEL,cAAA,MAAClD;YAAMmD,KAAI;;gBACRtC,uBACC,KAACf;oBAAMsD,SAAS9B;oBAAM+B,IAAId;oBAASpB,WAAWa;8BAC3CnB;;8BAGL,KAAC2B;oBAAIrB,WAAWY;8BACb1C,SAASiE,GAAG,CAACpD,UAAUqD,CAAAA;wBACtB,kBAAI/D,eAAe+D,QAAQ;4BACzB,qBAAOjE,aAAaiE,OAAuB;gCACzCrC;gCACAsC,eAAe1C;gCACfQ,MAAMa;gCACNT;gCACAC;gCACAZ;gCACA,oBAAoBuB;gCACpBf;4BACF;wBACF;wBAEA,OAAOgC;oBACT;;8BAEF,KAAC1D;oBAAawD,IAAIpB;oBAAgBb,cAAcA;;;;;AAIxD;AAEAT,WAAW8C,WAAW,GAAG;AACzB,SAAS9C,UAAU,GAAG"}
@@ -3,7 +3,7 @@ import { forwardRef, Children } from "react";
3
3
  import classNames from "classnames/dedupe";
4
4
  const SVG = /*#__PURE__*/ forwardRef((props, ref)=>{
5
5
  const { children, className, ...otherProps } = props;
6
- const classes = classNames("mobius", "mobius/SVG", className);
6
+ const classes = classNames("mobius", "mobius-svg", className);
7
7
  const svgNode = Children.only(children);
8
8
  // Remove originalType and mdxType props
9
9
  const { children: svgChildren, viewBox, xmlns } = svgNode.props;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SVG/SVG.tsx"],"sourcesContent":["import { Ref, forwardRef, RefAttributes, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\n\nexport interface SVGProps extends DOMProps, RefAttributes<SVGSVGElement> {\n children: React.ReactElement<React.SVGProps<SVGSVGElement>>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type SVGRef = Ref<SVGSVGElement>;\n\nconst SVG: ForwardedRefComponent<SVGProps, SVGSVGElement> = forwardRef(\n (props: SVGProps, ref: SVGRef) => {\n const { children, className, ...otherProps } = props;\n\n const classes = classNames(\"mobius\", \"mobius/SVG\", className);\n const svgNode = Children.only(children);\n // Remove originalType and mdxType props\n const { children: svgChildren, viewBox, xmlns } = svgNode.props;\n\n return (\n <svg\n viewBox={viewBox}\n xmlns={xmlns}\n ref={ref}\n {...otherProps}\n className={classes}\n >\n {svgChildren}\n </svg>\n );\n },\n);\n\nSVG.displayName = \"SVG\";\nexport { SVG };\n"],"names":["forwardRef","Children","classNames","SVG","props","ref","children","className","otherProps","classes","svgNode","only","svgChildren","viewBox","xmlns","svg","displayName"],"mappings":";AAAA,SAAcA,UAAU,EAAiBC,QAAQ,QAAQ,QAAQ;AACjE,OAAOC,gBAAgB,oBAAoB;AAY3C,MAAMC,oBAAsDH,WAC1D,CAACI,OAAiBC;IAChB,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,YAAY,GAAGJ;IAE/C,MAAMK,UAAUP,WAAW,UAAU,cAAcK;IACnD,MAAMG,UAAUT,SAASU,IAAI,CAACL;IAC9B,wCAAwC;IACxC,MAAM,EAAEA,UAAUM,WAAW,EAAEC,OAAO,EAAEC,KAAK,EAAE,GAAGJ,QAAQN,KAAK;IAE/D,qBACE,KAACW;QACCF,SAASA;QACTC,OAAOA;QACPT,KAAKA;QACJ,GAAGG,UAAU;QACdD,WAAWE;kBAEVG;;AAGP;AAGFT,IAAIa,WAAW,GAAG;AAClB,SAASb,GAAG,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/SVG/SVG.tsx"],"sourcesContent":["import { Ref, forwardRef, RefAttributes, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\nimport { ForwardedRefComponent } from \"../../types/components\";\n\nexport interface SVGProps extends DOMProps, RefAttributes<SVGSVGElement> {\n children: React.ReactElement<React.SVGProps<SVGSVGElement>>;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport type SVGRef = Ref<SVGSVGElement>;\n\nconst SVG: ForwardedRefComponent<SVGProps, SVGSVGElement> = forwardRef(\n (props: SVGProps, ref: SVGRef) => {\n const { children, className, ...otherProps } = props;\n\n const classes = classNames(\"mobius\", \"mobius-svg\", className);\n const svgNode = Children.only(children);\n // Remove originalType and mdxType props\n const { children: svgChildren, viewBox, xmlns } = svgNode.props;\n\n return (\n <svg\n viewBox={viewBox}\n xmlns={xmlns}\n ref={ref}\n {...otherProps}\n className={classes}\n >\n {svgChildren}\n </svg>\n );\n },\n);\n\nSVG.displayName = \"SVG\";\nexport { SVG };\n"],"names":["forwardRef","Children","classNames","SVG","props","ref","children","className","otherProps","classes","svgNode","only","svgChildren","viewBox","xmlns","svg","displayName"],"mappings":";AAAA,SAAcA,UAAU,EAAiBC,QAAQ,QAAQ,QAAQ;AACjE,OAAOC,gBAAgB,oBAAoB;AAY3C,MAAMC,oBAAsDH,WAC1D,CAACI,OAAiBC;IAChB,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,YAAY,GAAGJ;IAE/C,MAAMK,UAAUP,WAAW,UAAU,cAAcK;IACnD,MAAMG,UAAUT,SAASU,IAAI,CAACL;IAC9B,wCAAwC;IACxC,MAAM,EAAEA,UAAUM,WAAW,EAAEC,OAAO,EAAEC,KAAK,EAAE,GAAGJ,QAAQN,KAAK;IAE/D,qBACE,KAACW;QACCF,SAASA;QACTC,OAAOA;QACPT,KAAKA;QACJ,GAAGG,UAAU;QACdD,WAAWE;kBAEVG;;AAGP;AAGFT,IAAIa,WAAW,GAAG;AAClB,SAASb,GAAG,GAAG"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import classNames from "classnames/dedupe";
3
3
  const Segment = (props)=>{
4
4
  const { heading, children, colour, inverted, className, ...rest } = props;
5
- const classes = classNames("mobius", "mobius/Segment", colour, {
5
+ const classes = classNames("mobius", "mobius-segment", colour, {
6
6
  inverted
7
7
  }, className);
8
8
  return /*#__PURE__*/ _jsxs("div", {
@@ -10,7 +10,7 @@ const Segment = (props)=>{
10
10
  ...rest,
11
11
  children: [
12
12
  heading && /*#__PURE__*/ _jsx("div", {
13
- className: "mobius/SegmentHeading",
13
+ className: "mobius-segment__heading",
14
14
  children: heading
15
15
  }),
16
16
  children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Segment/Segment.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport interface SegmentProps extends DOMProps {\n className?: string;\n heading?: string;\n /** Background colour for Segment */\n colour?: \"subtle\" | \"primary\" | \"secondary\";\n /** When inverted, text is white. Use on darker backgrounds. */\n inverted?: boolean;\n children?: ReactNode;\n}\n\nconst Segment = (props: SegmentProps) => {\n const { heading, children, colour, inverted, className, ...rest } = props;\n\n const classes = classNames(\n \"mobius\",\n \"mobius/Segment\",\n colour,\n { inverted },\n className,\n );\n\n return (\n <div className={classes} {...rest}>\n {heading && <div className=\"mobius/SegmentHeading\">{heading}</div>}\n {children}\n </div>\n );\n};\n\nSegment.displayName = \"Segment\";\nexport { Segment };\n"],"names":["classNames","Segment","props","heading","children","colour","inverted","className","rest","classes","div","displayName"],"mappings":";AACA,OAAOA,gBAAgB,oBAAoB;AAa3C,MAAMC,UAAU,CAACC;IACf,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,MAAM,GAAGN;IAEpE,MAAMO,UAAUT,WACd,UACA,kBACAK,QACA;QAAEC;IAAS,GACXC;IAGF,qBACE,MAACG;QAAIH,WAAWE;QAAU,GAAGD,IAAI;;YAC9BL,yBAAW,KAACO;gBAAIH,WAAU;0BAAyBJ;;YACnDC;;;AAGP;AAEAH,QAAQU,WAAW,GAAG;AACtB,SAASV,OAAO,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/Segment/Segment.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport interface SegmentProps extends DOMProps {\n className?: string;\n heading?: string;\n /** Background colour for Segment */\n colour?: \"subtle\" | \"primary\" | \"secondary\";\n /** When inverted, text is white. Use on darker backgrounds. */\n inverted?: boolean;\n children?: ReactNode;\n}\n\nconst Segment = (props: SegmentProps) => {\n const { heading, children, colour, inverted, className, ...rest } = props;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-segment\",\n colour,\n { inverted },\n className,\n );\n\n return (\n <div className={classes} {...rest}>\n {heading && <div className=\"mobius-segment__heading\">{heading}</div>}\n {children}\n </div>\n );\n};\n\nSegment.displayName = \"Segment\";\nexport { Segment };\n"],"names":["classNames","Segment","props","heading","children","colour","inverted","className","rest","classes","div","displayName"],"mappings":";AACA,OAAOA,gBAAgB,oBAAoB;AAa3C,MAAMC,UAAU,CAACC;IACf,MAAM,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,MAAM,GAAGN;IAEpE,MAAMO,UAAUT,WACd,UACA,kBACAK,QACA;QAAEC;IAAS,GACXC;IAGF,qBACE,MAACG;QAAIH,WAAWE;QAAU,GAAGD,IAAI;;YAC9BL,yBAAW,KAACO;gBAAIH,WAAU;0BAA2BJ;;YACrDC;;;AAGP;AAEAH,QAAQU,WAAW,GAAG;AACtB,SAASV,OAAO,GAAG"}
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import classNames from "classnames/dedupe";
3
3
  const SegmentGroup = (props)=>{
4
- const { children, horizontal, margin, className, ...rest } = props;
5
- const marginClass = margin ? `margin-${margin}` : "";
6
- const classes = classNames("mobius", "mobius/SegmentGroup", className, {
7
- horizontal
8
- }, marginClass);
4
+ const { children, horizontal, gap, className, ...rest } = props;
5
+ const gapClass = gap ? `gap-${gap}` : "";
6
+ const classes = classNames("mobius", "mobius-segment-group", className, {
7
+ "--is-horizontal": horizontal
8
+ }, gapClass);
9
9
  return /*#__PURE__*/ _jsx("div", {
10
10
  className: classes,
11
11
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Segment/SegmentGroup.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport interface SegmentGroupProps extends DOMProps {\n className?: string;\n horizontal?: boolean;\n margin?: \"size-xs\" | \"size-s\" | \"size-m\" | \"size-l\" | \"size-xl\" | \"size-xxl\";\n children?: ReactNode;\n}\n\nconst SegmentGroup = (props: SegmentGroupProps) => {\n const { children, horizontal, margin, className, ...rest } = props;\n\n const marginClass = margin ? `margin-${margin}` : \"\";\n const classes = classNames(\n \"mobius\",\n \"mobius/SegmentGroup\",\n className,\n { horizontal },\n marginClass,\n );\n\n return (\n <div className={classes} {...rest}>\n {children}\n </div>\n );\n};\n\nSegmentGroup.displayName = \"SegmentGroup\";\nexport { SegmentGroup };\n"],"names":["classNames","SegmentGroup","props","children","horizontal","margin","className","rest","marginClass","classes","div","displayName"],"mappings":";AACA,OAAOA,gBAAgB,oBAAoB;AAU3C,MAAMC,eAAe,CAACC;IACpB,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,MAAM,EAAEC,SAAS,EAAE,GAAGC,MAAM,GAAGL;IAE7D,MAAMM,cAAcH,SAAS,CAAC,OAAO,EAAEA,OAAO,CAAC,GAAG;IAClD,MAAMI,UAAUT,WACd,UACA,uBACAM,WACA;QAAEF;IAAW,GACbI;IAGF,qBACE,KAACE;QAAIJ,WAAWG;QAAU,GAAGF,IAAI;kBAC9BJ;;AAGP;AAEAF,aAAaU,WAAW,GAAG;AAC3B,SAASV,YAAY,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/Segment/SegmentGroup.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport { DOMProps } from \"../../types/dom\";\n\nexport interface SegmentGroupProps extends DOMProps {\n className?: string;\n horizontal?: boolean;\n gap?: \"size-xs\" | \"size-s\" | \"size-m\" | \"size-l\" | \"size-xl\" | \"size-xxl\";\n children?: ReactNode;\n}\n\nconst SegmentGroup = (props: SegmentGroupProps) => {\n const { children, horizontal, gap, className, ...rest } = props;\n\n const gapClass = gap ? `gap-${gap}` : \"\";\n const classes = classNames(\n \"mobius\",\n \"mobius-segment-group\",\n className,\n { \"--is-horizontal\": horizontal },\n gapClass,\n );\n\n return (\n <div className={classes} {...rest}>\n {children}\n </div>\n );\n};\n\nSegmentGroup.displayName = \"SegmentGroup\";\nexport { SegmentGroup };\n"],"names":["classNames","SegmentGroup","props","children","horizontal","gap","className","rest","gapClass","classes","div","displayName"],"mappings":";AACA,OAAOA,gBAAgB,oBAAoB;AAU3C,MAAMC,eAAe,CAACC;IACpB,MAAM,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,GAAG,EAAEC,SAAS,EAAE,GAAGC,MAAM,GAAGL;IAE1D,MAAMM,WAAWH,MAAM,CAAC,IAAI,EAAEA,IAAI,CAAC,GAAG;IACtC,MAAMI,UAAUT,WACd,UACA,wBACAM,WACA;QAAE,mBAAmBF;IAAW,GAChCI;IAGF,qBACE,KAACE;QAAIJ,WAAWG;QAAU,GAAGF,IAAI;kBAC9BJ;;AAGP;AAEAF,aAAaU,WAAW,GAAG;AAC3B,SAASV,YAAY,GAAG"}