@12-apps/ui 6.20.0 → 6.21.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 (768) hide show
  1. package/NATIVE.md +5 -1
  2. package/dist/_internal/components/data-display/Alert/Alert.js +4 -4
  3. package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
  4. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +7 -7
  5. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  6. package/dist/_internal/components/data-display/Badge/Badge.js +3 -3
  7. package/dist/_internal/components/data-display/CardKit/CardKebab.js +4 -4
  8. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +5 -5
  9. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -10
  10. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +5 -5
  11. package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
  12. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  13. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  14. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  15. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  16. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  17. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -3
  18. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +52 -51
  19. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +73 -69
  20. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +5 -5
  21. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +7 -7
  22. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +16 -12
  23. package/dist/_internal/components/data-display/DataViews/base-card.js +7 -5
  24. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +7 -7
  25. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +10 -3
  26. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +6 -6
  27. package/dist/_internal/components/data-display/DataViews/base-list-card.js +14 -13
  28. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +17 -15
  29. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -3
  30. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +5 -5
  31. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +8 -8
  32. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  33. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +5 -5
  34. package/dist/_internal/components/data-display/DataViews/data-views-export.js +5 -5
  35. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +21 -19
  36. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +12 -12
  37. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +4 -4
  38. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +47 -46
  39. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -3
  40. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +27 -26
  41. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +8 -8
  42. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +11 -11
  43. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
  44. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +5 -5
  45. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +14 -14
  46. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +25 -21
  47. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +13 -13
  48. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +5 -5
  49. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  50. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -3
  51. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +8 -8
  52. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  53. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -3
  54. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +3 -3
  55. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  56. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +1 -1
  57. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  58. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  59. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  60. package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
  61. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +3 -3
  62. package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
  63. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +11 -11
  64. package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
  65. package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
  66. package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
  67. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
  68. package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
  69. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  70. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  71. package/dist/_internal/components/data-display/index.js +59 -59
  72. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +4 -4
  73. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  74. package/dist/_internal/components/feedback/index.js +9 -9
  75. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  76. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +12 -10
  77. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +7 -5
  78. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +5 -3
  79. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +5 -3
  80. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +4 -2
  81. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  82. package/dist/_internal/components/form/Button/Button.js +3 -3
  83. package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
  84. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  85. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  86. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +10 -8
  87. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +5 -3
  88. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +5 -3
  89. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +7 -5
  90. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +6 -4
  91. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +14 -12
  92. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +4 -2
  93. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +5 -3
  94. package/dist/_internal/components/form/CepField/CepField.js +10 -4
  95. package/dist/_internal/components/form/Checkbox/Checkbox.base.js +1 -0
  96. package/dist/_internal/components/form/Checkbox/Checkbox.base.js.map +1 -0
  97. package/dist/_internal/components/form/Checkbox/Checkbox.helpers.js +2 -1
  98. package/dist/_internal/components/form/Checkbox/Checkbox.js +9 -2
  99. package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js +34 -0
  100. package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js.map +1 -0
  101. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +6 -4
  102. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +4 -2
  103. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -5
  104. package/dist/_internal/components/form/Input/Input.base.js +1 -0
  105. package/dist/_internal/components/form/Input/Input.base.js.map +1 -0
  106. package/dist/_internal/components/form/Input/Input.helpers.js +23 -0
  107. package/dist/_internal/components/form/Input/Input.helpers.js.map +1 -0
  108. package/dist/_internal/components/form/Input/Input.js +9 -3
  109. package/dist/_internal/components/form/Input/Input.metrics.js +53 -0
  110. package/dist/_internal/components/form/Input/Input.metrics.js.map +1 -0
  111. package/dist/_internal/components/form/Input/Input.styles.js +10 -4
  112. package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -3
  113. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +4 -2
  114. package/dist/_internal/components/form/Menubar/Menubar.js +4 -4
  115. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +2 -2
  116. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -2
  117. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +6 -4
  118. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +4 -2
  119. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +5 -3
  120. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +4 -2
  121. package/dist/_internal/components/form/Select/Select.base.js +1 -0
  122. package/dist/_internal/components/form/Select/Select.base.js.map +1 -0
  123. package/dist/_internal/components/form/Select/Select.helpers.js +48 -0
  124. package/dist/_internal/components/form/Select/Select.helpers.js.map +1 -0
  125. package/dist/_internal/components/form/Select/Select.js +10 -2
  126. package/dist/_internal/components/form/Select/Select.metrics.js +38 -0
  127. package/dist/_internal/components/form/Select/Select.metrics.js.map +1 -0
  128. package/dist/_internal/components/form/Switch/Switch.base.js +1 -0
  129. package/dist/_internal/components/form/Switch/Switch.base.js.map +1 -0
  130. package/dist/_internal/components/form/Switch/Switch.helpers.js +59 -0
  131. package/dist/_internal/components/form/Switch/Switch.helpers.js.map +1 -0
  132. package/dist/_internal/components/form/Switch/Switch.js +9 -3
  133. package/dist/_internal/components/form/Switch/Switch.metrics.js +83 -0
  134. package/dist/_internal/components/form/Switch/Switch.metrics.js.map +1 -0
  135. package/dist/_internal/components/form/Switch/Switch.parts.js +7 -2
  136. package/dist/_internal/components/form/Switch/Switch.styles.js +6 -1
  137. package/dist/_internal/components/form/Textarea/Textarea.js +5 -3
  138. package/dist/_internal/components/form/Textarea/Textarea.styles.js +4 -2
  139. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +4 -2
  140. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  141. package/dist/_internal/components/form/Toggle/Toggle.js +5 -3
  142. package/dist/_internal/components/form/Toggle/Toggle.styles.js +4 -2
  143. package/dist/_internal/components/form/index.js +53 -47
  144. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +15 -13
  145. package/dist/_internal/components/form/total-form/Fields/CepField.js +11 -5
  146. package/dist/_internal/components/form/total-form/Fields/SelectField.js +11 -3
  147. package/dist/_internal/components/form/total-form/Fields/TextField.js +10 -4
  148. package/dist/_internal/components/form/total-form/Fields/index.js +29 -21
  149. package/dist/_internal/components/form/total-form/SubmitButton.js +4 -4
  150. package/dist/_internal/components/index.js +140 -134
  151. package/dist/_internal/components/layout/Box/Box.js +2 -2
  152. package/dist/_internal/components/layout/Container/Container.js +2 -2
  153. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  154. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  155. package/dist/_internal/components/layout/Spacer/Spacer.js +2 -2
  156. package/dist/_internal/components/layout/Stack/Stack.js +3 -3
  157. package/dist/_internal/components/layout/index.js +13 -13
  158. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +6 -6
  159. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  160. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  161. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  162. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  163. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  164. package/dist/_internal/components/navigation/index.js +13 -13
  165. package/dist/_internal/components/typography/Heading/Heading.js +2 -2
  166. package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -2
  167. package/dist/_internal/components/typography/Text/Text.js +2 -2
  168. package/dist/_internal/components/typography/index.js +4 -4
  169. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  170. package/dist/_internal/components/utility/index.js +2 -2
  171. package/dist/_internal/icons/Icon.js +3 -3
  172. package/dist/_internal/icons/paths.generated.js +1 -1
  173. package/dist/_internal/platform/aria.js +17 -1
  174. package/dist/_internal/platform/aria.js.map +1 -1
  175. package/dist/_internal/platform/test-id.js +3 -1
  176. package/dist/_internal/social-login-button/social-login-button.js +6 -6
  177. package/dist/_internal/tokens/field-edge.core.js +11 -0
  178. package/dist/_internal/tokens/field-edge.core.js.map +1 -0
  179. package/dist/_internal/tokens/field-edge.js +5 -2
  180. package/dist/_internal/user-avatar/user-avatar.js +7 -7
  181. package/dist/charts.js +13 -13
  182. package/dist/{chunk-2PCOC3PT.js → chunk-26Z7QWID.js} +2 -2
  183. package/dist/chunk-2ECT4IY2.js +250 -0
  184. package/dist/chunk-2ECT4IY2.js.map +1 -0
  185. package/dist/{chunk-IJIT5HQP.js → chunk-2QFTAGDH.js} +3 -3
  186. package/dist/{chunk-ENNW5SKT.js → chunk-2QLVUVVR.js} +2 -2
  187. package/dist/{chunk-W3FAKT3D.js → chunk-2SWQ6HIK.js} +4 -4
  188. package/dist/{chunk-7P2HZLEG.js → chunk-3UOHKHOT.js} +3 -3
  189. package/dist/{chunk-URWGRPL7.js → chunk-3W7IEWEL.js} +2 -2
  190. package/dist/{chunk-Z7JNCB5Q.js → chunk-426FTCMF.js} +2 -2
  191. package/dist/{chunk-46UPILLK.js → chunk-4ETQRBZC.js} +4 -4
  192. package/dist/{chunk-NQC6H7GY.js → chunk-4HYXEMBP.js} +2 -2
  193. package/dist/{chunk-43NEBUV3.js → chunk-4K7FDVAB.js} +2 -2
  194. package/dist/{chunk-LMJBINWN.js → chunk-4MLDWACO.js} +13 -13
  195. package/dist/{chunk-GGE7Y53F.js → chunk-4TXIZ5WI.js} +2 -2
  196. package/dist/{chunk-J6UFAMIC.js → chunk-5RQ7N63M.js} +2 -2
  197. package/dist/chunk-5ZNU2U4D.js +41 -0
  198. package/dist/chunk-5ZNU2U4D.js.map +1 -0
  199. package/dist/{chunk-AVGTTWTE.js → chunk-65DLYC4S.js} +4 -4
  200. package/dist/{chunk-QLWBQQW7.js → chunk-6F5IKY32.js} +5 -1
  201. package/dist/chunk-6F5IKY32.js.map +1 -0
  202. package/dist/{chunk-B2A4DG77.js → chunk-6RGWDKUL.js} +6 -6
  203. package/dist/{chunk-DCEMUZJQ.js → chunk-6WIDZGXE.js} +2 -2
  204. package/dist/{chunk-R7MX5KPJ.js → chunk-6YLAVHV4.js} +4 -4
  205. package/dist/{chunk-E27Y7FF2.js → chunk-6Z4H2Y77.js} +4 -4
  206. package/dist/{chunk-PNYXXLPU.js → chunk-736HP6BL.js} +2 -2
  207. package/dist/{chunk-C52BELLW.js → chunk-77F36LQQ.js} +3 -3
  208. package/dist/chunk-7FDU3FIN.js +13 -0
  209. package/dist/chunk-7FDU3FIN.js.map +1 -0
  210. package/dist/{chunk-RXSGHPCR.js → chunk-7FOOLP5H.js} +4 -4
  211. package/dist/{chunk-74OZ5KVR.js → chunk-7KTU6YMQ.js} +6 -6
  212. package/dist/{chunk-X5D3PTWI.js → chunk-7MAOQIWA.js} +2 -2
  213. package/dist/{chunk-5ZF3VASA.js → chunk-7ZH7ZB33.js} +7 -7
  214. package/dist/{chunk-FX5DY6VR.js → chunk-AD776JPA.js} +7 -4
  215. package/dist/chunk-AD776JPA.js.map +1 -0
  216. package/dist/{chunk-PQECNGDE.js → chunk-AGYGNNOM.js} +2 -2
  217. package/dist/{chunk-PU3AAKRR.js → chunk-AJ6XEO4E.js} +2 -2
  218. package/dist/{chunk-WX7VWW3W.js → chunk-B3BK2SNS.js} +2 -2
  219. package/dist/{chunk-VJK5FBNK.js → chunk-B5PYBEXO.js} +2 -2
  220. package/dist/{chunk-47UD6DZ4.js → chunk-BDVNAU2C.js} +4 -4
  221. package/dist/{chunk-FGLV6BXQ.js → chunk-BEGWE5O4.js} +5 -5
  222. package/dist/{chunk-6IUTT6BK.js → chunk-BEH4DN63.js} +4 -4
  223. package/dist/{chunk-HKV4MQ2W.js → chunk-BLBOYCOV.js} +5 -5
  224. package/dist/{chunk-24BUCMQA.js → chunk-BNNSO4MC.js} +5 -5
  225. package/dist/{chunk-CZJLWCEG.js → chunk-BPYPUEM5.js} +2 -2
  226. package/dist/{chunk-NHSMLVNC.js → chunk-BQQONDW5.js} +7 -7
  227. package/dist/{chunk-DQHC5P64.js → chunk-BRSF5NRT.js} +4 -4
  228. package/dist/{chunk-M7OHXNLF.js → chunk-CXVMD6FE.js} +3 -3
  229. package/dist/{chunk-LYSSO6WC.js → chunk-CZPU5TW3.js} +4 -4
  230. package/dist/{chunk-DOADQW7I.js → chunk-D4T646G4.js} +2 -2
  231. package/dist/{chunk-2W4CIWTW.js → chunk-DBYFC6CF.js} +3 -3
  232. package/dist/{chunk-76GZ55IC.js → chunk-DF2FFYZ7.js} +7 -7
  233. package/dist/chunk-DFK6QCXX.js +150 -0
  234. package/dist/chunk-DFK6QCXX.js.map +1 -0
  235. package/dist/{chunk-BILE3A7F.js → chunk-DH75UNF3.js} +2 -2
  236. package/dist/{chunk-MLOWPVVW.js → chunk-EPEJMTCQ.js} +16 -13
  237. package/dist/chunk-EPEJMTCQ.js.map +1 -0
  238. package/dist/{chunk-6D5WEZ2L.js → chunk-FB36IHCE.js} +8 -8
  239. package/dist/{chunk-OI3HOI74.js → chunk-FGUESLDX.js} +2 -2
  240. package/dist/{chunk-PC5FFEIY.js → chunk-FINCVAAR.js} +4 -4
  241. package/dist/{chunk-YK2PETUP.js → chunk-FRQ4HNGF.js} +2 -2
  242. package/dist/{chunk-WO52KYSU.js → chunk-G2IPK2XE.js} +10 -10
  243. package/dist/{chunk-E4FGKZID.js → chunk-GBNOYRLP.js} +8 -8
  244. package/dist/{chunk-UNF65XZW.js → chunk-GBRKP5GZ.js} +2 -2
  245. package/dist/{chunk-VLHGBFR6.js → chunk-GCXYCDOA.js} +2 -2
  246. package/dist/{chunk-EX3PSZLV.js → chunk-GDEXYUPF.js} +3 -3
  247. package/dist/{chunk-4N4ENTF7.js → chunk-GO4MVQGC.js} +2 -2
  248. package/dist/{chunk-HDNK7BAX.js → chunk-GT7C6TSM.js} +3 -3
  249. package/dist/chunk-GY6KNVMI.js +39 -0
  250. package/dist/chunk-GY6KNVMI.js.map +1 -0
  251. package/dist/{chunk-HBAPVB7T.js → chunk-HKKSZ7HG.js} +2 -2
  252. package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
  253. package/dist/{chunk-AEGX66N7.js → chunk-I3MDKPGG.js} +2 -2
  254. package/dist/{chunk-7BYFC2MR.js → chunk-I7HYGIEJ.js} +6 -6
  255. package/dist/{chunk-D7FJ2GAD.js → chunk-IFNK5TPI.js} +2 -2
  256. package/dist/{chunk-PODGTNXS.js → chunk-IH4RSRQA.js} +4 -4
  257. package/dist/{chunk-UF27D35R.js → chunk-IIROZKW5.js} +2 -2
  258. package/dist/{chunk-PUBPZOQJ.js → chunk-IPE5FFFD.js} +2 -2
  259. package/dist/{chunk-37YPZHAG.js → chunk-JDMYD6QC.js} +2 -2
  260. package/dist/{chunk-HSAH5QUQ.js → chunk-JIINGMEB.js} +6 -6
  261. package/dist/{chunk-NRUYYGDZ.js → chunk-JXAYT6LX.js} +2 -2
  262. package/dist/{chunk-VMNSGE2G.js → chunk-KEVPUBOE.js} +5 -1
  263. package/dist/chunk-KEVPUBOE.js.map +1 -0
  264. package/dist/{chunk-ZBNTFWTG.js → chunk-KIHQE5YA.js} +2 -2
  265. package/dist/{chunk-DVUPIVI2.js → chunk-KT6HWAEN.js} +4 -4
  266. package/dist/{chunk-MY5VNNSP.js → chunk-MCRIT46W.js} +4 -4
  267. package/dist/chunk-MLCFODJO.js +135 -0
  268. package/dist/chunk-MLCFODJO.js.map +1 -0
  269. package/dist/{chunk-Q5EQC7NL.js → chunk-N5IVVLTH.js} +8 -5
  270. package/dist/chunk-N5IVVLTH.js.map +1 -0
  271. package/dist/{chunk-6XPNJLXE.js → chunk-NARIG5FL.js} +2 -2
  272. package/dist/{chunk-MBYO2F4Y.js → chunk-NUE774AN.js} +6 -6
  273. package/dist/{chunk-ZEBJT5JZ.js → chunk-OCXCH2ZW.js} +12 -12
  274. package/dist/{chunk-7TZ6OC5T.js → chunk-OH3YGJT5.js} +2 -2
  275. package/dist/{chunk-SM3NRN7L.js → chunk-ON2CMKTI.js} +2 -2
  276. package/dist/{chunk-VCTKJHXD.js → chunk-OOGEYCJH.js} +2 -2
  277. package/dist/{chunk-J54WH74M.js → chunk-P6IPJYCS.js} +6 -6
  278. package/dist/{chunk-23FCBIUN.js → chunk-P7FQUGED.js} +8 -8
  279. package/dist/{chunk-THBT56JE.js → chunk-PANMJFDS.js} +2 -2
  280. package/dist/{chunk-LZRURORY.js → chunk-PF5HDFYY.js} +3 -3
  281. package/dist/{chunk-YVW7VPK4.js → chunk-PFLKPNBU.js} +2 -2
  282. package/dist/{chunk-7EESF76V.js → chunk-PWXL3QQ6.js} +2 -2
  283. package/dist/{chunk-7DNQHMDO.js → chunk-PXH24VIP.js} +4 -4
  284. package/dist/{chunk-HBZIN6IQ.js → chunk-PZEC5CQA.js} +2 -2
  285. package/dist/{chunk-LAHDFBDE.js → chunk-QFHH2NU5.js} +3 -3
  286. package/dist/{chunk-GBB6XQ56.js → chunk-QGBMCB76.js} +2 -2
  287. package/dist/{chunk-SOCKK67R.js → chunk-QRX5BYUQ.js} +7 -7
  288. package/dist/{chunk-QZWKC3AP.js → chunk-QS7ZGRNS.js} +2 -2
  289. package/dist/{chunk-IH4CX43Q.js → chunk-QZDBWXZG.js} +2 -2
  290. package/dist/{chunk-PHCSPHDH.js → chunk-R6RVBYTU.js} +3 -3
  291. package/dist/{chunk-KZSKI2R3.js → chunk-RPQ3W2C6.js} +2 -2
  292. package/dist/{chunk-HEG7JIBM.js → chunk-RPWEXIAW.js} +5 -5
  293. package/dist/{chunk-JB67KPGM.js → chunk-RRO2EOJB.js} +4 -4
  294. package/dist/{chunk-BLT5ZBVL.js → chunk-RRX6ZTNX.js} +2 -2
  295. package/dist/{chunk-7RZ4WOQW.js → chunk-RRZBATXK.js} +3 -3
  296. package/dist/{chunk-RMSH2I3O.js → chunk-S6YY2WWK.js} +40 -50
  297. package/dist/chunk-S6YY2WWK.js.map +1 -0
  298. package/dist/{chunk-7JWXLDRH.js → chunk-SAHQLXNN.js} +4 -4
  299. package/dist/{chunk-LUMF63BM.js → chunk-SFAP5EH5.js} +4 -4
  300. package/dist/{chunk-EGRFMPGD.js → chunk-SHDIZSN5.js} +6 -6
  301. package/dist/{chunk-GJQYM3PM.js → chunk-SHQWIDD5.js} +4 -4
  302. package/dist/{chunk-BJ3J6FTN.js → chunk-STH66VLA.js} +40 -23
  303. package/dist/chunk-STH66VLA.js.map +1 -0
  304. package/dist/{chunk-FCOEJCUP.js → chunk-TFO6GBW7.js} +2 -2
  305. package/dist/{chunk-2ZDTGI5V.js → chunk-THZ2NAA4.js} +7 -7
  306. package/dist/{chunk-OQXOYHIV.js → chunk-TLX66HCW.js} +45 -37
  307. package/dist/chunk-TLX66HCW.js.map +1 -0
  308. package/dist/{chunk-VJFH2AXT.js → chunk-TP4N3X2Q.js} +2 -2
  309. package/dist/{chunk-B7BZAIHL.js → chunk-TPIBJP4S.js} +2 -2
  310. package/dist/{chunk-Q4NOI2CR.js → chunk-TVO5STZB.js} +5 -5
  311. package/dist/{chunk-JB7JE4QZ.js → chunk-TZ4SFX3M.js} +3 -3
  312. package/dist/{chunk-JD364H3Y.js → chunk-TZ633UZA.js} +6 -5
  313. package/dist/chunk-TZ633UZA.js.map +1 -0
  314. package/dist/{chunk-HEK4LQT6.js → chunk-UB76PBDF.js} +2 -2
  315. package/dist/{chunk-NFAKRI4S.js → chunk-UEIVXFUC.js} +2 -2
  316. package/dist/{chunk-DX527XPL.js → chunk-UOPQOBQZ.js} +3 -3
  317. package/dist/{chunk-X24P3ZYW.js → chunk-V5P5Q6HM.js} +10 -10
  318. package/dist/{chunk-7DBFEZRC.js → chunk-VIK3HAUQ.js} +2 -2
  319. package/dist/{chunk-74EZ565M.js → chunk-VPHOSIPB.js} +5 -5
  320. package/dist/{chunk-SX3V2DLV.js → chunk-VWBWKLXX.js} +4 -4
  321. package/dist/{chunk-VEFDL77X.js → chunk-VWGR5XUP.js} +2 -2
  322. package/dist/{chunk-SEH7KOVG.js → chunk-VXTYVJDK.js} +2 -2
  323. package/dist/{chunk-QYNCPS5W.js → chunk-WBKWIFXA.js} +6 -6
  324. package/dist/{chunk-YFHIESMD.js → chunk-WPZT2JD4.js} +2 -2
  325. package/dist/{chunk-GSFNH4C5.js → chunk-WROCSDVL.js} +5 -5
  326. package/dist/{chunk-VSLUFBMT.js → chunk-WTIOCG4M.js} +41 -27
  327. package/dist/chunk-WTIOCG4M.js.map +1 -0
  328. package/dist/{chunk-QZBUGUOY.js → chunk-XEE7PLDR.js} +6 -6
  329. package/dist/{chunk-Z4GWXTZV.js → chunk-XFU2S6XT.js} +7 -7
  330. package/dist/{chunk-RQDN4BN5.js → chunk-XLJJ2ZAP.js} +16 -16
  331. package/dist/{chunk-ACDYA5WC.js → chunk-XZTOIEKI.js} +2 -2
  332. package/dist/{chunk-LKVIZNUM.js → chunk-Y46RBFBV.js} +8 -8
  333. package/dist/{chunk-WBVHRLIS.js → chunk-YCCKY5VW.js} +5 -5
  334. package/dist/{chunk-SKZHOWTS.js → chunk-YDI6IJ6F.js} +2 -2
  335. package/dist/{chunk-V3SBJ3PB.js → chunk-Z5ABJLTM.js} +2 -2
  336. package/dist/{chunk-KQ74QU55.js → chunk-Z6UEOSL7.js} +3 -3
  337. package/dist/{chunk-G5ZVD5IJ.js → chunk-ZDWU52DJ.js} +2 -2
  338. package/dist/{chunk-2EKALM6P.js → chunk-ZFPJBKVZ.js} +4 -4
  339. package/dist/{chunk-FP4R47TM.js → chunk-ZGHIHEND.js} +2 -2
  340. package/dist/{chunk-F2DOTCF3.js → chunk-ZKFYBC6G.js} +2 -2
  341. package/dist/{chunk-4MGFUPQT.js → chunk-ZOUWHGV3.js} +4 -4
  342. package/dist/{chunk-4WK2RTVY.js → chunk-ZXLIWOXC.js} +5 -5
  343. package/dist/{chunk-UMDXGIRZ.js → chunk-ZZOOSKSV.js} +2 -2
  344. package/dist/data-display/Alert.js +4 -4
  345. package/dist/data-display/AsyncStateContainer.js +7 -7
  346. package/dist/data-display/Avatar.js +2 -2
  347. package/dist/data-display/Badge.js +3 -3
  348. package/dist/data-display/CardKit.js +18 -18
  349. package/dist/data-display/Carousel.js +3 -3
  350. package/dist/data-display/Chart.js +13 -13
  351. package/dist/data-display/DataGrid.js +2 -2
  352. package/dist/data-display/DataViews.js +89 -84
  353. package/dist/data-display/DescriptionItem.js +3 -3
  354. package/dist/data-display/EmptyState.js +3 -3
  355. package/dist/data-display/ErrorState.js +2 -2
  356. package/dist/data-display/HoverCard.js +1 -1
  357. package/dist/data-display/LazyImage.js +3 -3
  358. package/dist/data-display/Lightbox.js +5 -5
  359. package/dist/data-display/LoadingState.js +3 -3
  360. package/dist/data-display/MapPreview.js +11 -11
  361. package/dist/data-display/SectionOnboarding.js +4 -4
  362. package/dist/data-display/Sheet.js +2 -2
  363. package/dist/data-display/StatCard.js +3 -3
  364. package/dist/data-display/Table.js +3 -3
  365. package/dist/feedback/ConfirmAction.js +7 -7
  366. package/dist/feedback/TutorialOverlay.js +2 -2
  367. package/dist/form/AddressAutocomplete.js +12 -10
  368. package/dist/form/Autocomplete.js +2 -2
  369. package/dist/form/Button.js +3 -3
  370. package/dist/form/Calendar.js +4 -4
  371. package/dist/form/CategorySelect.js +14 -12
  372. package/dist/form/CepField.js +10 -4
  373. package/dist/form/Checkbox.js +9 -2
  374. package/dist/form/CodeEditor.js +6 -4
  375. package/dist/form/CreatableSelect.js +4 -2
  376. package/dist/form/DateRangePicker.js +5 -5
  377. package/dist/form/Input.js +9 -3
  378. package/dist/form/InputOTP.js +5 -3
  379. package/dist/form/Menubar.js +4 -4
  380. package/dist/form/PhoneInput.js +4 -2
  381. package/dist/form/RadioGroup.js +6 -4
  382. package/dist/form/RichTextEditor.js +4 -2
  383. package/dist/form/Select.js +10 -2
  384. package/dist/form/Switch.js +9 -3
  385. package/dist/form/Textarea.js +5 -3
  386. package/dist/form/Toggle.js +5 -3
  387. package/dist/form/total-form.js +33 -28
  388. package/dist/icons.js +3 -3
  389. package/dist/layout/Box.js +2 -2
  390. package/dist/layout/Container.js +2 -2
  391. package/dist/layout/ContentToolbar.js +6 -6
  392. package/dist/layout/ScrollArea.js +3 -3
  393. package/dist/layout/Skeleton.js +2 -2
  394. package/dist/layout/Spacer.js +2 -2
  395. package/dist/layout/Stack.js +3 -3
  396. package/dist/native/chunks/{chunk-Q52IDAF2.js → chunk-D4EYAXNG.js} +6 -2
  397. package/dist/native/chunks/chunk-D4EYAXNG.js.map +1 -0
  398. package/dist/native/chunks/{chunk-EKKNUEA6.js → chunk-OGWPPQL4.js} +2 -2
  399. package/dist/native/chunks/chunk-OXHZDFJZ.js +15 -0
  400. package/dist/native/chunks/chunk-OXHZDFJZ.js.map +1 -0
  401. package/dist/native/chunks/{chunk-M4DTJDWU.js → chunk-QZAUOHDQ.js} +1 -1
  402. package/dist/native/chunks/chunk-QZAUOHDQ.js.map +1 -0
  403. package/dist/native/chunks/{chunk-UKCCYP52.js → chunk-RJVM5YDE.js} +2 -2
  404. package/dist/native/chunks/chunk-T6BJPP3E.js +26 -0
  405. package/dist/native/chunks/chunk-T6BJPP3E.js.map +1 -0
  406. package/dist/native/chunks/chunk-WKMDCNIN.js +351 -0
  407. package/dist/native/chunks/chunk-WKMDCNIN.js.map +1 -0
  408. package/dist/native/data-display/Alert.js +3 -3
  409. package/dist/native/data-display/Avatar.js +2 -2
  410. package/dist/native/data-display/Badge.js +3 -3
  411. package/dist/native/data-display/Chip.js +2 -2
  412. package/dist/native/data-display/EmptyState.js +4 -4
  413. package/dist/native/data-display/ErrorState.js +4 -4
  414. package/dist/native/data-display/LoadingState.js +1 -1
  415. package/dist/native/form/Button.js +2 -2
  416. package/dist/native/form/Checkbox.js +233 -0
  417. package/dist/native/form/Checkbox.js.map +1 -0
  418. package/dist/native/form/Input.js +233 -0
  419. package/dist/native/form/Input.js.map +1 -0
  420. package/dist/native/form/Select.js +348 -0
  421. package/dist/native/form/Select.js.map +1 -0
  422. package/dist/native/form/Switch.js +511 -0
  423. package/dist/native/form/Switch.js.map +1 -0
  424. package/dist/native/icons.js +2 -2
  425. package/dist/native/layout/Box.js +2 -2
  426. package/dist/native/layout/Container.js +1 -1
  427. package/dist/native/layout/Skeleton.js +1 -1
  428. package/dist/native/layout/Spacer.js +1 -1
  429. package/dist/native/layout/Stack.js +2 -2
  430. package/dist/native/typography/Heading.js +1 -1
  431. package/dist/native/typography/Paragraph.js +1 -1
  432. package/dist/native/typography/Text.js +1 -1
  433. package/dist/navigation/AppHeader.js +6 -6
  434. package/dist/navigation/CommandPalette.js +2 -2
  435. package/dist/navigation/NavigationMenu.js +5 -5
  436. package/dist/social-login-button.js +6 -6
  437. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts +36 -0
  438. package/dist/types/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
  439. package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
  440. package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts +9 -3
  441. package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -1
  442. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
  443. package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
  444. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts +8 -10
  445. package/dist/types/components/form/Checkbox/Checkbox.types.d.ts.map +1 -1
  446. package/dist/types/components/form/Checkbox/index.d.ts +1 -1
  447. package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
  448. package/dist/types/components/form/Input/Input.base.d.ts +62 -0
  449. package/dist/types/components/form/Input/Input.base.d.ts.map +1 -0
  450. package/dist/types/components/form/Input/Input.d.ts.map +1 -1
  451. package/dist/types/components/form/Input/Input.helpers.d.ts +11 -0
  452. package/dist/types/components/form/Input/Input.helpers.d.ts.map +1 -0
  453. package/dist/types/components/form/Input/Input.metrics.d.ts +186 -0
  454. package/dist/types/components/form/Input/Input.metrics.d.ts.map +1 -0
  455. package/dist/types/components/form/Input/Input.styles.d.ts +1 -35
  456. package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
  457. package/dist/types/components/form/Input/Input.types.d.ts +12 -17
  458. package/dist/types/components/form/Input/Input.types.d.ts.map +1 -1
  459. package/dist/types/components/form/Input/index.d.ts +1 -1
  460. package/dist/types/components/form/Input/index.d.ts.map +1 -1
  461. package/dist/types/components/form/Select/Select.base.d.ts +75 -0
  462. package/dist/types/components/form/Select/Select.base.d.ts.map +1 -0
  463. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  464. package/dist/types/components/form/Select/Select.helpers.d.ts +36 -0
  465. package/dist/types/components/form/Select/Select.helpers.d.ts.map +1 -0
  466. package/dist/types/components/form/Select/Select.metrics.d.ts +72 -0
  467. package/dist/types/components/form/Select/Select.metrics.d.ts.map +1 -0
  468. package/dist/types/components/form/Select/Select.types.d.ts +12 -49
  469. package/dist/types/components/form/Select/Select.types.d.ts.map +1 -1
  470. package/dist/types/components/form/Select/index.d.ts +1 -1
  471. package/dist/types/components/form/Select/index.d.ts.map +1 -1
  472. package/dist/types/components/form/Switch/Switch.base.d.ts +111 -0
  473. package/dist/types/components/form/Switch/Switch.base.d.ts.map +1 -0
  474. package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
  475. package/dist/types/components/form/Switch/Switch.helpers.d.ts +17 -0
  476. package/dist/types/components/form/Switch/Switch.helpers.d.ts.map +1 -0
  477. package/dist/types/components/form/Switch/Switch.metrics.d.ts +194 -0
  478. package/dist/types/components/form/Switch/Switch.metrics.d.ts.map +1 -0
  479. package/dist/types/components/form/Switch/Switch.parts.d.ts.map +1 -1
  480. package/dist/types/components/form/Switch/Switch.styles.d.ts +5 -3
  481. package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
  482. package/dist/types/components/form/Switch/Switch.types.d.ts +9 -91
  483. package/dist/types/components/form/Switch/Switch.types.d.ts.map +1 -1
  484. package/dist/types/components/form/Switch/index.d.ts +1 -1
  485. package/dist/types/components/form/Switch/index.d.ts.map +1 -1
  486. package/dist/types/icons/paths.generated.d.ts +4 -0
  487. package/dist/types/icons/paths.generated.d.ts.map +1 -1
  488. package/dist/types/platform/aria.d.ts +59 -1
  489. package/dist/types/platform/aria.d.ts.map +1 -1
  490. package/dist/types/platform/test-id.d.ts +10 -0
  491. package/dist/types/platform/test-id.d.ts.map +1 -1
  492. package/dist/types/tokens/field-edge.core.d.ts +27 -0
  493. package/dist/types/tokens/field-edge.core.d.ts.map +1 -0
  494. package/dist/types/tokens/field-edge.d.ts +8 -9
  495. package/dist/types/tokens/field-edge.d.ts.map +1 -1
  496. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts +36 -0
  497. package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
  498. package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts +13 -0
  499. package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -0
  500. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
  501. package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
  502. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts +21 -0
  503. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts.map +1 -0
  504. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts +27 -0
  505. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts.map +1 -0
  506. package/dist/types-native/components/form/Checkbox/index.native.d.ts +3 -0
  507. package/dist/types-native/components/form/Checkbox/index.native.d.ts.map +1 -0
  508. package/dist/types-native/components/form/Input/Input.base.d.ts +62 -0
  509. package/dist/types-native/components/form/Input/Input.base.d.ts.map +1 -0
  510. package/dist/types-native/components/form/Input/Input.helpers.d.ts +11 -0
  511. package/dist/types-native/components/form/Input/Input.helpers.d.ts.map +1 -0
  512. package/dist/types-native/components/form/Input/Input.look.native.d.ts +61 -0
  513. package/dist/types-native/components/form/Input/Input.look.native.d.ts.map +1 -0
  514. package/dist/types-native/components/form/Input/Input.metrics.d.ts +186 -0
  515. package/dist/types-native/components/form/Input/Input.metrics.d.ts.map +1 -0
  516. package/dist/types-native/components/form/Input/Input.native.d.ts +22 -0
  517. package/dist/types-native/components/form/Input/Input.native.d.ts.map +1 -0
  518. package/dist/types-native/components/form/Input/Input.types.native.d.ts +20 -0
  519. package/dist/types-native/components/form/Input/Input.types.native.d.ts.map +1 -0
  520. package/dist/types-native/components/form/Input/index.native.d.ts +3 -0
  521. package/dist/types-native/components/form/Input/index.native.d.ts.map +1 -0
  522. package/dist/types-native/components/form/Select/Select.base.d.ts +75 -0
  523. package/dist/types-native/components/form/Select/Select.base.d.ts.map +1 -0
  524. package/dist/types-native/components/form/Select/Select.helpers.d.ts +36 -0
  525. package/dist/types-native/components/form/Select/Select.helpers.d.ts.map +1 -0
  526. package/dist/types-native/components/form/Select/Select.look.native.d.ts +26 -0
  527. package/dist/types-native/components/form/Select/Select.look.native.d.ts.map +1 -0
  528. package/dist/types-native/components/form/Select/Select.metrics.d.ts +72 -0
  529. package/dist/types-native/components/form/Select/Select.metrics.d.ts.map +1 -0
  530. package/dist/types-native/components/form/Select/Select.native.d.ts +21 -0
  531. package/dist/types-native/components/form/Select/Select.native.d.ts.map +1 -0
  532. package/dist/types-native/components/form/Select/Select.types.native.d.ts +29 -0
  533. package/dist/types-native/components/form/Select/Select.types.native.d.ts.map +1 -0
  534. package/dist/types-native/components/form/Select/index.native.d.ts +3 -0
  535. package/dist/types-native/components/form/Select/index.native.d.ts.map +1 -0
  536. package/dist/types-native/components/form/Switch/Switch.base.d.ts +111 -0
  537. package/dist/types-native/components/form/Switch/Switch.base.d.ts.map +1 -0
  538. package/dist/types-native/components/form/Switch/Switch.helpers.d.ts +17 -0
  539. package/dist/types-native/components/form/Switch/Switch.helpers.d.ts.map +1 -0
  540. package/dist/types-native/components/form/Switch/Switch.look.native.d.ts +43 -0
  541. package/dist/types-native/components/form/Switch/Switch.look.native.d.ts.map +1 -0
  542. package/dist/types-native/components/form/Switch/Switch.metrics.d.ts +194 -0
  543. package/dist/types-native/components/form/Switch/Switch.metrics.d.ts.map +1 -0
  544. package/dist/types-native/components/form/Switch/Switch.native.d.ts +20 -0
  545. package/dist/types-native/components/form/Switch/Switch.native.d.ts.map +1 -0
  546. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts +27 -0
  547. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts.map +1 -0
  548. package/dist/types-native/components/form/Switch/index.native.d.ts +3 -0
  549. package/dist/types-native/components/form/Switch/index.native.d.ts.map +1 -0
  550. package/dist/types-native/components/form/field-pulse.native.d.ts +18 -0
  551. package/dist/types-native/components/form/field-pulse.native.d.ts.map +1 -0
  552. package/dist/types-native/icons/paths.generated.d.ts +4 -0
  553. package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
  554. package/dist/types-native/platform/aria.d.ts +59 -1
  555. package/dist/types-native/platform/aria.d.ts.map +1 -1
  556. package/dist/types-native/platform/test-id.d.ts +10 -0
  557. package/dist/types-native/platform/test-id.d.ts.map +1 -1
  558. package/dist/types-native/tokens/field-edge.core.d.ts +27 -0
  559. package/dist/types-native/tokens/field-edge.core.d.ts.map +1 -0
  560. package/dist/types-native/utils/withDefaults.d.ts +13 -0
  561. package/dist/types-native/utils/withDefaults.d.ts.map +1 -0
  562. package/dist/typography/Heading.js +2 -2
  563. package/dist/typography/Paragraph.js +2 -2
  564. package/dist/typography/Text.js +2 -2
  565. package/dist/user-avatar.js +7 -7
  566. package/dist/utility/InfiniteScroll.js +2 -2
  567. package/package.json +17 -1
  568. package/src/components/form/Checkbox/Checkbox.base.ts +36 -0
  569. package/src/components/form/Checkbox/Checkbox.helpers.ts +13 -13
  570. package/src/components/form/Checkbox/Checkbox.metrics.ts +73 -0
  571. package/src/components/form/Checkbox/Checkbox.native.tsx +246 -0
  572. package/src/components/form/Checkbox/Checkbox.tsx +34 -21
  573. package/src/components/form/Checkbox/Checkbox.types.native.ts +29 -0
  574. package/src/components/form/Checkbox/Checkbox.types.ts +12 -11
  575. package/src/components/form/Checkbox/NATIVE-NOTES.md +11 -0
  576. package/src/components/form/Checkbox/index.native.ts +8 -0
  577. package/src/components/form/Checkbox/index.ts +1 -1
  578. package/src/components/form/Input/Input.base.ts +84 -0
  579. package/src/components/form/Input/Input.helpers.ts +43 -0
  580. package/src/components/form/Input/Input.look.native.ts +246 -0
  581. package/src/components/form/Input/Input.metrics.ts +229 -0
  582. package/src/components/form/Input/Input.native.tsx +240 -0
  583. package/src/components/form/Input/Input.styles.ts +45 -51
  584. package/src/components/form/Input/Input.tsx +46 -42
  585. package/src/components/form/Input/Input.types.native.ts +29 -0
  586. package/src/components/form/Input/Input.types.ts +15 -17
  587. package/src/components/form/Input/NATIVE-NOTES.md +14 -0
  588. package/src/components/form/Input/index.native.ts +2 -0
  589. package/src/components/form/Input/index.ts +1 -1
  590. package/src/components/form/Select/NATIVE-NOTES.md +12 -0
  591. package/src/components/form/Select/Select.base.ts +78 -0
  592. package/src/components/form/Select/Select.helpers.ts +82 -0
  593. package/src/components/form/Select/Select.look.native.ts +99 -0
  594. package/src/components/form/Select/Select.metrics.ts +90 -0
  595. package/src/components/form/Select/Select.native.tsx +264 -0
  596. package/src/components/form/Select/Select.tsx +37 -25
  597. package/src/components/form/Select/Select.types.native.ts +30 -0
  598. package/src/components/form/Select/Select.types.ts +14 -51
  599. package/src/components/form/Select/index.native.ts +9 -0
  600. package/src/components/form/Select/index.ts +7 -1
  601. package/src/components/form/Switch/NATIVE-NOTES.md +12 -0
  602. package/src/components/form/Switch/Switch.base.ts +136 -0
  603. package/src/components/form/Switch/Switch.helpers.ts +61 -0
  604. package/src/components/form/Switch/Switch.look.native.ts +187 -0
  605. package/src/components/form/Switch/Switch.metrics.ts +191 -0
  606. package/src/components/form/Switch/Switch.native.tsx +360 -0
  607. package/src/components/form/Switch/Switch.parts.tsx +4 -4
  608. package/src/components/form/Switch/Switch.styles.ts +109 -147
  609. package/src/components/form/Switch/Switch.tsx +4 -2
  610. package/src/components/form/Switch/Switch.types.native.ts +34 -0
  611. package/src/components/form/Switch/Switch.types.ts +16 -117
  612. package/src/components/form/Switch/index.native.ts +8 -0
  613. package/src/components/form/Switch/index.ts +6 -1
  614. package/src/components/form/field-pulse.native.tsx +78 -0
  615. package/src/icons/glyphs.json +4 -0
  616. package/src/icons/paths.generated.ts +4 -0
  617. package/src/platform/aria.ts +72 -1
  618. package/src/platform/test-id.ts +13 -0
  619. package/src/tokens/field-edge.core.ts +87 -0
  620. package/src/tokens/field-edge.ts +10 -66
  621. package/dist/chunk-BJ3J6FTN.js.map +0 -1
  622. package/dist/chunk-FX5DY6VR.js.map +0 -1
  623. package/dist/chunk-JD364H3Y.js.map +0 -1
  624. package/dist/chunk-MLOWPVVW.js.map +0 -1
  625. package/dist/chunk-OQXOYHIV.js.map +0 -1
  626. package/dist/chunk-Q5EQC7NL.js.map +0 -1
  627. package/dist/chunk-QLWBQQW7.js.map +0 -1
  628. package/dist/chunk-RMSH2I3O.js.map +0 -1
  629. package/dist/chunk-TBWEIQUR.js +0 -263
  630. package/dist/chunk-TBWEIQUR.js.map +0 -1
  631. package/dist/chunk-VMNSGE2G.js.map +0 -1
  632. package/dist/chunk-VSLUFBMT.js.map +0 -1
  633. package/dist/native/chunks/chunk-4NK5ZQZ3.js +0 -10
  634. package/dist/native/chunks/chunk-4NK5ZQZ3.js.map +0 -1
  635. package/dist/native/chunks/chunk-M4DTJDWU.js.map +0 -1
  636. package/dist/native/chunks/chunk-Q52IDAF2.js.map +0 -1
  637. /package/dist/{chunk-2PCOC3PT.js.map → chunk-26Z7QWID.js.map} +0 -0
  638. /package/dist/{chunk-IJIT5HQP.js.map → chunk-2QFTAGDH.js.map} +0 -0
  639. /package/dist/{chunk-ENNW5SKT.js.map → chunk-2QLVUVVR.js.map} +0 -0
  640. /package/dist/{chunk-W3FAKT3D.js.map → chunk-2SWQ6HIK.js.map} +0 -0
  641. /package/dist/{chunk-7P2HZLEG.js.map → chunk-3UOHKHOT.js.map} +0 -0
  642. /package/dist/{chunk-URWGRPL7.js.map → chunk-3W7IEWEL.js.map} +0 -0
  643. /package/dist/{chunk-Z7JNCB5Q.js.map → chunk-426FTCMF.js.map} +0 -0
  644. /package/dist/{chunk-46UPILLK.js.map → chunk-4ETQRBZC.js.map} +0 -0
  645. /package/dist/{chunk-NQC6H7GY.js.map → chunk-4HYXEMBP.js.map} +0 -0
  646. /package/dist/{chunk-43NEBUV3.js.map → chunk-4K7FDVAB.js.map} +0 -0
  647. /package/dist/{chunk-LMJBINWN.js.map → chunk-4MLDWACO.js.map} +0 -0
  648. /package/dist/{chunk-GGE7Y53F.js.map → chunk-4TXIZ5WI.js.map} +0 -0
  649. /package/dist/{chunk-J6UFAMIC.js.map → chunk-5RQ7N63M.js.map} +0 -0
  650. /package/dist/{chunk-AVGTTWTE.js.map → chunk-65DLYC4S.js.map} +0 -0
  651. /package/dist/{chunk-B2A4DG77.js.map → chunk-6RGWDKUL.js.map} +0 -0
  652. /package/dist/{chunk-DCEMUZJQ.js.map → chunk-6WIDZGXE.js.map} +0 -0
  653. /package/dist/{chunk-R7MX5KPJ.js.map → chunk-6YLAVHV4.js.map} +0 -0
  654. /package/dist/{chunk-E27Y7FF2.js.map → chunk-6Z4H2Y77.js.map} +0 -0
  655. /package/dist/{chunk-PNYXXLPU.js.map → chunk-736HP6BL.js.map} +0 -0
  656. /package/dist/{chunk-C52BELLW.js.map → chunk-77F36LQQ.js.map} +0 -0
  657. /package/dist/{chunk-RXSGHPCR.js.map → chunk-7FOOLP5H.js.map} +0 -0
  658. /package/dist/{chunk-74OZ5KVR.js.map → chunk-7KTU6YMQ.js.map} +0 -0
  659. /package/dist/{chunk-X5D3PTWI.js.map → chunk-7MAOQIWA.js.map} +0 -0
  660. /package/dist/{chunk-5ZF3VASA.js.map → chunk-7ZH7ZB33.js.map} +0 -0
  661. /package/dist/{chunk-PQECNGDE.js.map → chunk-AGYGNNOM.js.map} +0 -0
  662. /package/dist/{chunk-PU3AAKRR.js.map → chunk-AJ6XEO4E.js.map} +0 -0
  663. /package/dist/{chunk-WX7VWW3W.js.map → chunk-B3BK2SNS.js.map} +0 -0
  664. /package/dist/{chunk-VJK5FBNK.js.map → chunk-B5PYBEXO.js.map} +0 -0
  665. /package/dist/{chunk-47UD6DZ4.js.map → chunk-BDVNAU2C.js.map} +0 -0
  666. /package/dist/{chunk-FGLV6BXQ.js.map → chunk-BEGWE5O4.js.map} +0 -0
  667. /package/dist/{chunk-6IUTT6BK.js.map → chunk-BEH4DN63.js.map} +0 -0
  668. /package/dist/{chunk-HKV4MQ2W.js.map → chunk-BLBOYCOV.js.map} +0 -0
  669. /package/dist/{chunk-24BUCMQA.js.map → chunk-BNNSO4MC.js.map} +0 -0
  670. /package/dist/{chunk-CZJLWCEG.js.map → chunk-BPYPUEM5.js.map} +0 -0
  671. /package/dist/{chunk-NHSMLVNC.js.map → chunk-BQQONDW5.js.map} +0 -0
  672. /package/dist/{chunk-DQHC5P64.js.map → chunk-BRSF5NRT.js.map} +0 -0
  673. /package/dist/{chunk-M7OHXNLF.js.map → chunk-CXVMD6FE.js.map} +0 -0
  674. /package/dist/{chunk-LYSSO6WC.js.map → chunk-CZPU5TW3.js.map} +0 -0
  675. /package/dist/{chunk-DOADQW7I.js.map → chunk-D4T646G4.js.map} +0 -0
  676. /package/dist/{chunk-2W4CIWTW.js.map → chunk-DBYFC6CF.js.map} +0 -0
  677. /package/dist/{chunk-76GZ55IC.js.map → chunk-DF2FFYZ7.js.map} +0 -0
  678. /package/dist/{chunk-BILE3A7F.js.map → chunk-DH75UNF3.js.map} +0 -0
  679. /package/dist/{chunk-6D5WEZ2L.js.map → chunk-FB36IHCE.js.map} +0 -0
  680. /package/dist/{chunk-OI3HOI74.js.map → chunk-FGUESLDX.js.map} +0 -0
  681. /package/dist/{chunk-PC5FFEIY.js.map → chunk-FINCVAAR.js.map} +0 -0
  682. /package/dist/{chunk-YK2PETUP.js.map → chunk-FRQ4HNGF.js.map} +0 -0
  683. /package/dist/{chunk-WO52KYSU.js.map → chunk-G2IPK2XE.js.map} +0 -0
  684. /package/dist/{chunk-E4FGKZID.js.map → chunk-GBNOYRLP.js.map} +0 -0
  685. /package/dist/{chunk-UNF65XZW.js.map → chunk-GBRKP5GZ.js.map} +0 -0
  686. /package/dist/{chunk-VLHGBFR6.js.map → chunk-GCXYCDOA.js.map} +0 -0
  687. /package/dist/{chunk-EX3PSZLV.js.map → chunk-GDEXYUPF.js.map} +0 -0
  688. /package/dist/{chunk-4N4ENTF7.js.map → chunk-GO4MVQGC.js.map} +0 -0
  689. /package/dist/{chunk-HDNK7BAX.js.map → chunk-GT7C6TSM.js.map} +0 -0
  690. /package/dist/{chunk-HBAPVB7T.js.map → chunk-HKKSZ7HG.js.map} +0 -0
  691. /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
  692. /package/dist/{chunk-AEGX66N7.js.map → chunk-I3MDKPGG.js.map} +0 -0
  693. /package/dist/{chunk-7BYFC2MR.js.map → chunk-I7HYGIEJ.js.map} +0 -0
  694. /package/dist/{chunk-D7FJ2GAD.js.map → chunk-IFNK5TPI.js.map} +0 -0
  695. /package/dist/{chunk-PODGTNXS.js.map → chunk-IH4RSRQA.js.map} +0 -0
  696. /package/dist/{chunk-UF27D35R.js.map → chunk-IIROZKW5.js.map} +0 -0
  697. /package/dist/{chunk-PUBPZOQJ.js.map → chunk-IPE5FFFD.js.map} +0 -0
  698. /package/dist/{chunk-37YPZHAG.js.map → chunk-JDMYD6QC.js.map} +0 -0
  699. /package/dist/{chunk-HSAH5QUQ.js.map → chunk-JIINGMEB.js.map} +0 -0
  700. /package/dist/{chunk-NRUYYGDZ.js.map → chunk-JXAYT6LX.js.map} +0 -0
  701. /package/dist/{chunk-ZBNTFWTG.js.map → chunk-KIHQE5YA.js.map} +0 -0
  702. /package/dist/{chunk-DVUPIVI2.js.map → chunk-KT6HWAEN.js.map} +0 -0
  703. /package/dist/{chunk-MY5VNNSP.js.map → chunk-MCRIT46W.js.map} +0 -0
  704. /package/dist/{chunk-6XPNJLXE.js.map → chunk-NARIG5FL.js.map} +0 -0
  705. /package/dist/{chunk-MBYO2F4Y.js.map → chunk-NUE774AN.js.map} +0 -0
  706. /package/dist/{chunk-ZEBJT5JZ.js.map → chunk-OCXCH2ZW.js.map} +0 -0
  707. /package/dist/{chunk-7TZ6OC5T.js.map → chunk-OH3YGJT5.js.map} +0 -0
  708. /package/dist/{chunk-SM3NRN7L.js.map → chunk-ON2CMKTI.js.map} +0 -0
  709. /package/dist/{chunk-VCTKJHXD.js.map → chunk-OOGEYCJH.js.map} +0 -0
  710. /package/dist/{chunk-J54WH74M.js.map → chunk-P6IPJYCS.js.map} +0 -0
  711. /package/dist/{chunk-23FCBIUN.js.map → chunk-P7FQUGED.js.map} +0 -0
  712. /package/dist/{chunk-THBT56JE.js.map → chunk-PANMJFDS.js.map} +0 -0
  713. /package/dist/{chunk-LZRURORY.js.map → chunk-PF5HDFYY.js.map} +0 -0
  714. /package/dist/{chunk-YVW7VPK4.js.map → chunk-PFLKPNBU.js.map} +0 -0
  715. /package/dist/{chunk-7EESF76V.js.map → chunk-PWXL3QQ6.js.map} +0 -0
  716. /package/dist/{chunk-7DNQHMDO.js.map → chunk-PXH24VIP.js.map} +0 -0
  717. /package/dist/{chunk-HBZIN6IQ.js.map → chunk-PZEC5CQA.js.map} +0 -0
  718. /package/dist/{chunk-LAHDFBDE.js.map → chunk-QFHH2NU5.js.map} +0 -0
  719. /package/dist/{chunk-GBB6XQ56.js.map → chunk-QGBMCB76.js.map} +0 -0
  720. /package/dist/{chunk-SOCKK67R.js.map → chunk-QRX5BYUQ.js.map} +0 -0
  721. /package/dist/{chunk-QZWKC3AP.js.map → chunk-QS7ZGRNS.js.map} +0 -0
  722. /package/dist/{chunk-IH4CX43Q.js.map → chunk-QZDBWXZG.js.map} +0 -0
  723. /package/dist/{chunk-PHCSPHDH.js.map → chunk-R6RVBYTU.js.map} +0 -0
  724. /package/dist/{chunk-KZSKI2R3.js.map → chunk-RPQ3W2C6.js.map} +0 -0
  725. /package/dist/{chunk-HEG7JIBM.js.map → chunk-RPWEXIAW.js.map} +0 -0
  726. /package/dist/{chunk-JB67KPGM.js.map → chunk-RRO2EOJB.js.map} +0 -0
  727. /package/dist/{chunk-BLT5ZBVL.js.map → chunk-RRX6ZTNX.js.map} +0 -0
  728. /package/dist/{chunk-7RZ4WOQW.js.map → chunk-RRZBATXK.js.map} +0 -0
  729. /package/dist/{chunk-7JWXLDRH.js.map → chunk-SAHQLXNN.js.map} +0 -0
  730. /package/dist/{chunk-LUMF63BM.js.map → chunk-SFAP5EH5.js.map} +0 -0
  731. /package/dist/{chunk-EGRFMPGD.js.map → chunk-SHDIZSN5.js.map} +0 -0
  732. /package/dist/{chunk-GJQYM3PM.js.map → chunk-SHQWIDD5.js.map} +0 -0
  733. /package/dist/{chunk-FCOEJCUP.js.map → chunk-TFO6GBW7.js.map} +0 -0
  734. /package/dist/{chunk-2ZDTGI5V.js.map → chunk-THZ2NAA4.js.map} +0 -0
  735. /package/dist/{chunk-VJFH2AXT.js.map → chunk-TP4N3X2Q.js.map} +0 -0
  736. /package/dist/{chunk-B7BZAIHL.js.map → chunk-TPIBJP4S.js.map} +0 -0
  737. /package/dist/{chunk-Q4NOI2CR.js.map → chunk-TVO5STZB.js.map} +0 -0
  738. /package/dist/{chunk-JB7JE4QZ.js.map → chunk-TZ4SFX3M.js.map} +0 -0
  739. /package/dist/{chunk-HEK4LQT6.js.map → chunk-UB76PBDF.js.map} +0 -0
  740. /package/dist/{chunk-NFAKRI4S.js.map → chunk-UEIVXFUC.js.map} +0 -0
  741. /package/dist/{chunk-DX527XPL.js.map → chunk-UOPQOBQZ.js.map} +0 -0
  742. /package/dist/{chunk-X24P3ZYW.js.map → chunk-V5P5Q6HM.js.map} +0 -0
  743. /package/dist/{chunk-7DBFEZRC.js.map → chunk-VIK3HAUQ.js.map} +0 -0
  744. /package/dist/{chunk-74EZ565M.js.map → chunk-VPHOSIPB.js.map} +0 -0
  745. /package/dist/{chunk-SX3V2DLV.js.map → chunk-VWBWKLXX.js.map} +0 -0
  746. /package/dist/{chunk-VEFDL77X.js.map → chunk-VWGR5XUP.js.map} +0 -0
  747. /package/dist/{chunk-SEH7KOVG.js.map → chunk-VXTYVJDK.js.map} +0 -0
  748. /package/dist/{chunk-QYNCPS5W.js.map → chunk-WBKWIFXA.js.map} +0 -0
  749. /package/dist/{chunk-YFHIESMD.js.map → chunk-WPZT2JD4.js.map} +0 -0
  750. /package/dist/{chunk-GSFNH4C5.js.map → chunk-WROCSDVL.js.map} +0 -0
  751. /package/dist/{chunk-QZBUGUOY.js.map → chunk-XEE7PLDR.js.map} +0 -0
  752. /package/dist/{chunk-Z4GWXTZV.js.map → chunk-XFU2S6XT.js.map} +0 -0
  753. /package/dist/{chunk-RQDN4BN5.js.map → chunk-XLJJ2ZAP.js.map} +0 -0
  754. /package/dist/{chunk-ACDYA5WC.js.map → chunk-XZTOIEKI.js.map} +0 -0
  755. /package/dist/{chunk-LKVIZNUM.js.map → chunk-Y46RBFBV.js.map} +0 -0
  756. /package/dist/{chunk-WBVHRLIS.js.map → chunk-YCCKY5VW.js.map} +0 -0
  757. /package/dist/{chunk-SKZHOWTS.js.map → chunk-YDI6IJ6F.js.map} +0 -0
  758. /package/dist/{chunk-V3SBJ3PB.js.map → chunk-Z5ABJLTM.js.map} +0 -0
  759. /package/dist/{chunk-KQ74QU55.js.map → chunk-Z6UEOSL7.js.map} +0 -0
  760. /package/dist/{chunk-G5ZVD5IJ.js.map → chunk-ZDWU52DJ.js.map} +0 -0
  761. /package/dist/{chunk-2EKALM6P.js.map → chunk-ZFPJBKVZ.js.map} +0 -0
  762. /package/dist/{chunk-FP4R47TM.js.map → chunk-ZGHIHEND.js.map} +0 -0
  763. /package/dist/{chunk-F2DOTCF3.js.map → chunk-ZKFYBC6G.js.map} +0 -0
  764. /package/dist/{chunk-4MGFUPQT.js.map → chunk-ZOUWHGV3.js.map} +0 -0
  765. /package/dist/{chunk-4WK2RTVY.js.map → chunk-ZXLIWOXC.js.map} +0 -0
  766. /package/dist/{chunk-UMDXGIRZ.js.map → chunk-ZZOOSKSV.js.map} +0 -0
  767. /package/dist/native/chunks/{chunk-EKKNUEA6.js.map → chunk-OGWPPQL4.js.map} +0 -0
  768. /package/dist/native/chunks/{chunk-UKCCYP52.js.map → chunk-RJVM5YDE.js.map} +0 -0
