@12-apps/ui 6.20.0 → 6.22.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 (885) hide show
  1. package/NATIVE.md +10 -4
  2. package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -8
  4. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  6. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  7. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +6 -6
  8. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
  9. package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
  10. package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
  11. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  12. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -3
  13. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -48
  14. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +72 -65
  15. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +9 -6
  16. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -7
  17. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +20 -13
  18. package/dist/_internal/components/data-display/DataViews/base-card.js +12 -8
  19. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
  20. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +10 -3
  21. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
  22. package/dist/_internal/components/data-display/DataViews/base-list-card.js +18 -15
  23. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +17 -15
  24. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -3
  25. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +7 -7
  27. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +4 -4
  29. package/dist/_internal/components/data-display/DataViews/data-views-export.js +4 -4
  30. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +20 -18
  31. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +11 -11
  32. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  33. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -45
  34. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -3
  35. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +23 -22
  36. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
  37. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +8 -8
  38. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +4 -4
  39. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +14 -14
  40. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +27 -20
  41. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +13 -13
  42. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +4 -4
  43. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  44. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -3
  45. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
  46. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  47. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -3
  48. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +3 -3
  49. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  50. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  51. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
  52. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  53. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +4 -4
  54. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  55. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
  56. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  57. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
  58. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  59. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
  60. package/dist/_internal/components/data-display/StatCard/StatCard.js +4 -4
  61. package/dist/_internal/components/data-display/index.js +50 -50
  62. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  63. package/dist/_internal/components/feedback/Dialog/Dialog.base.js +1 -0
  64. package/dist/_internal/components/feedback/Dialog/Dialog.base.js.map +1 -0
  65. package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js +12 -0
  66. package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js.map +1 -0
  67. package/dist/_internal/components/feedback/Dialog/Dialog.js +6 -2
  68. package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js +42 -0
  69. package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js.map +1 -0
  70. package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +3 -1
  71. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  72. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
  73. package/dist/_internal/components/feedback/index.js +14 -11
  74. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  75. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +11 -9
  76. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +7 -5
  77. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +5 -3
  78. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +5 -3
  79. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +4 -2
  80. package/dist/_internal/components/form/Button/Button.js +2 -2
  81. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +10 -8
  82. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +5 -3
  83. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +5 -3
  84. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +6 -4
  85. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +5 -3
  86. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +13 -11
  87. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +4 -2
  88. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +5 -3
  89. package/dist/_internal/components/form/CepField/CepField.js +10 -4
  90. package/dist/_internal/components/form/Checkbox/Checkbox.base.js +1 -0
  91. package/dist/_internal/components/form/Checkbox/Checkbox.base.js.map +1 -0
  92. package/dist/_internal/components/form/Checkbox/Checkbox.helpers.js +2 -1
  93. package/dist/_internal/components/form/Checkbox/Checkbox.js +9 -2
  94. package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js +34 -0
  95. package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js.map +1 -0
  96. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +5 -3
  97. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +4 -2
  98. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
  99. package/dist/_internal/components/form/Input/Input.base.js +1 -0
  100. package/dist/_internal/components/form/Input/Input.base.js.map +1 -0
  101. package/dist/_internal/components/form/Input/Input.helpers.js +23 -0
  102. package/dist/_internal/components/form/Input/Input.helpers.js.map +1 -0
  103. package/dist/_internal/components/form/Input/Input.js +9 -3
  104. package/dist/_internal/components/form/Input/Input.metrics.js +53 -0
  105. package/dist/_internal/components/form/Input/Input.metrics.js.map +1 -0
  106. package/dist/_internal/components/form/Input/Input.styles.js +10 -4
  107. package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -3
  108. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +4 -2
  109. package/dist/_internal/components/form/Label/Label.js +2 -2
  110. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  111. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -2
  112. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +6 -4
  113. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +4 -2
  114. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +5 -3
  115. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +4 -2
  116. package/dist/_internal/components/form/Select/Select.base.js +1 -0
  117. package/dist/_internal/components/form/Select/Select.base.js.map +1 -0
  118. package/dist/_internal/components/form/Select/Select.helpers.js +48 -0
  119. package/dist/_internal/components/form/Select/Select.helpers.js.map +1 -0
  120. package/dist/_internal/components/form/Select/Select.js +10 -2
  121. package/dist/_internal/components/form/Select/Select.metrics.js +38 -0
  122. package/dist/_internal/components/form/Select/Select.metrics.js.map +1 -0
  123. package/dist/_internal/components/form/Switch/Switch.base.js +1 -0
  124. package/dist/_internal/components/form/Switch/Switch.base.js.map +1 -0
  125. package/dist/_internal/components/form/Switch/Switch.helpers.js +59 -0
  126. package/dist/_internal/components/form/Switch/Switch.helpers.js.map +1 -0
  127. package/dist/_internal/components/form/Switch/Switch.js +9 -3
  128. package/dist/_internal/components/form/Switch/Switch.metrics.js +83 -0
  129. package/dist/_internal/components/form/Switch/Switch.metrics.js.map +1 -0
  130. package/dist/_internal/components/form/Switch/Switch.parts.js +7 -2
  131. package/dist/_internal/components/form/Switch/Switch.styles.js +6 -1
  132. package/dist/_internal/components/form/Textarea/Textarea.js +5 -3
  133. package/dist/_internal/components/form/Textarea/Textarea.styles.js +4 -2
  134. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +4 -2
  135. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  136. package/dist/_internal/components/form/Toggle/Toggle.js +5 -3
  137. package/dist/_internal/components/form/Toggle/Toggle.styles.js +4 -2
  138. package/dist/_internal/components/form/index.js +46 -40
  139. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +14 -12
  140. package/dist/_internal/components/form/total-form/Fields/CepField.js +11 -5
  141. package/dist/_internal/components/form/total-form/Fields/SelectField.js +11 -3
  142. package/dist/_internal/components/form/total-form/Fields/TextField.js +10 -4
  143. package/dist/_internal/components/form/total-form/Fields/index.js +32 -24
  144. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  145. package/dist/_internal/components/index.js +138 -128
  146. package/dist/_internal/components/layout/Box/Box.js +2 -2
  147. package/dist/_internal/components/layout/Card/Card.base.js +1 -0
  148. package/dist/_internal/components/layout/Card/Card.base.js.map +1 -0
  149. package/dist/_internal/components/layout/Card/Card.helpers.js +1 -1
  150. package/dist/_internal/components/layout/Card/Card.js +6 -3
  151. package/dist/_internal/components/layout/Card/Card.metrics.js +44 -0
  152. package/dist/_internal/components/layout/Card/Card.metrics.js.map +1 -0
  153. package/dist/_internal/components/layout/Card/Card.styles.js +3 -1
  154. package/dist/_internal/components/layout/Container/Container.js +2 -2
  155. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  156. package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -3
  157. package/dist/_internal/components/layout/Spacer/Spacer.js +2 -2
  158. package/dist/_internal/components/layout/Stack/Stack.js +3 -3
  159. package/dist/_internal/components/layout/index.js +22 -20
  160. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +12 -9
  161. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
  162. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  163. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  164. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  165. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  166. package/dist/_internal/components/navigation/index.js +20 -17
  167. package/dist/_internal/components/typography/Heading/Heading.js +2 -2
  168. package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -2
  169. package/dist/_internal/components/typography/Text/Text.js +2 -2
  170. package/dist/_internal/components/typography/index.js +4 -4
  171. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  172. package/dist/_internal/components/utility/index.js +2 -2
  173. package/dist/_internal/icons/Icon.js +3 -3
  174. package/dist/_internal/icons/paths.generated.js +1 -1
  175. package/dist/_internal/platform/aria.js +17 -1
  176. package/dist/_internal/platform/aria.js.map +1 -1
  177. package/dist/_internal/platform/test-id.js +5 -1
  178. package/dist/_internal/social-login-button/social-login-button.js +10 -8
  179. package/dist/_internal/tokens/field-edge.core.js +11 -0
  180. package/dist/_internal/tokens/field-edge.core.js.map +1 -0
  181. package/dist/_internal/tokens/field-edge.js +5 -2
  182. package/dist/_internal/tokens/mui-type.js +1 -0
  183. package/dist/_internal/tokens/mui-type.js.map +1 -1
  184. package/dist/_internal/tokens/shadow.js +18 -0
  185. package/dist/_internal/tokens/shadow.js.map +1 -0
  186. package/dist/_internal/user-avatar/user-avatar.js +9 -7
  187. package/dist/charts.js +11 -11
  188. package/dist/{chunk-MBYO2F4Y.js → chunk-25R3ITGZ.js} +6 -6
  189. package/dist/chunk-2ECT4IY2.js +250 -0
  190. package/dist/chunk-2ECT4IY2.js.map +1 -0
  191. package/dist/{chunk-KQ74QU55.js → chunk-2FDBR77W.js} +3 -3
  192. package/dist/{chunk-D7FJ2GAD.js → chunk-2HPP6RVC.js} +2 -2
  193. package/dist/{chunk-B2A4DG77.js → chunk-2MMEIN4T.js} +6 -6
  194. package/dist/{chunk-YRUCIKPO.js → chunk-2UYR2OOE.js} +4 -4
  195. package/dist/{chunk-2PCOC3PT.js → chunk-343TTIHD.js} +2 -2
  196. package/dist/{chunk-DQHC5P64.js → chunk-3FLVIVOK.js} +3 -3
  197. package/dist/{chunk-URWGRPL7.js → chunk-3W7IEWEL.js} +2 -2
  198. package/dist/{chunk-47UD6DZ4.js → chunk-4523RYE7.js} +5 -5
  199. package/dist/{chunk-AEGX66N7.js → chunk-4IVOHL32.js} +2 -2
  200. package/dist/{chunk-OQXOYHIV.js → chunk-4OHRZW7U.js} +48 -40
  201. package/dist/chunk-4OHRZW7U.js.map +1 -0
  202. package/dist/{chunk-GGE7Y53F.js → chunk-4TXIZ5WI.js} +2 -2
  203. package/dist/{chunk-IJIT5HQP.js → chunk-4X4KM4ZB.js} +4 -4
  204. package/dist/{chunk-6PRA45LC.js → chunk-5KEMPCW4.js} +54 -45
  205. package/dist/chunk-5KEMPCW4.js.map +1 -0
  206. package/dist/{chunk-M7OHXNLF.js → chunk-5NKUYCZD.js} +3 -3
  207. package/dist/{chunk-C52BELLW.js → chunk-5OIH36KX.js} +3 -3
  208. package/dist/chunk-5ZNU2U4D.js +41 -0
  209. package/dist/chunk-5ZNU2U4D.js.map +1 -0
  210. package/dist/{chunk-LMJBINWN.js → chunk-5ZTUP65G.js} +7 -7
  211. package/dist/{chunk-EX3PSZLV.js → chunk-67L7HMEP.js} +3 -3
  212. package/dist/{chunk-2EKALM6P.js → chunk-6JGPPTLX.js} +5 -5
  213. package/dist/{chunk-LZRURORY.js → chunk-6NZTYZP5.js} +4 -4
  214. package/dist/chunk-6Q6T3FW5.js +92 -0
  215. package/dist/chunk-6Q6T3FW5.js.map +1 -0
  216. package/dist/{chunk-DCEMUZJQ.js → chunk-6WIDZGXE.js} +2 -2
  217. package/dist/{chunk-R7MX5KPJ.js → chunk-6YLAVHV4.js} +4 -4
  218. package/dist/chunk-73BEVJCS.js +28 -0
  219. package/dist/chunk-73BEVJCS.js.map +1 -0
  220. package/dist/chunk-7FDU3FIN.js +13 -0
  221. package/dist/chunk-7FDU3FIN.js.map +1 -0
  222. package/dist/{chunk-RXSGHPCR.js → chunk-7FOOLP5H.js} +4 -4
  223. package/dist/{chunk-DOADQW7I.js → chunk-7NSX7A5H.js} +2 -2
  224. package/dist/{chunk-QZWKC3AP.js → chunk-7VN7LFBA.js} +6 -6
  225. package/dist/{chunk-E4FGKZID.js → chunk-AEGXHZQT.js} +2 -2
  226. package/dist/{chunk-WO52KYSU.js → chunk-AGSBIUPV.js} +8 -8
  227. package/dist/{chunk-D2IASECY.js → chunk-AIRWM7KK.js} +39 -28
  228. package/dist/chunk-AIRWM7KK.js.map +1 -0
  229. package/dist/{chunk-PU3AAKRR.js → chunk-AJ6XEO4E.js} +2 -2
  230. package/dist/{chunk-7DNQHMDO.js → chunk-B6IURHSZ.js} +4 -4
  231. package/dist/chunk-BEBLRL5D.js +177 -0
  232. package/dist/chunk-BEBLRL5D.js.map +1 -0
  233. package/dist/{chunk-WX7VWW3W.js → chunk-C3CMEDSO.js} +2 -2
  234. package/dist/{chunk-HSAH5QUQ.js → chunk-CHPZTF34.js} +7 -7
  235. package/dist/{chunk-7EESF76V.js → chunk-CJBBGMIA.js} +2 -2
  236. package/dist/{chunk-2W4CIWTW.js → chunk-DBYFC6CF.js} +3 -3
  237. package/dist/chunk-DFK6QCXX.js +150 -0
  238. package/dist/chunk-DFK6QCXX.js.map +1 -0
  239. package/dist/{chunk-FGLV6BXQ.js → chunk-DTC224UJ.js} +6 -6
  240. package/dist/{chunk-HEK4LQT6.js → chunk-DVFIE54C.js} +2 -2
  241. package/dist/{chunk-4N4ENTF7.js → chunk-DW5FRWRQ.js} +2 -2
  242. package/dist/{chunk-THBT56JE.js → chunk-E55CJV65.js} +2 -2
  243. package/dist/{chunk-B7BZAIHL.js → chunk-EOHKZGOZ.js} +2 -2
  244. package/dist/{chunk-MLOWPVVW.js → chunk-EPEJMTCQ.js} +16 -13
  245. package/dist/chunk-EPEJMTCQ.js.map +1 -0
  246. package/dist/{chunk-EGRFMPGD.js → chunk-EXJBPKGW.js} +4 -4
  247. package/dist/{chunk-BILE3A7F.js → chunk-FGK2C7JR.js} +2 -2
  248. package/dist/{chunk-OI3HOI74.js → chunk-FGUESLDX.js} +2 -2
  249. package/dist/{chunk-RI5JZLZL.js → chunk-FKUYRQSP.js} +1 -1
  250. package/dist/chunk-FKUYRQSP.js.map +1 -0
  251. package/dist/{chunk-VCTKJHXD.js → chunk-FL54G7PV.js} +2 -2
  252. package/dist/{chunk-FX5DY6VR.js → chunk-FR67FG2U.js} +7 -4
  253. package/dist/chunk-FR67FG2U.js.map +1 -0
  254. package/dist/{chunk-HDNK7BAX.js → chunk-GT7C6TSM.js} +3 -3
  255. package/dist/chunk-GY6KNVMI.js +39 -0
  256. package/dist/chunk-GY6KNVMI.js.map +1 -0
  257. package/dist/chunk-GYXUCS37.js +36 -0
  258. package/dist/chunk-GYXUCS37.js.map +1 -0
  259. package/dist/{chunk-V3SBJ3PB.js → chunk-HFXTAEYY.js} +2 -2
  260. package/dist/{chunk-HBAPVB7T.js → chunk-HKKSZ7HG.js} +2 -2
  261. package/dist/{chunk-FOMK3WPG.js → chunk-HLYPI5CO.js} +4 -4
  262. package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
  263. package/dist/{chunk-UNF65XZW.js → chunk-I5SBTNV2.js} +2 -2
  264. package/dist/{chunk-X24P3ZYW.js → chunk-J4W4TQPC.js} +6 -6
  265. package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
  266. package/dist/{chunk-NQC6H7GY.js → chunk-JIKWZDNK.js} +2 -2
  267. package/dist/{chunk-ENNW5SKT.js → chunk-JSH3HFDQ.js} +2 -2
  268. package/dist/{chunk-JB7JE4QZ.js → chunk-JWW2Z3RH.js} +4 -4
  269. package/dist/{chunk-LAHDFBDE.js → chunk-JXNT5TUP.js} +3 -3
  270. package/dist/{chunk-VMNSGE2G.js → chunk-KEVPUBOE.js} +5 -1
  271. package/dist/chunk-KEVPUBOE.js.map +1 -0
  272. package/dist/{chunk-ZBNTFWTG.js → chunk-KIHQE5YA.js} +2 -2
  273. package/dist/{chunk-ZEBJT5JZ.js → chunk-KTK4A3IF.js} +3 -3
  274. package/dist/{chunk-4WK2RTVY.js → chunk-LS4FMSHY.js} +5 -5
  275. package/dist/{chunk-PNYXXLPU.js → chunk-M4LQRQFL.js} +2 -2
  276. package/dist/{chunk-Z7JNCB5Q.js → chunk-MESRKY67.js} +2 -2
  277. package/dist/chunk-MLCFODJO.js +135 -0
  278. package/dist/chunk-MLCFODJO.js.map +1 -0
  279. package/dist/{chunk-VJK5FBNK.js → chunk-MP4VSWHK.js} +2 -2
  280. package/dist/{chunk-Q5EQC7NL.js → chunk-N5IVVLTH.js} +8 -5
  281. package/dist/chunk-N5IVVLTH.js.map +1 -0
  282. package/dist/{chunk-6XPNJLXE.js → chunk-NARIG5FL.js} +2 -2
  283. package/dist/{chunk-VEFDL77X.js → chunk-NWNSUHEB.js} +2 -2
  284. package/dist/{chunk-43NEBUV3.js → chunk-O3336DJ6.js} +2 -2
  285. package/dist/{chunk-WBVHRLIS.js → chunk-OFOYMZRY.js} +2 -2
  286. package/dist/{chunk-SM3NRN7L.js → chunk-ON2CMKTI.js} +2 -2
  287. package/dist/{chunk-IH4CX43Q.js → chunk-OP65D4UR.js} +2 -2
  288. package/dist/{chunk-NHSMLVNC.js → chunk-OVLNF4AZ.js} +3 -3
  289. package/dist/{chunk-ZTZ6S5Q6.js → chunk-OXQP3N6X.js} +4 -4
  290. package/dist/{chunk-YVW7VPK4.js → chunk-PFLKPNBU.js} +2 -2
  291. package/dist/{chunk-7P2HZLEG.js → chunk-PFV6RL4Q.js} +3 -3
  292. package/dist/{chunk-76GZ55IC.js → chunk-PMS3H3OO.js} +7 -7
  293. package/dist/{chunk-UF27D35R.js → chunk-PRUSQQDT.js} +2 -2
  294. package/dist/{chunk-HBZIN6IQ.js → chunk-PZEC5CQA.js} +2 -2
  295. package/dist/{chunk-74OZ5KVR.js → chunk-Q75SJ35X.js} +4 -4
  296. package/dist/{chunk-PC5FFEIY.js → chunk-QFJRB27Q.js} +4 -4
  297. package/dist/{chunk-6D5WEZ2L.js → chunk-QFVFHIHE.js} +2 -2
  298. package/dist/{chunk-GBB6XQ56.js → chunk-QGBMCB76.js} +2 -2
  299. package/dist/{chunk-PODGTNXS.js → chunk-QKIJ6YXZ.js} +4 -4
  300. package/dist/{chunk-DX527XPL.js → chunk-QWDEOITU.js} +2 -2
  301. package/dist/{chunk-BJ3J6FTN.js → chunk-R7R3LOKW.js} +40 -23
  302. package/dist/chunk-R7R3LOKW.js.map +1 -0
  303. package/dist/{chunk-OLZTGVBT.js → chunk-REMK55JI.js} +4 -4
  304. package/dist/{chunk-BLT5ZBVL.js → chunk-RRX6ZTNX.js} +2 -2
  305. package/dist/{chunk-RMSH2I3O.js → chunk-S6YY2WWK.js} +40 -50
  306. package/dist/chunk-S6YY2WWK.js.map +1 -0
  307. package/dist/{chunk-FCOEJCUP.js → chunk-TFO6GBW7.js} +2 -2
  308. package/dist/{chunk-2ZDTGI5V.js → chunk-TLMLEC4F.js} +7 -7
  309. package/dist/{chunk-VSLUFBMT.js → chunk-TOYEP23N.js} +41 -27
  310. package/dist/chunk-TOYEP23N.js.map +1 -0
  311. package/dist/{chunk-FP4R47TM.js → chunk-TW3BXVEU.js} +2 -2
  312. package/dist/{chunk-QLWBQQW7.js → chunk-TYJR4GOF.js} +10 -2
  313. package/dist/chunk-TYJR4GOF.js.map +1 -0
  314. package/dist/{chunk-JD364H3Y.js → chunk-TZ633UZA.js} +6 -5
  315. package/dist/chunk-TZ633UZA.js.map +1 -0
  316. package/dist/{chunk-J6UFAMIC.js → chunk-TZDDL3DR.js} +2 -2
  317. package/dist/{chunk-6IUTT6BK.js → chunk-U2YJCNRU.js} +4 -4
  318. package/dist/{chunk-KZSKI2R3.js → chunk-U2ZDN2AL.js} +2 -2
  319. package/dist/{chunk-YFHIESMD.js → chunk-U7Q2Y6WG.js} +2 -2
  320. package/dist/{chunk-RQDN4BN5.js → chunk-UU3QAKG6.js} +14 -14
  321. package/dist/{chunk-VJFH2AXT.js → chunk-UVGRRI7N.js} +7 -7
  322. package/dist/{chunk-7DBFEZRC.js → chunk-VIK3HAUQ.js} +2 -2
  323. package/dist/chunk-VM3HRSAU.js +79 -0
  324. package/dist/chunk-VM3HRSAU.js.map +1 -0
  325. package/dist/{chunk-SOCKK67R.js → chunk-VNDOQEJ7.js} +4 -4
  326. package/dist/{chunk-J54WH74M.js → chunk-VNNG46TS.js} +5 -5
  327. package/dist/{chunk-5ZF3VASA.js → chunk-VQAM2XZV.js} +7 -7
  328. package/dist/{chunk-SEH7KOVG.js → chunk-VXTYVJDK.js} +2 -2
  329. package/dist/{chunk-37YPZHAG.js → chunk-W4SDVTZC.js} +2 -2
  330. package/dist/{chunk-X5D3PTWI.js → chunk-W4YWU7LQ.js} +2 -2
  331. package/dist/{chunk-LKVIZNUM.js → chunk-W7Y6RA6W.js} +8 -8
  332. package/dist/{chunk-Z4GWXTZV.js → chunk-WGRS4PGY.js} +8 -8
  333. package/dist/{chunk-NRUYYGDZ.js → chunk-WLQTHPMX.js} +2 -2
  334. package/dist/{chunk-J2KSG754.js → chunk-WRDPWEIC.js} +5 -5
  335. package/dist/{chunk-HEG7JIBM.js → chunk-X5MPHXG5.js} +4 -4
  336. package/dist/{chunk-NFAKRI4S.js → chunk-XELVDPKL.js} +4 -4
  337. package/dist/{chunk-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
  338. package/dist/{chunk-7RZ4WOQW.js → chunk-XKV5ZIBG.js} +3 -3
  339. package/dist/{chunk-F2DOTCF3.js → chunk-XSF6AXEU.js} +2 -2
  340. package/dist/{chunk-74EZ565M.js → chunk-XT7HMNBW.js} +9 -9
  341. package/dist/{chunk-PHCSPHDH.js → chunk-XUJG2HFW.js} +3 -3
  342. package/dist/{chunk-ACDYA5WC.js → chunk-XZTOIEKI.js} +2 -2
  343. package/dist/{chunk-S5LE2ARG.js → chunk-YANLN6HP.js} +66 -56
  344. package/dist/chunk-YANLN6HP.js.map +1 -0
  345. package/dist/{chunk-SKZHOWTS.js → chunk-YDI6IJ6F.js} +2 -2
  346. package/dist/{chunk-YK2PETUP.js → chunk-YJ4HM25H.js} +2 -2
  347. package/dist/{chunk-Q4NOI2CR.js → chunk-YQ6TNHAC.js} +4 -4
  348. package/dist/{chunk-24BUCMQA.js → chunk-YTOYMJPM.js} +2 -2
  349. package/dist/{chunk-G5ZVD5IJ.js → chunk-ZDWU52DJ.js} +2 -2
  350. package/dist/{chunk-MY5VNNSP.js → chunk-ZIYMBR7K.js} +8 -8
  351. package/dist/{chunk-7JWXLDRH.js → chunk-ZKR5B6YJ.js} +4 -4
  352. package/dist/{chunk-4MGFUPQT.js → chunk-ZOUWHGV3.js} +4 -4
  353. package/dist/{chunk-UMDXGIRZ.js → chunk-ZZOOSKSV.js} +2 -2
  354. package/dist/data-display/Alert.js +2 -2
  355. package/dist/data-display/AsyncStateContainer.js +8 -8
  356. package/dist/data-display/Badge.js +2 -2
  357. package/dist/data-display/CardKit.js +10 -10
  358. package/dist/data-display/Carousel.js +3 -3
  359. package/dist/data-display/Chart.js +11 -11
  360. package/dist/data-display/DataGrid.js +3 -3
  361. package/dist/data-display/DataViews.js +90 -81
  362. package/dist/data-display/DescriptionItem.js +3 -3
  363. package/dist/data-display/EmptyState.js +3 -3
  364. package/dist/data-display/ErrorState.js +2 -2
  365. package/dist/data-display/HoverCard.js +3 -3
  366. package/dist/data-display/LazyImage.js +4 -4
  367. package/dist/data-display/Lightbox.js +5 -5
  368. package/dist/data-display/LoadingState.js +4 -4
  369. package/dist/data-display/MapPreview.js +4 -4
  370. package/dist/data-display/Progress.js +2 -2
  371. package/dist/data-display/SectionOnboarding.js +4 -4
  372. package/dist/data-display/Sheet.js +4 -4
  373. package/dist/data-display/StatCard.js +4 -4
  374. package/dist/feedback/ConfirmAction.js +5 -5
  375. package/dist/feedback/Dialog.js +6 -2
  376. package/dist/feedback/Modal.js +2 -2
  377. package/dist/feedback/StackedModal.js +2 -2
  378. package/dist/form/AddressAutocomplete.js +11 -9
  379. package/dist/form/Button.js +2 -2
  380. package/dist/form/CategorySelect.js +13 -11
  381. package/dist/form/CepField.js +10 -4
  382. package/dist/form/Checkbox.js +9 -2
  383. package/dist/form/CodeEditor.js +5 -3
  384. package/dist/form/CreatableSelect.js +4 -2
  385. package/dist/form/DateRangePicker.js +3 -3
  386. package/dist/form/Input.js +9 -3
  387. package/dist/form/InputOTP.js +5 -3
  388. package/dist/form/Label.js +2 -2
  389. package/dist/form/Menubar.js +2 -2
  390. package/dist/form/PhoneInput.js +4 -2
  391. package/dist/form/RadioGroup.js +6 -4
  392. package/dist/form/RichTextEditor.js +4 -2
  393. package/dist/form/Select.js +10 -2
  394. package/dist/form/Switch.js +9 -3
  395. package/dist/form/Textarea.js +5 -3
  396. package/dist/form/Toggle.js +5 -3
  397. package/dist/form/total-form.js +37 -32
  398. package/dist/icons.js +3 -3
  399. package/dist/layout/Box.js +2 -2
  400. package/dist/layout/Card.js +6 -3
  401. package/dist/layout/Container.js +2 -2
  402. package/dist/layout/ContentToolbar.js +9 -9
  403. package/dist/layout/ScrollArea.js +3 -3
  404. package/dist/layout/Skeleton.js +3 -3
  405. package/dist/layout/Spacer.js +2 -2
  406. package/dist/layout/Stack.js +3 -3
  407. package/dist/native/chunks/{chunk-HSIND52T.js → chunk-2UFNPDYT.js} +2 -1
  408. package/dist/native/chunks/chunk-2UFNPDYT.js.map +1 -0
  409. package/dist/native/chunks/{chunk-EKKNUEA6.js → chunk-75JQYVDZ.js} +3 -3
  410. package/dist/native/chunks/chunk-7LTVGW23.js +351 -0
  411. package/dist/native/chunks/chunk-7LTVGW23.js.map +1 -0
  412. package/dist/native/chunks/{chunk-M4DTJDWU.js → chunk-AR5O4BEY.js} +6 -2
  413. package/dist/native/chunks/chunk-AR5O4BEY.js.map +1 -0
  414. package/dist/native/chunks/{chunk-UKCCYP52.js → chunk-ATS7STZJ.js} +4 -4
  415. package/dist/native/chunks/{chunk-YTHR4Y5P.js → chunk-GWGIWQO7.js} +2 -2
  416. package/dist/native/chunks/{chunk-P3PL4WBO.js → chunk-LEMMXZFN.js} +24 -24
  417. package/dist/native/chunks/{chunk-P3PL4WBO.js.map → chunk-LEMMXZFN.js.map} +1 -1
  418. package/dist/native/chunks/chunk-NRN37A5K.js +67 -0
  419. package/dist/native/chunks/chunk-NRN37A5K.js.map +1 -0
  420. package/dist/native/chunks/chunk-OXHZDFJZ.js +15 -0
  421. package/dist/native/chunks/chunk-OXHZDFJZ.js.map +1 -0
  422. package/dist/native/chunks/{chunk-Q52IDAF2.js → chunk-QYUD3S6F.js} +9 -5
  423. package/dist/native/chunks/chunk-QYUD3S6F.js.map +1 -0
  424. package/dist/native/chunks/chunk-T6BJPP3E.js +26 -0
  425. package/dist/native/chunks/chunk-T6BJPP3E.js.map +1 -0
  426. package/dist/native/data-display/Alert.js +9 -9
  427. package/dist/native/data-display/Avatar.js +7 -7
  428. package/dist/native/data-display/Badge.js +9 -9
  429. package/dist/native/data-display/Chip.js +4 -4
  430. package/dist/native/data-display/EmptyState.js +12 -12
  431. package/dist/native/data-display/ErrorState.js +12 -12
  432. package/dist/native/data-display/LoadingState.js +7 -7
  433. package/dist/native/data-display/Progress.js +3 -3
  434. package/dist/native/feedback/Dialog.js +496 -0
  435. package/dist/native/feedback/Dialog.js.map +1 -0
  436. package/dist/native/form/Button.js +4 -4
  437. package/dist/native/form/Checkbox.js +233 -0
  438. package/dist/native/form/Checkbox.js.map +1 -0
  439. package/dist/native/form/Input.js +233 -0
  440. package/dist/native/form/Input.js.map +1 -0
  441. package/dist/native/form/Select.js +348 -0
  442. package/dist/native/form/Select.js.map +1 -0
  443. package/dist/native/form/Switch.js +511 -0
  444. package/dist/native/form/Switch.js.map +1 -0
  445. package/dist/native/icons.js +4 -4
  446. package/dist/native/layout/Box.js +4 -4
  447. package/dist/native/layout/Card.js +494 -0
  448. package/dist/native/layout/Card.js.map +1 -0
  449. package/dist/native/layout/Container.js +3 -3
  450. package/dist/native/layout/Skeleton.js +6 -6
  451. package/dist/native/layout/Spacer.js +3 -3
  452. package/dist/native/layout/Stack.js +4 -4
  453. package/dist/native/provider.js +2 -2
  454. package/dist/native/tokens.js +1 -1
  455. package/dist/native/typography/Heading.js +3 -3
  456. package/dist/native/typography/Paragraph.js +3 -3
  457. package/dist/native/typography/Text.js +3 -3
  458. package/dist/navigation/AppHeader.js +12 -9
  459. package/dist/navigation/CommandPalette.js +3 -3
  460. package/dist/navigation/NavigationMenu.js +5 -5
  461. package/dist/social-login-button.js +10 -8
  462. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +64 -0
  463. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
  464. package/dist/types/components/feedback/Dialog/Dialog.d.ts.map +1 -1
  465. package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
  466. package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
  467. package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
  468. package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
  469. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts +4 -4
  470. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
  471. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +8 -41
  472. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts.map +1 -1
  473. package/dist/types/components/feedback/Dialog/index.d.ts +1 -1
  474. package/dist/types/components/feedback/Dialog/index.d.ts.map +1 -1
  475. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts +36 -0
  476. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
  477. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  478. package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts +9 -3
  479. package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -1
  480. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
  481. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
  482. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts +8 -10
  483. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts.map +1 -1
  484. package/dist/types/components/form/Checkbox/index.d.ts +1 -1
  485. package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
  486. package/dist/types/components/form/Input/Input.base.d.ts +62 -0
  487. package/dist/types/components/form/Input/Input.base.d.ts.map +1 -0
  488. package/dist/types/components/form/Input/Input.d.ts.map +1 -1
  489. package/dist/types/components/form/Input/Input.helpers.d.ts +11 -0
  490. package/dist/types/components/form/Input/Input.helpers.d.ts.map +1 -0
  491. package/dist/types/components/form/Input/Input.metrics.d.ts +186 -0
  492. package/dist/types/components/form/Input/Input.metrics.d.ts.map +1 -0
  493. package/dist/types/components/form/Input/Input.styles.d.ts +1 -35
  494. package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
  495. package/dist/types/components/form/Input/Input.types.d.ts +12 -17
  496. package/dist/types/components/form/Input/Input.types.d.ts.map +1 -1
  497. package/dist/types/components/form/Input/index.d.ts +1 -1
  498. package/dist/types/components/form/Input/index.d.ts.map +1 -1
  499. package/dist/types/components/form/Select/Select.base.d.ts +75 -0
  500. package/dist/types/components/form/Select/Select.base.d.ts.map +1 -0
  501. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  502. package/dist/types/components/form/Select/Select.helpers.d.ts +36 -0
  503. package/dist/types/components/form/Select/Select.helpers.d.ts.map +1 -0
  504. package/dist/types/components/form/Select/Select.metrics.d.ts +72 -0
  505. package/dist/types/components/form/Select/Select.metrics.d.ts.map +1 -0
  506. package/dist/types/components/form/Select/Select.types.d.ts +12 -49
  507. package/dist/types/components/form/Select/Select.types.d.ts.map +1 -1
  508. package/dist/types/components/form/Select/index.d.ts +1 -1
  509. package/dist/types/components/form/Select/index.d.ts.map +1 -1
  510. package/dist/types/components/form/Switch/Switch.base.d.ts +111 -0
  511. package/dist/types/components/form/Switch/Switch.base.d.ts.map +1 -0
  512. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  513. package/dist/types/components/form/Switch/Switch.helpers.d.ts +17 -0
  514. package/dist/types/components/form/Switch/Switch.helpers.d.ts.map +1 -0
  515. package/dist/types/components/form/Switch/Switch.metrics.d.ts +194 -0
  516. package/dist/types/components/form/Switch/Switch.metrics.d.ts.map +1 -0
  517. package/dist/types/components/form/Switch/Switch.parts.d.ts.map +1 -1
  518. package/dist/types/components/form/Switch/Switch.styles.d.ts +5 -3
  519. package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
  520. package/dist/types/components/form/Switch/Switch.types.d.ts +9 -91
  521. package/dist/types/components/form/Switch/Switch.types.d.ts.map +1 -1
  522. package/dist/types/components/form/Switch/index.d.ts +1 -1
  523. package/dist/types/components/form/Switch/index.d.ts.map +1 -1
  524. package/dist/types/components/layout/Card/Card.base.d.ts +77 -0
  525. package/dist/types/components/layout/Card/Card.base.d.ts.map +1 -0
  526. package/dist/types/components/layout/Card/Card.d.ts.map +1 -1
  527. package/dist/types/components/layout/Card/Card.helpers.d.ts +8 -3
  528. package/dist/types/components/layout/Card/Card.helpers.d.ts.map +1 -1
  529. package/dist/types/components/layout/Card/Card.metrics.d.ts +182 -0
  530. package/dist/types/components/layout/Card/Card.metrics.d.ts.map +1 -0
  531. package/dist/types/components/layout/Card/Card.styles.d.ts +2 -2
  532. package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
  533. package/dist/types/components/layout/Card/Card.types.d.ts +10 -44
  534. package/dist/types/components/layout/Card/Card.types.d.ts.map +1 -1
  535. package/dist/types/components/layout/Card/index.d.ts +1 -1
  536. package/dist/types/components/layout/Card/index.d.ts.map +1 -1
  537. package/dist/types/icons/paths.generated.d.ts +4 -0
  538. package/dist/types/icons/paths.generated.d.ts.map +1 -1
  539. package/dist/types/platform/aria.d.ts +59 -1
  540. package/dist/types/platform/aria.d.ts.map +1 -1
  541. package/dist/types/platform/test-id.d.ts +24 -0
  542. package/dist/types/platform/test-id.d.ts.map +1 -1
  543. package/dist/types/tokens/field-edge.core.d.ts +27 -0
  544. package/dist/types/tokens/field-edge.core.d.ts.map +1 -0
  545. package/dist/types/tokens/field-edge.d.ts +8 -9
  546. package/dist/types/tokens/field-edge.d.ts.map +1 -1
  547. package/dist/types/tokens/mui-type.d.ts +1 -1
  548. package/dist/types/tokens/mui-type.d.ts.map +1 -1
  549. package/dist/types/tokens/shadow.d.ts +40 -0
  550. package/dist/types/tokens/shadow.d.ts.map +1 -0
  551. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +64 -0
  552. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
  553. package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
  554. package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
  555. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts +44 -0
  556. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -0
  557. package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
  558. package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
  559. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts +8 -0
  560. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -0
  561. package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts +25 -0
  562. package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts.map +1 -0
  563. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts +39 -0
  564. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts.map +1 -0
  565. package/dist/types-native/components/feedback/Dialog/index.native.d.ts +4 -0
  566. package/dist/types-native/components/feedback/Dialog/index.native.d.ts.map +1 -0
  567. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts +36 -0
  568. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
  569. package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts +13 -0
  570. package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -0
  571. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
  572. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
  573. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts +21 -0
  574. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts.map +1 -0
  575. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts +27 -0
  576. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts.map +1 -0
  577. package/dist/types-native/components/form/Checkbox/index.native.d.ts +3 -0
  578. package/dist/types-native/components/form/Checkbox/index.native.d.ts.map +1 -0
  579. package/dist/types-native/components/form/Input/Input.base.d.ts +62 -0
  580. package/dist/types-native/components/form/Input/Input.base.d.ts.map +1 -0
  581. package/dist/types-native/components/form/Input/Input.helpers.d.ts +11 -0
  582. package/dist/types-native/components/form/Input/Input.helpers.d.ts.map +1 -0
  583. package/dist/types-native/components/form/Input/Input.look.native.d.ts +61 -0
  584. package/dist/types-native/components/form/Input/Input.look.native.d.ts.map +1 -0
  585. package/dist/types-native/components/form/Input/Input.metrics.d.ts +186 -0
  586. package/dist/types-native/components/form/Input/Input.metrics.d.ts.map +1 -0
  587. package/dist/types-native/components/form/Input/Input.native.d.ts +22 -0
  588. package/dist/types-native/components/form/Input/Input.native.d.ts.map +1 -0
  589. package/dist/types-native/components/form/Input/Input.types.native.d.ts +20 -0
  590. package/dist/types-native/components/form/Input/Input.types.native.d.ts.map +1 -0
  591. package/dist/types-native/components/form/Input/index.native.d.ts +3 -0
  592. package/dist/types-native/components/form/Input/index.native.d.ts.map +1 -0
  593. package/dist/types-native/components/form/Select/Select.base.d.ts +75 -0
  594. package/dist/types-native/components/form/Select/Select.base.d.ts.map +1 -0
  595. package/dist/types-native/components/form/Select/Select.helpers.d.ts +36 -0
  596. package/dist/types-native/components/form/Select/Select.helpers.d.ts.map +1 -0
  597. package/dist/types-native/components/form/Select/Select.look.native.d.ts +26 -0
  598. package/dist/types-native/components/form/Select/Select.look.native.d.ts.map +1 -0
  599. package/dist/types-native/components/form/Select/Select.metrics.d.ts +72 -0
  600. package/dist/types-native/components/form/Select/Select.metrics.d.ts.map +1 -0
  601. package/dist/types-native/components/form/Select/Select.native.d.ts +21 -0
  602. package/dist/types-native/components/form/Select/Select.native.d.ts.map +1 -0
  603. package/dist/types-native/components/form/Select/Select.types.native.d.ts +29 -0
  604. package/dist/types-native/components/form/Select/Select.types.native.d.ts.map +1 -0
  605. package/dist/types-native/components/form/Select/index.native.d.ts +3 -0
  606. package/dist/types-native/components/form/Select/index.native.d.ts.map +1 -0
  607. package/dist/types-native/components/form/Switch/Switch.base.d.ts +111 -0
  608. package/dist/types-native/components/form/Switch/Switch.base.d.ts.map +1 -0
  609. package/dist/types-native/components/form/Switch/Switch.helpers.d.ts +17 -0
  610. package/dist/types-native/components/form/Switch/Switch.helpers.d.ts.map +1 -0
  611. package/dist/types-native/components/form/Switch/Switch.look.native.d.ts +43 -0
  612. package/dist/types-native/components/form/Switch/Switch.look.native.d.ts.map +1 -0
  613. package/dist/types-native/components/form/Switch/Switch.metrics.d.ts +194 -0
  614. package/dist/types-native/components/form/Switch/Switch.metrics.d.ts.map +1 -0
  615. package/dist/types-native/components/form/Switch/Switch.native.d.ts +20 -0
  616. package/dist/types-native/components/form/Switch/Switch.native.d.ts.map +1 -0
  617. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts +27 -0
  618. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts.map +1 -0
  619. package/dist/types-native/components/form/Switch/index.native.d.ts +3 -0
  620. package/dist/types-native/components/form/Switch/index.native.d.ts.map +1 -0
  621. package/dist/types-native/components/form/field-pulse.native.d.ts +18 -0
  622. package/dist/types-native/components/form/field-pulse.native.d.ts.map +1 -0
  623. package/dist/types-native/components/layout/Card/Card.base.d.ts +77 -0
  624. package/dist/types-native/components/layout/Card/Card.base.d.ts.map +1 -0
  625. package/dist/types-native/components/layout/Card/Card.helpers.d.ts +11 -0
  626. package/dist/types-native/components/layout/Card/Card.helpers.d.ts.map +1 -0
  627. package/dist/types-native/components/layout/Card/Card.look.native.d.ts +57 -0
  628. package/dist/types-native/components/layout/Card/Card.look.native.d.ts.map +1 -0
  629. package/dist/types-native/components/layout/Card/Card.metrics.d.ts +182 -0
  630. package/dist/types-native/components/layout/Card/Card.metrics.d.ts.map +1 -0
  631. package/dist/types-native/components/layout/Card/Card.native.d.ts +11 -0
  632. package/dist/types-native/components/layout/Card/Card.native.d.ts.map +1 -0
  633. package/dist/types-native/components/layout/Card/Card.types.native.d.ts +28 -0
  634. package/dist/types-native/components/layout/Card/Card.types.native.d.ts.map +1 -0
  635. package/dist/types-native/components/layout/Card/CardParts.native.d.ts +55 -0
  636. package/dist/types-native/components/layout/Card/CardParts.native.d.ts.map +1 -0
  637. package/dist/types-native/components/layout/Card/index.native.d.ts +4 -0
  638. package/dist/types-native/components/layout/Card/index.native.d.ts.map +1 -0
  639. package/dist/types-native/icons/paths.generated.d.ts +4 -0
  640. package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
  641. package/dist/types-native/platform/aria.d.ts +59 -1
  642. package/dist/types-native/platform/aria.d.ts.map +1 -1
  643. package/dist/types-native/platform/pulse-ring.native.d.ts +35 -0
  644. package/dist/types-native/platform/pulse-ring.native.d.ts.map +1 -0
  645. package/dist/types-native/platform/test-id.d.ts +24 -0
  646. package/dist/types-native/platform/test-id.d.ts.map +1 -1
  647. package/dist/types-native/tokens/field-edge.core.d.ts +27 -0
  648. package/dist/types-native/tokens/field-edge.core.d.ts.map +1 -0
  649. package/dist/types-native/tokens/mui-type.d.ts +1 -1
  650. package/dist/types-native/tokens/mui-type.d.ts.map +1 -1
  651. package/dist/types-native/tokens/shadow.d.ts +40 -0
  652. package/dist/types-native/tokens/shadow.d.ts.map +1 -0
  653. package/dist/types-native/utils/withDefaults.d.ts +13 -0
  654. package/dist/types-native/utils/withDefaults.d.ts.map +1 -0
  655. package/dist/typography/Heading.js +2 -2
  656. package/dist/typography/Paragraph.js +2 -2
  657. package/dist/typography/Text.js +2 -2
  658. package/dist/user-avatar.js +9 -7
  659. package/dist/utility/InstallPrompt.js +2 -2
  660. package/package.json +25 -1
  661. package/src/components/data-display/CardKit/NATIVE-NOTES.md +48 -0
  662. package/src/components/feedback/Dialog/Dialog.base.ts +69 -0
  663. package/src/components/feedback/Dialog/Dialog.helpers.ts +75 -0
  664. package/src/components/feedback/Dialog/Dialog.look.native.ts +159 -0
  665. package/src/components/feedback/Dialog/Dialog.metrics.ts +140 -0
  666. package/src/components/feedback/Dialog/Dialog.native.tsx +149 -0
  667. package/src/components/feedback/Dialog/Dialog.styles.ts +63 -41
  668. package/src/components/feedback/Dialog/Dialog.tsx +58 -74
  669. package/src/components/feedback/Dialog/Dialog.types.native.ts +46 -0
  670. package/src/components/feedback/Dialog/Dialog.types.ts +24 -41
  671. package/src/components/feedback/Dialog/DialogParts.native.tsx +257 -0
  672. package/src/components/feedback/Dialog/NATIVE-NOTES.md +16 -0
  673. package/src/components/feedback/Dialog/index.native.ts +16 -0
  674. package/src/components/feedback/Dialog/index.ts +8 -2
  675. package/src/components/form/Checkbox/Checkbox.base.ts +36 -0
  676. package/src/components/form/Checkbox/Checkbox.helpers.ts +13 -13
  677. package/src/components/form/Checkbox/Checkbox.metrics.ts +73 -0
  678. package/src/components/form/Checkbox/Checkbox.native.tsx +246 -0
  679. package/src/components/form/Checkbox/Checkbox.tsx +34 -21
  680. package/src/components/form/Checkbox/Checkbox.types.native.ts +29 -0
  681. package/src/components/form/Checkbox/Checkbox.types.ts +12 -11
  682. package/src/components/form/Checkbox/NATIVE-NOTES.md +11 -0
  683. package/src/components/form/Checkbox/index.native.ts +8 -0
  684. package/src/components/form/Checkbox/index.ts +1 -1
  685. package/src/components/form/Input/Input.base.ts +84 -0
  686. package/src/components/form/Input/Input.helpers.ts +43 -0
  687. package/src/components/form/Input/Input.look.native.ts +246 -0
  688. package/src/components/form/Input/Input.metrics.ts +229 -0
  689. package/src/components/form/Input/Input.native.tsx +240 -0
  690. package/src/components/form/Input/Input.styles.ts +45 -51
  691. package/src/components/form/Input/Input.tsx +46 -42
  692. package/src/components/form/Input/Input.types.native.ts +29 -0
  693. package/src/components/form/Input/Input.types.ts +15 -17
  694. package/src/components/form/Input/NATIVE-NOTES.md +14 -0
  695. package/src/components/form/Input/index.native.ts +2 -0
  696. package/src/components/form/Input/index.ts +1 -1
  697. package/src/components/form/Select/NATIVE-NOTES.md +12 -0
  698. package/src/components/form/Select/Select.base.ts +78 -0
  699. package/src/components/form/Select/Select.helpers.ts +82 -0
  700. package/src/components/form/Select/Select.look.native.ts +99 -0
  701. package/src/components/form/Select/Select.metrics.ts +90 -0
  702. package/src/components/form/Select/Select.native.tsx +264 -0
  703. package/src/components/form/Select/Select.tsx +37 -25
  704. package/src/components/form/Select/Select.types.native.ts +30 -0
  705. package/src/components/form/Select/Select.types.ts +14 -51
  706. package/src/components/form/Select/index.native.ts +9 -0
  707. package/src/components/form/Select/index.ts +7 -1
  708. package/src/components/form/Switch/NATIVE-NOTES.md +12 -0
  709. package/src/components/form/Switch/Switch.base.ts +136 -0
  710. package/src/components/form/Switch/Switch.helpers.ts +61 -0
  711. package/src/components/form/Switch/Switch.look.native.ts +187 -0
  712. package/src/components/form/Switch/Switch.metrics.ts +191 -0
  713. package/src/components/form/Switch/Switch.native.tsx +360 -0
  714. package/src/components/form/Switch/Switch.parts.tsx +4 -4
  715. package/src/components/form/Switch/Switch.styles.ts +109 -147
  716. package/src/components/form/Switch/Switch.tsx +4 -2
  717. package/src/components/form/Switch/Switch.types.native.ts +34 -0
  718. package/src/components/form/Switch/Switch.types.ts +16 -117
  719. package/src/components/form/Switch/index.native.ts +8 -0
  720. package/src/components/form/Switch/index.ts +6 -1
  721. package/src/components/form/field-pulse.native.tsx +78 -0
  722. package/src/components/layout/Card/Card.base.ts +92 -0
  723. package/src/components/layout/Card/Card.helpers.ts +13 -7
  724. package/src/components/layout/Card/Card.look.native.ts +204 -0
  725. package/src/components/layout/Card/Card.metrics.ts +171 -0
  726. package/src/components/layout/Card/Card.native.tsx +130 -0
  727. package/src/components/layout/Card/Card.styles.ts +88 -48
  728. package/src/components/layout/Card/Card.tsx +41 -25
  729. package/src/components/layout/Card/Card.types.native.ts +59 -0
  730. package/src/components/layout/Card/Card.types.ts +30 -45
  731. package/src/components/layout/Card/CardParts.native.tsx +262 -0
  732. package/src/components/layout/Card/NATIVE-NOTES.md +15 -0
  733. package/src/components/layout/Card/index.native.ts +18 -0
  734. package/src/components/layout/Card/index.ts +9 -0
  735. package/src/icons/glyphs.json +4 -0
  736. package/src/icons/paths.generated.ts +4 -0
  737. package/src/platform/aria.ts +72 -1
  738. package/src/platform/pulse-ring.native.tsx +82 -0
  739. package/src/platform/test-id.ts +30 -0
  740. package/src/tokens/field-edge.core.ts +87 -0
  741. package/src/tokens/field-edge.ts +10 -66
  742. package/src/tokens/mui-type.ts +2 -1
  743. package/src/tokens/shadow.ts +59 -0
  744. package/dist/chunk-6PRA45LC.js.map +0 -1
  745. package/dist/chunk-BJ3J6FTN.js.map +0 -1
  746. package/dist/chunk-D2IASECY.js.map +0 -1
  747. package/dist/chunk-FX5DY6VR.js.map +0 -1
  748. package/dist/chunk-JD364H3Y.js.map +0 -1
  749. package/dist/chunk-MLOWPVVW.js.map +0 -1
  750. package/dist/chunk-OQXOYHIV.js.map +0 -1
  751. package/dist/chunk-Q5EQC7NL.js.map +0 -1
  752. package/dist/chunk-QLWBQQW7.js.map +0 -1
  753. package/dist/chunk-RI5JZLZL.js.map +0 -1
  754. package/dist/chunk-RMSH2I3O.js.map +0 -1
  755. package/dist/chunk-S5LE2ARG.js.map +0 -1
  756. package/dist/chunk-TBWEIQUR.js +0 -263
  757. package/dist/chunk-TBWEIQUR.js.map +0 -1
  758. package/dist/chunk-VMF3UXM4.js +0 -137
  759. package/dist/chunk-VMF3UXM4.js.map +0 -1
  760. package/dist/chunk-VMNSGE2G.js.map +0 -1
  761. package/dist/chunk-VSLUFBMT.js.map +0 -1
  762. package/dist/native/chunks/chunk-4NK5ZQZ3.js +0 -10
  763. package/dist/native/chunks/chunk-4NK5ZQZ3.js.map +0 -1
  764. package/dist/native/chunks/chunk-HSIND52T.js.map +0 -1
  765. package/dist/native/chunks/chunk-M4DTJDWU.js.map +0 -1
  766. package/dist/native/chunks/chunk-Q52IDAF2.js.map +0 -1
  767. /package/dist/{chunk-MBYO2F4Y.js.map → chunk-25R3ITGZ.js.map} +0 -0
  768. /package/dist/{chunk-KQ74QU55.js.map → chunk-2FDBR77W.js.map} +0 -0
  769. /package/dist/{chunk-D7FJ2GAD.js.map → chunk-2HPP6RVC.js.map} +0 -0
  770. /package/dist/{chunk-B2A4DG77.js.map → chunk-2MMEIN4T.js.map} +0 -0
  771. /package/dist/{chunk-YRUCIKPO.js.map → chunk-2UYR2OOE.js.map} +0 -0
  772. /package/dist/{chunk-2PCOC3PT.js.map → chunk-343TTIHD.js.map} +0 -0
  773. /package/dist/{chunk-DQHC5P64.js.map → chunk-3FLVIVOK.js.map} +0 -0
  774. /package/dist/{chunk-URWGRPL7.js.map → chunk-3W7IEWEL.js.map} +0 -0
  775. /package/dist/{chunk-47UD6DZ4.js.map → chunk-4523RYE7.js.map} +0 -0
  776. /package/dist/{chunk-AEGX66N7.js.map → chunk-4IVOHL32.js.map} +0 -0
  777. /package/dist/{chunk-GGE7Y53F.js.map → chunk-4TXIZ5WI.js.map} +0 -0
  778. /package/dist/{chunk-IJIT5HQP.js.map → chunk-4X4KM4ZB.js.map} +0 -0
  779. /package/dist/{chunk-M7OHXNLF.js.map → chunk-5NKUYCZD.js.map} +0 -0
  780. /package/dist/{chunk-C52BELLW.js.map → chunk-5OIH36KX.js.map} +0 -0
  781. /package/dist/{chunk-LMJBINWN.js.map → chunk-5ZTUP65G.js.map} +0 -0
  782. /package/dist/{chunk-EX3PSZLV.js.map → chunk-67L7HMEP.js.map} +0 -0
  783. /package/dist/{chunk-2EKALM6P.js.map → chunk-6JGPPTLX.js.map} +0 -0
  784. /package/dist/{chunk-LZRURORY.js.map → chunk-6NZTYZP5.js.map} +0 -0
  785. /package/dist/{chunk-DCEMUZJQ.js.map → chunk-6WIDZGXE.js.map} +0 -0
  786. /package/dist/{chunk-R7MX5KPJ.js.map → chunk-6YLAVHV4.js.map} +0 -0
  787. /package/dist/{chunk-RXSGHPCR.js.map → chunk-7FOOLP5H.js.map} +0 -0
  788. /package/dist/{chunk-DOADQW7I.js.map → chunk-7NSX7A5H.js.map} +0 -0
  789. /package/dist/{chunk-QZWKC3AP.js.map → chunk-7VN7LFBA.js.map} +0 -0
  790. /package/dist/{chunk-E4FGKZID.js.map → chunk-AEGXHZQT.js.map} +0 -0
  791. /package/dist/{chunk-WO52KYSU.js.map → chunk-AGSBIUPV.js.map} +0 -0
  792. /package/dist/{chunk-PU3AAKRR.js.map → chunk-AJ6XEO4E.js.map} +0 -0
  793. /package/dist/{chunk-7DNQHMDO.js.map → chunk-B6IURHSZ.js.map} +0 -0
  794. /package/dist/{chunk-WX7VWW3W.js.map → chunk-C3CMEDSO.js.map} +0 -0
  795. /package/dist/{chunk-HSAH5QUQ.js.map → chunk-CHPZTF34.js.map} +0 -0
  796. /package/dist/{chunk-7EESF76V.js.map → chunk-CJBBGMIA.js.map} +0 -0
  797. /package/dist/{chunk-2W4CIWTW.js.map → chunk-DBYFC6CF.js.map} +0 -0
  798. /package/dist/{chunk-FGLV6BXQ.js.map → chunk-DTC224UJ.js.map} +0 -0
  799. /package/dist/{chunk-HEK4LQT6.js.map → chunk-DVFIE54C.js.map} +0 -0
  800. /package/dist/{chunk-4N4ENTF7.js.map → chunk-DW5FRWRQ.js.map} +0 -0
  801. /package/dist/{chunk-THBT56JE.js.map → chunk-E55CJV65.js.map} +0 -0
  802. /package/dist/{chunk-B7BZAIHL.js.map → chunk-EOHKZGOZ.js.map} +0 -0
  803. /package/dist/{chunk-EGRFMPGD.js.map → chunk-EXJBPKGW.js.map} +0 -0
  804. /package/dist/{chunk-BILE3A7F.js.map → chunk-FGK2C7JR.js.map} +0 -0
  805. /package/dist/{chunk-OI3HOI74.js.map → chunk-FGUESLDX.js.map} +0 -0
  806. /package/dist/{chunk-VCTKJHXD.js.map → chunk-FL54G7PV.js.map} +0 -0
  807. /package/dist/{chunk-HDNK7BAX.js.map → chunk-GT7C6TSM.js.map} +0 -0
  808. /package/dist/{chunk-V3SBJ3PB.js.map → chunk-HFXTAEYY.js.map} +0 -0
  809. /package/dist/{chunk-HBAPVB7T.js.map → chunk-HKKSZ7HG.js.map} +0 -0
  810. /package/dist/{chunk-FOMK3WPG.js.map → chunk-HLYPI5CO.js.map} +0 -0
  811. /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
  812. /package/dist/{chunk-UNF65XZW.js.map → chunk-I5SBTNV2.js.map} +0 -0
  813. /package/dist/{chunk-X24P3ZYW.js.map → chunk-J4W4TQPC.js.map} +0 -0
  814. /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
  815. /package/dist/{chunk-NQC6H7GY.js.map → chunk-JIKWZDNK.js.map} +0 -0
  816. /package/dist/{chunk-ENNW5SKT.js.map → chunk-JSH3HFDQ.js.map} +0 -0
  817. /package/dist/{chunk-JB7JE4QZ.js.map → chunk-JWW2Z3RH.js.map} +0 -0
  818. /package/dist/{chunk-LAHDFBDE.js.map → chunk-JXNT5TUP.js.map} +0 -0
  819. /package/dist/{chunk-ZBNTFWTG.js.map → chunk-KIHQE5YA.js.map} +0 -0
  820. /package/dist/{chunk-ZEBJT5JZ.js.map → chunk-KTK4A3IF.js.map} +0 -0
  821. /package/dist/{chunk-4WK2RTVY.js.map → chunk-LS4FMSHY.js.map} +0 -0
  822. /package/dist/{chunk-PNYXXLPU.js.map → chunk-M4LQRQFL.js.map} +0 -0
  823. /package/dist/{chunk-Z7JNCB5Q.js.map → chunk-MESRKY67.js.map} +0 -0
  824. /package/dist/{chunk-VJK5FBNK.js.map → chunk-MP4VSWHK.js.map} +0 -0
  825. /package/dist/{chunk-6XPNJLXE.js.map → chunk-NARIG5FL.js.map} +0 -0
  826. /package/dist/{chunk-VEFDL77X.js.map → chunk-NWNSUHEB.js.map} +0 -0
  827. /package/dist/{chunk-43NEBUV3.js.map → chunk-O3336DJ6.js.map} +0 -0
  828. /package/dist/{chunk-WBVHRLIS.js.map → chunk-OFOYMZRY.js.map} +0 -0
  829. /package/dist/{chunk-SM3NRN7L.js.map → chunk-ON2CMKTI.js.map} +0 -0
  830. /package/dist/{chunk-IH4CX43Q.js.map → chunk-OP65D4UR.js.map} +0 -0
  831. /package/dist/{chunk-NHSMLVNC.js.map → chunk-OVLNF4AZ.js.map} +0 -0
  832. /package/dist/{chunk-ZTZ6S5Q6.js.map → chunk-OXQP3N6X.js.map} +0 -0
  833. /package/dist/{chunk-YVW7VPK4.js.map → chunk-PFLKPNBU.js.map} +0 -0
  834. /package/dist/{chunk-7P2HZLEG.js.map → chunk-PFV6RL4Q.js.map} +0 -0
  835. /package/dist/{chunk-76GZ55IC.js.map → chunk-PMS3H3OO.js.map} +0 -0
  836. /package/dist/{chunk-UF27D35R.js.map → chunk-PRUSQQDT.js.map} +0 -0
  837. /package/dist/{chunk-HBZIN6IQ.js.map → chunk-PZEC5CQA.js.map} +0 -0
  838. /package/dist/{chunk-74OZ5KVR.js.map → chunk-Q75SJ35X.js.map} +0 -0
  839. /package/dist/{chunk-PC5FFEIY.js.map → chunk-QFJRB27Q.js.map} +0 -0
  840. /package/dist/{chunk-6D5WEZ2L.js.map → chunk-QFVFHIHE.js.map} +0 -0
  841. /package/dist/{chunk-GBB6XQ56.js.map → chunk-QGBMCB76.js.map} +0 -0
  842. /package/dist/{chunk-PODGTNXS.js.map → chunk-QKIJ6YXZ.js.map} +0 -0
  843. /package/dist/{chunk-DX527XPL.js.map → chunk-QWDEOITU.js.map} +0 -0
  844. /package/dist/{chunk-OLZTGVBT.js.map → chunk-REMK55JI.js.map} +0 -0
  845. /package/dist/{chunk-BLT5ZBVL.js.map → chunk-RRX6ZTNX.js.map} +0 -0
  846. /package/dist/{chunk-FCOEJCUP.js.map → chunk-TFO6GBW7.js.map} +0 -0
  847. /package/dist/{chunk-2ZDTGI5V.js.map → chunk-TLMLEC4F.js.map} +0 -0
  848. /package/dist/{chunk-FP4R47TM.js.map → chunk-TW3BXVEU.js.map} +0 -0
  849. /package/dist/{chunk-J6UFAMIC.js.map → chunk-TZDDL3DR.js.map} +0 -0
  850. /package/dist/{chunk-6IUTT6BK.js.map → chunk-U2YJCNRU.js.map} +0 -0
  851. /package/dist/{chunk-KZSKI2R3.js.map → chunk-U2ZDN2AL.js.map} +0 -0
  852. /package/dist/{chunk-YFHIESMD.js.map → chunk-U7Q2Y6WG.js.map} +0 -0
  853. /package/dist/{chunk-RQDN4BN5.js.map → chunk-UU3QAKG6.js.map} +0 -0
  854. /package/dist/{chunk-VJFH2AXT.js.map → chunk-UVGRRI7N.js.map} +0 -0
  855. /package/dist/{chunk-7DBFEZRC.js.map → chunk-VIK3HAUQ.js.map} +0 -0
  856. /package/dist/{chunk-SOCKK67R.js.map → chunk-VNDOQEJ7.js.map} +0 -0
  857. /package/dist/{chunk-J54WH74M.js.map → chunk-VNNG46TS.js.map} +0 -0
  858. /package/dist/{chunk-5ZF3VASA.js.map → chunk-VQAM2XZV.js.map} +0 -0
  859. /package/dist/{chunk-SEH7KOVG.js.map → chunk-VXTYVJDK.js.map} +0 -0
  860. /package/dist/{chunk-37YPZHAG.js.map → chunk-W4SDVTZC.js.map} +0 -0
  861. /package/dist/{chunk-X5D3PTWI.js.map → chunk-W4YWU7LQ.js.map} +0 -0
  862. /package/dist/{chunk-LKVIZNUM.js.map → chunk-W7Y6RA6W.js.map} +0 -0
  863. /package/dist/{chunk-Z4GWXTZV.js.map → chunk-WGRS4PGY.js.map} +0 -0
  864. /package/dist/{chunk-NRUYYGDZ.js.map → chunk-WLQTHPMX.js.map} +0 -0
  865. /package/dist/{chunk-J2KSG754.js.map → chunk-WRDPWEIC.js.map} +0 -0
  866. /package/dist/{chunk-HEG7JIBM.js.map → chunk-X5MPHXG5.js.map} +0 -0
  867. /package/dist/{chunk-NFAKRI4S.js.map → chunk-XELVDPKL.js.map} +0 -0
  868. /package/dist/{chunk-EPNUVSNK.js.map → chunk-XFUNJYFT.js.map} +0 -0
  869. /package/dist/{chunk-7RZ4WOQW.js.map → chunk-XKV5ZIBG.js.map} +0 -0
  870. /package/dist/{chunk-F2DOTCF3.js.map → chunk-XSF6AXEU.js.map} +0 -0
  871. /package/dist/{chunk-74EZ565M.js.map → chunk-XT7HMNBW.js.map} +0 -0
  872. /package/dist/{chunk-PHCSPHDH.js.map → chunk-XUJG2HFW.js.map} +0 -0
  873. /package/dist/{chunk-ACDYA5WC.js.map → chunk-XZTOIEKI.js.map} +0 -0
  874. /package/dist/{chunk-SKZHOWTS.js.map → chunk-YDI6IJ6F.js.map} +0 -0
  875. /package/dist/{chunk-YK2PETUP.js.map → chunk-YJ4HM25H.js.map} +0 -0
  876. /package/dist/{chunk-Q4NOI2CR.js.map → chunk-YQ6TNHAC.js.map} +0 -0
  877. /package/dist/{chunk-24BUCMQA.js.map → chunk-YTOYMJPM.js.map} +0 -0
  878. /package/dist/{chunk-G5ZVD5IJ.js.map → chunk-ZDWU52DJ.js.map} +0 -0
  879. /package/dist/{chunk-MY5VNNSP.js.map → chunk-ZIYMBR7K.js.map} +0 -0
  880. /package/dist/{chunk-7JWXLDRH.js.map → chunk-ZKR5B6YJ.js.map} +0 -0
  881. /package/dist/{chunk-4MGFUPQT.js.map → chunk-ZOUWHGV3.js.map} +0 -0
  882. /package/dist/{chunk-UMDXGIRZ.js.map → chunk-ZZOOSKSV.js.map} +0 -0
  883. /package/dist/native/chunks/{chunk-EKKNUEA6.js.map → chunk-75JQYVDZ.js.map} +0 -0
  884. /package/dist/native/chunks/{chunk-UKCCYP52.js.map → chunk-ATS7STZJ.js.map} +0 -0
  885. /package/dist/native/chunks/{chunk-YTHR4Y5P.js.map → chunk-GWGIWQO7.js.map} +0 -0
@@ -1,14 +1,7 @@
1
- import {
2
- darken,
3
- decomposeColor,
4
- getContrastRatio,
5
- getLuminance,
6
- hslToRgb,
7
- lighten,
8
- recomposeColor,
9
- } from '@mui/material/styles/index.js';
10
1
  import type { Theme } from '@mui/material/styles/index.js';
11
2
 
3
+ import { resolveFieldEdge } from './field-edge.core';
4
+
12
5
  /**
13
6
  * THE EDGE THAT TELLS YOU WHERE A FIELD IS.
14
7
  *
@@ -66,50 +59,17 @@ import type { Theme } from '@mui/material/styles/index.js';
66
59
  * corrected brand colour that clears the floor by construction. The resting
67
60
  * state was the only one you could not see, and it is the one that matters,
68
61
  * because it is the state a field is in before anyone has found it.
69
- */
70
-
71
- /**
72
- * WCAG 2.1 SC 1.4.11 — the contrast a control's own boundary owes the surface
73
- * behind it.
74
62
  *
75
- * 3:1 rather than the 4.5:1 the same spec asks of body text: a border is a
76
- * shape, not a glyph, so it stays findable at a lower ratio. It is a FLOOR and
77
- * not a target — {@link fieldEdge} stops at the first tone that clears it, so a
78
- * theme with a stronger hairline keeps the stronger one.
79
- */
80
- export const MIN_UI_CONTRAST = 3;
81
-
82
- /** How far one step of the walk moves, and how many steps before it gives up. */
83
- const STEP = 0.05;
84
- const MAX_STEPS = 20;
85
-
86
- /**
87
- * A colour as an opaque `rgb()`, with any translucency resolved against
88
- * `surface`.
63
+ * ## Where the walk itself lives
89
64
  *
90
- * Needed because `getContrastRatio` reads the channels it is given and ignores
91
- * the alpha, so handing it an `rgba()` measures a colour nobody sees. Every
92
- * failing border above was translucent, so skipping this would compute the ratio
93
- * of the hairline itself — 1.26:1, still a failure, but the wrong number for the
94
- * wrong reason.
65
+ * `./field-edge.core.ts`, over two colour strings and this package's own
66
+ * colour arithmetic. The native `Input` and `Select` draw the same border and
67
+ * have neither a MUI `Theme` to pass nor `@mui/material/styles` to import, so
68
+ * the algorithm sits one file below this one and both renderers call it. This
69
+ * file is the MUI-typed door onto it, and the argument above.
95
70
  */
96
- function flatten(colour: string, surface: string): string {
97
- const decomposed = decomposeColor(colour);
98
- const rgb = decomposed.type.startsWith('hsl')
99
- ? decomposeColor(hslToRgb(colour))
100
- : decomposed;
101
- const [r, g, b] = rgb.values;
102
- const alpha = rgb.values[3] ?? 1;
103
- if (alpha >= 1) return recomposeColor({ type: 'rgb', values: [r, g, b] });
104
71
 
105
- const behind = decomposeColor(surface);
106
- const base = behind.type.startsWith('hsl') ? decomposeColor(hslToRgb(surface)) : behind;
107
- const blend = (fg: number, bg: number): number => Math.round(alpha * fg + (1 - alpha) * bg);
108
- return recomposeColor({
109
- type: 'rgb',
110
- values: [blend(r, base.values[0]), blend(g, base.values[1]), blend(b, base.values[2])],
111
- });
112
- }
72
+ export { MIN_UI_CONTRAST } from './field-edge.core';
113
73
 
114
74
  /**
115
75
  * The resting boundary for a form control on `surface`.
@@ -121,21 +81,5 @@ function flatten(colour: string, surface: string): string {
121
81
  * as the pair it is given.
122
82
  */
123
83
  export function fieldEdge(theme: Theme, surface?: string): string {
124
- const ground = flatten(surface ?? theme.palette.background.paper, '#FFFFFF');
125
- const seed = flatten(theme.palette.divider, ground);
126
- if (getContrastRatio(seed, ground) >= MIN_UI_CONTRAST) return seed;
127
-
128
- // Away from the surface, whichever way that is — so one rule serves both
129
- // modes, and a dark card in a light theme is still handled by the pair rather
130
- // than by `palette.mode`.
131
- const away = getLuminance(ground) > 0.5 ? darken : lighten;
132
- for (let step = 1; step <= MAX_STEPS; step += 1) {
133
- // From the SEED each time rather than compounding the previous result, so
134
- // the walk lands on the nearest passing tone instead of overshooting past it.
135
- const candidate = away(seed, step * STEP);
136
- if (getContrastRatio(candidate, ground) >= MIN_UI_CONTRAST) return candidate;
137
- }
138
- // Unreachable for any real surface — black clears 21:1 on white and white
139
- // clears it on black — but a caller must never be handed `undefined`.
140
- return getLuminance(ground) > 0.5 ? '#000000' : '#FFFFFF';
84
+ return resolveFieldEdge(theme.palette.divider, surface ?? theme.palette.background.paper);
141
85
  }
@@ -15,7 +15,7 @@ import type { UiTheme } from './theme';
15
15
  * halves and not these; each component that reads this records that as a
16
16
  * known gap in its `NATIVE-NOTES.md`.
17
17
  */
18
- export type MuiTypeVariantName = 'h6' | 'body1' | 'body2' | 'caption';
18
+ export type MuiTypeVariantName = 'h5' | 'h6' | 'body1' | 'body2' | 'caption';
19
19
 
20
20
  export interface MuiTypeVariant {
21
21
  fontSize: number;
@@ -25,6 +25,7 @@ export interface MuiTypeVariant {
25
25
  }
26
26
 
27
27
  export const MUI_TYPE: Record<MuiTypeVariantName, MuiTypeVariant> = {
28
+ h5: { fontSize: 24, lineHeight: 1.334, fontWeight: 400, letterSpacingEm: 0 },
28
29
  h6: { fontSize: 20, lineHeight: 1.6, fontWeight: 500, letterSpacingEm: 0.0075 },
29
30
  body1: { fontSize: 16, lineHeight: 1.5, fontWeight: 400, letterSpacingEm: 0.00938 },
30
31
  body2: { fontSize: 14, lineHeight: 1.43, fontWeight: 400, letterSpacingEm: 0.01071 },
@@ -0,0 +1,59 @@
1
+ /**
2
+ * ONE SHADOW, IN THE SHAPE BOTH RENDERERS READ.
3
+ *
4
+ * A drop shadow is one of the few decorations the two sides express in the same
5
+ * numbers and different syntax: CSS wants `0 8px 32px rgba(…)`, React Native
6
+ * wants `{ offsetX, offsetY, blurRadius, spreadDistance, color }` (its
7
+ * `BoxShadowValue`, which `boxShadow` takes an array of). So the numbers live in
8
+ * a component's `*.metrics.ts` as this object, native passes it straight
9
+ * through, and the web renders it with {@link shadowCss}.
10
+ *
11
+ * {@link shadowCss} reproduces the text the web components already wrote by
12
+ * hand: a bare `0` for a zero length, and no spread at all when the spread is
13
+ * zero. That is what makes moving a shadow into a metrics table a refactor
14
+ * rather than a restyle.
15
+ */
16
+ export interface UiShadow {
17
+ offsetX: number;
18
+ offsetY: number;
19
+ blurRadius: number;
20
+ spreadDistance: number;
21
+ color: string;
22
+ }
23
+
24
+ /** A length the way the web writes it: a bare `0`, otherwise px. */
25
+ const len = (value: number): string => (value === 0 ? '0' : `${value}px`);
26
+
27
+ /** One shadow as CSS. A zero spread is omitted, as the web has always written it. */
28
+ export const shadowCss = (shadow: UiShadow): string =>
29
+ [
30
+ len(shadow.offsetX),
31
+ len(shadow.offsetY),
32
+ len(shadow.blurRadius),
33
+ ...(shadow.spreadDistance === 0 ? [] : [len(shadow.spreadDistance)]),
34
+ shadow.color,
35
+ ].join(' ');
36
+
37
+ /** Several shadows as one CSS declaration. */
38
+ export const shadowListCss = (shadows: readonly UiShadow[]): string =>
39
+ shadows.map(shadowCss).join(', ');
40
+
41
+ /**
42
+ * MUI's `palette.common`, which `UiTheme` has no slot for.
43
+ *
44
+ * Here rather than beside each caller because the neumorphic, glass and scrim
45
+ * arithmetic in more than one component mixes from exactly these two, and a
46
+ * per-component copy is a per-component chance to write `#000000`.
47
+ */
48
+ export const BLACK = '#000';
49
+ export const WHITE = '#fff';
50
+
51
+ /** A shadow with no offset — a halo all round, which is how `glow` reads. */
52
+ export const halo = (blurRadius: number, color: string): UiShadow[] => [
53
+ { offsetX: 0, offsetY: 0, blurRadius, spreadDistance: 0, color },
54
+ ];
55
+
56
+ /** A dropped shadow straight down, which is how a lifted surface sits. */
57
+ export const drop = (offsetY: number, blurRadius: number, color: string): UiShadow[] => [
58
+ { offsetX: 0, offsetY, blurRadius, spreadDistance: 0, color },
59
+ ];
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/Dialog/Dialog.styles.ts"],"sourcesContent":["import type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport { alpha, keyframes } from '@mui/material/styles/index.js';\n\nimport { dynamicViewportHeight } from '../../../utils/viewport';\nimport type { DialogProps } from './Dialog.types';\n\n/**\n * Paper/backdrop styling for the Dialog component (FUT-181 gate cleanup):\n * pure helpers so `Dialog.tsx` stays within the size/complexity budget.\n */\n\n// Define pulse animation\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 20px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n/** Style toggles that shape the dialog paper (extracted so each fn stays small). */\ninterface VariantStyleOptions {\n variant: NonNullable<DialogProps['variant']>;\n size: NonNullable<DialogProps['size']>;\n borderRadius: NonNullable<DialogProps['borderRadius']>;\n glass: boolean;\n gradient: boolean;\n glow: boolean;\n pulse: boolean;\n}\n\nfunction borderRadiusOf(theme: Theme, borderRadius: VariantStyleOptions['borderRadius']) {\n switch (borderRadius) {\n case 'none': return 0;\n case 'sm': return theme.spacing(0.5);\n case 'md': return theme.spacing(1);\n case 'xl': return theme.spacing(3);\n case 'lg':\n default: return theme.spacing(2);\n }\n}\n\nfunction maxWidthOf(size: VariantStyleOptions['size']): number {\n switch (size) {\n case 'xs': return 400;\n case 'sm': return 600;\n case 'lg': return 1000;\n case 'xl': return 1200;\n case 'md':\n default: return 800;\n }\n}\n\nfunction baseStylesOf(theme: Theme, opts: VariantStyleOptions) {\n return {\n borderRadius: borderRadiusOf(theme, opts.borderRadius),\n maxWidth: maxWidthOf(opts.size),\n width: '90vw',\n margin: theme.spacing(2),\n transition: theme.transitions.create(\n ['box-shadow', 'background-color', 'backdrop-filter'],\n { duration: theme.transitions.duration.standard },\n ),\n };\n}\n\nfunction glowStylesOf(theme: Theme, glow: boolean) {\n return glow ? { boxShadow: `0 0 40px ${alpha(theme.palette.primary.main, 0.3)}` } : {};\n}\n\nfunction pulseStylesOf(theme: Theme, pulse: boolean) {\n if (!pulse) return {};\n return {\n position: 'relative' as const,\n '&::after': {\n content: '\"\"',\n position: 'absolute' as const,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n backgroundColor: theme.palette.primary.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none' as const,\n zIndex: -1,\n },\n };\n}\n\n/** The default variant's paper: optional gradient/glass over the base styles. */\nfunction defaultVariantStyles(theme: Theme, opts: VariantStyleOptions) {\n const gradientStyles = opts.gradient\n ? {\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)}, ${alpha(theme.palette.secondary.main, 0.1)})`,\n backdropFilter: 'blur(10px)',\n }\n : {};\n return {\n ...gradientStyles,\n backgroundColor: opts.glass\n ? alpha(theme.palette.background.paper, 0.1)\n : theme.palette.background.paper,\n backdropFilter: opts.glass ? 'blur(20px)' : 'none',\n border: opts.glass ? `1px solid ${alpha(theme.palette.primary.main, 0.2)}` : 'none',\n };\n}\n\nexport function variantStylesOf(theme: Theme, opts: VariantStyleOptions): SxProps<Theme> {\n const decorations = {\n ...glowStylesOf(theme, opts.glow),\n ...pulseStylesOf(theme, opts.pulse),\n };\n switch (opts.variant) {\n case 'glass':\n return {\n ...baseStylesOf(theme, opts),\n ...decorations,\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n boxShadow: `0 8px 32px ${alpha(theme.palette.common.black, 0.1)}`,\n };\n case 'fullscreen':\n return {\n borderRadius: 0,\n margin: 0,\n width: '100vw',\n // `100dvh`, not `100vh` — see `dynamicViewportHeight`.\n ...dynamicViewportHeight('height'),\n maxWidth: 'none',\n maxHeight: 'none',\n ...decorations,\n };\n case 'drawer': {\n const radius = borderRadiusOf(theme, opts.borderRadius);\n return {\n borderRadius: `${radius}px 0 0 ${radius}px`,\n margin: 0,\n width: maxWidthOf(opts.size),\n ...dynamicViewportHeight('height'),\n maxHeight: 'none',\n position: 'absolute' as const,\n right: 0,\n ...decorations,\n };\n }\n default:\n return {\n ...baseStylesOf(theme, opts),\n ...decorations,\n ...defaultVariantStyles(theme, opts),\n };\n }\n}\n\nexport function backdropSxOf(theme: Theme, glass: boolean) {\n return {\n backgroundColor: glass\n ? alpha(theme.palette.common.black, 0.2)\n : alpha(theme.palette.common.black, 0.5),\n backdropFilter: glass ? 'blur(8px)' : 'none',\n };\n}\n\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Checkbox/Checkbox.tsx"],"sourcesContent":["import MuiCheckbox from '@mui/material/Checkbox/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport FormControlLabel from '@mui/material/FormControlLabel/index.js';\nimport FormHelperText from '@mui/material/FormHelperText/index.js';\nimport { alpha, keyframes, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { makeTestId, resolveCheckboxProps } from './Checkbox.helpers';\nimport type { CheckboxProps } from './Checkbox.types';\n\nconst pulse = keyframes`\n 0% {\n box-shadow: 0 0 0 0 rgba(25, 118, 210, 0.7);\n }\n 70% {\n box-shadow: 0 0 0 10px rgba(25, 118, 210, 0);\n }\n 100% {\n box-shadow: 0 0 0 0 rgba(25, 118, 210, 0);\n }\n`;\n\nconst glow = keyframes`\n 0%, 100% {\n box-shadow: 0 0 5px rgba(25, 118, 210, 0.5);\n }\n 50% {\n box-shadow: 0 0 20px rgba(25, 118, 210, 0.8);\n }\n`;\n\nconst StyledCheckbox = styled(MuiCheckbox, {\n shouldForwardProp: (prop) => !['customVariant', 'ripple', 'glow', 'pulse'].includes(prop as string),\n})<{ \n customVariant?: CheckboxProps['variant'];\n ripple?: boolean;\n glow?: boolean;\n pulse?: boolean;\n}>(\n ({ theme, customVariant, ripple, glow: glowProp, pulse: pulseProp }) => ({\n ...(customVariant === 'rounded' && {\n '& .MuiSvgIcon-root': {\n borderRadius: '50%',\n },\n }),\n \n ...(customVariant === 'toggle' && {\n '& .MuiSvgIcon-root': {\n borderRadius: '12px',\n transform: 'scale(1.2)',\n },\n }),\n \n '&.MuiCheckbox-root': {\n transition: 'all 0.3s ease',\n ...(ripple === false && {\n '& .MuiTouchRipple-root': {\n display: 'none',\n },\n }),\n ...(glowProp && {\n animation: `${glow} 2s ease-in-out infinite`,\n }),\n ...(pulseProp && {\n animation: `${pulse} 2s infinite`,\n }),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.1),\n },\n },\n \n '&.Mui-checked': {\n color: theme.palette.primary.main,\n },\n \n '&.MuiCheckbox-indeterminate': {\n color: theme.palette.primary.main,\n },\n })\n);\n\nconst StyledFormControlLabel = styled(FormControlLabel, {\n shouldForwardProp: (prop) => prop !== 'error',\n})<{ error?: boolean }>(\n ({ theme, error }) => ({\n marginLeft: 0,\n '& .MuiFormControlLabel-label': {\n color: error ? theme.palette.error.main : theme.palette.text.primary,\n fontSize: '0.875rem',\n },\n })\n);\n\nconst StyledFormHelperText = styled(FormHelperText)(({ theme }) => ({\n marginLeft: theme.spacing(4),\n marginTop: theme.spacing(0.5),\n}));\n\nexport const Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (rawProps, ref) => {\n const {\n variant,\n label,\n error,\n helperText,\n loading,\n ripple,\n glow,\n pulse,\n disabled,\n 'data-testid': dataTestId,\n ...props\n } = resolveCheckboxProps(rawProps);\n const isDisabled = disabled || loading;\n const testId = makeTestId(dataTestId);\n\n const checkbox = (\n <div style={{ position: 'relative', display: 'inline-flex' }}>\n <StyledCheckbox\n ref={ref}\n customVariant={variant}\n ripple={ripple}\n glow={glow}\n pulse={pulse}\n disabled={isDisabled}\n data-testid={dataTestId || 'checkbox'}\n {...props}\n />\n {loading && (\n <CircularProgress\n size={20}\n sx={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: '-10px',\n marginLeft: '-10px',\n color: 'primary.main',\n }}\n />\n )}\n </div>\n );\n \n if (label) {\n return (\n <div data-testid={testId('container')}>\n <StyledFormControlLabel\n control={checkbox}\n label={label}\n error={error}\n disabled={isDisabled}\n />\n {helperText && (\n <StyledFormHelperText \n error={error}\n data-testid={testId('helper')}\n >\n {helperText}\n </StyledFormHelperText>\n )}\n </div>\n );\n }\n \n return checkbox;\n }\n);\n\nCheckbox.displayName = 'Checkbox';"],"mappings":"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","names":["glow","pulse"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Card/Card.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport MuiCard from '@mui/material/Card/index.js';\nimport MuiCardActions from '@mui/material/CardActions/index.js';\nimport MuiCardContent from '@mui/material/CardContent/index.js';\nimport MuiCardHeader from '@mui/material/CardHeader/index.js';\nimport MuiCardMedia from '@mui/material/CardMedia/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { resolveCardProps } from './Card.helpers';\nimport { cardStyles } from './Card.styles';\nimport type {\n CardActionsProps,\n CardContentProps,\n CardHeaderProps,\n CardMediaProps,\n CardProps,\n} from './Card.types';\n\nexport const Card: React.FC<CardProps> = (rawProps) => {\n const {\n children,\n variant,\n interactive,\n glow,\n pulse,\n borderRadius,\n loading,\n onClick,\n onFocus,\n onBlur,\n sx,\n dataTestId,\n // These props are reserved for future implementation but need to be extracted\n // to prevent them from being passed to the underlying MuiCard\n expandable: _expandable,\n expanded: _expanded,\n onExpandToggle: _onExpandToggle,\n entranceAnimation: _entranceAnimation,\n animationDelay: _animationDelay,\n skeleton: _skeleton,\n hoverScale: _hoverScale,\n ...restProps\n } = resolveCardProps(rawProps);\n\n const theme = useTheme();\n\n // A loading card is inert: no handlers fire and pointer events are off, so a\n // half-rendered card cannot be clicked through.\n const idle = !loading;\n\n return (\n <MuiCard\n data-testid={dataTestId || 'card'}\n onClick={idle ? onClick : undefined}\n onFocus={idle ? onFocus : undefined}\n onBlur={idle ? onBlur : undefined}\n sx={{\n ...cardStyles(theme, { variant, interactive, glow, pulse, borderRadius }),\n position: 'relative',\n opacity: loading ? 0.6 : 1,\n pointerEvents: loading ? 'none' : 'auto',\n ...sx,\n }}\n {...restProps}\n >\n {loading && (\n <Box\n sx={{\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: 10,\n }}\n >\n <CircularProgress />\n </Box>\n )}\n {children}\n </MuiCard>\n );\n};\n\nexport const CardHeader: React.FC<CardHeaderProps> = ({\n title,\n subtitle,\n action,\n avatar,\n children,\n dataTestId,\n ...props\n}) => {\n if (children) {\n return <Box sx={{ p: 2 }} data-testid={dataTestId || 'card-header'}>{children}</Box>;\n }\n\n return (\n <MuiCardHeader\n data-testid={dataTestId || 'card-header'}\n avatar={avatar}\n action={action}\n title={title}\n subheader={subtitle}\n titleTypographyProps={{\n 'data-testid': dataTestId ? `${dataTestId}-title` : 'card-title',\n } as Record<string, unknown>}\n subheaderTypographyProps={{\n 'data-testid': dataTestId ? `${dataTestId}-subtitle` : 'card-subtitle',\n } as Record<string, unknown>}\n {...props}\n />\n );\n};\n\nexport const CardContent: React.FC<CardContentProps> = ({ children, dense = false, dataTestId, ...props }) => (\n <MuiCardContent\n data-testid={dataTestId || 'card-content'}\n sx={{\n padding: dense ? 1 : 2,\n '&:last-child': {\n paddingBottom: dense ? 1 : 2,\n },\n }}\n {...props}\n >\n {children}\n </MuiCardContent>\n );\n\nexport const CardActions: React.FC<CardActionsProps> = ({\n children,\n disableSpacing = false,\n alignment = 'left',\n dataTestId,\n ...props\n}) => {\n const getJustifyContent = () => {\n switch (alignment) {\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n case 'space-between':\n return 'space-between';\n default:\n return 'flex-start';\n }\n };\n\n return (\n <MuiCardActions\n data-testid={dataTestId || 'card-actions'}\n disableSpacing={disableSpacing}\n sx={{\n justifyContent: getJustifyContent(),\n }}\n {...props}\n >\n {children}\n </MuiCardActions>\n );\n};\n\nexport const CardMedia: React.FC<CardMediaProps> = ({\n component = 'div',\n image,\n title,\n height = 200,\n children,\n dataTestId,\n ...props\n}) => (\n <MuiCardMedia\n data-testid={dataTestId || 'card-media'}\n component={component}\n height={height}\n image={image}\n title={title}\n {...props}\n >\n {children}\n </MuiCardMedia>\n );\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,aAAa;AACpB,OAAO,oBAAoB;AAC3B,OAAO,oBAAoB;AAC3B,OAAO,mBAAmB;AAC1B,OAAO,kBAAkB;AACzB,OAAO,sBAAsB;AAC7B,SAAS,gBAAgB;AA8CrB,SAwBM,KAxBN;AAjCG,IAAM,OAA4B,CAAC,aAAa;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAAA,IAGA,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,GAAG;AAAA,EACL,IAAI,iBAAiB,QAAQ;AAE7B,QAAM,QAAQ,SAAS;AAIvB,QAAM,OAAO,CAAC;AAEd,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,cAAc;AAAA,MAC3B,SAAS,OAAO,UAAU;AAAA,MAC1B,SAAS,OAAO,UAAU;AAAA,MAC1B,QAAQ,OAAO,SAAS;AAAA,MACxB,IAAI;AAAA,QACF,GAAG,WAAW,OAAO,EAAE,SAAS,aAAa,MAAM,OAAO,aAAa,CAAC;AAAA,QACxE,UAAU;AAAA,QACV,SAAS,UAAU,MAAM;AAAA,QACzB,eAAe,UAAU,SAAS;AAAA,QAClC,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,mBACC;AAAA,UAAC;AAAA;AAAA,YACC,IAAI;AAAA,cACF,UAAU;AAAA,cACV,KAAK;AAAA,cACL,MAAM;AAAA,cACN,WAAW;AAAA,cACX,QAAQ;AAAA,YACV;AAAA,YAEA,8BAAC,oBAAiB;AAAA;AAAA,QACpB;AAAA,QAED;AAAA;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,UAAU;AACZ,WAAO,oBAAC,OAAI,IAAI,EAAE,GAAG,EAAE,GAAG,eAAa,cAAc,eAAgB,UAAS;AAAA,EAChF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,cAAc;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,sBAAsB;AAAA,QACpB,eAAe,aAAa,GAAG,UAAU,WAAW;AAAA,MACtD;AAAA,MACA,0BAA0B;AAAA,QACxB,eAAe,aAAa,GAAG,UAAU,cAAc;AAAA,MACzD;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEO,IAAM,cAA0C,CAAC,EAAE,UAAU,QAAQ,OAAO,YAAY,GAAG,MAAM,MACpG;AAAA,EAAC;AAAA;AAAA,IACC,eAAa,cAAc;AAAA,IAC3B,IAAI;AAAA,MACF,SAAS,QAAQ,IAAI;AAAA,MACrB,gBAAgB;AAAA,QACd,eAAe,QAAQ,IAAI;AAAA,MAC7B;AAAA,IACF;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AACH;AAGG,IAAM,cAA0C,CAAC;AAAA,EACtD;AAAA,EACA,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,oBAAoB,MAAM;AAC9B,YAAQ,WAAW;AAAA,MACjB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,cAAc;AAAA,MAC3B;AAAA,MACA,IAAI;AAAA,QACF,gBAAgB,kBAAkB;AAAA,MACpC;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;AAEO,IAAM,YAAsC,CAAC;AAAA,EAClD,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACI;AAAA,EAAC;AAAA;AAAA,IACC,eAAa,cAAc;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACC,GAAG;AAAA,IAEH;AAAA;AACH;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Switch/Switch.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport React, { forwardRef } from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\n\nimport {\n LabelContainer,\n SwitchControl,\n SwitchHelper,\n SwitchLabel,\n} from './Switch.parts';\nimport type { SwitchProps } from './Switch.types';\n\nconst DEFAULTS = {\n variant: 'default',\n color: 'primary',\n size: 'md',\n glow: false,\n glass: false,\n gradient: false,\n labelPosition: 'end',\n error: false,\n animated: true,\n loading: false,\n ripple: false,\n pulse: false,\n} satisfies Partial<SwitchProps>;\n\ntype ResolvedProps = SwitchProps & Required<Pick<SwitchProps, keyof typeof DEFAULTS>>;\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>((props, ref) => {\n const {\n variant, color, size, label, description, glow, glass, gradient, labelPosition,\n onIcon, offIcon, onText, offText, error, helperText, trackWidth, trackHeight,\n checked, onChange, animated, loading, ripple, pulse, dataTestId,\n ...rest\n } = withDefaults(props, DEFAULTS) as ResolvedProps;\n\n const containerTestId = dataTestId ? `${dataTestId}-container` : 'switch-container';\n\n const control = (\n <SwitchControl\n customVariant={variant}\n customColor={color}\n customSize={size}\n glow={glow}\n glass={glass}\n gradient={gradient}\n trackWidth={trackWidth}\n trackHeight={trackHeight}\n onText={onText}\n offText={offText}\n loading={loading}\n ripple={ripple}\n pulse={pulse}\n checked={checked}\n onChange={onChange}\n onIcon={onIcon}\n offIcon={offIcon}\n animated={animated}\n size={size}\n dataTestId={dataTestId}\n switchRef={ref}\n rest={rest}\n />\n );\n\n const helper = <SwitchHelper helperText={helperText} error={error} dataTestId={dataTestId} />;\n\n if (!label) {\n return (\n <Box data-testid={containerTestId}>\n {control}\n {helper}\n </Box>\n );\n }\n\n return (\n <Box data-testid={containerTestId}>\n <LabelContainer labelPosition={labelPosition} error={error}>\n {labelPosition === 'start' && control}\n\n <SwitchLabel\n label={label}\n description={description}\n error={error}\n dataTestId={dataTestId}\n />\n\n {labelPosition !== 'start' && control}\n </LabelContainer>\n\n {helper}\n </Box>\n );\n});\n\nSwitch.displayName = 'Switch';\n"],"mappings":";;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAgB,kBAAkB;AAwC9B,cA8BE,YA9BF;AA5BJ,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AACT;AAIO,IAAM,SAAS,WAA2C,CAAC,OAAO,QAAQ;AAC/E,QAAM;AAAA,IACJ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAM;AAAA,IAAO;AAAA,IAAa;AAAA,IAAM;AAAA,IAAO;AAAA,IAAU;AAAA,IACjE;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAS;AAAA,IAAO;AAAA,IAAY;AAAA,IAAY;AAAA,IACjE;AAAA,IAAS;AAAA,IAAU;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,IAAO;AAAA,IACrD,GAAG;AAAA,EACL,IAAI,aAAa,OAAO,QAAQ;AAEhC,QAAM,kBAAkB,aAAa,GAAG,UAAU,eAAe;AAEjE,QAAM,UACJ;AAAA,IAAC;AAAA;AAAA,MACC,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX;AAAA;AAAA,EACF;AAGF,QAAM,SAAS,oBAAC,gBAAa,YAAwB,OAAc,YAAwB;AAE3F,MAAI,CAAC,OAAO;AACV,WACE,qBAAC,OAAI,eAAa,iBACf;AAAA;AAAA,MACA;AAAA,OACH;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAI,eAAa,iBAChB;AAAA,yBAAC,kBAAe,eAA8B,OAC3C;AAAA,wBAAkB,WAAW;AAAA,MAE9B;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MAEC,kBAAkB,WAAW;AAAA,OAChC;AAAA,IAEC;AAAA,KACH;AAEJ,CAAC;AAED,OAAO,cAAc;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Checkbox/Checkbox.helpers.ts"],"sourcesContent":["import type { CheckboxProps } from './Checkbox.types';\n\ntype CheckboxDefaultedKeys = 'variant' | 'ripple' | 'glow' | 'pulse';\n\ntype ResolvedCheckboxProps = CheckboxProps &\n Required<Pick<CheckboxProps, CheckboxDefaultedKeys>>;\n\nconst CHECKBOX_DEFAULTS: Pick<CheckboxProps, CheckboxDefaultedKeys> = {\n variant: 'default',\n ripple: true,\n glow: false,\n pulse: false,\n};\n\n// Strips explicitly-undefined props before the merge, so `ripple={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: CheckboxProps): Partial<CheckboxProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<CheckboxProps>;\n\nexport const resolveCheckboxProps = (props: CheckboxProps): ResolvedCheckboxProps =>\n ({ ...CHECKBOX_DEFAULTS, ...definedProps(props) }) as ResolvedCheckboxProps;\n\nexport const makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `checkbox-${suffix}`;\n"],"mappings":";AAOA,IAAM,oBAAgE;AAAA,EACpE,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AACT;AAIA,IAAM,eAAe,CAAC,UACpB,OAAO;AAAA,EACL,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AACjE;AAEK,IAAM,uBAAuB,CAAC,WAClC,EAAE,GAAG,mBAAmB,GAAG,aAAa,KAAK,EAAE;AAE3C,IAAM,aACX,CAAC,eACD,CAAC,WACC,aAAa,GAAG,UAAU,IAAI,MAAM,KAAK,YAAY,MAAM;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/tokens/field-edge.ts"],"sourcesContent":["import {\n darken,\n decomposeColor,\n getContrastRatio,\n getLuminance,\n hslToRgb,\n lighten,\n recomposeColor,\n} from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\n\n/**\n * THE EDGE THAT TELLS YOU WHERE A FIELD IS.\n *\n * Every outlined control in this package drew its resting border from\n * `alpha(theme.palette.divider, 0.23)` — or 0.2, or 0.18, or 0.42 for the\n * underline. On the MUI default theme that expression is harmless, and that is\n * exactly why it survived: MUI's own light `divider` is `rgba(0, 0, 0, 0.12)`,\n * and `alpha()` REPLACES the alpha channel rather than multiplying it, so\n * `alpha(divider, 0.23)` resolves to `rgba(0, 0, 0, 0.23)` — byte for byte the\n * border MUI's own `OutlinedInput` ships. The line reads like a restatement of\n * the default because, against the default, it is one.\n *\n * Give it a theme whose `divider` is an OPAQUE hex and the same expression\n * collapses. A themed divider is already a hairline — a pale warm cream, a pale\n * green-grey — chosen to separate two rows INSIDE a card. Fading that to 23%\n * over the card it sits on leaves a border the same colour as the card:\n *\n * | theme | resolved border | ratio |\n * |--------------------------------|-----------------|-------|\n * | MUI default (`rgba(0,0,0,.12)`)| `#C4C4C4` | 1.74:1|\n * | a warm hairline `#EBD9C7` | `#FAF6F2` | 1.08:1|\n * | a cool hairline `#D7DDD5` | `#EDF0EC` | 1.06:1|\n *\n * 1.06:1 is not a faint border, it is no border: the field is invisible until\n * you click into it. Both failing rows are real adopter themes, and neither\n * adopter did anything wrong — they set `palette.divider`, which is what a theme\n * is for.\n *\n * **So the fault is using `divider` for this at all**, not the alpha on top of\n * it. Even at FULL strength those hairlines are 1.26:1 and 1.27:1 against their\n * own paper. A row separator and a control boundary are different jobs with\n * different floors, and only one of them has a number in the spec.\n *\n * ## The floor, and why it is measured rather than picked\n *\n * WCAG 2.1 SC 1.4.11 (Non-text Contrast) puts a control's own boundary at\n * {@link MIN_UI_CONTRAST}. A hex cannot satisfy that on its own, because the\n * ratio is a fact about a PAIR — the same border is fine on white and gone on a\n * dark card. So {@link fieldEdge} takes the theme's hairline as a SEED and walks\n * it away from the surface until it clears, which means:\n *\n * - a theme whose divider already clears keeps its own colour, untouched;\n * - one that does not gets the nearest tone of ITS OWN hairline that does, so\n * the border still looks like the theme's, just visible;\n * - dark mode needs no second table — the walk lightens on a dark surface for\n * the same reason it darkens on a light one.\n *\n * This is the argument `readableInk` makes for text in `@12-apps/app-shell`,\n * applied to the boundary rather than the ink. It is not imported from there:\n * that package depends on THIS one, so the edge would be a cycle.\n *\n * ## What this does NOT touch\n *\n * Hover and focus, which every control already draws in `primary.main` — a\n * corrected brand colour that clears the floor by construction. The resting\n * state was the only one you could not see, and it is the one that matters,\n * because it is the state a field is in before anyone has found it.\n */\n\n/**\n * WCAG 2.1 SC 1.4.11 — the contrast a control's own boundary owes the surface\n * behind it.\n *\n * 3:1 rather than the 4.5:1 the same spec asks of body text: a border is a\n * shape, not a glyph, so it stays findable at a lower ratio. It is a FLOOR and\n * not a target — {@link fieldEdge} stops at the first tone that clears it, so a\n * theme with a stronger hairline keeps the stronger one.\n */\nexport const MIN_UI_CONTRAST = 3;\n\n/** How far one step of the walk moves, and how many steps before it gives up. */\nconst STEP = 0.05;\nconst MAX_STEPS = 20;\n\n/**\n * A colour as an opaque `rgb()`, with any translucency resolved against\n * `surface`.\n *\n * Needed because `getContrastRatio` reads the channels it is given and ignores\n * the alpha, so handing it an `rgba()` measures a colour nobody sees. Every\n * failing border above was translucent, so skipping this would compute the ratio\n * of the hairline itself — 1.26:1, still a failure, but the wrong number for the\n * wrong reason.\n */\nfunction flatten(colour: string, surface: string): string {\n const decomposed = decomposeColor(colour);\n const rgb = decomposed.type.startsWith('hsl')\n ? decomposeColor(hslToRgb(colour))\n : decomposed;\n const [r, g, b] = rgb.values;\n const alpha = rgb.values[3] ?? 1;\n if (alpha >= 1) return recomposeColor({ type: 'rgb', values: [r, g, b] });\n\n const behind = decomposeColor(surface);\n const base = behind.type.startsWith('hsl') ? decomposeColor(hslToRgb(surface)) : behind;\n const blend = (fg: number, bg: number): number => Math.round(alpha * fg + (1 - alpha) * bg);\n return recomposeColor({\n type: 'rgb',\n values: [blend(r, base.values[0]), blend(g, base.values[1]), blend(b, base.values[2])],\n });\n}\n\n/**\n * The resting boundary for a form control on `surface`.\n *\n * `surface` defaults to `background.paper` because that is what a field sits on\n * in the overwhelming majority of cases — a dialog, a card, a form panel. A\n * control on a deliberately different ground (a tinted strip, a glass pane over\n * a photo) should pass the ground it is actually on; the answer is only as good\n * as the pair it is given.\n */\nexport function fieldEdge(theme: Theme, surface?: string): string {\n const ground = flatten(surface ?? theme.palette.background.paper, '#FFFFFF');\n const seed = flatten(theme.palette.divider, ground);\n if (getContrastRatio(seed, ground) >= MIN_UI_CONTRAST) return seed;\n\n // Away from the surface, whichever way that is — so one rule serves both\n // modes, and a dark card in a light theme is still handled by the pair rather\n // than by `palette.mode`.\n const away = getLuminance(ground) > 0.5 ? darken : lighten;\n for (let step = 1; step <= MAX_STEPS; step += 1) {\n // From the SEED each time rather than compounding the previous result, so\n // the walk lands on the nearest passing tone instead of overshooting past it.\n const candidate = away(seed, step * STEP);\n if (getContrastRatio(candidate, ground) >= MIN_UI_CONTRAST) return candidate;\n }\n // Unreachable for any real surface — black clears 21:1 on white and white\n // clears it on black — but a caller must never be handed `undefined`.\n return getLuminance(ground) > 0.5 ? '#000000' : '#FFFFFF';\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuEA,IAAM,kBAAkB;AAG/B,IAAM,OAAO;AACb,IAAM,YAAY;AAYlB,SAAS,QAAQ,QAAgB,SAAyB;AACxD,QAAM,aAAa,eAAe,MAAM;AACxC,QAAM,MAAM,WAAW,KAAK,WAAW,KAAK,IACxC,eAAe,SAAS,MAAM,CAAC,IAC/B;AACJ,QAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI;AACtB,QAAM,QAAQ,IAAI,OAAO,CAAC,KAAK;AAC/B,MAAI,SAAS,EAAG,QAAO,eAAe,EAAE,MAAM,OAAO,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;AAExE,QAAM,SAAS,eAAe,OAAO;AACrC,QAAM,OAAO,OAAO,KAAK,WAAW,KAAK,IAAI,eAAe,SAAS,OAAO,CAAC,IAAI;AACjF,QAAM,QAAQ,CAAC,IAAY,OAAuB,KAAK,MAAM,QAAQ,MAAM,IAAI,SAAS,EAAE;AAC1F,SAAO,eAAe;AAAA,IACpB,MAAM;AAAA,IACN,QAAQ,CAAC,MAAM,GAAG,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC;AAAA,EACvF,CAAC;AACH;AAWO,SAAS,UAAU,OAAc,SAA0B;AAChE,QAAM,SAAS,QAAQ,WAAW,MAAM,QAAQ,WAAW,OAAO,SAAS;AAC3E,QAAM,OAAO,QAAQ,MAAM,QAAQ,SAAS,MAAM;AAClD,MAAI,iBAAiB,MAAM,MAAM,KAAK,gBAAiB,QAAO;AAK9D,QAAM,OAAO,aAAa,MAAM,IAAI,MAAM,SAAS;AACnD,WAAS,OAAO,GAAG,QAAQ,WAAW,QAAQ,GAAG;AAG/C,UAAM,YAAY,KAAK,MAAM,OAAO,IAAI;AACxC,QAAI,iBAAiB,WAAW,MAAM,KAAK,gBAAiB,QAAO;AAAA,EACrE;AAGA,SAAO,aAAa,MAAM,IAAI,MAAM,YAAY;AAClD;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Input/Input.tsx"],"sourcesContent":["import CircularProgress from '@mui/material/CircularProgress/index.js';\nimport InputAdornment from '@mui/material/InputAdornment/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { TextFieldSlim } from './text-field-slim';\n\nimport {\n filledStyles,\n floatingLabelStyles,\n glowStyles,\n inputBaseStyles,\n muiVariantFor,\n outlinedStyles,\n pulseStyles,\n SIZE_MAP,\n} from './Input.styles';\nimport type { InputProps } from './Input.types';\n\n/**\n * `TextFieldSlim`, not `TextField` — see `text-field-slim.tsx`. MUI's own\n * `TextField` imports `Select` unconditionally, and through it `Menu`,\n * `Popover`, `Modal` and seven more component modules, so every screen with one\n * text box shipped a dropdown it can never render. Same composition, same DOM,\n * same prop routing; the select branch is the only thing missing.\n */\nconst StyledTextField = styled(TextFieldSlim, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'floating', 'glow', 'pulse', 'loading'].includes(prop as string),\n})<{\n customVariant?: InputProps['variant'];\n floating?: boolean;\n glow?: boolean;\n pulse?: boolean;\n loading?: boolean;\n}>(({ theme, customVariant, floating, glow, pulse, loading }) => ({\n position: 'relative',\n opacity: loading ? 0.7 : 1,\n\n ...(glow ? glowStyles(theme) : {}),\n ...(pulse ? pulseStyles(theme) : {}),\n ...(floating ? floatingLabelStyles(theme) : {}),\n\n '& .MuiInputBase-root': {\n transition: 'all 0.3s ease',\n ...inputBaseStyles(theme, customVariant),\n },\n\n '& .MuiOutlinedInput-root': outlinedStyles(theme),\n '& .MuiFilledInput-root': filledStyles(theme),\n}));\n\n/** Only one adornment shows at a time: the spinner replaces the caller's while loading. */\nconst EndAdornment: React.FC<{ loading: boolean; endAdornment?: React.ReactNode }> = ({\n loading,\n endAdornment,\n}) => {\n if (loading) {\n return (\n <InputAdornment position=\"end\">\n <CircularProgress size={20} />\n </InputAdornment>\n );\n }\n\n if (!endAdornment) return null;\n\n return <InputAdornment position=\"end\">{endAdornment}</InputAdornment>;\n};\n\n/** While loading the field is inert: no clicks, and disabled to assistive tech. */\nconst interactionProps = (\n loading: boolean,\n onClick: InputProps['onClick'],\n disabled?: boolean,\n) => ({\n disabled: loading || disabled,\n onClick: loading ? undefined : onClick,\n});\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n variant = 'outlined',\n size = 'md',\n label,\n error,\n helperText,\n startAdornment,\n endAdornment,\n fullWidth = true,\n floating = false,\n glow = false,\n pulse = false,\n loading = false,\n onClick,\n onFocus,\n onBlur,\n 'data-testid': dataTestId,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n ) => (\n <StyledTextField\n ref={ref}\n variant={muiVariantFor(variant)}\n customVariant={variant}\n floating={floating}\n glow={glow}\n pulse={pulse}\n loading={loading}\n label={label}\n error={error}\n helperText={helperText}\n fullWidth={fullWidth}\n {...interactionProps(loading, onClick, props.disabled)}\n onFocus={onFocus}\n onBlur={onBlur}\n /*\n * `aria-label` has to ride `inputProps` to reach the `<input>` (FUT-755).\n * Spread with the rest it lands on the FormControl DIV that the text\n * field renders as its root, which carries no role — so the field kept\n * no accessible name, and a source grep saying \"this input is labelled\"\n * disagreed with the DOM. The reports search box and the block-title\n * inputs were both named in source and anonymous to a screen reader.\n */\n inputProps={{\n 'data-testid': dataTestId,\n ...(ariaLabel === undefined ? {} : { 'aria-label': ariaLabel }),\n }}\n InputProps={{\n startAdornment: startAdornment && (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n ),\n endAdornment: <EndAdornment loading={loading} endAdornment={endAdornment} />,\n }}\n {...SIZE_MAP[size]}\n {...props}\n />\n ),\n);\n\nInput.displayName = 'Input';\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,sBAAsB;AAC7B,OAAO,oBAAoB;AAC3B,SAAS,cAAc;AACvB,OAAO,WAAW;AAyDV;AAlCR,IAAM,kBAAkB,OAAO,eAAe;AAAA,EAC5C,mBAAmB,CAAC,SAClB,CAAC,CAAC,iBAAiB,YAAY,QAAQ,SAAS,SAAS,EAAE,SAAS,IAAc;AACtF,CAAC,EAME,CAAC,EAAE,OAAO,eAAe,UAAU,MAAM,OAAO,QAAQ,OAAO;AAAA,EAChE,UAAU;AAAA,EACV,SAAS,UAAU,MAAM;AAAA,EAEzB,GAAI,OAAO,WAAW,KAAK,IAAI,CAAC;AAAA,EAChC,GAAI,QAAQ,YAAY,KAAK,IAAI,CAAC;AAAA,EAClC,GAAI,WAAW,oBAAoB,KAAK,IAAI,CAAC;AAAA,EAE7C,wBAAwB;AAAA,IACtB,YAAY;AAAA,IACZ,GAAG,gBAAgB,OAAO,aAAa;AAAA,EACzC;AAAA,EAEA,4BAA4B,eAAe,KAAK;AAAA,EAChD,0BAA0B,aAAa,KAAK;AAC9C,EAAE;AAGF,IAAM,eAA+E,CAAC;AAAA,EACpF;AAAA,EACA;AACF,MAAM;AACJ,MAAI,SAAS;AACX,WACE,oBAAC,kBAAe,UAAS,OACvB,8BAAC,oBAAiB,MAAM,IAAI,GAC9B;AAAA,EAEJ;AAEA,MAAI,CAAC,aAAc,QAAO;AAE1B,SAAO,oBAAC,kBAAe,UAAS,OAAO,wBAAa;AACtD;AAGA,IAAM,mBAAmB,CACvB,SACA,SACA,cACI;AAAA,EACJ,UAAU,WAAW;AAAA,EACrB,SAAS,UAAU,SAAY;AACjC;AAEO,IAAM,QAAQ,MAAM;AAAA,EACzB,CACE;AAAA,IACE,UAAU;AAAA,IACV,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,cAAc;AAAA,IACd,GAAG;AAAA,EACL,GACA,QAEA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,cAAc,OAAO;AAAA,MAC9B,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAG,iBAAiB,SAAS,SAAS,MAAM,QAAQ;AAAA,MACrD;AAAA,MACA;AAAA,MASA,YAAY;AAAA,QACV,eAAe;AAAA,QACf,GAAI,cAAc,SAAY,CAAC,IAAI,EAAE,cAAc,UAAU;AAAA,MAC/D;AAAA,MACA,YAAY;AAAA,QACV,gBAAgB,kBACd,oBAAC,kBAAe,UAAS,SAAS,0BAAe;AAAA,QAEnD,cAAc,oBAAC,gBAAa,SAAkB,cAA4B;AAAA,MAC5E;AAAA,MACC,GAAG,SAAS,IAAI;AAAA,MAChB,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,MAAM,cAAc;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Switch/Switch.parts.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport FormHelperText from '@mui/material/FormHelperText/index.js';\nimport MuiSwitch from '@mui/material/Switch/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { switchSx } from './Switch.styles';\nimport type { SwitchFlags } from './Switch.styles';\nimport type { SwitchProps } from './Switch.types';\n\nconst StyledSwitch = styled(MuiSwitch, {\n shouldForwardProp: (prop) =>\n ![\n 'customVariant',\n 'customColor',\n 'customSize',\n 'glow',\n 'glass',\n 'gradient',\n 'trackWidth',\n 'trackHeight',\n 'onText',\n 'offText',\n 'loading',\n 'ripple',\n 'pulse',\n ].includes(prop as string),\n})<SwitchFlags>(({ theme, ...flags }) => ({ ...switchSx(theme, flags) }));\n\n/**\n * A top or bottom label stacks and aligns to the start; start/end sit the label\n * beside the control and centre it.\n */\nconst StyledLabelContainer = styled(Box, {\n shouldForwardProp: (prop) => !['labelPosition', 'error'].includes(prop as string),\n})<{ labelPosition?: string; error?: boolean }>(({ theme, labelPosition, error }) => {\n const stacked = labelPosition === 'top' || labelPosition === 'bottom';\n\n return {\n display: 'flex',\n alignItems: stacked ? 'flex-start' : 'center',\n flexDirection:\n labelPosition === 'top' ? 'column' : labelPosition === 'bottom' ? 'column-reverse' : 'row',\n gap: theme.spacing(stacked ? 1 : 2),\n width: '100%',\n ...(error && { '& .MuiTypography-root': { color: theme.palette.error.main } }),\n };\n});\n\n/**\n * A plain wrapper over the styled row. Exporting the styled component itself\n * needs a @mui/system reference tsc calls unportable (TS2742).\n */\nexport const LabelContainer: React.FC<{\n labelPosition?: string;\n error?: boolean;\n children: React.ReactNode;\n}> = ({ labelPosition, error, children }) => (\n <StyledLabelContainer labelPosition={labelPosition} error={error}>\n {children}\n </StyledLabelContainer>\n);\n\nconst ICON_SIZES: Record<string, number> = { xs: 12, sm: 14, md: 16, lg: 18, xl: 20 };\n\nexport interface SwitchIconProps {\n icon: React.ReactNode;\n /** True when this icon is the one the current state should show. */\n shown: boolean;\n animated: boolean;\n size: string;\n side: 'on' | 'off';\n}\n\n/**\n * One of the two icons overlaid on the track. The on icon slides to the left\n * edge when checked and the off icon to the right when unchecked; they are\n * mirror images, so they share this component rather than being written twice.\n */\nexport const SwitchIcon: React.FC<SwitchIconProps> = ({ icon, shown, animated, size, side }) => {\n const isOn = side === 'on';\n const translate = isOn ? 'translate(-50%, -50%)' : 'translate(50%, -50%)';\n\n return (\n <Box\n sx={{\n position: 'absolute',\n top: '50%',\n ...(isOn ? { left: shown ? 4 : '50%' } : { right: shown ? 4 : '50%' }),\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n opacity: shown ? 1 : 0,\n transform: `${translate} scale(${shown && animated ? 1 : 0.8})`,\n pointerEvents: 'none',\n zIndex: 2,\n color: isOn ? '#fff' : 'text.secondary',\n fontSize: ICON_SIZES[size] ?? ICON_SIZES.md,\n }}\n >\n {icon}\n </Box>\n );\n};\n\nexport interface SwitchControlProps extends SwitchFlags {\n checked?: boolean;\n onChange?: SwitchProps['onChange'];\n onIcon?: React.ReactNode;\n offIcon?: React.ReactNode;\n animated: boolean;\n size: string;\n dataTestId?: string;\n switchRef?: React.Ref<HTMLButtonElement>;\n rest: Record<string, unknown>;\n}\n\n/** The control itself: the track, and the two icons that may sit over it. */\nexport const SwitchControl: React.FC<SwitchControlProps> = ({\n checked,\n onChange,\n onIcon,\n offIcon,\n animated,\n size,\n dataTestId,\n switchRef,\n rest,\n ...flags\n}) => {\n const props = rest as Record<string, unknown> & {\n disabled?: boolean;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n };\n\n return (\n <Box sx={{ position: 'relative', display: 'inline-flex' }}>\n <StyledSwitch\n ref={switchRef}\n {...flags}\n checked={checked}\n onChange={onChange}\n disabled={Boolean(flags.loading) || props.disabled}\n inputProps={\n {\n 'aria-label': props['aria-label'],\n 'aria-describedby': props['aria-describedby'],\n ...props.inputProps,\n 'data-testid': dataTestId || 'switch',\n } as React.InputHTMLAttributes<HTMLInputElement>\n }\n {...props}\n />\n\n {onIcon && (\n <SwitchIcon\n icon={onIcon}\n shown={Boolean(checked)}\n animated={animated}\n size={size}\n side=\"on\"\n />\n )}\n {offIcon && (\n <SwitchIcon\n icon={offIcon}\n shown={!checked}\n animated={animated}\n size={size}\n side=\"off\"\n />\n )}\n </Box>\n );\n};\n\nexport const SwitchHelper: React.FC<{\n helperText?: React.ReactNode;\n error?: boolean;\n dataTestId?: string;\n}> = ({ helperText, error, dataTestId }) =>\n helperText ? (\n <FormHelperText\n error={error}\n sx={{ mt: 1 }}\n data-testid={dataTestId ? `${dataTestId}-helper` : 'switch-helper'}\n >\n {helperText}\n </FormHelperText>\n ) : null;\n\nexport const SwitchLabel: React.FC<{\n label: React.ReactNode;\n description?: React.ReactNode;\n error?: boolean;\n dataTestId?: string;\n}> = ({ label, description, error, dataTestId }) => (\n <Box sx={{ flex: 1 }}>\n <Typography\n variant=\"body2\"\n fontWeight={500}\n color={error ? 'error.main' : 'text.primary'}\n data-testid={dataTestId ? `${dataTestId}-label` : 'switch-label'}\n >\n {label}\n </Typography>\n {description && (\n <Typography\n variant=\"caption\"\n color={error ? 'error.main' : 'text.secondary'}\n sx={{ display: 'block', mt: 0.5 }}\n >\n {description}\n </Typography>\n )}\n </Box>\n);\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/platform/test-id.ts"],"sourcesContent":["/**\n * One test id, three spellings.\n *\n * The web components take `dataTestId` and forward it as `data-testid`; the\n * existing test stories pass `'data-testid'` straight through as an unknown\n * prop; React Native calls the same thing `testID`, and react-native-web turns\n * THAT back into `data-testid`. A native component that honoured only one of\n * the three would pass its own unit tests and fail the shared stories.\n */\nexport interface TestIdProps {\n testID?: string;\n dataTestId?: string;\n 'data-testid'?: string;\n}\n\n/** The id the caller asked for under any of the three names, else `fallback`. */\nexport function resolveTestId(props: TestIdProps, fallback?: string): string | undefined {\n return props.testID ?? props.dataTestId ?? props['data-testid'] ?? fallback;\n}\n\n/** `${id}-${suffix}` for a sub-element, or `${fallback}-${suffix}` when unnamed. */\nexport function childTestId(\n props: TestIdProps,\n suffix: string,\n fallback: string,\n): string {\n return `${resolveTestId(props, fallback) ?? fallback}-${suffix}`;\n}\n\n/** `props` without any of the three spellings, for spreading onto a native element. */\nexport function withoutTestIdProps<P extends TestIdProps>(props: P): Omit<P, keyof TestIdProps> {\n const { testID: _testID, dataTestId: _dataTestId, 'data-testid': _dataTestid, ...rest } = props;\n return rest;\n}\n"],"mappings":";AAgBO,SAAS,cAAc,OAAoB,UAAuC;AACvF,SAAO,MAAM,UAAU,MAAM,cAAc,MAAM,aAAa,KAAK;AACrE;AAGO,SAAS,YACd,OACA,QACA,UACQ;AACR,SAAO,GAAG,cAAc,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM;AAChE;AAGO,SAAS,mBAA0C,OAAsC;AAC9F,QAAM,EAAE,QAAQ,SAAS,YAAY,aAAa,eAAe,aAAa,GAAG,KAAK,IAAI;AAC1F,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/Card/Card.helpers.ts"],"sourcesContent":["import type { CardProps } from './Card.types';\n\ntype CardDefaultedKeys =\n | 'variant'\n | 'interactive'\n | 'glow'\n | 'pulse'\n | 'borderRadius'\n | 'loading';\n\ntype ResolvedCardProps = CardProps & Required<Pick<CardProps, CardDefaultedKeys>>;\n\nconst CARD_DEFAULTS: Pick<CardProps, CardDefaultedKeys> = {\n variant: 'elevated',\n interactive: false,\n glow: false,\n pulse: false,\n borderRadius: 'md',\n loading: false,\n};\n\n// Strips explicitly-undefined props before the merge, so `glow={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: CardProps): Partial<CardProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<CardProps>;\n\nexport const resolveCardProps = (props: CardProps): ResolvedCardProps =>\n ({ ...CARD_DEFAULTS, ...definedProps(props) }) as ResolvedCardProps;\n"],"mappings":";AAYA,IAAM,gBAAoD;AAAA,EACxD,SAAS;AAAA,EACT,aAAa;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,EACP,cAAc;AAAA,EACd,SAAS;AACX;AAIA,IAAM,eAAe,CAAC,UACpB,OAAO;AAAA,EACL,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AACjE;AAEK,IAAM,mBAAmB,CAAC,WAC9B,EAAE,GAAG,eAAe,GAAG,aAAa,KAAK,EAAE;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Input/Input.styles.ts"],"sourcesContent":["import { alpha, keyframes } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport type { InputProps } from './Input.types';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\ntype InputVariant = NonNullable<InputProps['variant']>;\n\n// Define pulse animation\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 10px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n/** Our four variants map onto MUI's three; `glass` and `gradient` restyle an outline. */\nexport const muiVariantFor = (variant: InputVariant): 'outlined' | 'filled' | 'standard' => {\n switch (variant) {\n case 'underline':\n return 'standard';\n case 'glass':\n case 'gradient':\n return 'outlined';\n default:\n return variant as 'outlined' | 'filled' | 'standard';\n }\n};\n\n// MUI gives a text field two heights, so the five house stops are drawn as two\n// plus padding: `xs` tightens below small, `lg`/`xl` open up above medium.\nexport const SIZE_MAP = {\n xs: { size: 'small' as const, sx: { '& .MuiInputBase-input': { padding: '6px 10px' } } },\n sm: { size: 'small' as const },\n md: { size: 'medium' as const },\n lg: { size: 'medium' as const, sx: { '& .MuiInputBase-input': { padding: '16px 14px' } } },\n xl: { size: 'medium' as const, sx: { '& .MuiInputBase-input': { padding: '20px 16px' } } },\n};\n\nexport const glowStyles = (theme: Theme): CSSObject => ({\n '& .MuiInputBase-root': {\n boxShadow: `0 0 15px ${alpha(theme.palette.primary.main, 0.3)}`,\n '&.Mui-focused': {\n boxShadow: `0 0 20px ${alpha(theme.palette.primary.main, 0.5)}`,\n },\n },\n});\n\n// A bar behind the field rather than a border on it, so it can pulse outward\n// without the input resizing.\nexport const pulseStyles = (theme: Theme): CSSObject => ({\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '0',\n right: '0',\n height: '56px',\n transform: 'translateY(-50%)',\n borderRadius: theme.spacing(0.5),\n backgroundColor: theme.palette.primary.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n});\n\nexport const floatingLabelStyles = (theme: Theme): CSSObject => ({\n '& .MuiInputLabel-root': {\n transform: 'translate(14px, 16px) scale(1)',\n '&.MuiInputLabel-shrink': {\n transform: 'translate(14px, -9px) scale(0.75)',\n backgroundColor: theme.palette.background.paper,\n padding: '0 4px',\n },\n },\n});\n\nexport const inputBaseStyles = (theme: Theme, variant?: InputVariant): CSSObject => {\n switch (variant) {\n case 'glass':\n return {\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${fieldEdge(theme)}`,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.15),\n borderColor: alpha(theme.palette.primary.main, 0.3),\n },\n '&.Mui-focused': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n borderColor: theme.palette.primary.main,\n boxShadow: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.1)}`,\n },\n };\n case 'underline':\n return {\n '&:before': {\n borderBottomColor: fieldEdge(theme),\n },\n '&:hover:not(.Mui-disabled):before': {\n borderBottomColor: theme.palette.primary.main,\n },\n '&:after': {\n borderBottomColor: theme.palette.primary.main,\n },\n };\n case 'gradient':\n return gradientStyles(theme);\n default:\n return {};\n }\n};\n\n// The border is a gradient painted behind the field and masked to a 2px ring,\n// since CSS cannot put a gradient on `border-color` directly.\nconst gradientStyles = (theme: Theme): CSSObject => ({\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)}, ${alpha(theme.palette.secondary.main, 0.1)})`,\n border: `2px solid transparent`,\n backgroundOrigin: 'border-box',\n backgroundClip: 'padding-box, border-box',\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n background: `linear-gradient(135deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,\n mask: 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)',\n maskComposite: 'exclude',\n padding: '2px',\n zIndex: -1,\n },\n '&:hover': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.15)}, ${alpha(theme.palette.secondary.main, 0.15)})`,\n },\n '&.Mui-focused': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.2)}, ${alpha(theme.palette.secondary.main, 0.2)})`,\n '&::before': {\n background: `linear-gradient(135deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,\n },\n },\n});\n\nexport const outlinedStyles = (theme: Theme): CSSObject => ({\n '& fieldset': {\n borderColor: fieldEdge(theme),\n },\n '&:hover fieldset': {\n borderColor: theme.palette.primary.main,\n },\n '&.Mui-focused fieldset': {\n borderColor: theme.palette.primary.main,\n borderWidth: 2,\n },\n '&.Mui-error fieldset': {\n borderColor: theme.palette.error.main,\n },\n});\n\nexport const filledStyles = (theme: Theme): CSSObject => ({\n backgroundColor: alpha(theme.palette.action.hover, 0.04),\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.hover, 0.08),\n },\n '&.Mui-focused': {\n backgroundColor: alpha(theme.palette.action.hover, 0.12),\n },\n});\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/Dialog/Dialog.tsx"],"sourcesContent":["import CloseIcon from '@mui/icons-material/Close';\nimport Backdrop from '@mui/material/Backdrop/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport MuiDialog from '@mui/material/Dialog/index.js';\nimport MuiDialogActions from '@mui/material/DialogActions/index.js';\nimport MuiDialogContent from '@mui/material/DialogContent/index.js';\nimport MuiDialogTitle from '@mui/material/DialogTitle/index.js';\nimport Drawer from '@mui/material/Drawer/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { backdropSxOf, variantStylesOf } from './Dialog.styles';\nimport type {\n DialogActionsProps,\n DialogContentProps,\n DialogHeaderProps,\n DialogProps,\n} from './Dialog.types';\n\n/**\n * Does this hand us a spacing slot? Fragments are transparent: `<>` is a way of\n * passing several children, not a child that owns them, and a consumer who\n * groups a `DialogContent` and a `DialogActions` in one has still passed both.\n *\n * Only the slots themselves count, and only at the top. A `DialogContent`\n * genuinely nested inside a `<div>` is that div's content, and the dialog\n * padding the div is right.\n */\nfunction hasSpacingSlot(children: React.ReactNode): boolean {\n return React.Children.toArray(children).some((child) => {\n if (!React.isValidElement(child)) return false;\n if (child.type === DialogContent || child.type === DialogActions) return true;\n if (child.type !== React.Fragment) return false;\n return hasSpacingSlot((child.props as { children?: React.ReactNode }).children);\n });\n}\n\n/**\n * The padding a dialog gives children that are not managing their own — and the\n * rule that takes it back when it turns out they are.\n *\n * `:has()` is doing what {@link hasSpacingSlot} cannot. A slot passed through a\n * COMPONENT (`<Body />` rendering a `DialogContent`) is invisible to any check\n * on element type: React does not know what a component renders until it has\n * rendered it, and by then the wrapper is already in the tree. The selector\n * asks the question one step later, of the DOM, where the answer exists.\n *\n * `display: contents` rather than `padding: 0`, because the padding is only\n * half of what a wrapper does. The other half is standing between the paper and\n * its children: MUI's `scroll=\"paper\"` makes the paper a flex column with\n * `overflow-y: auto`, so a `DialogContent` that is no longer its direct child\n * cannot be the thing that scrolls — the whole dialog scrolls instead and\n * carries the `DialogActions` off the bottom with it. An element with\n * `display: contents` generates no box at all: its children become the paper's\n * flex items, and its padding is never applied. Both halves, one declaration.\n *\n * A browser without `:has()` falls back to the padded box — the layout this\n * had before, not a broken one.\n */\nconst BODY_SX = {\n px: 3,\n pb: 2.5,\n '&:has(> .MuiDialogContent-root), &:has(> .MuiDialogActions-root)': {\n display: 'contents',\n },\n} as const;\n\n/**\n * The dialog body. Consumers that pass raw children (no <DialogContent>) used\n * to render them flush against the paper edges — give them comfortable default\n * padding; <DialogContent>/<DialogActions> users keep managing their own\n * spacing.\n */\nfunction bodyOf(children: React.ReactNode, hasTitle: boolean): React.ReactNode {\n if (hasSpacingSlot(children)) return children;\n return <Box sx={{ ...BODY_SX, pt: hasTitle ? 0.5 : 2.5 }}>{children}</Box>;\n}\n\nconst DIALOG_DEFAULTS = {\n variant: 'default',\n size: 'md',\n showCloseButton: true,\n backdrop: true,\n persistent: false,\n glass: false,\n gradient: false,\n glow: false,\n pulse: false,\n borderRadius: 'lg',\n} as const satisfies Partial<DialogProps>;\n\n/** DialogProps with every defaulted field guaranteed present (wide types). */\ntype DialogPropsWithDefaults = DialogProps &\n Required<Pick<DialogProps, keyof typeof DIALOG_DEFAULTS>>;\n\n/**\n * Apply {@link DIALOG_DEFAULTS} exactly like parameter defaults would: only a\n * missing/`undefined` prop falls back (a loop, so the component's cyclomatic\n * complexity doesn't pay one branch per defaulted prop).\n */\nfunction withDialogDefaults(props: DialogProps): DialogPropsWithDefaults {\n const merged: Record<string, unknown> = { ...props };\n for (const [key, value] of Object.entries(DIALOG_DEFAULTS)) {\n if (merged[key] === undefined) merged[key] = value;\n }\n return merged as unknown as DialogPropsWithDefaults;\n}\n\nexport const Dialog: React.FC<DialogProps> = (rawProps) => {\n const {\n children,\n variant,\n size,\n title,\n description,\n showCloseButton,\n backdrop,\n persistent,\n glass,\n gradient,\n glow,\n pulse,\n borderRadius,\n onClose,\n open,\n dataTestId,\n ...props\n } = withDialogDefaults(rawProps);\n const theme = useTheme();\n const testId = dataTestId || 'dialog';\n const paperSx = variantStylesOf(theme, {\n variant, size, borderRadius, glass, gradient, glow, pulse,\n });\n\n const handleClose = (event: object, reason: 'backdropClick' | 'escapeKeyDown') => {\n if (persistent && (reason === 'backdropClick' || reason === 'escapeKeyDown')) {\n return;\n }\n onClose?.();\n };\n\n const header = title ? (\n <DialogHeader\n title={title}\n subtitle={description}\n showCloseButton={showCloseButton}\n onClose={onClose}\n dataTestId={dataTestId}\n />\n ) : null;\n const body = bodyOf(children, Boolean(title));\n\n if (variant === 'drawer') {\n return (\n <Drawer\n anchor=\"right\"\n open={open}\n onClose={onClose}\n data-testid={testId}\n {...props}\n >\n <Box sx={{ ...paperSx, display: 'flex', flexDirection: 'column', overflow: 'hidden' }}>\n {header}\n {body}\n </Box>\n </Drawer>\n );\n }\n\n return (\n <MuiDialog\n open={open}\n onClose={handleClose}\n fullScreen={variant === 'fullscreen'}\n BackdropComponent={backdrop ? Backdrop : undefined}\n BackdropProps={{ sx: backdropSxOf(theme, glass) }}\n PaperProps={{ sx: paperSx, 'data-testid': testId }}\n {...props}\n >\n {header}\n {body}\n </MuiDialog>\n );\n};\n\nexport const DialogHeader: React.FC<DialogHeaderProps> = ({\n children,\n title,\n subtitle,\n showCloseButton = true,\n onClose,\n dataTestId,\n}) => {\n if (children) {\n return (\n <Box sx={{ p: 2, borderBottom: '1px solid', borderColor: 'divider' }}>\n {children}\n </Box>\n );\n }\n\n return (\n <MuiDialogTitle\n data-testid={dataTestId ? `${dataTestId}-title` : 'dialog-title'}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n pb: subtitle ? 1 : 2,\n }}\n >\n <Box>\n <Typography variant=\"h6\" component=\"div\">\n {title}\n </Typography>\n {subtitle && (\n <Typography variant=\"body2\" color=\"text.secondary\" sx={{ mt: 0.5 }}>\n {subtitle}\n </Typography>\n )}\n </Box>\n {showCloseButton && onClose && (\n <IconButton\n aria-label=\"close\"\n onClick={onClose}\n data-testid={dataTestId ? `${dataTestId}-close` : 'dialog-close'}\n sx={{\n color: 'text.secondary',\n '&:hover': {\n backgroundColor: 'action.hover',\n },\n }}\n >\n <CloseIcon />\n </IconButton>\n )}\n </MuiDialogTitle>\n );\n};\n\n/**\n * Top padding for a body that sits directly under the title.\n *\n * MUI zeroes it there (`.MuiDialogTitle-root + &` on a non-`dividers` content),\n * assuming the title's own bottom padding is the whole gap. That assumption\n * breaks for a body opening with an outlined field: a filled field floats its\n * label ABOVE the input's border box, and `DialogContent` is `overflow-y: auto`\n * — a clipping box — so the label gets sliced in half (FUT-544: \"Tipo\" in the\n * \"Novo insumo\" dialog).\n *\n * Reserve the overhang rather than restore the full 24px: the title already\n * contributes its bottom padding, so a shrunk label's `translate(…, -9px)` is\n * all that is missing. 12px clears it and leaves the gap visually tight.\n */\nconst TITLED_BODY_PADDING_TOP = 1.5;\n\n/**\n * `.MuiDialogTitle-root + &` is `(0,2,0)`-specific and a plain `sx` entry is\n * `(0,1,0)`, so the padding above only survives the cascade by naming the class\n * again — `(0,3,0)`. Scoped to the title-following case so an untitled dialog\n * keeps MUI's roomier default.\n */\nconst TITLED_BODY_SELECTOR = '.MuiDialogTitle-root + &.MuiDialogContent-root';\n\nexport const DialogContent: React.FC<DialogContentProps> = ({\n children,\n dividers = false,\n dense = false,\n dataTestId,\n ...props\n}) => (\n <MuiDialogContent\n data-testid={dataTestId ? `${dataTestId}-content` : 'dialog-content'}\n dividers={dividers}\n sx={{\n padding: dense ? 1.5 : 3,\n [TITLED_BODY_SELECTOR]: { paddingTop: TITLED_BODY_PADDING_TOP },\n '&.MuiDialogContent-dividers': {\n borderTop: dividers ? '1px solid' : 'none',\n borderBottom: dividers ? '1px solid' : 'none',\n borderColor: 'divider',\n },\n }}\n {...props}\n >\n {children}\n </MuiDialogContent>\n );\n\nexport const DialogActions: React.FC<DialogActionsProps> = ({\n children,\n alignment = 'right',\n spacing = 1,\n dataTestId,\n ...props\n}) => {\n const getJustifyContent = () => {\n switch (alignment) {\n case 'left': return 'flex-start';\n case 'center': return 'center';\n case 'right': return 'flex-end';\n case 'space-between': return 'space-between';\n default: return 'flex-end';\n }\n };\n\n return (\n <MuiDialogActions\n data-testid={dataTestId ? `${dataTestId}-actions` : 'dialog-actions'}\n sx={{\n justifyContent: getJustifyContent(),\n gap: spacing,\n p: 2,\n }}\n {...props}\n >\n {children}\n </MuiDialogActions>\n );\n};"],"mappings":"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","names":[]}