@simplybusiness/mobius 10.1.2 → 10.3.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 (342) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/cjs/components/AddressLookup/AddressLookup.js +223 -162
  3. package/dist/cjs/components/AddressLookup/AddressLookup.js.map +4 -4
  4. package/dist/cjs/components/AddressLookup/index.js +223 -162
  5. package/dist/cjs/components/AddressLookup/index.js.map +4 -4
  6. package/dist/cjs/components/Alert/Alert.js +10 -7
  7. package/dist/cjs/components/Alert/Alert.js.map +2 -2
  8. package/dist/cjs/components/Alert/index.js +10 -7
  9. package/dist/cjs/components/Alert/index.js.map +2 -2
  10. package/dist/cjs/components/Box/Box.js +18 -3
  11. package/dist/cjs/components/Box/Box.js.map +3 -3
  12. package/dist/cjs/components/Box/index.js +18 -3
  13. package/dist/cjs/components/Box/index.js.map +3 -3
  14. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js +18 -3
  15. package/dist/cjs/components/Breadcrumbs/BreadcrumbItem.js.map +3 -3
  16. package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  17. package/dist/cjs/components/Breadcrumbs/index.js +18 -3
  18. package/dist/cjs/components/Breadcrumbs/index.js.map +3 -3
  19. package/dist/cjs/components/Checkbox/Checkbox.js +190 -129
  20. package/dist/cjs/components/Checkbox/Checkbox.js.map +4 -4
  21. package/dist/cjs/components/Checkbox/CheckboxGroup.js +195 -134
  22. package/dist/cjs/components/Checkbox/CheckboxGroup.js.map +4 -4
  23. package/dist/cjs/components/Checkbox/index.js +203 -142
  24. package/dist/cjs/components/Checkbox/index.js.map +4 -4
  25. package/dist/cjs/components/Combobox/Combobox.js +218 -157
  26. package/dist/cjs/components/Combobox/Combobox.js.map +4 -4
  27. package/dist/cjs/components/Combobox/index.js +218 -157
  28. package/dist/cjs/components/Combobox/index.js.map +4 -4
  29. package/dist/cjs/components/DateField/DateField.js +191 -130
  30. package/dist/cjs/components/DateField/DateField.js.map +4 -4
  31. package/dist/cjs/components/DateField/index.js +191 -130
  32. package/dist/cjs/components/DateField/index.js.map +4 -4
  33. package/dist/cjs/components/ErrorMessage/ErrorMessage.js +182 -121
  34. package/dist/cjs/components/ErrorMessage/ErrorMessage.js.map +4 -4
  35. package/dist/cjs/components/ErrorMessage/index.js +182 -121
  36. package/dist/cjs/components/ErrorMessage/index.js.map +4 -4
  37. package/dist/cjs/components/ExpandableText/ExpandableText.js +182 -121
  38. package/dist/cjs/components/ExpandableText/ExpandableText.js.map +4 -4
  39. package/dist/cjs/components/ExpandableText/index.js +182 -121
  40. package/dist/cjs/components/ExpandableText/index.js.map +4 -4
  41. package/dist/cjs/components/Grid/Grid.js +2 -2
  42. package/dist/cjs/components/Grid/Grid.js.map +2 -2
  43. package/dist/cjs/components/Grid/Item.js +3 -3
  44. package/dist/cjs/components/Grid/Item.js.map +2 -2
  45. package/dist/cjs/components/Grid/index.js +5 -5
  46. package/dist/cjs/components/Grid/index.js.map +2 -2
  47. package/dist/cjs/components/List/List.js +15 -7
  48. package/dist/cjs/components/List/List.js.map +2 -2
  49. package/dist/cjs/components/List/index.js +15 -7
  50. package/dist/cjs/components/List/index.js.map +2 -2
  51. package/dist/cjs/components/Logo/Logo.js.map +2 -2
  52. package/dist/cjs/components/Logo/index.js.map +2 -2
  53. package/dist/cjs/components/MaskedField/MaskedField.js +185 -124
  54. package/dist/cjs/components/MaskedField/MaskedField.js.map +4 -4
  55. package/dist/cjs/components/MaskedField/index.js +185 -124
  56. package/dist/cjs/components/MaskedField/index.js.map +4 -4
  57. package/dist/cjs/components/Modal/Header.js +38 -21
  58. package/dist/cjs/components/Modal/Header.js.map +3 -3
  59. package/dist/cjs/components/Modal/Modal.js +13 -3
  60. package/dist/cjs/components/Modal/Modal.js.map +2 -2
  61. package/dist/cjs/components/Modal/ModalContext.js +4 -1
  62. package/dist/cjs/components/Modal/ModalContext.js.map +2 -2
  63. package/dist/cjs/components/Modal/index.js +63 -39
  64. package/dist/cjs/components/Modal/index.js.map +3 -3
  65. package/dist/cjs/components/Modal/types.js.map +1 -1
  66. package/dist/cjs/components/Modal/useModal.js +6 -3
  67. package/dist/cjs/components/Modal/useModal.js.map +2 -2
  68. package/dist/cjs/components/NumberField/NumberField.js +185 -124
  69. package/dist/cjs/components/NumberField/NumberField.js.map +4 -4
  70. package/dist/cjs/components/NumberField/index.js +185 -124
  71. package/dist/cjs/components/NumberField/index.js.map +4 -4
  72. package/dist/cjs/components/PasswordField/PasswordField.js +185 -124
  73. package/dist/cjs/components/PasswordField/PasswordField.js.map +4 -4
  74. package/dist/cjs/components/PasswordField/ShowHideButton.js +182 -121
  75. package/dist/cjs/components/PasswordField/ShowHideButton.js.map +4 -4
  76. package/dist/cjs/components/PasswordField/index.js +185 -124
  77. package/dist/cjs/components/PasswordField/index.js.map +4 -4
  78. package/dist/cjs/components/Radio/Radio.js +182 -121
  79. package/dist/cjs/components/Radio/Radio.js.map +4 -4
  80. package/dist/cjs/components/Radio/RadioGroup.js +182 -121
  81. package/dist/cjs/components/Radio/RadioGroup.js.map +4 -4
  82. package/dist/cjs/components/Radio/index.js +182 -121
  83. package/dist/cjs/components/Radio/index.js.map +4 -4
  84. package/dist/cjs/components/SVG/SVG.js.map +2 -2
  85. package/dist/cjs/components/SVG/index.js.map +2 -2
  86. package/dist/cjs/components/Segment/Segment.js +2 -2
  87. package/dist/cjs/components/Segment/Segment.js.map +2 -2
  88. package/dist/cjs/components/Segment/index.js +2 -2
  89. package/dist/cjs/components/Segment/index.js.map +2 -2
  90. package/dist/cjs/components/Select/Select.js +182 -121
  91. package/dist/cjs/components/Select/Select.js.map +4 -4
  92. package/dist/cjs/components/Select/index.js +182 -121
  93. package/dist/cjs/components/Select/index.js.map +4 -4
  94. package/dist/cjs/components/Table/HeaderCell.js +2 -2
  95. package/dist/cjs/components/Table/HeaderCell.js.map +2 -2
  96. package/dist/cjs/components/Table/index.js +2 -2
  97. package/dist/cjs/components/Table/index.js.map +2 -2
  98. package/dist/cjs/components/Text/Text.js +10 -7
  99. package/dist/cjs/components/Text/Text.js.map +2 -2
  100. package/dist/cjs/components/Text/index.js +10 -7
  101. package/dist/cjs/components/Text/index.js.map +2 -2
  102. package/dist/cjs/components/TextArea/TextArea.js +182 -121
  103. package/dist/cjs/components/TextArea/TextArea.js.map +4 -4
  104. package/dist/cjs/components/TextArea/index.js +182 -121
  105. package/dist/cjs/components/TextArea/index.js.map +4 -4
  106. package/dist/cjs/components/TextField/TextField.js +185 -124
  107. package/dist/cjs/components/TextField/TextField.js.map +4 -4
  108. package/dist/cjs/components/TextField/index.js +185 -124
  109. package/dist/cjs/components/TextField/index.js.map +4 -4
  110. package/dist/cjs/components/TextOrHTML/TextOrHTML.js +10 -7
  111. package/dist/cjs/components/TextOrHTML/TextOrHTML.js.map +2 -2
  112. package/dist/cjs/components/TextOrHTML/index.js +10 -7
  113. package/dist/cjs/components/TextOrHTML/index.js.map +2 -2
  114. package/dist/cjs/components/index.js +209 -148
  115. package/dist/cjs/components/index.js.map +4 -4
  116. package/dist/cjs/index.js +209 -148
  117. package/dist/cjs/index.js.map +4 -4
  118. package/dist/cjs/meta.json +876 -571
  119. package/dist/cjs/utils/filterUnsetValues.js +36 -0
  120. package/dist/cjs/utils/filterUnsetValues.js.map +7 -0
  121. package/dist/cjs/utils/index.js +13 -0
  122. package/dist/cjs/utils/index.js.map +3 -3
  123. package/dist/esm/{chunk-NYFCN7EA.js → chunk-6GGDGE7D.js} +4 -4
  124. package/dist/esm/{chunk-OUKMP3DO.js → chunk-7JT4DKQA.js} +2 -2
  125. package/dist/esm/chunk-CZWEMAKZ.js +16 -0
  126. package/dist/esm/chunk-CZWEMAKZ.js.map +7 -0
  127. package/dist/esm/{chunk-Q5YY6HPF.js → chunk-DZVBN6ZI.js} +5 -5
  128. package/dist/esm/{chunk-OC6ULO4M.js → chunk-EJLNC5X5.js} +2 -2
  129. package/dist/esm/{chunk-LVZ2T6AY.js → chunk-EZ4S7XVZ.js} +16 -8
  130. package/dist/esm/chunk-EZ4S7XVZ.js.map +7 -0
  131. package/dist/esm/chunk-FIAL4HTE.js +1 -0
  132. package/dist/esm/{chunk-YLL2DKVF.js → chunk-FQ6P6JB5.js} +3 -3
  133. package/dist/esm/chunk-FQ6P6JB5.js.map +7 -0
  134. package/dist/esm/{chunk-OZ2IUZIJ.js → chunk-HP2NRM7T.js} +2 -2
  135. package/dist/esm/{chunk-PB2OICEB.js → chunk-I6EUIFUJ.js} +15 -11
  136. package/dist/esm/chunk-I6EUIFUJ.js.map +7 -0
  137. package/dist/esm/{chunk-3IMYDZRT.js → chunk-JFDDW3IV.js} +1 -1
  138. package/dist/esm/chunk-JFDDW3IV.js.map +7 -0
  139. package/dist/esm/{chunk-4IB5ROL6.js → chunk-KXLTGNKF.js} +12 -5
  140. package/dist/esm/chunk-KXLTGNKF.js.map +7 -0
  141. package/dist/esm/{chunk-TL4OCKNP.js → chunk-LWRY3VIB.js} +2 -2
  142. package/dist/esm/chunk-MPB5F6QL.js +53 -0
  143. package/dist/esm/chunk-MPB5F6QL.js.map +7 -0
  144. package/dist/esm/{chunk-DNMS6KEY.js → chunk-PARKMZYZ.js} +4 -4
  145. package/dist/esm/{chunk-DNMS6KEY.js.map → chunk-PARKMZYZ.js.map} +2 -2
  146. package/dist/esm/chunk-Q5MIALGZ.js +15 -0
  147. package/dist/esm/{chunk-ZHX7Z5IU.js.map → chunk-Q5MIALGZ.js.map} +2 -2
  148. package/dist/esm/{chunk-N5WGQAHM.js → chunk-QWD72EVP.js} +4 -4
  149. package/dist/esm/{chunk-KLXMVFIR.js → chunk-TBKQA5ZF.js} +5 -2
  150. package/dist/esm/{chunk-KLXMVFIR.js.map → chunk-TBKQA5ZF.js.map} +2 -2
  151. package/dist/esm/{chunk-B243ELKZ.js → chunk-TJCUKTFX.js} +10 -4
  152. package/dist/esm/chunk-TJCUKTFX.js.map +7 -0
  153. package/dist/esm/{chunk-P5ZPHAQT.js → chunk-UCNWPF7R.js} +3 -3
  154. package/dist/esm/chunk-UCNWPF7R.js.map +7 -0
  155. package/dist/esm/{chunk-S37ULE57.js → chunk-VASDBM4Z.js} +1 -1
  156. package/dist/esm/{chunk-S37ULE57.js.map → chunk-VASDBM4Z.js.map} +2 -2
  157. package/dist/esm/{chunk-QRHDVVRK.js → chunk-VIDKIVA6.js} +2 -2
  158. package/dist/esm/{chunk-SDGIWQ3R.js → chunk-WP5OEMNG.js} +3 -3
  159. package/dist/esm/{chunk-SDGIWQ3R.js.map → chunk-WP5OEMNG.js.map} +2 -2
  160. package/dist/esm/{chunk-MLN5ELQR.js → chunk-WXRQIMMM.js} +1 -1
  161. package/dist/esm/chunk-WXRQIMMM.js.map +7 -0
  162. package/dist/esm/{chunk-O47IW7HD.js → chunk-YCE2KOB2.js} +5 -5
  163. package/dist/esm/{chunk-SNRPWCHL.js → chunk-ZS5MFZHD.js} +11 -8
  164. package/dist/esm/chunk-ZS5MFZHD.js.map +7 -0
  165. package/dist/esm/components/Accordion/Accordion.js +7 -6
  166. package/dist/esm/components/Accordion/AccordionLink.js +6 -5
  167. package/dist/esm/components/Accordion/AccordionList.js +8 -7
  168. package/dist/esm/components/Accordion/index.js +8 -7
  169. package/dist/esm/components/AddressLookup/AddressLookup.js +41 -40
  170. package/dist/esm/components/AddressLookup/__mocks__/LoqateAddressLookupService.js +2 -1
  171. package/dist/esm/components/AddressLookup/__mocks__/LoqateAddressLookupService.js.map +1 -1
  172. package/dist/esm/components/AddressLookup/index.js +41 -40
  173. package/dist/esm/components/Alert/Alert.js +4 -4
  174. package/dist/esm/components/Alert/index.js +4 -4
  175. package/dist/esm/components/Box/Box.js +3 -2
  176. package/dist/esm/components/Box/index.js +3 -2
  177. package/dist/esm/components/Breadcrumbs/BreadcrumbItem.js +4 -3
  178. package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -1
  179. package/dist/esm/components/Breadcrumbs/index.js +7 -6
  180. package/dist/esm/components/Checkbox/Checkbox.js +41 -40
  181. package/dist/esm/components/Checkbox/CheckboxGroup.js +41 -40
  182. package/dist/esm/components/Checkbox/index.js +41 -40
  183. package/dist/esm/components/Combobox/Combobox.js +41 -40
  184. package/dist/esm/components/Combobox/index.js +41 -40
  185. package/dist/esm/components/Container/Container.js +2 -1
  186. package/dist/esm/components/Container/index.js +2 -1
  187. package/dist/esm/components/DateField/DateField.js +41 -40
  188. package/dist/esm/components/DateField/index.js +41 -40
  189. package/dist/esm/components/Drawer/Drawer.js +4 -3
  190. package/dist/esm/components/Drawer/index.js +4 -3
  191. package/dist/esm/components/ErrorMessage/ErrorMessage.js +41 -40
  192. package/dist/esm/components/ErrorMessage/index.js +41 -40
  193. package/dist/esm/components/ExpandableText/ExpandableText.js +41 -40
  194. package/dist/esm/components/ExpandableText/index.js +41 -40
  195. package/dist/esm/components/Fieldset/Fieldset.js +2 -1
  196. package/dist/esm/components/Fieldset/index.js +2 -1
  197. package/dist/esm/components/Flex/Flex.js +2 -1
  198. package/dist/esm/components/Flex/index.js +2 -1
  199. package/dist/esm/components/Flex/propUtils.js +2 -1
  200. package/dist/esm/components/Grid/Grid.js +3 -2
  201. package/dist/esm/components/Grid/Item.js +5 -4
  202. package/dist/esm/components/Grid/index.js +7 -6
  203. package/dist/esm/components/List/List.js +1 -1
  204. package/dist/esm/components/List/index.js +1 -1
  205. package/dist/esm/components/Logo/Logo.js +1 -1
  206. package/dist/esm/components/Logo/index.js +1 -1
  207. package/dist/esm/components/MaskedField/MaskedField.js +41 -40
  208. package/dist/esm/components/MaskedField/MaskedField.js.map +1 -1
  209. package/dist/esm/components/MaskedField/index.js +41 -40
  210. package/dist/esm/components/Modal/Header.js +3 -3
  211. package/dist/esm/components/Modal/Modal.js +6 -5
  212. package/dist/esm/components/Modal/ModalContext.js +1 -1
  213. package/dist/esm/components/Modal/index.js +10 -9
  214. package/dist/esm/components/Modal/useModal.js +2 -2
  215. package/dist/esm/components/NumberField/NumberField.js +41 -40
  216. package/dist/esm/components/NumberField/index.js +41 -40
  217. package/dist/esm/components/PasswordField/PasswordField.js +41 -40
  218. package/dist/esm/components/PasswordField/ShowHideButton.js +41 -40
  219. package/dist/esm/components/PasswordField/index.js +41 -40
  220. package/dist/esm/components/Radio/Radio.js +41 -40
  221. package/dist/esm/components/Radio/RadioGroup.js +41 -40
  222. package/dist/esm/components/Radio/index.js +41 -40
  223. package/dist/esm/components/SVG/SVG.js +1 -1
  224. package/dist/esm/components/SVG/index.js +1 -1
  225. package/dist/esm/components/Segment/Segment.js +1 -1
  226. package/dist/esm/components/Segment/index.js +1 -1
  227. package/dist/esm/components/Select/Select.js +41 -40
  228. package/dist/esm/components/Select/index.js +41 -40
  229. package/dist/esm/components/Slider/Slider.js +4 -3
  230. package/dist/esm/components/Slider/index.js +4 -3
  231. package/dist/esm/components/Table/HeaderCell.js +1 -1
  232. package/dist/esm/components/Table/index.js +2 -2
  233. package/dist/esm/components/Text/Text.js +1 -1
  234. package/dist/esm/components/Text/index.js +1 -1
  235. package/dist/esm/components/TextArea/TextArea.js +41 -40
  236. package/dist/esm/components/TextArea/index.js +41 -40
  237. package/dist/esm/components/TextField/TextField.js +41 -40
  238. package/dist/esm/components/TextField/index.js +41 -40
  239. package/dist/esm/components/TextOrHTML/TextOrHTML.js +2 -2
  240. package/dist/esm/components/TextOrHTML/index.js +2 -2
  241. package/dist/esm/components/Title/Title.js +2 -1
  242. package/dist/esm/components/Title/index.js +2 -1
  243. package/dist/esm/components/Toast/index.js +3 -3
  244. package/dist/esm/components/Trust/Trust.js +2 -1
  245. package/dist/esm/components/Trust/index.js +2 -1
  246. package/dist/esm/components/index.js +54 -53
  247. package/dist/esm/hooks/index.js +6 -5
  248. package/dist/esm/hooks/useDialog/index.js +2 -1
  249. package/dist/esm/hooks/useDialog/useDialog.js +2 -1
  250. package/dist/esm/hooks/useDialogPolyfill/index.js +2 -1
  251. package/dist/esm/hooks/useDialogPolyfill/useDialogPolyfill.js +2 -1
  252. package/dist/esm/index.js +56 -55
  253. package/dist/esm/meta.json +5694 -5363
  254. package/dist/esm/utils/filterUnsetValues.js +8 -0
  255. package/dist/esm/utils/filterUnsetValues.js.map +7 -0
  256. package/dist/esm/utils/index.js +5 -1
  257. package/dist/tsconfig.build.tsbuildinfo +1 -1
  258. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  259. package/dist/types/components/Grid/Grid.d.ts +1 -1
  260. package/dist/types/components/Grid/Item.d.ts +1 -1
  261. package/dist/types/components/List/List.d.ts +1 -1
  262. package/dist/types/components/Logo/Logo.d.ts +8 -0
  263. package/dist/types/components/Modal/types.d.ts +2 -0
  264. package/dist/types/components/Modal/useModal.d.ts +2 -0
  265. package/dist/types/components/SVG/SVG.d.ts +4 -0
  266. package/dist/types/components/Segment/Segment.d.ts +4 -3
  267. package/dist/types/components/Table/HeaderCell.d.ts +2 -1
  268. package/dist/types/components/Text/Text.d.ts +1 -1
  269. package/dist/types/utils/filterUnsetValues.d.ts +6 -0
  270. package/dist/types/utils/index.d.ts +1 -0
  271. package/package.json +4 -4
  272. package/src/components/Accordion/Accordion.test.tsx +7 -0
  273. package/src/components/AddressLookup/AddressLookup.test.tsx +76 -0
  274. package/src/components/AddressLookup/AddressLookup.tsx +9 -0
  275. package/src/components/Box/Box.test.tsx +24 -0
  276. package/src/components/Box/Box.tsx +11 -3
  277. package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +130 -0
  278. package/src/components/Breadcrumbs/Breadcrumbs.tsx +1 -1
  279. package/src/components/Button/Button.test.tsx +77 -0
  280. package/src/components/Container/Container.test.tsx +19 -0
  281. package/src/components/Divider/Divider.test.tsx +18 -0
  282. package/src/components/Drawer/Drawer.css +24 -3
  283. package/src/components/Flex/Flex.test.tsx +7 -0
  284. package/src/components/Grid/Grid.test.tsx +30 -0
  285. package/src/components/Grid/Grid.tsx +2 -2
  286. package/src/components/Grid/Item.tsx +3 -3
  287. package/src/components/Icon/Icon.test.tsx +33 -0
  288. package/src/components/Image/Image.test.tsx +7 -0
  289. package/src/components/Label/Label.test.tsx +7 -0
  290. package/src/components/Link/Link.test.tsx +44 -0
  291. package/src/components/List/List.test.tsx +11 -0
  292. package/src/components/List/List.tsx +6 -2
  293. package/src/components/Logo/Logo.test.tsx +36 -0
  294. package/src/components/Logo/Logo.tsx +8 -0
  295. package/src/components/Modal/Header.tsx +13 -2
  296. package/src/components/Modal/Modal.css +42 -3
  297. package/src/components/Modal/Modal.test.tsx +19 -1
  298. package/src/components/Modal/Modal.tsx +11 -2
  299. package/src/components/Modal/ModalContext.tsx +2 -0
  300. package/src/components/Modal/types.ts +2 -0
  301. package/src/components/Modal/useModal.ts +2 -2
  302. package/src/components/Option/Option.test.tsx +67 -0
  303. package/src/components/Progress/Progress.test.tsx +7 -0
  304. package/src/components/SVG/SVG.test.tsx +40 -0
  305. package/src/components/SVG/SVG.tsx +4 -0
  306. package/src/components/Segment/Segment.test.tsx +72 -0
  307. package/src/components/Segment/Segment.tsx +7 -4
  308. package/src/components/Stack/Stack.test.tsx +41 -1
  309. package/src/components/Table/HeaderCell.tsx +3 -2
  310. package/src/components/Table/Table.test.tsx +180 -0
  311. package/src/components/Text/Text.test.tsx +80 -0
  312. package/src/components/Text/Text.tsx +13 -8
  313. package/src/components/TextAreaInput/TextAreaInput.test.tsx +51 -0
  314. package/src/components/Trust/Trust.test.tsx +52 -1
  315. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +66 -0
  316. package/src/utils/filterUndefinedProps.test.ts +11 -0
  317. package/src/utils/filterUnsetValues.test.ts +16 -0
  318. package/src/utils/filterUnsetValues.ts +17 -0
  319. package/src/utils/index.ts +1 -0
  320. package/dist/esm/chunk-3IMYDZRT.js.map +0 -7
  321. package/dist/esm/chunk-4IB5ROL6.js.map +0 -7
  322. package/dist/esm/chunk-B243ELKZ.js.map +0 -7
  323. package/dist/esm/chunk-DSYPZETD.js +0 -1
  324. package/dist/esm/chunk-LVZ2T6AY.js.map +0 -7
  325. package/dist/esm/chunk-MLN5ELQR.js.map +0 -7
  326. package/dist/esm/chunk-P5ZPHAQT.js.map +0 -7
  327. package/dist/esm/chunk-PB2OICEB.js.map +0 -7
  328. package/dist/esm/chunk-SNRPWCHL.js.map +0 -7
  329. package/dist/esm/chunk-XNVA7FCA.js +0 -39
  330. package/dist/esm/chunk-XNVA7FCA.js.map +0 -7
  331. package/dist/esm/chunk-YLL2DKVF.js.map +0 -7
  332. package/dist/esm/chunk-ZHX7Z5IU.js +0 -15
  333. /package/dist/esm/{chunk-NYFCN7EA.js.map → chunk-6GGDGE7D.js.map} +0 -0
  334. /package/dist/esm/{chunk-OUKMP3DO.js.map → chunk-7JT4DKQA.js.map} +0 -0
  335. /package/dist/esm/{chunk-Q5YY6HPF.js.map → chunk-DZVBN6ZI.js.map} +0 -0
  336. /package/dist/esm/{chunk-OC6ULO4M.js.map → chunk-EJLNC5X5.js.map} +0 -0
  337. /package/dist/esm/{chunk-DSYPZETD.js.map → chunk-FIAL4HTE.js.map} +0 -0
  338. /package/dist/esm/{chunk-OZ2IUZIJ.js.map → chunk-HP2NRM7T.js.map} +0 -0
  339. /package/dist/esm/{chunk-TL4OCKNP.js.map → chunk-LWRY3VIB.js.map} +0 -0
  340. /package/dist/esm/{chunk-N5WGQAHM.js.map → chunk-QWD72EVP.js.map} +0 -0
  341. /package/dist/esm/{chunk-QRHDVVRK.js.map → chunk-VIDKIVA6.js.map} +0 -0
  342. /package/dist/esm/{chunk-O47IW7HD.js.map → chunk-YCE2KOB2.js.map} +0 -0
