@12-apps/ui 6.17.1 → 6.19.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.
- package/NATIVE.md +102 -0
- package/components-catalog.md +31 -4
- package/components-guidelines.md +16 -1
- package/dist/_internal/components/data-display/Alert/Alert.base.js +1 -0
- package/dist/_internal/components/data-display/Alert/Alert.base.js.map +1 -0
- package/dist/_internal/components/data-display/Alert/Alert.helpers.js +16 -0
- package/dist/_internal/components/data-display/Alert/Alert.helpers.js.map +1 -0
- package/dist/_internal/components/data-display/Alert/Alert.js +9 -2
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +78 -0
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +7 -1
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +12 -5
- package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +10 -4
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +10 -3
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +17 -9
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +11 -5
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +9 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.js +12 -7
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +8 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +8 -3
- package/dist/_internal/components/data-display/Chart/Chart.js +11 -6
- package/dist/_internal/components/data-display/Chart/SpecChart.js +14 -9
- package/dist/_internal/components/data-display/Chart/chart-context.js +9 -4
- package/dist/_internal/components/data-display/Chart/chart-internals.js +8 -3
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +10 -5
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +8 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +45 -38
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +65 -56
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +12 -5
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +17 -10
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +14 -7
- package/dist/_internal/components/data-display/DataViews/base-card.js +8 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +11 -5
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +10 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +12 -6
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +8 -2
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +11 -5
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +15 -8
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +8 -2
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +12 -5
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +12 -5
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +2 -2
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +18 -11
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +10 -4
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +42 -35
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +8 -2
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +16 -9
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +9 -3
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +14 -7
- package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +12 -5
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +20 -13
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +25 -16
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +19 -12
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +12 -5
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +8 -2
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +13 -7
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +8 -2
- package/dist/_internal/components/data-display/EmptyState/EmptyState.base.js +1 -0
- package/dist/_internal/components/data-display/EmptyState/EmptyState.base.js.map +1 -0
- package/dist/_internal/components/data-display/EmptyState/EmptyState.helpers.js +10 -0
- package/dist/_internal/components/data-display/EmptyState/EmptyState.helpers.js.map +1 -0
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +4 -1
- package/dist/_internal/components/data-display/EmptyState/EmptyState.metrics.js +44 -0
- package/dist/_internal/components/data-display/EmptyState/EmptyState.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/ErrorState/ErrorState.base.js +1 -0
- package/dist/_internal/components/data-display/ErrorState/ErrorState.base.js.map +1 -0
- package/dist/_internal/components/data-display/ErrorState/ErrorState.js +3 -1
- package/dist/_internal/components/data-display/ErrorState/ErrorState.metrics.js +32 -0
- package/dist/_internal/components/data-display/ErrorState/ErrorState.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
- package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
- package/dist/_internal/components/data-display/LoadingState/LoadingState.base.js +1 -0
- package/dist/_internal/components/data-display/LoadingState/LoadingState.base.js.map +1 -0
- package/dist/_internal/components/data-display/LoadingState/LoadingState.helpers.js +6 -2
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +6 -2
- package/dist/_internal/components/data-display/LoadingState/LoadingState.metrics.js +34 -0
- package/dist/_internal/components/data-display/LoadingState/LoadingState.metrics.js.map +1 -0
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +5 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +8 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +12 -7
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +8 -3
- package/dist/_internal/components/data-display/Table/Table.js +3 -3
- package/dist/_internal/components/data-display/index.js +100 -87
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +10 -4
- package/dist/_internal/components/feedback/index.js +25 -19
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +2 -2
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
- package/dist/_internal/components/form/Button/Button.base.js +1 -0
- package/dist/_internal/components/form/Button/Button.base.js.map +1 -0
- package/dist/_internal/components/form/Button/Button.helpers.js +1 -1
- package/dist/_internal/components/form/Button/Button.js +9 -3
- package/dist/_internal/components/form/Button/Button.metrics.js +47 -0
- package/dist/_internal/components/form/Button/Button.metrics.js.map +1 -0
- package/dist/_internal/components/form/Button/Button.styles.js +6 -1
- package/dist/_internal/components/form/Command/Command.js +9 -4
- package/dist/_internal/components/form/Command/Command.styles.js +8 -3
- package/dist/_internal/components/form/Label/Label.js +9 -4
- package/dist/_internal/components/form/Label/Label.styles.js +8 -3
- package/dist/_internal/components/form/Menubar/Menubar.item.js +9 -4
- package/dist/_internal/components/form/Menubar/Menubar.js +11 -6
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +8 -3
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +10 -5
- package/dist/_internal/components/form/index.js +80 -73
- package/dist/_internal/components/form/total-form/Fields/index.js +2 -2
- package/dist/_internal/components/form/total-form/SubmitButton.js +10 -4
- package/dist/_internal/components/index.js +286 -268
- package/dist/_internal/components/layout/Box/Box.base.js +8 -0
- package/dist/_internal/components/layout/Box/Box.base.js.map +1 -0
- package/dist/_internal/components/layout/Box/Box.js +22 -0
- package/dist/_internal/components/layout/Box/Box.js.map +1 -0
- package/dist/_internal/components/layout/Box/Box.types.js +8 -0
- package/dist/_internal/components/layout/Box/Box.types.js.map +1 -0
- package/dist/_internal/components/layout/Box/box-layout.js +11 -0
- package/dist/_internal/components/layout/Box/box-layout.js.map +1 -0
- package/dist/_internal/components/layout/Container/Container.base.js +1 -0
- package/dist/_internal/components/layout/Container/Container.base.js.map +1 -0
- package/dist/_internal/components/layout/Container/Container.js +3 -1
- package/dist/_internal/components/layout/Container/Container.metrics.js +26 -0
- package/dist/_internal/components/layout/Container/Container.metrics.js.map +1 -0
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
- package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
- package/dist/_internal/components/layout/Spacer/Spacer.base.js +1 -0
- package/dist/_internal/components/layout/Spacer/Spacer.base.js.map +1 -0
- package/dist/_internal/components/layout/Spacer/Spacer.js +3 -1
- package/dist/_internal/components/layout/Spacer/Spacer.metrics.js +18 -0
- package/dist/_internal/components/layout/Spacer/Spacer.metrics.js.map +1 -0
- package/dist/_internal/components/layout/Stack/Stack.base.js +1 -0
- package/dist/_internal/components/layout/Stack/Stack.base.js.map +1 -0
- package/dist/_internal/components/layout/Stack/Stack.js +22 -0
- package/dist/_internal/components/layout/Stack/Stack.js.map +1 -0
- package/dist/_internal/components/layout/Stack/Stack.types.js +1 -0
- package/dist/_internal/components/layout/Stack/Stack.types.js.map +1 -0
- package/dist/_internal/components/layout/Stack/with-dividers.js +8 -0
- package/dist/_internal/components/layout/Stack/with-dividers.js.map +1 -0
- package/dist/_internal/components/layout/index.js +27 -24
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +18 -11
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +8 -3
- package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +5 -5
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +3 -3
- package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
- package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
- package/dist/_internal/components/navigation/index.js +43 -36
- package/dist/_internal/components/typography/Heading/Heading.base.js +1 -0
- package/dist/_internal/components/typography/Heading/Heading.base.js.map +1 -0
- package/dist/_internal/components/typography/Heading/Heading.js +9 -3
- package/dist/_internal/components/typography/Heading/Heading.metrics.js +32 -0
- package/dist/_internal/components/typography/Heading/Heading.metrics.js.map +1 -0
- package/dist/_internal/components/typography/Heading/Heading.styles.js +7 -2
- package/dist/_internal/components/typography/Paragraph/Paragraph.base.js +1 -0
- package/dist/_internal/components/typography/Paragraph/Paragraph.base.js.map +1 -0
- package/dist/_internal/components/typography/Paragraph/Paragraph.js +7 -1
- package/dist/_internal/components/typography/Paragraph/Paragraph.metrics.js +24 -0
- package/dist/_internal/components/typography/Paragraph/Paragraph.metrics.js.map +1 -0
- package/dist/_internal/components/typography/Text/Text.base.js +1 -0
- package/dist/_internal/components/typography/Text/Text.base.js.map +1 -0
- package/dist/_internal/components/typography/Text/Text.js +7 -1
- package/dist/_internal/components/typography/Text/Text.metrics.js +34 -0
- package/dist/_internal/components/typography/Text/Text.metrics.js.map +1 -0
- package/dist/_internal/components/typography/index.js +15 -7
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +26 -26
- package/dist/_internal/icons/Icon.js +21 -0
- package/dist/_internal/icons/Icon.js.map +1 -0
- package/dist/_internal/icons/Icon.types.js +10 -0
- package/dist/_internal/icons/Icon.types.js.map +1 -0
- package/dist/_internal/icons/icon-color.js +10 -0
- package/dist/_internal/icons/icon-color.js.map +1 -0
- package/dist/_internal/icons/paths.generated.js +10 -0
- package/dist/_internal/icons/paths.generated.js.map +1 -0
- package/dist/_internal/platform/aria.js +11 -0
- package/dist/_internal/platform/aria.js.map +1 -0
- package/dist/_internal/platform/test-id.js +12 -0
- package/dist/_internal/platform/test-id.js.map +1 -0
- package/dist/_internal/platform/text-children.js +37 -0
- package/dist/_internal/platform/text-children.js.map +1 -0
- package/dist/_internal/provider/UiProvider.js +17 -0
- package/dist/_internal/provider/UiProvider.js.map +1 -0
- package/dist/_internal/provider/UiProvider.types.js +8 -0
- package/dist/_internal/provider/UiProvider.types.js.map +1 -0
- package/dist/_internal/provider/mui-bridge.js +17 -0
- package/dist/_internal/provider/mui-bridge.js.map +1 -0
- package/dist/_internal/provider/ui-theme-context.js +9 -0
- package/dist/_internal/provider/ui-theme-context.js.map +1 -0
- package/dist/_internal/provider/use-ui-theme.js +16 -0
- package/dist/_internal/provider/use-ui-theme.js.map +1 -0
- package/dist/_internal/social-login-button/social-login-button.js +16 -8
- package/dist/_internal/tokens/color.js +26 -0
- package/dist/_internal/tokens/color.js.map +1 -0
- package/dist/_internal/tokens/css-units.js +10 -0
- package/dist/_internal/tokens/css-units.js.map +1 -0
- package/dist/_internal/tokens/heading-scale.js +10 -0
- package/dist/_internal/tokens/heading-scale.js.map +1 -0
- package/dist/_internal/tokens/mui-type.js +25 -0
- package/dist/_internal/tokens/mui-type.js.map +1 -0
- package/dist/_internal/tokens/theme.js +33 -0
- package/dist/_internal/tokens/theme.js.map +1 -0
- package/dist/_internal/tokens/typography.js +5 -3
- package/dist/_internal/tokens/vocabulary.js +22 -0
- package/dist/_internal/tokens/vocabulary.js.map +1 -0
- package/dist/_internal/user-avatar/user-avatar.js +12 -5
- package/dist/charts.js +20 -15
- package/dist/{chunk-VRHBJXZ7.js → chunk-2PCOC3PT.js} +62 -42
- package/dist/chunk-2PCOC3PT.js.map +1 -0
- package/dist/chunk-3N6EK6K5.js +57 -0
- package/dist/chunk-3N6EK6K5.js.map +1 -0
- package/dist/{chunk-77GA5YHQ.js → chunk-43NEBUV3.js} +2 -2
- package/dist/{chunk-FJHNNSD3.js → chunk-4FRZDSRD.js} +5 -5
- package/dist/chunk-4GGH6ZQ7.js +14 -0
- package/dist/chunk-4GGH6ZQ7.js.map +1 -0
- package/dist/{chunk-2PPWKCMW.js → chunk-4N4ENTF7.js} +2 -2
- package/dist/{chunk-GFBNUWT5.js → chunk-4SXZSSVV.js} +6 -6
- package/dist/{chunk-6U7NA74A.js → chunk-5HOJSVQH.js} +2 -2
- package/dist/{chunk-2XGM5PDA.js → chunk-624TFFLJ.js} +5 -3
- package/dist/{chunk-2XGM5PDA.js.map → chunk-624TFFLJ.js.map} +1 -1
- package/dist/chunk-6D5WEZ2L.js +219 -0
- package/dist/chunk-6D5WEZ2L.js.map +1 -0
- package/dist/{chunk-AX7UFG2U.js → chunk-6DXYCXH4.js} +3 -3
- package/dist/chunk-6JAIFIPW.js +111 -0
- package/dist/chunk-6JAIFIPW.js.map +1 -0
- package/dist/{chunk-X4X4CVWJ.js → chunk-6JZE4IIN.js} +2 -2
- package/dist/{chunk-HEDOL2RV.js → chunk-72UYVJBQ.js} +3 -3
- package/dist/{chunk-ZDWU52DJ.js → chunk-7AR2R7TV.js} +4 -4
- package/dist/{chunk-KVN3K4J3.js → chunk-7DFEKTT7.js} +12 -16
- package/dist/chunk-7DFEKTT7.js.map +1 -0
- package/dist/{chunk-B6IURHSZ.js → chunk-7DNQHMDO.js} +4 -4
- package/dist/chunk-7JXLGOM2.js +25 -0
- package/dist/chunk-7JXLGOM2.js.map +1 -0
- package/dist/chunk-7V6ZRQYW.js +90 -0
- package/dist/chunk-7V6ZRQYW.js.map +1 -0
- package/dist/{chunk-GT7C6TSM.js → chunk-7WL24VNI.js} +5 -5
- package/dist/chunk-7ZPUN7TV.js +29 -0
- package/dist/chunk-7ZPUN7TV.js.map +1 -0
- package/dist/chunk-AG66JBNH.js +21 -0
- package/dist/chunk-AG66JBNH.js.map +1 -0
- package/dist/{chunk-ELYLG4F7.js → chunk-AP4FLCLA.js} +5 -5
- package/dist/chunk-B2Y3BABA.js +136 -0
- package/dist/chunk-B2Y3BABA.js.map +1 -0
- package/dist/{chunk-IE7ISTLQ.js → chunk-B443IIQG.js} +4 -4
- package/dist/{chunk-WR6F6J43.js → chunk-BUDXR3EV.js} +3 -3
- package/dist/{chunk-MUAVYVDJ.js → chunk-BVZVH3ZN.js} +3 -3
- package/dist/{chunk-CBPQJAHX.js → chunk-C6XESZ3R.js} +5 -5
- package/dist/{chunk-RP3W6IQO.js → chunk-CPNSVIIB.js} +5 -5
- package/dist/{chunk-45OIUWGO.js → chunk-CRNQVWIT.js} +8 -8
- package/dist/{chunk-T4SM36XC.js → chunk-D7FJ2GAD.js} +2 -2
- package/dist/{chunk-G7CFUI4I.js → chunk-DLFOEXUP.js} +2 -2
- package/dist/{chunk-SCGVB7DS.js → chunk-DOADQW7I.js} +2 -2
- package/dist/{chunk-RIAIJTEW.js → chunk-DOMEYGTN.js} +2 -2
- package/dist/{chunk-7HPPUO2A.js → chunk-DQHC5P64.js} +3 -3
- package/dist/{chunk-6YLAVHV4.js → chunk-DTKMBI7B.js} +4 -4
- package/dist/{chunk-24LW52EU.js → chunk-DX527XPL.js} +2 -2
- package/dist/{chunk-BBC4KT5G.js → chunk-DZN3JF5E.js} +4 -4
- package/dist/{chunk-5ERH4OIK.js → chunk-E27Y7FF2.js} +92 -76
- package/dist/chunk-E27Y7FF2.js.map +1 -0
- package/dist/{chunk-3LO5JWTC.js → chunk-E5ZHW4I5.js} +4 -4
- package/dist/{chunk-CXA6UNFF.js → chunk-EMNGIYH6.js} +4 -4
- package/dist/{chunk-A4YWFX5C.js → chunk-ENNW5SKT.js} +2 -2
- package/dist/{chunk-EGRFMPGD.js → chunk-EXJBPKGW.js} +4 -4
- package/dist/{chunk-DWUMMMLR.js → chunk-FOMK3WPG.js} +2 -2
- package/dist/{chunk-7CA6GVBO.js → chunk-FZXKH2ZT.js} +3 -7
- package/dist/chunk-FZXKH2ZT.js.map +1 -0
- package/dist/{chunk-6CBYPMYQ.js → chunk-GBFGZJB5.js} +2 -2
- package/dist/chunk-H2EQVMU3.js +49 -0
- package/dist/chunk-H2EQVMU3.js.map +1 -0
- package/dist/{chunk-XSKVBGCZ.js → chunk-HKV4MQ2W.js} +2 -2
- package/dist/{chunk-DQIQKIEA.js → chunk-HKZHEK3Z.js} +3 -3
- package/dist/{chunk-VR5HDUBK.js → chunk-HP2ODXNA.js} +2 -2
- package/dist/{chunk-O6J4CKS5.js → chunk-IIOEQRXX.js} +30 -13
- package/dist/chunk-IIOEQRXX.js.map +1 -0
- package/dist/{chunk-4Y65Q3CR.js → chunk-ISSJNFJV.js} +3 -3
- package/dist/chunk-ITGG5OKP.js +86 -0
- package/dist/chunk-ITGG5OKP.js.map +1 -0
- package/dist/{chunk-X24P3ZYW.js → chunk-J4W4TQPC.js} +6 -6
- package/dist/chunk-J6UFAMIC.js +19 -0
- package/dist/chunk-J6UFAMIC.js.map +1 -0
- package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
- package/dist/{chunk-NYUGX76C.js → chunk-JT6TERQL.js} +20 -17
- package/dist/chunk-JT6TERQL.js.map +1 -0
- package/dist/chunk-JZT5XP23.js +48 -0
- package/dist/chunk-JZT5XP23.js.map +1 -0
- package/dist/{chunk-6RFL7HGI.js → chunk-KADJNWTQ.js} +4 -4
- package/dist/{chunk-EB4BTKKY.js → chunk-KKYW3LU7.js} +4 -4
- package/dist/chunk-KLREH4X6.js +16 -0
- package/dist/chunk-KLREH4X6.js.map +1 -0
- package/dist/{chunk-RQ4EQ5FJ.js → chunk-L65LF6LN.js} +2 -2
- package/dist/{chunk-FH4VARZ7.js → chunk-L6KEVPXN.js} +7 -7
- package/dist/{chunk-SRMWCN5D.js → chunk-LDE4ELB5.js} +6 -6
- package/dist/{chunk-FF55LRSV.js → chunk-LIOVN5IM.js} +2 -2
- package/dist/{chunk-NBNLGTRB.js → chunk-LLABVZM3.js} +21 -29
- package/dist/chunk-LLABVZM3.js.map +1 -0
- package/dist/{chunk-KXNWDXR7.js → chunk-M2K7BPHX.js} +2 -2
- package/dist/{chunk-VVXRIPV5.js → chunk-MCRIT46W.js} +7 -7
- package/dist/{chunk-WLDK74RR.js → chunk-MSUSZLRE.js} +2 -2
- package/dist/chunk-MWFSIB6K.js +47 -0
- package/dist/chunk-MWFSIB6K.js.map +1 -0
- package/dist/chunk-N3QUEBNS.js +32 -0
- package/dist/chunk-N3QUEBNS.js.map +1 -0
- package/dist/chunk-N7MJ6CNC.js +30 -0
- package/dist/chunk-N7MJ6CNC.js.map +1 -0
- package/dist/{chunk-MD6T7MDT.js → chunk-NECUCG2S.js} +11 -11
- package/dist/{chunk-A3KY6NUA.js → chunk-NFHS77NE.js} +2 -2
- package/dist/{chunk-E67PUPFJ.js → chunk-NQC6H7GY.js} +73 -57
- package/dist/chunk-NQC6H7GY.js.map +1 -0
- package/dist/chunk-NQN5Z36J.js +182 -0
- package/dist/chunk-NQN5Z36J.js.map +1 -0
- package/dist/chunk-OCUVKI63.js +35 -0
- package/dist/chunk-OCUVKI63.js.map +1 -0
- package/dist/{chunk-REMK55JI.js → chunk-OLZTGVBT.js} +4 -4
- package/dist/{chunk-WME2F2YY.js → chunk-OR7UH2ZQ.js} +3 -3
- package/dist/{chunk-PKJKA4CU.js → chunk-OZWQNFG6.js} +6 -6
- package/dist/{chunk-23FCBIUN.js → chunk-P7FQUGED.js} +8 -8
- package/dist/{chunk-6TYSEAAT.js → chunk-PC3ZFERM.js} +4 -4
- package/dist/{chunk-T53L42XW.js → chunk-PMS3H3OO.js} +10 -10
- package/dist/{chunk-TCAB2ERD.js → chunk-PNYXXLPU.js} +2 -2
- package/dist/chunk-PT6TCWIW.js +13 -0
- package/dist/chunk-PT6TCWIW.js.map +1 -0
- package/dist/{chunk-QCIWROKG.js → chunk-PWR7K5OP.js} +17 -15
- package/dist/chunk-PWR7K5OP.js.map +1 -0
- package/dist/{chunk-EY4LPLIR.js → chunk-QJJUTBKZ.js} +3 -3
- package/dist/chunk-QKLGH3RZ.js +29 -0
- package/dist/chunk-QKLGH3RZ.js.map +1 -0
- package/dist/chunk-QLWBQQW7.js +18 -0
- package/dist/chunk-QLWBQQW7.js.map +1 -0
- package/dist/chunk-QWBQVQRG.js +18 -0
- package/dist/chunk-QWBQVQRG.js.map +1 -0
- package/dist/{chunk-VJKRJYZL.js → chunk-QZPNQWS2.js} +2 -2
- package/dist/{chunk-5QXSPLWU.js → chunk-R6SSXEK2.js} +2 -2
- package/dist/{chunk-W2UTDN4T.js → chunk-RBGOGTT2.js} +4 -4
- package/dist/chunk-RKCS6K36.js +48 -0
- package/dist/chunk-RKCS6K36.js.map +1 -0
- package/dist/chunk-RLC46NIW.js +47 -0
- package/dist/chunk-RLC46NIW.js.map +1 -0
- package/dist/{chunk-NR3J7VQL.js → chunk-RNCQ5KHQ.js} +2 -2
- package/dist/chunk-RTSK5OZT.js +15 -0
- package/dist/chunk-RTSK5OZT.js.map +1 -0
- package/dist/{chunk-7FOOLP5H.js → chunk-RXSGHPCR.js} +4 -4
- package/dist/{chunk-Z56IO7OV.js → chunk-RXVPUW7V.js} +2 -2
- package/dist/{chunk-JPDKRGYI.js → chunk-S7HRED4D.js} +3 -3
- package/dist/{chunk-5VVM2PPV.js → chunk-SG6VULKS.js} +3 -3
- package/dist/{chunk-IAQFQNBL.js → chunk-SL4NFGOL.js} +13 -7
- package/dist/chunk-SL4NFGOL.js.map +1 -0
- package/dist/{chunk-SLYZMJEL.js → chunk-SOHDPFOB.js} +3 -3
- package/dist/{chunk-FWL2N2KH.js → chunk-SX3V2DLV.js} +2 -2
- package/dist/{chunk-AUYC5K5K.js → chunk-TAMIZE4Q.js} +1 -1
- package/dist/chunk-TAMIZE4Q.js.map +1 -0
- package/dist/{chunk-3GOX75ZM.js → chunk-TF4TPLF2.js} +2 -2
- package/dist/{chunk-3DQP6OPC.js → chunk-THBT56JE.js} +2 -2
- package/dist/chunk-TLGGVE56.js +37 -0
- package/dist/chunk-TLGGVE56.js.map +1 -0
- package/dist/{chunk-RRX6ZTNX.js → chunk-UEJQQVP2.js} +4 -4
- package/dist/{chunk-K2T2CQSZ.js → chunk-UF27D35R.js} +2 -2
- package/dist/{chunk-7M5BACFQ.js → chunk-UXQW6ZIN.js} +45 -57
- package/dist/chunk-UXQW6ZIN.js.map +1 -0
- package/dist/chunk-V3PLFYKO.js +34 -0
- package/dist/chunk-V3PLFYKO.js.map +1 -0
- package/dist/{chunk-A2GGT4OC.js → chunk-V3SBJ3PB.js} +54 -30
- package/dist/chunk-V3SBJ3PB.js.map +1 -0
- package/dist/chunk-V5IOLAIS.js +22 -0
- package/dist/chunk-V5IOLAIS.js.map +1 -0
- package/dist/chunk-VJK5FBNK.js +46 -0
- package/dist/chunk-VJK5FBNK.js.map +1 -0
- package/dist/{chunk-N34YHFZW.js → chunk-W2YNUUVJ.js} +2 -2
- package/dist/{chunk-XULTDO56.js → chunk-WZUNBSS7.js} +2 -2
- package/dist/{chunk-3JYYPJFD.js → chunk-X2J6MRJW.js} +2 -2
- package/dist/chunk-X5D3PTWI.js +58 -0
- package/dist/chunk-X5D3PTWI.js.map +1 -0
- package/dist/{chunk-HEG7JIBM.js → chunk-X5MPHXG5.js} +4 -4
- package/dist/{chunk-3QGRQNTP.js → chunk-XELVDPKL.js} +3 -3
- package/dist/{chunk-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
- package/dist/{chunk-AVU6KU27.js → chunk-XXDXW6TX.js} +2 -2
- package/dist/{chunk-WMALDOF5.js → chunk-XXJRT6BP.js} +4 -4
- package/dist/chunk-XZTRZ3HO.js +7 -0
- package/dist/chunk-XZTRZ3HO.js.map +1 -0
- package/dist/{chunk-6HNEEJES.js → chunk-Y6KPZQPI.js} +6 -6
- package/dist/{chunk-COSJTD6Z.js → chunk-YLDS5FOQ.js} +2 -2
- package/dist/chunk-YMRI5QKG.js +134 -0
- package/dist/chunk-YMRI5QKG.js.map +1 -0
- package/dist/chunk-YSTHOE66.js +51 -0
- package/dist/chunk-YSTHOE66.js.map +1 -0
- package/dist/{chunk-HQJ75HHI.js → chunk-Z7JNCB5Q.js} +26 -13
- package/dist/chunk-Z7JNCB5Q.js.map +1 -0
- package/dist/{chunk-PMFW55F5.js → chunk-ZIOCRSHU.js} +4 -4
- package/dist/{chunk-WC3W36AM.js → chunk-ZOUWHGV3.js} +4 -4
- package/dist/{chunk-2ZDTGI5V.js → chunk-ZRFRU545.js} +7 -7
- package/dist/{chunk-DJORMYOV.js → chunk-ZU3SWR4I.js} +2 -2
- package/dist/data-display/Alert.js +9 -2
- package/dist/data-display/AsyncStateContainer.js +12 -5
- package/dist/data-display/Badge.js +2 -2
- package/dist/data-display/CardKit.js +18 -10
- package/dist/data-display/Carousel.js +12 -7
- package/dist/data-display/Chart.js +20 -15
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +77 -68
- package/dist/data-display/DescriptionItem.js +8 -2
- package/dist/data-display/EmptyState.js +4 -1
- package/dist/data-display/ErrorState.js +3 -1
- package/dist/data-display/HoverCard.js +2 -2
- package/dist/data-display/InteractiveTooltip.js +2 -2
- package/dist/data-display/Lightbox.js +6 -6
- package/dist/data-display/LoadingState.js +6 -2
- package/dist/data-display/MapPreview.js +4 -4
- package/dist/data-display/SectionOnboarding.js +5 -2
- package/dist/data-display/Sheet.js +12 -7
- package/dist/data-display/Table.js +3 -3
- package/dist/en-US.js +8 -8
- package/dist/feedback/ConfirmAction.js +13 -7
- package/dist/form/AddressAutocomplete.js +7 -7
- package/dist/form/Button.js +9 -3
- package/dist/form/Command.js +9 -4
- package/dist/form/Label.js +9 -4
- package/dist/form/Menubar.js +11 -6
- package/dist/form/total-form.js +12 -6
- package/dist/icons.js +31 -0
- package/dist/icons.js.map +1 -0
- package/dist/layout/Box.js +23 -0
- package/dist/layout/Box.js.map +1 -0
- package/dist/layout/Container.js +3 -1
- package/dist/layout/ContentToolbar.js +3 -3
- package/dist/layout/ScrollArea.js +2 -2
- package/dist/layout/SettingsLayout.js +6 -6
- package/dist/layout/Spacer.js +3 -1
- package/dist/layout/Stack.js +22 -0
- package/dist/layout/Stack.js.map +1 -0
- package/dist/locales.js +25 -25
- package/dist/native/chunks/chunk-4NK5ZQZ3.js +10 -0
- package/dist/native/chunks/chunk-4NK5ZQZ3.js.map +1 -0
- package/dist/native/chunks/chunk-5GJ5OG5R.js +36 -0
- package/dist/native/chunks/chunk-5GJ5OG5R.js.map +1 -0
- package/dist/native/chunks/chunk-5WLOVHKK.js +29 -0
- package/dist/native/chunks/chunk-5WLOVHKK.js.map +1 -0
- package/dist/native/chunks/chunk-EKKNUEA6.js +136 -0
- package/dist/native/chunks/chunk-EKKNUEA6.js.map +1 -0
- package/dist/native/chunks/chunk-M4DTJDWU.js +18 -0
- package/dist/native/chunks/chunk-M4DTJDWU.js.map +1 -0
- package/dist/native/chunks/chunk-P3PL4WBO.js +317 -0
- package/dist/native/chunks/chunk-P3PL4WBO.js.map +1 -0
- package/dist/native/chunks/chunk-UKCCYP52.js +318 -0
- package/dist/native/chunks/chunk-UKCCYP52.js.map +1 -0
- package/dist/native/chunks/chunk-V4DQTC5L.js +24 -0
- package/dist/native/chunks/chunk-V4DQTC5L.js.map +1 -0
- package/dist/native/chunks/chunk-YQGNMAJN.js +108 -0
- package/dist/native/chunks/chunk-YQGNMAJN.js.map +1 -0
- package/dist/native/chunks/chunk-YTHR4Y5P.js +21 -0
- package/dist/native/chunks/chunk-YTHR4Y5P.js.map +1 -0
- package/dist/native/data-display/Alert.js +372 -0
- package/dist/native/data-display/Alert.js.map +1 -0
- package/dist/native/data-display/EmptyState.js +293 -0
- package/dist/native/data-display/EmptyState.js.map +1 -0
- package/dist/native/data-display/ErrorState.js +188 -0
- package/dist/native/data-display/ErrorState.js.map +1 -0
- package/dist/native/data-display/LoadingState.js +205 -0
- package/dist/native/data-display/LoadingState.js.map +1 -0
- package/dist/native/form/Button.js +11 -0
- package/dist/native/form/Button.js.map +1 -0
- package/dist/native/icons.js +19 -0
- package/dist/native/icons.js.map +1 -0
- package/dist/native/layout/Box.js +12 -0
- package/dist/native/layout/Box.js.map +1 -0
- package/dist/native/layout/Container.js +87 -0
- package/dist/native/layout/Container.js.map +1 -0
- package/dist/native/layout/Spacer.js +80 -0
- package/dist/native/layout/Spacer.js.map +1 -0
- package/dist/native/layout/Stack.js +30 -0
- package/dist/native/layout/Stack.js.map +1 -0
- package/dist/native/provider.js +26 -0
- package/dist/native/provider.js.map +1 -0
- package/dist/native/tokens.js +65 -0
- package/dist/native/tokens.js.map +1 -0
- package/dist/native/typography/Heading.js +110 -0
- package/dist/native/typography/Heading.js.map +1 -0
- package/dist/native/typography/Paragraph.js +86 -0
- package/dist/native/typography/Paragraph.js.map +1 -0
- package/dist/native/typography/Text.js +131 -0
- package/dist/native/typography/Text.js.map +1 -0
- package/dist/navigation/AppHeader.js +23 -16
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/NavigationMenu.js +5 -5
- package/dist/navigation/Pagination.js +2 -2
- package/dist/navigation/Tabs.js +2 -2
- package/dist/provider.js +26 -0
- package/dist/provider.js.map +1 -0
- package/dist/pt-BR.js +8 -8
- package/dist/social-login-button.js +16 -8
- package/dist/tokens.js +59 -6
- package/dist/types/components/data-display/Alert/Alert.base.d.ts +92 -0
- package/dist/types/components/data-display/Alert/Alert.base.d.ts.map +1 -0
- package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.helpers.d.ts +23 -0
- package/dist/types/components/data-display/Alert/Alert.helpers.d.ts.map +1 -0
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +181 -0
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/Alert/Alert.styles.d.ts +3 -10
- package/dist/types/components/data-display/Alert/Alert.styles.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.types.d.ts +5 -79
- package/dist/types/components/data-display/Alert/Alert.types.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/index.d.ts +1 -1
- package/dist/types/components/data-display/Alert/index.d.ts.map +1 -1
- package/dist/types/components/data-display/EmptyState/EmptyState.base.d.ts +51 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.base.d.ts.map +1 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/types/components/data-display/EmptyState/EmptyState.helpers.d.ts +13 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.helpers.d.ts.map +1 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.metrics.d.ts +57 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/EmptyState/EmptyState.types.d.ts +3 -39
- package/dist/types/components/data-display/EmptyState/EmptyState.types.d.ts.map +1 -1
- package/dist/types/components/data-display/EmptyState/index.d.ts +1 -1
- package/dist/types/components/data-display/EmptyState/index.d.ts.map +1 -1
- package/dist/types/components/data-display/ErrorState/ErrorState.base.d.ts +43 -0
- package/dist/types/components/data-display/ErrorState/ErrorState.base.d.ts.map +1 -0
- package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
- package/dist/types/components/data-display/ErrorState/ErrorState.metrics.d.ts +37 -0
- package/dist/types/components/data-display/ErrorState/ErrorState.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/ErrorState/ErrorState.types.d.ts +3 -32
- package/dist/types/components/data-display/ErrorState/ErrorState.types.d.ts.map +1 -1
- package/dist/types/components/data-display/ErrorState/index.d.ts +1 -1
- package/dist/types/components/data-display/ErrorState/index.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts +37 -0
- package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -0
- package/dist/types/components/data-display/LoadingState/LoadingState.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/LoadingState.helpers.d.ts +12 -6
- package/dist/types/components/data-display/LoadingState/LoadingState.helpers.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/LoadingState.metrics.d.ts +43 -0
- package/dist/types/components/data-display/LoadingState/LoadingState.metrics.d.ts.map +1 -0
- package/dist/types/components/data-display/LoadingState/LoadingState.types.d.ts +3 -27
- package/dist/types/components/data-display/LoadingState/LoadingState.types.d.ts.map +1 -1
- package/dist/types/components/data-display/LoadingState/index.d.ts +1 -1
- package/dist/types/components/data-display/LoadingState/index.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.base.d.ts +65 -0
- package/dist/types/components/form/Button/Button.base.d.ts.map +1 -0
- package/dist/types/components/form/Button/Button.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.helpers.d.ts +7 -3
- package/dist/types/components/form/Button/Button.helpers.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.metrics.d.ts +52 -0
- package/dist/types/components/form/Button/Button.metrics.d.ts.map +1 -0
- package/dist/types/components/form/Button/Button.styles.d.ts.map +1 -1
- package/dist/types/components/form/Button/Button.types.d.ts +3 -46
- package/dist/types/components/form/Button/Button.types.d.ts.map +1 -1
- package/dist/types/components/form/Button/index.d.ts +1 -1
- package/dist/types/components/form/Button/index.d.ts.map +1 -1
- package/dist/types/components/layout/Box/Box.base.d.ts +60 -0
- package/dist/types/components/layout/Box/Box.base.d.ts.map +1 -0
- package/dist/types/components/layout/Box/Box.d.ts +10 -0
- package/dist/types/components/layout/Box/Box.d.ts.map +1 -0
- package/dist/types/components/layout/Box/Box.types.d.ts +11 -0
- package/dist/types/components/layout/Box/Box.types.d.ts.map +1 -0
- package/dist/types/components/layout/Box/box-layout.d.ts +42 -0
- package/dist/types/components/layout/Box/box-layout.d.ts.map +1 -0
- package/dist/types/components/layout/Box/index.d.ts +5 -0
- package/dist/types/components/layout/Box/index.d.ts.map +1 -0
- package/dist/types/components/layout/Container/Container.base.d.ts +31 -0
- package/dist/types/components/layout/Container/Container.base.d.ts.map +1 -0
- package/dist/types/components/layout/Container/Container.d.ts.map +1 -1
- package/dist/types/components/layout/Container/Container.metrics.d.ts +51 -0
- package/dist/types/components/layout/Container/Container.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/Container/Container.types.d.ts +4 -8
- package/dist/types/components/layout/Container/Container.types.d.ts.map +1 -1
- package/dist/types/components/layout/Container/index.d.ts +1 -1
- package/dist/types/components/layout/Container/index.d.ts.map +1 -1
- package/dist/types/components/layout/Spacer/Spacer.base.d.ts +30 -0
- package/dist/types/components/layout/Spacer/Spacer.base.d.ts.map +1 -0
- package/dist/types/components/layout/Spacer/Spacer.d.ts.map +1 -1
- package/dist/types/components/layout/Spacer/Spacer.metrics.d.ts +36 -0
- package/dist/types/components/layout/Spacer/Spacer.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/Spacer/Spacer.types.d.ts +4 -9
- package/dist/types/components/layout/Spacer/Spacer.types.d.ts.map +1 -1
- package/dist/types/components/layout/Spacer/index.d.ts +1 -1
- package/dist/types/components/layout/Spacer/index.d.ts.map +1 -1
- package/dist/types/components/layout/Stack/Stack.base.d.ts +13 -0
- package/dist/types/components/layout/Stack/Stack.base.d.ts.map +1 -0
- package/dist/types/components/layout/Stack/Stack.d.ts +4 -0
- package/dist/types/components/layout/Stack/Stack.d.ts.map +1 -0
- package/dist/types/components/layout/Stack/Stack.types.d.ts +5 -0
- package/dist/types/components/layout/Stack/Stack.types.d.ts.map +1 -0
- package/dist/types/components/layout/Stack/index.d.ts +3 -0
- package/dist/types/components/layout/Stack/index.d.ts.map +1 -0
- package/dist/types/components/layout/Stack/with-dividers.d.ts +4 -0
- package/dist/types/components/layout/Stack/with-dividers.d.ts.map +1 -0
- package/dist/types/components/typography/Heading/Heading.base.d.ts +52 -0
- package/dist/types/components/typography/Heading/Heading.base.d.ts.map +1 -0
- package/dist/types/components/typography/Heading/Heading.d.ts +9 -6
- package/dist/types/components/typography/Heading/Heading.d.ts.map +1 -1
- package/dist/types/components/typography/Heading/Heading.metrics.d.ts +52 -0
- package/dist/types/components/typography/Heading/Heading.metrics.d.ts.map +1 -0
- package/dist/types/components/typography/Heading/Heading.styles.d.ts.map +1 -1
- package/dist/types/components/typography/Heading/Heading.types.d.ts +8 -38
- package/dist/types/components/typography/Heading/Heading.types.d.ts.map +1 -1
- package/dist/types/components/typography/Heading/index.d.ts +1 -1
- package/dist/types/components/typography/Heading/index.d.ts.map +1 -1
- package/dist/types/components/typography/Paragraph/Paragraph.base.d.ts +23 -0
- package/dist/types/components/typography/Paragraph/Paragraph.base.d.ts.map +1 -0
- package/dist/types/components/typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/types/components/typography/Paragraph/Paragraph.metrics.d.ts +30 -0
- package/dist/types/components/typography/Paragraph/Paragraph.metrics.d.ts.map +1 -0
- package/dist/types/components/typography/Paragraph/Paragraph.types.d.ts +4 -7
- package/dist/types/components/typography/Paragraph/Paragraph.types.d.ts.map +1 -1
- package/dist/types/components/typography/Paragraph/index.d.ts +1 -1
- package/dist/types/components/typography/Paragraph/index.d.ts.map +1 -1
- package/dist/types/components/typography/Text/Text.base.d.ts +23 -0
- package/dist/types/components/typography/Text/Text.base.d.ts.map +1 -0
- package/dist/types/components/typography/Text/Text.d.ts.map +1 -1
- package/dist/types/components/typography/Text/Text.metrics.d.ts +29 -0
- package/dist/types/components/typography/Text/Text.metrics.d.ts.map +1 -0
- package/dist/types/components/typography/Text/Text.types.d.ts +3 -11
- package/dist/types/components/typography/Text/Text.types.d.ts.map +1 -1
- package/dist/types/components/typography/Text/index.d.ts +1 -1
- package/dist/types/components/typography/Text/index.d.ts.map +1 -1
- package/dist/types/icons/Icon.d.ts +13 -0
- package/dist/types/icons/Icon.d.ts.map +1 -0
- package/dist/types/icons/Icon.types.d.ts +30 -0
- package/dist/types/icons/Icon.types.d.ts.map +1 -0
- package/dist/types/icons/icon-color.d.ts +10 -0
- package/dist/types/icons/icon-color.d.ts.map +1 -0
- package/dist/types/icons/index.d.ts +6 -0
- package/dist/types/icons/index.d.ts.map +1 -0
- package/dist/types/icons/paths.generated.d.ts +43 -0
- package/dist/types/icons/paths.generated.d.ts.map +1 -0
- package/dist/types/platform/aria.d.ts +29 -0
- package/dist/types/platform/aria.d.ts.map +1 -0
- package/dist/types/platform/test-id.d.ts +21 -0
- package/dist/types/platform/test-id.d.ts.map +1 -0
- package/dist/types/platform/text-children.d.ts +6 -0
- package/dist/types/platform/text-children.d.ts.map +1 -0
- package/dist/types/provider/UiProvider.d.ts +15 -0
- package/dist/types/provider/UiProvider.d.ts.map +1 -0
- package/dist/types/provider/UiProvider.types.d.ts +17 -0
- package/dist/types/provider/UiProvider.types.d.ts.map +1 -0
- package/dist/types/provider/index.d.ts +5 -0
- package/dist/types/provider/index.d.ts.map +1 -0
- package/dist/types/provider/mui-bridge.d.ts +7 -0
- package/dist/types/provider/mui-bridge.d.ts.map +1 -0
- package/dist/types/provider/ui-theme-context.d.ts +12 -0
- package/dist/types/provider/ui-theme-context.d.ts.map +1 -0
- package/dist/types/provider/use-ui-theme.d.ts +11 -0
- package/dist/types/provider/use-ui-theme.d.ts.map +1 -0
- package/dist/types/tokens/color.d.ts +44 -0
- package/dist/types/tokens/color.d.ts.map +1 -0
- package/dist/types/tokens/css-units.d.ts +14 -0
- package/dist/types/tokens/css-units.d.ts.map +1 -0
- package/dist/types/tokens/heading-scale.d.ts +65 -0
- package/dist/types/tokens/heading-scale.d.ts.map +1 -0
- package/dist/types/tokens/mui-type.d.ts +42 -0
- package/dist/types/tokens/mui-type.d.ts.map +1 -0
- package/dist/types/tokens/scales.d.ts +9 -114
- package/dist/types/tokens/scales.d.ts.map +1 -1
- package/dist/types/tokens/theme.d.ts +166 -0
- package/dist/types/tokens/theme.d.ts.map +1 -0
- package/dist/types/tokens/typography.d.ts +6 -62
- package/dist/types/tokens/typography.d.ts.map +1 -1
- package/dist/types/tokens/vocabulary.d.ts +117 -0
- package/dist/types/tokens/vocabulary.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.base.d.ts +92 -0
- package/dist/types-native/components/data-display/Alert/Alert.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.helpers.d.ts +23 -0
- package/dist/types-native/components/data-display/Alert/Alert.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.look.native.d.ts +46 -0
- package/dist/types-native/components/data-display/Alert/Alert.look.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +181 -0
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.native.d.ts +5 -0
- package/dist/types-native/components/data-display/Alert/Alert.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/Alert.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/Alert/Alert.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/Alert/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/Alert/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.base.d.ts +51 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.helpers.d.ts +13 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.metrics.d.ts +57 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts +22 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/EmptyState/EmptyState.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/EmptyState/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/EmptyState/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.base.d.ts +43 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.metrics.d.ts +37 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts +14 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/ErrorState/ErrorState.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/ErrorState/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/ErrorState/index.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts +37 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.helpers.d.ts +27 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.helpers.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.metrics.d.ts +43 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.metrics.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts +10 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.types.native.d.ts +8 -0
- package/dist/types-native/components/data-display/LoadingState/LoadingState.types.native.d.ts.map +1 -0
- package/dist/types-native/components/data-display/LoadingState/index.native.d.ts +3 -0
- package/dist/types-native/components/data-display/LoadingState/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/Button.base.d.ts +65 -0
- package/dist/types-native/components/form/Button/Button.base.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/Button.helpers.d.ts +10 -0
- package/dist/types-native/components/form/Button/Button.helpers.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/Button.metrics.d.ts +52 -0
- package/dist/types-native/components/form/Button/Button.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/Button.native.d.ts +10 -0
- package/dist/types-native/components/form/Button/Button.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/Button.types.native.d.ts +17 -0
- package/dist/types-native/components/form/Button/Button.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Button/index.native.d.ts +3 -0
- package/dist/types-native/components/form/Button/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Box/Box.base.d.ts +60 -0
- package/dist/types-native/components/layout/Box/Box.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Box/Box.native.d.ts +7 -0
- package/dist/types-native/components/layout/Box/Box.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Box/Box.types.native.d.ts +9 -0
- package/dist/types-native/components/layout/Box/Box.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Box/box-layout.d.ts +42 -0
- package/dist/types-native/components/layout/Box/box-layout.d.ts.map +1 -0
- package/dist/types-native/components/layout/Box/index.native.d.ts +5 -0
- package/dist/types-native/components/layout/Box/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/Container.base.d.ts +31 -0
- package/dist/types-native/components/layout/Container/Container.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/Container.metrics.d.ts +51 -0
- package/dist/types-native/components/layout/Container/Container.metrics.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/Container.native.d.ts +30 -0
- package/dist/types-native/components/layout/Container/Container.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/Container.types.native.d.ts +8 -0
- package/dist/types-native/components/layout/Container/Container.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Container/index.native.d.ts +3 -0
- package/dist/types-native/components/layout/Container/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Spacer/Spacer.base.d.ts +30 -0
- package/dist/types-native/components/layout/Spacer/Spacer.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Spacer/Spacer.metrics.d.ts +36 -0
- package/dist/types-native/components/layout/Spacer/Spacer.metrics.d.ts.map +1 -0
- package/dist/types-native/components/layout/Spacer/Spacer.native.d.ts +21 -0
- package/dist/types-native/components/layout/Spacer/Spacer.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Spacer/Spacer.types.native.d.ts +8 -0
- package/dist/types-native/components/layout/Spacer/Spacer.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Spacer/index.native.d.ts +3 -0
- package/dist/types-native/components/layout/Spacer/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Stack/Stack.base.d.ts +13 -0
- package/dist/types-native/components/layout/Stack/Stack.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Stack/Stack.native.d.ts +4 -0
- package/dist/types-native/components/layout/Stack/Stack.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Stack/Stack.types.native.d.ts +5 -0
- package/dist/types-native/components/layout/Stack/Stack.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Stack/index.native.d.ts +3 -0
- package/dist/types-native/components/layout/Stack/index.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Stack/with-dividers.d.ts +4 -0
- package/dist/types-native/components/layout/Stack/with-dividers.d.ts.map +1 -0
- package/dist/types-native/components/typography/Heading/Heading.base.d.ts +52 -0
- package/dist/types-native/components/typography/Heading/Heading.base.d.ts.map +1 -0
- package/dist/types-native/components/typography/Heading/Heading.metrics.d.ts +52 -0
- package/dist/types-native/components/typography/Heading/Heading.metrics.d.ts.map +1 -0
- package/dist/types-native/components/typography/Heading/Heading.native.d.ts +30 -0
- package/dist/types-native/components/typography/Heading/Heading.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Heading/Heading.types.native.d.ts +14 -0
- package/dist/types-native/components/typography/Heading/Heading.types.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Heading/index.native.d.ts +3 -0
- package/dist/types-native/components/typography/Heading/index.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.base.d.ts +23 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.base.d.ts.map +1 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.metrics.d.ts +30 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.metrics.d.ts.map +1 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.native.d.ts +23 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.types.native.d.ts +14 -0
- package/dist/types-native/components/typography/Paragraph/Paragraph.types.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Paragraph/index.native.d.ts +3 -0
- package/dist/types-native/components/typography/Paragraph/index.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Text/Text.base.d.ts +23 -0
- package/dist/types-native/components/typography/Text/Text.base.d.ts.map +1 -0
- package/dist/types-native/components/typography/Text/Text.metrics.d.ts +29 -0
- package/dist/types-native/components/typography/Text/Text.metrics.d.ts.map +1 -0
- package/dist/types-native/components/typography/Text/Text.native.d.ts +25 -0
- package/dist/types-native/components/typography/Text/Text.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Text/Text.types.native.d.ts +8 -0
- package/dist/types-native/components/typography/Text/Text.types.native.d.ts.map +1 -0
- package/dist/types-native/components/typography/Text/index.native.d.ts +3 -0
- package/dist/types-native/components/typography/Text/index.native.d.ts.map +1 -0
- package/dist/types-native/icons/Icon.native.d.ts +15 -0
- package/dist/types-native/icons/Icon.native.d.ts.map +1 -0
- package/dist/types-native/icons/Icon.types.d.ts +30 -0
- package/dist/types-native/icons/Icon.types.d.ts.map +1 -0
- package/dist/types-native/icons/icon-color.d.ts +10 -0
- package/dist/types-native/icons/icon-color.d.ts.map +1 -0
- package/dist/types-native/icons/index.native.d.ts +6 -0
- package/dist/types-native/icons/index.native.d.ts.map +1 -0
- package/dist/types-native/icons/paths.generated.d.ts +43 -0
- package/dist/types-native/icons/paths.generated.d.ts.map +1 -0
- package/dist/types-native/platform/aria.d.ts +29 -0
- package/dist/types-native/platform/aria.d.ts.map +1 -0
- package/dist/types-native/platform/test-id.d.ts +21 -0
- package/dist/types-native/platform/test-id.d.ts.map +1 -0
- package/dist/types-native/platform/text-children.d.ts +6 -0
- package/dist/types-native/platform/text-children.d.ts.map +1 -0
- package/dist/types-native/provider/UiProvider.native.d.ts +8 -0
- package/dist/types-native/provider/UiProvider.native.d.ts.map +1 -0
- package/dist/types-native/provider/UiProvider.types.d.ts +17 -0
- package/dist/types-native/provider/UiProvider.types.d.ts.map +1 -0
- package/dist/types-native/provider/index.native.d.ts +4 -0
- package/dist/types-native/provider/index.native.d.ts.map +1 -0
- package/dist/types-native/provider/ui-theme-context.d.ts +12 -0
- package/dist/types-native/provider/ui-theme-context.d.ts.map +1 -0
- package/dist/types-native/provider/use-ui-theme.native.d.ts +4 -0
- package/dist/types-native/provider/use-ui-theme.native.d.ts.map +1 -0
- package/dist/types-native/tokens/color.d.ts +44 -0
- package/dist/types-native/tokens/color.d.ts.map +1 -0
- package/dist/types-native/tokens/css-units.d.ts +14 -0
- package/dist/types-native/tokens/css-units.d.ts.map +1 -0
- package/dist/types-native/tokens/heading-scale.d.ts +65 -0
- package/dist/types-native/tokens/heading-scale.d.ts.map +1 -0
- package/dist/types-native/tokens/index.native.d.ts +10 -0
- package/dist/types-native/tokens/index.native.d.ts.map +1 -0
- package/dist/types-native/tokens/mui-type.d.ts +42 -0
- package/dist/types-native/tokens/mui-type.d.ts.map +1 -0
- package/dist/types-native/tokens/theme.d.ts +166 -0
- package/dist/types-native/tokens/theme.d.ts.map +1 -0
- package/dist/types-native/tokens/vocabulary.d.ts +117 -0
- package/dist/types-native/tokens/vocabulary.d.ts.map +1 -0
- package/dist/typography/Heading.js +9 -3
- package/dist/typography/Paragraph.js +7 -1
- package/dist/typography/Text.js +7 -1
- package/dist/user-avatar.js +12 -5
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +111 -7
- package/src/components/data-display/Alert/Alert.base.ts +105 -0
- package/src/components/data-display/Alert/Alert.helpers.ts +54 -0
- package/src/components/data-display/Alert/Alert.look.native.ts +131 -0
- package/src/components/data-display/Alert/Alert.metrics.ts +166 -0
- package/src/components/data-display/Alert/Alert.native.tsx +239 -0
- package/src/components/data-display/Alert/Alert.styles.tsx +162 -134
- package/src/components/data-display/Alert/Alert.tsx +136 -121
- package/src/components/data-display/Alert/Alert.types.native.ts +12 -0
- package/src/components/data-display/Alert/Alert.types.ts +7 -85
- package/src/components/data-display/Alert/NATIVE-NOTES.md +10 -0
- package/src/components/data-display/Alert/index.native.ts +2 -0
- package/src/components/data-display/Alert/index.ts +1 -1
- package/src/components/data-display/EmptyState/EmptyState.base.ts +54 -0
- package/src/components/data-display/EmptyState/EmptyState.helpers.ts +66 -0
- package/src/components/data-display/EmptyState/EmptyState.metrics.ts +54 -0
- package/src/components/data-display/EmptyState/EmptyState.native.tsx +277 -0
- package/src/components/data-display/EmptyState/EmptyState.tsx +42 -79
- package/src/components/data-display/EmptyState/EmptyState.types.native.ts +16 -0
- package/src/components/data-display/EmptyState/EmptyState.types.ts +11 -30
- package/src/components/data-display/EmptyState/NATIVE-NOTES.md +7 -0
- package/src/components/data-display/EmptyState/index.native.ts +8 -0
- package/src/components/data-display/EmptyState/index.ts +7 -1
- package/src/components/data-display/ErrorState/ErrorState.base.ts +51 -0
- package/src/components/data-display/ErrorState/ErrorState.metrics.ts +44 -0
- package/src/components/data-display/ErrorState/ErrorState.native.tsx +193 -0
- package/src/components/data-display/ErrorState/ErrorState.tsx +68 -53
- package/src/components/data-display/ErrorState/ErrorState.types.native.ts +11 -0
- package/src/components/data-display/ErrorState/ErrorState.types.ts +3 -38
- package/src/components/data-display/ErrorState/NATIVE-NOTES.md +6 -0
- package/src/components/data-display/ErrorState/index.native.ts +2 -0
- package/src/components/data-display/ErrorState/index.ts +1 -1
- package/src/components/data-display/LoadingState/LoadingState.base.ts +43 -0
- package/src/components/data-display/LoadingState/LoadingState.helpers.ts +27 -28
- package/src/components/data-display/LoadingState/LoadingState.metrics.ts +67 -0
- package/src/components/data-display/LoadingState/LoadingState.native.tsx +175 -0
- package/src/components/data-display/LoadingState/LoadingState.tsx +25 -11
- package/src/components/data-display/LoadingState/LoadingState.types.native.ts +11 -0
- package/src/components/data-display/LoadingState/LoadingState.types.ts +3 -31
- package/src/components/data-display/LoadingState/NATIVE-NOTES.md +7 -0
- package/src/components/data-display/LoadingState/index.native.ts +7 -0
- package/src/components/data-display/LoadingState/index.ts +6 -1
- package/src/components/form/Button/Button.base.ts +80 -0
- package/src/components/form/Button/Button.helpers.ts +12 -7
- package/src/components/form/Button/Button.metrics.ts +101 -0
- package/src/components/form/Button/Button.native.tsx +323 -0
- package/src/components/form/Button/Button.styles.ts +16 -16
- package/src/components/form/Button/Button.tsx +8 -5
- package/src/components/form/Button/Button.types.native.ts +27 -0
- package/src/components/form/Button/Button.types.ts +8 -58
- package/src/components/form/Button/index.native.ts +2 -0
- package/src/components/form/Button/index.ts +1 -1
- package/src/components/layout/Box/Box.base.ts +69 -0
- package/src/components/layout/Box/Box.md +46 -0
- package/src/components/layout/Box/Box.native.tsx +22 -0
- package/src/components/layout/Box/Box.tsx +56 -0
- package/src/components/layout/Box/Box.types.native.ts +21 -0
- package/src/components/layout/Box/Box.types.ts +22 -0
- package/src/components/layout/Box/box-layout.ts +144 -0
- package/src/components/layout/Box/index.native.ts +14 -0
- package/src/components/layout/Box/index.ts +14 -0
- package/src/components/layout/Container/Container.base.ts +32 -0
- package/src/components/layout/Container/Container.md +14 -0
- package/src/components/layout/Container/Container.metrics.ts +87 -0
- package/src/components/layout/Container/Container.native.tsx +71 -0
- package/src/components/layout/Container/Container.tsx +21 -30
- package/src/components/layout/Container/Container.types.native.ts +11 -0
- package/src/components/layout/Container/Container.types.ts +8 -9
- package/src/components/layout/Container/NATIVE-NOTES.md +5 -0
- package/src/components/layout/Container/index.native.ts +8 -0
- package/src/components/layout/Container/index.ts +7 -1
- package/src/components/layout/Spacer/Spacer.base.ts +32 -0
- package/src/components/layout/Spacer/Spacer.md +13 -1
- package/src/components/layout/Spacer/Spacer.metrics.ts +55 -0
- package/src/components/layout/Spacer/Spacer.native.tsx +68 -0
- package/src/components/layout/Spacer/Spacer.tsx +11 -41
- package/src/components/layout/Spacer/Spacer.types.native.ts +11 -0
- package/src/components/layout/Spacer/Spacer.types.ts +5 -9
- package/src/components/layout/Spacer/index.native.ts +2 -0
- package/src/components/layout/Spacer/index.ts +1 -1
- package/src/components/layout/Stack/Stack.base.ts +14 -0
- package/src/components/layout/Stack/Stack.md +19 -0
- package/src/components/layout/Stack/Stack.native.tsx +16 -0
- package/src/components/layout/Stack/Stack.tsx +15 -0
- package/src/components/layout/Stack/Stack.types.native.ts +6 -0
- package/src/components/layout/Stack/Stack.types.ts +6 -0
- package/src/components/layout/Stack/index.native.ts +2 -0
- package/src/components/layout/Stack/index.ts +2 -0
- package/src/components/layout/Stack/with-dividers.ts +15 -0
- package/src/components/typography/Heading/Heading.base.ts +55 -0
- package/src/components/typography/Heading/Heading.md +13 -0
- package/src/components/typography/Heading/Heading.metrics.ts +84 -0
- package/src/components/typography/Heading/Heading.native.tsx +105 -0
- package/src/components/typography/Heading/Heading.styles.ts +19 -21
- package/src/components/typography/Heading/Heading.tsx +26 -23
- package/src/components/typography/Heading/Heading.types.native.ts +17 -0
- package/src/components/typography/Heading/Heading.types.ts +11 -39
- package/src/components/typography/Heading/NATIVE-NOTES.md +3 -0
- package/src/components/typography/Heading/index.native.ts +2 -0
- package/src/components/typography/Heading/index.ts +1 -1
- package/src/components/typography/Paragraph/Paragraph.base.ts +25 -0
- package/src/components/typography/Paragraph/Paragraph.md +11 -0
- package/src/components/typography/Paragraph/Paragraph.metrics.ts +41 -0
- package/src/components/typography/Paragraph/Paragraph.native.tsx +100 -0
- package/src/components/typography/Paragraph/Paragraph.tsx +53 -30
- package/src/components/typography/Paragraph/Paragraph.types.native.ts +17 -0
- package/src/components/typography/Paragraph/Paragraph.types.ts +7 -8
- package/src/components/typography/Paragraph/index.native.ts +2 -0
- package/src/components/typography/Paragraph/index.ts +1 -1
- package/src/components/typography/Text/Text.base.ts +25 -0
- package/src/components/typography/Text/Text.metrics.ts +30 -0
- package/src/components/typography/Text/Text.native.tsx +149 -0
- package/src/components/typography/Text/Text.tsx +45 -27
- package/src/components/typography/Text/Text.types.native.ts +11 -0
- package/src/components/typography/Text/Text.types.ts +7 -12
- package/src/components/typography/Text/index.native.ts +2 -0
- package/src/components/typography/Text/index.ts +1 -1
- package/src/icons/Icon.md +28 -0
- package/src/icons/Icon.native.tsx +44 -0
- package/src/icons/Icon.tsx +47 -0
- package/src/icons/Icon.types.ts +40 -0
- package/src/icons/glyphs.json +39 -0
- package/src/icons/icon-color.ts +20 -0
- package/src/icons/index.native.ts +5 -0
- package/src/icons/index.ts +5 -0
- package/src/icons/paths.generated.ts +51 -0
- package/src/platform/aria.ts +32 -0
- package/src/platform/test-id.ts +34 -0
- package/src/platform/text-children.tsx +68 -0
- package/src/provider/UiProvider.native.tsx +13 -0
- package/src/provider/UiProvider.tsx +22 -0
- package/src/provider/UiProvider.types.ts +20 -0
- package/src/provider/index.native.ts +3 -0
- package/src/provider/index.ts +4 -0
- package/src/provider/mui-bridge.ts +141 -0
- package/src/provider/ui-theme-context.ts +13 -0
- package/src/provider/use-ui-theme.native.ts +9 -0
- package/src/provider/use-ui-theme.ts +18 -0
- package/src/tokens/color.ts +163 -0
- package/src/tokens/css-units.ts +28 -0
- package/src/tokens/heading-scale.ts +87 -0
- package/src/tokens/index.native.ts +9 -0
- package/src/tokens/mui-type.ts +64 -0
- package/src/tokens/scales.ts +11 -186
- package/src/tokens/theme.ts +334 -0
- package/src/tokens/typography.ts +6 -83
- package/src/tokens/vocabulary.ts +189 -0
- package/dist/chunk-5ERH4OIK.js.map +0 -1
- package/dist/chunk-7CA6GVBO.js.map +0 -1
- package/dist/chunk-7M5BACFQ.js.map +0 -1
- package/dist/chunk-A2GGT4OC.js.map +0 -1
- package/dist/chunk-AUYC5K5K.js.map +0 -1
- package/dist/chunk-C6AZDXEE.js +0 -207
- package/dist/chunk-C6AZDXEE.js.map +0 -1
- package/dist/chunk-DTO7GKLA.js +0 -65
- package/dist/chunk-DTO7GKLA.js.map +0 -1
- package/dist/chunk-E67PUPFJ.js.map +0 -1
- package/dist/chunk-HQJ75HHI.js.map +0 -1
- package/dist/chunk-I6PZVHIT.js +0 -46
- package/dist/chunk-I6PZVHIT.js.map +0 -1
- package/dist/chunk-IAQFQNBL.js.map +0 -1
- package/dist/chunk-KVN3K4J3.js.map +0 -1
- package/dist/chunk-NBNLGTRB.js.map +0 -1
- package/dist/chunk-NYUGX76C.js.map +0 -1
- package/dist/chunk-O6J4CKS5.js.map +0 -1
- package/dist/chunk-QCIWROKG.js.map +0 -1
- package/dist/chunk-VRHBJXZ7.js.map +0 -1
- /package/dist/{chunk-77GA5YHQ.js.map → chunk-43NEBUV3.js.map} +0 -0
- /package/dist/{chunk-FJHNNSD3.js.map → chunk-4FRZDSRD.js.map} +0 -0
- /package/dist/{chunk-2PPWKCMW.js.map → chunk-4N4ENTF7.js.map} +0 -0
- /package/dist/{chunk-GFBNUWT5.js.map → chunk-4SXZSSVV.js.map} +0 -0
- /package/dist/{chunk-6U7NA74A.js.map → chunk-5HOJSVQH.js.map} +0 -0
- /package/dist/{chunk-AX7UFG2U.js.map → chunk-6DXYCXH4.js.map} +0 -0
- /package/dist/{chunk-X4X4CVWJ.js.map → chunk-6JZE4IIN.js.map} +0 -0
- /package/dist/{chunk-HEDOL2RV.js.map → chunk-72UYVJBQ.js.map} +0 -0
- /package/dist/{chunk-ZDWU52DJ.js.map → chunk-7AR2R7TV.js.map} +0 -0
- /package/dist/{chunk-B6IURHSZ.js.map → chunk-7DNQHMDO.js.map} +0 -0
- /package/dist/{chunk-GT7C6TSM.js.map → chunk-7WL24VNI.js.map} +0 -0
- /package/dist/{chunk-ELYLG4F7.js.map → chunk-AP4FLCLA.js.map} +0 -0
- /package/dist/{chunk-IE7ISTLQ.js.map → chunk-B443IIQG.js.map} +0 -0
- /package/dist/{chunk-WR6F6J43.js.map → chunk-BUDXR3EV.js.map} +0 -0
- /package/dist/{chunk-MUAVYVDJ.js.map → chunk-BVZVH3ZN.js.map} +0 -0
- /package/dist/{chunk-CBPQJAHX.js.map → chunk-C6XESZ3R.js.map} +0 -0
- /package/dist/{chunk-RP3W6IQO.js.map → chunk-CPNSVIIB.js.map} +0 -0
- /package/dist/{chunk-45OIUWGO.js.map → chunk-CRNQVWIT.js.map} +0 -0
- /package/dist/{chunk-T4SM36XC.js.map → chunk-D7FJ2GAD.js.map} +0 -0
- /package/dist/{chunk-G7CFUI4I.js.map → chunk-DLFOEXUP.js.map} +0 -0
- /package/dist/{chunk-SCGVB7DS.js.map → chunk-DOADQW7I.js.map} +0 -0
- /package/dist/{chunk-RIAIJTEW.js.map → chunk-DOMEYGTN.js.map} +0 -0
- /package/dist/{chunk-7HPPUO2A.js.map → chunk-DQHC5P64.js.map} +0 -0
- /package/dist/{chunk-6YLAVHV4.js.map → chunk-DTKMBI7B.js.map} +0 -0
- /package/dist/{chunk-24LW52EU.js.map → chunk-DX527XPL.js.map} +0 -0
- /package/dist/{chunk-BBC4KT5G.js.map → chunk-DZN3JF5E.js.map} +0 -0
- /package/dist/{chunk-3LO5JWTC.js.map → chunk-E5ZHW4I5.js.map} +0 -0
- /package/dist/{chunk-CXA6UNFF.js.map → chunk-EMNGIYH6.js.map} +0 -0
- /package/dist/{chunk-A4YWFX5C.js.map → chunk-ENNW5SKT.js.map} +0 -0
- /package/dist/{chunk-EGRFMPGD.js.map → chunk-EXJBPKGW.js.map} +0 -0
- /package/dist/{chunk-DWUMMMLR.js.map → chunk-FOMK3WPG.js.map} +0 -0
- /package/dist/{chunk-6CBYPMYQ.js.map → chunk-GBFGZJB5.js.map} +0 -0
- /package/dist/{chunk-XSKVBGCZ.js.map → chunk-HKV4MQ2W.js.map} +0 -0
- /package/dist/{chunk-DQIQKIEA.js.map → chunk-HKZHEK3Z.js.map} +0 -0
- /package/dist/{chunk-VR5HDUBK.js.map → chunk-HP2ODXNA.js.map} +0 -0
- /package/dist/{chunk-4Y65Q3CR.js.map → chunk-ISSJNFJV.js.map} +0 -0
- /package/dist/{chunk-X24P3ZYW.js.map → chunk-J4W4TQPC.js.map} +0 -0
- /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
- /package/dist/{chunk-6RFL7HGI.js.map → chunk-KADJNWTQ.js.map} +0 -0
- /package/dist/{chunk-EB4BTKKY.js.map → chunk-KKYW3LU7.js.map} +0 -0
- /package/dist/{chunk-RQ4EQ5FJ.js.map → chunk-L65LF6LN.js.map} +0 -0
- /package/dist/{chunk-FH4VARZ7.js.map → chunk-L6KEVPXN.js.map} +0 -0
- /package/dist/{chunk-SRMWCN5D.js.map → chunk-LDE4ELB5.js.map} +0 -0
- /package/dist/{chunk-FF55LRSV.js.map → chunk-LIOVN5IM.js.map} +0 -0
- /package/dist/{chunk-KXNWDXR7.js.map → chunk-M2K7BPHX.js.map} +0 -0
- /package/dist/{chunk-VVXRIPV5.js.map → chunk-MCRIT46W.js.map} +0 -0
- /package/dist/{chunk-WLDK74RR.js.map → chunk-MSUSZLRE.js.map} +0 -0
- /package/dist/{chunk-MD6T7MDT.js.map → chunk-NECUCG2S.js.map} +0 -0
- /package/dist/{chunk-A3KY6NUA.js.map → chunk-NFHS77NE.js.map} +0 -0
- /package/dist/{chunk-REMK55JI.js.map → chunk-OLZTGVBT.js.map} +0 -0
- /package/dist/{chunk-WME2F2YY.js.map → chunk-OR7UH2ZQ.js.map} +0 -0
- /package/dist/{chunk-PKJKA4CU.js.map → chunk-OZWQNFG6.js.map} +0 -0
- /package/dist/{chunk-23FCBIUN.js.map → chunk-P7FQUGED.js.map} +0 -0
- /package/dist/{chunk-6TYSEAAT.js.map → chunk-PC3ZFERM.js.map} +0 -0
- /package/dist/{chunk-T53L42XW.js.map → chunk-PMS3H3OO.js.map} +0 -0
- /package/dist/{chunk-TCAB2ERD.js.map → chunk-PNYXXLPU.js.map} +0 -0
- /package/dist/{chunk-EY4LPLIR.js.map → chunk-QJJUTBKZ.js.map} +0 -0
- /package/dist/{chunk-VJKRJYZL.js.map → chunk-QZPNQWS2.js.map} +0 -0
- /package/dist/{chunk-5QXSPLWU.js.map → chunk-R6SSXEK2.js.map} +0 -0
- /package/dist/{chunk-W2UTDN4T.js.map → chunk-RBGOGTT2.js.map} +0 -0
- /package/dist/{chunk-NR3J7VQL.js.map → chunk-RNCQ5KHQ.js.map} +0 -0
- /package/dist/{chunk-7FOOLP5H.js.map → chunk-RXSGHPCR.js.map} +0 -0
- /package/dist/{chunk-Z56IO7OV.js.map → chunk-RXVPUW7V.js.map} +0 -0
- /package/dist/{chunk-JPDKRGYI.js.map → chunk-S7HRED4D.js.map} +0 -0
- /package/dist/{chunk-5VVM2PPV.js.map → chunk-SG6VULKS.js.map} +0 -0
- /package/dist/{chunk-SLYZMJEL.js.map → chunk-SOHDPFOB.js.map} +0 -0
- /package/dist/{chunk-FWL2N2KH.js.map → chunk-SX3V2DLV.js.map} +0 -0
- /package/dist/{chunk-3GOX75ZM.js.map → chunk-TF4TPLF2.js.map} +0 -0
- /package/dist/{chunk-3DQP6OPC.js.map → chunk-THBT56JE.js.map} +0 -0
- /package/dist/{chunk-RRX6ZTNX.js.map → chunk-UEJQQVP2.js.map} +0 -0
- /package/dist/{chunk-K2T2CQSZ.js.map → chunk-UF27D35R.js.map} +0 -0
- /package/dist/{chunk-N34YHFZW.js.map → chunk-W2YNUUVJ.js.map} +0 -0
- /package/dist/{chunk-XULTDO56.js.map → chunk-WZUNBSS7.js.map} +0 -0
- /package/dist/{chunk-3JYYPJFD.js.map → chunk-X2J6MRJW.js.map} +0 -0
- /package/dist/{chunk-HEG7JIBM.js.map → chunk-X5MPHXG5.js.map} +0 -0
- /package/dist/{chunk-3QGRQNTP.js.map → chunk-XELVDPKL.js.map} +0 -0
- /package/dist/{chunk-EPNUVSNK.js.map → chunk-XFUNJYFT.js.map} +0 -0
- /package/dist/{chunk-AVU6KU27.js.map → chunk-XXDXW6TX.js.map} +0 -0
- /package/dist/{chunk-WMALDOF5.js.map → chunk-XXJRT6BP.js.map} +0 -0
- /package/dist/{chunk-6HNEEJES.js.map → chunk-Y6KPZQPI.js.map} +0 -0
- /package/dist/{chunk-COSJTD6Z.js.map → chunk-YLDS5FOQ.js.map} +0 -0
- /package/dist/{chunk-PMFW55F5.js.map → chunk-ZIOCRSHU.js.map} +0 -0
- /package/dist/{chunk-WC3W36AM.js.map → chunk-ZOUWHGV3.js.map} +0 -0
- /package/dist/{chunk-2ZDTGI5V.js.map → chunk-ZRFRU545.js.map} +0 -0
- /package/dist/{chunk-DJORMYOV.js.map → chunk-ZU3SWR4I.js.map} +0 -0
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { darken, getContrastRatio, lighten } from './color';
|
|
2
|
+
import { cssLengthToPx, cssTrackingToEm } from './css-units';
|
|
3
|
+
import { HEADING_SCALE, type HeadingLevel } from './heading-scale';
|
|
4
|
+
|
|
5
|
+
import type { SizeValue } from './vocabulary';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* THE THEME BOTH RENDERERS READ.
|
|
9
|
+
*
|
|
10
|
+
* On the web every component styles itself from MUI's `Theme`, which is built
|
|
11
|
+
* by the host (`@12-apps/app-shell`'s `createAppTheme` in the origin apps) and
|
|
12
|
+
* reaches a component through emotion's context. React Native has no emotion,
|
|
13
|
+
* no CSS and no MUI, so a native `Button` needs the same decisions — the
|
|
14
|
+
* palette, the spacing unit, the radius, the type scale — from somewhere that
|
|
15
|
+
* does not import a renderer.
|
|
16
|
+
*
|
|
17
|
+
* This is that somewhere. `UiTheme` is a plain object of numbers and colour
|
|
18
|
+
* strings. `createUiTheme` derives it the way MUI's `createPalette` derives its
|
|
19
|
+
* own: a `light` shade is `lighten(main, 0.2)`, a `dark` shade `darken(main,
|
|
20
|
+
* 0.3)`, `contrastText` flips at a 3:1 ratio against `rgba(0, 0, 0, 0.87)`.
|
|
21
|
+
* Same seeds in, same shades out, on both sides — that is the whole basis for
|
|
22
|
+
* a native button being the web button's colour and not a near miss.
|
|
23
|
+
*
|
|
24
|
+
* Numbers are in px on the web and dp on native; both are the CSS-pixel unit
|
|
25
|
+
* a design is drawn in, so a `fontSize: 16` here IS `1rem` in a web style
|
|
26
|
+
* and `16` in a `StyleSheet`. The web components keep their `rem` strings and
|
|
27
|
+
* derive them from these numbers where the two meet (see `px()` below and the
|
|
28
|
+
* `*.metrics.ts` file beside each ported component).
|
|
29
|
+
*
|
|
30
|
+
* `danger` and `neutral` are this package's names (see `./scales`); `danger`
|
|
31
|
+
* is MUI's `error` and `neutral` is drawn from the grey ramp the way
|
|
32
|
+
* `Button.styles.ts` has always drawn it.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
export type UiThemeMode = 'light' | 'dark';
|
|
36
|
+
|
|
37
|
+
export interface UiPaletteColor {
|
|
38
|
+
main: string;
|
|
39
|
+
light: string;
|
|
40
|
+
dark: string;
|
|
41
|
+
contrastText: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export type UiGreyStep = 50 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
|
|
45
|
+
|
|
46
|
+
export interface UiPalette {
|
|
47
|
+
mode: UiThemeMode;
|
|
48
|
+
primary: UiPaletteColor;
|
|
49
|
+
secondary: UiPaletteColor;
|
|
50
|
+
success: UiPaletteColor;
|
|
51
|
+
warning: UiPaletteColor;
|
|
52
|
+
info: UiPaletteColor;
|
|
53
|
+
danger: UiPaletteColor;
|
|
54
|
+
neutral: UiPaletteColor;
|
|
55
|
+
text: { primary: string; secondary: string; disabled: string };
|
|
56
|
+
background: { default: string; paper: string };
|
|
57
|
+
divider: string;
|
|
58
|
+
action: {
|
|
59
|
+
active: string;
|
|
60
|
+
hover: string;
|
|
61
|
+
selected: string;
|
|
62
|
+
disabled: string;
|
|
63
|
+
disabledBackground: string;
|
|
64
|
+
focus: string;
|
|
65
|
+
};
|
|
66
|
+
grey: Record<UiGreyStep, string>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** One step of the body scale: `fontSize` in px, `lineHeight` as a ratio. */
|
|
70
|
+
export interface UiTypeStep {
|
|
71
|
+
fontSize: number;
|
|
72
|
+
lineHeight: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export type UiFontWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';
|
|
76
|
+
|
|
77
|
+
export interface UiHeadingStep extends UiTypeStep {
|
|
78
|
+
/** In em, so it scales with the step. `undefined` is "normal". */
|
|
79
|
+
letterSpacing?: number;
|
|
80
|
+
normalWeight: number;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export interface UiTypography {
|
|
84
|
+
/**
|
|
85
|
+
* Native has no fallback stacks: a font is either installed and named, or
|
|
86
|
+
* `undefined` and the platform's own. The web default is MUI's Roboto stack.
|
|
87
|
+
*/
|
|
88
|
+
fontFamily: string | undefined;
|
|
89
|
+
monospaceFontFamily: string | undefined;
|
|
90
|
+
sizes: Record<SizeValue, UiTypeStep>;
|
|
91
|
+
weights: Record<UiFontWeight, number>;
|
|
92
|
+
heading: Record<HeadingLevel, UiHeadingStep>;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface UiTheme {
|
|
96
|
+
mode: UiThemeMode;
|
|
97
|
+
palette: UiPalette;
|
|
98
|
+
/** MUI's `theme.spacing(n)`: `n` units of {@link UiTheme.spacingUnit}, in px. */
|
|
99
|
+
spacing: (units: number) => number;
|
|
100
|
+
spacingUnit: number;
|
|
101
|
+
/** `md` is MUI's `shape.borderRadius`; the others are its halves and doubles. */
|
|
102
|
+
radius: { sm: number; md: number; lg: number; xl: number; full: number };
|
|
103
|
+
typography: UiTypography;
|
|
104
|
+
zIndex: { appBar: number; drawer: number; modal: number; snackbar: number; tooltip: number };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/** A seed for one palette slot: a hex `main`, or any subset of the four shades. */
|
|
108
|
+
export type UiPaletteSeed = string | Partial<UiPaletteColor>;
|
|
109
|
+
|
|
110
|
+
export interface UiThemeOptions {
|
|
111
|
+
mode?: UiThemeMode;
|
|
112
|
+
palette?: Partial<{
|
|
113
|
+
primary: UiPaletteSeed;
|
|
114
|
+
secondary: UiPaletteSeed;
|
|
115
|
+
success: UiPaletteSeed;
|
|
116
|
+
warning: UiPaletteSeed;
|
|
117
|
+
info: UiPaletteSeed;
|
|
118
|
+
danger: UiPaletteSeed;
|
|
119
|
+
background: Partial<UiPalette['background']>;
|
|
120
|
+
}>;
|
|
121
|
+
typography?: Partial<Pick<UiTypography, 'fontFamily' | 'monospaceFontFamily'>>;
|
|
122
|
+
spacingUnit?: number;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const ROOT_FONT_PX = 16;
|
|
126
|
+
|
|
127
|
+
/** The px value as the rem string the web components write. */
|
|
128
|
+
export const px = (value: number): string => `${value / ROOT_FONT_PX}rem`;
|
|
129
|
+
|
|
130
|
+
/** MUI's `createPalette` defaults, exactly. */
|
|
131
|
+
const TONAL_OFFSET = 0.2;
|
|
132
|
+
const CONTRAST_THRESHOLD = 3;
|
|
133
|
+
const DARK_TEXT_PRIMARY = 'rgba(0, 0, 0, 0.87)';
|
|
134
|
+
const LIGHT_TEXT_PRIMARY = '#fff';
|
|
135
|
+
|
|
136
|
+
export const GREY: Record<UiGreyStep, string> = {
|
|
137
|
+
50: '#fafafa',
|
|
138
|
+
100: '#f5f5f5',
|
|
139
|
+
200: '#eeeeee',
|
|
140
|
+
300: '#e0e0e0',
|
|
141
|
+
400: '#bdbdbd',
|
|
142
|
+
500: '#9e9e9e',
|
|
143
|
+
600: '#757575',
|
|
144
|
+
700: '#616161',
|
|
145
|
+
800: '#424242',
|
|
146
|
+
900: '#212121',
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* The platform's own seeds. The pair `@12-apps/ui`'s Storybook preview and
|
|
151
|
+
* `@12-apps/app-shell`'s `DEFAULT_THEME_TOKENS` both carry — keep the three in
|
|
152
|
+
* step if the design tokens change.
|
|
153
|
+
*/
|
|
154
|
+
export const DEFAULT_BRAND: Record<UiThemeMode, { primary: string; secondary: string }> = {
|
|
155
|
+
light: { primary: '#6366F1', secondary: '#8B5CF6' },
|
|
156
|
+
dark: { primary: '#818CF8', secondary: '#A78BFA' },
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
/** MUI's semantic defaults per mode. These are declared shades, not derived. */
|
|
160
|
+
const SEMANTIC_DEFAULTS: Record<
|
|
161
|
+
UiThemeMode,
|
|
162
|
+
Record<'success' | 'warning' | 'info' | 'danger', UiPaletteColor>
|
|
163
|
+
> = {
|
|
164
|
+
light: {
|
|
165
|
+
success: { main: '#2e7d32', light: '#4caf50', dark: '#1b5e20', contrastText: '#fff' },
|
|
166
|
+
warning: { main: '#ed6c02', light: '#ff9800', dark: '#e65100', contrastText: '#fff' },
|
|
167
|
+
info: { main: '#0288d1', light: '#03a9f4', dark: '#01579b', contrastText: '#fff' },
|
|
168
|
+
danger: { main: '#d32f2f', light: '#ef5350', dark: '#c62828', contrastText: '#fff' },
|
|
169
|
+
},
|
|
170
|
+
dark: {
|
|
171
|
+
success: { main: '#66bb6a', light: '#81c784', dark: '#388e3c', contrastText: DARK_TEXT_PRIMARY },
|
|
172
|
+
warning: { main: '#ffa726', light: '#ffb74d', dark: '#f57c00', contrastText: DARK_TEXT_PRIMARY },
|
|
173
|
+
info: { main: '#29b6f6', light: '#4fc3f7', dark: '#0288d1', contrastText: DARK_TEXT_PRIMARY },
|
|
174
|
+
danger: { main: '#f44336', light: '#e57373', dark: '#d32f2f', contrastText: '#fff' },
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
const MODE_DEFAULTS: Record<
|
|
179
|
+
UiThemeMode,
|
|
180
|
+
Pick<UiPalette, 'text' | 'background' | 'divider' | 'action'>
|
|
181
|
+
> = {
|
|
182
|
+
light: {
|
|
183
|
+
text: { primary: DARK_TEXT_PRIMARY, secondary: 'rgba(0, 0, 0, 0.6)', disabled: 'rgba(0, 0, 0, 0.38)' },
|
|
184
|
+
background: { default: '#fff', paper: '#fff' },
|
|
185
|
+
divider: 'rgba(0, 0, 0, 0.12)',
|
|
186
|
+
action: {
|
|
187
|
+
active: 'rgba(0, 0, 0, 0.54)',
|
|
188
|
+
hover: 'rgba(0, 0, 0, 0.04)',
|
|
189
|
+
selected: 'rgba(0, 0, 0, 0.08)',
|
|
190
|
+
disabled: 'rgba(0, 0, 0, 0.26)',
|
|
191
|
+
disabledBackground: 'rgba(0, 0, 0, 0.12)',
|
|
192
|
+
focus: 'rgba(0, 0, 0, 0.12)',
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
dark: {
|
|
196
|
+
text: { primary: '#fff', secondary: 'rgba(255, 255, 255, 0.7)', disabled: 'rgba(255, 255, 255, 0.5)' },
|
|
197
|
+
background: { default: '#121212', paper: '#121212' },
|
|
198
|
+
divider: 'rgba(255, 255, 255, 0.12)',
|
|
199
|
+
action: {
|
|
200
|
+
active: '#fff',
|
|
201
|
+
hover: 'rgba(255, 255, 255, 0.08)',
|
|
202
|
+
selected: 'rgba(255, 255, 255, 0.16)',
|
|
203
|
+
disabled: 'rgba(255, 255, 255, 0.3)',
|
|
204
|
+
disabledBackground: 'rgba(255, 255, 255, 0.12)',
|
|
205
|
+
focus: 'rgba(255, 255, 255, 0.12)',
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* MUI's `getContrastText`: white where white reads at 3:1 on the colour, the
|
|
212
|
+
* light mode's dark ink otherwise. (MUI's source spells the white as the DARK
|
|
213
|
+
* palette's `text.primary`, which is what made it easy to read backwards.)
|
|
214
|
+
*/
|
|
215
|
+
export function contrastText(background: string): string {
|
|
216
|
+
return getContrastRatio(background, LIGHT_TEXT_PRIMARY) >= CONTRAST_THRESHOLD
|
|
217
|
+
? LIGHT_TEXT_PRIMARY
|
|
218
|
+
: DARK_TEXT_PRIMARY;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* MUI's `augmentColor` for a custom colour: derive whatever shade the seed
|
|
223
|
+
* left out. `light` is one tonal offset up, `dark` one and a half down.
|
|
224
|
+
*/
|
|
225
|
+
export function augmentColor(seed: UiPaletteSeed): UiPaletteColor {
|
|
226
|
+
const partial = typeof seed === 'string' ? { main: seed } : seed;
|
|
227
|
+
const main = partial.main ?? partial.light ?? partial.dark;
|
|
228
|
+
if (!main) {
|
|
229
|
+
throw new Error('@12-apps/ui: a palette seed needs at least a `main` colour.');
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
main,
|
|
233
|
+
light: partial.light ?? lighten(main, TONAL_OFFSET),
|
|
234
|
+
dark: partial.dark ?? darken(main, TONAL_OFFSET * 1.5),
|
|
235
|
+
contrastText: partial.contrastText ?? contrastText(main),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
const semantic = (
|
|
240
|
+
mode: UiThemeMode,
|
|
241
|
+
key: 'success' | 'warning' | 'info' | 'danger',
|
|
242
|
+
seed: UiPaletteSeed | undefined,
|
|
243
|
+
): UiPaletteColor => (seed === undefined ? SEMANTIC_DEFAULTS[mode][key] : augmentColor(seed));
|
|
244
|
+
|
|
245
|
+
/** `neutral` as `accentFor` in `./scales` has always drawn it: three greys and white. */
|
|
246
|
+
export const NEUTRAL: UiPaletteColor = {
|
|
247
|
+
main: GREY[600],
|
|
248
|
+
light: GREY[400],
|
|
249
|
+
dark: GREY[800],
|
|
250
|
+
contrastText: '#fff',
|
|
251
|
+
};
|
|
252
|
+
|
|
253
|
+
/** The body scale `Text` renders, in px. `Text.tsx`'s rem map is this, divided by 16. */
|
|
254
|
+
export const TYPE_SIZES: Record<SizeValue, UiTypeStep> = {
|
|
255
|
+
xs: { fontSize: 12, lineHeight: 1.2 },
|
|
256
|
+
sm: { fontSize: 14, lineHeight: 1.3 },
|
|
257
|
+
md: { fontSize: 16, lineHeight: 1.5 },
|
|
258
|
+
lg: { fontSize: 18, lineHeight: 1.4 },
|
|
259
|
+
xl: { fontSize: 20, lineHeight: 1.3 },
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export const FONT_WEIGHTS: Record<UiFontWeight, number> = {
|
|
263
|
+
light: 300,
|
|
264
|
+
normal: 400,
|
|
265
|
+
medium: 500,
|
|
266
|
+
semibold: 600,
|
|
267
|
+
bold: 700,
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
// `HEADING_SCALE` speaks CSS, this theme speaks numbers; `./css-units` is the
|
|
271
|
+
// one place that conversion is written.
|
|
272
|
+
const HEADING_STEPS = Object.fromEntries(
|
|
273
|
+
Object.entries(HEADING_SCALE).map(([level, metrics]) => [
|
|
274
|
+
level,
|
|
275
|
+
{
|
|
276
|
+
fontSize: cssLengthToPx(metrics.fontSize, ROOT_FONT_PX),
|
|
277
|
+
lineHeight: metrics.lineHeight,
|
|
278
|
+
letterSpacing: cssTrackingToEm(metrics.letterSpacing),
|
|
279
|
+
normalWeight: metrics.normalWeight,
|
|
280
|
+
},
|
|
281
|
+
]),
|
|
282
|
+
) as Record<HeadingLevel, UiHeadingStep>;
|
|
283
|
+
|
|
284
|
+
export const WEB_FONT_FAMILY = '"Roboto", "Helvetica", "Arial", sans-serif';
|
|
285
|
+
export const WEB_MONOSPACE_FONT_FAMILY = 'Monaco, Menlo, "Ubuntu Mono", "Courier New", monospace';
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Build the theme. Every field is derived here so a host that changes one
|
|
289
|
+
* seed gets every dependent shade recomputed, on both renderers, identically.
|
|
290
|
+
*/
|
|
291
|
+
export function createUiTheme(options: UiThemeOptions = {}): UiTheme {
|
|
292
|
+
const mode = options.mode ?? 'light';
|
|
293
|
+
const seeds = options.palette ?? {};
|
|
294
|
+
const brand = DEFAULT_BRAND[mode];
|
|
295
|
+
const defaults = MODE_DEFAULTS[mode];
|
|
296
|
+
const spacingUnit = options.spacingUnit ?? 8;
|
|
297
|
+
|
|
298
|
+
const palette: UiPalette = {
|
|
299
|
+
mode,
|
|
300
|
+
primary: augmentColor(seeds.primary ?? brand.primary),
|
|
301
|
+
secondary: augmentColor(seeds.secondary ?? brand.secondary),
|
|
302
|
+
success: semantic(mode, 'success', seeds.success),
|
|
303
|
+
warning: semantic(mode, 'warning', seeds.warning),
|
|
304
|
+
info: semantic(mode, 'info', seeds.info),
|
|
305
|
+
danger: semantic(mode, 'danger', seeds.danger),
|
|
306
|
+
neutral: NEUTRAL,
|
|
307
|
+
text: defaults.text,
|
|
308
|
+
background: { ...defaults.background, ...seeds.background },
|
|
309
|
+
divider: defaults.divider,
|
|
310
|
+
action: defaults.action,
|
|
311
|
+
grey: GREY,
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
return {
|
|
315
|
+
mode,
|
|
316
|
+
palette,
|
|
317
|
+
spacing: (units: number) => units * spacingUnit,
|
|
318
|
+
spacingUnit,
|
|
319
|
+
radius: { sm: 2, md: 4, lg: 8, xl: 16, full: 9999 },
|
|
320
|
+
typography: {
|
|
321
|
+
fontFamily: options.typography?.fontFamily,
|
|
322
|
+
monospaceFontFamily: options.typography?.monospaceFontFamily,
|
|
323
|
+
sizes: TYPE_SIZES,
|
|
324
|
+
weights: FONT_WEIGHTS,
|
|
325
|
+
heading: HEADING_STEPS,
|
|
326
|
+
},
|
|
327
|
+
zIndex: { appBar: 1100, drawer: 1200, modal: 1300, snackbar: 1400, tooltip: 1500 },
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/** The palette slot a house colour name resolves to. */
|
|
332
|
+
export type UiPaletteKey = 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'danger' | 'neutral';
|
|
333
|
+
|
|
334
|
+
export const DEFAULT_UI_THEME: UiTheme = createUiTheme();
|
package/src/tokens/typography.ts
CHANGED
|
@@ -1,91 +1,14 @@
|
|
|
1
1
|
import type { Theme } from '@mui/material/styles/index.js';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* THE THIRD VOCABULARY: the type scale.
|
|
5
|
-
*
|
|
6
|
-
* `scales.ts` opens by saying the package had both halves of every argument at
|
|
7
|
-
* once until the size and colour vocabularies were declared in one place and
|
|
8
|
-
* every component derived from them. The type scale was the one that never got
|
|
9
|
-
* that treatment — it lived as a private `LEVELS` table inside
|
|
10
|
-
* `Heading.styles.ts`, which is exactly the shape that file exists to refuse.
|
|
11
|
-
*
|
|
12
|
-
* Two things follow from it being private, and the second is the expensive one.
|
|
13
|
-
*
|
|
14
|
-
* **It could not be re-themed.** `Heading` read `theme.typography.h1.fontFamily`
|
|
15
|
-
* from the theme and then ignored the theme for every other metric, so a host
|
|
16
|
-
* calling `createTheme({ typography: { h1: { fontSize: '2rem' } } })` changed
|
|
17
|
-
* `<Typography variant="h1">` and left `<Heading level="h1">` at 48px. A design
|
|
18
|
-
* system whose type scale cannot be set by the design is not a system.
|
|
19
|
-
*
|
|
20
|
-
* **And the numbers were a landing page's.** `h1` at 3rem and `h2` at 2.5rem are
|
|
21
|
-
* hero metrics. Dropped into an operations console they put a 48px title
|
|
22
|
-
* directly above 14px body copy — a 3.4x jump with nothing in between — so
|
|
23
|
-
* product teams stopped reaching for the component. Measured in one consuming
|
|
24
|
-
* repo: `<Heading>` appeared four times in the entire codebase while raw
|
|
25
|
-
* `fontSize` appeared in dozens of files. The component was not disliked, it was
|
|
26
|
-
* unusable at app scale, and every host paid for that in hand-rolled CSS.
|
|
27
|
-
*
|
|
28
|
-
* So the defaults below are an APP scale, and `display` keeps the hero size for
|
|
29
|
-
* the screens that actually want one. A marketing page asks for `display`; a
|
|
30
|
-
* console asks for `h1` and gets something it can put on a page.
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* A step on the scale.
|
|
35
|
-
*
|
|
36
|
-
* `display` is a SIZE, not a rank — see `Heading`, which renders it as `h1` so
|
|
37
|
-
* the document still gets exactly one level-one heading.
|
|
38
|
-
*/
|
|
39
|
-
export type HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'display';
|
|
3
|
+
import { HEADING_SCALE, type HeadingLevel, type HeadingMetrics, type HeadingScaleOverrides } from './heading-scale';
|
|
40
4
|
|
|
41
5
|
/**
|
|
42
|
-
* The
|
|
43
|
-
*
|
|
44
|
-
*
|
|
6
|
+
* The MUI half of the type scale: the theme augmentation and the reader that
|
|
7
|
+
* merges a host's overrides. The scale itself is in `./heading-scale`, which
|
|
8
|
+
* imports nothing, so `src/tokens/theme.ts` and the native renderer read it
|
|
9
|
+
* without dragging MUI's `Theme` into `dist/types-native`.
|
|
45
10
|
*/
|
|
46
|
-
export
|
|
47
|
-
'display',
|
|
48
|
-
'h1',
|
|
49
|
-
'h2',
|
|
50
|
-
'h3',
|
|
51
|
-
'h4',
|
|
52
|
-
'h5',
|
|
53
|
-
'h6',
|
|
54
|
-
] as const satisfies readonly HeadingLevel[];
|
|
55
|
-
|
|
56
|
-
/** Everything one step of the scale decides. */
|
|
57
|
-
export interface HeadingMetrics {
|
|
58
|
-
fontSize: string;
|
|
59
|
-
lineHeight: number;
|
|
60
|
-
letterSpacing?: string;
|
|
61
|
-
/**
|
|
62
|
-
* The weight this step carries when the caller asks for `normal`. A heading's
|
|
63
|
-
* "normal" is not body text's 400 — it is the weight the step is meant to
|
|
64
|
-
* carry, which gets heavier as the step gets larger.
|
|
65
|
-
*/
|
|
66
|
-
normalWeight: number;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* The house default, in CODE rather than in a component.
|
|
71
|
-
*
|
|
72
|
-
* ~1.15x per step from a 1rem `h6`, which keeps six distinguishable ranks inside
|
|
73
|
-
* the range an application actually uses. The old table ran 1.125rem → 4rem and
|
|
74
|
-
* spent its top three steps above anything a product screen wants.
|
|
75
|
-
*/
|
|
76
|
-
export const HEADING_SCALE: Record<HeadingLevel, HeadingMetrics> = {
|
|
77
|
-
// The hero size the old `h1` was really offering, under the name that says so.
|
|
78
|
-
display: { fontSize: '3rem', lineHeight: 1.05, letterSpacing: '-0.03em', normalWeight: 800 },
|
|
79
|
-
h1: { fontSize: '2rem', lineHeight: 1.2, letterSpacing: '-0.02em', normalWeight: 700 },
|
|
80
|
-
h2: { fontSize: '1.75rem', lineHeight: 1.25, letterSpacing: '-0.015em', normalWeight: 700 },
|
|
81
|
-
h3: { fontSize: '1.5rem', lineHeight: 1.3, letterSpacing: '-0.01em', normalWeight: 600 },
|
|
82
|
-
h4: { fontSize: '1.25rem', lineHeight: 1.35, letterSpacing: '-0.005em', normalWeight: 600 },
|
|
83
|
-
h5: { fontSize: '1.125rem', lineHeight: 1.4, normalWeight: 600 },
|
|
84
|
-
h6: { fontSize: '1rem', lineHeight: 1.5, normalWeight: 600 },
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
/** A host's overrides: any subset of the steps, any subset of each step's metrics. */
|
|
88
|
-
export type HeadingScaleOverrides = Partial<Record<HeadingLevel, Partial<HeadingMetrics>>>;
|
|
11
|
+
export * from './heading-scale';
|
|
89
12
|
|
|
90
13
|
/**
|
|
91
14
|
* The theme channel, under our OWN key rather than MUI's `typography.h1…h6`.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* THE TWO VOCABULARIES EVERY COMPONENT SPEAKS.
|
|
3
|
+
*
|
|
4
|
+
* Before this file the package had both halves of every argument at once: 26
|
|
5
|
+
* components sized themselves `xs|sm|md|lg|xl` and four used MUI's
|
|
6
|
+
* `small|medium|large`; 14 coloured themselves `danger|neutral` and 15 used
|
|
7
|
+
* MUI's `error`. Nothing enforced either, because most of these props were
|
|
8
|
+
* spelled out as inline unions and a couple were plain `string`.
|
|
9
|
+
*
|
|
10
|
+
* That is not a tidiness problem. A caller learns the vocabulary from whichever
|
|
11
|
+
* component they used first, and the wrong half is not rejected — it reaches MUI
|
|
12
|
+
* as an unknown value and silently falls back. `Chip` shipped with `color?:
|
|
13
|
+
* string` and MUI's `small|medium`, so `color="danger"` rendered grey and
|
|
14
|
+
* `size="sm"` rendered medium; twelve live call sites were doing exactly that,
|
|
15
|
+
* and every test passed because they all asserted on text.
|
|
16
|
+
*
|
|
17
|
+
* So the vocabulary is declared once, here, and components derive from it.
|
|
18
|
+
*
|
|
19
|
+
* DERIVE, DON'T COPY — AND TAKE THE WHOLE VOCABULARY. Every size prop is
|
|
20
|
+
* `SizeValue` and every colour prop is `ColorValue`, with no `Extract` and no
|
|
21
|
+
* `Exclude`. Handing a component a slice was tried and undone: it is the same
|
|
22
|
+
* fragmentation wearing the canonical type's name, and it leaves a caller having
|
|
23
|
+
* to remember which components accept `xs` and which accept `info`. Where the
|
|
24
|
+
* underlying widget draws fewer steps than five, that is a rendering detail and
|
|
25
|
+
* belongs at the MUI boundary below — not in the prop's type.
|
|
26
|
+
*
|
|
27
|
+
* A component whose size or colour is not this concept at all keeps its own type
|
|
28
|
+
* — `Scrollbar`'s `thin|medium|thick` is a track width, `Sheet`'s `full` is a
|
|
29
|
+
* viewport fraction, `LazyImage`'s size is pixels. Forcing those into the scale
|
|
30
|
+
* would be consistency for its own sake.
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The house size scale.
|
|
35
|
+
*
|
|
36
|
+
* Abbreviated, because that is what 26 of the 30 components with a real size
|
|
37
|
+
* already used and what every caller has been taught to write.
|
|
38
|
+
*
|
|
39
|
+
* Declared as the array and the type together so the two cannot disagree. The
|
|
40
|
+
* runtime list is what Storybook `argTypes.options` and the demo grids iterate;
|
|
41
|
+
* spelled by hand in each story it drifts, and it had — twelve colour lists
|
|
42
|
+
* omitted `info`, so the control that documents the vocabulary offered a
|
|
43
|
+
* component less than the component accepted.
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* The type scale is the THIRD vocabulary, and it lives in `./typography.ts`
|
|
47
|
+
* because it is metrics rather than a prop union. Re-exported here so
|
|
48
|
+
* `@12-apps/ui/tokens` stays the one import path for "what words does this
|
|
49
|
+
* package speak" — a second entry point is how a vocabulary gets missed.
|
|
50
|
+
*/
|
|
51
|
+
export {
|
|
52
|
+
HEADING_LEVELS,
|
|
53
|
+
HEADING_SCALE,
|
|
54
|
+
type HeadingLevel,
|
|
55
|
+
type HeadingMetrics,
|
|
56
|
+
type HeadingScaleOverrides,
|
|
57
|
+
} from './heading-scale';
|
|
58
|
+
|
|
59
|
+
export type SizeValue = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
60
|
+
|
|
61
|
+
export const SIZE_VALUES = ['xs', 'sm', 'md', 'lg', 'xl'] as const satisfies readonly SizeValue[];
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* The house colour vocabulary.
|
|
65
|
+
*
|
|
66
|
+
* `danger` and `neutral` are OURS; the rest are MUI's own names already. That
|
|
67
|
+
* sentence started life in `Button.tsx`, which is the component most callers
|
|
68
|
+
* meet first and therefore the one that taught the vocabulary — so it is the one
|
|
69
|
+
* the rest of the package follows.
|
|
70
|
+
*
|
|
71
|
+
* Components that hand these to MUI translate at the boundary (`danger` →
|
|
72
|
+
* `error`, `neutral` → `default` or `inherit` depending on what the underlying
|
|
73
|
+
* component calls its unaccented state). The translation must be a real mapping
|
|
74
|
+
* and never a cast: a cast is precisely what let `danger` through untouched and
|
|
75
|
+
* had MUI fall back to grey.
|
|
76
|
+
*
|
|
77
|
+
* Array and type declared together, for the reason given on {@link SIZE_VALUES}.
|
|
78
|
+
*/
|
|
79
|
+
export type ColorValue =
|
|
80
|
+
| 'primary'
|
|
81
|
+
| 'secondary'
|
|
82
|
+
| 'success'
|
|
83
|
+
| 'warning'
|
|
84
|
+
| 'info'
|
|
85
|
+
| 'danger'
|
|
86
|
+
| 'neutral';
|
|
87
|
+
|
|
88
|
+
export const COLOR_VALUES = [
|
|
89
|
+
'primary',
|
|
90
|
+
'secondary',
|
|
91
|
+
'success',
|
|
92
|
+
'warning',
|
|
93
|
+
'info',
|
|
94
|
+
'danger',
|
|
95
|
+
'neutral',
|
|
96
|
+
] as const satisfies readonly ColorValue[];
|
|
97
|
+
|
|
98
|
+
/* ── Array and union, pinned to each other ────────────────────────────────── */
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The arrays above are written out rather than derived, because deriving the
|
|
102
|
+
* union from the array (`(typeof COLOR_VALUES)[number]`) costs the alias its
|
|
103
|
+
* name: TypeScript resolves the indexed access eagerly, and every error in the
|
|
104
|
+
* package stops saying `not assignable to type 'ColorValue'` and starts dumping
|
|
105
|
+
* seven string literals. In a package whose entire purpose is teaching this
|
|
106
|
+
* vocabulary, the name in the error message is worth keeping.
|
|
107
|
+
*
|
|
108
|
+
* Writing both means they could disagree, so both directions are checked here.
|
|
109
|
+
* `satisfies` above catches an entry that is not a member. These catch the other
|
|
110
|
+
* half — a member missing from the array — which `satisfies` cannot see and
|
|
111
|
+
* which is the direction that actually bit: twelve story control lists offered
|
|
112
|
+
* six colours for a vocabulary of seven, so `info` was undocumented everywhere.
|
|
113
|
+
*
|
|
114
|
+
* A gap makes the assignment below fail, and the error names the missing member.
|
|
115
|
+
*/
|
|
116
|
+
type Missing<Union extends string, Listed extends string> = Exclude<Union, Listed>;
|
|
117
|
+
|
|
118
|
+
const _allSizesListed: Missing<SizeValue, (typeof SIZE_VALUES)[number]> extends never
|
|
119
|
+
? true
|
|
120
|
+
: never = true;
|
|
121
|
+
|
|
122
|
+
const _allColorsListed: Missing<ColorValue, (typeof COLOR_VALUES)[number]> extends never
|
|
123
|
+
? true
|
|
124
|
+
: never = true;
|
|
125
|
+
|
|
126
|
+
void _allSizesListed;
|
|
127
|
+
void _allColorsListed;
|
|
128
|
+
|
|
129
|
+
/* ── The MUI boundary ─────────────────────────────────────────────────────── */
|
|
130
|
+
|
|
131
|
+
/** What MUI calls a size. Three entries against our five. */
|
|
132
|
+
export type MuiSize = 'small' | 'medium' | 'large';
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* The house scale collapsed onto MUI's three.
|
|
136
|
+
*
|
|
137
|
+
* Five onto three loses information, and it loses it at the ends on purpose:
|
|
138
|
+
* `xs`/`sm` both draw small and `lg`/`xl` both draw large, because MUI has no
|
|
139
|
+
* fourth and fifth step to give them. A component that genuinely needs five
|
|
140
|
+
* distinct sizes styles them itself rather than routing through here — this is
|
|
141
|
+
* for the ones that just forward the prop.
|
|
142
|
+
*/
|
|
143
|
+
export const muiSize = (size: SizeValue): MuiSize => {
|
|
144
|
+
if (size === 'xs' || size === 'sm') return 'small';
|
|
145
|
+
return size === 'md' ? 'medium' : 'large';
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/** What MUI calls a semantic colour on most components. */
|
|
149
|
+
export type MuiColor = 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'error';
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* The house vocabulary translated for MUI, with the caller naming its neutral.
|
|
153
|
+
*
|
|
154
|
+
* `neutral` is the awkward one: MUI spells the unaccented state `default` on a
|
|
155
|
+
* chip, `inherit` on a button and an icon button, and `grey` in the palette. So
|
|
156
|
+
* the caller passes the word its own MUI component uses rather than this
|
|
157
|
+
* pretending there is one answer.
|
|
158
|
+
*
|
|
159
|
+
* A MAPPING, NEVER A CAST. The cast is what let `danger` reach MUI untouched and
|
|
160
|
+
* silently fall back to grey.
|
|
161
|
+
*/
|
|
162
|
+
export function muiColor<N extends string>(color: ColorValue, neutralAs: N): MuiColor | N {
|
|
163
|
+
if (color === 'danger') return 'error';
|
|
164
|
+
return color === 'neutral' ? neutralAs : color;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* The house vocabulary as a `theme.palette` key.
|
|
169
|
+
*
|
|
170
|
+
* Separate from {@link muiColor} because the palette has no `default` and no
|
|
171
|
+
* `inherit` — an unaccented colour there is `grey`.
|
|
172
|
+
*/
|
|
173
|
+
export type PaletteKey = MuiColor | 'grey';
|
|
174
|
+
|
|
175
|
+
export const paletteKey = (color: ColorValue): PaletteKey =>
|
|
176
|
+
color === 'danger' ? 'error' : color === 'neutral' ? 'grey' : color;
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* A `ColorValue` resolved to a four-stop accent from the theme.
|
|
180
|
+
*
|
|
181
|
+
* `paletteKey` is not enough on its own for anything that reads `.main`: MUI's
|
|
182
|
+
* palette has no neutral `PaletteColor`, and `palette.grey` is a 50–900 ramp
|
|
183
|
+
* with no `main`, `light`, `dark` or `contrastText` on it at all. So `neutral`
|
|
184
|
+
* is resolved from the ramp here, once, instead of every component discovering
|
|
185
|
+
* the same hole and branching around it.
|
|
186
|
+
*
|
|
187
|
+
* Typed against the theme structurally so this file does not drag in MUI's
|
|
188
|
+
* `Theme` and become a dependency of everything that imports a token.
|
|
189
|
+
*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Alert/Alert.styles.tsx"],"sourcesContent":["import Error from '@mui/icons-material/Error';\nimport Info from '@mui/icons-material/Info';\nimport CheckCircle from '@mui/icons-material/CheckCircle';\nimport Warning from '@mui/icons-material/Warning';\nimport { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nexport const pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 10px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\n// Additional animations can be enabled as needed\n// const slideInAnimation = keyframes`\n// from {\n// transform: translateX(-100%);\n// opacity: 0;\n// }\n// to {\n// transform: translateX(0);\n// opacity: 1;\n// }\n// `;\n\n// const bounceIn = keyframes`\n// 0% {\n// transform: scale(0.3);\n// opacity: 0;\n// }\n// 50% {\n// transform: scale(1.05);\n// }\n// 70% {\n// transform: scale(0.9);\n// }\n// 100% {\n// transform: scale(1);\n// opacity: 1;\n// }\n// `;\n\n// Removed unused slideInAnimation - can be re-added if needed for future features\n\nexport const shimmerAnimation = keyframes`\n 0% {\n background-position: -1000px 0;\n }\n 100% {\n background-position: 1000px 0;\n }\n`;\n\nexport const fadeInScale = keyframes`\n from {\n opacity: 0;\n transform: scale(0.95) translateY(-10px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n`;\n\nexport const iconRotate = keyframes`\n 0% {\n transform: rotate(0deg) scale(0.8);\n }\n 50% {\n transform: rotate(180deg) scale(1.1);\n }\n 100% {\n transform: rotate(360deg) scale(1);\n }\n`;\n\nexport const getColorFromTheme = (theme: Theme, variant: string) => {\n const colorMap: Record<string, { main: string; light?: string; dark?: string }> = {\n info: theme.palette.info,\n success: theme.palette.success,\n warning: theme.palette.warning,\n danger: theme.palette.error,\n primary: theme.palette.primary,\n secondary: theme.palette.secondary,\n neutral: {\n main: theme.palette.grey[500] || '#9E9E9E',\n light: theme.palette.grey[300] || '#E0E0E0',\n dark: theme.palette.grey[700] || '#616161',\n },\n };\n\n return colorMap[variant] || theme.palette.info;\n};\n\nexport const getVariantIcon = (variant: string) => {\n const iconMap: Record<string, React.ReactNode> = {\n info: <Info />,\n success: <CheckCircle />,\n warning: <Warning />,\n danger: <Error />,\n };\n\n return iconMap[variant];\n};\n\n// The palette shape getColorFromTheme returns — a main plus optional light/dark,\n// which is narrower than MUI's PaletteColor.\nexport type AlertPalette = { main: string; light?: string; dark?: string };\n\n/** The four semantic variants, which differ only in which palette they read. */\nconst SEMANTIC_VARIANTS = new Set(['info', 'success', 'warning', 'danger']);\n\n/**\n * The room the message is given — padding, the stack's rhythm, and where the\n * icon and the close button sit relative to it.\n *\n * Extracted for the same reason {@link alertVariantStyles} and\n * {@link alertEmphasisStyles} were: `styled()`'s callback is one function, and\n * every block written inline is counted against its length by the complexity\n * gate. Keeping the layout here means the callback assembles four named pieces\n * instead of carrying all of them.\n */\nexport const alertLayoutStyles = (\n theme: Theme,\n colorPalette: AlertPalette,\n animate: boolean | undefined,\n): CSSObject => ({\n // ROOM TO READ.\n //\n // MUI's `6px 16px` is sized for one line of text and nothing else. This Alert\n // routinely carries three things stacked — a sentence, a smaller explanation,\n // then a control — and at 6px they touched top and bottom and ran together\n // vertically, so the whole card read as one dense block instead of as a\n // message with parts. The generosity is what makes the structure legible; it\n // is not decoration.\n //\n // Padding stays overridable by an `sx` (a full-bleed strip legitimately wants\n // it tight), because this is a default rather than a rule.\n padding: theme.spacing(1.75, 2),\n\n '.MuiAlert-message': {\n display: 'flex',\n flexDirection: 'column',\n // 0.5 put a title, its explanation and a button 4px apart, which reads as a\n // spacing bug rather than as a group. 1 separates the lines; the extra\n // margin below goes to whatever CONTROL sits at the end, because the gap\n // between prose and a thing you press has to be bigger than the gap between\n // two lines of prose or the button looks like part of the text.\n gap: theme.spacing(1),\n fontSize: '0.95rem',\n lineHeight: 1.5,\n // No padding of its own — the root's is now doing that job, and MUI's\n // default `8px 0` on top of it would double the vertical space.\n padding: 0,\n // A CONTROL ON A TINTED PANEL NEEDS AN EDGE.\n //\n // `ghost` and `text` paint no background and no border — bare labels, which\n // works on white where the surrounding page is obviously not clickable.\n // Inside a coloured Alert it stops working: the label is one more coloured\n // phrase among several, and a \"Cancelar\" beside two lines of prose reads as\n // part of the prose.\n //\n // Only the BORDER is set, never the background or the colour, and that is\n // what makes it safe to apply to every button rather than just the bare\n // ones: a `solid` keeps its fill and its light label and gains a hairline\n // in the same hue, while a `ghost` gains the whole affordance.\n '.MuiButton-root': {\n marginTop: theme.spacing(0.5),\n border: `1px solid ${alpha(colorPalette.main, 0.45)}` },\n },\n\n '.MuiAlert-icon': {\n transition: 'transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n alignItems: 'center',\n // Clear of the words rather than nearly touching them, and aligned to the\n // FIRST line instead of centred on the whole block — an icon floating\n // halfway down a three-line message points at nothing.\n alignSelf: 'flex-start',\n marginRight: theme.spacing(1.75),\n paddingTop: theme.spacing(0.25),\n animation: animate ? `${iconRotate} 0.6s ease-out` : 'none' },\n\n // The close button, kept off the text it sits beside.\n '.MuiAlert-action': {\n alignItems: 'flex-start',\n paddingLeft: theme.spacing(2) },\n});\n\n/**\n * A semantic Alert's surface and ink.\n *\n * ## Why this is not `alpha(main, 0.1)`\n *\n * It used to be, four times over, with `color: main` for the text. Both halves\n * were wrong, and independently so.\n *\n * The fill was TRANSLUCENT. A 10% wash only reads as a banner when something\n * opaque is behind it, so the component silently depended on where a consumer\n * put it. Placed over content — a floating notice, an invite anchored above a\n * catalogue — the page came straight through and the sentence interleaved with\n * whatever it was over. That is not a faint banner; it is an unreadable one,\n * and nothing in the component said so.\n *\n * The ink was the SEVERITY HUE at body size. `#0288d1`, this library's info\n * blue, is 3.03:1 on white — under the 4.5:1 WCAG AA floor before any wash is\n * involved. So the text failed on a plain white page too, where the fill was\n * behaving exactly as intended.\n *\n * ## Why `lighten`/`darken` rather than a hand-picked pair\n *\n * These are the same transforms MUI's own `standard` Alert uses, at the same\n * ratios — the recipe this component overrode. Reusing it means an OPAQUE tint\n * with a dark ink of the same hue, contrast that holds on any surface because\n * it no longer depends on one, and a pairing already proven across MUI's\n * palette rather than eyeballed here. Both modes are handled: on a dark theme\n * the tint darkens and the ink lightens, which an alpha wash could never do\n * because it carries the seed's own lightness through unchanged.\n *\n * The border keeps an alpha — it is a hairline over the tint it belongs to, so\n * translucency there costs nothing and lets the edge follow the fill.\n */\nconst semanticSurface = (theme: Theme, colorPalette: AlertPalette): CSSObject => {\n const dark = theme.palette.mode === 'dark';\n return {\n backgroundColor: dark ? darken(colorPalette.main, 0.8) : lighten(colorPalette.main, 0.9),\n color: dark ? lighten(colorPalette.main, 0.6) : darken(colorPalette.main, 0.6),\n border: `1px solid ${alpha(colorPalette.main, 0.35)}`,\n '.MuiAlert-icon': {\n color: colorPalette.main,\n },\n };\n};\n\n// The six visual variants. Each block is spread in only when it matches, which\n// is how the original inline version read; keeping that shape here means the\n// styled() callback carries one branch instead of six. The four semantics were\n// four IDENTICAL copies of the same block — they now share one, so the next\n// change to a banner's surface cannot land on three of them.\nexport const alertVariantStyles = (\n theme: Theme,\n customVariant: string | undefined,\n colorPalette: AlertPalette,\n): CSSObject => ({\n...(customVariant !== undefined &&\n SEMANTIC_VARIANTS.has(customVariant) &&\n semanticSurface(theme, colorPalette)),\n\n...(customVariant === 'glass' && {\n // 85%, not 10%. This is the variant that is MEANT to be see-through, and it\n // was the same mistake in a costume: at 0.1 the blur had almost nothing to\n // sit on, so `glass` was not frosted, it was a window. A frosted pane has to\n // be mostly pane — the backdrop should be legible AS texture behind the\n // text, never as competition with it.\n backgroundColor: alpha(theme.palette.background.paper, 0.85),\n backdropFilter: 'blur(20px) saturate(180%)',\n WebkitBackdropFilter: 'blur(20px) saturate(180%)',\n border: `1px solid ${alpha(theme.palette.divider, 0.4)}`,\n color: theme.palette.text.primary,\n '.MuiAlert-icon': {\n color: theme.palette.primary.main,\n },\n // Safari before 18 and Firefox with the filter disabled paint the declared\n // alpha with nothing blurred behind it — the see-through banner this is\n // fixing. There is no degraded frost to fall back to, so it falls back to an\n // opaque pane: less pretty, still readable.\n '@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)))': {\n backgroundColor: theme.palette.background.paper,\n },\n}),\n\n...(customVariant === 'gradient' && {\n background: `linear-gradient(135deg, ${alpha(colorPalette.light || colorPalette.main, 0.9)}, ${alpha(colorPalette.dark || colorPalette.main, 0.9)})`,\n color: theme.palette.getContrastText(colorPalette.main),\n border: 'none',\n position: 'relative',\n overflow: 'hidden',\n '.MuiAlert-icon': {\n color: theme.palette.getContrastText(colorPalette.main),\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: '-1000px',\n width: '100%',\n height: '100%',\n background: `linear-gradient(90deg, transparent, ${alpha(theme.palette.common.white, 0.2)}, transparent)`,\n animation: `${shimmerAnimation} 3s infinite`,\n },\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.01)',\n },\n}),\n});\n\n// glow and pulse combine into three distinct looks, so the combinations are\n// spelled out rather than layered — layering them would let the glow-only shadow\n// leak into the glow+pulse case.\nexport const alertEmphasisStyles = (\n colorPalette: AlertPalette,\n glow: boolean,\n pulse: boolean,\n): CSSObject => ({\n...(glow &&\n !pulse && {\n boxShadow: `0 0 20px 5px ${alpha(colorPalette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n }),\n\n// Pulse animation\n...(pulse &&\n !glow && {\n position: 'relative',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n backgroundColor: colorPalette.main,\n opacity: 0.2,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n }),\n\n// Both glow and pulse\n...(glow &&\n pulse && {\n position: 'relative',\n boxShadow: `0 0 20px 5px ${alpha(colorPalette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n borderRadius: 'inherit',\n backgroundColor: colorPalette.main,\n opacity: 0.2,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n }),\n});\n"],"mappings":";AAAA,OAAO,WAAW;AAClB,OAAO,UAAU;AACjB,OAAO,iBAAiB;AACxB,OAAO,aAAa;AACpB,SAAS,OAAO,QAAQ,WAAW,eAAe;AAsGxC;AAlGH,IAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8CvB,IAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASzB,IAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWpB,IAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYnB,IAAM,oBAAoB,CAAC,OAAc,YAAoB;AAClE,QAAM,WAA4E;AAAA,IAChF,MAAM,MAAM,QAAQ;AAAA,IACpB,SAAS,MAAM,QAAQ;AAAA,IACvB,SAAS,MAAM,QAAQ;AAAA,IACvB,QAAQ,MAAM,QAAQ;AAAA,IACtB,SAAS,MAAM,QAAQ;AAAA,IACvB,WAAW,MAAM,QAAQ;AAAA,IACzB,SAAS;AAAA,MACP,MAAM,MAAM,QAAQ,KAAK,GAAG,KAAK;AAAA,MACjC,OAAO,MAAM,QAAQ,KAAK,GAAG,KAAK;AAAA,MAClC,MAAM,MAAM,QAAQ,KAAK,GAAG,KAAK;AAAA,IACnC;AAAA,EACF;AAEA,SAAO,SAAS,OAAO,KAAK,MAAM,QAAQ;AAC5C;AAEO,IAAM,iBAAiB,CAAC,YAAoB;AACjD,QAAM,UAA2C;AAAA,IAC/C,MAAM,oBAAC,QAAK;AAAA,IACZ,SAAS,oBAAC,eAAY;AAAA,IACtB,SAAS,oBAAC,WAAQ;AAAA,IAClB,QAAQ,oBAAC,SAAM;AAAA,EACjB;AAEA,SAAO,QAAQ,OAAO;AACxB;AAOA,IAAM,oBAAoB,oBAAI,IAAI,CAAC,QAAQ,WAAW,WAAW,QAAQ,CAAC;AAYnE,IAAM,oBAAoB,CAC/B,OACA,cACA,aACe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYf,SAAS,MAAM,QAAQ,MAAM,CAAC;AAAA,EAE9B,qBAAqB;AAAA,IACnB,SAAS;AAAA,IACT,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMf,KAAK,MAAM,QAAQ,CAAC;AAAA,IACpB,UAAU;AAAA,IACV,YAAY;AAAA;AAAA;AAAA,IAGZ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaT,mBAAmB;AAAA,MACjB,WAAW,MAAM,QAAQ,GAAG;AAAA,MAC5B,QAAQ,aAAa,MAAM,aAAa,MAAM,IAAI,CAAC;AAAA,IAAG;AAAA,EAC1D;AAAA,EAEA,kBAAkB;AAAA,IAChB,YAAY;AAAA,IACZ,YAAY;AAAA;AAAA;AAAA;AAAA,IAIZ,WAAW;AAAA,IACX,aAAa,MAAM,QAAQ,IAAI;AAAA,IAC/B,YAAY,MAAM,QAAQ,IAAI;AAAA,IAC9B,WAAW,UAAU,GAAG,UAAU,mBAAmB;AAAA,EAAO;AAAA;AAAA,EAG9D,oBAAoB;AAAA,IAClB,YAAY;AAAA,IACZ,aAAa,MAAM,QAAQ,CAAC;AAAA,EAAE;AAClC;AAmCA,IAAM,kBAAkB,CAAC,OAAc,iBAA0C;AAC/E,QAAM,OAAO,MAAM,QAAQ,SAAS;AACpC,SAAO;AAAA,IACL,iBAAiB,OAAO,OAAO,aAAa,MAAM,GAAG,IAAI,QAAQ,aAAa,MAAM,GAAG;AAAA,IACvF,OAAO,OAAO,QAAQ,aAAa,MAAM,GAAG,IAAI,OAAO,aAAa,MAAM,GAAG;AAAA,IAC7E,QAAQ,aAAa,MAAM,aAAa,MAAM,IAAI,CAAC;AAAA,IACnD,kBAAkB;AAAA,MAChB,OAAO,aAAa;AAAA,IACtB;AAAA,EACF;AACF;AAOO,IAAM,qBAAqB,CAChC,OACA,eACA,kBACe;AAAA,EACjB,GAAI,kBAAkB,UACpB,kBAAkB,IAAI,aAAa,KACnC,gBAAgB,OAAO,YAAY;AAAA,EAErC,GAAI,kBAAkB,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM/B,iBAAiB,MAAM,MAAM,QAAQ,WAAW,OAAO,IAAI;AAAA,IAC3D,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,QAAQ,aAAa,MAAM,MAAM,QAAQ,SAAS,GAAG,CAAC;AAAA,IACtD,OAAO,MAAM,QAAQ,KAAK;AAAA,IAC1B,kBAAkB;AAAA,MAChB,OAAO,MAAM,QAAQ,QAAQ;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,wFAAwF;AAAA,MACtF,iBAAiB,MAAM,QAAQ,WAAW;AAAA,IAC5C;AAAA,EACF;AAAA,EAEA,GAAI,kBAAkB,cAAc;AAAA,IAClC,YAAY,2BAA2B,MAAM,aAAa,SAAS,aAAa,MAAM,GAAG,CAAC,KAAK,MAAM,aAAa,QAAQ,aAAa,MAAM,GAAG,CAAC;AAAA,IACjJ,OAAO,MAAM,QAAQ,gBAAgB,aAAa,IAAI;AAAA,IACtD,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU;AAAA,IACV,kBAAkB;AAAA,MAChB,OAAO,MAAM,QAAQ,gBAAgB,aAAa,IAAI;AAAA,IACxD;AAAA,IACA,aAAa;AAAA,MACX,SAAS;AAAA,MACT,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY,uCAAuC,MAAM,MAAM,QAAQ,OAAO,OAAO,GAAG,CAAC;AAAA,MACzF,WAAW,GAAG,gBAAgB;AAAA,IAChC;AAAA,IACA,WAAW;AAAA,MACT,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAAA,EACF;AACA;AAKO,IAAM,sBAAsB,CACjC,cACA,MACA,WACe;AAAA,EACjB,GAAI,QACF,CAAC,SAAS;AAAA,IACR,WAAW,gBAAgB,MAAM,aAAa,MAAM,GAAG,CAAC;AAAA,IACxD,QAAQ;AAAA,EACV;AAAA;AAAA,EAGF,GAAI,SACF,CAAC,QAAQ;AAAA,IACP,UAAU;AAAA,IACV,YAAY;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,iBAAiB,aAAa;AAAA,MAC9B,SAAS;AAAA,MACT,WAAW,GAAG,cAAc;AAAA,MAC5B,eAAe;AAAA,MACf,QAAQ;AAAA,IACV;AAAA,EACF;AAAA;AAAA,EAGF,GAAI,QACF,SAAS;AAAA,IACP,UAAU;AAAA,IACV,WAAW,gBAAgB,MAAM,aAAa,MAAM,GAAG,CAAC;AAAA,IACxD,QAAQ;AAAA,IACR,YAAY;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,iBAAiB,aAAa;AAAA,MAC9B,SAAS;AAAA,MACT,WAAW,GAAG,cAAc;AAAA,MAC5B,eAAe;AAAA,MACf,QAAQ;AAAA,IACV;AAAA,EACF;AACF;","names":[]}
|