@12-apps/ui 6.39.20 → 6.41.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 (923) hide show
  1. package/NATIVE.md +1 -1
  2. package/components-catalog.md +43 -5
  3. package/components-guidelines.md +110 -0
  4. package/dist/_internal/components/data-display/Alert/Alert.js +3 -2
  5. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +3 -2
  6. package/dist/_internal/components/data-display/Alert/Alert.styles.js +3 -2
  7. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  8. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  9. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  10. package/dist/_internal/components/data-display/Badge/Badge.js +10 -8
  11. package/dist/_internal/components/data-display/Badge/Badge.styles.js +8 -6
  12. package/dist/_internal/components/data-display/Badge/BadgeContent.js +9 -7
  13. package/dist/_internal/components/data-display/Banner/Banner.js +3 -2
  14. package/dist/_internal/components/data-display/Banner/Banner.styles.js +3 -2
  15. package/dist/_internal/components/data-display/CardKit/CardKebab.js +9 -8
  16. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -2
  17. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +13 -12
  18. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +13 -12
  19. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +9 -7
  20. package/dist/_internal/components/data-display/Carousel/Carousel.js +13 -11
  21. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +8 -6
  22. package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +8 -6
  23. package/dist/_internal/components/data-display/Chart/Chart.js +12 -10
  24. package/dist/_internal/components/data-display/Chart/SpecChart.js +15 -13
  25. package/dist/_internal/components/data-display/Chart/chart-context.js +9 -7
  26. package/dist/_internal/components/data-display/Chart/chart-internals.js +8 -6
  27. package/dist/_internal/components/data-display/Chart/chart-renderers.js +11 -9
  28. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  29. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  30. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +6 -5
  31. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +70 -69
  32. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +87 -86
  33. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +13 -12
  34. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +17 -16
  35. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +17 -16
  36. package/dist/_internal/components/data-display/DataViews/base-card.js +7 -6
  37. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +11 -10
  38. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +10 -9
  39. package/dist/_internal/components/data-display/DataViews/base-list-card.js +15 -14
  40. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +4 -4
  41. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +20 -20
  42. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +6 -5
  43. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +10 -9
  44. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +4 -4
  45. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +16 -15
  46. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +8 -7
  47. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +11 -10
  48. package/dist/_internal/components/data-display/DataViews/data-views-export.js +11 -10
  49. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +26 -26
  50. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +20 -19
  51. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +9 -8
  52. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +66 -65
  53. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +6 -5
  54. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +37 -36
  55. package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +2 -2
  56. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +20 -19
  57. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +24 -23
  58. package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +4 -4
  59. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +6 -6
  60. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +8 -8
  61. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +3 -3
  62. package/dist/_internal/components/data-display/DataViews/data-views-search.js +4 -4
  63. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +11 -10
  64. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +27 -26
  65. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +30 -29
  66. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +26 -25
  67. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +11 -10
  68. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +3 -3
  69. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +6 -5
  70. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +13 -12
  71. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +3 -3
  72. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +6 -5
  73. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  74. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +15 -15
  75. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +14 -14
  76. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
  77. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +23 -21
  78. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  79. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  80. package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
  81. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +5 -5
  82. package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
  83. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +13 -13
  84. package/dist/_internal/components/data-display/MapPreview/MapSearchBar.js +4 -4
  85. package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
  86. package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
  87. package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
  88. package/dist/_internal/components/data-display/Progress/Progress.js +6 -5
  89. package/dist/_internal/components/data-display/Progress/Progress.metrics.js +4 -3
  90. package/dist/_internal/components/data-display/Progress/Progress.styles.js +5 -4
  91. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  92. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +7 -5
  93. package/dist/_internal/components/data-display/Sheet/Sheet.js +9 -7
  94. package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +8 -6
  95. package/dist/_internal/components/data-display/Table/Table.js +5 -5
  96. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  97. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  98. package/dist/_internal/components/data-display/index.js +77 -75
  99. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +2 -2
  100. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +11 -10
  101. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +2 -2
  102. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  103. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  104. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +9 -8
  105. package/dist/_internal/components/feedback/index.js +19 -18
  106. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +10 -10
  107. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +7 -7
  108. package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +5 -5
  109. package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +5 -5
  110. package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +4 -4
  111. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +5 -5
  112. package/dist/_internal/components/form/Autocomplete/Autocomplete.parts.js +4 -4
  113. package/dist/_internal/components/form/Button/Button.js +8 -7
  114. package/dist/_internal/components/form/Button/Button.styles.js +6 -5
  115. package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
  116. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  117. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  118. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +10 -10
  119. package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +5 -5
  120. package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +5 -5
  121. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +7 -7
  122. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +6 -6
  123. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +12 -12
  124. package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +4 -4
  125. package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +5 -5
  126. package/dist/_internal/components/form/CepField/CepField.js +7 -7
  127. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  128. package/dist/_internal/components/form/Command/Command.js +9 -7
  129. package/dist/_internal/components/form/Command/Command.styles.js +8 -6
  130. package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +4 -4
  131. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +6 -6
  132. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +13 -13
  133. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +5 -5
  134. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +6 -6
  135. package/dist/_internal/components/form/Input/Input.js +6 -6
  136. package/dist/_internal/components/form/Input/Input.metrics.js +2 -2
  137. package/dist/_internal/components/form/Input/Input.styles.js +5 -5
  138. package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -5
  139. package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +4 -4
  140. package/dist/_internal/components/form/Label/Label.js +9 -7
  141. package/dist/_internal/components/form/Label/Label.styles.js +8 -6
  142. package/dist/_internal/components/form/Menubar/Menubar.item.js +9 -7
  143. package/dist/_internal/components/form/Menubar/Menubar.js +11 -9
  144. package/dist/_internal/components/form/Menubar/Menubar.styles.js +8 -6
  145. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +10 -8
  146. package/dist/_internal/components/form/NumberField/NumberField.helpers.js +20 -0
  147. package/dist/_internal/components/form/NumberField/NumberField.js +28 -0
  148. package/dist/_internal/components/form/NumberField/NumberField.types.js +1 -0
  149. package/dist/_internal/components/form/NumberField/NumberField.types.js.map +1 -0
  150. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -4
  151. package/dist/_internal/components/form/RadioGroup/RadioGroup.js +6 -6
  152. package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +4 -4
  153. package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +5 -5
  154. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  155. package/dist/_internal/components/form/Select/Select.js +5 -5
  156. package/dist/_internal/components/form/Select/Select.metrics.js +2 -2
  157. package/dist/_internal/components/form/Switch/Switch.js +3 -2
  158. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -2
  159. package/dist/_internal/components/form/Switch/Switch.styles.js +3 -2
  160. package/dist/_internal/components/form/Textarea/Textarea.js +4 -4
  161. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +5 -5
  162. package/dist/_internal/components/form/Toggle/Toggle.js +5 -5
  163. package/dist/_internal/components/form/Toggle/Toggle.styles.js +4 -4
  164. package/dist/_internal/components/form/ToggleGroup/ToggleGroup.js +4 -4
  165. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  166. package/dist/_internal/components/form/index.js +72 -64
  167. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +13 -13
  168. package/dist/_internal/components/form/total-form/Fields/CepField.js +8 -8
  169. package/dist/_internal/components/form/total-form/Fields/SelectField.js +6 -6
  170. package/dist/_internal/components/form/total-form/Fields/TextField.js +7 -7
  171. package/dist/_internal/components/form/total-form/Fields/ToggleField.js +5 -5
  172. package/dist/_internal/components/form/total-form/Fields/index.js +27 -27
  173. package/dist/_internal/components/form/total-form/SubmitButton.js +9 -8
  174. package/dist/_internal/components/index.js +244 -203
  175. package/dist/_internal/components/layout/Box/Box.js +10 -8
  176. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +4 -4
  177. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +4 -4
  178. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +5 -5
  179. package/dist/_internal/components/layout/ContentToolbar/MultiSelectTriggers.js +4 -4
  180. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +4 -4
  181. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +4 -4
  182. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +4 -4
  183. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  184. package/dist/_internal/components/layout/Separator/Separator.js +3 -3
  185. package/dist/_internal/components/layout/Separator/Separator.styles.js +2 -2
  186. package/dist/_internal/components/layout/SettingCard/SettingCard.hooks.js +19 -0
  187. package/dist/_internal/components/layout/SettingCard/SettingCard.hooks.js.map +1 -0
  188. package/dist/_internal/components/layout/SettingCard/SettingCard.js +54 -0
  189. package/dist/_internal/components/layout/SettingCard/SettingCard.js.map +1 -0
  190. package/dist/_internal/components/layout/SettingCard/SettingCard.metrics.js +12 -0
  191. package/dist/_internal/components/layout/SettingCard/SettingCard.metrics.js.map +1 -0
  192. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +59 -0
  193. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js.map +1 -0
  194. package/dist/_internal/components/layout/SettingCard/SettingCard.styles.js +37 -0
  195. package/dist/_internal/components/layout/SettingCard/SettingCard.styles.js.map +1 -0
  196. package/dist/_internal/components/layout/SettingCard/SettingCard.types.js +1 -0
  197. package/dist/_internal/components/layout/SettingCard/SettingCard.types.js.map +1 -0
  198. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +56 -0
  199. package/dist/_internal/components/layout/SettingCard/SettingGrid.js.map +1 -0
  200. package/dist/_internal/components/layout/SettingCard/SettingGroup.context.js +10 -0
  201. package/dist/_internal/components/layout/SettingCard/SettingGroup.context.js.map +1 -0
  202. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +65 -0
  203. package/dist/_internal/components/layout/SettingCard/SettingGroup.js.map +1 -0
  204. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +63 -0
  205. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js.map +1 -0
  206. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +65 -0
  207. package/dist/_internal/components/layout/SettingCard/SettingToggle.js.map +1 -0
  208. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +6 -6
  209. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +4 -4
  210. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
  211. package/dist/_internal/components/layout/Stack/Stack.js +11 -9
  212. package/dist/_internal/components/layout/TableFilter/TableFilter.js +4 -4
  213. package/dist/_internal/components/layout/index.js +87 -25
  214. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +15 -13
  215. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +8 -6
  216. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
  217. package/dist/_internal/components/navigation/Pagination/Pagination.js +5 -5
  218. package/dist/_internal/components/navigation/Pagination/PaginationParts.js +4 -4
  219. package/dist/_internal/components/navigation/Tabs/Tabs.js +5 -5
  220. package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +4 -4
  221. package/dist/_internal/components/navigation/index.js +33 -31
  222. package/dist/_internal/components/typography/Heading/Heading.js +6 -5
  223. package/dist/_internal/components/typography/Heading/Heading.metrics.js +4 -3
  224. package/dist/_internal/components/typography/Heading/Heading.styles.js +5 -4
  225. package/dist/_internal/components/typography/Text/Text.js +5 -4
  226. package/dist/_internal/components/typography/Text/Text.metrics.js +4 -3
  227. package/dist/_internal/components/typography/index.js +12 -11
  228. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  229. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +7 -5
  230. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +7 -5
  231. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +7 -5
  232. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +7 -5
  233. package/dist/_internal/components/utility/index.js +20 -18
  234. package/dist/_internal/en-US.data-display.js +2 -2
  235. package/dist/_internal/en-US.layout.js +5 -1
  236. package/dist/_internal/icons/Icon.js +10 -8
  237. package/dist/_internal/provider/UiProvider.js +9 -7
  238. package/dist/_internal/provider/mui-bridge.js +8 -6
  239. package/dist/_internal/provider/use-ui-theme.js +9 -7
  240. package/dist/_internal/pt-BR.data-display.js +2 -2
  241. package/dist/_internal/pt-BR.layout.js +5 -1
  242. package/dist/_internal/social-login-button/social-login-button.js +16 -15
  243. package/dist/_internal/tokens/density.core.js +18 -0
  244. package/dist/_internal/tokens/density.core.js.map +1 -0
  245. package/dist/_internal/tokens/density.js +31 -0
  246. package/dist/_internal/tokens/density.js.map +1 -0
  247. package/dist/_internal/tokens/field-height.core.js +1 -1
  248. package/dist/_internal/tokens/field-height.js +7 -5
  249. package/dist/_internal/tokens/theme.js +3 -2
  250. package/dist/_internal/user-avatar/user-avatar.js +14 -13
  251. package/dist/charts.js +24 -22
  252. package/dist/chunk-2GTORM5E.js +1 -0
  253. package/dist/chunk-2GTORM5E.js.map +1 -0
  254. package/dist/{chunk-DFCQQN6P.js → chunk-2LKWJV65.js} +5 -5
  255. package/dist/{chunk-HVXIOIM5.js → chunk-2MLS6KU4.js} +2 -2
  256. package/dist/{chunk-IIUB4IOH.js → chunk-2XHIF3M3.js} +4 -4
  257. package/dist/chunk-33L26P4J.js +27 -0
  258. package/dist/chunk-33L26P4J.js.map +1 -0
  259. package/dist/{chunk-IASDP44E.js → chunk-3AOOI2NR.js} +6 -6
  260. package/dist/{chunk-TCV3N44E.js → chunk-3CLBGHTL.js} +2 -2
  261. package/dist/{chunk-KKN4LLVE.js → chunk-3CUWQXTG.js} +3 -3
  262. package/dist/{chunk-QXSW3CNN.js → chunk-3CYTVX4T.js} +5 -5
  263. package/dist/chunk-3DO5AJCG.js +117 -0
  264. package/dist/chunk-3DO5AJCG.js.map +1 -0
  265. package/dist/{chunk-I5ZVCY2N.js → chunk-3EPA2A4M.js} +8 -8
  266. package/dist/{chunk-DRSY37PB.js → chunk-3MJHHPRW.js} +2 -2
  267. package/dist/{chunk-NLYNRE7L.js → chunk-3RUCLKAK.js} +4 -4
  268. package/dist/chunk-3U7WKBMH.js +27 -0
  269. package/dist/chunk-3U7WKBMH.js.map +1 -0
  270. package/dist/{chunk-36JKV7CA.js → chunk-3UEZ6NUI.js} +3 -3
  271. package/dist/{chunk-EYZ6QBTV.js → chunk-3XS37SQT.js} +3 -3
  272. package/dist/{chunk-BSUG4KMP.js → chunk-44USLRMT.js} +11 -11
  273. package/dist/{chunk-DJYL2LC6.js → chunk-44Z72DDM.js} +2 -2
  274. package/dist/{chunk-4WCDMCIS.js → chunk-4CHYMTBT.js} +4 -4
  275. package/dist/{chunk-2LIRGFEK.js → chunk-4GN2RLYL.js} +2 -2
  276. package/dist/{chunk-HN3PZTUK.js → chunk-4MKVGSHX.js} +5 -5
  277. package/dist/{chunk-BRM3T4LQ.js → chunk-4S2LWZ7L.js} +5 -5
  278. package/dist/{chunk-OQRG34VG.js → chunk-4SHMSLFA.js} +2 -2
  279. package/dist/{chunk-62UAI62O.js → chunk-4UVFPORR.js} +5 -5
  280. package/dist/{chunk-YTINPQKU.js → chunk-4XHVGUOM.js} +2 -2
  281. package/dist/{chunk-7DK6YVJU.js → chunk-4Z7GEO2R.js} +2 -2
  282. package/dist/{chunk-A2TANYNR.js → chunk-53O2TNSR.js} +6 -6
  283. package/dist/{chunk-T6EKPFKZ.js → chunk-54HTXJJ2.js} +2 -2
  284. package/dist/{chunk-OHZU4IT3.js → chunk-5B7BTLN4.js} +2 -2
  285. package/dist/{chunk-K5V6TCYB.js → chunk-5ETBB2DG.js} +4 -4
  286. package/dist/{chunk-5752357K.js → chunk-5KGABAQB.js} +4 -4
  287. package/dist/{chunk-JKIKHWD2.js → chunk-5NT2M2JI.js} +4 -4
  288. package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
  289. package/dist/{chunk-7EH4D6FU.js → chunk-6H4TPEMO.js} +2 -2
  290. package/dist/{chunk-WB6ZU3B3.js → chunk-6JGATEOF.js} +6 -6
  291. package/dist/{chunk-TU5A2CV7.js → chunk-6L2FKTBO.js} +7 -7
  292. package/dist/{chunk-ME3WYPYK.js → chunk-6MD5QXXJ.js} +5 -5
  293. package/dist/{chunk-HQZRI7UX.js → chunk-6N2EDWMG.js} +4 -4
  294. package/dist/{chunk-H224XFFD.js → chunk-6REPQ352.js} +2 -2
  295. package/dist/{chunk-YZ2DMP23.js → chunk-6TPYT3UC.js} +5 -5
  296. package/dist/{chunk-I4MRBEWU.js → chunk-6ZD3FI5P.js} +11 -11
  297. package/dist/{chunk-PWZHCBG3.js → chunk-72FPUWD6.js} +2 -2
  298. package/dist/{chunk-VRPREI27.js → chunk-72S2RGWD.js} +2 -2
  299. package/dist/{chunk-OAW6GCS3.js → chunk-77BKKPCI.js} +3 -3
  300. package/dist/{chunk-67O4GPJJ.js → chunk-7FEXRMJE.js} +2 -2
  301. package/dist/{chunk-KN5J3NEZ.js → chunk-7KKMZJFT.js} +2 -2
  302. package/dist/{chunk-KJDBY2KN.js → chunk-7LILFS72.js} +2 -2
  303. package/dist/{chunk-SLDSWQVE.js → chunk-7TE4TMS3.js} +5 -5
  304. package/dist/{chunk-AG3DY5TH.js → chunk-ADSA76T7.js} +2 -2
  305. package/dist/chunk-AEMD6JHZ.js +1 -0
  306. package/dist/chunk-AEMD6JHZ.js.map +1 -0
  307. package/dist/{chunk-BKASAYQL.js → chunk-ALOUJ3CE.js} +8 -8
  308. package/dist/{chunk-VY2BMSHN.js → chunk-ANYOSBNA.js} +2 -2
  309. package/dist/{chunk-LNHYBA4B.js → chunk-AWG2AJHX.js} +5 -5
  310. package/dist/{chunk-7X7ZHJHM.js → chunk-B3QWQG62.js} +2 -2
  311. package/dist/{chunk-2S752BIJ.js → chunk-BA6Z52QN.js} +2 -2
  312. package/dist/{chunk-X4F32GUB.js → chunk-BM4KKGL7.js} +2 -2
  313. package/dist/chunk-BOWS4U6W.js +1 -0
  314. package/dist/chunk-BOWS4U6W.js.map +1 -0
  315. package/dist/{chunk-4T6UIYJB.js → chunk-BVSSEOLI.js} +2 -2
  316. package/dist/{chunk-3UABIEP3.js → chunk-C2TERIB4.js} +2 -2
  317. package/dist/{chunk-TEEJ4GNY.js → chunk-C6OVO6AT.js} +2 -2
  318. package/dist/{chunk-CYZZHWNK.js → chunk-CJ45OL7L.js} +2 -2
  319. package/dist/{chunk-N7LPVR7P.js → chunk-CKHFYTIX.js} +4 -4
  320. package/dist/{chunk-PA3AA55Q.js → chunk-CLK67TNH.js} +2 -2
  321. package/dist/{chunk-MQ277OLB.js → chunk-CM2Q7IH3.js} +5 -5
  322. package/dist/{chunk-ZXSWXE6U.js → chunk-CMFJQH6A.js} +5 -5
  323. package/dist/{chunk-NOKN4HRK.js → chunk-CMLIWUBW.js} +4 -4
  324. package/dist/{chunk-EA2UNEL6.js → chunk-CNR5RFKC.js} +2 -2
  325. package/dist/{chunk-P52LYD6S.js → chunk-DFI2RKVQ.js} +2 -2
  326. package/dist/{chunk-37USSARD.js → chunk-DH5UJD2I.js} +4 -4
  327. package/dist/{chunk-PCLKFR27.js → chunk-DH6SL3SY.js} +8 -8
  328. package/dist/chunk-DJKVSUXH.js +35 -0
  329. package/dist/chunk-DJKVSUXH.js.map +1 -0
  330. package/dist/{chunk-S6JHTEV4.js → chunk-DLWLIPCP.js} +3 -3
  331. package/dist/{chunk-KN4ZE2XZ.js → chunk-EIII4QU4.js} +19 -19
  332. package/dist/{chunk-L566FMDD.js → chunk-EO5IEWFI.js} +6 -6
  333. package/dist/{chunk-VY6L74JQ.js → chunk-EQXIW5MQ.js} +4 -4
  334. package/dist/{chunk-MWPXKZ7O.js → chunk-ERY6D2OV.js} +4 -4
  335. package/dist/{chunk-6PU3JYVY.js → chunk-F3AYISXT.js} +4 -4
  336. package/dist/{chunk-GY4NBSCN.js → chunk-FDMQ7H22.js} +2 -2
  337. package/dist/{chunk-IBGP3VSR.js → chunk-FHW3ATT7.js} +2 -2
  338. package/dist/{chunk-WL6N33AB.js → chunk-FIO55AKI.js} +4 -4
  339. package/dist/{chunk-5CQNBMLK.js → chunk-FTQBVZ7V.js} +4 -4
  340. package/dist/{chunk-J5UZB6Y6.js → chunk-FXWXBEOZ.js} +2 -2
  341. package/dist/{chunk-IGGXKT5B.js → chunk-G2WERTWZ.js} +2 -2
  342. package/dist/{chunk-DF4QODJ6.js → chunk-G4TKMUOL.js} +6 -6
  343. package/dist/{chunk-WY5PBZ7Q.js → chunk-G6ZPQHBL.js} +2 -2
  344. package/dist/{chunk-JYR6VV4Y.js → chunk-G7XHJPLO.js} +5 -5
  345. package/dist/{chunk-IQJCLFF4.js → chunk-GANW7FXQ.js} +2 -2
  346. package/dist/{chunk-3LSIFHQK.js → chunk-GE2CCITY.js} +2 -2
  347. package/dist/{chunk-G3XLFQ2Z.js → chunk-GG62LKA3.js} +6 -6
  348. package/dist/{chunk-YQCRQHVU.js → chunk-GI63FQEJ.js} +4 -4
  349. package/dist/{chunk-7ICK5MXV.js → chunk-GJFAI3J5.js} +10 -10
  350. package/dist/{chunk-2JNHWKQK.js → chunk-GPHURU2K.js} +12 -12
  351. package/dist/{chunk-5FAI25JQ.js → chunk-H72YKEGD.js} +3 -3
  352. package/dist/chunk-HALFOXSZ.js +1 -0
  353. package/dist/chunk-HALFOXSZ.js.map +1 -0
  354. package/dist/{chunk-J3XFUCCR.js → chunk-HKBJZX3C.js} +12 -12
  355. package/dist/{chunk-M4QXG5JP.js → chunk-HQWJUHR4.js} +4 -4
  356. package/dist/chunk-IC7GHPMK.js +22 -0
  357. package/dist/chunk-IC7GHPMK.js.map +1 -0
  358. package/dist/{chunk-4BNV5AAI.js → chunk-ITFFA3H2.js} +3 -3
  359. package/dist/{chunk-RB3X6CEE.js → chunk-IWGW2E35.js} +2 -2
  360. package/dist/{chunk-O25SH2MA.js → chunk-J6KLT7HP.js} +7 -7
  361. package/dist/{chunk-CRG24BGI.js → chunk-JAGAFEZL.js} +2 -2
  362. package/dist/{chunk-RDCHT2WN.js → chunk-JE5GEWTG.js} +5 -5
  363. package/dist/{chunk-FLDLUAHW.js → chunk-JE6GQB5J.js} +4 -4
  364. package/dist/{chunk-N23GCN5U.js → chunk-JFLFZLOA.js} +5 -5
  365. package/dist/{chunk-35443PF6.js → chunk-JIRZ27RI.js} +2 -2
  366. package/dist/{chunk-5MW7OYBM.js → chunk-JSGVYOMN.js} +2 -2
  367. package/dist/{chunk-RNIU447I.js → chunk-JU3FRRO2.js} +2 -2
  368. package/dist/{chunk-WOAXKWAB.js → chunk-K4A3JDYQ.js} +2 -2
  369. package/dist/{chunk-HM2JJNUE.js → chunk-K6LNHHSH.js} +5 -5
  370. package/dist/{chunk-NR5TW4AH.js → chunk-K7MQP2KT.js} +3 -3
  371. package/dist/{chunk-2OWKL4CC.js → chunk-KCDNOMMT.js} +9 -9
  372. package/dist/{chunk-O2DLEAUP.js → chunk-KHOAXZW2.js} +4 -4
  373. package/dist/{chunk-W5TI46QN.js → chunk-KQZGUHYZ.js} +3 -3
  374. package/dist/{chunk-2K7WPHI3.js → chunk-KW3H5FUS.js} +2 -2
  375. package/dist/{chunk-7D2C4LK2.js → chunk-LCWGNDTH.js} +4 -4
  376. package/dist/{chunk-FNRPQE2D.js → chunk-LF3EVXMF.js} +2 -2
  377. package/dist/{chunk-MCJRHF7Z.js → chunk-LGCRL7DK.js} +10 -10
  378. package/dist/{chunk-JK5UJM4Y.js → chunk-LODMNSLR.js} +9 -9
  379. package/dist/{chunk-CGO452DC.js → chunk-M47ZOUGF.js} +13 -10
  380. package/dist/{chunk-CGO452DC.js.map → chunk-M47ZOUGF.js.map} +1 -1
  381. package/dist/{chunk-YUXDVW62.js → chunk-M65ZNPLO.js} +2 -2
  382. package/dist/{chunk-URHX4FAQ.js → chunk-MKLIMY3D.js} +2 -2
  383. package/dist/{chunk-2FM5SUQV.js → chunk-MM5XSAVE.js} +2 -2
  384. package/dist/{chunk-LXT3X33C.js → chunk-NCB4GBRL.js} +2 -2
  385. package/dist/{chunk-FNO5TWBJ.js → chunk-NCEQWEXT.js} +4 -4
  386. package/dist/{chunk-FWPFCK4D.js → chunk-NDHDBOUH.js} +4 -4
  387. package/dist/{chunk-WRCLYSTX.js → chunk-NFGIA2ZV.js} +2 -2
  388. package/dist/{chunk-VPPIODKX.js → chunk-NQ7NMCRI.js} +2 -2
  389. package/dist/{chunk-YMTZN54Q.js → chunk-NRSVI23L.js} +2 -2
  390. package/dist/{chunk-2622YFM6.js → chunk-NSVSC6ZC.js} +6 -6
  391. package/dist/{chunk-Z43N7ASP.js → chunk-NU55QUMO.js} +2 -2
  392. package/dist/{chunk-66O55OZI.js → chunk-NYFGFELX.js} +2 -2
  393. package/dist/{chunk-PZBK3F52.js → chunk-O6MJWHU5.js} +3 -3
  394. package/dist/chunk-O6MJWHU5.js.map +1 -0
  395. package/dist/chunk-OJUORFGO.js +87 -0
  396. package/dist/chunk-OJUORFGO.js.map +1 -0
  397. package/dist/{chunk-JXECOCNA.js → chunk-P6Q2O3TU.js} +2 -2
  398. package/dist/{chunk-RTEY5COP.js → chunk-PAICZOL5.js} +4 -4
  399. package/dist/{chunk-ZN6YATOG.js → chunk-PAT2BQOQ.js} +2 -2
  400. package/dist/chunk-PEOOCQ2T.js +140 -0
  401. package/dist/chunk-PEOOCQ2T.js.map +1 -0
  402. package/dist/chunk-PGGGKYWG.js +1 -0
  403. package/dist/chunk-PGGGKYWG.js.map +1 -0
  404. package/dist/{chunk-TZBOWSAM.js → chunk-PICOOZLX.js} +6 -6
  405. package/dist/{chunk-JJJM75XF.js → chunk-PNDYAIKM.js} +2 -2
  406. package/dist/{chunk-EJYJLVPK.js → chunk-PRLYYKMG.js} +3 -3
  407. package/dist/{chunk-4GB46HLK.js → chunk-PTONBPZL.js} +2 -2
  408. package/dist/chunk-Q4JWWTL4.js +36 -0
  409. package/dist/chunk-Q4JWWTL4.js.map +1 -0
  410. package/dist/{chunk-FNG33MKA.js → chunk-QDELBNL3.js} +2 -2
  411. package/dist/{chunk-DSF4VT7L.js → chunk-QEI5DC6S.js} +6 -6
  412. package/dist/chunk-QGUNUXTT.js +1 -0
  413. package/dist/chunk-QGUNUXTT.js.map +1 -0
  414. package/dist/{chunk-VJ2BNJ5M.js → chunk-QMELMQPA.js} +4 -4
  415. package/dist/{chunk-HDJQDMHB.js → chunk-QMHS6ZDI.js} +2 -2
  416. package/dist/{chunk-2WVHZIWP.js → chunk-QSRZOXQI.js} +2 -2
  417. package/dist/{chunk-C3LZ3OGJ.js → chunk-R2FUQV24.js} +2 -2
  418. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  419. package/dist/{chunk-HWSS6C7C.js → chunk-RDFPM2AQ.js} +8 -8
  420. package/dist/chunk-RDZGXJOD.js +74 -0
  421. package/dist/chunk-RDZGXJOD.js.map +1 -0
  422. package/dist/chunk-RN7UJI7S.js +1 -0
  423. package/dist/chunk-RN7UJI7S.js.map +1 -0
  424. package/dist/chunk-RPBGUWNF.js +168 -0
  425. package/dist/chunk-RPBGUWNF.js.map +1 -0
  426. package/dist/{chunk-4RPFI474.js → chunk-RSDYS5B3.js} +6 -6
  427. package/dist/{chunk-X53F33KA.js → chunk-RWXYND4H.js} +2 -2
  428. package/dist/{chunk-4NPPO63U.js → chunk-RZ2VZ7SL.js} +5 -5
  429. package/dist/{chunk-ORRI6FMN.js → chunk-S4IXC2V3.js} +3 -3
  430. package/dist/chunk-SALQ65SM.js +118 -0
  431. package/dist/chunk-SALQ65SM.js.map +1 -0
  432. package/dist/{chunk-MXCIUKTQ.js → chunk-SDBBJ6FG.js} +4 -4
  433. package/dist/{chunk-JRJCBDGN.js → chunk-SDKOOVEX.js} +6 -4
  434. package/dist/{chunk-JRJCBDGN.js.map → chunk-SDKOOVEX.js.map} +1 -1
  435. package/dist/{chunk-UMNXSQ7I.js → chunk-SNBAMWI5.js} +2 -2
  436. package/dist/{chunk-LP3JCXER.js → chunk-SNW5MJ6I.js} +2 -2
  437. package/dist/{chunk-5OBGW3FG.js → chunk-STTULW2K.js} +2 -2
  438. package/dist/{chunk-3CTQZDSD.js → chunk-TCNTIGMY.js} +4 -4
  439. package/dist/{chunk-Y6C4MYZE.js → chunk-TNQDSTIA.js} +7 -7
  440. package/dist/{chunk-6RLCBNDV.js → chunk-TPVSHO75.js} +7 -7
  441. package/dist/{chunk-BUPDBEBA.js → chunk-TTJTMDLI.js} +2 -2
  442. package/dist/{chunk-TU5EIKJA.js → chunk-U5SH3VRJ.js} +4 -4
  443. package/dist/chunk-U67ZQ6VM.js +82 -0
  444. package/dist/chunk-U67ZQ6VM.js.map +1 -0
  445. package/dist/{chunk-MLQYIJTO.js → chunk-U6W2RY3Z.js} +5 -5
  446. package/dist/{chunk-4WF6ZLIW.js → chunk-UGPRBJWB.js} +8 -8
  447. package/dist/chunk-VBP46YP4.js +42 -0
  448. package/dist/chunk-VBP46YP4.js.map +1 -0
  449. package/dist/{chunk-Y6G4I42P.js → chunk-VEEG4UXZ.js} +2 -2
  450. package/dist/{chunk-IRD45DRW.js → chunk-VOJBLBXE.js} +3 -3
  451. package/dist/{chunk-KHPL2J3B.js → chunk-VPAOVEI2.js} +3 -3
  452. package/dist/{chunk-DYGWKZ7T.js → chunk-VWJEM2ER.js} +3 -3
  453. package/dist/{chunk-FERUQ7OB.js → chunk-VYA4QWQL.js} +2 -2
  454. package/dist/chunk-VYM2GPR6.js +47 -0
  455. package/dist/chunk-VYM2GPR6.js.map +1 -0
  456. package/dist/{chunk-UKX3MPB7.js → chunk-VYV3JOV5.js} +2 -2
  457. package/dist/{chunk-B7CNP5HW.js → chunk-WV62BSWA.js} +2 -2
  458. package/dist/chunk-X3C3VTYS.js +85 -0
  459. package/dist/chunk-X3C3VTYS.js.map +1 -0
  460. package/dist/{chunk-IWEUSZY3.js → chunk-X66E5WSX.js} +3 -3
  461. package/dist/{chunk-OJ2XR3WH.js → chunk-XB7HYOMM.js} +2 -2
  462. package/dist/{chunk-H6AWKLOV.js → chunk-XBLFK2FL.js} +2 -2
  463. package/dist/{chunk-5HDYTTE7.js → chunk-XHA2NXLD.js} +2 -2
  464. package/dist/chunk-XJQNSMGA.js +10 -0
  465. package/dist/chunk-XJQNSMGA.js.map +1 -0
  466. package/dist/{chunk-F4KYBBTY.js → chunk-XLXMJ6X2.js} +3 -3
  467. package/dist/{chunk-SCZABICW.js → chunk-XO4ZUHVH.js} +2 -2
  468. package/dist/{chunk-PARTZ7XI.js → chunk-XP522FFM.js} +2 -2
  469. package/dist/{chunk-MBHWVRV5.js → chunk-XVZG52CM.js} +8 -8
  470. package/dist/{chunk-TGXCG62P.js → chunk-XXL4PM4M.js} +2 -2
  471. package/dist/{chunk-YKEO6UHN.js → chunk-XZJM6EPC.js} +4 -4
  472. package/dist/{chunk-YTY7TD7S.js → chunk-XZY7O7JJ.js} +5 -5
  473. package/dist/{chunk-WZNTZX5N.js → chunk-Y2UXX5IQ.js} +4 -4
  474. package/dist/{chunk-BLW6KLDR.js → chunk-YFODI4KT.js} +11 -4
  475. package/dist/chunk-YFODI4KT.js.map +1 -0
  476. package/dist/{chunk-QOLIBVGS.js → chunk-YGYQC7MT.js} +4 -4
  477. package/dist/{chunk-THMT3G3L.js → chunk-YLXQWYOG.js} +7 -7
  478. package/dist/{chunk-M4KVKQRN.js → chunk-YPIVLPXF.js} +3 -3
  479. package/dist/{chunk-57FZM6GH.js → chunk-YRUX7XMQ.js} +2 -2
  480. package/dist/{chunk-M2Q5CLPU.js → chunk-YTXZUTLF.js} +4 -4
  481. package/dist/{chunk-ZWCYSAI5.js → chunk-YWJDUJAR.js} +4 -4
  482. package/dist/{chunk-S36NC22G.js → chunk-Z2NN53E5.js} +2 -2
  483. package/dist/{chunk-GC56IWIZ.js → chunk-Z4DKVLYG.js} +9 -9
  484. package/dist/{chunk-U4QUDFPJ.js → chunk-Z4O3F6KU.js} +4 -4
  485. package/dist/{chunk-JC22FNFA.js → chunk-Z6T5SXST.js} +5 -5
  486. package/dist/{chunk-TXEN3QJ4.js → chunk-ZC5HDBQO.js} +2 -2
  487. package/dist/{chunk-LEHMWJNZ.js → chunk-ZEYUSS3W.js} +5 -5
  488. package/dist/{chunk-JH5BKA3Y.js → chunk-ZH2SZ6B3.js} +26 -8
  489. package/dist/chunk-ZH2SZ6B3.js.map +1 -0
  490. package/dist/{chunk-4WNFOBTH.js → chunk-ZKWVCSAB.js} +2 -2
  491. package/dist/{chunk-GEB4WSZH.js → chunk-ZNBLGS66.js} +3 -3
  492. package/dist/{chunk-TCAQOUIB.js → chunk-ZSTSISM6.js} +1 -1
  493. package/dist/chunk-ZSTSISM6.js.map +1 -0
  494. package/dist/data-display/Alert.js +3 -2
  495. package/dist/data-display/AsyncStateContainer.js +3 -3
  496. package/dist/data-display/Avatar.js +3 -3
  497. package/dist/data-display/Badge.js +10 -8
  498. package/dist/data-display/Banner.js +3 -2
  499. package/dist/data-display/CardKit.js +17 -16
  500. package/dist/data-display/Carousel.js +13 -11
  501. package/dist/data-display/Chart.js +24 -22
  502. package/dist/data-display/Chip.js +1 -0
  503. package/dist/data-display/DataGrid.js +3 -3
  504. package/dist/data-display/DataViews.js +107 -106
  505. package/dist/data-display/DescriptionItem.js +6 -5
  506. package/dist/data-display/EmptyState.js +2 -2
  507. package/dist/data-display/FleetMap.js +23 -21
  508. package/dist/data-display/InteractiveTooltip.js +2 -2
  509. package/dist/data-display/Lightbox.js +6 -6
  510. package/dist/data-display/MapPreview.js +13 -13
  511. package/dist/data-display/Progress.js +6 -5
  512. package/dist/data-display/SectionOnboarding.js +3 -3
  513. package/dist/data-display/Sheet.js +9 -7
  514. package/dist/data-display/Table.js +5 -5
  515. package/dist/en-US.js +15 -11
  516. package/dist/feedback/ConfirmAction.js +14 -13
  517. package/dist/feedback/Dialog.js +2 -2
  518. package/dist/feedback/Modal.js +2 -2
  519. package/dist/feedback/NotificationStatusNotice.js +9 -8
  520. package/dist/form/AddressAutocomplete.js +10 -10
  521. package/dist/form/Autocomplete.js +5 -5
  522. package/dist/form/Button.js +8 -7
  523. package/dist/form/Calendar.js +4 -4
  524. package/dist/form/CategorySelect.js +12 -12
  525. package/dist/form/CepField.js +7 -7
  526. package/dist/form/CodeEditor.js +4 -4
  527. package/dist/form/Command.js +9 -7
  528. package/dist/form/CreatableSelect.js +4 -4
  529. package/dist/form/DateRangePicker.js +13 -13
  530. package/dist/form/Input.js +6 -6
  531. package/dist/form/InputOTP.js +5 -5
  532. package/dist/form/Label.js +9 -7
  533. package/dist/form/Menubar.js +11 -9
  534. package/dist/form/NumberField.js +29 -0
  535. package/dist/form/NumberField.js.map +1 -0
  536. package/dist/form/PhoneInput.js +4 -4
  537. package/dist/form/RadioGroup.js +6 -6
  538. package/dist/form/RichTextEditor.js +2 -2
  539. package/dist/form/Select.js +5 -5
  540. package/dist/form/Switch.js +3 -2
  541. package/dist/form/Textarea.js +4 -4
  542. package/dist/form/Toggle.js +5 -5
  543. package/dist/form/ToggleGroup.js +4 -4
  544. package/dist/form/UploadButton.js +2 -2
  545. package/dist/form/total-form.js +31 -30
  546. package/dist/icons.js +11 -8
  547. package/dist/layout/Box.js +10 -8
  548. package/dist/layout/Collapsible.js +1 -0
  549. package/dist/layout/ContentToolbar.js +12 -12
  550. package/dist/layout/ScrollArea.js +2 -2
  551. package/dist/layout/Separator.js +3 -3
  552. package/dist/layout/SettingCard.js +80 -0
  553. package/dist/layout/SettingCard.js.map +1 -0
  554. package/dist/layout/SettingsLayout.js +7 -7
  555. package/dist/layout/Stack.js +11 -9
  556. package/dist/layout/TableFilter.js +4 -4
  557. package/dist/locales.js +37 -23
  558. package/dist/locales.js.map +1 -1
  559. package/dist/native/chunks/{chunk-ONXKFA5Z.js → chunk-A2QNZ4VK.js} +4 -4
  560. package/dist/native/chunks/{chunk-X6RQGKGF.js → chunk-BST5DUUD.js} +2 -2
  561. package/dist/native/chunks/{chunk-GUBTMR2K.js → chunk-EDYZEMVD.js} +2 -2
  562. package/dist/native/chunks/{chunk-SZF56GVJ.js → chunk-LECBJD35.js} +3 -3
  563. package/dist/native/chunks/{chunk-JBYDLWQA.js → chunk-MTRRGDBQ.js} +5 -5
  564. package/dist/native/chunks/{chunk-IMGBBIMT.js → chunk-PN7C2BEY.js} +2 -2
  565. package/dist/native/chunks/{chunk-R5XVZRDD.js → chunk-RADD26LG.js} +46 -5
  566. package/dist/native/chunks/chunk-RADD26LG.js.map +1 -0
  567. package/dist/native/chunks/{chunk-4ZAULIDG.js → chunk-S4F364X4.js} +3 -3
  568. package/dist/native/chunks/{chunk-5IASLIBI.js → chunk-VJFKRXY2.js} +2 -2
  569. package/dist/native/data-display/Alert.js +3 -3
  570. package/dist/native/data-display/Avatar.js +3 -3
  571. package/dist/native/data-display/Badge.js +3 -3
  572. package/dist/native/data-display/Chip.js +3 -3
  573. package/dist/native/data-display/EmptyState.js +6 -6
  574. package/dist/native/data-display/ErrorState.js +5 -5
  575. package/dist/native/data-display/FleetMap.js +7 -7
  576. package/dist/native/data-display/LoadingState.js +2 -2
  577. package/dist/native/data-display/Progress.js +2 -2
  578. package/dist/native/feedback/Dialog.js +3 -3
  579. package/dist/native/form/Button.js +4 -4
  580. package/dist/native/form/Checkbox.js +3 -3
  581. package/dist/native/form/Input.js +4 -4
  582. package/dist/native/form/Select.js +5 -5
  583. package/dist/native/form/Switch.js +2 -2
  584. package/dist/native/icons.js +3 -3
  585. package/dist/native/layout/Box.js +3 -3
  586. package/dist/native/layout/Card.js +2 -2
  587. package/dist/native/layout/Container.js +2 -2
  588. package/dist/native/layout/Skeleton.js +3 -3
  589. package/dist/native/layout/Spacer.js +2 -2
  590. package/dist/native/layout/Stack.js +3 -3
  591. package/dist/native/provider.js +2 -2
  592. package/dist/native/tokens.js +15 -3
  593. package/dist/native/typography/Heading.js +2 -2
  594. package/dist/native/typography/Paragraph.js +2 -2
  595. package/dist/native/typography/Text.js +2 -2
  596. package/dist/navigation/AppHeader.js +18 -16
  597. package/dist/navigation/CommandPalette.js +3 -3
  598. package/dist/navigation/Pagination.js +5 -5
  599. package/dist/navigation/Tabs.js +5 -5
  600. package/dist/provider.js +10 -8
  601. package/dist/pt-BR.js +12 -8
  602. package/dist/social-login-button.js +16 -15
  603. package/dist/tokens.js +30 -8
  604. package/dist/types/components/form/Input/Input.d.ts.map +1 -1
  605. package/dist/types/components/form/Input/Input.types.d.ts +10 -0
  606. package/dist/types/components/form/Input/Input.types.d.ts.map +1 -1
  607. package/dist/types/components/form/NumberField/NumberField.d.ts +21 -0
  608. package/dist/types/components/form/NumberField/NumberField.d.ts.map +1 -0
  609. package/dist/types/components/form/NumberField/NumberField.helpers.d.ts +48 -0
  610. package/dist/types/components/form/NumberField/NumberField.helpers.d.ts.map +1 -0
  611. package/dist/types/components/form/NumberField/NumberField.types.d.ts +31 -0
  612. package/dist/types/components/form/NumberField/NumberField.types.d.ts.map +1 -0
  613. package/dist/types/components/form/NumberField/index.d.ts +3 -0
  614. package/dist/types/components/form/NumberField/index.d.ts.map +1 -0
  615. package/dist/types/components/form/index.d.ts +1 -0
  616. package/dist/types/components/form/index.d.ts.map +1 -1
  617. package/dist/types/components/layout/SettingCard/SettingCard.d.ts +14 -0
  618. package/dist/types/components/layout/SettingCard/SettingCard.d.ts.map +1 -0
  619. package/dist/types/components/layout/SettingCard/SettingCard.hooks.d.ts +79 -0
  620. package/dist/types/components/layout/SettingCard/SettingCard.hooks.d.ts.map +1 -0
  621. package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts +21 -0
  622. package/dist/types/components/layout/SettingCard/SettingCard.metrics.d.ts.map +1 -0
  623. package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts +49 -0
  624. package/dist/types/components/layout/SettingCard/SettingCard.parts.d.ts.map +1 -0
  625. package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts +48 -0
  626. package/dist/types/components/layout/SettingCard/SettingCard.styles.d.ts.map +1 -0
  627. package/dist/types/components/layout/SettingCard/SettingCard.types.d.ts +127 -0
  628. package/dist/types/components/layout/SettingCard/SettingCard.types.d.ts.map +1 -0
  629. package/dist/types/components/layout/SettingCard/SettingGrid.d.ts +33 -0
  630. package/dist/types/components/layout/SettingCard/SettingGrid.d.ts.map +1 -0
  631. package/dist/types/components/layout/SettingCard/SettingGroup.context.d.ts +13 -0
  632. package/dist/types/components/layout/SettingCard/SettingGroup.context.d.ts.map +1 -0
  633. package/dist/types/components/layout/SettingCard/SettingGroup.d.ts +18 -0
  634. package/dist/types/components/layout/SettingCard/SettingGroup.d.ts.map +1 -0
  635. package/dist/types/components/layout/SettingCard/SettingSwitch.d.ts +28 -0
  636. package/dist/types/components/layout/SettingCard/SettingSwitch.d.ts.map +1 -0
  637. package/dist/types/components/layout/SettingCard/SettingToggle.d.ts +13 -0
  638. package/dist/types/components/layout/SettingCard/SettingToggle.d.ts.map +1 -0
  639. package/dist/types/components/layout/SettingCard/index.d.ts +6 -0
  640. package/dist/types/components/layout/SettingCard/index.d.ts.map +1 -0
  641. package/dist/types/components/layout/index.d.ts +1 -0
  642. package/dist/types/components/layout/index.d.ts.map +1 -1
  643. package/dist/types/copy/layout.d.ts +27 -0
  644. package/dist/types/copy/layout.d.ts.map +1 -1
  645. package/dist/types/en-US.layout.d.ts +3 -1
  646. package/dist/types/en-US.layout.d.ts.map +1 -1
  647. package/dist/types/locales.d.ts +3 -1
  648. package/dist/types/locales.d.ts.map +1 -1
  649. package/dist/types/provider/mui-bridge.d.ts.map +1 -1
  650. package/dist/types/pt-BR.layout.d.ts +3 -1
  651. package/dist/types/pt-BR.layout.d.ts.map +1 -1
  652. package/dist/types/tokens/density.core.d.ts +73 -0
  653. package/dist/types/tokens/density.core.d.ts.map +1 -0
  654. package/dist/types/tokens/density.d.ts +95 -0
  655. package/dist/types/tokens/density.d.ts.map +1 -0
  656. package/dist/types/tokens/field-height.core.d.ts +7 -2
  657. package/dist/types/tokens/field-height.core.d.ts.map +1 -1
  658. package/dist/types/tokens/field-height.d.ts +9 -0
  659. package/dist/types/tokens/field-height.d.ts.map +1 -1
  660. package/dist/types/tokens/scales.d.ts +2 -1
  661. package/dist/types/tokens/scales.d.ts.map +1 -1
  662. package/dist/types/tokens/theme.d.ts +30 -0
  663. package/dist/types/tokens/theme.d.ts.map +1 -1
  664. package/dist/types-native/tokens/density.core.d.ts +73 -0
  665. package/dist/types-native/tokens/density.core.d.ts.map +1 -0
  666. package/dist/types-native/tokens/field-height.core.d.ts +7 -2
  667. package/dist/types-native/tokens/field-height.core.d.ts.map +1 -1
  668. package/dist/types-native/tokens/index.native.d.ts +1 -0
  669. package/dist/types-native/tokens/index.native.d.ts.map +1 -1
  670. package/dist/types-native/tokens/theme.d.ts +30 -0
  671. package/dist/types-native/tokens/theme.d.ts.map +1 -1
  672. package/dist/typography/Heading.js +6 -5
  673. package/dist/typography/Text.js +5 -4
  674. package/dist/user-avatar.js +14 -13
  675. package/dist/utility/InstallPrompt.js +2 -2
  676. package/dist/utility/WorkflowStep.js +7 -5
  677. package/package.json +9 -1
  678. package/src/components/form/Input/Input.tsx +2 -0
  679. package/src/components/form/Input/Input.types.ts +10 -0
  680. package/src/components/form/NumberField/NumberField.helpers.ts +77 -0
  681. package/src/components/form/NumberField/NumberField.md +86 -0
  682. package/src/components/form/NumberField/NumberField.tsx +88 -0
  683. package/src/components/form/NumberField/NumberField.types.ts +43 -0
  684. package/src/components/form/NumberField/index.ts +2 -0
  685. package/src/components/form/NumberField/tests.md +51 -0
  686. package/src/components/form/NumberField/track.md +42 -0
  687. package/src/components/form/index.ts +1 -0
  688. package/src/components/layout/SettingCard/SettingCard.hooks.ts +191 -0
  689. package/src/components/layout/SettingCard/SettingCard.md +121 -0
  690. package/src/components/layout/SettingCard/SettingCard.metrics.ts +22 -0
  691. package/src/components/layout/SettingCard/SettingCard.parts.tsx +162 -0
  692. package/src/components/layout/SettingCard/SettingCard.styles.ts +142 -0
  693. package/src/components/layout/SettingCard/SettingCard.tsx +197 -0
  694. package/src/components/layout/SettingCard/SettingCard.types.ts +140 -0
  695. package/src/components/layout/SettingCard/SettingGrid.md +65 -0
  696. package/src/components/layout/SettingCard/SettingGrid.tsx +105 -0
  697. package/src/components/layout/SettingCard/SettingGroup.context.ts +11 -0
  698. package/src/components/layout/SettingCard/SettingGroup.md +81 -0
  699. package/src/components/layout/SettingCard/SettingGroup.tsx +73 -0
  700. package/src/components/layout/SettingCard/SettingSwitch.tsx +92 -0
  701. package/src/components/layout/SettingCard/SettingToggle.md +61 -0
  702. package/src/components/layout/SettingCard/SettingToggle.tsx +43 -0
  703. package/src/components/layout/SettingCard/index.ts +18 -0
  704. package/src/components/layout/SettingCard/tests.md +68 -0
  705. package/src/components/layout/SettingCard/track.md +54 -0
  706. package/src/components/layout/index.ts +1 -0
  707. package/src/copy/layout.ts +29 -0
  708. package/src/en-US.layout.ts +16 -0
  709. package/src/locales.ts +10 -0
  710. package/src/provider/mui-bridge.ts +17 -3
  711. package/src/pt-BR.layout.ts +16 -0
  712. package/src/tokens/density.core.ts +118 -0
  713. package/src/tokens/density.ts +134 -0
  714. package/src/tokens/field-height.core.ts +8 -3
  715. package/src/tokens/field-height.ts +19 -8
  716. package/src/tokens/index.native.ts +11 -0
  717. package/src/tokens/scales.ts +15 -0
  718. package/src/tokens/theme.ts +43 -2
  719. package/dist/chunk-A7RIZOAL.js +0 -13
  720. package/dist/chunk-A7RIZOAL.js.map +0 -1
  721. package/dist/chunk-BLW6KLDR.js.map +0 -1
  722. package/dist/chunk-BY3JEK5T.js +0 -1
  723. package/dist/chunk-FZJ2FTGE.js +0 -1
  724. package/dist/chunk-GRHECKHU.js +0 -13
  725. package/dist/chunk-GRHECKHU.js.map +0 -1
  726. package/dist/chunk-JH5BKA3Y.js.map +0 -1
  727. package/dist/chunk-PZBK3F52.js.map +0 -1
  728. package/dist/chunk-TCAQOUIB.js.map +0 -1
  729. package/dist/native/chunks/chunk-R5XVZRDD.js.map +0 -1
  730. /package/dist/{chunk-BY3JEK5T.js.map → _internal/components/form/NumberField/NumberField.helpers.js.map} +0 -0
  731. /package/dist/{chunk-FZJ2FTGE.js.map → _internal/components/form/NumberField/NumberField.js.map} +0 -0
  732. /package/dist/{chunk-DFCQQN6P.js.map → chunk-2LKWJV65.js.map} +0 -0
  733. /package/dist/{chunk-HVXIOIM5.js.map → chunk-2MLS6KU4.js.map} +0 -0
  734. /package/dist/{chunk-IIUB4IOH.js.map → chunk-2XHIF3M3.js.map} +0 -0
  735. /package/dist/{chunk-IASDP44E.js.map → chunk-3AOOI2NR.js.map} +0 -0
  736. /package/dist/{chunk-TCV3N44E.js.map → chunk-3CLBGHTL.js.map} +0 -0
  737. /package/dist/{chunk-KKN4LLVE.js.map → chunk-3CUWQXTG.js.map} +0 -0
  738. /package/dist/{chunk-QXSW3CNN.js.map → chunk-3CYTVX4T.js.map} +0 -0
  739. /package/dist/{chunk-I5ZVCY2N.js.map → chunk-3EPA2A4M.js.map} +0 -0
  740. /package/dist/{chunk-DRSY37PB.js.map → chunk-3MJHHPRW.js.map} +0 -0
  741. /package/dist/{chunk-NLYNRE7L.js.map → chunk-3RUCLKAK.js.map} +0 -0
  742. /package/dist/{chunk-36JKV7CA.js.map → chunk-3UEZ6NUI.js.map} +0 -0
  743. /package/dist/{chunk-EYZ6QBTV.js.map → chunk-3XS37SQT.js.map} +0 -0
  744. /package/dist/{chunk-BSUG4KMP.js.map → chunk-44USLRMT.js.map} +0 -0
  745. /package/dist/{chunk-DJYL2LC6.js.map → chunk-44Z72DDM.js.map} +0 -0
  746. /package/dist/{chunk-4WCDMCIS.js.map → chunk-4CHYMTBT.js.map} +0 -0
  747. /package/dist/{chunk-2LIRGFEK.js.map → chunk-4GN2RLYL.js.map} +0 -0
  748. /package/dist/{chunk-HN3PZTUK.js.map → chunk-4MKVGSHX.js.map} +0 -0
  749. /package/dist/{chunk-BRM3T4LQ.js.map → chunk-4S2LWZ7L.js.map} +0 -0
  750. /package/dist/{chunk-OQRG34VG.js.map → chunk-4SHMSLFA.js.map} +0 -0
  751. /package/dist/{chunk-62UAI62O.js.map → chunk-4UVFPORR.js.map} +0 -0
  752. /package/dist/{chunk-YTINPQKU.js.map → chunk-4XHVGUOM.js.map} +0 -0
  753. /package/dist/{chunk-7DK6YVJU.js.map → chunk-4Z7GEO2R.js.map} +0 -0
  754. /package/dist/{chunk-A2TANYNR.js.map → chunk-53O2TNSR.js.map} +0 -0
  755. /package/dist/{chunk-T6EKPFKZ.js.map → chunk-54HTXJJ2.js.map} +0 -0
  756. /package/dist/{chunk-OHZU4IT3.js.map → chunk-5B7BTLN4.js.map} +0 -0
  757. /package/dist/{chunk-K5V6TCYB.js.map → chunk-5ETBB2DG.js.map} +0 -0
  758. /package/dist/{chunk-5752357K.js.map → chunk-5KGABAQB.js.map} +0 -0
  759. /package/dist/{chunk-JKIKHWD2.js.map → chunk-5NT2M2JI.js.map} +0 -0
  760. /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
  761. /package/dist/{chunk-7EH4D6FU.js.map → chunk-6H4TPEMO.js.map} +0 -0
  762. /package/dist/{chunk-WB6ZU3B3.js.map → chunk-6JGATEOF.js.map} +0 -0
  763. /package/dist/{chunk-TU5A2CV7.js.map → chunk-6L2FKTBO.js.map} +0 -0
  764. /package/dist/{chunk-ME3WYPYK.js.map → chunk-6MD5QXXJ.js.map} +0 -0
  765. /package/dist/{chunk-HQZRI7UX.js.map → chunk-6N2EDWMG.js.map} +0 -0
  766. /package/dist/{chunk-H224XFFD.js.map → chunk-6REPQ352.js.map} +0 -0
  767. /package/dist/{chunk-YZ2DMP23.js.map → chunk-6TPYT3UC.js.map} +0 -0
  768. /package/dist/{chunk-I4MRBEWU.js.map → chunk-6ZD3FI5P.js.map} +0 -0
  769. /package/dist/{chunk-PWZHCBG3.js.map → chunk-72FPUWD6.js.map} +0 -0
  770. /package/dist/{chunk-VRPREI27.js.map → chunk-72S2RGWD.js.map} +0 -0
  771. /package/dist/{chunk-OAW6GCS3.js.map → chunk-77BKKPCI.js.map} +0 -0
  772. /package/dist/{chunk-67O4GPJJ.js.map → chunk-7FEXRMJE.js.map} +0 -0
  773. /package/dist/{chunk-KN5J3NEZ.js.map → chunk-7KKMZJFT.js.map} +0 -0
  774. /package/dist/{chunk-KJDBY2KN.js.map → chunk-7LILFS72.js.map} +0 -0
  775. /package/dist/{chunk-SLDSWQVE.js.map → chunk-7TE4TMS3.js.map} +0 -0
  776. /package/dist/{chunk-AG3DY5TH.js.map → chunk-ADSA76T7.js.map} +0 -0
  777. /package/dist/{chunk-BKASAYQL.js.map → chunk-ALOUJ3CE.js.map} +0 -0
  778. /package/dist/{chunk-VY2BMSHN.js.map → chunk-ANYOSBNA.js.map} +0 -0
  779. /package/dist/{chunk-LNHYBA4B.js.map → chunk-AWG2AJHX.js.map} +0 -0
  780. /package/dist/{chunk-7X7ZHJHM.js.map → chunk-B3QWQG62.js.map} +0 -0
  781. /package/dist/{chunk-2S752BIJ.js.map → chunk-BA6Z52QN.js.map} +0 -0
  782. /package/dist/{chunk-X4F32GUB.js.map → chunk-BM4KKGL7.js.map} +0 -0
  783. /package/dist/{chunk-4T6UIYJB.js.map → chunk-BVSSEOLI.js.map} +0 -0
  784. /package/dist/{chunk-3UABIEP3.js.map → chunk-C2TERIB4.js.map} +0 -0
  785. /package/dist/{chunk-TEEJ4GNY.js.map → chunk-C6OVO6AT.js.map} +0 -0
  786. /package/dist/{chunk-CYZZHWNK.js.map → chunk-CJ45OL7L.js.map} +0 -0
  787. /package/dist/{chunk-N7LPVR7P.js.map → chunk-CKHFYTIX.js.map} +0 -0
  788. /package/dist/{chunk-PA3AA55Q.js.map → chunk-CLK67TNH.js.map} +0 -0
  789. /package/dist/{chunk-MQ277OLB.js.map → chunk-CM2Q7IH3.js.map} +0 -0
  790. /package/dist/{chunk-ZXSWXE6U.js.map → chunk-CMFJQH6A.js.map} +0 -0
  791. /package/dist/{chunk-NOKN4HRK.js.map → chunk-CMLIWUBW.js.map} +0 -0
  792. /package/dist/{chunk-EA2UNEL6.js.map → chunk-CNR5RFKC.js.map} +0 -0
  793. /package/dist/{chunk-P52LYD6S.js.map → chunk-DFI2RKVQ.js.map} +0 -0
  794. /package/dist/{chunk-37USSARD.js.map → chunk-DH5UJD2I.js.map} +0 -0
  795. /package/dist/{chunk-PCLKFR27.js.map → chunk-DH6SL3SY.js.map} +0 -0
  796. /package/dist/{chunk-S6JHTEV4.js.map → chunk-DLWLIPCP.js.map} +0 -0
  797. /package/dist/{chunk-KN4ZE2XZ.js.map → chunk-EIII4QU4.js.map} +0 -0
  798. /package/dist/{chunk-L566FMDD.js.map → chunk-EO5IEWFI.js.map} +0 -0
  799. /package/dist/{chunk-VY6L74JQ.js.map → chunk-EQXIW5MQ.js.map} +0 -0
  800. /package/dist/{chunk-MWPXKZ7O.js.map → chunk-ERY6D2OV.js.map} +0 -0
  801. /package/dist/{chunk-6PU3JYVY.js.map → chunk-F3AYISXT.js.map} +0 -0
  802. /package/dist/{chunk-GY4NBSCN.js.map → chunk-FDMQ7H22.js.map} +0 -0
  803. /package/dist/{chunk-IBGP3VSR.js.map → chunk-FHW3ATT7.js.map} +0 -0
  804. /package/dist/{chunk-WL6N33AB.js.map → chunk-FIO55AKI.js.map} +0 -0
  805. /package/dist/{chunk-5CQNBMLK.js.map → chunk-FTQBVZ7V.js.map} +0 -0
  806. /package/dist/{chunk-J5UZB6Y6.js.map → chunk-FXWXBEOZ.js.map} +0 -0
  807. /package/dist/{chunk-IGGXKT5B.js.map → chunk-G2WERTWZ.js.map} +0 -0
  808. /package/dist/{chunk-DF4QODJ6.js.map → chunk-G4TKMUOL.js.map} +0 -0
  809. /package/dist/{chunk-WY5PBZ7Q.js.map → chunk-G6ZPQHBL.js.map} +0 -0
  810. /package/dist/{chunk-JYR6VV4Y.js.map → chunk-G7XHJPLO.js.map} +0 -0
  811. /package/dist/{chunk-IQJCLFF4.js.map → chunk-GANW7FXQ.js.map} +0 -0
  812. /package/dist/{chunk-3LSIFHQK.js.map → chunk-GE2CCITY.js.map} +0 -0
  813. /package/dist/{chunk-G3XLFQ2Z.js.map → chunk-GG62LKA3.js.map} +0 -0
  814. /package/dist/{chunk-YQCRQHVU.js.map → chunk-GI63FQEJ.js.map} +0 -0
  815. /package/dist/{chunk-7ICK5MXV.js.map → chunk-GJFAI3J5.js.map} +0 -0
  816. /package/dist/{chunk-2JNHWKQK.js.map → chunk-GPHURU2K.js.map} +0 -0
  817. /package/dist/{chunk-5FAI25JQ.js.map → chunk-H72YKEGD.js.map} +0 -0
  818. /package/dist/{chunk-J3XFUCCR.js.map → chunk-HKBJZX3C.js.map} +0 -0
  819. /package/dist/{chunk-M4QXG5JP.js.map → chunk-HQWJUHR4.js.map} +0 -0
  820. /package/dist/{chunk-4BNV5AAI.js.map → chunk-ITFFA3H2.js.map} +0 -0
  821. /package/dist/{chunk-RB3X6CEE.js.map → chunk-IWGW2E35.js.map} +0 -0
  822. /package/dist/{chunk-O25SH2MA.js.map → chunk-J6KLT7HP.js.map} +0 -0
  823. /package/dist/{chunk-CRG24BGI.js.map → chunk-JAGAFEZL.js.map} +0 -0
  824. /package/dist/{chunk-RDCHT2WN.js.map → chunk-JE5GEWTG.js.map} +0 -0
  825. /package/dist/{chunk-FLDLUAHW.js.map → chunk-JE6GQB5J.js.map} +0 -0
  826. /package/dist/{chunk-N23GCN5U.js.map → chunk-JFLFZLOA.js.map} +0 -0
  827. /package/dist/{chunk-35443PF6.js.map → chunk-JIRZ27RI.js.map} +0 -0
  828. /package/dist/{chunk-5MW7OYBM.js.map → chunk-JSGVYOMN.js.map} +0 -0
  829. /package/dist/{chunk-RNIU447I.js.map → chunk-JU3FRRO2.js.map} +0 -0
  830. /package/dist/{chunk-WOAXKWAB.js.map → chunk-K4A3JDYQ.js.map} +0 -0
  831. /package/dist/{chunk-HM2JJNUE.js.map → chunk-K6LNHHSH.js.map} +0 -0
  832. /package/dist/{chunk-NR5TW4AH.js.map → chunk-K7MQP2KT.js.map} +0 -0
  833. /package/dist/{chunk-2OWKL4CC.js.map → chunk-KCDNOMMT.js.map} +0 -0
  834. /package/dist/{chunk-O2DLEAUP.js.map → chunk-KHOAXZW2.js.map} +0 -0
  835. /package/dist/{chunk-W5TI46QN.js.map → chunk-KQZGUHYZ.js.map} +0 -0
  836. /package/dist/{chunk-2K7WPHI3.js.map → chunk-KW3H5FUS.js.map} +0 -0
  837. /package/dist/{chunk-7D2C4LK2.js.map → chunk-LCWGNDTH.js.map} +0 -0
  838. /package/dist/{chunk-FNRPQE2D.js.map → chunk-LF3EVXMF.js.map} +0 -0
  839. /package/dist/{chunk-MCJRHF7Z.js.map → chunk-LGCRL7DK.js.map} +0 -0
  840. /package/dist/{chunk-JK5UJM4Y.js.map → chunk-LODMNSLR.js.map} +0 -0
  841. /package/dist/{chunk-YUXDVW62.js.map → chunk-M65ZNPLO.js.map} +0 -0
  842. /package/dist/{chunk-URHX4FAQ.js.map → chunk-MKLIMY3D.js.map} +0 -0
  843. /package/dist/{chunk-2FM5SUQV.js.map → chunk-MM5XSAVE.js.map} +0 -0
  844. /package/dist/{chunk-LXT3X33C.js.map → chunk-NCB4GBRL.js.map} +0 -0
  845. /package/dist/{chunk-FNO5TWBJ.js.map → chunk-NCEQWEXT.js.map} +0 -0
  846. /package/dist/{chunk-FWPFCK4D.js.map → chunk-NDHDBOUH.js.map} +0 -0
  847. /package/dist/{chunk-WRCLYSTX.js.map → chunk-NFGIA2ZV.js.map} +0 -0
  848. /package/dist/{chunk-VPPIODKX.js.map → chunk-NQ7NMCRI.js.map} +0 -0
  849. /package/dist/{chunk-YMTZN54Q.js.map → chunk-NRSVI23L.js.map} +0 -0
  850. /package/dist/{chunk-2622YFM6.js.map → chunk-NSVSC6ZC.js.map} +0 -0
  851. /package/dist/{chunk-Z43N7ASP.js.map → chunk-NU55QUMO.js.map} +0 -0
  852. /package/dist/{chunk-66O55OZI.js.map → chunk-NYFGFELX.js.map} +0 -0
  853. /package/dist/{chunk-JXECOCNA.js.map → chunk-P6Q2O3TU.js.map} +0 -0
  854. /package/dist/{chunk-RTEY5COP.js.map → chunk-PAICZOL5.js.map} +0 -0
  855. /package/dist/{chunk-ZN6YATOG.js.map → chunk-PAT2BQOQ.js.map} +0 -0
  856. /package/dist/{chunk-TZBOWSAM.js.map → chunk-PICOOZLX.js.map} +0 -0
  857. /package/dist/{chunk-JJJM75XF.js.map → chunk-PNDYAIKM.js.map} +0 -0
  858. /package/dist/{chunk-EJYJLVPK.js.map → chunk-PRLYYKMG.js.map} +0 -0
  859. /package/dist/{chunk-4GB46HLK.js.map → chunk-PTONBPZL.js.map} +0 -0
  860. /package/dist/{chunk-FNG33MKA.js.map → chunk-QDELBNL3.js.map} +0 -0
  861. /package/dist/{chunk-DSF4VT7L.js.map → chunk-QEI5DC6S.js.map} +0 -0
  862. /package/dist/{chunk-VJ2BNJ5M.js.map → chunk-QMELMQPA.js.map} +0 -0
  863. /package/dist/{chunk-HDJQDMHB.js.map → chunk-QMHS6ZDI.js.map} +0 -0
  864. /package/dist/{chunk-2WVHZIWP.js.map → chunk-QSRZOXQI.js.map} +0 -0
  865. /package/dist/{chunk-C3LZ3OGJ.js.map → chunk-R2FUQV24.js.map} +0 -0
  866. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  867. /package/dist/{chunk-HWSS6C7C.js.map → chunk-RDFPM2AQ.js.map} +0 -0
  868. /package/dist/{chunk-4RPFI474.js.map → chunk-RSDYS5B3.js.map} +0 -0
  869. /package/dist/{chunk-X53F33KA.js.map → chunk-RWXYND4H.js.map} +0 -0
  870. /package/dist/{chunk-4NPPO63U.js.map → chunk-RZ2VZ7SL.js.map} +0 -0
  871. /package/dist/{chunk-ORRI6FMN.js.map → chunk-S4IXC2V3.js.map} +0 -0
  872. /package/dist/{chunk-MXCIUKTQ.js.map → chunk-SDBBJ6FG.js.map} +0 -0
  873. /package/dist/{chunk-UMNXSQ7I.js.map → chunk-SNBAMWI5.js.map} +0 -0
  874. /package/dist/{chunk-LP3JCXER.js.map → chunk-SNW5MJ6I.js.map} +0 -0
  875. /package/dist/{chunk-5OBGW3FG.js.map → chunk-STTULW2K.js.map} +0 -0
  876. /package/dist/{chunk-3CTQZDSD.js.map → chunk-TCNTIGMY.js.map} +0 -0
  877. /package/dist/{chunk-Y6C4MYZE.js.map → chunk-TNQDSTIA.js.map} +0 -0
  878. /package/dist/{chunk-6RLCBNDV.js.map → chunk-TPVSHO75.js.map} +0 -0
  879. /package/dist/{chunk-BUPDBEBA.js.map → chunk-TTJTMDLI.js.map} +0 -0
  880. /package/dist/{chunk-TU5EIKJA.js.map → chunk-U5SH3VRJ.js.map} +0 -0
  881. /package/dist/{chunk-MLQYIJTO.js.map → chunk-U6W2RY3Z.js.map} +0 -0
  882. /package/dist/{chunk-4WF6ZLIW.js.map → chunk-UGPRBJWB.js.map} +0 -0
  883. /package/dist/{chunk-Y6G4I42P.js.map → chunk-VEEG4UXZ.js.map} +0 -0
  884. /package/dist/{chunk-IRD45DRW.js.map → chunk-VOJBLBXE.js.map} +0 -0
  885. /package/dist/{chunk-KHPL2J3B.js.map → chunk-VPAOVEI2.js.map} +0 -0
  886. /package/dist/{chunk-DYGWKZ7T.js.map → chunk-VWJEM2ER.js.map} +0 -0
  887. /package/dist/{chunk-FERUQ7OB.js.map → chunk-VYA4QWQL.js.map} +0 -0
  888. /package/dist/{chunk-UKX3MPB7.js.map → chunk-VYV3JOV5.js.map} +0 -0
  889. /package/dist/{chunk-B7CNP5HW.js.map → chunk-WV62BSWA.js.map} +0 -0
  890. /package/dist/{chunk-IWEUSZY3.js.map → chunk-X66E5WSX.js.map} +0 -0
  891. /package/dist/{chunk-OJ2XR3WH.js.map → chunk-XB7HYOMM.js.map} +0 -0
  892. /package/dist/{chunk-H6AWKLOV.js.map → chunk-XBLFK2FL.js.map} +0 -0
  893. /package/dist/{chunk-5HDYTTE7.js.map → chunk-XHA2NXLD.js.map} +0 -0
  894. /package/dist/{chunk-F4KYBBTY.js.map → chunk-XLXMJ6X2.js.map} +0 -0
  895. /package/dist/{chunk-SCZABICW.js.map → chunk-XO4ZUHVH.js.map} +0 -0
  896. /package/dist/{chunk-PARTZ7XI.js.map → chunk-XP522FFM.js.map} +0 -0
  897. /package/dist/{chunk-MBHWVRV5.js.map → chunk-XVZG52CM.js.map} +0 -0
  898. /package/dist/{chunk-TGXCG62P.js.map → chunk-XXL4PM4M.js.map} +0 -0
  899. /package/dist/{chunk-YKEO6UHN.js.map → chunk-XZJM6EPC.js.map} +0 -0
  900. /package/dist/{chunk-YTY7TD7S.js.map → chunk-XZY7O7JJ.js.map} +0 -0
  901. /package/dist/{chunk-WZNTZX5N.js.map → chunk-Y2UXX5IQ.js.map} +0 -0
  902. /package/dist/{chunk-QOLIBVGS.js.map → chunk-YGYQC7MT.js.map} +0 -0
  903. /package/dist/{chunk-THMT3G3L.js.map → chunk-YLXQWYOG.js.map} +0 -0
  904. /package/dist/{chunk-M4KVKQRN.js.map → chunk-YPIVLPXF.js.map} +0 -0
  905. /package/dist/{chunk-57FZM6GH.js.map → chunk-YRUX7XMQ.js.map} +0 -0
  906. /package/dist/{chunk-M2Q5CLPU.js.map → chunk-YTXZUTLF.js.map} +0 -0
  907. /package/dist/{chunk-ZWCYSAI5.js.map → chunk-YWJDUJAR.js.map} +0 -0
  908. /package/dist/{chunk-S36NC22G.js.map → chunk-Z2NN53E5.js.map} +0 -0
  909. /package/dist/{chunk-GC56IWIZ.js.map → chunk-Z4DKVLYG.js.map} +0 -0
  910. /package/dist/{chunk-U4QUDFPJ.js.map → chunk-Z4O3F6KU.js.map} +0 -0
  911. /package/dist/{chunk-JC22FNFA.js.map → chunk-Z6T5SXST.js.map} +0 -0
  912. /package/dist/{chunk-TXEN3QJ4.js.map → chunk-ZC5HDBQO.js.map} +0 -0
  913. /package/dist/{chunk-LEHMWJNZ.js.map → chunk-ZEYUSS3W.js.map} +0 -0
  914. /package/dist/{chunk-4WNFOBTH.js.map → chunk-ZKWVCSAB.js.map} +0 -0
  915. /package/dist/{chunk-GEB4WSZH.js.map → chunk-ZNBLGS66.js.map} +0 -0
  916. /package/dist/native/chunks/{chunk-ONXKFA5Z.js.map → chunk-A2QNZ4VK.js.map} +0 -0
  917. /package/dist/native/chunks/{chunk-X6RQGKGF.js.map → chunk-BST5DUUD.js.map} +0 -0
  918. /package/dist/native/chunks/{chunk-GUBTMR2K.js.map → chunk-EDYZEMVD.js.map} +0 -0
  919. /package/dist/native/chunks/{chunk-SZF56GVJ.js.map → chunk-LECBJD35.js.map} +0 -0
  920. /package/dist/native/chunks/{chunk-JBYDLWQA.js.map → chunk-MTRRGDBQ.js.map} +0 -0
  921. /package/dist/native/chunks/{chunk-IMGBBIMT.js.map → chunk-PN7C2BEY.js.map} +0 -0
  922. /package/dist/native/chunks/{chunk-4ZAULIDG.js.map → chunk-S4F364X4.js.map} +0 -0
  923. /package/dist/native/chunks/{chunk-5IASLIBI.js.map → chunk-VJFKRXY2.js.map} +0 -0