@@ -101,15 +101,18 @@ var import_dedupe2 = __toESM(require("classnames/dedupe"));
101
101
  var import_Text = require("@simplybusiness/mobius/src/components/Text/Text.css");
102
102
  var import_jsx_runtime2 = require("react/jsx-runtime");
103
103
  var getElementType = (variant, elementType) => {
104
- if (variant) {
105
- return ["h1", "h2", "h3", "h4"].includes(variant) ? variant : "p";
104
+ if (elementType) {
105
+ return elementType;
106
106
  }
107
- return elementType || "p";
107
+ if (variant && ["h1", "h2", "h3", "h4"].includes(variant)) {
108
+ return variant;
109
+ }
110
+ return "p";
108
111
  };
109
- var Text = ({ ref, elementType: Component = "p", ...props }) => {
112
+ var Text = ({ ref, elementType, ...props }) => {
110
113
  const { variant, className, spacing, ...otherProps } = props;
111
- const elementType = getElementType(variant, Component);
112
- const variantType = variant || elementType;
114
+ const Element = getElementType(variant, elementType);
115
+ const variantType = variant || Element;
113
116
  const classes = (0, import_dedupe2.default)(
114
117
  "mobius",
115
118
  "mobius-text",
@@ -117,7 +120,7 @@ var Text = ({ ref, elementType: Component = "p", ...props }) => {
117
120
  { [`--has-line-height-${spacing}`]: spacing },
118
121
  className
119
122
  );
120
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ref, ...otherProps, className: classes });
123
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Element, { ref, ...otherProps, className: classes });
121
124
  };
