@12-apps/ui 6.30.0 → 6.32.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 (914) hide show
  1. package/components-guidelines.md +62 -0
  2. package/dist/_internal/components/data-display/Alert/Alert.js +7 -5
  3. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +5 -3
  4. package/dist/_internal/components/data-display/Alert/Alert.styles.js +6 -4
  5. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  6. package/dist/_internal/components/data-display/Avatar/Avatar.js +9 -7
  7. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +7 -5
  8. package/dist/_internal/components/data-display/Badge/Badge.animations.js +5 -3
  9. package/dist/_internal/components/data-display/Badge/Badge.js +9 -7
  10. package/dist/_internal/components/data-display/Badge/Badge.metrics.js +5 -3
  11. package/dist/_internal/components/data-display/Badge/Badge.styles.js +6 -4
  12. package/dist/_internal/components/data-display/Badge/Badge.variants.js +5 -3
  13. package/dist/_internal/components/data-display/Badge/BadgeContent.js +7 -5
  14. package/dist/_internal/components/data-display/Banner/Banner.js +5 -3
  15. package/dist/_internal/components/data-display/Banner/Banner.styles.js +5 -3
  16. package/dist/_internal/components/data-display/CardKit/CardKebab.js +13 -7
  17. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +8 -6
  18. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +20 -14
  19. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +17 -11
  20. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +12 -6
  21. package/dist/_internal/components/data-display/Carousel/Carousel.js +15 -9
  22. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +11 -5
  23. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +11 -5
  24. package/dist/_internal/components/data-display/Chart/Chart.js +15 -9
  25. package/dist/_internal/components/data-display/Chart/SpecChart.js +18 -12
  26. package/dist/_internal/components/data-display/Chart/chart-context.js +12 -6
  27. package/dist/_internal/components/data-display/Chart/chart-internals.js +11 -5
  28. package/dist/_internal/components/data-display/Chart/chart-renderers.js +14 -8
  29. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  30. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  31. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +8 -6
  32. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +77 -73
  33. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +100 -96
  34. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +17 -11
  35. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +21 -15
  36. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +25 -21
  37. package/dist/_internal/components/data-display/DataViews/base-card.js +11 -9
  38. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +12 -10
  39. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +7 -5
  40. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +11 -9
  41. package/dist/_internal/components/data-display/DataViews/base-list-card.js +18 -16
  42. package/dist/_internal/components/data-display/DataViews/card-surface.js +5 -3
  43. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +8 -1
  44. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +24 -20
  45. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +8 -6
  46. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +14 -8
  47. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +8 -1
  48. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +18 -12
  49. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +8 -6
  50. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +15 -9
  51. package/dist/_internal/components/data-display/DataViews/data-views-export.js +15 -9
  52. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +34 -30
  53. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +23 -17
  54. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +13 -7
  55. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +72 -68
  56. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +8 -6
  57. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +44 -40
  58. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +25 -19
  59. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +29 -23
  60. package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +8 -1
  61. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +10 -3
  62. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +12 -5
  63. package/dist/_internal/components/data-display/DataViews/data-views-search.js +8 -1
  64. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +15 -9
  65. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +30 -24
  66. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +41 -37
  67. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +29 -23
  68. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +15 -9
  69. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  70. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +8 -6
  71. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +17 -11
  72. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  73. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +8 -6
  74. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  75. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +14 -7
  76. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +13 -6
  77. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +22 -16
  78. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  79. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  80. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  81. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +10 -3
  82. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +12 -5
  83. package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +8 -1
  84. package/dist/_internal/components/data-display/Progress/Progress.js +8 -6
  85. package/dist/_internal/components/data-display/Progress/Progress.metrics.js +6 -4
  86. package/dist/_internal/components/data-display/Progress/Progress.styles.js +7 -5
  87. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  88. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +10 -4
  89. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  90. package/dist/_internal/components/data-display/Sheet/Sheet.js +14 -8
  91. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +11 -5
  92. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  93. package/dist/_internal/components/data-display/index.js +75 -69
  94. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +2 -2
  95. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +15 -9
  96. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +2 -2
  97. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  98. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  99. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +16 -10
  100. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
  101. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  102. package/dist/_internal/components/feedback/index.js +31 -25
  103. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +11 -7
  104. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +8 -4
  105. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +6 -2
  106. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +6 -2
  107. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +5 -1
  108. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +9 -2
  109. package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +8 -1
  110. package/dist/_internal/components/form/Button/Button.js +12 -6
  111. package/dist/_internal/components/form/Button/Button.metrics.js +1 -3
  112. package/dist/_internal/components/form/Button/Button.styles.js +11 -5
  113. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +11 -7
  114. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +6 -2
  115. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +6 -2
  116. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +8 -4
  117. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +7 -3
  118. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +15 -11
  119. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +5 -1
  120. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +6 -2
  121. package/dist/_internal/components/form/CepField/CepField.js +11 -7
  122. package/dist/_internal/components/form/Checkbox/Checkbox.js +6 -4
  123. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +5 -3
  124. package/dist/_internal/components/form/Command/Command.js +12 -6
  125. package/dist/_internal/components/form/Command/Command.styles.js +11 -5
  126. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +5 -1
  127. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +10 -3
  128. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +13 -6
  129. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +9 -2
  130. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +10 -3
  131. package/dist/_internal/components/form/Input/Input.js +10 -6
  132. package/dist/_internal/components/form/Input/Input.metrics.js +3 -2
  133. package/dist/_internal/components/form/Input/Input.styles.js +10 -4
  134. package/dist/_internal/components/form/InputOTP/InputOTP.js +7 -3
  135. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +5 -1
  136. package/dist/_internal/components/form/Label/Label.js +12 -6
  137. package/dist/_internal/components/form/Label/Label.styles.js +11 -5
  138. package/dist/_internal/components/form/Menubar/Menubar.item.js +12 -6
  139. package/dist/_internal/components/form/Menubar/Menubar.js +15 -9
  140. package/dist/_internal/components/form/Menubar/Menubar.styles.js +11 -5
  141. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +13 -7
  142. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +5 -1
  143. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +8 -4
  144. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +5 -1
  145. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +6 -2
  146. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +4 -2
  147. package/dist/_internal/components/form/Select/Select.js +9 -5
  148. package/dist/_internal/components/form/Select/Select.metrics.js +3 -2
  149. package/dist/_internal/components/form/Switch/Switch.js +9 -7
  150. package/dist/_internal/components/form/Switch/Switch.parts.js +8 -6
  151. package/dist/_internal/components/form/Switch/Switch.styles.js +7 -5
  152. package/dist/_internal/components/form/Textarea/Textarea.js +5 -1
  153. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +16 -5
  154. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  155. package/dist/_internal/components/form/Toggle/Toggle.js +6 -2
  156. package/dist/_internal/components/form/Toggle/Toggle.styles.js +5 -1
  157. package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +9 -1
  158. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  159. package/dist/_internal/components/form/index.js +64 -60
  160. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +16 -12
  161. package/dist/_internal/components/form/total-form/Fields/CepField.js +12 -8
  162. package/dist/_internal/components/form/total-form/Fields/SelectField.js +10 -6
  163. package/dist/_internal/components/form/total-form/Fields/TextField.js +11 -7
  164. package/dist/_internal/components/form/total-form/Fields/ToggleField.js +10 -2
  165. package/dist/_internal/components/form/total-form/Fields/index.js +33 -28
  166. package/dist/_internal/components/form/total-form/SubmitButton.js +13 -7
  167. package/dist/_internal/components/index.js +190 -186
  168. package/dist/_internal/components/layout/Box/Box.js +13 -7
  169. package/dist/_internal/components/layout/Card/Card.js +2 -2
  170. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +8 -1
  171. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +3 -1
  172. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +8 -1
  173. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +9 -2
  174. package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +8 -1
  175. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +8 -1
  176. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +8 -1
  177. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +8 -1
  178. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  179. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +3 -3
  180. package/dist/_internal/components/layout/Stack/Stack.js +14 -8
  181. package/dist/_internal/components/layout/TableFilter/TableFilter.js +8 -1
  182. package/dist/_internal/components/layout/index.js +27 -20
  183. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +20 -14
  184. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +11 -5
  185. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  186. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
  187. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
  188. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  189. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
  190. package/dist/_internal/components/navigation/Pagination/Pagination.js +9 -2
  191. package/dist/_internal/components/navigation/Pagination/PaginationParts.js +8 -1
  192. package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
  193. package/dist/_internal/components/navigation/index.js +34 -28
  194. package/dist/_internal/components/typography/Heading/Heading.js +8 -6
  195. package/dist/_internal/components/typography/Heading/Heading.metrics.js +6 -4
  196. package/dist/_internal/components/typography/Heading/Heading.styles.js +7 -5
  197. package/dist/_internal/components/typography/Paragraph/Paragraph.js +6 -4
  198. package/dist/_internal/components/typography/Text/Text.js +7 -5
  199. package/dist/_internal/components/typography/Text/Text.metrics.js +6 -4
  200. package/dist/_internal/components/typography/index.js +11 -9
  201. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  202. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +3 -3
  203. package/dist/_internal/components/utility/InstallPrompt/usePwaInstall.js +2 -2
  204. package/dist/_internal/components/utility/index.js +6 -6
  205. package/dist/_internal/icons/Icon.js +14 -8
  206. package/dist/_internal/provider/UiProvider.js +12 -6
  207. package/dist/_internal/provider/mui-bridge.js +11 -5
  208. package/dist/_internal/provider/use-ui-theme.js +12 -6
  209. package/dist/_internal/social-login-button/social-login-button.js +20 -14
  210. package/dist/_internal/tokens/field-height.core.js +20 -0
  211. package/dist/_internal/tokens/field-height.core.js.map +1 -0
  212. package/dist/_internal/tokens/field-height.js +37 -0
  213. package/dist/_internal/tokens/field-height.js.map +1 -0
  214. package/dist/_internal/tokens/field-radius.core.js +8 -0
  215. package/dist/_internal/tokens/field-radius.core.js.map +1 -0
  216. package/dist/_internal/tokens/field-radius.js +18 -0
  217. package/dist/_internal/tokens/field-radius.js.map +1 -0
  218. package/dist/_internal/tokens/theme.js +5 -3
  219. package/dist/_internal/user-avatar/user-avatar.js +21 -15
  220. package/dist/charts.js +21 -15
  221. package/dist/chunk-26X4CZVR.js +7 -0
  222. package/dist/chunk-26X4CZVR.js.map +1 -0
  223. package/dist/{chunk-T2VO32Z2.js → chunk-2DJIS2WQ.js} +17 -4
  224. package/dist/chunk-2DJIS2WQ.js.map +1 -0
  225. package/dist/{chunk-FV36LFPX.js → chunk-2F4YEGYG.js} +6 -2
  226. package/dist/chunk-2F4YEGYG.js.map +1 -0
  227. package/dist/{chunk-3PUOLOEP.js → chunk-2SKNSQCP.js} +2 -2
  228. package/dist/{chunk-YRUCIKPO.js → chunk-2UYR2OOE.js} +4 -4
  229. package/dist/{chunk-J4W4TQPC.js → chunk-2W4GTZDP.js} +6 -6
  230. package/dist/{chunk-J3D34ZBL.js → chunk-2X5OQDPH.js} +10 -2
  231. package/dist/chunk-2X5OQDPH.js.map +1 -0
  232. package/dist/{chunk-HR7YTBR7.js → chunk-3AOOI2NR.js} +4 -4
  233. package/dist/{chunk-I3FXTIKA.js → chunk-3CN2GBIK.js} +3 -3
  234. package/dist/{chunk-V5IOLAIS.js → chunk-3DO5MFXA.js} +1 -1
  235. package/dist/chunk-3DO5MFXA.js.map +1 -0
  236. package/dist/{chunk-HZVFAGLZ.js → chunk-3E3JYKUK.js} +16 -4
  237. package/dist/chunk-3E3JYKUK.js.map +1 -0
  238. package/dist/{chunk-57W2C7HY.js → chunk-3NA7AO6H.js} +10 -10
  239. package/dist/{chunk-HZ6L7WXE.js → chunk-3SJZP7KH.js} +7 -7
  240. package/dist/{chunk-CASZGBCA.js → chunk-3Z23QTCP.js} +8 -8
  241. package/dist/{chunk-QGBMCB76.js → chunk-4BEQADWC.js} +2 -2
  242. package/dist/{chunk-JQL4GG5L.js → chunk-4D7YIU34.js} +7 -7
  243. package/dist/{chunk-DEE6IPGI.js → chunk-4PIKOJZ4.js} +10 -10
  244. package/dist/{chunk-6PKVHFCK.js → chunk-56S7A2XT.js} +8 -8
  245. package/dist/{chunk-554SVTCN.js → chunk-5BW7NCM5.js} +5 -5
  246. package/dist/{chunk-RVGG5YJY.js → chunk-5FA5S2YN.js} +2 -2
  247. package/dist/{chunk-S2GDYA6R.js → chunk-5GMHJ7Y5.js} +5 -5
  248. package/dist/{chunk-C5YBXQTK.js → chunk-5KZR3RXL.js} +3 -3
  249. package/dist/{chunk-K2EHH7TC.js → chunk-5NH24MF5.js} +8 -8
  250. package/dist/{chunk-J3ZP6EUS.js → chunk-5RHMLOIA.js} +2 -2
  251. package/dist/{chunk-DORPR2YP.js → chunk-5SBJO37T.js} +2 -2
  252. package/dist/{chunk-62NA6IF3.js → chunk-5U4SJ2DA.js} +5 -5
  253. package/dist/{chunk-6WIDZGXE.js → chunk-5UWSDTZV.js} +16 -7
  254. package/dist/chunk-5UWSDTZV.js.map +1 -0
  255. package/dist/{chunk-IABE56TG.js → chunk-5ZOJLYD2.js} +4 -4
  256. package/dist/{chunk-Q5NAZ7TW.js → chunk-62NFZR52.js} +4 -4
  257. package/dist/{chunk-W4SDVTZC.js → chunk-65JHGT5F.js} +2 -2
  258. package/dist/{chunk-ZUY65MFH.js → chunk-67N6TH6E.js} +6 -3
  259. package/dist/chunk-67N6TH6E.js.map +1 -0
  260. package/dist/{chunk-VXTYVJDK.js → chunk-6M33XQLZ.js} +2 -2
  261. package/dist/{chunk-HP2ODXNA.js → chunk-6M7CMILP.js} +2 -2
  262. package/dist/{chunk-BKAB4KZK.js → chunk-6MDBMCFK.js} +10 -7
  263. package/dist/chunk-6MDBMCFK.js.map +1 -0
  264. package/dist/{chunk-7IKWIWWV.js → chunk-6V7D6GRX.js} +6 -6
  265. package/dist/{chunk-DTKMBI7B.js → chunk-6YLAVHV4.js} +4 -4
  266. package/dist/{chunk-MSS6IU5X.js → chunk-6ZZNV2PA.js} +4 -4
  267. package/dist/{chunk-SLMA4UQS.js → chunk-7A3G4W52.js} +3 -3
  268. package/dist/{chunk-RXSGHPCR.js → chunk-7FOOLP5H.js} +4 -4
  269. package/dist/{chunk-57ZSQB5V.js → chunk-7FWXG2KF.js} +2 -2
  270. package/dist/{chunk-KFZT3PHA.js → chunk-7MM2I34E.js} +5 -5
  271. package/dist/{chunk-HLYPI5CO.js → chunk-7NFRTAEU.js} +2 -2
  272. package/dist/{chunk-NUB4T3RQ.js → chunk-7TSQNYQO.js} +2 -2
  273. package/dist/{chunk-R6SSXEK2.js → chunk-A2QZXV2K.js} +2 -2
  274. package/dist/{chunk-AVI3XHRQ.js → chunk-AIRWM7KK.js} +4 -4
  275. package/dist/{chunk-OD4Z5G6G.js → chunk-APT5L7V5.js} +2 -2
  276. package/dist/{chunk-2L2NWXWJ.js → chunk-AYRHW4DX.js} +2 -2
  277. package/dist/{chunk-7MR2JCJW.js → chunk-AZ2KKHID.js} +2 -2
  278. package/dist/{chunk-3MALHTZQ.js → chunk-AZ4LLAAJ.js} +3 -3
  279. package/dist/{chunk-HJOABXKN.js → chunk-AZUFGKMQ.js} +4 -4
  280. package/dist/{chunk-FLIMEQUA.js → chunk-B4BU5CS6.js} +8 -8
  281. package/dist/{chunk-A7LG3AXV.js → chunk-B64PPHUR.js} +34 -13
  282. package/dist/chunk-B64PPHUR.js.map +1 -0
  283. package/dist/{chunk-FGUESLDX.js → chunk-BIIAMH47.js} +9 -2
  284. package/dist/chunk-BIIAMH47.js.map +1 -0
  285. package/dist/{chunk-T5WNNEP5.js → chunk-BM4LH7VQ.js} +5 -5
  286. package/dist/{chunk-FGUK3D54.js → chunk-BM4ZPBBT.js} +3 -3
  287. package/dist/{chunk-URVNHKM2.js → chunk-BTIBFR5L.js} +6 -6
  288. package/dist/{chunk-WXD7MGBT.js → chunk-BTVIHTAL.js} +9 -2
  289. package/dist/chunk-BTVIHTAL.js.map +1 -0
  290. package/dist/{chunk-DUWF5LUK.js → chunk-BUXSHLQM.js} +5 -5
  291. package/dist/{chunk-XXDXW6TX.js → chunk-C5WSPGMP.js} +2 -2
  292. package/dist/{chunk-7OZBOS75.js → chunk-C6R4LVUX.js} +7 -7
  293. package/dist/{chunk-ZZOOSKSV.js → chunk-CDNJOA3N.js} +30 -9
  294. package/dist/chunk-CDNJOA3N.js.map +1 -0
  295. package/dist/chunk-CGO452DC.js +90 -0
  296. package/dist/chunk-CGO452DC.js.map +1 -0
  297. package/dist/{chunk-MGPA6KTM.js → chunk-CR4KC2K5.js} +2 -2
  298. package/dist/{chunk-ON2CMKTI.js → chunk-CZ5ZL63A.js} +2 -2
  299. package/dist/{chunk-YANLN6HP.js → chunk-D6HDJVQW.js} +5 -5
  300. package/dist/{chunk-JJ3VR7WX.js → chunk-DAQ2ZDU2.js} +2 -2
  301. package/dist/{chunk-VNGYJXAU.js → chunk-DDTPMZOB.js} +5 -5
  302. package/dist/{chunk-BEGWE5O4.js → chunk-DIWC6AQL.js} +7 -4
  303. package/dist/chunk-DIWC6AQL.js.map +1 -0
  304. package/dist/{chunk-WC5XYWTE.js → chunk-DO3UNZAU.js} +2 -2
  305. package/dist/{chunk-VEGT5PAD.js → chunk-DZXN3QCX.js} +15 -15
  306. package/dist/{chunk-B7NV6JFG.js → chunk-EAE5Z5HL.js} +2 -2
  307. package/dist/{chunk-UC6A6ASM.js → chunk-ECZXTIDR.js} +2 -2
  308. package/dist/{chunk-3P4THDBM.js → chunk-EIGELK2H.js} +4 -4
  309. package/dist/{chunk-4T6W43TO.js → chunk-EKSSKQUW.js} +6 -2
  310. package/dist/chunk-EKSSKQUW.js.map +1 -0
  311. package/dist/{chunk-RXVPUW7V.js → chunk-ENUWZ3HW.js} +2 -2
  312. package/dist/{chunk-XFUNJYFT.js → chunk-EPNUVSNK.js} +7 -7
  313. package/dist/{chunk-RBGOGTT2.js → chunk-FATRMNVN.js} +5 -5
  314. package/dist/{chunk-DBYFC6CF.js → chunk-FYFIND6O.js} +15 -4
  315. package/dist/chunk-FYFIND6O.js.map +1 -0
  316. package/dist/{chunk-SQV3HPTZ.js → chunk-G76H5PEM.js} +4 -4
  317. package/dist/chunk-GDN2LUTZ.js +39 -0
  318. package/dist/chunk-GDN2LUTZ.js.map +1 -0
  319. package/dist/{chunk-KT6HWAEN.js → chunk-GSWDQ3ZX.js} +4 -4
  320. package/dist/{chunk-VNEEXUWA.js → chunk-GT7C6TSM.js} +3 -3
  321. package/dist/{chunk-EUKYQXYU.js → chunk-GXEB6MJA.js} +2 -2
  322. package/dist/{chunk-ZYKDPX3W.js → chunk-H3TNIGMI.js} +2 -2
  323. package/dist/{chunk-AIBNBWQU.js → chunk-H4NWU2ZN.js} +2 -2
  324. package/dist/{chunk-YTYROOLY.js → chunk-H57ZS6W2.js} +3 -3
  325. package/dist/{chunk-VIK3HAUQ.js → chunk-HEVST4CS.js} +12 -2
  326. package/dist/chunk-HEVST4CS.js.map +1 -0
  327. package/dist/{chunk-ZU3SWR4I.js → chunk-HQZRWOSS.js} +2 -2
  328. package/dist/{chunk-25R3ITGZ.js → chunk-HTZYFGYE.js} +5 -5
  329. package/dist/{chunk-BLBOYCOV.js → chunk-HZXCTLNI.js} +6 -6
  330. package/dist/{chunk-EFEZWG4C.js → chunk-IBWVEARQ.js} +9 -2
  331. package/dist/chunk-IBWVEARQ.js.map +1 -0
  332. package/dist/{chunk-MEWYA74E.js → chunk-IDO4EV7T.js} +3 -3
  333. package/dist/{chunk-KUJLZFDW.js → chunk-IGAXQRRZ.js} +3 -3
  334. package/dist/{chunk-MCBG6R5A.js → chunk-IM76SSXI.js} +3 -3
  335. package/dist/{chunk-FVPN4YKW.js → chunk-IOEF32HX.js} +3 -3
  336. package/dist/{chunk-B474PL5O.js → chunk-IYSQRTIX.js} +2 -2
  337. package/dist/{chunk-BILJU2DX.js → chunk-JAYWTSXX.js} +7 -7
  338. package/dist/{chunk-DQOLW4B5.js → chunk-JDY37EML.js} +2 -2
  339. package/dist/{chunk-OLQDB346.js → chunk-JGOXXKPY.js} +2 -2
  340. package/dist/{chunk-LVCUJ7YU.js → chunk-JLWAYBOP.js} +10 -2
  341. package/dist/chunk-JLWAYBOP.js.map +1 -0
  342. package/dist/{chunk-SUTNQG7E.js → chunk-JPNPXNFH.js} +5 -5
  343. package/dist/{chunk-Z52HVR4J.js → chunk-JPXG7IFW.js} +6 -4
  344. package/dist/chunk-JPXG7IFW.js.map +1 -0
  345. package/dist/{chunk-PFLKPNBU.js → chunk-JYETSTOQ.js} +2 -2
  346. package/dist/{chunk-6FUOUUYO.js → chunk-JZJOAGBG.js} +4 -4
  347. package/dist/{chunk-5LQ7PKMW.js → chunk-K6FCXPTS.js} +1 -3
  348. package/dist/chunk-K6FCXPTS.js.map +1 -0
  349. package/dist/{chunk-LYMAMKJT.js → chunk-KAPKMVKR.js} +2 -3
  350. package/dist/{chunk-LYMAMKJT.js.map → chunk-KAPKMVKR.js.map} +1 -1
  351. package/dist/{chunk-TF4TPLF2.js → chunk-KCFCEWF7.js} +2 -2
  352. package/dist/{chunk-EXJBPKGW.js → chunk-KG4VNCNO.js} +7 -7
  353. package/dist/{chunk-GH2DC7PS.js → chunk-KMUSTQA6.js} +5 -5
  354. package/dist/{chunk-35UG2QDB.js → chunk-LB2G6SD6.js} +8 -8
  355. package/dist/{chunk-ZS44PY7T.js → chunk-LGLHU55A.js} +9 -5
  356. package/dist/chunk-LGLHU55A.js.map +1 -0
  357. package/dist/{chunk-4MXFPDKL.js → chunk-LNOYDMFD.js} +5 -5
  358. package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
  359. package/dist/{chunk-UVD5NFRF.js → chunk-LWLVWM34.js} +2 -2
  360. package/dist/{chunk-CZPU5TW3.js → chunk-LYSSO6WC.js} +4 -4
  361. package/dist/{chunk-WREIYOXN.js → chunk-M7HX3HKW.js} +8 -8
  362. package/dist/{chunk-K5V3KCFI.js → chunk-MG73KW54.js} +4 -4
  363. package/dist/{chunk-VESIQYBF.js → chunk-MGP5LLEK.js} +11 -11
  364. package/dist/{chunk-JMVIIKII.js → chunk-MMPJ2MCE.js} +11 -4
  365. package/dist/chunk-MMPJ2MCE.js.map +1 -0
  366. package/dist/{chunk-CJUOBTLL.js → chunk-MQZDTGGJ.js} +12 -6
  367. package/dist/chunk-MQZDTGGJ.js.map +1 -0
  368. package/dist/{chunk-JGV66VUK.js → chunk-MSXNA3UH.js} +2 -2
  369. package/dist/{chunk-BB2IVF76.js → chunk-MVXFMIVZ.js} +7 -4
  370. package/dist/chunk-MVXFMIVZ.js.map +1 -0
  371. package/dist/{chunk-S6YY2WWK.js → chunk-MYYGXSXF.js} +18 -5
  372. package/dist/chunk-MYYGXSXF.js.map +1 -0
  373. package/dist/{chunk-JYF3HT7M.js → chunk-N74IYYRU.js} +8 -8
  374. package/dist/{chunk-DOMEYGTN.js → chunk-NBBFFPTA.js} +2 -2
  375. package/dist/{chunk-XZTOIEKI.js → chunk-NFGVP3HN.js} +17 -8
  376. package/dist/chunk-NFGVP3HN.js.map +1 -0
  377. package/dist/{chunk-SX3V2DLV.js → chunk-NFLY5JMP.js} +2 -2
  378. package/dist/{chunk-MI2MVH3I.js → chunk-NKIAP6ZL.js} +7 -4
  379. package/dist/chunk-NKIAP6ZL.js.map +1 -0
  380. package/dist/{chunk-ZWIDQEJ4.js → chunk-NLBIG5LU.js} +5 -5
  381. package/dist/{chunk-J3JGO6Y6.js → chunk-NMX3JAAB.js} +6 -1
  382. package/dist/chunk-NMX3JAAB.js.map +1 -0
  383. package/dist/{chunk-V7F53GEO.js → chunk-NU3EQX2L.js} +7 -7
  384. package/dist/{chunk-K4JRHQMI.js → chunk-O4C5LUTJ.js} +6 -6
  385. package/dist/{chunk-TOYEP23N.js → chunk-OGPOTZAU.js} +23 -11
  386. package/dist/chunk-OGPOTZAU.js.map +1 -0
  387. package/dist/{chunk-REMK55JI.js → chunk-OLZTGVBT.js} +4 -4
  388. package/dist/{chunk-VJFH2AXT.js → chunk-OOGKAFBU.js} +8 -8
  389. package/dist/{chunk-WQFIV5WD.js → chunk-OZAP2BEP.js} +9 -2
  390. package/dist/chunk-OZAP2BEP.js.map +1 -0
  391. package/dist/{chunk-IVVOIDE5.js → chunk-OZZNC4YU.js} +3 -3
  392. package/dist/{chunk-XXE6NTJB.js → chunk-P3L42CBB.js} +17 -9
  393. package/dist/chunk-P3L42CBB.js.map +1 -0
  394. package/dist/{chunk-SONWG2RT.js → chunk-PE4ZW3IA.js} +15 -8
  395. package/dist/chunk-PE4ZW3IA.js.map +1 -0
  396. package/dist/{chunk-GVDJQMFI.js → chunk-PH5XJGKJ.js} +2 -2
  397. package/dist/{chunk-B6IURHSZ.js → chunk-PXH24VIP.js} +4 -4
  398. package/dist/chunk-PZBK3F52.js +31 -0
  399. package/dist/chunk-PZBK3F52.js.map +1 -0
  400. package/dist/{chunk-MZQTHSLN.js → chunk-Q2GZMDZL.js} +4 -4
  401. package/dist/{chunk-65DLYC4S.js → chunk-QNHNFU7G.js} +5 -5
  402. package/dist/{chunk-TSEWUY4V.js → chunk-QRUCR4YZ.js} +18 -6
  403. package/dist/chunk-QRUCR4YZ.js.map +1 -0
  404. package/dist/{chunk-TU6RNZUQ.js → chunk-R2I3LUUH.js} +2 -2
  405. package/dist/{chunk-237NDIT2.js → chunk-R67J6JKT.js} +2 -2
  406. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  407. package/dist/{chunk-XYDW5RQB.js → chunk-RAWQMBX6.js} +2 -2
  408. package/dist/{chunk-L6TCIZFR.js → chunk-RGKGBYT2.js} +3 -3
  409. package/dist/{chunk-C5EFVSBN.js → chunk-RGMSTQ2J.js} +2 -2
  410. package/dist/{chunk-CPNSVIIB.js → chunk-RP3W6IQO.js} +5 -5
  411. package/dist/{chunk-6TSP45KC.js → chunk-RQ5HZDBV.js} +5 -1
  412. package/dist/chunk-RQ5HZDBV.js.map +1 -0
  413. package/dist/{chunk-UEJQQVP2.js → chunk-RRX6ZTNX.js} +4 -4
  414. package/dist/{chunk-PFZAUMJA.js → chunk-RUEKY3VR.js} +2 -2
  415. package/dist/{chunk-3T2I6BYA.js → chunk-SJIBPRPB.js} +4 -4
  416. package/dist/{chunk-DFLTUI7W.js → chunk-SLODUPES.js} +20 -11
  417. package/dist/chunk-SLODUPES.js.map +1 -0
  418. package/dist/{chunk-4XVH6IWN.js → chunk-SVFA75FO.js} +3 -3
  419. package/dist/{chunk-EZMCWRXO.js → chunk-SVXHKIGJ.js} +16 -6
  420. package/dist/chunk-SVXHKIGJ.js.map +1 -0
  421. package/dist/{chunk-L2E7TY7P.js → chunk-SZB2Z6QN.js} +6 -2
  422. package/dist/chunk-SZB2Z6QN.js.map +1 -0
  423. package/dist/{chunk-PMS3H3OO.js → chunk-T53L42XW.js} +10 -10
  424. package/dist/{chunk-624TFFLJ.js → chunk-T5MOGJ56.js} +2 -2
  425. package/dist/{chunk-K2JH7QPR.js → chunk-TBRAZK3Y.js} +12 -12
  426. package/dist/{chunk-DAPK3ADA.js → chunk-TC3EPGGJ.js} +4 -4
  427. package/dist/{chunk-NFAKRI4S.js → chunk-TCLBB7U4.js} +6 -6
  428. package/dist/{chunk-EVXFEXBS.js → chunk-TJT4NSFN.js} +2 -2
  429. package/dist/{chunk-RNCQ5KHQ.js → chunk-TN55JKIU.js} +2 -2
  430. package/dist/{chunk-5KFZGB5U.js → chunk-TTVKL3RD.js} +2 -2
  431. package/dist/{chunk-UCTJJYVC.js → chunk-TTW4MAOJ.js} +5 -5
  432. package/dist/{chunk-3TFUAKWJ.js → chunk-U3ON6YW3.js} +2 -2
  433. package/dist/{chunk-EPRA5QLB.js → chunk-U3PPLAFB.js} +2 -2
  434. package/dist/{chunk-VVXA7T2M.js → chunk-UEWIIYGA.js} +2 -2
  435. package/dist/{chunk-HT4B2DJU.js → chunk-UJE7IKQ4.js} +4 -4
  436. package/dist/{chunk-QRX5BYUQ.js → chunk-V3WWNKHU.js} +8 -8
  437. package/dist/{chunk-UCU5FCYE.js → chunk-VDZQJBAV.js} +6 -2
  438. package/dist/chunk-VDZQJBAV.js.map +1 -0
  439. package/dist/{chunk-3W7IEWEL.js → chunk-VECWMANF.js} +12 -2
  440. package/dist/chunk-VECWMANF.js.map +1 -0
  441. package/dist/{chunk-6IKX5IIX.js → chunk-VI7YYAXV.js} +6 -6
  442. package/dist/{chunk-VKH7AENA.js → chunk-VLVMJDGD.js} +2 -2
  443. package/dist/{chunk-YB6MDGPR.js → chunk-VNHLYDTX.js} +18 -7
  444. package/dist/chunk-VNHLYDTX.js.map +1 -0
  445. package/dist/{chunk-VMXDTCYF.js → chunk-WMALDOF5.js} +4 -4
  446. package/dist/{chunk-23FCBIUN.js → chunk-WQSL6MCA.js} +4 -4
  447. package/dist/{chunk-GSFNH4C5.js → chunk-WROCSDVL.js} +5 -5
  448. package/dist/{chunk-U7Q2Y6WG.js → chunk-X4HGBK4G.js} +2 -2
  449. package/dist/{chunk-2UBFDRL7.js → chunk-X4XYUNRL.js} +2 -2
  450. package/dist/{chunk-5WNQJ5KS.js → chunk-XLZBZSES.js} +11 -5
  451. package/dist/chunk-XLZBZSES.js.map +1 -0
  452. package/dist/{chunk-3XLDTVLC.js → chunk-XM6WEANW.js} +9 -9
  453. package/dist/{chunk-22ZJH7RY.js → chunk-XO27IMBE.js} +3 -3
  454. package/dist/{chunk-MSUSZLRE.js → chunk-XY6KOMRN.js} +2 -2
  455. package/dist/{chunk-DFK6QCXX.js → chunk-Y3IGYWGN.js} +27 -6
  456. package/dist/chunk-Y3IGYWGN.js.map +1 -0
  457. package/dist/{chunk-NWQWUYOV.js → chunk-Y7ZS724A.js} +2 -2
  458. package/dist/{chunk-OH3YGJT5.js → chunk-YCNKH5P6.js} +3 -3
  459. package/dist/{chunk-HKKSZ7HG.js → chunk-YESTO24O.js} +2 -2
  460. package/dist/{chunk-JPVDZXXX.js → chunk-YZKA7UJK.js} +2 -2
  461. package/dist/{chunk-HGJHZ5PE.js → chunk-ZB6BX4GO.js} +7 -7
  462. package/dist/{chunk-7AR2R7TV.js → chunk-ZDWU52DJ.js} +4 -4
  463. package/dist/{chunk-OXQP3N6X.js → chunk-ZTZ6S5Q6.js} +4 -4
  464. package/dist/data-display/Alert.js +7 -5
  465. package/dist/data-display/AsyncStateContainer.js +3 -3
  466. package/dist/data-display/Avatar.js +9 -7
  467. package/dist/data-display/Badge.js +9 -7
  468. package/dist/data-display/Banner.js +5 -3
  469. package/dist/data-display/CardKit.js +26 -20
  470. package/dist/data-display/Carousel.js +15 -9
  471. package/dist/data-display/Chart.js +21 -15
  472. package/dist/data-display/DataGrid.js +3 -3
  473. package/dist/data-display/DataViews.js +116 -112
  474. package/dist/data-display/DescriptionItem.js +8 -6
  475. package/dist/data-display/EmptyState.js +2 -2
  476. package/dist/data-display/FleetMap.js +22 -16
  477. package/dist/data-display/HoverCard.js +2 -2
  478. package/dist/data-display/InteractiveTooltip.js +2 -2
  479. package/dist/data-display/Lightbox.js +6 -6
  480. package/dist/data-display/MapPreview.js +12 -5
  481. package/dist/data-display/Progress.js +8 -6
  482. package/dist/data-display/SectionOnboarding.js +3 -3
  483. package/dist/data-display/Sheet.js +14 -8
  484. package/dist/data-display/Table.js +2 -2
  485. package/dist/feedback/ConfirmAction.js +19 -13
  486. package/dist/feedback/Dialog.js +2 -2
  487. package/dist/feedback/Modal.js +2 -2
  488. package/dist/feedback/NotificationStatusNotice.js +16 -10
  489. package/dist/feedback/StackedModal.js +2 -2
  490. package/dist/feedback/TutorialOverlay.js +2 -2
  491. package/dist/form/AddressAutocomplete.js +11 -7
  492. package/dist/form/Autocomplete.js +9 -2
  493. package/dist/form/Button.js +12 -6
  494. package/dist/form/CategorySelect.js +15 -11
  495. package/dist/form/CepField.js +11 -7
  496. package/dist/form/Checkbox.js +6 -4
  497. package/dist/form/CodeEditor.js +5 -3
  498. package/dist/form/Command.js +12 -6
  499. package/dist/form/CreatableSelect.js +5 -1
  500. package/dist/form/DateRangePicker.js +13 -6
  501. package/dist/form/Input.js +10 -6
  502. package/dist/form/InputOTP.js +7 -3
  503. package/dist/form/Label.js +12 -6
  504. package/dist/form/Menubar.js +15 -9
  505. package/dist/form/PhoneInput.js +5 -1
  506. package/dist/form/RadioGroup.js +8 -4
  507. package/dist/form/RichTextEditor.js +4 -2
  508. package/dist/form/Select.js +9 -5
  509. package/dist/form/Switch.js +9 -7
  510. package/dist/form/Textarea.js +5 -1
  511. package/dist/form/Toggle.js +6 -2
  512. package/dist/form/ToggleGroup.js +9 -1
  513. package/dist/form/UploadButton.js +2 -2
  514. package/dist/form/total-form.js +39 -35
  515. package/dist/icons.js +14 -8
  516. package/dist/layout/Box.js +13 -7
  517. package/dist/layout/Card.js +2 -2
  518. package/dist/layout/ContentToolbar.js +21 -14
  519. package/dist/layout/ScrollArea.js +3 -3
  520. package/dist/layout/SettingsLayout.js +3 -3
  521. package/dist/layout/Stack.js +14 -8
  522. package/dist/layout/TableFilter.js +8 -1
  523. package/dist/native/chunks/{chunk-NVPXIJ2O.js → chunk-335WGKE6.js} +37 -52
  524. package/dist/native/chunks/chunk-335WGKE6.js.map +1 -0
  525. package/dist/native/chunks/{chunk-YXM4NR2B.js → chunk-4KWFRDI2.js} +3 -3
  526. package/dist/native/chunks/{chunk-CO47ZRXO.js → chunk-5IASLIBI.js} +2 -2
  527. package/dist/native/chunks/{chunk-6XDMYJBW.js → chunk-GUBTMR2K.js} +2 -2
  528. package/dist/native/chunks/chunk-IMGBBIMT.js +46 -0
  529. package/dist/native/chunks/chunk-IMGBBIMT.js.map +1 -0
  530. package/dist/native/chunks/{chunk-BEPOBULQ.js → chunk-KIG4KY4W.js} +19 -15
  531. package/dist/native/chunks/chunk-KIG4KY4W.js.map +1 -0
  532. package/dist/native/chunks/{chunk-SOQVMWLQ.js → chunk-OI57L6WL.js} +5 -5
  533. package/dist/native/chunks/{chunk-YQDDM6ZW.js → chunk-R5XVZRDD.js} +33 -2
  534. package/dist/native/chunks/chunk-R5XVZRDD.js.map +1 -0
  535. package/dist/native/chunks/{chunk-2HLEFYJ5.js → chunk-X6RQGKGF.js} +2 -2
  536. package/dist/native/data-display/Alert.js +3 -3
  537. package/dist/native/data-display/Avatar.js +3 -3
  538. package/dist/native/data-display/Badge.js +3 -3
  539. package/dist/native/data-display/Chip.js +3 -3
  540. package/dist/native/data-display/EmptyState.js +6 -5
  541. package/dist/native/data-display/ErrorState.js +5 -4
  542. package/dist/native/data-display/ErrorState.js.map +1 -1
  543. package/dist/native/data-display/FleetMap.js +7 -6
  544. package/dist/native/data-display/FleetMap.js.map +1 -1
  545. package/dist/native/data-display/LoadingState.js +2 -2
  546. package/dist/native/data-display/Progress.js +2 -2
  547. package/dist/native/feedback/Dialog.js +3 -3
  548. package/dist/native/form/Button.js +4 -3
  549. package/dist/native/form/Checkbox.js +3 -3
  550. package/dist/native/form/Input.js +8 -5
  551. package/dist/native/form/Input.js.map +1 -1
  552. package/dist/native/form/Select.js +27 -15
  553. package/dist/native/form/Select.js.map +1 -1
  554. package/dist/native/form/Switch.js +2 -2
  555. package/dist/native/icons.js +3 -3
  556. package/dist/native/layout/Box.js +3 -3
  557. package/dist/native/layout/Card.js +2 -2
  558. package/dist/native/layout/Container.js +2 -2
  559. package/dist/native/layout/Skeleton.js +3 -3
  560. package/dist/native/layout/Spacer.js +2 -2
  561. package/dist/native/layout/Stack.js +3 -3
  562. package/dist/native/provider.js +2 -2
  563. package/dist/native/tokens.js +13 -1
  564. package/dist/native/typography/Heading.js +2 -2
  565. package/dist/native/typography/Paragraph.js +2 -2
  566. package/dist/native/typography/Text.js +2 -2
  567. package/dist/navigation/AppHeader.js +23 -17
  568. package/dist/navigation/CommandPalette.js +2 -2
  569. package/dist/navigation/NavigationMenu.js +5 -5
  570. package/dist/navigation/Pagination.js +9 -2
  571. package/dist/navigation/Tabs.js +2 -2
  572. package/dist/provider.js +13 -7
  573. package/dist/social-login-button.js +20 -14
  574. package/dist/tokens.js +51 -7
  575. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
  576. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
  577. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  578. package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts.map +1 -1
  579. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
  580. package/dist/types/components/data-display/DataViews/data-views-search.d.ts.map +1 -1
  581. package/dist/types/components/data-display/LazyImage/LazyImage.hooks.d.ts +1 -1
  582. package/dist/types/components/data-display/MapPreview/MapSearchBar.d.ts.map +1 -1
  583. package/dist/types/components/form/AddressAutocomplete/AddressTextField.d.ts.map +1 -1
  584. package/dist/types/components/form/Autocomplete/Autocomplete.parts.d.ts.map +1 -1
  585. package/dist/types/components/form/Button/Button.d.ts.map +1 -1
  586. package/dist/types/components/form/Button/Button.metrics.d.ts +0 -2
  587. package/dist/types/components/form/Button/Button.metrics.d.ts.map +1 -1
  588. package/dist/types/components/form/Button/Button.styles.d.ts +9 -2
  589. package/dist/types/components/form/Button/Button.styles.d.ts.map +1 -1
  590. package/dist/types/components/form/CategorySelect/CategoryPanelFoot.d.ts.map +1 -1
  591. package/dist/types/components/form/CategorySelect/CategoryPanelHead.d.ts.map +1 -1
  592. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts +4 -2
  593. package/dist/types/components/form/CategorySelect/CategorySelect.styles.d.ts.map +1 -1
  594. package/dist/types/components/form/CodeEditor/CodeEditor.d.ts.map +1 -1
  595. package/dist/types/components/form/CreatableSelect/CreatableSelect.d.ts.map +1 -1
  596. package/dist/types/components/form/Input/Input.d.ts.map +1 -1
  597. package/dist/types/components/form/Input/Input.metrics.d.ts +28 -16
  598. package/dist/types/components/form/Input/Input.metrics.d.ts.map +1 -1
  599. package/dist/types/components/form/Input/Input.styles.d.ts +8 -1
  600. package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
  601. package/dist/types/components/form/InputOTP/InputOTP.styles.d.ts.map +1 -1
  602. package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
  603. package/dist/types/components/form/RadioGroup/RadioGroup.styles.d.ts.map +1 -1
  604. package/dist/types/components/form/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  605. package/dist/types/components/form/Select/Select.d.ts.map +1 -1
  606. package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
  607. package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts.map +1 -1
  608. package/dist/types/components/form/Toggle/Toggle.styles.d.ts.map +1 -1
  609. package/dist/types/components/form/ToggleGroup/ToggleGroup.d.ts.map +1 -1
  610. package/dist/types/components/form/total-form/Fields/ToggleField.d.ts.map +1 -1
  611. package/dist/types/components/form/total-form/SubmitButton.d.ts.map +1 -1
  612. package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
  613. package/dist/types/components/layout/ContentToolbar/ContentToolbar.d.ts.map +1 -1
  614. package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
  615. package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
  616. package/dist/types/components/layout/ContentToolbar/MultiSelectTriggers.d.ts.map +1 -1
  617. package/dist/types/components/layout/ContentToolbar/SavedViewsMenu.d.ts.map +1 -1
  618. package/dist/types/components/layout/ContentToolbar/SortByDropdown.d.ts.map +1 -1
  619. package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts.map +1 -1
  620. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  621. package/dist/types/components/navigation/Pagination/PaginationParts.d.ts.map +1 -1
  622. package/dist/types/provider/mui-bridge.d.ts.map +1 -1
  623. package/dist/types/tokens/field-height.core.d.ts +49 -0
  624. package/dist/types/tokens/field-height.core.d.ts.map +1 -0
  625. package/dist/types/tokens/field-height.d.ts +58 -0
  626. package/dist/types/tokens/field-height.d.ts.map +1 -0
  627. package/dist/types/tokens/field-radius.core.d.ts +26 -0
  628. package/dist/types/tokens/field-radius.core.d.ts.map +1 -0
  629. package/dist/types/tokens/field-radius.d.ts +60 -0
  630. package/dist/types/tokens/field-radius.d.ts.map +1 -0
  631. package/dist/types/tokens/scales.d.ts +2 -0
  632. package/dist/types/tokens/scales.d.ts.map +1 -1
  633. package/dist/types/tokens/theme.d.ts +16 -1
  634. package/dist/types/tokens/theme.d.ts.map +1 -1
  635. package/dist/types-native/components/form/Button/Button.metrics.d.ts +0 -2
  636. package/dist/types-native/components/form/Button/Button.metrics.d.ts.map +1 -1
  637. package/dist/types-native/components/form/Button/Button.native.d.ts.map +1 -1
  638. package/dist/types-native/components/form/Input/Input.look.native.d.ts +2 -2
  639. package/dist/types-native/components/form/Input/Input.look.native.d.ts.map +1 -1
  640. package/dist/types-native/components/form/Input/Input.metrics.d.ts +28 -16
  641. package/dist/types-native/components/form/Input/Input.metrics.d.ts.map +1 -1
  642. package/dist/types-native/components/form/Input/Input.native.d.ts.map +1 -1
  643. package/dist/types-native/components/form/Select/Select.native.d.ts +2 -2
  644. package/dist/types-native/components/form/Select/Select.native.d.ts.map +1 -1
  645. package/dist/types-native/components/form/field-pulse.native.d.ts +3 -1
  646. package/dist/types-native/components/form/field-pulse.native.d.ts.map +1 -1
  647. package/dist/types-native/tokens/field-height.core.d.ts +49 -0
  648. package/dist/types-native/tokens/field-height.core.d.ts.map +1 -0
  649. package/dist/types-native/tokens/field-radius.core.d.ts +26 -0
  650. package/dist/types-native/tokens/field-radius.core.d.ts.map +1 -0
  651. package/dist/types-native/tokens/index.native.d.ts +2 -0
  652. package/dist/types-native/tokens/index.native.d.ts.map +1 -1
  653. package/dist/types-native/tokens/theme.d.ts +16 -1
  654. package/dist/types-native/tokens/theme.d.ts.map +1 -1
  655. package/dist/typography/Heading.js +8 -6
  656. package/dist/typography/Paragraph.js +6 -4
  657. package/dist/typography/Text.js +7 -5
  658. package/dist/user-avatar.js +21 -15
  659. package/dist/utility/InfiniteScroll.js +2 -2
  660. package/dist/utility/InstallPrompt.js +4 -4
  661. package/package.json +1 -1
  662. package/src/components/data-display/DataViews/data-views-bar-controls.tsx +7 -5
  663. package/src/components/data-display/DataViews/data-views-day-input.tsx +2 -1
  664. package/src/components/data-display/DataViews/data-views-more-fields.tsx +6 -2
  665. package/src/components/data-display/DataViews/data-views-number-input.tsx +2 -1
  666. package/src/components/data-display/DataViews/data-views-range-pill.tsx +8 -4
  667. package/src/components/data-display/DataViews/data-views-search.tsx +10 -4
  668. package/src/components/data-display/MapPreview/MapSearchBar.tsx +5 -1
  669. package/src/components/form/AddressAutocomplete/AddressTextField.tsx +8 -1
  670. package/src/components/form/Autocomplete/Autocomplete.parts.tsx +2 -0
  671. package/src/components/form/Button/Button.metrics.ts +0 -2
  672. package/src/components/form/Button/Button.native.tsx +19 -6
  673. package/src/components/form/Button/Button.styles.ts +21 -5
  674. package/src/components/form/Button/Button.tsx +2 -1
  675. package/src/components/form/CategorySelect/CategoryPanelFoot.tsx +2 -1
  676. package/src/components/form/CategorySelect/CategoryPanelHead.tsx +5 -4
  677. package/src/components/form/CategorySelect/CategorySelect.styles.ts +8 -4
  678. package/src/components/form/CodeEditor/CodeEditor.tsx +2 -1
  679. package/src/components/form/CreatableSelect/CreatableSelect.tsx +4 -1
  680. package/src/components/form/Input/Input.look.native.ts +11 -8
  681. package/src/components/form/Input/Input.metrics.ts +55 -18
  682. package/src/components/form/Input/Input.native.tsx +4 -2
  683. package/src/components/form/Input/Input.styles.ts +18 -3
  684. package/src/components/form/Input/Input.tsx +11 -3
  685. package/src/components/form/InputOTP/InputOTP.styles.ts +14 -9
  686. package/src/components/form/PhoneInput/PhoneInput.tsx +8 -1
  687. package/src/components/form/RadioGroup/RadioGroup.styles.ts +21 -6
  688. package/src/components/form/RichTextEditor/RichTextEditor.tsx +2 -1
  689. package/src/components/form/Select/Select.native.tsx +34 -9
  690. package/src/components/form/Select/Select.tsx +16 -8
  691. package/src/components/form/Textarea/Textarea.tsx +7 -3
  692. package/src/components/form/Textarea/TextareaRichEditor.tsx +11 -5
  693. package/src/components/form/Toggle/Toggle.styles.ts +9 -4
  694. package/src/components/form/ToggleGroup/ToggleGroup.tsx +29 -12
  695. package/src/components/form/field-pulse.native.tsx +6 -3
  696. package/src/components/form/total-form/Fields/ToggleField.tsx +0 -2
  697. package/src/components/form/total-form/SubmitButton.tsx +4 -9
  698. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +5 -3
  699. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +2 -1
  700. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +4 -1
  701. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +2 -0
  702. package/src/components/layout/ContentToolbar/MultiSelectTriggers.tsx +10 -6
  703. package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +3 -1
  704. package/src/components/layout/ContentToolbar/SortByDropdown.tsx +3 -1
  705. package/src/components/layout/ContentToolbar/ViewSelector.tsx +3 -1
  706. package/src/components/layout/TableFilter/TableFilter.tsx +3 -0
  707. package/src/components/navigation/Pagination/PaginationParts.tsx +2 -2
  708. package/src/provider/mui-bridge.ts +8 -1
  709. package/src/tokens/field-height.core.ts +70 -0
  710. package/src/tokens/field-height.ts +152 -0
  711. package/src/tokens/field-radius.core.ts +26 -0
  712. package/src/tokens/field-radius.ts +90 -0
  713. package/src/tokens/index.native.ts +8 -0
  714. package/src/tokens/scales.ts +15 -0
  715. package/src/tokens/theme.ts +20 -3
  716. package/dist/chunk-3W7IEWEL.js.map +0 -1
  717. package/dist/chunk-4T6W43TO.js.map +0 -1
  718. package/dist/chunk-5LQ7PKMW.js.map +0 -1
  719. package/dist/chunk-5WNQJ5KS.js.map +0 -1
  720. package/dist/chunk-6TSP45KC.js.map +0 -1
  721. package/dist/chunk-6WIDZGXE.js.map +0 -1
  722. package/dist/chunk-A7LG3AXV.js.map +0 -1
  723. package/dist/chunk-BB2IVF76.js.map +0 -1
  724. package/dist/chunk-BEGWE5O4.js.map +0 -1
  725. package/dist/chunk-BKAB4KZK.js.map +0 -1
  726. package/dist/chunk-CJUOBTLL.js.map +0 -1
  727. package/dist/chunk-DBYFC6CF.js.map +0 -1
  728. package/dist/chunk-DFK6QCXX.js.map +0 -1
  729. package/dist/chunk-DFLTUI7W.js.map +0 -1
  730. package/dist/chunk-EFEZWG4C.js.map +0 -1
  731. package/dist/chunk-EZMCWRXO.js.map +0 -1
  732. package/dist/chunk-FGUESLDX.js.map +0 -1
  733. package/dist/chunk-FV36LFPX.js.map +0 -1
  734. package/dist/chunk-HZVFAGLZ.js.map +0 -1
  735. package/dist/chunk-J3D34ZBL.js.map +0 -1
  736. package/dist/chunk-J3JGO6Y6.js.map +0 -1
  737. package/dist/chunk-JMVIIKII.js.map +0 -1
  738. package/dist/chunk-L2E7TY7P.js.map +0 -1
  739. package/dist/chunk-LVCUJ7YU.js.map +0 -1
  740. package/dist/chunk-MI2MVH3I.js.map +0 -1
  741. package/dist/chunk-S6YY2WWK.js.map +0 -1
  742. package/dist/chunk-SONWG2RT.js.map +0 -1
  743. package/dist/chunk-T2VO32Z2.js.map +0 -1
  744. package/dist/chunk-TOYEP23N.js.map +0 -1
  745. package/dist/chunk-TSEWUY4V.js.map +0 -1
  746. package/dist/chunk-UCU5FCYE.js.map +0 -1
  747. package/dist/chunk-V5IOLAIS.js.map +0 -1
  748. package/dist/chunk-VIK3HAUQ.js.map +0 -1
  749. package/dist/chunk-WQFIV5WD.js.map +0 -1
  750. package/dist/chunk-WXD7MGBT.js.map +0 -1
  751. package/dist/chunk-XXE6NTJB.js.map +0 -1
  752. package/dist/chunk-XZTOIEKI.js.map +0 -1
  753. package/dist/chunk-YB6MDGPR.js.map +0 -1
  754. package/dist/chunk-Z52HVR4J.js.map +0 -1
  755. package/dist/chunk-ZS44PY7T.js.map +0 -1
  756. package/dist/chunk-ZUY65MFH.js.map +0 -1
  757. package/dist/chunk-ZZOOSKSV.js.map +0 -1
  758. package/dist/native/chunks/chunk-BEPOBULQ.js.map +0 -1
  759. package/dist/native/chunks/chunk-NVPXIJ2O.js.map +0 -1
  760. package/dist/native/chunks/chunk-YQDDM6ZW.js.map +0 -1
  761. /package/dist/{chunk-3PUOLOEP.js.map → chunk-2SKNSQCP.js.map} +0 -0
  762. /package/dist/{chunk-YRUCIKPO.js.map → chunk-2UYR2OOE.js.map} +0 -0
  763. /package/dist/{chunk-J4W4TQPC.js.map → chunk-2W4GTZDP.js.map} +0 -0
  764. /package/dist/{chunk-HR7YTBR7.js.map → chunk-3AOOI2NR.js.map} +0 -0
  765. /package/dist/{chunk-I3FXTIKA.js.map → chunk-3CN2GBIK.js.map} +0 -0
  766. /package/dist/{chunk-57W2C7HY.js.map → chunk-3NA7AO6H.js.map} +0 -0
  767. /package/dist/{chunk-HZ6L7WXE.js.map → chunk-3SJZP7KH.js.map} +0 -0
  768. /package/dist/{chunk-CASZGBCA.js.map → chunk-3Z23QTCP.js.map} +0 -0
  769. /package/dist/{chunk-QGBMCB76.js.map → chunk-4BEQADWC.js.map} +0 -0
  770. /package/dist/{chunk-JQL4GG5L.js.map → chunk-4D7YIU34.js.map} +0 -0
  771. /package/dist/{chunk-DEE6IPGI.js.map → chunk-4PIKOJZ4.js.map} +0 -0
  772. /package/dist/{chunk-6PKVHFCK.js.map → chunk-56S7A2XT.js.map} +0 -0
  773. /package/dist/{chunk-554SVTCN.js.map → chunk-5BW7NCM5.js.map} +0 -0
  774. /package/dist/{chunk-RVGG5YJY.js.map → chunk-5FA5S2YN.js.map} +0 -0
  775. /package/dist/{chunk-S2GDYA6R.js.map → chunk-5GMHJ7Y5.js.map} +0 -0
  776. /package/dist/{chunk-C5YBXQTK.js.map → chunk-5KZR3RXL.js.map} +0 -0
  777. /package/dist/{chunk-K2EHH7TC.js.map → chunk-5NH24MF5.js.map} +0 -0
  778. /package/dist/{chunk-J3ZP6EUS.js.map → chunk-5RHMLOIA.js.map} +0 -0
  779. /package/dist/{chunk-DORPR2YP.js.map → chunk-5SBJO37T.js.map} +0 -0
  780. /package/dist/{chunk-62NA6IF3.js.map → chunk-5U4SJ2DA.js.map} +0 -0
  781. /package/dist/{chunk-IABE56TG.js.map → chunk-5ZOJLYD2.js.map} +0 -0
  782. /package/dist/{chunk-Q5NAZ7TW.js.map → chunk-62NFZR52.js.map} +0 -0
  783. /package/dist/{chunk-W4SDVTZC.js.map → chunk-65JHGT5F.js.map} +0 -0
  784. /package/dist/{chunk-VXTYVJDK.js.map → chunk-6M33XQLZ.js.map} +0 -0
  785. /package/dist/{chunk-HP2ODXNA.js.map → chunk-6M7CMILP.js.map} +0 -0
  786. /package/dist/{chunk-7IKWIWWV.js.map → chunk-6V7D6GRX.js.map} +0 -0
  787. /package/dist/{chunk-DTKMBI7B.js.map → chunk-6YLAVHV4.js.map} +0 -0
  788. /package/dist/{chunk-MSS6IU5X.js.map → chunk-6ZZNV2PA.js.map} +0 -0
  789. /package/dist/{chunk-SLMA4UQS.js.map → chunk-7A3G4W52.js.map} +0 -0
  790. /package/dist/{chunk-RXSGHPCR.js.map → chunk-7FOOLP5H.js.map} +0 -0
  791. /package/dist/{chunk-57ZSQB5V.js.map → chunk-7FWXG2KF.js.map} +0 -0
  792. /package/dist/{chunk-KFZT3PHA.js.map → chunk-7MM2I34E.js.map} +0 -0
  793. /package/dist/{chunk-HLYPI5CO.js.map → chunk-7NFRTAEU.js.map} +0 -0
  794. /package/dist/{chunk-NUB4T3RQ.js.map → chunk-7TSQNYQO.js.map} +0 -0
  795. /package/dist/{chunk-R6SSXEK2.js.map → chunk-A2QZXV2K.js.map} +0 -0
  796. /package/dist/{chunk-AVI3XHRQ.js.map → chunk-AIRWM7KK.js.map} +0 -0
  797. /package/dist/{chunk-OD4Z5G6G.js.map → chunk-APT5L7V5.js.map} +0 -0
  798. /package/dist/{chunk-2L2NWXWJ.js.map → chunk-AYRHW4DX.js.map} +0 -0
  799. /package/dist/{chunk-7MR2JCJW.js.map → chunk-AZ2KKHID.js.map} +0 -0
  800. /package/dist/{chunk-3MALHTZQ.js.map → chunk-AZ4LLAAJ.js.map} +0 -0
  801. /package/dist/{chunk-HJOABXKN.js.map → chunk-AZUFGKMQ.js.map} +0 -0
  802. /package/dist/{chunk-FLIMEQUA.js.map → chunk-B4BU5CS6.js.map} +0 -0
  803. /package/dist/{chunk-T5WNNEP5.js.map → chunk-BM4LH7VQ.js.map} +0 -0
  804. /package/dist/{chunk-FGUK3D54.js.map → chunk-BM4ZPBBT.js.map} +0 -0
  805. /package/dist/{chunk-URVNHKM2.js.map → chunk-BTIBFR5L.js.map} +0 -0
  806. /package/dist/{chunk-DUWF5LUK.js.map → chunk-BUXSHLQM.js.map} +0 -0
  807. /package/dist/{chunk-XXDXW6TX.js.map → chunk-C5WSPGMP.js.map} +0 -0
  808. /package/dist/{chunk-7OZBOS75.js.map → chunk-C6R4LVUX.js.map} +0 -0
  809. /package/dist/{chunk-MGPA6KTM.js.map → chunk-CR4KC2K5.js.map} +0 -0
  810. /package/dist/{chunk-ON2CMKTI.js.map → chunk-CZ5ZL63A.js.map} +0 -0
  811. /package/dist/{chunk-YANLN6HP.js.map → chunk-D6HDJVQW.js.map} +0 -0
  812. /package/dist/{chunk-JJ3VR7WX.js.map → chunk-DAQ2ZDU2.js.map} +0 -0
  813. /package/dist/{chunk-VNGYJXAU.js.map → chunk-DDTPMZOB.js.map} +0 -0
  814. /package/dist/{chunk-WC5XYWTE.js.map → chunk-DO3UNZAU.js.map} +0 -0
  815. /package/dist/{chunk-VEGT5PAD.js.map → chunk-DZXN3QCX.js.map} +0 -0
  816. /package/dist/{chunk-B7NV6JFG.js.map → chunk-EAE5Z5HL.js.map} +0 -0
  817. /package/dist/{chunk-UC6A6ASM.js.map → chunk-ECZXTIDR.js.map} +0 -0
  818. /package/dist/{chunk-3P4THDBM.js.map → chunk-EIGELK2H.js.map} +0 -0
  819. /package/dist/{chunk-RXVPUW7V.js.map → chunk-ENUWZ3HW.js.map} +0 -0
  820. /package/dist/{chunk-XFUNJYFT.js.map → chunk-EPNUVSNK.js.map} +0 -0
  821. /package/dist/{chunk-RBGOGTT2.js.map → chunk-FATRMNVN.js.map} +0 -0
  822. /package/dist/{chunk-SQV3HPTZ.js.map → chunk-G76H5PEM.js.map} +0 -0
  823. /package/dist/{chunk-KT6HWAEN.js.map → chunk-GSWDQ3ZX.js.map} +0 -0
  824. /package/dist/{chunk-VNEEXUWA.js.map → chunk-GT7C6TSM.js.map} +0 -0
  825. /package/dist/{chunk-EUKYQXYU.js.map → chunk-GXEB6MJA.js.map} +0 -0
  826. /package/dist/{chunk-ZYKDPX3W.js.map → chunk-H3TNIGMI.js.map} +0 -0
  827. /package/dist/{chunk-AIBNBWQU.js.map → chunk-H4NWU2ZN.js.map} +0 -0
  828. /package/dist/{chunk-YTYROOLY.js.map → chunk-H57ZS6W2.js.map} +0 -0
  829. /package/dist/{chunk-ZU3SWR4I.js.map → chunk-HQZRWOSS.js.map} +0 -0
  830. /package/dist/{chunk-25R3ITGZ.js.map → chunk-HTZYFGYE.js.map} +0 -0
  831. /package/dist/{chunk-BLBOYCOV.js.map → chunk-HZXCTLNI.js.map} +0 -0
  832. /package/dist/{chunk-MEWYA74E.js.map → chunk-IDO4EV7T.js.map} +0 -0
  833. /package/dist/{chunk-KUJLZFDW.js.map → chunk-IGAXQRRZ.js.map} +0 -0
  834. /package/dist/{chunk-MCBG6R5A.js.map → chunk-IM76SSXI.js.map} +0 -0
  835. /package/dist/{chunk-FVPN4YKW.js.map → chunk-IOEF32HX.js.map} +0 -0
  836. /package/dist/{chunk-B474PL5O.js.map → chunk-IYSQRTIX.js.map} +0 -0
  837. /package/dist/{chunk-BILJU2DX.js.map → chunk-JAYWTSXX.js.map} +0 -0
  838. /package/dist/{chunk-DQOLW4B5.js.map → chunk-JDY37EML.js.map} +0 -0
  839. /package/dist/{chunk-OLQDB346.js.map → chunk-JGOXXKPY.js.map} +0 -0
  840. /package/dist/{chunk-SUTNQG7E.js.map → chunk-JPNPXNFH.js.map} +0 -0
  841. /package/dist/{chunk-PFLKPNBU.js.map → chunk-JYETSTOQ.js.map} +0 -0
  842. /package/dist/{chunk-6FUOUUYO.js.map → chunk-JZJOAGBG.js.map} +0 -0
  843. /package/dist/{chunk-TF4TPLF2.js.map → chunk-KCFCEWF7.js.map} +0 -0
  844. /package/dist/{chunk-EXJBPKGW.js.map → chunk-KG4VNCNO.js.map} +0 -0
  845. /package/dist/{chunk-GH2DC7PS.js.map → chunk-KMUSTQA6.js.map} +0 -0
  846. /package/dist/{chunk-35UG2QDB.js.map → chunk-LB2G6SD6.js.map} +0 -0
  847. /package/dist/{chunk-4MXFPDKL.js.map → chunk-LNOYDMFD.js.map} +0 -0
  848. /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
  849. /package/dist/{chunk-UVD5NFRF.js.map → chunk-LWLVWM34.js.map} +0 -0
  850. /package/dist/{chunk-CZPU5TW3.js.map → chunk-LYSSO6WC.js.map} +0 -0
  851. /package/dist/{chunk-WREIYOXN.js.map → chunk-M7HX3HKW.js.map} +0 -0
  852. /package/dist/{chunk-K5V3KCFI.js.map → chunk-MG73KW54.js.map} +0 -0
  853. /package/dist/{chunk-VESIQYBF.js.map → chunk-MGP5LLEK.js.map} +0 -0
  854. /package/dist/{chunk-JGV66VUK.js.map → chunk-MSXNA3UH.js.map} +0 -0
  855. /package/dist/{chunk-JYF3HT7M.js.map → chunk-N74IYYRU.js.map} +0 -0
  856. /package/dist/{chunk-DOMEYGTN.js.map → chunk-NBBFFPTA.js.map} +0 -0
  857. /package/dist/{chunk-SX3V2DLV.js.map → chunk-NFLY5JMP.js.map} +0 -0
  858. /package/dist/{chunk-ZWIDQEJ4.js.map → chunk-NLBIG5LU.js.map} +0 -0
  859. /package/dist/{chunk-V7F53GEO.js.map → chunk-NU3EQX2L.js.map} +0 -0
  860. /package/dist/{chunk-K4JRHQMI.js.map → chunk-O4C5LUTJ.js.map} +0 -0
  861. /package/dist/{chunk-REMK55JI.js.map → chunk-OLZTGVBT.js.map} +0 -0
  862. /package/dist/{chunk-VJFH2AXT.js.map → chunk-OOGKAFBU.js.map} +0 -0
  863. /package/dist/{chunk-IVVOIDE5.js.map → chunk-OZZNC4YU.js.map} +0 -0
  864. /package/dist/{chunk-GVDJQMFI.js.map → chunk-PH5XJGKJ.js.map} +0 -0
  865. /package/dist/{chunk-B6IURHSZ.js.map → chunk-PXH24VIP.js.map} +0 -0
  866. /package/dist/{chunk-MZQTHSLN.js.map → chunk-Q2GZMDZL.js.map} +0 -0
  867. /package/dist/{chunk-65DLYC4S.js.map → chunk-QNHNFU7G.js.map} +0 -0
  868. /package/dist/{chunk-TU6RNZUQ.js.map → chunk-R2I3LUUH.js.map} +0 -0
  869. /package/dist/{chunk-237NDIT2.js.map → chunk-R67J6JKT.js.map} +0 -0
  870. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  871. /package/dist/{chunk-XYDW5RQB.js.map → chunk-RAWQMBX6.js.map} +0 -0
  872. /package/dist/{chunk-L6TCIZFR.js.map → chunk-RGKGBYT2.js.map} +0 -0
  873. /package/dist/{chunk-C5EFVSBN.js.map → chunk-RGMSTQ2J.js.map} +0 -0
  874. /package/dist/{chunk-CPNSVIIB.js.map → chunk-RP3W6IQO.js.map} +0 -0
  875. /package/dist/{chunk-UEJQQVP2.js.map → chunk-RRX6ZTNX.js.map} +0 -0
  876. /package/dist/{chunk-PFZAUMJA.js.map → chunk-RUEKY3VR.js.map} +0 -0
  877. /package/dist/{chunk-3T2I6BYA.js.map → chunk-SJIBPRPB.js.map} +0 -0
  878. /package/dist/{chunk-4XVH6IWN.js.map → chunk-SVFA75FO.js.map} +0 -0
  879. /package/dist/{chunk-PMS3H3OO.js.map → chunk-T53L42XW.js.map} +0 -0
  880. /package/dist/{chunk-624TFFLJ.js.map → chunk-T5MOGJ56.js.map} +0 -0
  881. /package/dist/{chunk-K2JH7QPR.js.map → chunk-TBRAZK3Y.js.map} +0 -0
  882. /package/dist/{chunk-DAPK3ADA.js.map → chunk-TC3EPGGJ.js.map} +0 -0
  883. /package/dist/{chunk-NFAKRI4S.js.map → chunk-TCLBB7U4.js.map} +0 -0
  884. /package/dist/{chunk-EVXFEXBS.js.map → chunk-TJT4NSFN.js.map} +0 -0
  885. /package/dist/{chunk-RNCQ5KHQ.js.map → chunk-TN55JKIU.js.map} +0 -0
  886. /package/dist/{chunk-5KFZGB5U.js.map → chunk-TTVKL3RD.js.map} +0 -0
  887. /package/dist/{chunk-UCTJJYVC.js.map → chunk-TTW4MAOJ.js.map} +0 -0
  888. /package/dist/{chunk-3TFUAKWJ.js.map → chunk-U3ON6YW3.js.map} +0 -0
  889. /package/dist/{chunk-EPRA5QLB.js.map → chunk-U3PPLAFB.js.map} +0 -0
  890. /package/dist/{chunk-VVXA7T2M.js.map → chunk-UEWIIYGA.js.map} +0 -0
  891. /package/dist/{chunk-HT4B2DJU.js.map → chunk-UJE7IKQ4.js.map} +0 -0
  892. /package/dist/{chunk-QRX5BYUQ.js.map → chunk-V3WWNKHU.js.map} +0 -0
  893. /package/dist/{chunk-6IKX5IIX.js.map → chunk-VI7YYAXV.js.map} +0 -0
  894. /package/dist/{chunk-VKH7AENA.js.map → chunk-VLVMJDGD.js.map} +0 -0
  895. /package/dist/{chunk-VMXDTCYF.js.map → chunk-WMALDOF5.js.map} +0 -0
  896. /package/dist/{chunk-23FCBIUN.js.map → chunk-WQSL6MCA.js.map} +0 -0
  897. /package/dist/{chunk-GSFNH4C5.js.map → chunk-WROCSDVL.js.map} +0 -0
  898. /package/dist/{chunk-U7Q2Y6WG.js.map → chunk-X4HGBK4G.js.map} +0 -0
  899. /package/dist/{chunk-2UBFDRL7.js.map → chunk-X4XYUNRL.js.map} +0 -0
  900. /package/dist/{chunk-3XLDTVLC.js.map → chunk-XM6WEANW.js.map} +0 -0
  901. /package/dist/{chunk-22ZJH7RY.js.map → chunk-XO27IMBE.js.map} +0 -0
  902. /package/dist/{chunk-MSUSZLRE.js.map → chunk-XY6KOMRN.js.map} +0 -0
  903. /package/dist/{chunk-NWQWUYOV.js.map → chunk-Y7ZS724A.js.map} +0 -0
  904. /package/dist/{chunk-OH3YGJT5.js.map → chunk-YCNKH5P6.js.map} +0 -0
  905. /package/dist/{chunk-HKKSZ7HG.js.map → chunk-YESTO24O.js.map} +0 -0
  906. /package/dist/{chunk-JPVDZXXX.js.map → chunk-YZKA7UJK.js.map} +0 -0
  907. /package/dist/{chunk-HGJHZ5PE.js.map → chunk-ZB6BX4GO.js.map} +0 -0
  908. /package/dist/{chunk-7AR2R7TV.js.map → chunk-ZDWU52DJ.js.map} +0 -0
  909. /package/dist/{chunk-OXQP3N6X.js.map → chunk-ZTZ6S5Q6.js.map} +0 -0
  910. /package/dist/native/chunks/{chunk-YXM4NR2B.js.map → chunk-4KWFRDI2.js.map} +0 -0
  911. /package/dist/native/chunks/{chunk-CO47ZRXO.js.map → chunk-5IASLIBI.js.map} +0 -0
  912. /package/dist/native/chunks/{chunk-6XDMYJBW.js.map → chunk-GUBTMR2K.js.map} +0 -0
  913. /package/dist/native/chunks/{chunk-SOQVMWLQ.js.map → chunk-OI57L6WL.js.map} +0 -0
  914. /package/dist/native/chunks/{chunk-2HLEFYJ5.js.map → chunk-X6RQGKGF.js.map} +0 -0