@@ -6,8 +6,17 @@ import MuiSelect from '@mui/material/Select/index.js';
6
6
  import { alpha, type CSSObject, keyframes, styled, type Theme } from '@mui/material/styles/index.js';
7
7
  import React from 'react';
8
8
 
9
+ import {
10
+ SELECT_BORDER,
11
+ SELECT_GLASS,
12
+ SELECT_GLOW,
13
+ SELECT_GRADIENT,
14
+ SELECT_PULSE,
15
+ selectInputSize,
16
+ } from './Select.metrics';
9
17
  import type { SelectProps } from './Select.types';
10
18
 
19
+ import { splitTestId } from '../../../platform/test-id';
11
20
  import { fieldEdge } from '../../../tokens/field-edge';
12
21
 
13
22
  // Define pulse animation
@@ -17,7 +26,7 @@ const pulseAnimation = keyframes`
17
26
  opacity: 1;
18
27
  }
19
28
  70% {
20
- box-shadow: 0 0 0 10px currentColor;
29
+ box-shadow: 0 0 0 ${SELECT_PULSE.spread}px currentColor;
21
30
  opacity: 0;
22
31
  }
23
32
  100% {
@@ -29,9 +38,9 @@ const pulseAnimation = keyframes`
29
38
  /** Glow ring on the outlined input, keyed off the `glow` prop. */