122
125
  Text.displayName = "Text";
123
126
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Alert/Alert.tsx", "../../../../src/components/Icon/Icon.tsx", "../../../../src/components/TextOrHTML/TextOrHTML.tsx", "../../../../src/components/Text/Text.tsx"],
4
- "sourcesContent": ["import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsHTML = autoDetect && isHTML(text);\n const shouldWrapInText = autoDetect\n ? textWrapper || !textIsHTML\n : textWrapper;\n const resolvedElementType = htmlElementType ?? (textIsHTML ? \"div\" : \"span\");\n const DangerousComponent = resolvedElementType;\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (shouldWrapInText) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nconst getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n) => {\n if (variant) {\n return [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant) ? variant : \"p\";\n }\n return elementType || \"p\";\n};\n\nconst Text = ({ ref, elementType: Component = \"p\", ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const elementType = getElementType(variant, Component);\n const variantType = variant || elementType;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Component ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsHTML = autoDetect && isHTML(text);\n const shouldWrapInText = autoDetect\n ? textWrapper || !textIsHTML\n : textWrapper;\n const resolvedElementType = htmlElementType ?? (textIsHTML ? \"div\" : \"span\");\n const DangerousComponent = resolvedElementType;\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (shouldWrapInText) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nconst getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n): ElementType => {\n // Explicit elementType always wins\n if (elementType) {\n return elementType;\n }\n // Infer element from variant\n if (variant && [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant)) {\n return variant as ElementType;\n }\n return \"p\";\n};\n\nconst Text = ({ ref, elementType, ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const Element: ElementType = getElementType(variant, elementType);\n const variantType = variant || Element;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Element ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_dedupe", "classNames", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "import_jsx_runtime", "classNames"]
7
7
  }