@@ -16,6 +16,8 @@ import type {
16
16
  SortFieldDefinition,
17
17
  SortOrderOption,
18
18
  } from './ContentToolbar.types';
19
+ import { fieldRadiusPx } from '../../../tokens/field-radius';
20
+ import { fieldHeight } from '../../../tokens/field-height';
19
21
 
20
22
  function findActiveField<TField extends string>(
21
23
  fields: SortFieldDefinition<TField>[] | undefined,
@@ -218,7 +220,7 @@ export function SortByDropdown<TField extends string = string>({
218
220
  aria-haspopup="menu"
219
221
  aria-expanded={open}
220
222
  onClick={(event) => setAnchorEl(event.currentTarget)}
221
- sx={{ minWidth: 0, height: 32, px: 1, gap: 0.5, color: 'text.primary', textTransform: 'none', fontWeight: 600 }}
223
+ sx={{ minWidth: 0, height: fieldHeight, px: 1, gap: 0.5, borderRadius: fieldRadiusPx, color: 'text.primary', textTransform: 'none', fontWeight: 600 }}
222
224
  >
223
225
  {/* Full "Nome (crescente)" on md+; just the field name on mobile — the
224
226
  arrow already conveys the direction, so the parenthetical is dropped. */}
@@ -18,6 +18,8 @@ import type SvgIcon from '@mui/material/SvgIcon/index.js';
18
18
  import React, { useState } from 'react';
19
19
 
20
20
  import type { ViewMode, ViewSelectorProps } from './ContentToolbar.types';
21
+ import { fieldRadiusPx } from '../../../tokens/field-radius';
22
+ import { fieldHeight } from '../../../tokens/field-height';
21
23
 
22
24
  const VIEW_OPTIONS: { value: ViewMode; label: string; icon: typeof SvgIcon }[] = [
23
25
  { value: 'grid', label: 'Grid View', icon: GridIcon },
@@ -66,7 +68,7 @@ export function ViewSelector({
66
68
  aria-haspopup="menu"
67
69
  aria-expanded={open}
68
70
  onClick={(event) => setAnchorEl(event.currentTarget)}
69
- sx={{ minWidth: 0, height: 32, px: 1, gap: 1, color: 'text.secondary' }}
71
+ sx={{ minWidth: 0, height: fieldHeight, px: 1, gap: 1, borderRadius: fieldRadiusPx, color: 'text.secondary' }}
70
72
  >
71
73
  <ActiveIcon sx={{ fontSize: 16 }} />
72
74
  <ChevronDownIcon sx={{ fontSize: 14 }} />
@@ -24,6 +24,7 @@ import type {
24
24
  TableFilterRangeFieldProps,
25
25
  TableFilterSectionProps,
26
26
  } from './TableFilter.types';
27
+ import { fieldTextFieldStyles } from '../../../tokens/field-height';
27
28
 
28
29
  const PANEL_WIDTH = 280;
29
30
 
@@ -182,6 +183,7 @@ const TableFilterKeyword = ({
182
183
  </Typography>
183
184
  <TextField
184
185
  size="small"
186
+ sx={fieldTextFieldStyles}
185
187
  name="keyword"
186
188
  placeholder={placeholder}
187
189
  value={draft}
@@ -306,6 +308,7 @@ function RangeBound({
306
308
  return (
307
309
  <TextField
308
310
  size="small"
311
+ sx={fieldTextFieldStyles}
309
312
  type="number"
310
313
  error={error}
311
314
  placeholder={placeholder}
@@ -8,6 +8,7 @@ import type { FC } from 'react';
8
8
  import React from 'react';
9
9
 
10
10
  import { scaleFor } from './Pagination.helpers';
11
+ import { asFieldSize, fieldTextFieldStyles } from '../../../tokens/field-height';
11
12
 
12
13
  // Kept module-local: styled() components cannot be exported across a module
13
14
  // boundary here without tripping TS2742.
@@ -47,7 +48,7 @@ export const ItemsPerPageSelect: FC<ItemsPerPageSelectProps> = ({
47
48
  <Typography variant="body2" color="text.secondary">
48
49
  {pageSizeLabel}
49
50
  </Typography>
50
- <FormControl size="small" sx={{ minWidth: 80 }}>
51
+ <FormControl size="small" sx={(theme) => ({ minWidth: 80, ...fieldTextFieldStyles(theme, asFieldSize(size)) })}>
51
52
  <Select
52
53
  value={value}
53
54
  onChange={(event) => onChange(event.target.value as number)}
@@ -56,7 +57,6 @@ export const ItemsPerPageSelect: FC<ItemsPerPageSelectProps> = ({
56
57
  sx={{
57
58
  '& .MuiSelect-select': {
58
59
  fontSize: scaleFor(size, ['0.875rem', '1rem', '1.125rem']),
59
- py: scaleFor(size, [0.5, 1, 1.5]),
60
60
  },
61
61
  }}
62
62
  >
@@ -1,6 +1,9 @@
1
1
  import type { PaletteColor, Theme, ThemeOptions } from '@mui/material/styles/index.js';
2
2
 
3
3
  import { cssLengthToPx, cssTrackingToEm } from '../tokens/css-units';
4
+ import { resolveFieldHeight } from '../tokens/field-height.core';
5
+ import { fieldOverrides } from '../tokens/field-height';
6
+ import { fieldRadius } from '../tokens/field-radius';
4
7
  import { accentFor } from '../tokens/scales';
5
8
  import {
6
9
  FONT_WEIGHTS,
@@ -97,7 +100,8 @@ export function uiThemeFromMui(theme: Theme): UiTheme {
97
100
  },
98
101
  spacing: (units: number) => units * unit,
99
102
  spacingUnit: unit,
100
- radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999 },
103
+ radius: { sm: md / 2, md, lg: md * 2, xl: md * 4, full: 9999, field: fieldRadius(theme) },
104
+ fieldHeight: resolveFieldHeight(theme.fieldHeight),
101
105
  typography: {
102
106
  fontFamily: theme.typography.fontFamily ?? WEB_FONT_FAMILY,
103
107
  monospaceFontFamily: WEB_MONOSPACE_FONT_FAMILY,
@@ -134,6 +138,9 @@ export function muiThemeOptionsFrom(ui: UiTheme): ThemeOptions {
134
138
  grey: { ...palette.grey },
135
139
  },
136
140
  shape: { borderRadius: ui.radius.md },
141
+ fieldRadius: ui.radius.field,
142
+ fieldHeight: ui.fieldHeight,
143
+ components: fieldOverrides(ui.radius.field, ui.fieldHeight),
137
144
  spacing: ui.spacingUnit,
138
145
  typography: { fontFamily: ui.typography.fontFamily ?? WEB_FONT_FAMILY },
139
146
  zIndex: { ...ui.zIndex },
@@ -0,0 +1,70 @@
1
+ import type { SizeValue } from './vocabulary';
2
+
3
+ /**
4
+ * THE ONE HEIGHT EVERY FIELD IS DRAWN AT, WITH NO RENDERER BEHIND IT.
5
+ *
6
+ * A filter row used to stand at three heights — a 40px search box, 34px filter
7
+ * pills, 38px category and "Mais" triggers — and a form's default field was
8
+ * 56px beside a 44px button (FUT-2555). A field's height is one decision, so it
9
+ * is one token, the same way its corner is (`./field-radius.core.ts`).
10
+ *
11
+ * It is a multiple of the DEFAULT FONT SIZE — `rem` on the web, the body size on
12
+ * native — not a pixel count, so a field grows with the type it holds: a reader
13
+ * who raises the browser's base size gets taller fields with it instead of text
14
+ * crammed into a fixed box.
15
+ *
16
+ * The web reader and the theme channel are in `./field-height.ts`.
17
+ */
18
+
19
+ /**
20
+ * The standard field height, in multiples of the default font size.
21
+ *
22
+ * 2.5 — 40px at the 16px default: what MUI's small outlined field has always
23
+ * drawn (the filter row's search box), and the 40px touch-target floor the
24
+ * product already holds its controls to.
25
+ */
26
+ export const DEFAULT_FIELD_HEIGHT = 2.5;
27
+
28
+ /** The px (dp) the default font size stands for — `1rem`, the body size. */
29
+ export const FIELD_HEIGHT_FONT_PX = 16;
30
+
31
+ /**
32
+ * How each step of the size scale relates to the standard height.
33
+ *
34
+ * `sm` and `md` ARE the standard: they were the two everyday densities (a 40px
35
+ * small field, a 56px medium one, a 36px and a 44px button), and a row mixing
36
+ * them is exactly what this token ends. `xs` is the compact step; `lg` and `xl`
37
+ * the roomy ones. All of them stay multiples of the font size.
38
+ */
39
+ export const FIELD_HEIGHT_SCALE: Record<SizeValue, number> = {
40
+ xs: 0.8,
41
+ sm: 1,
42
+ md: 1,
43
+ lg: 1.2,
44
+ xl: 1.4,
45
+ };
46
+
47
+ /** A usable standard height: the given one when it is a positive number, the default otherwise. */
48
+ export function resolveFieldHeight(height: unknown): number {
49
+ return typeof height === 'number' && Number.isFinite(height) && height > 0 ? height : DEFAULT_FIELD_HEIGHT;
50
+ }
51
+
52
+ /** A field's height for a size, in multiples of the default font size (`rem`). */
53
+ export function fieldHeightRem(height: number, size: SizeValue = 'md'): number {
54
+ // Rounded to 1/10000rem: `3 * 0.8` is 2.4000000000000004 in floating point,
55
+ // and that would be the CSS every field of the step is written with.
56
+ return Math.round(resolveFieldHeight(height) * FIELD_HEIGHT_SCALE[size] * 10_000) / 10_000;
57
+ }
58
+
59
+ /** A field's height for a size in px (dp) — what the native renderer lays out. */
60
+ export function fieldHeightPx(height: number, size: SizeValue = 'md'): number {
61
+ return fieldHeightRem(height, size) * FIELD_HEIGHT_FONT_PX;
62
+ }
63
+
64
+ /**
65
+ * THE ONE RESTING BORDER EVERY FIELD DRAWS: this width, in `fieldEdge`'s colour
66
+ * (`./field-edge.core.ts`, the tone of the theme's hairline that clears the 3:1
67
+ * non-text contrast floor). A variant that draws a different edge on purpose —
68
+ * `glass`, `gradient`, `underline`, a coloured outline button — keeps it.
69
+ */
70
+ export const FIELD_BORDER_WIDTH = 1;
@@ -0,0 +1,152 @@
1
+ import type { Components, CSSObject, Theme } from '@mui/material/styles/index.js';
2
+
3
+ import { fieldEdge } from './field-edge';
4
+ import { fieldRadiusOverrides, fieldRootStyles } from './field-radius';
5
+ import {
6
+ DEFAULT_FIELD_HEIGHT,
7
+ FIELD_BORDER_WIDTH,
8
+ FIELD_HEIGHT_SCALE,
9
+ fieldHeightRem,
10
+ resolveFieldHeight,
11
+ } from './field-height.core';
12
+
13
+ import type { SizeValue } from './vocabulary';
14
+
15
+ /**
16
+ * THE FIELD HEIGHT AND BORDER ON THE WEB: the theme channel, the readers, and
17
+ * the styles that put a MUI text field or select on them.
18
+ *
19
+ * The argument for one height is in `./field-height.core.ts`. It is a top-level
20
+ * theme key for the reason `fieldRadius` is (`./field-radius.ts`): MUI types
21
+ * `shape` in `@mui/system`, which this package does not depend on.
22
+ */
23
+
24
+ export {
25
+ DEFAULT_FIELD_HEIGHT,
26
+ FIELD_BORDER_WIDTH,
27
+ FIELD_HEIGHT_SCALE,
28
+ fieldHeightPx,
29
+ fieldHeightRem,
30
+ } from './field-height.core';
31
+
32
+ declare module '@mui/material/styles' {
33
+ interface Theme {
34
+ /** The standard field height, in multiples of the default font size. See `@12-apps/ui/tokens`' `fieldHeight`. */
35
+ fieldHeight?: number;
36
+ }
37
+ interface ThemeOptions {
38
+ /** The standard field height, in multiples of the default font size. Defaults to {@link DEFAULT_FIELD_HEIGHT}. */
39
+ fieldHeight?: number;
40
+ }
41
+ }
42
+
43
+ /** A component's own size string as a step of the field scale — `md` when it is not one. */
44
+ export function asFieldSize(size: string | undefined): SizeValue {
45
+ return size !== undefined && size in FIELD_HEIGHT_SCALE ? (size as SizeValue) : 'md';
46
+ }
47
+
48
+ /** A field's height for a size, as CSS — `2.5rem` for the default. */
49
+ export function fieldHeight(theme: Theme, size: SizeValue = 'md'): string {
50
+ return `${fieldHeightRem(resolveFieldHeight(theme.fieldHeight), size)}rem`;
51
+ }
52
+
53
+ /** The resting border every field draws: 1px in {@link fieldEdge}'s colour. */
54
+ export function fieldBorder(theme: Theme, surface?: string): string {
55
+ return `${FIELD_BORDER_WIDTH}px solid ${fieldEdge(theme, surface)}`;
56
+ }
57
+
58
+ /**
59
+ * The vertical padding that makes a one-line box `height` tall around MUI's
60
+ * `1.4375em` line — in `em`, so it is measured against the field's own type.
61
+ */
62
+ const verticalInset = (height: string): string => `calc((${height} - 1.4375em) / 2)`;
63
+
64
+ /**
65
+ * A MUI `TextField` / `Select` / `Autocomplete` (outlined, one line) at the
66
+ * field height for `size`: the root's own vertical padding goes, the input
67
+ * takes the inset, and the resting label sits on the new centre line.
68
+ *
69
+ * Multiline fields are left alone — their height is their content's — and so
70
+ * are `filled` and `standard`, whose label sits inside the box and which draw
71
+ * their own heights as variants.
72
+ */
73
+ export function fieldControlStyles(theme: Theme, size: SizeValue = 'md'): CSSObject {
74
+ const inset = verticalInset(fieldHeight(theme, size));
75
+ return {
76
+ '& .MuiOutlinedInput-root:not(.MuiInputBase-multiline)': {
77
+ paddingTop: 0,
78
+ paddingBottom: 0,
79
+ '& .MuiOutlinedInput-input, & .MuiSelect-select': { paddingTop: inset, paddingBottom: inset },
80
+ // A select's display box inherits the ROOT's line height as an absolute
81
+ // length, so at a smaller font (0.875rem) it outgrew the inset measured in
82
+ // its own `em` — 42.88px in a 40px row. Its line follows its own type now.
83
+ '& .MuiSelect-select': { lineHeight: '1.4375em' },
84
+ },
85
+ '& .MuiInputLabel-outlined:not(.MuiInputLabel-shrink)': {
86
+ transform: `translate(14px, ${inset}) scale(1)`,
87
+ },
88
+ };
89
+ }
90
+
91
+ /**
92
+ * The notched outline's resting colour, as a MUI style-override callback. One
93
+ * function, not one per call: two themes built from the same options must
94
+ * compare equal, and a fresh closure each time would make them differ.
95
+ */
96
+ const restingEdge = ({ theme }: { theme: Theme }): CSSObject => ({ borderColor: fieldEdge(theme) });
97
+
98
+ /**
99
+ * MUI component overrides that put MUI's OWN outlined fields on the standard
100
+ * height and the one resting border — for a host's bare `TextField` / `Select`,
101
+ * the way `fieldRadiusOverrides` rounds them. Every size MUI has maps to the standard:
102
+ * a host that wants another density asks this package's fields for a `size`.
103
+ */
104
+ export function fieldHeightOverrides(height: number = DEFAULT_FIELD_HEIGHT): Components<Theme> {
105
+ const inset = verticalInset(`${fieldHeightRem(height)}rem`);
106
+ return {
107
+ MuiOutlinedInput: {
108
+ styleOverrides: {
109
+ input: { '&:not(.MuiInputBase-inputMultiline)': { paddingTop: inset, paddingBottom: inset } },
110
+ // The one resting border; MUI's hover, focus and error rules outrank it.
111
+ notchedOutline: restingEdge,
112
+ },
113
+ },
114
+ MuiInputLabel: {
115
+ styleOverrides: {
116
+ outlined: { '&:not(.MuiInputLabel-shrink)': { transform: `translate(14px, ${inset}) scale(1)` } },
117
+ },
118
+ },
119
+ };
120
+ }
121
+
122
+ /**
123
+ * Both field overrides — the corner and the height — merged per component.
124
+ * They meet on `MuiOutlinedInput` (`root` from the radius, `input` from the
125
+ * height), so a plain spread would lose one of them.
126
+ */
127
+ export function fieldOverrides(radius: number | undefined, height: number | undefined): Components<Theme> {
128
+ type Entry = { styleOverrides?: Record<string, unknown> };
129
+ const corner = fieldRadiusOverrides(radius) as Record<string, Entry>;
130
+ const tall = fieldHeightOverrides(height) as Record<string, Entry>;
131
+ const names = new Set([...Object.keys(corner), ...Object.keys(tall)]);
132
+ return Object.fromEntries(
133
+ [...names].map((name) => [
134
+ name,
135
+ { styleOverrides: { ...corner[name]?.styleOverrides, ...tall[name]?.styleOverrides } },
136
+ ]),
137
+ ) as Components<Theme>;
138
+ }
139
+
140
+ /**
141
+ * THE field standard on a MUI `TextField` / `Select` / `Autocomplete`, for a
142
+ * composite that renders MUI's own: the field radius, the field height for
143
+ * `size`, and the one resting border ({@link fieldEdge}). MUI's own hover,
144
+ * focus and error borders outrank the resting one, so they still show.
145
+ */
146
+ export function fieldTextFieldStyles(theme: Theme, size: SizeValue = 'md'): CSSObject {
147
+ return {
148
+ ...fieldRootStyles(theme),
149
+ ...fieldControlStyles(theme, size),
150
+ '& .MuiOutlinedInput-notchedOutline': { borderColor: fieldEdge(theme) },
151
+ };
152
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * THE ONE RADIUS EVERY FIELD IS DRAWN WITH, WITH NO RENDERER BEHIND IT.
3
+ *
4
+ * A row of controls — a search box, three filter triggers, a "Mais" button —
5
+ * used to carry three radii: the text field took MUI's `shape.borderRadius`
6
+ * (4px), the button `theme.spacing(1)` (8px), and the filter triggers a 999px
7
+ * pill. Each was reasonable on its own; side by side they read as three kits
8
+ * glued together. A field's corner is one decision, so it is one token.
9
+ *
10
+ * "Field" is anything that sits at control height and takes input or opens a
11
+ * choice: text inputs, selects, textareas, OTP slots, date and filter triggers,
12
+ * toggles, and the buttons that share their rows. It is NOT a card, a menu, a
13
+ * badge or a chip counter — those keep the theme's general `radius` scale.
14
+ *
15
+ * This file is the number alone, so the native renderer and `./theme.ts` read
16
+ * it without importing MUI. The web reader and the theme channel it is set
17
+ * through are in `./field-radius.ts`.
18
+ */
19
+
20
+ /**
21
+ * The default field radius, in px (dp on native).
22
+ *
23
+ * 8, because that is what `Button` has always drawn — so the control people
24
+ * see most keeps its corner and the rest of the row comes to meet it.
25
+ */
26
+ export const DEFAULT_FIELD_RADIUS = 8;
@@ -0,0 +1,90 @@
1
+ import type { Components, CSSObject, Theme } from '@mui/material/styles/index.js';
2
+
3
+ import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
4
+
5
+ /**
6
+ * THE FIELD RADIUS ON THE WEB: the theme channel, the reader, and the MUI
7
+ * overrides that carry it into controls this package does not style itself.
8
+ *
9
+ * The argument for one radius is in `./field-radius.core.ts`.
10
+ *
11
+ * ## Why a key of our own, and not `shape.borderRadius`
12
+ *
13
+ * `shape.borderRadius` is MUI's GENERAL radius: `Paper`, `Card`, `Menu`,
14
+ * `Alert`, `Chip` and every `sx={{ borderRadius: n }}` multiply it. Moving it to
15
+ * round the fields would round every surface in the app along with them. A
16
+ * separate key moves the fields and nothing else.
17
+ *
18
+ * It is a top-level theme key rather than `shape.fieldRadius` because MUI types
19
+ * `shape` in `@mui/system`, which this package does not depend on — augmenting
20
+ * it would fail to resolve in a host. MUI documents top-level custom variables
21
+ * for exactly this, and `createTheme` carries unknown keys through.
22
+ */
23
+
24
+ export { DEFAULT_FIELD_RADIUS } from './field-radius.core';
25
+
26
+ declare module '@mui/material/styles' {
27
+ interface Theme {
28
+ /** The radius every field is drawn with, in px. See `@12-apps/ui/tokens`' `fieldRadius`. */
29
+ fieldRadius?: number;
30
+ }
31
+ interface ThemeOptions {
32
+ /** The radius every field is drawn with, in px. Defaults to {@link DEFAULT_FIELD_RADIUS}. */
33
+ fieldRadius?: number;
34
+ }
35
+ }
36
+
37
+ /** The field radius the host's theme asks for, in px — the default when it asks for none. */
38
+ export function fieldRadius(theme: Theme): number {
39
+ const radius = theme.fieldRadius;
40
+ return typeof radius === 'number' && Number.isFinite(radius) && radius >= 0 ? radius : DEFAULT_FIELD_RADIUS;
41
+ }
42
+
43
+ /**
44
+ * {@link fieldRadius} as a `px` string, for `sx`.
45
+ *
46
+ * `sx` MULTIPLIES a bare number by `shape.borderRadius` — `sx={{ borderRadius: 8 }}`
47
+ * is 32px on the default theme — so a field radius handed to `sx` must carry
48
+ * its unit. `styled()` objects take the plain number.
49
+ */
50
+ export function fieldRadiusPx(theme: Theme): string {
51
+ return `${fieldRadius(theme)}px`;
52
+ }
53
+
54
+ /**
55
+ * The field radius on a MUI `TextField`'s input root — for a composite that
56
+ * renders MUI's own `TextField`, so it follows the theme's field radius under
57
+ * ANY theme, not only one built with {@link fieldRadiusOverrides}. Plain CSS
58
+ * with the unit, so it works as `styled()` styles and as an `sx` entry.
59
+ */
60
+ export function fieldRootStyles(theme: Theme): CSSObject {
61
+ const radius = fieldRadiusPx(theme);
62
+ return {
63
+ '& .MuiOutlinedInput-root': { borderRadius: radius },
64
+ '& .MuiFilledInput-root': { borderTopLeftRadius: radius, borderTopRightRadius: radius },
65
+ };
66
+ }
67
+
68
+ /**
69
+ * MUI component overrides that round MUI's OWN fields to `radius`.
70
+ *
71
+ * This package's fields read {@link fieldRadius} themselves, so they are right
72
+ * under any theme. These overrides are for the host's: a bare `TextField`,
73
+ * `Select` or `Button` a host renders straight from MUI would otherwise keep
74
+ * `shape.borderRadius` and sit in the row with a different corner. A theme builder spreads them into `components`, under the
75
+ * host's own entries so a host override still wins.
76
+ *
77
+ * `FilledInput` rounds its top corners only — its bottom edge is the underline.
78
+ */
79
+ export function fieldRadiusOverrides(radius: number = DEFAULT_FIELD_RADIUS): Components<Theme> {
80
+ return {
81
+ MuiOutlinedInput: { styleOverrides: { root: { borderRadius: radius } } },
82
+ MuiFilledInput: {
83
+ styleOverrides: { root: { borderTopLeftRadius: radius, borderTopRightRadius: radius } },
84
+ },
85
+ MuiButton: { styleOverrides: { root: { borderRadius: radius } } },
86
+ // The group squares its inner corners itself, so rounding each button
87
+ // rounds the group's outer ones.
88
+ MuiToggleButton: { styleOverrides: { root: { borderRadius: radius } } },
89
+ };
90
+ }
@@ -7,3 +7,11 @@
7
7
  export * from './vocabulary';
8
8
  export * from './theme';
9
9
  export * from './color';
10
+ export { DEFAULT_FIELD_RADIUS } from './field-radius.core';
11
+ export {
12
+ DEFAULT_FIELD_HEIGHT,
13
+ FIELD_BORDER_WIDTH,
14
+ FIELD_HEIGHT_SCALE,
15
+ fieldHeightPx,
16
+ fieldHeightRem,
17
+ } from './field-height.core';
@@ -14,6 +14,21 @@ export { headingMetrics } from './typography';
14
14
  // host can build a `UiTheme` from the same module path a native one does.
15
15
  export * from './theme';
16
16
  export * from './color';
17
+ export { DEFAULT_FIELD_RADIUS, fieldRadius, fieldRadiusOverrides, fieldRadiusPx, fieldRootStyles } from './field-radius';
18
+ export {
19
+ asFieldSize,
20
+ DEFAULT_FIELD_HEIGHT,
21
+ FIELD_BORDER_WIDTH,
22
+ FIELD_HEIGHT_SCALE,
23
+ fieldBorder,
24
+ fieldControlStyles,
25
+ fieldHeight,
26
+ fieldHeightOverrides,
27
+ fieldHeightPx,
28
+ fieldHeightRem,
29
+ fieldOverrides,
30
+ fieldTextFieldStyles,
31
+ } from './field-height';
17
32
 
18
33
  export interface Accent {
19
34
  main: string;
@@ -8,6 +8,8 @@ import { contrastText, DARK_TEXT_PRIMARY, inkOver } from './ink-over';
8
8
  */
9
9
  export { contrastText, inkOver };
10
10
  import { cssLengthToPx, cssTrackingToEm } from './css-units';
11
+ import { resolveFieldHeight } from './field-height.core';
12
+ import { DEFAULT_FIELD_RADIUS } from './field-radius.core';
11
13
  import { HEADING_SCALE, type HeadingLevel } from './heading-scale';
12
14
 
13
15
  import type { SizeValue } from './vocabulary';
@@ -106,8 +108,18 @@ export interface UiTheme {
106
108
  /** MUI's `theme.spacing(n)`: `n` units of {@link UiTheme.spacingUnit}, in px. */
107
109
  spacing: (units: number) => number;
108
110
  spacingUnit: number;
109
- /** `md` is MUI's `shape.borderRadius`; the others are its halves and doubles. */
110
- radius: { sm: number; md: number; lg: number; xl: number; full: number };
111
+ /**
112
+ * `md` is MUI's `shape.borderRadius`; `sm`–`xl` are its halves and doubles.
113
+ * `field` is not on that scale: it is the one corner every field is drawn
114
+ * with (see `./field-radius.core`), MUI's `theme.fieldRadius` on the web.
115
+ */
116
+ radius: { sm: number; md: number; lg: number; xl: number; full: number; field: number };
117
+ /**
118
+ * The standard field height, in multiples of the default font size — MUI's
119
+ * `theme.fieldHeight` on the web. `fieldHeightPx(theme.fieldHeight, size)`
120
+ * (`./field-height.core`) is the dp a field of `size` lays out at.
121
+ */
122
+ fieldHeight: number;
111
123
  typography: UiTypography;
112
124
  zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };
113
125
  }
@@ -128,6 +140,10 @@ export interface UiThemeOptions {
128
140
  }>;
129
141
  typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;
130
142
  spacingUnit?: number;
143
+ /** The radius every field is drawn with, in dp. Defaults to {@link DEFAULT_FIELD_RADIUS}. */
144
+ fieldRadius?: number;
145
+ /** The standard field height, in multiples of the default font size. Defaults to 2.5. */
146
+ fieldHeight?: number;
131
147
  }
132
148
 
133
149
  const ROOT_FONT_PX = 16;
@@ -311,7 +327,8 @@ export function createUiTheme(options: UiThemeOptions = {}): UiTheme {
311
327
  palette,
312
328
  spacing: (units: number) => units * spacingUnit,
313
329
  spacingUnit,
314
- radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999 },
330
+ radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999, field: options.fieldRadius ?? DEFAULT_FIELD_RADIUS },
331
+ fieldHeight: resolveFieldHeight(options.fieldHeight),
315
332
  typography: {
316
333
  fontFamily: options.typography?.fontFamily,
317
334
  monospaceFontFamily: options.typography?.monospaceFontFamily,
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/AddressAutocomplete/AddressTextField.tsx"],"sourcesContent":["import type { TextFieldProps } from '@mui/material/TextField/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport type { AddressAutocompleteProps } from './AddressAutocomplete.types';\n\nimport { fieldEdge } from '../../../tokens/field-edge';\n\n// Kept module-local on purpose: the inferred type of a styled() component cannot\n// be named across a module boundary here (TS2742), so the plain component below\n// is what the rest of the folder imports.\nconst GlassTextField = styled(TextField)(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.8)} 0%, ${alpha(theme.palette.background.paper, 0.6)} 100%)`,\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n border: `1px solid ${fieldEdge(theme)}`,\n transition: theme.transitions.create(['border-color', 'box-shadow', 'background']),\n '&:hover': {\n background: `linear-gradient(135deg, ${alpha(theme.palette.background.paper, 0.9)} 0%, ${alpha(theme.palette.background.paper, 0.7)} 100%)`,\n borderColor: theme.palette.primary.main,\n },\n '&.Mui-focused': {\n background: theme.palette.background.paper,\n boxShadow: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.25)}`,\n },\n '& fieldset': {\n border: 'none',\n },\n },\n}));\n\nexport type AddressTextFieldProps = Omit<TextFieldProps, 'variant'> & {\n addressVariant: AddressAutocompleteProps['variant'];\n};\n\n// 'glass' is not a MUI variant: it renders the outlined field with the frosted\n// treatment on top.\nexport const AddressTextField: FC<AddressTextFieldProps> = ({ addressVariant, ...props }) =>\n addressVariant === 'glass' ? (\n <GlassTextField variant=\"outlined\" {...props} />\n ) : (\n <TextField variant={addressVariant} {...props} />\n );\n"],"mappings":";;;;;AACA,OAAO,eAAe;AACtB,SAAS,OAAO,cAAc;AAwC1B;AA7BJ,IAAM,iBAAiB,OAAO,SAAS,EAAE,CAAC,EAAE,MAAM,OAAO;AAAA,EACvD,4BAA4B;AAAA,IAC1B,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC,QAAQ,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,IACnI,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,QAAQ,aAAa,UAAU,KAAK,CAAC;AAAA,IACrC,YAAY,MAAM,YAAY,OAAO,CAAC,gBAAgB,cAAc,YAAY,CAAC;AAAA,IACjF,WAAW;AAAA,MACT,YAAY,2BAA2B,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC,QAAQ,MAAM,MAAM,QAAQ,WAAW,OAAO,GAAG,CAAC;AAAA,MACnI,aAAa,MAAM,QAAQ,QAAQ;AAAA,IACrC;AAAA,IACA,iBAAiB;AAAA,MACf,YAAY,MAAM,QAAQ,WAAW;AAAA,MACrC,WAAW,aAAa,MAAM,MAAM,QAAQ,QAAQ,MAAM,IAAI,CAAC;AAAA,IACjE;AAAA,IACA,cAAc;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACF,EAAE;AAQK,IAAM,mBAA8C,CAAC,EAAE,gBAAgB,GAAG,MAAM,MACrF,mBAAmB,UACjB,oBAAC,kBAAe,SAAQ,YAAY,GAAG,OAAO,IAE9C,oBAAC,aAAU,SAAS,gBAAiB,GAAG,OAAO;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/ContentToolbar/MultiSelectDropdown.tsx"],"sourcesContent":["'use client';\n\nimport SearchIcon from '@mui/icons-material/Search';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Checkbox from '@mui/material/Checkbox/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport InputAdornment from '@mui/material/InputAdornment/index.js';\nimport ListSubheader from '@mui/material/ListSubheader/index.js';\nimport Menu from '@mui/material/Menu/index.js';\nimport MenuItem from '@mui/material/MenuItem/index.js';\nimport TextField from '@mui/material/TextField/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport type {\n MultiSelectDropdownProps,\n MultiSelectExtraOption,\n MultiSelectOption,\n} from './ContentToolbar.types';\nimport { buildTriggerLabel, InlineTrigger, PillTrigger, StackedTrigger } from './MultiSelectTriggers';\n\n/** One checkbox menu row with an optional trailing count. */\nfunction CheckboxRow({\n label,\n count,\n checked,\n onToggle,\n}: {\n label: string;\n count?: number;\n checked: boolean;\n onToggle: (next: boolean) => void;\n}): React.JSX.Element {\n return (\n <MenuItem onClick={() => onToggle(!checked)} sx={{ gap: 1 }}>\n <Checkbox checked={checked} size=\"small\" disableRipple sx={{ p: 0, pointerEvents: 'none' }} tabIndex={-1} />\n <Box component=\"span\" sx={{ flex: 1, minWidth: 0, textAlign: 'left' }}>\n {label}\n {count != null && (\n <Box component=\"span\" sx={{ color: 'text.secondary' }}>\n {' '}\n ({count})\n </Box>\n )}\n </Box>\n </MenuItem>\n );\n}\n\n/**\n * Generic multi-select dropdown with checkboxes, counts, an optional \"Options\"\n * section, and a \"Clear\" action. Faithful MUI port of the reference toolbar's\n * \"Content Type\" control. The menu stays open while toggling options.\n */\nexport function MultiSelectDropdown<TValue extends string = string>({\n label,\n options,\n selected,\n onToggle,\n onClear,\n allLabel = 'All',\n clearLabel,\n clearText,\n extraOptionsHeading,\n extraOptions,\n searchable,\n searchPlaceholder = 'Search…',\n noResultsLabel = 'No results',\n layout = 'inline',\n 'data-testid': testId,\n onOpenChange,\n}: MultiSelectDropdownProps<TValue>): React.JSX.Element {\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const [query, setQuery] = useState('');\n const open = Boolean(anchorEl);\n const stacked = layout === 'stacked';\n // Reset the query each time the menu closes so it reopens showing everything.\n const close = (): void => {\n setAnchorEl(null);\n setQuery('');\n onOpenChange?.(false);\n };\n const triggerLabel = buildTriggerLabel(selected, options, allLabel);\n // Auto-enable search for long lists (e.g. many categories) unless overridden.\n const showSearch = searchable ?? options.length > 8;\n const anyExtraChecked = extraOptions?.some((option) => option.checked) ?? false;\n const clearDisabled = selected.size === 0 && !anyExtraChecked;\n\n const openMenu = (event: React.MouseEvent<HTMLElement>): void => {\n setAnchorEl(event.currentTarget);\n onOpenChange?.(true);\n };\n const triggerProps = { triggerLabel, open, onOpen: openMenu, testId };\n\n const renderTrigger = (): React.JSX.Element => {\n if (stacked) return <StackedTrigger label={label} {...triggerProps} />;\n if (layout === 'pill')\n return (\n <PillTrigger\n clearLabel={clearLabel}\n label={label}\n selectedCount={selected.size}\n onClear={onClear}\n {...triggerProps}\n />\n );\n return <InlineTrigger label={label} {...triggerProps} />;\n };\n\n return (\n <>\n {renderTrigger()}\n <MultiSelectMenu\n extraOptionsHeading={extraOptionsHeading} clearText={clearText} anchorEl={anchorEl}\n open={open}\n close={close}\n options={options}\n selected={selected}\n onToggle={onToggle}\n extraOptions={extraOptions}\n clearDisabled={clearDisabled}\n onClear={onClear}\n showSearch={showSearch}\n query={query}\n onQueryChange={setQuery}\n searchPlaceholder={searchPlaceholder}\n noResultsLabel={noResultsLabel}\n matchAnchorWidth={stacked}\n testId={testId}\n />\n </>\n );\n}\n\n/** Sticky search box at the top of the menu; keydowns don't reach the Menu's typeahead. */\nfunction MenuSearchField({\n query,\n onQueryChange,\n placeholder,\n testId,\n}: {\n query: string;\n onQueryChange: (value: string) => void;\n placeholder: string;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{ position: 'sticky', top: 0, zIndex: 1, bgcolor: 'background.paper', px: 1, py: 0.75 }}\n onKeyDown={(event) => event.stopPropagation()}\n >\n <TextField\n autoFocus\n size=\"small\"\n fullWidth\n value={query}\n onChange={(event) => onQueryChange(event.target.value)}\n placeholder={placeholder}\n inputProps={{ 'aria-label': placeholder, 'data-testid': testId ? `${testId}-search` : undefined }}\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ fontSize: 16 }} />\n </InputAdornment>\n ),\n }}\n />\n </Box>\n );\n}\n\ninterface MultiSelectMenuProps<TValue extends string> {\n anchorEl: HTMLElement | null;\n open: boolean;\n close: () => void;\n options: MultiSelectOption<TValue>[];\n selected: ReadonlySet<TValue>;\n onToggle: (value: TValue, checked: boolean) => void;\n extraOptions?: MultiSelectExtraOption[];\n clearDisabled: boolean;\n onClear: () => void;\n showSearch: boolean;\n query: string;\n onQueryChange: (value: string) => void;\n searchPlaceholder: string;\n noResultsLabel: string;\n extraOptionsHeading: string;\n clearText: string;\n /** Match the menu width to the trigger and left-align it (stacked select). */\n matchAnchorWidth?: boolean;\n testId?: string;\n}\n\n/**\n * Menu placement. Default: anchored to the trigger's right (toolbar). When\n * `matchAnchorWidth` (stacked select), match the trigger width and left-align so\n * the menu sits flush under the full-width control.\n */\nfunction resolveMenuPlacement(\n matchAnchorWidth: boolean | undefined,\n anchorEl: HTMLElement | null,\n): { anchorWidth: number | undefined; align: 'left' | 'right' } {\n if (!matchAnchorWidth) return { anchorWidth: undefined, align: 'right' };\n return { anchorWidth: anchorEl?.offsetWidth, align: 'left' };\n}\n\n/** The (optional) search box + checkbox list + optional \"Options\" section + a \"Clear\" footer. */\nfunction MultiSelectMenu<TValue extends string>({\n anchorEl,\n open,\n close,\n options,\n selected,\n onToggle,\n extraOptions,\n extraOptionsHeading,\n clearText,\n clearDisabled,\n onClear,\n showSearch,\n query,\n onQueryChange,\n searchPlaceholder,\n noResultsLabel,\n matchAnchorWidth,\n testId,\n}: MultiSelectMenuProps<TValue>): React.JSX.Element {\n const trimmed = query.trim().toLowerCase();\n const visibleOptions = useMemo(\n () => (trimmed ? options.filter((option) => option.label.toLowerCase().includes(trimmed)) : options),\n [options, trimmed],\n );\n const { anchorWidth, align } = resolveMenuPlacement(matchAnchorWidth, anchorEl);\n return (\n <Menu\n anchorEl={anchorEl}\n open={open}\n onClose={close}\n anchorOrigin={{ vertical: 'bottom', horizontal: align }}\n transformOrigin={{ vertical: 'top', horizontal: align }}\n // Keep focus on the search box (don't let the Menu grab the first item),\n // and stop MUI's typeahead from swallowing keystrokes meant for the input.\n autoFocus={!showSearch}\n disableAutoFocusItem\n slotProps={{\n // Cap the height so a long list (e.g. many categories) scrolls instead\n // of running off-screen; the sticky search box stays pinned on top.\n paper: { sx: { minWidth: anchorWidth ?? 180, width: anchorWidth, maxHeight: 360 } },\n list: { sx: { pt: showSearch ? 0 : undefined, pb: 0 } },\n }}\n >\n {showSearch && (\n <MenuSearchField query={query} onQueryChange={onQueryChange} placeholder={searchPlaceholder} testId={testId} />\n )}\n {visibleOptions.length === 0 && showSearch ? (\n <MenuItem disabled data-testid={testId ? `${testId}-no-results` : undefined} sx={{ fontSize: '0.8125rem' }}>\n {noResultsLabel}\n </MenuItem>\n ) : (\n visibleOptions.map((option) => (\n <CheckboxRow\n key={option.value}\n label={option.label}\n count={option.count}\n checked={selected.has(option.value)}\n onToggle={(next) => onToggle(option.value, next)}\n />\n ))\n )}\n {extraOptions && extraOptions.length > 0\n ? [\n <Divider key=\"extra-divider\" />,\n <ListSubheader key=\"extra-label\" sx={{ px: 1, py: 0.75, fontSize: '0.75rem', fontWeight: 600 }}>\n {extraOptionsHeading}\n </ListSubheader>,\n ...extraOptions.map((extra) => (\n <CheckboxRow key={extra.id} label={extra.label} checked={extra.checked} onToggle={(next) => extra.onCheckedChange(next)} />\n )),\n ]\n : null}\n <MenuClearFooter\n clearText={clearText} clearDisabled={clearDisabled} onClear={onClear}\n close={close} testId={testId}\n />\n </Menu>\n );\n}\n\n/** The bottom \"Clear\" footer that resets the selection and closes the menu. */\nfunction MenuClearFooter({\n clearText,\n clearDisabled,\n onClear,\n close,\n testId,\n}: {\n clearText: string;\n clearDisabled: boolean;\n onClear: () => void;\n close: () => void;\n testId?: string;\n}): React.JSX.Element {\n return (\n <Box\n sx={{\n // Pin to the bottom of the scroll viewport so it stays visible while the\n // options list scrolls (mirrors the sticky search box on top).\n position: 'sticky',\n bottom: 0,\n zIndex: 1,\n display: 'flex',\n justifyContent: 'flex-end',\n borderTop: 1,\n borderColor: 'divider',\n bgcolor: 'background.paper',\n px: 1,\n py: 0.75,\n }}\n >\n <Button\n variant=\"text\"\n size=\"small\"\n color=\"inherit\"\n data-testid={testId ? `${testId}-clear` : undefined}\n disabled={clearDisabled}\n onClick={() => {\n onClear();\n close();\n }}\n sx={{ minWidth: 0, px: 1, py: 0.25, fontSize: '0.75rem', fontWeight: 400, textTransform: 'none', color: 'text.secondary' }}\n >\n {clearText}\n </Button>\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/Button/Button.metrics.ts"],"sourcesContent":["import { darken, lighten } from '../../../tokens/color';\nimport type { ColorValue, SizeValue } from '../../../tokens/vocabulary';\nimport type { UiPaletteColor, UiTheme } from '../../../tokens/theme';\n\n/**\n * THE NUMBERS BOTH `Button` RENDERERS DRAW WITH.\n *\n * `Button.styles.ts` (web, emotion) and `Button.native.tsx` (React Native)\n * read this one table. The web turns the px into rem and the padding into a\n * shorthand string; native uses the numbers as they are. Neither restates a\n * value, which is what keeps a native `md` button 16px tall of padding and\n * 16px of type exactly like the web one.\n */\nexport interface ButtonSizeMetrics {\n paddingVertical: number;\n paddingHorizontal: number;\n fontSize: number;\n}\n\nexport const BUTTON_SIZES: Record<SizeValue, ButtonSizeMetrics> = {\n xs: { paddingVertical: 2, paddingHorizontal: 8, fontSize: 12 },\n sm: { paddingVertical: 6, paddingHorizontal: 12, fontSize: 14 },\n md: { paddingVertical: 8, paddingHorizontal: 16, fontSize: 16 },\n lg: { paddingVertical: 10, paddingHorizontal: 20, fontSize: 18 },\n xl: { paddingVertical: 12, paddingHorizontal: 24, fontSize: 20 },\n};\n\n/** A button that is only an icon is square: uniform padding, no min-width. */\nexport const ICON_ONLY_PADDING: Record<SizeValue, number> = {\n xs: 2,\n sm: 5,\n md: 7,\n lg: 9,\n xl: 11,\n};\n\n/**\n * The start/end icon slot's font-size, in px — MUI's `medium` value, pinned\n * (12-74).\n *\n * MUI sizes that slot off its OWN `size` prop, writing 18/20/22 onto the first\n * child of `.MuiButton-startIcon`. We never passed a `size`, so every button in\n * every size has always drawn medium's 20px; now that `size` IS forwarded — so\n * the rendered class finally names the size the button actually is — the number\n * would start moving with it.\n *\n * WHAT THAT ACTUALLY REACHES, measured in a browser rather than assumed: this\n * Button renders its own wrapper span around the icon (it carries the child\n * test id), so MUI's rule lands on the WRAPPER and reaches the glyph only when\n * the glyph takes its size by inheritance — `fontSize=\"inherit\"`, an em-sized\n * SVG, a text or emoji glyph. With the pin removed, such a glyph measured 18px\n * at `xs`/`sm` and 22px at `lg`/`xl` against the 20px it has always been. An\n * icon carrying an absolute size of its own does not move at all: a default\n * `SvgIcon` stayed 24×24 across all five.\n *\n * A silent resize of the inherited case is still a design decision arriving as\n * a side effect of a class-name fix, so it is pinned to what shipped before —\n * `Button.tsx` puts it on that same wrapper. Scaling the glyph with the button\n * is a ticket of its own.\n */\nexport const BUTTON_ICON_GLYPH_SIZE = 20;\n\nexport const BUTTON_FONT_WEIGHT = 500;\n/** `theme.spacing(1)`. */\nexport const BUTTON_RADIUS_UNITS = 1;\n/** Between the icon and the label: `theme.spacing(0.5)`. */\nexport const BUTTON_ICON_GAP_UNITS = 0.5;\nexport const BUTTON_SPINNER_SIZE = 16;\n/** MUI's `line-height` for button text. */\nexport const BUTTON_LINE_HEIGHT = 1.75;\n\n/** The wash behind an outline, ghost or text button while it is hovered or pressed. */\nexport const BUTTON_WASH_ALPHA = 0.1;\nexport const GLASS_BACKGROUND_ALPHA = 0.1;\nexport const GLASS_BACKGROUND_ALPHA_PRESSED = 0.2;\nexport const GLASS_BORDER_ALPHA = 0.2;\nexport const GLOW_INNER_ALPHA = 0.6;\nexport const GLOW_OUTER_ALPHA = 0.3;\nexport const GLOW_RADIUS = 20;\nexport const PULSE_ALPHA = 0.3;\nexport const PULSE_DURATION_MS = 2000;\nexport const PULSE_SPREAD = 15;\n\n/**\n * `neutral` has no palette slot of its own in MUI, so `Button.styles.ts` has\n * always drawn it from three greys. Same three greys here.\n */\nexport function buttonPalette(theme: UiTheme, color: ColorValue): UiPaletteColor {\n if (color === 'neutral') {\n return {\n main: theme.palette.grey[700],\n dark: theme.palette.grey[800],\n light: theme.palette.grey[500],\n contrastText: '#fff',\n };\n }\n return theme.palette[color];\n}\n\n/**\n * The label colour for `ghost` and `text`: one step darker than `main` in\n * light mode (lighter in dark), because `main` is chosen to sit UNDER white and\n * is not legible AS text on a tinted surface. See the web `quietInk`.\n */\nexport const quietInk = (theme: UiTheme, palette: UiPaletteColor): string =>\n theme.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\n/** Gradients run between two related hues; the named colours pick a specific pair. */\nexport function gradientStops(\n theme: UiTheme,\n color: ColorValue,\n palette: UiPaletteColor,\n): [string, string] {\n switch (color) {\n case 'primary':\n return [theme.palette.primary.main, theme.palette.secondary.main];\n case 'secondary':\n return [theme.palette.secondary.main, theme.palette.primary.main];\n case 'success':\n case 'warning':\n return [theme.palette[color].light, theme.palette[color].dark];\n case 'danger':\n return [theme.palette.danger.light, theme.palette.danger.dark];\n default:\n return [palette.main, palette.dark];\n }\n}\n"],"mappings":";;;;;;AAmBO,IAAM,eAAqD;AAAA,EAChE,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,UAAU,GAAG;AAAA,EAC7D,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC9D,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC9D,IAAI,EAAE,iBAAiB,IAAI,mBAAmB,IAAI,UAAU,GAAG;AAAA,EAC/D,IAAI,EAAE,iBAAiB,IAAI,mBAAmB,IAAI,UAAU,GAAG;AACjE;AAGO,IAAM,oBAA+C;AAAA,EAC1D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AA0BO,IAAM,yBAAyB;AAE/B,IAAM,qBAAqB;AAE3B,IAAM,sBAAsB;AAE5B,IAAM,wBAAwB;AAC9B,IAAM,sBAAsB;AAE5B,IAAM,qBAAqB;AAG3B,IAAM,oBAAoB;AAC1B,IAAM,yBAAyB;AAC/B,IAAM,iCAAiC;AACvC,IAAM,qBAAqB;AAC3B,IAAM,mBAAmB;AACzB,IAAM,mBAAmB;AACzB,IAAM,cAAc;AACpB,IAAM,cAAc;AACpB,IAAM,oBAAoB;AAC1B,IAAM,eAAe;AAMrB,SAAS,cAAc,OAAgB,OAAmC;AAC/E,MAAI,UAAU,WAAW;AACvB,WAAO;AAAA,MACL,MAAM,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC5B,MAAM,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC5B,OAAO,MAAM,QAAQ,KAAK,GAAG;AAAA,MAC7B,cAAc;AAAA,IAChB;AAAA,EACF;AACA,SAAO,MAAM,QAAQ,KAAK;AAC5B;AAOO,IAAM,WAAW,CAAC,OAAgB,YACvC,MAAM,SAAS,SAAS,QAAQ,QAAQ,MAAM,IAAI,IAAI,OAAO,QAAQ,MAAM,GAAG;AAGzE,SAAS,cACd,OACA,OACA,SACkB;AAClB,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,QAAQ,MAAM,MAAM,QAAQ,UAAU,IAAI;AAAA,IAClE,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,UAAU,MAAM,MAAM,QAAQ,QAAQ,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,KAAK,EAAE,OAAO,MAAM,QAAQ,KAAK,EAAE,IAAI;AAAA,IAC/D,KAAK;AACH,aAAO,CAAC,MAAM,QAAQ,OAAO,OAAO,MAAM,QAAQ,OAAO,IAAI;AAAA,IAC/D;AACE,aAAO,CAAC,QAAQ,MAAM,QAAQ,IAAI;AAAA,EACtC;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/DataViews/data-views-bar-controls.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * THE TWO BARE AFFORDANCES ON THE FILTER BAR.\n *\n * Neither opens anything, which is what sets them apart from every other\n * control on that row and why they are styled flat rather than as outlined\n * pills: one clears the filters, one leaves a search takeover. Giving them a\n * pill's weight made \"Limpar\" read as a sixth filter.\n *\n * Their own module because `data-views-inline-bar` outgrew the file-size gate.\n */\nimport CloseRoundedIcon from \"@mui/icons-material/CloseRounded\";\nimport FilterAltOffRoundedIcon from \"@mui/icons-material/FilterAltOffRounded\";\nimport Tooltip from \"@mui/material/Tooltip/index.js\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\n\n/**\n * \"Limpar\" — one gesture back to the unfiltered list.\n *\n * Present ONLY while something is applied, and last in the cluster, because it\n * is destructive and must never be where a filter control was a moment ago.\n * Each pill already carries its own ✕; this is the other job — six applied\n * filters is six ✕ hunts, and the operator who wants \"show me everything\n * again\" has no way to say it.\n *\n * Loses its label on the same rung Exibir/Exportar lose theirs, and keeps a\n * tooltip when it does: it is one of the two controls (with the search) whose\n * icon has to carry the whole meaning on a phone.\n */\nexport function ClearAllControl({\n onClearAll,\n compact,\n testIdPrefix,\n}: {\n onClearAll: () => void;\n compact: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n // No border, no fill. Every other control on this row is an outlined pill\n // because it OPENS something; this one is an escape hatch, and giving it the\n // same weight made it read as a sixth filter. Quiet until hovered.\n const button = (\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClearAll}\n data-testid={`${testIdPrefix}-clear-all`}\n aria-label={copy.filters.clearAll}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.5,\n height: 34,\n px: compact ? 0.75 : 1,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: \"0.8125rem\",\n whiteSpace: \"nowrap\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <FilterAltOffRoundedIcon sx={{ fontSize: 16 }} />\n {!compact && <Box component=\"span\">{copy.filters.clear}</Box>}\n </Box>\n );\n return compact ? <Tooltip title={copy.filters.clearAll}>{button}</Tooltip> : button;\n}\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n */\nexport function CloseSearchControl({\n onClose,\n testIdPrefix,\n}: {\n onClose: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Tooltip title={copy.search.close}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClose}\n aria-label={copy.search.close}\n data-testid={`${testIdPrefix}-search-close`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n height: 34,\n px: 0.75,\n border: 0,\n borderRadius: 1,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: 18 }} />\n </Box>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;;;;AAYA,OAAO,sBAAsB;AAC7B,OAAO,6BAA6B;AACpC,OAAO,aAAa;AAgChB,SAuBE,KAvBF;AAdG,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,GAIsB;AACpB,QAAM,OAAO,iBAAiB;AAI9B,QAAM,SACJ;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,eAAa,GAAG,YAAY;AAAA,MAC5B,cAAY,KAAK,QAAQ;AAAA,MACzB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,IAAI,UAAU,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA;AAAA,4BAAC,2BAAwB,IAAI,EAAE,UAAU,GAAG,GAAG;AAAA,QAC9C,CAAC,WAAW,oBAACA,UAAA,EAAI,WAAU,QAAQ,eAAK,QAAQ,OAAM;AAAA;AAAA;AAAA,EACzD;AAEF,SAAO,UAAU,oBAAC,WAAQ,OAAO,KAAK,QAAQ,UAAW,kBAAO,IAAa;AAC/E;AAcO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,SACE,oBAAC,WAAQ,OAAO,KAAK,OAAO,OAC1B;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,cAAY,KAAK,OAAO;AAAA,MACxB,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,GAAG,GAAG;AAAA;AAAA,EAC1C,GACF;AAEJ;","names":["default"]}