@@ -0,0 +1,162 @@
1
+ import Box from '@mui/material/Box/index.js';
2
+ import CircularProgress from '@mui/material/CircularProgress/index.js';
3
+ import { useTheme } from '@mui/material/styles/index.js';
4
+ import React, { useId, useState } from 'react';
5
+
6
+ import { Icon } from '../../../icons';
7
+ import { rem } from '../../../tokens/relative';
8
+ import { Chip } from '../../data-display/Chip';
9
+ import { Button } from '../../form/Button';
10
+ import { BUTTON_SIZES } from '../../form/Button/Button.metrics';
11
+ import { Collapsible } from '../Collapsible';
12
+
13
+ import { SETTING_CARD } from './SettingCard.metrics';
14
+ import { errorStyles, headerStyles, iconStyles, titleStyles } from './SettingCard.styles';
15
+ import type { SettingHeadingLevel, SettingStatus } from './SettingCard.types';
16
+
17
+ /** `<root>-<part>` when the host gave a root test id, else nothing. */
18
+ export const partTestId = (root: string | undefined, part: string): string | undefined =>
19
+ root ? `${root}-${part}` : undefined;
20
+
21
+ interface HeaderProps {
22
+ titleId: string;
23
+ title: string;
24
+ headingLevel: SettingHeadingLevel;
25
+ icon?: React.ReactNode;
26
+ status?: SettingStatus;
27
+ /** Rendered at the row's far end — the Edit trigger, or a switch. */
28
+ trailing?: React.ReactNode;
29
+ /** Renders the title as a `<label>` for this control instead of a heading. */
30
+ labelFor?: string;
31
+ dataTestId?: string;
32
+ }
33
+
34
+ /**
35
+ * Icon, title, status pill, and whatever the row ends with.
36
+ *
37
+ * A switch card's title is the switch's `<label>`, so the words are both its
38
+ * accessible name and a tap target far larger than the track. An editable
39
+ * card's title is a heading, so the page outline lists every setting.
40
+ */
41
+ export const SettingHeader: React.FC<HeaderProps> = ({
42
+ titleId,
43
+ title,
44
+ headingLevel,
45
+ icon,
46
+ status,
47
+ trailing,
48
+ labelFor,
49
+ dataTestId,
50
+ }) => {
51
+ const theme = useTheme();
52
+ return (
53
+ <Box sx={headerStyles(theme)}>
54
+ {icon && (
55
+ <Box component="span" aria-hidden sx={iconStyles(theme)}>
56
+ {icon}
57
+ </Box>
58
+ )}
59
+ <Box sx={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: 1, minWidth: 0, flex: 1 }}>
60
+ <Box
61
+ component={labelFor ? 'label' : headingLevel}
62
+ id={titleId}
63
+ htmlFor={labelFor}
64
+ sx={{ ...titleStyles(theme), ...(labelFor ? { cursor: 'pointer' } : {}) }}
65
+ data-testid={partTestId(dataTestId, 'title')}
66
+ >
67
+ {title}
68
+ </Box>
69
+ {status && (
70
+ <Chip
71
+ label={status.label}
72
+ color={status.color ?? 'neutral'}
73
+ size="sm"
74
+ variant="outlined"
75
+ dataTestId={partTestId(dataTestId, 'status')}
76
+ />
77
+ )}
78
+ </Box>
79
+ {trailing}
80
+ </Box>
81
+ );
82
+ };
83
+
84
+ /**
85
+ * The failure line. `role="alert"` so it is announced the moment it appears,
86
+ * without anyone having to move focus to find it.
87
+ */
88
+ export const SaveError: React.FC<{ id: string; message: string | null; dataTestId?: string }> = ({
89
+ id,
90
+ message,
91
+ dataTestId,
92
+ }) => {
93
+ const theme = useTheme();
94
+ if (!message) return null;
95
+ return (
96
+ <Box component="p" id={id} role="alert" sx={errorStyles(theme)} data-testid={partTestId(dataTestId, 'error')}>
97
+ {message}
98
+ </Box>
99
+ );
100
+ };
101
+
102
+ /** The spinner that rides beside a pending control; decorative — the words are announced separately. */
103
+ export const PendingSpinner: React.FC<{ dataTestId?: string }> = ({ dataTestId }) => {
104
+ const theme = useTheme();
105
+ return (
106
+ <CircularProgress
107
+ size={rem(theme, SETTING_CARD.spinnerSize)}
108
+ color="inherit"
109
+ aria-hidden
110
+ data-testid={partTestId(dataTestId, 'saving')}
111
+ />
112
+ );
113
+ };
114
+
115
+ /**
116
+ * The "learn more" disclosure: a text button that owns `aria-expanded`, and
117
+ * the collapsible region it controls. Closed by default — it is the longer
118
+ * explanation, and the form is what the reader came for.
119
+ */
120
+ export const LearnMore: React.FC<{
121
+ label: string;
122
+ children: React.ReactNode;
123
+ dataTestId?: string;
124
+ }> = ({ label, children, dataTestId }) => {
125
+ const [expanded, setExpanded] = useState(false);
126
+ const regionId = useId();
127
+ const theme = useTheme();
128
+ return (
129
+ // Pulled out by the button's own padding, so the words line up with the form above.
130
+ <Box sx={{ marginLeft: `-${rem(theme, BUTTON_SIZES.sm.paddingHorizontal)}` }}>
131
+ <Button
132
+ variant="text"
133
+ size="sm"
134
+ aria-expanded={expanded}
135
+ aria-controls={regionId}
136
+ onClick={() => setExpanded((was) => !was)}
137
+ icon={
138
+ <Box
139
+ component="span"
140
+ sx={{
141
+ display: 'inline-flex',
142
+ transform: expanded ? 'rotate(180deg)' : 'none',
143
+ transition: theme.transitions.create('transform'),
144
+ }}
145
+ >
146
+ <Icon name="ExpandMore" size="xs" />
147
+ </Box>
148
+ }
149
+ iconPosition="right"
150
+ dataTestId={partTestId(dataTestId, 'learn-more')}
151
+ >
152
+ {label}
153
+ </Button>
154
+ {/* Kept mounted so `aria-controls` always names an element that exists. */}
155
+ <Collapsible open={expanded} keepMounted sx={{ marginLeft: rem(theme, BUTTON_SIZES.sm.paddingHorizontal) }} dataTestId={partTestId(dataTestId, 'learn-more-content')}>
156
+ <Box id={regionId} sx={{ ...theme.typography.body2, color: 'text.secondary', pt: 1 }}>
157
+ {children}
158
+ </Box>
159
+ </Collapsible>
160
+ </Box>
161
+ );
162
+ };
@@ -0,0 +1,142 @@
1
+ import type { CSSObject, SxProps, Theme } from '@mui/material/styles/index.js';
2
+
3
+ import { rem } from '../../../tokens/relative';
4
+ import { CARD_BORDER_WIDTH, CARD_RADIUS_UNITS } from '../Card/Card.metrics';
5
+
6
+ import { SETTING_CARD, SETTING_GROUP_INACTIVE_OPACITY } from './SettingCard.metrics';
7
+
8
+ /**
9
+ * The attribute an open `SettingCard` carries, which `SettingGrid` reads to
10
+ * give it the whole row. An attribute rather than a class so a host's wrapper
11
+ * around the card can be matched with `:has()` as well.
12
+ */
13
+ export const SETTING_CARD_OPEN_ATTR = 'data-setting-card-open';
14
+
15
+ /** `sx` as MUI documents it for composition: the component's own first, the caller's after. */
16
+ export const withCallerSx = (
17
+ own: SxProps<Theme>,
18
+ sx: SxProps<Theme> | undefined,
19
+ ): SxProps<Theme> => [own, ...(Array.isArray(sx) ? sx : [sx])] as SxProps<Theme>;
20
+
21
+ /**
22
+ * The card surface — `Card`'s outlined hairline and medium radius, so a
23
+ * settings screen and a content screen are drawn with one kit.
24
+ *
25
+ * `height: 100%` is what turns the grid's per-row stretch into equal-height
26
+ * cards: a grid item stretches, but a card that sized itself to its content
27
+ * would not fill the item it sits in.
28
+ *
29
+ * `gridColumn: 1 / -1` while open is the full-row span. It lives on the card,
30
+ * not only in the grid's CSS, so it also holds when the card sits in a host's
31
+ * own grid. Outside a grid the property does nothing.
32
+ */
33
+ export const surfaceStyles = (theme: Theme, open: boolean): CSSObject => ({
34
+ boxSizing: 'border-box',
35
+ height: '100%',
36
+ minWidth: 0,
37
+ display: 'flex',
38
+ flexDirection: 'column',
39
+ gap: theme.spacing(1.5),
40
+ padding: theme.spacing(2.5),
41
+ backgroundColor: theme.palette.background.paper,
42
+ border: `${CARD_BORDER_WIDTH}px solid ${open ? theme.palette.primary.main : theme.palette.divider}`,
43
+ borderRadius: theme.spacing(CARD_RADIUS_UNITS.lg),
44
+ boxShadow: open ? theme.shadows[4] : 'none',
45
+ transition: theme.transitions.create(['border-color', 'box-shadow'], {
46
+ duration: theme.transitions.duration.short,
47
+ }),
48
+ ...(open ? { gridColumn: '1 / -1' } : {}),
49
+ });
50
+
51
+ /** A `row` toggle: the card's content with none of its surface. */
52
+ export const flatStyles = (theme: Theme): CSSObject => ({
53
+ display: 'flex',
54
+ flexDirection: 'column',
55
+ gap: theme.spacing(0.5),
56
+ padding: theme.spacing(1.25, 0),
57
+ minWidth: 0,
58
+ });
59
+
60
+ export const headerStyles = (theme: Theme): CSSObject => ({
61
+ display: 'flex',
62
+ alignItems: 'center',
63
+ gap: rem(theme, SETTING_CARD.iconGap),
64
+ minWidth: 0,
65
+ });
66
+
67
+ /**
68
+ * The title names its colour rather than inheriting it: a card rendered under
69
+ * a theme other than the page's (a dark panel on a light page) would otherwise
70
+ * take the page's text colour onto its own surface.
71
+ */
72
+ export const titleStyles = (theme: Theme): CSSObject => ({
73
+ ...theme.typography.subtitle1,
74
+ fontWeight: theme.typography.fontWeightMedium,
75
+ color: theme.palette.text.primary,
76
+ margin: 0,
77
+ minWidth: 0,
78
+ overflowWrap: 'anywhere',
79
+ });
80
+
81
+ /** The one line a closed card shows. Long values end in an ellipsis, not a second line. */
82
+ export const summaryStyles = (theme: Theme): CSSObject => ({
83
+ ...theme.typography.body2,
84
+ color: theme.palette.text.secondary,
85
+ margin: 0,
86
+ overflow: 'hidden',
87
+ textOverflow: 'ellipsis',
88
+ whiteSpace: 'nowrap',
89
+ });
90
+
91
+ /** A switch card's explanation, which may wrap: it is read, not scanned. */
92
+ export const descriptionStyles = (theme: Theme): CSSObject => ({
93
+ ...theme.typography.body2,
94
+ color: theme.palette.text.secondary,
95
+ margin: 0,
96
+ });
97
+
98
+ /** The inactive group's hint: a glyph and the sentence, so it does not read as a second summary. */
99
+ export const hintStyles = (theme: Theme): CSSObject => ({
100
+ ...descriptionStyles(theme),
101
+ display: 'flex',
102
+ alignItems: 'flex-start',
103
+ gap: theme.spacing(1),
104
+ // Centre the 16px glyph on the first 20px line; later lines wrap under the text.
105
+ '& > svg': { flexShrink: 0, marginTop: rem(theme, 2) },
106
+ });
107
+
108
+ export const errorStyles = (theme: Theme): CSSObject => ({
109
+ ...theme.typography.body2,
110
+ color: theme.palette.error.main,
111
+ margin: 0,
112
+ });
113
+
114
+ export const actionsStyles = (theme: Theme): CSSObject => ({
115
+ display: 'flex',
116
+ flexWrap: 'wrap',
117
+ justifyContent: 'flex-end',
118
+ gap: theme.spacing(1),
119
+ marginTop: 'auto',
120
+ });
121
+
122
+ export const iconStyles = (theme: Theme): CSSObject => ({
123
+ display: 'inline-flex',
124
+ flexShrink: 0,
125
+ color: theme.palette.text.secondary,
126
+ });
127
+
128
+ /**
129
+ * A group's dependent rows: indented under the main switch, with a rule down
130
+ * their left edge so the "belongs to" reads without words. While the main
131
+ * switch is off they fade — and `inert` (set by the component) is what makes
132
+ * them unreachable; opacity alone would only make them look it.
133
+ */
134
+ export const dependentsStyles = (theme: Theme, active: boolean): CSSObject => ({
135
+ display: 'flex',
136
+ flexDirection: 'column',
137
+ marginLeft: rem(theme, SETTING_CARD.groupIndent / 2),
138
+ paddingLeft: rem(theme, SETTING_CARD.groupIndent / 2),
139
+ borderLeft: `${rem(theme, SETTING_CARD.groupRuleWidth)} solid ${theme.palette.divider}`,
140
+ opacity: active ? 1 : SETTING_GROUP_INACTIVE_OPACITY,
141
+ transition: theme.transitions.create('opacity', { duration: theme.transitions.duration.short }),
142
+ });
@@ -0,0 +1,197 @@
1
+ import Box from '@mui/material/Box/index.js';
2
+ import React, { forwardRef, useId } from 'react';
3
+
4
+ import { Icon } from '../../../icons';
5
+ import { Button } from '../../form/Button';
6
+
7
+ import { useSettingCard } from './SettingCard.hooks';
8
+ import { LearnMore, PendingSpinner, SaveError, SettingHeader, partTestId } from './SettingCard.parts';
9
+ import { SETTING_CARD_OPEN_ATTR, actionsStyles, summaryStyles, surfaceStyles, withCallerSx } from './SettingCard.styles';
10
+ import type { SettingCardCopy, SettingCardProps } from './SettingCard.types';
11
+
12
+ interface OpenBodyProps {
13
+ bodyRef: React.RefObject<HTMLDivElement | null>;
14
+ titleId: string;
15
+ errorId: string;
16
+ copy: SettingCardCopy;
17
+ learnMore?: React.ReactNode;
18
+ children: React.ReactNode;
19
+ saving: boolean;
20
+ error: string | null;
21
+ saveDisabled: boolean;
22
+ onSave: () => void;
23
+ onCancel: () => void;
24
+ dataTestId?: string;
25
+ }
26
+
27
+ /**
28
+ * The open card: the host's form, the disclosure, the failure line, and the
29
+ * two actions.
30
+ *
31
+ * Save is NOT `disabled` while it saves — it is `aria-disabled` and ignores
32
+ * the click. A disabled button drops the focus it holds, so a keyboard user
33
+ * who pressed Save would land on `<body>` and, if the save then failed, have
34
+ * to find their way back to the form from the top of the page.
35
+ */
36
+ const OpenBody: React.FC<OpenBodyProps> = ({
37
+ bodyRef, titleId, errorId, copy, learnMore, children, saving, error, saveDisabled, onSave, onCancel, dataTestId,
38
+ }) => {
39
+ const onKeyDown = (event: React.KeyboardEvent) => {
40
+ if (event.key !== 'Escape') return;
41
+ event.stopPropagation();
42
+ onCancel();
43
+ };
44
+
45
+ return (
46
+ <Box
47
+ ref={bodyRef}
48
+ role="group"
49
+ aria-labelledby={titleId}
50
+ onKeyDown={onKeyDown}
51
+ sx={{ display: 'flex', flexDirection: 'column', gap: 2, flex: 1 }}
52
+ data-testid={partTestId(dataTestId, 'body')}
53
+ >
54
+ <Box>{children}</Box>
55
+ {learnMore && (
56
+ <LearnMore label={copy.learnMore} dataTestId={dataTestId}>
57
+ {learnMore}
58
+ </LearnMore>
59
+ )}
60
+ <SaveError id={errorId} message={error} dataTestId={dataTestId} />
61
+ <Box sx={(theme) => actionsStyles(theme)}>
62
+ <Button variant="ghost" color="neutral" onClick={onCancel} disabled={saving} dataTestId={partTestId(dataTestId, 'cancel')}>
63
+ {copy.cancel}
64
+ </Button>
65
+ <Button
66
+ variant="solid"
67
+ onClick={onSave}
68
+ disabled={saveDisabled}
69
+ aria-disabled={saving || undefined}
70
+ aria-describedby={error ? errorId : undefined}
71
+ icon={saving ? <PendingSpinner dataTestId={dataTestId} /> : undefined}
72
+ iconPosition="left"
73
+ dataTestId={partTestId(dataTestId, 'save')}
74
+ >
75
+ {saving ? copy.saving : copy.save}
76
+ </Button>
77
+ </Box>
78
+ </Box>
79
+ );
80
+ };
81
+
82
+ /**
83
+ * A setting, summarised while closed and edited in place.
84
+ *
85
+ * Closed: title, status pill, a one-line summary and Edit. Edit opens the card
86
+ * where it is — no dialog, no route — around the host's form, a "learn more"
87
+ * disclosure and Cancel / Save. Save may be async: the card holds its saving
88
+ * state while the promise is pending, closes when it resolves, and stays open
89
+ * with the error when it rejects. Focus moves into the card as it opens and
90
+ * back to Edit as it closes.
91
+ */
92
+ interface EditTriggerProps {
93
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
94
+ id: string;
95
+ titleId: string;
96
+ label: string;
97
+ disabled: boolean;
98
+ onOpen: () => void;
99
+ dataTestId?: string;
100
+ }
101
+
102
+ /** Edit. Its accessible name is "Edit" AND the card's title, so a grid of them is not a list of "Edit, Edit, Edit". */
103
+ const EditTrigger: React.FC<EditTriggerProps> = ({ triggerRef, id, titleId, label, disabled, onOpen, dataTestId }) => (
104
+ <Button
105
+ ref={triggerRef}
106
+ id={id}
107
+ variant="outline"
108
+ color="neutral"
109
+ size="sm"
110
+ icon={<Icon name="Edit" size="xs" />}
111
+ iconPosition="left"
112
+ disabled={disabled}
113
+ aria-labelledby={`${id} ${titleId}`}
114
+ onClick={onOpen}
115
+ dataTestId={partTestId(dataTestId, 'edit')}
116
+ >
117
+ {label}
118
+ </Button>
119
+ );
120
+
121
+ /**
122
+ * A setting, summarised while closed and edited in place.
123
+ *
124
+ * Closed: title, status pill, a one-line summary and Edit. Edit opens the card
125
+ * where it is — no dialog, no route — around the host's form, a "learn more"
126
+ * disclosure and Cancel / Save. Save may be async: the card holds its saving
127
+ * state while the promise is pending, closes when it resolves, and stays open
128
+ * with the error when it rejects. Focus moves into the card as it opens and
129
+ * back to Edit as it closes.
130
+ */
131
+ export const SettingCard = forwardRef<HTMLElement, SettingCardProps>(function SettingCard(props, ref) {
132
+ const { title, headingLevel = 'h3', icon, status, summary, children, learnMore, copy, dataTestId, className, sx } = props;
133
+ const baseId = useId();
134
+ const titleId = `${baseId}-title`;
135
+ const card = useSettingCard(props);
136
+ const { open } = card;
137
+
138
+ return (
139
+ <Box
140
+ component="section"
141
+ ref={ref}
142
+ aria-labelledby={titleId}
143
+ aria-busy={card.saving || undefined}
144
+ data-state={open ? 'open' : 'closed'}
145
+ {...{ [SETTING_CARD_OPEN_ATTR]: open ? '' : undefined }}
146
+ data-testid={dataTestId}
147
+ className={className}
148
+ sx={withCallerSx((theme) => surfaceStyles(theme, open), sx)}
149
+ >
150
+ <SettingHeader
151
+ titleId={titleId}
152
+ title={title}
153
+ headingLevel={headingLevel}
154
+ icon={icon}
155
+ status={status}
156
+ trailing={
157
+ open ? null : (
158
+ <EditTrigger
159
+ triggerRef={card.editRef}
160
+ id={`${baseId}-edit`}
161
+ titleId={titleId}
162
+ label={copy.edit}
163
+ disabled={card.disabled}
164
+ onOpen={card.openCard}
165
+ dataTestId={dataTestId}
166
+ />
167
+ )
168
+ }
169
+ dataTestId={dataTestId}
170
+ />
171
+ {!open && summary != null && (
172
+ <Box component="p" sx={summaryStyles} data-testid={partTestId(dataTestId, 'summary')}>
173
+ {summary}
174
+ </Box>
175
+ )}
176
+ {open && (
177
+ <OpenBody
178
+ bodyRef={card.bodyRef}
179
+ titleId={titleId}
180
+ errorId={`${baseId}-error`}
181
+ copy={copy}
182
+ learnMore={learnMore}
183
+ saving={card.saving}
184
+ error={card.error}
185
+ saveDisabled={card.saveDisabled}
186
+ onSave={card.save}
187
+ onCancel={card.cancel}
188
+ dataTestId={dataTestId}
189
+ >
190
+ {children}
191
+ </OpenBody>
192
+ )}
193
+ </Box>
194
+ );
195
+ });
196
+
197
+ SettingCard.displayName = 'SettingCard';
@@ -0,0 +1,140 @@
1
+ import type { SxProps, Theme } from '@mui/material/styles/index.js';
2
+ import type { ReactNode } from 'react';
3
+
4
+ import type { SettingCardCopy, SettingSwitchCopy } from '../../../copy';
5
+ import type { ColorValue } from '../../../tokens/vocabulary';
6
+
7
+ export type { SettingCardCopy, SettingSwitchCopy } from '../../../copy';
8
+
9
+ /**
10
+ * What a save handler may return. A promise holds the card in its saving
11
+ * state until it settles; a rejection is the failure path. A plain return is
12
+ * a synchronous success.
13
+ */
14
+ export type SettingSaveResult = void | Promise<unknown>;
15
+
16
+ /**
17
+ * Turns whatever a rejected save threw into the sentence the card shows.
18
+ * Return `undefined` to fall back to the copy's `saveFailed`. The card never
19
+ * renders an `Error.message` on its own: that string is usually written for a
20
+ * developer, in the developer's language.
21
+ */
22
+ export type SettingErrorFormatter = (error: unknown) => string | undefined;
23
+
24
+ /** The heading level a card's title renders at, so it fits the page outline. */
25
+ export type SettingHeadingLevel = 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
26
+
27
+ /** The pill beside a closed card's title: the setting's current state, in words. */
28
+ export interface SettingStatus {
29
+ /** What the state IS, in the host's language: "On", "Not configured". */
30
+ label: string;
31
+ /** A house colour. Colour is never the only carrier: `label` is always shown. Defaults to `neutral`. */
32
+ color?: ColorValue;
33
+ }
34
+
35
+ /** What every card in the family shares. */
36
+ interface SettingSurfaceProps {
37
+ /** The setting's name. Also the accessible name of the card's region. */
38
+ title: string;
39
+ /** The heading level of `title`. Defaults to `h3`. */
40
+ headingLevel?: SettingHeadingLevel;
41
+ /** A decorative glyph before the title. */
42
+ icon?: ReactNode;
43
+ /** Maps a rejected save to the sentence shown; see {@link SettingErrorFormatter}. */
44
+ formatError?: SettingErrorFormatter;
45
+ /** Root test id. Parts derive theirs from it (`<id>-edit`, `<id>-save`, …). */
46
+ dataTestId?: string;
47
+ className?: string;
48
+ sx?: SxProps<Theme>;
49
+ }
50
+
51
+ export interface SettingCardProps extends SettingSurfaceProps {
52
+ /** The chrome words (Edit, Cancel, Save, …). REQUIRED — no default copy. */
53
+ copy: SettingCardCopy;
54
+ /** The one line a closed card shows under its title: the setting's current value. */
55
+ summary?: ReactNode;
56
+ /** The pill beside the title. Omit for none. */
57
+ status?: SettingStatus;
58
+ /** The form, rendered only while the card is open (so an uncontrolled draft is discarded on close). */
59
+ children: ReactNode;
60
+ /** Longer explanation behind a "learn more" disclosure in the open card. Omit for no disclosure. */
61
+ learnMore?: ReactNode;
62
+ /**
63
+ * Persist the draft. The card stays in its saving state while a returned
64
+ * promise is pending, closes when it resolves, and STAYS OPEN showing the
65
+ * error when it rejects.
66
+ */
67
+ onSave: () => SettingSaveResult;
68
+ /** The card closed without saving — reset the host's draft here. */
69
+ onCancel?: () => void;
70
+ /** Controlled open state. Pair with `onOpenChange`. */
71
+ open?: boolean;
72
+ /** Uncontrolled initial open state. */
73
+ defaultOpen?: boolean;
74
+ /** Every open/close request: Edit, Cancel, Escape, and a successful save. */
75
+ onOpenChange?: (open: boolean) => void;
76
+ /** Disables Edit on a closed card (the setting cannot be changed from here). */
77
+ disabled?: boolean;
78
+ /** Disables Save — for a draft the host knows is invalid. */
79
+ saveDisabled?: boolean;
80
+ }
81
+
82
+ interface SettingSwitchProps extends SettingSurfaceProps {
83
+ /** The saving and failure words. REQUIRED — no default copy. */
84
+ copy: SettingSwitchCopy;
85
+ /** Explanation under the title. Read to screen readers as the switch's description. */
86
+ summary?: ReactNode;
87
+ /** The persisted value. The switch shows the flip optimistically while it saves, then this again. */
88
+ checked: boolean;
89
+ /**
90
+ * Persist a flip. The switch shows the new value and a saving state while a
91
+ * returned promise is pending; a rejection reverts it and shows the error.
92
+ */
93
+ onChange: (checked: boolean) => SettingSaveResult;
94
+ /** Disables the switch. */
95
+ disabled?: boolean;
96
+ }
97
+
98
+ /**
99
+ * `card` draws the surface; `row` draws the same content flat, for a
100
+ * dependent row inside a `SettingGroup` (a card inside a card reads as two
101
+ * subjects).
102
+ */
103
+ export type SettingToggleVariant = 'card' | 'row';
104
+
105
+ export interface SettingToggleProps extends SettingSwitchProps {
106
+ /** Defaults to `card`. */
107
+ variant?: SettingToggleVariant;
108
+ }
109
+
110
+ export interface SettingGroupProps extends SettingSwitchProps {
111
+ /**
112
+ * Why the dependent rows are inactive while the main switch is off —
113
+ * "Turn on notifications to choose which ones you get". Shown only then.
114
+ */
115
+ inactiveHint: string;
116
+ /** The dependent rows. Stay rendered while the main switch is off, dimmed and inert. */
117
+ children: ReactNode;
118
+ }
119
+
120
+ /** The most columns a `SettingGrid` lays out. */
121
+ export type SettingGridColumns = 1 | 2 | 3;
122
+
123
+ export interface SettingGridProps {
124
+ children: ReactNode;
125
+ /**
126
+ * The narrowest a column may get, in design px (scaled with the type
127
+ * scale). The grid adds a column each time its OWN width fits one more.
128
+ * Defaults to 320.
129
+ */
130
+ minColumnWidth?: number;
131
+ /** Defaults to 3. */
132
+ maxColumns?: SettingGridColumns;
133
+ /** Gap between cards, in theme spacing units. Defaults to 2. */
134
+ gap?: number;
135
+ /** Accessible name. When set the grid renders as a labelled `region`. */
136
+ 'aria-label'?: string;
137
+ dataTestId?: string;
138
+ className?: string;
139
+ sx?: SxProps<Theme>;
140
+ }