@@ -103,15 +103,18 @@ var import_dedupe2 = __toESM(require("classnames/dedupe"));
103
103
  var import_Text = require("@simplybusiness/mobius/src/components/Text/Text.css");
104
104
  var import_jsx_runtime2 = require("react/jsx-runtime");
105
105
  var getElementType = (variant, elementType) => {
106
- if (variant) {
107
- return ["h1", "h2", "h3", "h4"].includes(variant) ? variant : "p";
106
+ if (elementType) {
107
+ return elementType;
108
108
  }
109
- return elementType || "p";
109
+ if (variant && ["h1", "h2", "h3", "h4"].includes(variant)) {
110
+ return variant;
111
+ }
112
+ return "p";
110
113
  };
111
- var Text = ({ ref, elementType: Component = "p", ...props }) => {
114
+ var Text = ({ ref, elementType, ...props }) => {
112
115
  const { variant, className, spacing, ...otherProps } = props;
113
- const elementType = getElementType(variant, Component);
114
- const variantType = variant || elementType;
116
+ const Element = getElementType(variant, elementType);
117
+ const variantType = variant || Element;
115
118
  const classes = (0, import_dedupe2.default)(
116
119
  "mobius",
117
120
  "mobius-text",
@@ -119,7 +122,7 @@ var Text = ({ ref, elementType: Component = "p", ...props }) => {
119
122
  { [`--has-line-height-${spacing}`]: spacing },
120
123
  className
121
124
  );
122
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Component, { ref, ...otherProps, className: classes });
125
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Element, { ref, ...otherProps, className: classes });
123
126
  };
124
127
  Text.displayName = "Text";
125
128
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Alert/index.tsx", "../../../../src/components/Alert/Alert.tsx", "../../../../src/components/Icon/Icon.tsx", "../../../../src/components/TextOrHTML/TextOrHTML.tsx", "../../../../src/components/Text/Text.tsx"],
4
- "sourcesContent": ["export * from \"./Alert\";\n", "import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsHTML = autoDetect && isHTML(text);\n const shouldWrapInText = autoDetect\n ? textWrapper || !textIsHTML\n : textWrapper;\n const resolvedElementType = htmlElementType ?? (textIsHTML ? \"div\" : \"span\");\n const DangerousComponent = resolvedElementType;\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (shouldWrapInText) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nconst getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n) => {\n if (variant) {\n return [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant) ? variant : \"p\";\n }\n return elementType || \"p\";\n};\n\nconst Text = ({ ref, elementType: Component = \"p\", ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const elementType = getElementType(variant, Component);\n const variantType = variant || elementType;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Component ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export * from \"./Alert\";\n", "import { circleInfo, circleTick, error, warning } from \"@simplybusiness/icons\";\nimport classNames from \"classnames/dedupe\";\nimport type { ReactNode, RefAttributes } from \"react\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Icon } from \"../Icon\";\nimport { TextOrHTML } from \"../TextOrHTML\";\nimport \"./Alert.css\";\n\nexport type AlertElementType = HTMLDivElement;\n\nexport interface AlertProps extends DOMProps, RefAttributes<AlertElementType> {\n children?: ReactNode;\n /** Custom class name for setting specific CSS */\n className?: string;\n elementType?: React.ElementType;\n variant?: string;\n show?: boolean;\n header?: string;\n}\n\ntype AlertVariant = \"info\" | \"success\" | \"warning\" | \"error\";\n\nfunction isAlertVariant(value: string): value is AlertVariant {\n return (\n value === \"info\" ||\n value === \"success\" ||\n value === \"warning\" ||\n value === \"error\"\n );\n}\n\nconst Alert = ({ ref, ...props }: AlertProps) => {\n const {\n elementType: Element = \"div\",\n variant: variantProp,\n show = true,\n header,\n children,\n ...otherProps\n } = props;\n\n if (!show) return null;\n\n const variant: AlertVariant =\n variantProp && isAlertVariant(variantProp) ? variantProp : \"info\";\n\n const colorValue =\n variant === \"success\" ? `var(--color-valid)` : `var(--color-${variant})`;\n\n const classes = classNames(\n \"mobius\",\n \"mobius-alert\",\n {\n \"--info\": variant === \"info\",\n \"--success\": variant === \"success\",\n \"--warning\": variant === \"warning\",\n \"--error\": variant === \"error\",\n \"--has-header\": header,\n },\n otherProps.className,\n );\n const icon = {\n info: circleInfo,\n success: circleTick,\n warning,\n error,\n };\n\n const headerClasses = classNames(\"mobius\", \"mobius-alert__header\");\n const iconClasses = classNames(\"mobius\", \"mobius-alert__icon\");\n const contentClasses = classNames(\"mobius\", \"mobius-alert__content\");\n\n return (\n <Element ref={ref} role=\"alert\" {...otherProps} className={classes}>\n <span className={iconClasses}>\n <Icon icon={icon[variant]} color={colorValue} />\n </span>\n <div>\n {header && (\n <TextOrHTML\n autoDetect\n htmlElementType=\"span\"\n className={headerClasses}\n htmlClassName={headerClasses}\n text={header}\n />\n )}\n <div className={contentClasses}>{children}</div>\n </div>\n </Element>\n );\n};\n\nAlert.displayName = \"Alert\";\nexport { Alert };\n", "import classNames from \"classnames/dedupe\";\nimport type { IconProps } from \"./types\";\nimport \"./Icon.css\";\n\nconst ICON_PREFIX = \"mobius-icon\";\n\nconst capitaliseFirstLetter = (str: string) =>\n str.charAt(0).toUpperCase() + str.slice(1);\n\nexport function Icon({\n ref,\n icon,\n className,\n size = \"xs\",\n color,\n fixedWidth,\n spin,\n spinReverse,\n title,\n ...otherProps\n}: IconProps) {\n if (!icon) {\n throw new Error(\"Must specify icon object\");\n }\n\n const classes = classNames(\n \"mobius\",\n \"mobius-icon\",\n `svg-inline--${ICON_PREFIX}`,\n `--size-${size}`,\n className,\n {\n [`${ICON_PREFIX}-fw`]: fixedWidth,\n [`${ICON_PREFIX}-spin`]: spin || spinReverse,\n [`${ICON_PREFIX}-spin-reverse`]: spinReverse,\n },\n );\n\n const { iconName, width, height, svgPathData } = icon;\n const formattedIconName = iconName.split(\"-\").join(\" \");\n\n const defaultTitle = `${capitaliseFirstLetter(formattedIconName)} icon`;\n const titleText = title || defaultTitle;\n\n return (\n <svg\n ref={ref}\n focusable=\"false\"\n data-icon={iconName}\n className={classes}\n role=\"img\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${width} ${height}`}\n style={{ color }}\n {...otherProps}\n >\n <title>{titleText}</title>\n <path fill=\"currentColor\" d={svgPathData} />\n </svg>\n );\n}\n", "import type { RefAttributes } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextElementType, TextProps } from \"../Text/Text\";\nimport { Text } from \"../Text/Text\";\n\nexport type HTMLElementType = \"span\" | \"div\";\n\nconst isHTML = (text: string) => /^\\s*<[a-z]/i.test(text);\n\nexport interface TextOrHTMLProps\n extends Omit<TextProps, \"children\">, RefAttributes<TextElementType> {\n /** HTML string to be rendered with dangerouslySetInnerHTML */\n text: string;\n /** Custom class name for the dangerous HTML element */\n htmlClassName?: string;\n /** HTML element type for the dangerous HTML element */\n htmlElementType?: HTMLElementType;\n /** If true, wraps the dangerous HTML element inside a Text component */\n textWrapper?: boolean;\n /** If true, auto-detects whether text is HTML or plain text to determine wrapping and element type */\n autoDetect?: boolean;\n}\n\nconst TextOrHTML = ({\n ref,\n text,\n htmlClassName,\n htmlElementType,\n textWrapper = false,\n autoDetect = false,\n ...textProps\n}: TextOrHTMLProps) => {\n const textIsHTML = autoDetect && isHTML(text);\n const shouldWrapInText = autoDetect\n ? textWrapper || !textIsHTML\n : textWrapper;\n const resolvedElementType = htmlElementType ?? (textIsHTML ? \"div\" : \"span\");\n const DangerousComponent = resolvedElementType;\n\n // Memoize the dangerouslySetInnerHTML object to prevent unnecessary re-renders\n // See: https://github.com/facebook/react/issues/31660\n const dangerousHTML = useMemo(() => ({ __html: text }), [text]);\n\n const dangerousElement = (\n <DangerousComponent\n className={htmlClassName}\n dangerouslySetInnerHTML={dangerousHTML}\n />\n );\n\n if (shouldWrapInText) {\n return (\n <Text ref={ref} {...textProps}>\n {dangerousElement}\n </Text>\n );\n }\n\n return dangerousElement;\n};\n\nTextOrHTML.displayName = \"TextOrHTML\";\nexport { TextOrHTML };\n", "import type { ReactNode, RefAttributes } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport \"./Text.css\";\n\nexport type TextElementType = HTMLHeadingElement | HTMLParagraphElement;\nexport type TextVariantType =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"small\"\n | \"legal\"\n | \"title\";\nexport type ElementType = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"p\" | \"span\";\nexport interface TextProps extends DOMProps, RefAttributes<TextElementType> {\n /** HTML element for the text */\n elementType?: ElementType;\n /** Specify font size override */\n variant?: TextVariantType;\n /** Specify compact line height override */\n spacing?: \"loose\" | \"tight\";\n /** Custom class name for setting specific CSS */\n className?: string;\n children: ReactNode;\n style?: React.CSSProperties;\n}\n\nconst getElementType = (\n variant: TextVariantType | undefined,\n elementType: ElementType | undefined,\n): ElementType => {\n // Explicit elementType always wins\n if (elementType) {\n return elementType;\n }\n // Infer element from variant\n if (variant && [\"h1\", \"h2\", \"h3\", \"h4\"].includes(variant)) {\n return variant as ElementType;\n }\n return \"p\";\n};\n\nconst Text = ({ ref, elementType, ...props }: TextProps) => {\n // Remove non-DOM props from element\n const { variant, className, spacing, ...otherProps } = props;\n\n // If a variant is supplied, set the class name and element type\n const Element: ElementType = getElementType(variant, elementType);\n const variantType = variant || Element;\n const classes = classNames(\n \"mobius\",\n \"mobius-text\",\n { [`--is-${variantType}`]: variantType },\n { [`--has-line-height-${spacing}`]: spacing },\n className,\n );\n\n return <Element ref={ref} {...otherProps} className={classes} />;\n};\n\nText.displayName = \"Text\";\nexport { Text };\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_dedupe", "classNames", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "import_jsx_runtime", "classNames"]
7
7
  }