30
39
  const glowStyles = (theme: Theme): CSSObject => ({
31
40
  '& .MuiOutlinedInput-root': {
32
- boxShadow: `0 0 15px ${alpha(theme.palette.primary.main, 0.3)}`,
41
+ boxShadow: `0 0 ${SELECT_GLOW.rest.blur}px ${alpha(theme.palette.primary.main, SELECT_GLOW.rest.alpha)}`,
33
42
  '&.Mui-focused': {
34
- boxShadow: `0 0 20px ${alpha(theme.palette.primary.main, 0.5)}`,
43
+ boxShadow: `0 0 ${SELECT_GLOW.focused.blur}px ${alpha(theme.palette.primary.main, SELECT_GLOW.focused.alpha)}`,
35
44
  },
36
45
  },
37
46
  });
@@ -44,12 +53,12 @@ const pulseStyles = (theme: Theme): CSSObject => ({
44
53
  top: '50%',
45
54
  left: '0',
46
55
  right: '0',
47
- height: '56px',
56
+ height: `${SELECT_PULSE.height}px`,
48
57
  transform: 'translateY(-50%)',
49
- borderRadius: theme.spacing(0.5),
58
+ borderRadius: theme.spacing(SELECT_PULSE.radiusUnits),
50
59
  backgroundColor: theme.palette.primary.main,
51
- opacity: 0.3,
52
- animation: `${pulseAnimation} 2s infinite`,
60
+ opacity: SELECT_PULSE.opacity,
61
+ animation: `${pulseAnimation} ${SELECT_PULSE.ms / 1000}s infinite`,
53
62
  pointerEvents: 'none',
54
63
  zIndex: -1,
55
64
  },
@@ -57,25 +66,28 @@ const pulseStyles = (theme: Theme): CSSObject => ({
57
66
 
58
67
  /** `glass` variant: translucent, blurred background. */
59
68
  const glassVariant = (theme: Theme): CSSObject => ({
60
- backgroundColor: alpha(theme.palette.background.paper, 0.1),
61
- backdropFilter: 'blur(20px)',
62
- border: `1px solid ${fieldEdge(theme)}`,
69
+ backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.rest),
70
+ backdropFilter: `blur(${SELECT_GLASS.blur}px)`,
71
+ border: `${SELECT_BORDER.rest}px solid ${fieldEdge(theme)}`,
63
72
  '& fieldset': { border: 'none' },
64
73
  '&:hover': {
65
- backgroundColor: alpha(theme.palette.background.paper, 0.15),
66
- borderColor: alpha(theme.palette.primary.main, 0.3),
74
+ backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.hover),
75
+ borderColor: alpha(theme.palette.primary.main, SELECT_GLASS.hoverBorderAlpha),
67
76
  },
68
77
  '&.Mui-focused': {
69
- backgroundColor: alpha(theme.palette.background.paper, 0.2),
78
+ backgroundColor: alpha(theme.palette.background.paper, SELECT_GLASS.background.focused),
70
79
  borderColor: theme.palette.primary.main,
71
- boxShadow: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.1)}`,
80
+ boxShadow: `0 0 0 ${SELECT_GLASS.focusRing.width}px ${alpha(theme.palette.primary.main, SELECT_GLASS.focusRing.alpha)}`,
72
81
  },
73
82
  });
74
83
 
75
84
  /** `gradient` variant: gradient fill with a masked gradient border. */
85
+ const gradientFill = (theme: Theme, strength: number): string =>
86
+ `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${alpha(theme.palette.primary.main, strength)}, ${alpha(theme.palette.secondary.main, strength)})`;
87
+
76
88
  const gradientVariant = (theme: Theme): CSSObject => ({
77
- background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.1)}, ${alpha(theme.palette.secondary.main, 0.1)})`,
78
- border: `2px solid transparent`,
89
+ background: gradientFill(theme, SELECT_GRADIENT.fill.rest),
90
+ border: `${SELECT_GRADIENT.borderWidth}px solid transparent`,
79
91
  backgroundOrigin: 'border-box',
80
92
  backgroundClip: 'padding-box, border-box',
81
93
  position: 'relative',
@@ -88,19 +100,19 @@ const gradientVariant = (theme: Theme): CSSObject => ({
88
100
  right: 0,
89
101
  bottom: 0,
90
102
  borderRadius: 'inherit',
91
- background: `linear-gradient(135deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
103
+ background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
92
104
  mask: 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)',
93
105
  maskComposite: 'exclude',
94
- padding: '2px',
106
+ padding: `${SELECT_GRADIENT.borderWidth}px`,
95
107
  zIndex: -1,
96
108
  },
97
109
  '&:hover': {
98
- background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.15)}, ${alpha(theme.palette.secondary.main, 0.15)})`,
110
+ background: gradientFill(theme, SELECT_GRADIENT.fill.hover),
99
111
  },
100
112
  '&.Mui-focused': {
101
- background: `linear-gradient(135deg, ${alpha(theme.palette.primary.main, 0.2)}, ${alpha(theme.palette.secondary.main, 0.2)})`,
113
+ background: gradientFill(theme, SELECT_GRADIENT.fill.focused),
102
114
  '&::before': {
103
- background: `linear-gradient(135deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,
115
+ background: `linear-gradient(${SELECT_GRADIENT.angleDeg}deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,
104
116
  },
105
117
  },
106
118
  });
@@ -109,7 +121,7 @@ const gradientVariant = (theme: Theme): CSSObject => ({
109
121
  const defaultVariant = (theme: Theme): CSSObject => ({
110
122
  '& fieldset': { borderColor: fieldEdge(theme) },
111
123
  '&:hover fieldset': { borderColor: theme.palette.primary.main },
112
- '&.Mui-focused fieldset': { borderColor: theme.palette.primary.main, borderWidth: 2 },
124
+ '&.Mui-focused fieldset': { borderColor: theme.palette.primary.main, borderWidth: SELECT_BORDER.focused },
113
125
  '&.Mui-error fieldset': { borderColor: theme.palette.error.main },
114
126
  });
115
127
 
@@ -177,7 +189,7 @@ function renderMenuItems(
177
189
  */
178
190
  const formControlSize = (size: SelectProps['size']): 'small' | 'medium' | undefined => {
179
191
  if (size === undefined) return undefined;
180
- return size === 'sm' ? 'small' : 'medium';
192
+ return selectInputSize(size) === 'sm' ? 'small' : 'medium';
181
193
  };
182
194
 
183
195
  export const Select = React.forwardRef<HTMLDivElement, SelectProps>(
@@ -196,13 +208,13 @@ export const Select = React.forwardRef<HTMLDivElement, SelectProps>(
196
208
  placeholder,
197
209
  glow,
198
210
  pulse,
199
- 'data-testid': dataTestId,
200
211
  value,
201
212
  'aria-label': ariaLabel,
202
- ...props
213
+ ...rest
203
214
  },
204
215
  ref,
205
216
  ) => {
217
+ const { testId: dataTestId, rest: props } = splitTestId(rest);
206
218
  const labelId = React.useId();
207
219
  const helperTextId = React.useId();
208
220
  const selectId = React.useId();
@@ -0,0 +1,30 @@
1
+ import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+
3
+ import type { SelectBaseProps, SelectOption, SelectValue } from './Select.base';
4
+
5
+ export type { SelectBaseProps, SelectOption, SelectValue, SelectVariant } from './Select.base';
6
+
7
+ /**
8
+ * The change a native `Select` reports.
9
+ *
10
+ * Shaped as `{ target: { value } }` on purpose: that is what MUI's
11
+ * `SelectChangeEvent` gives the 40-odd `onChange={(e) => set(e.target.value)}`
12
+ * handlers in the origin apps, and a screen shared between the renderers
13
+ * should not have to read the value out of two different places. The chosen
14
+ * option arrives as the second argument, where MUI passes the menu item.
15
+ */
16
+ export interface SelectChangeEvent {
17
+ target: { value: SelectValue; name?: string };
18
+ }
19
+
20
+ /** The native `Select`: the shared contract, plus a `View`'s own props. */
21
+ export type SelectProps = SelectBaseProps &
22
+ Omit<ViewProps, keyof SelectBaseProps | 'style'> & {
23
+ value?: SelectValue;
24
+ defaultValue?: SelectValue;
25
+ onChange?: (event: SelectChangeEvent, option: SelectOption) => void;
26
+ /** Fired when the option list opens and closes, as MUI's `Select` does. */
27
+ onOpen?: () => void;
28
+ onClose?: () => void;
29
+ style?: StyleProp<ViewStyle>;
30
+ };
@@ -1,58 +1,21 @@
1
- import type { SizeValue } from '../../../tokens/scales';
2
1
  import type { SelectProps as MuiSelectProps } from '@mui/material/Select/index.js';
3
2
 
4
- export type SelectVariant = 'default' | 'glass' | 'gradient';
3
+ import type { SelectBaseProps } from './Select.base';
5
4
 
6
- export interface SelectOption {
7
- value: string | number;
8
- label: string;
9
- disabled?: boolean;
10
- }
5
+ export type { SelectBaseProps, SelectOption, SelectValue, SelectVariant } from './Select.base';
11
6
 
12
- // `size` is omitted alongside `variant`: MUI declares it in its own words
13
- // (`small | medium`), and this component speaks the house scale.
14
- export interface SelectProps extends Omit<MuiSelectProps, 'variant' | 'size'> {
15
- /**
16
- * Visual variant of the select component
17
- * @default 'default'
18
- */
19
- variant?: SelectVariant;
20
- /**
21
- * Array of options to display in the select
22
- */
23
- options: SelectOption[];
24
- /**
25
- * Label for the select field
26
- */
27
- label?: string;
28
- /**
29
- * Helper text to display below the select
30
- */
31
- helperText?: string;
32
- /**
33
- * Whether the select should take full width
34
- * @default true
35
- */
36
- fullWidth?: boolean;
37
- /**
38
- * Size of the select component
39
- * @default 'medium'
40
- */
41
- size?: SizeValue;
42
- /**
43
- * Placeholder text when no option is selected
44
- */
45
- placeholder?: string;
46
- /**
47
- * Whether to show a glow effect
48
- * @default false
49
- */
50
- glow?: boolean;
51
- /**
52
- * Whether to show a pulse animation
53
- * @default false
54
- */
55
- pulse?: boolean;
7
+ /**
8
+ * The web `Select`: the shared contract, plus everything MUI's `Select`
9
+ * accepts that the contract does not already name — `value`, `onChange`,
10
+ * `MenuProps`, `renderValue`.
11
+ *
12
+ * `variant` and `size` are omitted from MUI's half alongside the rest of the
13
+ * contract: MUI declares both in its own words (`small | medium`), and this
14
+ * component speaks the house scale.
15
+ */
16
+ export interface SelectProps
17
+ extends SelectBaseProps,
18
+ Omit<MuiSelectProps, 'variant' | 'size' | keyof SelectBaseProps> {
56
19
  /**
57
20
  * Test ID for testing purposes
58
21
  */
@@ -0,0 +1,9 @@
1
+ export { Select } from './Select.native';
2
+ export type {
3
+ SelectBaseProps,
4
+ SelectChangeEvent,
5
+ SelectOption,
6
+ SelectProps,
7
+ SelectValue,
8
+ SelectVariant,
9
+ } from './Select.types.native';
@@ -1,2 +1,8 @@
1
1
  export { Select } from './Select';
2
- export type { SelectOption, SelectProps, SelectVariant } from './Select.types';
2
+ export type {
3
+ SelectBaseProps,
4
+ SelectOption,
5
+ SelectProps,
6
+ SelectValue,
7
+ SelectVariant,
8
+ } from './Select.types';
@@ -0,0 +1,12 @@
1
+ # Switch on React Native
2
+
3
+ Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
4
+
5
+ - The control is drawn here rather than handed to React Native's own `Switch`, which is the platform control at the platform's size: no size scale, no track geometry, no thumb radius per look, no room for an icon or a word inside the track. What that costs is the platform's own switch on a device — this one is a pressable carrying `role="checkbox"` and `aria-checked`, which is what the web's hidden `<input type="checkbox">` announces, but a `role="switch"` would announce better where nothing needs `getByRole('checkbox')` to find it.
6
+ - Hover has no touch equivalent, so the thumb does not lift or take its halo, and `ripple` — a wash that expands from the thumb under the pointer on the web — is not drawn at all.
7
+ - `glow` paints its halo and inner wash as a static shadow rather than breathing every two seconds, and `gradient` paints the gradient's first stop flat (`light` checked, `alpha(light, 0.3)` at rest): React Native core has no gradient fill, no keyframes on a shadow and no shimmer sweep.
8
+ - `glass` washes the track and the thumb at MUI's alphas without the 20px and 10px backdrop blurs — React Native has no backdrop filter.
9
+ - `loading` turns the platform's `ActivityIndicator` inside the thumb at MUI's 0.6 of the thumb's size, where the web draws its own 2px ring with one transparent quarter.
10
+ - An `onIcon` or `offIcon` is rendered as given, centred in its box. The web sets `color` and `fontSize` on the wrapper and an MUI glyph inherits both; React Native has no inheritance, so pass an `<Icon size color>` that is already the size and colour you want.
11
+ - The keyboard reaches the control only through react-native-web: `Enter` presses it (react-native-web's `Pressable` answers it), the space bar toggles it through a DOM key handler, and neither exists on a device.
12
+ - `checked`, the label, the description and the helper text are set in MUI's own numbers (`body2` at 14px, `caption` at 12px, the 300ms `cubic-bezier(0.4, 0, 0.2, 1)`); a host that re-themes MUI's typography or its elevations moves the web only.
@@ -0,0 +1,136 @@
1
+ import type { ReactNode } from 'react';
2
+
3
+ import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
4
+
5
+ /**
6
+ * THE CONTRACT BOTH RENDERERS HONOUR — and nothing else.
7
+ *
8
+ * No MUI and no react-native here: this file is in BOTH declaration outputs,
9
+ * and a native consumer has no `@mui/material` to resolve a type import
10
+ * against. See `Button.base.ts`.
11
+ */
12
+ export type SwitchVariant = 'default' | 'ios' | 'android' | 'label' | 'material';
13
+ export type SwitchLabelPosition = 'start' | 'end' | 'top' | 'bottom';
14
+
15
+ /**
16
+ * The contract both renderers honour.
17
+ *
18
+ * `checked`, `defaultChecked` and `onChange` are NOT here: MUI types the
19
+ * change as a DOM `ChangeEvent` and the native side synthesises the
20
+ * `{ target: { checked } }` shape those handlers already read.
21
+ */
22
+ export interface SwitchBaseProps {
23
+ /**
24
+ * The variant of the switch
25
+ */
26
+ variant?: SwitchVariant;
27
+
28
+ /**
29
+ * The color theme of the switch
30
+ */
31
+ color?: ColorValue;
32
+
33
+ /**
34
+ * The size of the switch
35
+ */
36
+ size?: SizeValue;
37
+
38
+ /**
39
+ * Label text for the switch
40
+ */
41
+ label?: string;
42
+
43
+ /**
44
+ * Description text below the label
45
+ */
46
+ description?: string;
47
+
48
+ /**
49
+ * Whether the switch should have a glow effect
50
+ */
51
+ glow?: boolean;
52
+
53
+ /**
54
+ * Whether the switch should have glass morphism effect
55
+ */
56
+ glass?: boolean;
57
+
58
+ /**
59
+ * Whether the switch should have gradient effects
60
+ */
61
+ gradient?: boolean;
62
+
63
+ /**
64
+ * Position of the label relative to the switch
65
+ */
66
+ labelPosition?: SwitchLabelPosition;
67
+
68
+ /**
69
+ * Icon to show when switch is on
70
+ */
71
+ onIcon?: ReactNode;
72
+
73
+ /**
74
+ * Icon to show when switch is off
75
+ */
76
+ offIcon?: ReactNode;
77
+
78
+ /**
79
+ * Text to show when switch is on
80
+ */
81
+ onText?: string;
82
+
83
+ /**
84
+ * Text to show when switch is off
85
+ */
86
+ offText?: string;
87
+
88
+ /**
89
+ * Whether the switch has an error state
90
+ */
91
+ error?: boolean;
92
+
93
+ /**
94
+ * Help text to display
95
+ */
96
+ helperText?: string;
97
+
98
+ /**
99
+ * Custom width for the switch track
100
+ */
101
+ trackWidth?: number;
102
+
103
+ /**
104
+ * Custom height for the switch track
105
+ */
106
+ trackHeight?: number;
107
+
108
+ /**
109
+ * Whether to enable animations
110
+ */
111
+ animated?: boolean;
112
+
113
+ /**
114
+ * Whether the switch is in loading state
115
+ */
116
+ loading?: boolean;
117
+
118
+ /**
119
+ * Whether to show ripple effect
120
+ */
121
+ ripple?: boolean;
122
+
123
+ /**
124
+ * Whether the switch should have pulse animation
125
+ */
126
+ pulse?: boolean;
127
+
128
+ disabled?: boolean;
129
+
130
+ testID?: string;
131
+
132
+ /**
133
+ * Custom test ID for testing
134
+ */
135
+ dataTestId?: string;
136
+ }
@@ -0,0 +1,61 @@
1
+ import type { SwitchBaseProps } from './Switch.base';
2
+ import { withDefaults } from '../../../utils/withDefaults';
3
+
4
+ type SwitchDefaultedKeys =
5
+ | 'variant'
6
+ | 'color'
7
+ | 'size'
8
+ | 'glow'
9
+ | 'glass'
10
+ | 'gradient'
11
+ | 'labelPosition'
12
+ | 'error'
13
+ | 'animated'
14
+ | 'loading'
15
+ | 'ripple'
16
+ | 'pulse'
17
+ | 'disabled';
18
+
19
+ export type ResolvedSwitchProps<P extends SwitchBaseProps = SwitchBaseProps> = P &
20
+ Required<Pick<SwitchBaseProps, SwitchDefaultedKeys>>;
21
+
22
+ /** `Switch.tsx`'s own `DEFAULTS`, plus the `disabled` MUI would have defaulted. */
23
+ const SWITCH_DEFAULTS: Required<Pick<SwitchBaseProps, SwitchDefaultedKeys>> = {
24
+ variant: 'default',
25
+ color: 'primary',
26
+ size: 'md',
27
+ glow: false,
28
+ glass: false,
29
+ gradient: false,
30
+ labelPosition: 'end',
31
+ error: false,
32
+ animated: true,
33
+ loading: false,
34
+ ripple: false,
35
+ pulse: false,
36
+ disabled: false,
37
+ };
38
+
39
+ export const resolveSwitchProps = <P extends SwitchBaseProps>(props: P): ResolvedSwitchProps<P> =>
40
+ withDefaults(props, SWITCH_DEFAULTS as Partial<P>) as ResolvedSwitchProps<P>;
41
+
42
+ /**
43
+ * Every prop the switch consumes itself.
44
+ *
45
+ * Listed so what is left over — `aria-label`, `aria-describedby`, an `id` — can
46
+ * be spread onto the control without the component's own props riding along.
47
+ * react-native-web would drop them and React Native ignore them, but a prop
48
+ * that reaches an element it means nothing to is a prop nobody can explain.
49
+ */
50
+ export const SWITCH_BASE_KEYS = [
51
+ 'variant', 'color', 'size', 'label', 'description', 'glow', 'glass', 'gradient',
52
+ 'labelPosition', 'onIcon', 'offIcon', 'onText', 'offText', 'error', 'helperText',
53
+ 'trackWidth', 'trackHeight', 'animated', 'loading', 'ripple', 'pulse', 'disabled',
54
+ 'testID', 'dataTestId', 'data-testid',
55
+ ] as const satisfies ReadonlyArray<keyof SwitchBaseProps | 'data-testid'>;
56
+
57
+ /** `props` without any of them, for spreading onto the control. */
58
+ export function withoutSwitchProps(props: object): Record<string, unknown> {
59
+ const own = new Set<string>(SWITCH_BASE_KEYS);
60
+ return Object.fromEntries(Object.entries(props).filter(([key]) => !own.has(key)));
61
+ }
@@ -0,0 +1,187 @@
1
+ import type { TextStyle, ViewStyle } from 'react-native';
2
+
3
+ import type { SwitchBaseProps } from './Switch.base';
4
+ import {
5
+ DISABLED,
6
+ IOS_THUMB_SHADOW,
7
+ MUI_SHADOWS,
8
+ NEUTRAL_CONTRAST,
9
+ NEUTRAL_FALLBACK,
10
+ NEUTRAL_GREY,
11
+ SWITCH_BLACK,
12
+ SWITCH_DESCRIPTION,
13
+ SWITCH_GLASS,
14
+ SWITCH_GLOW,
15
+ SWITCH_GRADIENT,
16
+ SWITCH_HELPER,
17
+ SWITCH_LABEL,
18
+ THUMB_ELEVATION,
19
+ TRACK_RADIUS,
20
+ thumbRadius,
21
+ trackColor,
22
+ type SwitchGeometry,
23
+ type SwitchLook,
24
+ } from './Switch.metrics';
25
+ import { alpha } from '../../../tokens/color';
26
+ import type { UiTheme } from '../../../tokens/theme';
27
+ import type { ColorValue } from '../../../tokens/vocabulary';
28
+
29
+ /**
30
+ * WHAT A NATIVE `Switch` PAINTS.
31
+ *
32
+ * The web hands MUI's `Switch` a style object and MUI draws the track and the
33
+ * thumb; React Native has no such control at this size, so the native half
34
+ * draws both itself — from this file, off the same table.
35
+ */
36
+ export interface SwitchPalette {
37
+ main: string;
38
+ dark: string;
39
+ light: string;
40
+ contrastText: string;
41
+ }
42
+
43
+ export interface SwitchState {
44
+ checked: boolean;
45
+ disabled: boolean;
46
+ }
47
+
48
+ /** The web's `getColorFromTheme`: `danger` is the error palette, `neutral` three greys. */
49
+ export function switchPalette(theme: UiTheme, color: ColorValue): SwitchPalette {
50
+ if (color === 'neutral') {
51
+ return {
52
+ main: theme.palette.grey[NEUTRAL_GREY.main] || NEUTRAL_FALLBACK.main,
53
+ dark: theme.palette.grey[NEUTRAL_GREY.dark] || NEUTRAL_FALLBACK.dark,
54
+ light: theme.palette.grey[NEUTRAL_GREY.light] || NEUTRAL_FALLBACK.light,
55
+ contrastText: NEUTRAL_CONTRAST,
56
+ };
57
+ }
58
+ const palette = theme.palette[color];
59
+ return {
60
+ main: palette.main,
61
+ dark: palette.dark,
62
+ light: palette.light,
63
+ contrastText: palette.contrastText || NEUTRAL_CONTRAST,
64
+ };
65
+ }
66
+
67
+ /** Which of the switch's own flags change how it paints. */
68
+ export type SwitchFlagKeys = 'glow' | 'glass' | 'gradient' | 'loading' | 'pulse';
69
+ export type SwitchPaint = Pick<SwitchBaseProps, SwitchFlagKeys>;
70
+
71
+ /**
72
+ * The bar behind the thumb.
73
+ *
74
+ * `gradient` paints the gradient's FIRST stop flat — React Native core has no
75
+ * gradient fill — and `glass` its paper wash without the blur.
76
+ */
77
+ export function trackStyle(
78
+ theme: UiTheme,
79
+ paint: SwitchPaint,
80
+ palette: SwitchPalette,
81
+ geometry: SwitchGeometry,
82
+ look: SwitchLook,
83
+ state: SwitchState,
84
+ ): ViewStyle {
85
+ const base: ViewStyle = {
86
+ ...StyleSheetAbsoluteFill,
87
+ borderRadius: TRACK_RADIUS[look](geometry.height),
88
+ backgroundColor: state.checked
89
+ ? palette.main
90
+ : trackColor({ black: SWITCH_BLACK, disabled: theme.palette.action.disabled }, look),
91
+ opacity: disabledTrackOpacity(state),
92
+ };
93
+
94
+ if (paint.glass) {
95
+ return {
96
+ ...base,
97
+ backgroundColor: alpha(theme.palette.background.paper, SWITCH_GLASS.trackAlpha),
98
+ borderWidth: 1,
99
+ borderColor: alpha(theme.palette.divider, SWITCH_GLASS.borderAlpha),
100
+ };
101
+ }
102
+ if (paint.gradient) {
103
+ return { ...base, backgroundColor: gradientFirstStop(palette, state.checked) };
104
+ }
105
+ if (paint.glow && state.checked) {
106
+ return {
107
+ ...base,
108
+ boxShadow: `0 0 ${SWITCH_GLOW.blur}px ${alpha(palette.main, SWITCH_GLOW.alpha)}, inset 0 0 ${SWITCH_GLOW.insetBlur}px ${alpha(palette.main, SWITCH_GLOW.insetAlpha)}`,
109
+ };
110
+ }
111
+ return base;
112
+ }
113
+
114
+ /** The web's two gradients, at the stop a flat fill can show. */
115
+ function gradientFirstStop(palette: SwitchPalette, checked: boolean): string {
116
+ if (checked) return palette.light || palette.main;
117
+ return alpha(palette.light || palette.main, SWITCH_GRADIENT.resting.lightAlpha);
118
+ }
119
+
120
+ const disabledTrackOpacity = (state: SwitchState): number => {
121
+ if (!state.disabled) return 1;
122
+ return state.checked ? DISABLED.checkedTrackOpacity : DISABLED.trackOpacity;
123
+ };
124
+
125
+ /** React Native has no `StyleSheet.absoluteFillObject` constant worth importing for four keys. */
126
+ const StyleSheetAbsoluteFill = { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 } as const;
127
+
128
+ /** The knob: white, round for iOS and the default, squarer for Android and Material. */
129
+ export function thumbStyle(
130
+ theme: UiTheme,
131
+ paint: SwitchPaint,
132
+ geometry: SwitchGeometry,
133
+ look: SwitchLook,
134
+ state: SwitchState,
135
+ ): ViewStyle {
136
+ const base: ViewStyle = {
137
+ position: 'absolute',
138
+ width: geometry.thumbSize,
139
+ height: geometry.thumbSize,
140
+ borderRadius: thumbRadius(look, geometry.thumbSize),
141
+ backgroundColor: state.disabled ? theme.palette.grey[DISABLED.thumbGrey] : '#fff',
142
+ boxShadow: look === 'ios' ? IOS_THUMB_SHADOW : (MUI_SHADOWS[THUMB_ELEVATION[look]] ?? 'none'),
143
+ alignItems: 'center',
144
+ justifyContent: 'center',
145
+ };
146
+
147
+ if (!paint.glass) return base;
148
+ return {
149
+ ...base,
150
+ backgroundColor: alpha(theme.palette.background.paper, SWITCH_GLASS.thumbAlpha),
151
+ borderWidth: 1,
152
+ borderColor: alpha(theme.palette.divider, SWITCH_GLASS.borderAlpha),
153
+ };
154
+ }
155
+
156
+ /** MUI's `body2` at 500, in the error hue when the row is in error. */
157
+ export function labelTextStyle(theme: UiTheme, error: boolean): TextStyle {
158
+ return {
159
+ color: error ? theme.palette.danger.main : theme.palette.text.primary,
160
+ fontFamily: theme.typography.fontFamily,
161
+ fontSize: SWITCH_LABEL.fontSize,
162
+ lineHeight: SWITCH_LABEL.fontSize * SWITCH_LABEL.lineHeight,
163
+ fontWeight: String(SWITCH_LABEL.fontWeight) as TextStyle['fontWeight'],
164
+ };
165
+ }
166
+
167
+ /** MUI's `caption`, 4px under the label. */
168
+ export function descriptionTextStyle(theme: UiTheme, error: boolean): TextStyle {
169
+ return {
170
+ color: error ? theme.palette.danger.main : theme.palette.text.secondary,
171
+ fontFamily: theme.typography.fontFamily,
172
+ fontSize: SWITCH_DESCRIPTION.fontSize,
173
+ lineHeight: SWITCH_DESCRIPTION.fontSize * SWITCH_DESCRIPTION.lineHeight,
174
+ marginTop: theme.spacing(SWITCH_DESCRIPTION.marginTopUnits),
175
+ };
176
+ }
177
+
178
+ /** `FormHelperText`, 8px under the whole control. */
179
+ export function helperTextStyle(theme: UiTheme, error: boolean): TextStyle {
180
+ return {
181
+ color: error ? theme.palette.danger.main : theme.palette.text.secondary,
182
+ fontFamily: theme.typography.fontFamily,
183
+ fontSize: SWITCH_HELPER.fontSize,
184
+ lineHeight: SWITCH_HELPER.fontSize * SWITCH_HELPER.lineHeight,
185
+ marginTop: theme.spacing(SWITCH_HELPER.marginTopUnits),
186
+ };
187
+ }