@@ -46,6 +46,18 @@ var filterUndefinedProps = (props) => {
46
46
  return filteredProps;
47
47
  };
48
48
 
49
+ // src/utils/filterUnsetValues.ts
50
+ var filterUnsetValues = (props) => {
51
+ const filtered = {};
52
+ Object.keys(props).forEach((key) => {
53
+ const value = props[key];
54
+ if (value !== void 0 && value !== null && value !== "") {
55
+ filtered[key] = value;
56
+ }
57
+ });
58
+ return filtered;
59
+ };
60
+
49
61
  // src/utils/getSpacingValue.ts
50
62
  var getSpacingValue = (padding) => {
51
63
  if (typeof padding === "string") {
@@ -86,7 +98,7 @@ var Box = ({ ref, ...props }) => {
86
98
  ...otherProps
87
99
  } = props;
88
100
  const classes = (0, import_dedupe.default)("mobius", "mobius-box", otherProps.className);
89
- const styleProps = filterUndefinedProps({
101
+ const fromProps = filterUndefinedProps({
90
102
  padding: getSpacingValue(padding),
91
103
  paddingInline: getSpacingValue(paddingInline || paddingX),
92
104
  paddingBlock: getSpacingValue(paddingBlock || paddingY),
@@ -99,8 +111,11 @@ var Box = ({ ref, ...props }) => {
99
111
  maxWidth,
100
112
  maxHeight,
101
113
  width,
102
- height,
103
- ...style
114
+ height
115
+ });
116
+ const styleProps = filterUndefinedProps({
117
+ ...fromProps,
118
+ ...style ? filterUnsetValues(style) : {}
104
119
  });
105
120
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Element, { ref, style: styleProps, ...otherProps, className: classes });
106
121
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/getSpacingValue.ts"],
4
- "sourcesContent": ["import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport { getSpacingValue, filterUndefinedProps } from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const styleProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n ...style,\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;;;ACAhB,IAAM,uBAAuB,CAAC,UAAmC;AACtE,QAAM,gBAAyC,CAAC;AAChD,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,QAAI,MAAM,GAAG,MAAM,QAAW;AAC5B,oBAAc,GAAG,IAAI,MAAM,GAAG;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACNO,IAAM,kBAAkB,CAC7B,YACuB;AACvB,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,cAAc,OAAO;AAAA,EAC9B;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,GAAG,OAAO;AAAA,EACnB;AAEA,SAAO;AACT;;;AFXA,iBAAO;AAgDH;AA9CJ,IAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAgB;AAC3C,QAAM;AAAA,IACJ,aAAa,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAU,cAAAA,SAAW,UAAU,cAAc,WAAW,SAAS;AAEvE,QAAM,aAAa,qBAAqB;AAAA,IACtC,SAAS,gBAAgB,OAAO;AAAA,IAChC,eAAe,gBAAgB,iBAAiB,QAAQ;AAAA,IACxD,cAAc,gBAAgB,gBAAgB,QAAQ;AAAA,IACtD,YAAY,gBAAgB,cAAc,iBAAiB;AAAA,IAC3D,cAAc,gBAAgB,gBAAgB,gBAAgB;AAAA,IAC9D,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IAC/D,aAAa,gBAAgB,eAAe,kBAAkB;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SACE,4CAAC,WAAQ,KAAU,OAAO,YAAa,GAAG,YAAY,WAAW,SAAS;AAE9E;AAEA,IAAI,cAAc;",
3
+ "sources": ["../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/filterUnsetValues.ts", "../../../../src/utils/getSpacingValue.ts"],
4
+ "sourcesContent": ["import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport {\n filterUndefinedProps,\n filterUnsetValues,\n getSpacingValue,\n} from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const fromProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n });\n\n const styleProps = filterUndefinedProps({\n ...fromProps,\n ...(style ? filterUnsetValues(style as Record<string, unknown>) : {}),\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "/**\n * Drops `undefined`, `null`, and empty string entries.\n * Use when merging style objects so \u201Cunset\u201D values from `style` do not override\n * computed values from component props.\n */\nexport const filterUnsetValues = (\n props: Record<string, unknown>,\n): Record<string, unknown> => {\n const filtered: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n const value = props[key];\n if (value !== undefined && value !== null && value !== \"\") {\n filtered[key] = value;\n }\n });\n return filtered;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;;;ACAhB,IAAM,uBAAuB,CAAC,UAAmC;AACtE,QAAM,gBAAyC,CAAC;AAChD,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,QAAI,MAAM,GAAG,MAAM,QAAW;AAC5B,oBAAc,GAAG,IAAI,MAAM,GAAG;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACHO,IAAM,oBAAoB,CAC/B,UAC4B;AAC5B,QAAM,WAAoC,CAAC;AAC3C,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,UAAM,QAAQ,MAAM,GAAG;AACvB,QAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,IAAI;AACzD,eAAS,GAAG,IAAI;AAAA,IAClB;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACdO,IAAM,kBAAkB,CAC7B,YACuB;AACvB,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,cAAc,OAAO;AAAA,EAC9B;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,GAAG,OAAO;AAAA,EACnB;AAEA,SAAO;AACT;;;AHPA,iBAAO;AAoDH;AAlDJ,IAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAgB;AAC3C,QAAM;AAAA,IACJ,aAAa,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAU,cAAAA,SAAW,UAAU,cAAc,WAAW,SAAS;AAEvE,QAAM,YAAY,qBAAqB;AAAA,IACrC,SAAS,gBAAgB,OAAO;AAAA,IAChC,eAAe,gBAAgB,iBAAiB,QAAQ;AAAA,IACxD,cAAc,gBAAgB,gBAAgB,QAAQ;AAAA,IACtD,YAAY,gBAAgB,cAAc,iBAAiB;AAAA,IAC3D,cAAc,gBAAgB,gBAAgB,gBAAgB;AAAA,IAC9D,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IAC/D,aAAa,gBAAgB,eAAe,kBAAkB;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,aAAa,qBAAqB;AAAA,IACtC,GAAG;AAAA,IACH,GAAI,QAAQ,kBAAkB,KAAgC,IAAI,CAAC;AAAA,EACrE,CAAC;AAED,SACE,4CAAC,WAAQ,KAAU,OAAO,YAAa,GAAG,YAAY,WAAW,SAAS;AAE9E;AAEA,IAAI,cAAc;",
6
6
  "names": ["classNames"]
7
7
  }
@@ -48,6 +48,18 @@ var filterUndefinedProps = (props) => {
48
48
  return filteredProps;
49
49
  };
50
50
 
51
+ // src/utils/filterUnsetValues.ts
52
+ var filterUnsetValues = (props) => {
53
+ const filtered = {};
54
+ Object.keys(props).forEach((key) => {
55
+ const value = props[key];
56
+ if (value !== void 0 && value !== null && value !== "") {
57
+ filtered[key] = value;
58
+ }
59
+ });
60
+ return filtered;
61
+ };
62
+
51
63
  // src/utils/getSpacingValue.ts
52
64
  var getSpacingValue = (padding) => {
53
65
  if (typeof padding === "string") {
@@ -88,7 +100,7 @@ var Box = ({ ref, ...props }) => {
88
100
  ...otherProps
89
101
  } = props;
90
102
  const classes = (0, import_dedupe.default)("mobius", "mobius-box", otherProps.className);
91
- const styleProps = filterUndefinedProps({
103
+ const fromProps = filterUndefinedProps({
92
104
  padding: getSpacingValue(padding),
93
105
  paddingInline: getSpacingValue(paddingInline || paddingX),
94
106
  paddingBlock: getSpacingValue(paddingBlock || paddingY),
@@ -101,8 +113,11 @@ var Box = ({ ref, ...props }) => {
101
113
  maxWidth,
102
114
  maxHeight,
103
115
  width,
104
- height,
105
- ...style
116
+ height
117
+ });
118
+ const styleProps = filterUndefinedProps({
119
+ ...fromProps,
120
+ ...style ? filterUnsetValues(style) : {}
106
121
  });
107
122
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Element, { ref, style: styleProps, ...otherProps, className: classes });
108
123
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Box/index.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/getSpacingValue.ts"],
4
- "sourcesContent": ["export * from \"./Box\";\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport { getSpacingValue, filterUndefinedProps } from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const styleProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n ...style,\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuB;;;ACAhB,IAAM,uBAAuB,CAAC,UAAmC;AACtE,QAAM,gBAAyC,CAAC;AAChD,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,QAAI,MAAM,GAAG,MAAM,QAAW;AAC5B,oBAAc,GAAG,IAAI,MAAM,GAAG;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACNO,IAAM,kBAAkB,CAC7B,YACuB;AACvB,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,cAAc,OAAO;AAAA,EAC9B;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,GAAG,OAAO;AAAA,EACnB;AAEA,SAAO;AACT;;;AFXA,iBAAO;AAgDH;AA9CJ,IAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAgB;AAC3C,QAAM;AAAA,IACJ,aAAa,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAU,cAAAA,SAAW,UAAU,cAAc,WAAW,SAAS;AAEvE,QAAM,aAAa,qBAAqB;AAAA,IACtC,SAAS,gBAAgB,OAAO;AAAA,IAChC,eAAe,gBAAgB,iBAAiB,QAAQ;AAAA,IACxD,cAAc,gBAAgB,gBAAgB,QAAQ;AAAA,IACtD,YAAY,gBAAgB,cAAc,iBAAiB;AAAA,IAC3D,cAAc,gBAAgB,gBAAgB,gBAAgB;AAAA,IAC9D,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IAC/D,aAAa,gBAAgB,eAAe,kBAAkB;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SACE,4CAAC,WAAQ,KAAU,OAAO,YAAa,GAAG,YAAY,WAAW,SAAS;AAE9E;AAEA,IAAI,cAAc;",
3
+ "sources": ["../../../../src/components/Box/index.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/filterUnsetValues.ts", "../../../../src/utils/getSpacingValue.ts"],
4
+ "sourcesContent": ["export * from \"./Box\";\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport {\n filterUndefinedProps,\n filterUnsetValues,\n getSpacingValue,\n} from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const fromProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n });\n\n const styleProps = filterUndefinedProps({\n ...fromProps,\n ...(style ? filterUnsetValues(style as Record<string, unknown>) : {}),\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "/**\n * Drops `undefined`, `null`, and empty string entries.\n * Use when merging style objects so \u201Cunset\u201D values from `style` do not override\n * computed values from component props.\n */\nexport const filterUnsetValues = (\n props: Record<string, unknown>,\n): Record<string, unknown> => {\n const filtered: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n const value = props[key];\n if (value !== undefined && value !== null && value !== \"\") {\n filtered[key] = value;\n }\n });\n return filtered;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAuB;;;ACAhB,IAAM,uBAAuB,CAAC,UAAmC;AACtE,QAAM,gBAAyC,CAAC;AAChD,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,QAAI,MAAM,GAAG,MAAM,QAAW;AAC5B,oBAAc,GAAG,IAAI,MAAM,GAAG;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACHO,IAAM,oBAAoB,CAC/B,UAC4B;AAC5B,QAAM,WAAoC,CAAC;AAC3C,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,UAAM,QAAQ,MAAM,GAAG;AACvB,QAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,IAAI;AACzD,eAAS,GAAG,IAAI;AAAA,IAClB;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACdO,IAAM,kBAAkB,CAC7B,YACuB;AACvB,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,cAAc,OAAO;AAAA,EAC9B;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,GAAG,OAAO;AAAA,EACnB;AAEA,SAAO;AACT;;;AHPA,iBAAO;AAoDH;AAlDJ,IAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAgB;AAC3C,QAAM;AAAA,IACJ,aAAa,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAU,cAAAA,SAAW,UAAU,cAAc,WAAW,SAAS;AAEvE,QAAM,YAAY,qBAAqB;AAAA,IACrC,SAAS,gBAAgB,OAAO;AAAA,IAChC,eAAe,gBAAgB,iBAAiB,QAAQ;AAAA,IACxD,cAAc,gBAAgB,gBAAgB,QAAQ;AAAA,IACtD,YAAY,gBAAgB,cAAc,iBAAiB;AAAA,IAC3D,cAAc,gBAAgB,gBAAgB,gBAAgB;AAAA,IAC9D,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IAC/D,aAAa,gBAAgB,eAAe,kBAAkB;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,aAAa,qBAAqB;AAAA,IACtC,GAAG;AAAA,IACH,GAAI,QAAQ,kBAAkB,KAAgC,IAAI,CAAC;AAAA,EACrE,CAAC;AAED,SACE,4CAAC,WAAQ,KAAU,OAAO,YAAa,GAAG,YAAY,WAAW,SAAS;AAE9E;AAEA,IAAI,cAAc;",
6
6
  "names": ["classNames"]
7
7
  }
@@ -51,6 +51,18 @@ var filterUndefinedProps = (props) => {
51
51
  return filteredProps;
52
52
  };
53
53
 
54
+ // src/utils/filterUnsetValues.ts
55
+ var filterUnsetValues = (props) => {
56
+ const filtered = {};
57
+ Object.keys(props).forEach((key) => {
58
+ const value = props[key];
59
+ if (value !== void 0 && value !== null && value !== "") {
60
+ filtered[key] = value;
61
+ }
62
+ });
63
+ return filtered;
64
+ };
65
+
54
66
  // src/utils/getSpacingValue.ts
55
67
  var getSpacingValue = (padding) => {
56
68
  if (typeof padding === "string") {
@@ -91,7 +103,7 @@ var Box = ({ ref, ...props }) => {
91
103
  ...otherProps
92
104
  } = props;
93
105
  const classes = (0, import_dedupe.default)("mobius", "mobius-box", otherProps.className);
94
- const styleProps = filterUndefinedProps({
106
+ const fromProps = filterUndefinedProps({
95
107
  padding: getSpacingValue(padding),
96
108
  paddingInline: getSpacingValue(paddingInline || paddingX),
97
109
  paddingBlock: getSpacingValue(paddingBlock || paddingY),
@@ -104,8 +116,11 @@ var Box = ({ ref, ...props }) => {
104
116
  maxWidth,
105
117
  maxHeight,
106
118
  width,
107
- height,
108
- ...style
119
+ height
120
+ });
121
+ const styleProps = filterUndefinedProps({
122
+ ...fromProps,
123
+ ...style ? filterUnsetValues(style) : {}
109
124
  });
110
125
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Element, { ref, style: styleProps, ...otherProps, className: classes });
111
126
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Breadcrumbs/BreadcrumbItem.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/getSpacingValue.ts"],
4
- "sourcesContent": ["\"use client\";\n\nimport type { ReactNode, ReactElement, RefAttributes } from \"react\";\nimport { cloneElement, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Box } from \"../Box\";\n\nexport type BreadcrumbItemElementType = HTMLLIElement;\n\nexport interface BreadcrumbItemProps\n extends DOMProps, RefAttributes<BreadcrumbItemElementType> {\n \"aria-current\"?:\n | \"page\"\n | \"step\"\n | \"location\"\n | \"date\"\n | \"time\"\n | boolean\n | \"true\"\n | \"false\";\n isDisabled?: boolean;\n isCurrent?: boolean;\n separator?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nconst BreadcrumbItem = ({ ref, ...props }: BreadcrumbItemProps) => {\n const {\n isDisabled = false,\n isCurrent = false,\n \"aria-current\": ariaCurrent = \"page\",\n children,\n separator = (\n <Box className=\"mobius-breadcrumb__separator\" aria-hidden=\"true\">\n {\">\"}\n </Box>\n ),\n ...otherProps\n } = props;\n const { itemProps } = {\n itemProps: {\n \"aria-current\": isCurrent ? ariaCurrent : undefined,\n \"aria-disabled\": isDisabled || isCurrent,\n ...otherProps,\n },\n };\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb__item\",\n props.className,\n );\n\n const child: ReactElement =\n typeof children === \"string\" ? (\n <span {...itemProps}>{children}</span>\n ) : (\n (Children.only(children) as ReactElement)\n );\n\n return (\n <li className={classes}>\n {cloneElement(child, {\n ...(child.props as Record<string, unknown>),\n ...itemProps,\n ref,\n } as Record<string, unknown>)}\n {!props.isCurrent && separator}\n </li>\n );\n};\n\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nexport { BreadcrumbItem };\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport { getSpacingValue, filterUndefinedProps } from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const styleProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n ...style,\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAuC;AACvC,IAAAA,iBAAuB;;;ACJvB,oBAAuB;;;ACAhB,IAAM,uBAAuB,CAAC,UAAmC;AACtE,QAAM,gBAAyC,CAAC;AAChD,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAO;AAChC,QAAI,MAAM,GAAG,MAAM,QAAW;AAC5B,oBAAc,GAAG,IAAI,MAAM,GAAG;AAAA,IAChC;AAAA,EACF,CAAC;AACD,SAAO;AACT;;;ACNO,IAAM,kBAAkB,CAC7B,YACuB;AACvB,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,cAAc,OAAO;AAAA,EAC9B;AAEA,MAAI,OAAO,YAAY,UAAU;AAC/B,WAAO,GAAG,OAAO;AAAA,EACnB;AAEA,SAAO;AACT;;;AFXA,iBAAO;AAgDH;AA9CJ,IAAM,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,MAAgB;AAC3C,QAAM;AAAA,IACJ,aAAa,UAAU;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAU,cAAAC,SAAW,UAAU,cAAc,WAAW,SAAS;AAEvE,QAAM,aAAa,qBAAqB;AAAA,IACtC,SAAS,gBAAgB,OAAO;AAAA,IAChC,eAAe,gBAAgB,iBAAiB,QAAQ;AAAA,IACxD,cAAc,gBAAgB,gBAAgB,QAAQ;AAAA,IACtD,YAAY,gBAAgB,cAAc,iBAAiB;AAAA,IAC3D,cAAc,gBAAgB,gBAAgB,gBAAgB;AAAA,IAC9D,eAAe,gBAAgB,iBAAiB,eAAe;AAAA,IAC/D,aAAa,gBAAgB,eAAe,kBAAkB;AAAA,IAC9D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,CAAC;AAED,SACE,4CAAC,WAAQ,KAAU,OAAO,YAAa,GAAG,YAAY,WAAW,SAAS;AAE9E;AAEA,IAAI,cAAc;;;ADpBZ,IAAAC,sBAAA;AAPN,IAAM,iBAAiB,CAAC,EAAE,KAAK,GAAG,MAAM,MAA2B;AACjE,QAAM;AAAA,IACJ,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,gBAAgB,cAAc;AAAA,IAC9B;AAAA,IACA,YACE,6CAAC,OAAI,WAAU,gCAA+B,eAAY,QACvD,eACH;AAAA,IAEF,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,EAAE,UAAU,IAAI;AAAA,IACpB,WAAW;AAAA,MACT,gBAAgB,YAAY,cAAc;AAAA,MAC1C,iBAAiB,cAAc;AAAA,MAC/B,GAAG;AAAA,IACL;AAAA,EACF;AAGA,QAAM,cAAU,eAAAC;AAAA,IACd;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR;AAEA,QAAM,QACJ,OAAO,aAAa,WAClB,6CAAC,UAAM,GAAG,WAAY,UAAS,IAE9B,sBAAS,KAAK,QAAQ;AAG3B,SACE,8CAAC,QAAG,WAAW,SACZ;AAAA,mCAAa,OAAO;AAAA,MACnB,GAAI,MAAM;AAAA,MACV,GAAG;AAAA,MACH;AAAA,IACF,CAA4B;AAAA,IAC3B,CAAC,MAAM,aAAa;AAAA,KACvB;AAEJ;AAEA,eAAe,cAAc;",
3
+ "sources": ["../../../../src/components/Breadcrumbs/BreadcrumbItem.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/filterUnsetValues.ts", "../../../../src/utils/getSpacingValue.ts"],
4
+ "sourcesContent": ["\"use client\";\n\nimport type { ReactNode, ReactElement, RefAttributes } from \"react\";\nimport { cloneElement, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Box } from \"../Box\";\n\nexport type BreadcrumbItemElementType = HTMLLIElement;\n\nexport interface BreadcrumbItemProps\n extends DOMProps, RefAttributes<BreadcrumbItemElementType> {\n \"aria-current\"?:\n | \"page\"\n | \"step\"\n | \"location\"\n | \"date\"\n | \"time\"\n | boolean\n | \"true\"\n | \"false\";\n isDisabled?: boolean;\n isCurrent?: boolean;\n separator?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nconst BreadcrumbItem = ({ ref, ...props }: BreadcrumbItemProps) => {\n const {\n isDisabled = false,\n isCurrent = false,\n \"aria-current\": ariaCurrent = \"page\",\n children,\n separator = (\n <Box className=\"mobius-breadcrumb__separator\" aria-hidden=\"true\">\n {\">\"}\n </Box>\n ),\n ...otherProps\n } = props;\n const { itemProps } = {\n itemProps: {\n \"aria-current\": isCurrent ? ariaCurrent : undefined,\n \"aria-disabled\": isDisabled || isCurrent,\n ...otherProps,\n },\n };\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb__item\",\n props.className,\n );\n\n const child: ReactElement =\n typeof children === \"string\" ? (\n <span {...itemProps}>{children}</span>\n ) : (\n (Children.only(children) as ReactElement)\n );\n\n return (\n <li className={classes}>\n {cloneElement(child, {\n ...(child.props as Record<string, unknown>),\n ...itemProps,\n ref,\n } as Record<string, unknown>)}\n {!props.isCurrent && separator}\n </li>\n );\n};\n\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nexport { BreadcrumbItem };\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport {\n filterUndefinedProps,\n filterUnsetValues,\n getSpacingValue,\n} from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const fromProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n });\n\n const styleProps = filterUndefinedProps({\n ...fromProps,\n ...(style ? filterUnsetValues(style as Record<string, unknown>) : {}),\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "/**\n * Drops `undefined`, `null`, and empty string entries.\n * Use when merging style objects so \u201Cunset\u201D values from `style` do not override\n * computed values from component props.\n */\nexport const filterUnsetValues = (\n props: Record<string, unknown>,\n): Record<string, unknown> => {\n const filtered: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n const value = props[key];\n if (value !== undefined && value !== null && value !== \"\") {\n filtered[key] = value;\n }\n });\n return filtered;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_dedupe", "classNames", "import_jsx_runtime", "classNames"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Breadcrumbs/Breadcrumbs.tsx"],
4
- "sourcesContent": ["\"use client\";\n\nimport type { ReactElement, RefAttributes, ReactNode } from \"react\";\nimport { Children, cloneElement } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport \"./Breadcrumbs.css\";\n\nexport type BreadcrumbsElementType = HTMLUListElement;\n\nexport interface BreadcrumbsProps extends RefAttributes<BreadcrumbsElementType> {\n /** Custom class name for setting specific CSS */\n className?: string;\n children?: ReactNode;\n \"aria-label\"?: string;\n}\n\nconst Breadcrumbs = ({ ref, ...props }: BreadcrumbsProps) => {\n const { \"aria-label\": ariaLabel = \"Breadcrumbs\" } = props;\n const { navProps } = { navProps: { \"aria-label\": ariaLabel } };\n const { children, ...otherProps } = props;\n const childArray = Children.toArray(children);\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb\",\n otherProps.className,\n );\n\n return (\n <nav ref={ref} {...otherProps} {...navProps} className={classes}>\n <ul>\n {childArray.map((child, i) =>\n cloneElement(\n child as ReactElement,\n {\n key: i,\n isCurrent: i === childArray.length - 1,\n } as { key: number; isCurrent: boolean },\n ),\n )}\n </ul>\n </nav>\n );\n};\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\nexport { Breadcrumbs };\n"],
4
+ "sourcesContent": ["\"use client\";\n\nimport type { ReactElement, RefAttributes, ReactNode } from \"react\";\nimport { Children, cloneElement } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport \"./Breadcrumbs.css\";\n\nexport type BreadcrumbsElementType = HTMLElement;\n\nexport interface BreadcrumbsProps extends RefAttributes<BreadcrumbsElementType> {\n /** Custom class name for setting specific CSS */\n className?: string;\n children?: ReactNode;\n \"aria-label\"?: string;\n}\n\nconst Breadcrumbs = ({ ref, ...props }: BreadcrumbsProps) => {\n const { \"aria-label\": ariaLabel = \"Breadcrumbs\" } = props;\n const { navProps } = { navProps: { \"aria-label\": ariaLabel } };\n const { children, ...otherProps } = props;\n const childArray = Children.toArray(children);\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb\",\n otherProps.className,\n );\n\n return (\n <nav ref={ref} {...otherProps} {...navProps} className={classes}>\n <ul>\n {childArray.map((child, i) =>\n cloneElement(\n child as ReactElement,\n {\n key: i,\n isCurrent: i === childArray.length - 1,\n } as { key: number; isCurrent: boolean },\n ),\n )}\n </ul>\n </nav>\n );\n};\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\nexport { Breadcrumbs };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAuC;AACvC,oBAAuB;AACvB,yBAAO;AA0BD;AAfN,IAAM,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,MAAwB;AAC3D,QAAM,EAAE,cAAc,YAAY,cAAc,IAAI;AACpD,QAAM,EAAE,SAAS,IAAI,EAAE,UAAU,EAAE,cAAc,UAAU,EAAE;AAC7D,QAAM,EAAE,UAAU,GAAG,WAAW,IAAI;AACpC,QAAM,aAAa,sBAAS,QAAQ,QAAQ;AAG5C,QAAM,cAAU,cAAAA;AAAA,IACd;AAAA,IACA;AAAA,IACA,WAAW;AAAA,EACb;AAEA,SACE,4CAAC,SAAI,KAAW,GAAG,YAAa,GAAG,UAAU,WAAW,SACtD,sDAAC,QACE,qBAAW;AAAA,IAAI,CAAC,OAAO,UACtB;AAAA,MACE;AAAA,MACA;AAAA,QACE,KAAK;AAAA,QACL,WAAW,MAAM,WAAW,SAAS;AAAA,MACvC;AAAA,IACF;AAAA,EACF,GACF,GACF;AAEJ;AAEA,YAAY,cAAc;",
6
6
  "names": ["classNames"]
7
7
  }
@@ -80,6 +80,18 @@ var filterUndefinedProps = (props) => {
80
80
  return filteredProps;
81
81
  };
82
82
 
83
+ // src/utils/filterUnsetValues.ts
84
+ var filterUnsetValues = (props) => {
85
+ const filtered = {};
86
+ Object.keys(props).forEach((key) => {
87
+ const value = props[key];
88
+ if (value !== void 0 && value !== null && value !== "") {
89
+ filtered[key] = value;
90
+ }
91
+ });
92
+ return filtered;
93
+ };
94
+
83
95
  // src/utils/getSpacingValue.ts
84
96
  var getSpacingValue = (padding) => {
85
97
  if (typeof padding === "string") {
@@ -120,7 +132,7 @@ var Box = ({ ref, ...props }) => {
120
132
  ...otherProps
121
133
  } = props;
122
134
  const classes = (0, import_dedupe2.default)("mobius", "mobius-box", otherProps.className);
123
- const styleProps = filterUndefinedProps({
135
+ const fromProps = filterUndefinedProps({
124
136
  padding: getSpacingValue(padding),
125
137
  paddingInline: getSpacingValue(paddingInline || paddingX),
126
138
  paddingBlock: getSpacingValue(paddingBlock || paddingY),
@@ -133,8 +145,11 @@ var Box = ({ ref, ...props }) => {
133
145
  maxWidth,
134
146
  maxHeight,
135
147
  width,
136
- height,
137
- ...style
148
+ height
149
+ });
150
+ const styleProps = filterUndefinedProps({
151
+ ...fromProps,
152
+ ...style ? filterUnsetValues(style) : {}
138
153
  });
139
154
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Element, { ref, style: styleProps, ...otherProps, className: classes });
140
155
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Breadcrumbs/index.tsx", "../../../../src/components/Breadcrumbs/Breadcrumbs.tsx", "../../../../src/components/Breadcrumbs/BreadcrumbItem.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/getSpacingValue.ts"],
4
- "sourcesContent": ["export * from \"./Breadcrumbs\";\nexport * from \"./BreadcrumbItem\";\n", "\"use client\";\n\nimport type { ReactElement, RefAttributes, ReactNode } from \"react\";\nimport { Children, cloneElement } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport \"./Breadcrumbs.css\";\n\nexport type BreadcrumbsElementType = HTMLUListElement;\n\nexport interface BreadcrumbsProps extends RefAttributes<BreadcrumbsElementType> {\n /** Custom class name for setting specific CSS */\n className?: string;\n children?: ReactNode;\n \"aria-label\"?: string;\n}\n\nconst Breadcrumbs = ({ ref, ...props }: BreadcrumbsProps) => {\n const { \"aria-label\": ariaLabel = \"Breadcrumbs\" } = props;\n const { navProps } = { navProps: { \"aria-label\": ariaLabel } };\n const { children, ...otherProps } = props;\n const childArray = Children.toArray(children);\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb\",\n otherProps.className,\n );\n\n return (\n <nav ref={ref} {...otherProps} {...navProps} className={classes}>\n <ul>\n {childArray.map((child, i) =>\n cloneElement(\n child as ReactElement,\n {\n key: i,\n isCurrent: i === childArray.length - 1,\n } as { key: number; isCurrent: boolean },\n ),\n )}\n </ul>\n </nav>\n );\n};\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\nexport { Breadcrumbs };\n", "\"use client\";\n\nimport type { ReactNode, ReactElement, RefAttributes } from \"react\";\nimport { cloneElement, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Box } from \"../Box\";\n\nexport type BreadcrumbItemElementType = HTMLLIElement;\n\nexport interface BreadcrumbItemProps\n extends DOMProps, RefAttributes<BreadcrumbItemElementType> {\n \"aria-current\"?:\n | \"page\"\n | \"step\"\n | \"location\"\n | \"date\"\n | \"time\"\n | boolean\n | \"true\"\n | \"false\";\n isDisabled?: boolean;\n isCurrent?: boolean;\n separator?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nconst BreadcrumbItem = ({ ref, ...props }: BreadcrumbItemProps) => {\n const {\n isDisabled = false,\n isCurrent = false,\n \"aria-current\": ariaCurrent = \"page\",\n children,\n separator = (\n <Box className=\"mobius-breadcrumb__separator\" aria-hidden=\"true\">\n {\">\"}\n </Box>\n ),\n ...otherProps\n } = props;\n const { itemProps } = {\n itemProps: {\n \"aria-current\": isCurrent ? ariaCurrent : undefined,\n \"aria-disabled\": isDisabled || isCurrent,\n ...otherProps,\n },\n };\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb__item\",\n props.className,\n );\n\n const child: ReactElement =\n typeof children === \"string\" ? (\n <span {...itemProps}>{children}</span>\n ) : (\n (Children.only(children) as ReactElement)\n );\n\n return (\n <li className={classes}>\n {cloneElement(child, {\n ...(child.props as Record<string, unknown>),\n ...itemProps,\n ref,\n } as Record<string, unknown>)}\n {!props.isCurrent && separator}\n </li>\n );\n};\n\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nexport { BreadcrumbItem };\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport { getSpacingValue, filterUndefinedProps } from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const styleProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n ...style,\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../../src/components/Breadcrumbs/index.tsx", "../../../../src/components/Breadcrumbs/Breadcrumbs.tsx", "../../../../src/components/Breadcrumbs/BreadcrumbItem.tsx", "../../../../src/components/Box/Box.tsx", "../../../../src/utils/filterUndefinedProps.ts", "../../../../src/utils/filterUnsetValues.ts", "../../../../src/utils/getSpacingValue.ts"],
4
+ "sourcesContent": ["export * from \"./Breadcrumbs\";\nexport * from \"./BreadcrumbItem\";\n", "\"use client\";\n\nimport type { ReactElement, RefAttributes, ReactNode } from \"react\";\nimport { Children, cloneElement } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport \"./Breadcrumbs.css\";\n\nexport type BreadcrumbsElementType = HTMLElement;\n\nexport interface BreadcrumbsProps extends RefAttributes<BreadcrumbsElementType> {\n /** Custom class name for setting specific CSS */\n className?: string;\n children?: ReactNode;\n \"aria-label\"?: string;\n}\n\nconst Breadcrumbs = ({ ref, ...props }: BreadcrumbsProps) => {\n const { \"aria-label\": ariaLabel = \"Breadcrumbs\" } = props;\n const { navProps } = { navProps: { \"aria-label\": ariaLabel } };\n const { children, ...otherProps } = props;\n const childArray = Children.toArray(children);\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb\",\n otherProps.className,\n );\n\n return (\n <nav ref={ref} {...otherProps} {...navProps} className={classes}>\n <ul>\n {childArray.map((child, i) =>\n cloneElement(\n child as ReactElement,\n {\n key: i,\n isCurrent: i === childArray.length - 1,\n } as { key: number; isCurrent: boolean },\n ),\n )}\n </ul>\n </nav>\n );\n};\n\nBreadcrumbs.displayName = \"Breadcrumbs\";\nexport { Breadcrumbs };\n", "\"use client\";\n\nimport type { ReactNode, ReactElement, RefAttributes } from \"react\";\nimport { cloneElement, Children } from \"react\";\nimport classNames from \"classnames/dedupe\";\nimport type { DOMProps } from \"../../types/dom\";\nimport { Box } from \"../Box\";\n\nexport type BreadcrumbItemElementType = HTMLLIElement;\n\nexport interface BreadcrumbItemProps\n extends DOMProps, RefAttributes<BreadcrumbItemElementType> {\n \"aria-current\"?:\n | \"page\"\n | \"step\"\n | \"location\"\n | \"date\"\n | \"time\"\n | boolean\n | \"true\"\n | \"false\";\n isDisabled?: boolean;\n isCurrent?: boolean;\n separator?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\nconst BreadcrumbItem = ({ ref, ...props }: BreadcrumbItemProps) => {\n const {\n isDisabled = false,\n isCurrent = false,\n \"aria-current\": ariaCurrent = \"page\",\n children,\n separator = (\n <Box className=\"mobius-breadcrumb__separator\" aria-hidden=\"true\">\n {\">\"}\n </Box>\n ),\n ...otherProps\n } = props;\n const { itemProps } = {\n itemProps: {\n \"aria-current\": isCurrent ? ariaCurrent : undefined,\n \"aria-disabled\": isDisabled || isCurrent,\n ...otherProps,\n },\n };\n\n // Reshape class name and apply to outer element\n const classes = classNames(\n \"mobius\",\n \"mobius-breadcrumb__item\",\n props.className,\n );\n\n const child: ReactElement =\n typeof children === \"string\" ? (\n <span {...itemProps}>{children}</span>\n ) : (\n (Children.only(children) as ReactElement)\n );\n\n return (\n <li className={classes}>\n {cloneElement(child, {\n ...(child.props as Record<string, unknown>),\n ...itemProps,\n ref,\n } as Record<string, unknown>)}\n {!props.isCurrent && separator}\n </li>\n );\n};\n\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\nexport { BreadcrumbItem };\n", "import classNames from \"classnames/dedupe\";\nimport type { BoxProps } from \"./types\";\nimport {\n filterUndefinedProps,\n filterUnsetValues,\n getSpacingValue,\n} from \"../../utils\";\nimport \"./Box.css\";\n\nconst Box = ({ ref, ...props }: BoxProps) => {\n const {\n elementType: Element = \"div\",\n padding,\n paddingX,\n paddingInline,\n paddingInlineStart,\n paddingInlineEnd,\n paddingY,\n paddingBlock,\n paddingBlockStart,\n paddingBlockEnd,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n style,\n ...otherProps\n } = props;\n\n const classes = classNames(\"mobius\", \"mobius-box\", otherProps.className);\n\n const fromProps = filterUndefinedProps({\n padding: getSpacingValue(padding),\n paddingInline: getSpacingValue(paddingInline || paddingX),\n paddingBlock: getSpacingValue(paddingBlock || paddingY),\n paddingTop: getSpacingValue(paddingTop || paddingBlockStart),\n paddingRight: getSpacingValue(paddingRight || paddingInlineEnd),\n paddingBottom: getSpacingValue(paddingBottom || paddingBlockEnd),\n paddingLeft: getSpacingValue(paddingLeft || paddingInlineStart),\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n width,\n height,\n });\n\n const styleProps = filterUndefinedProps({\n ...fromProps,\n ...(style ? filterUnsetValues(style as Record<string, unknown>) : {}),\n });\n\n return (\n <Element ref={ref} style={styleProps} {...otherProps} className={classes} />\n );\n};\n\nBox.displayName = \"Box\";\nexport { Box };\n", "export const filterUndefinedProps = (props: Record<string, unknown>) => {\n const filteredProps: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n if (props[key] !== undefined) {\n filteredProps[key] = props[key];\n }\n });\n return filteredProps;\n};\n", "/**\n * Drops `undefined`, `null`, and empty string entries.\n * Use when merging style objects so \u201Cunset\u201D values from `style` do not override\n * computed values from component props.\n */\nexport const filterUnsetValues = (\n props: Record<string, unknown>,\n): Record<string, unknown> => {\n const filtered: Record<string, unknown> = {};\n Object.keys(props).forEach(key => {\n const value = props[key];\n if (value !== undefined && value !== null && value !== \"\") {\n filtered[key] = value;\n }\n });\n return filtered;\n};\n", "import type { SpacingType } from \"../types\";\n\nexport const getSpacingValue = (\n padding: SpacingType | undefined,\n): string | undefined => {\n if (typeof padding === \"string\") {\n return `var(--size-${padding})`;\n }\n\n if (typeof padding === \"number\") {\n return `${padding}px`;\n }\n\n return undefined;\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["classNames", "import_react", "import_dedupe", "import_dedupe", "import_jsx_runtime", "classNames", "import_jsx_runtime", "classNames"]
7
7
  }