@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/typography.ts"],"sourcesContent":["import type { Theme } from '@mui/material/styles/index.js';\n\n/**\n * THE THIRD VOCABULARY: the type scale.\n *\n * `scales.ts` opens by saying the package had both halves of every argument at\n * once until the size and colour vocabularies were declared in one place and\n * every component derived from them. The type scale was the one that never got\n * that treatment — it lived as a private `LEVELS` table inside\n * `Heading.styles.ts`, which is exactly the shape that file exists to refuse.\n *\n * Two things follow from it being private, and the second is the expensive one.\n *\n * **It could not be re-themed.** `Heading` read `theme.typography.h1.fontFamily`\n * from the theme and then ignored the theme for every other metric, so a host\n * calling `createTheme({ typography: { h1: { fontSize: '2rem' } } })` changed\n * `<Typography variant=\"h1\">` and left `<Heading level=\"h1\">` at 48px. A design\n * system whose type scale cannot be set by the design is not a system.\n *\n * **And the numbers were a landing page's.** `h1` at 3rem and `h2` at 2.5rem are\n * hero metrics. Dropped into an operations console they put a 48px title\n * directly above 14px body copy — a 3.4x jump with nothing in between — so\n * product teams stopped reaching for the component. Measured in one consuming\n * repo: `<Heading>` appeared four times in the entire codebase while raw\n * `fontSize` appeared in dozens of files. The component was not disliked, it was\n * unusable at app scale, and every host paid for that in hand-rolled CSS.\n *\n * So the defaults below are an APP scale, and `display` keeps the hero size for\n * the screens that actually want one. A marketing page asks for `display`; a\n * console asks for `h1` and gets something it can put on a page.\n */\n\n/**\n * A step on the scale.\n *\n * `display` is a SIZE, not a rank — see `Heading`, which renders it as `h1` so\n * the document still gets exactly one level-one heading.\n */\nexport type HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'display';\n\n/**\n * The runtime list, declared beside the union for the reason `SIZE_VALUES`\n * gives: a story's `argTypes.options` spelled by hand drifts from the type, and\n * the direction it drifts is \"documents less than the component accepts\".\n */\nexport const HEADING_LEVELS = [\n 'display',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n] as const satisfies readonly HeadingLevel[];\n\n/** Everything one step of the scale decides. */\nexport interface HeadingMetrics {\n fontSize: string;\n lineHeight: number;\n letterSpacing?: string;\n /**\n * The weight this step carries when the caller asks for `normal`. A heading's\n * \"normal\" is not body text's 400 — it is the weight the step is meant to\n * carry, which gets heavier as the step gets larger.\n */\n normalWeight: number;\n}\n\n/**\n * The house default, in CODE rather than in a component.\n *\n * ~1.15x per step from a 1rem `h6`, which keeps six distinguishable ranks inside\n * the range an application actually uses. The old table ran 1.125rem → 4rem and\n * spent its top three steps above anything a product screen wants.\n */\nexport const HEADING_SCALE: Record<HeadingLevel, HeadingMetrics> = {\n // The hero size the old `h1` was really offering, under the name that says so.\n display: { fontSize: '3rem', lineHeight: 1.05, letterSpacing: '-0.03em', normalWeight: 800 },\n h1: { fontSize: '2rem', lineHeight: 1.2, letterSpacing: '-0.02em', normalWeight: 700 },\n h2: { fontSize: '1.75rem', lineHeight: 1.25, letterSpacing: '-0.015em', normalWeight: 700 },\n h3: { fontSize: '1.5rem', lineHeight: 1.3, letterSpacing: '-0.01em', normalWeight: 600 },\n h4: { fontSize: '1.25rem', lineHeight: 1.35, letterSpacing: '-0.005em', normalWeight: 600 },\n h5: { fontSize: '1.125rem', lineHeight: 1.4, normalWeight: 600 },\n h6: { fontSize: '1rem', lineHeight: 1.5, normalWeight: 600 },\n};\n\n/** A host's overrides: any subset of the steps, any subset of each step's metrics. */\nexport type HeadingScaleOverrides = Partial<Record<HeadingLevel, Partial<HeadingMetrics>>>;\n\n/**\n * The theme channel, under our OWN key rather than MUI's `typography.h1…h6`.\n *\n * Those are spoken for: MUI ships its own values there (`h1` is 6rem) and\n * `<Typography variant=\"h1\">` renders them. Reading them here would hand an\n * un-themed host a 96px `h1` — worse than the number this change exists to fix —\n * and would make `Heading` and `Typography` impossible to size apart. A separate\n * key means a host that sets nothing gets {@link HEADING_SCALE}, and a host that\n * sets something gets exactly what it asked for.\n */\ndeclare module '@mui/material/styles' {\n interface TypographyVariants {\n headingScale?: HeadingScaleOverrides;\n }\n interface TypographyVariantsOptions {\n headingScale?: HeadingScaleOverrides;\n }\n}\n\n/**\n * One step of the scale, with the host's theme layered over the default.\n *\n * Merged PER METRIC, so a host that only wants a different `fontSize` keeps the\n * line height and letter spacing the step was designed with instead of having to\n * restate them — restating is how a partial override silently loses the tracking\n * that made the size readable.\n */\nexport function headingMetrics(theme: Theme, level: HeadingLevel): HeadingMetrics {\n return { ...HEADING_SCALE[level], ...theme.typography.headingScale?.[level] };\n}\n"],"mappings":";AA6CO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAsBO,IAAM,gBAAsD;AAAA;AAAA,EAEjE,SAAS,EAAE,UAAU,QAAQ,YAAY,MAAM,eAAe,WAAW,cAAc,IAAI;AAAA,EAC3F,IAAI,EAAE,UAAU,QAAQ,YAAY,KAAK,eAAe,WAAW,cAAc,IAAI;AAAA,EACrF,IAAI,EAAE,UAAU,WAAW,YAAY,MAAM,eAAe,YAAY,cAAc,IAAI;AAAA,EAC1F,IAAI,EAAE,UAAU,UAAU,YAAY,KAAK,eAAe,WAAW,cAAc,IAAI;AAAA,EACvF,IAAI,EAAE,UAAU,WAAW,YAAY,MAAM,eAAe,YAAY,cAAc,IAAI;AAAA,EAC1F,IAAI,EAAE,UAAU,YAAY,YAAY,KAAK,cAAc,IAAI;AAAA,EAC/D,IAAI,EAAE,UAAU,QAAQ,YAAY,KAAK,cAAc,IAAI;AAC7D;AAgCO,SAAS,eAAe,OAAc,OAAqC;AAChF,SAAO,EAAE,GAAG,cAAc,KAAK,GAAG,GAAG,MAAM,WAAW,eAAe,KAAK,EAAE;AAC9E;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/EmptyState/EmptyState.tsx"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Link from '@mui/material/Link/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { EmptyStateProps } from './EmptyState.types';\n\ntype EmptyStateVariant = NonNullable<EmptyStateProps['variant']>;\n\nconst makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `empty-state-${suffix}`;\n\ninterface ActionSpec {\n key: string;\n variant: 'contained' | 'outlined';\n onClick: () => void;\n label: string;\n icon?: React.ReactNode;\n}\n\n// The four buttons are one button with different props. Listing them keeps their\n// order — primary, create, secondary, refresh — visible in one place.\nconst actionsOf = (\n props: EmptyStateProps,\n refreshLabel: string,\n createLabel: string,\n): ActionSpec[] => {\n const { primaryAction, secondaryAction, onCreate, onRefresh } = props;\n const specs: ActionSpec[] = [];\n\n if (primaryAction) {\n specs.push({\n key: 'primary-action',\n variant: 'contained',\n onClick: primaryAction.onClick,\n label: primaryAction.label,\n });\n }\n if (onCreate) {\n specs.push({\n key: 'create-button',\n variant: 'contained',\n onClick: onCreate,\n label: createLabel,\n icon: <AddIcon />,\n });\n }\n if (secondaryAction) {\n specs.push({\n key: 'secondary-action',\n variant: 'outlined',\n onClick: secondaryAction.onClick,\n label: secondaryAction.label,\n });\n }\n if (onRefresh) {\n specs.push({\n key: 'refresh-button',\n variant: 'outlined',\n onClick: onRefresh,\n label: refreshLabel,\n icon: <RefreshIcon />,\n });\n }\n\n return specs;\n};\n\nconst Illustration: React.FC<{\n illustration: React.ReactNode;\n variant: EmptyStateVariant;\n testId: string;\n}> = ({ illustration, variant, testId }) => (\n <Box\n data-testid={testId}\n sx={{\n maxWidth: variant === 'illustrated' ? 240 : 120,\n width: '100%',\n height: 'auto',\n opacity: variant === 'minimal' ? 0.6 : 0.8,\n display: variant === 'minimal' ? 'none' : 'block',\n }}\n >\n {illustration}\n </Box>\n);\n\nconst Actions: React.FC<{\n specs: ActionSpec[];\n testId: (suffix: string) => string;\n}> = ({ specs, testId }) => {\n const theme = useTheme();\n\n return (\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n spacing={2}\n alignItems=\"center\"\n sx={{ mt: theme.spacing(2) }}\n >\n {specs.map((spec) => (\n <Button\n key={spec.key}\n variant={spec.variant}\n onClick={spec.onClick}\n startIcon={spec.icon}\n data-testid={testId(spec.key)}\n sx={{ minWidth: 120 }}\n >\n {spec.label}\n </Button>\n ))}\n </Stack>\n );\n};\n\nconst HelpLink: React.FC<{\n helpLink: NonNullable<EmptyStateProps['helpLink']>;\n testId: string;\n}> = ({ helpLink, testId }) => {\n const theme = useTheme();\n\n return (\n <Link\n href={helpLink.href}\n target={helpLink.external ? '_blank' : undefined}\n rel={helpLink.external ? 'noopener noreferrer' : undefined}\n data-testid={testId}\n sx={{\n mt: theme.spacing(1),\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n }}\n >\n {helpLink.label}\n {helpLink.external && ' ↗'}\n </Link>\n );\n};\n\nconst Content: React.FC<{\n title: string;\n description?: string;\n titleId: string;\n testId: (suffix: string) => string;\n actions: ActionSpec[];\n showActions: boolean;\n helpLink?: EmptyStateProps['helpLink'];\n}> = ({ title, description, titleId, testId, actions, showActions, helpLink }) => {\n const theme = useTheme();\n\n return (\n <Stack spacing={2} alignItems=\"center\">\n <Typography\n id={titleId}\n variant=\"h6\"\n component=\"h3\"\n data-testid={testId('title')}\n sx={{\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.palette.text.primary,\n maxWidth: 400,\n }}\n >\n {title}\n </Typography>\n\n {description && (\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n data-testid={testId('description')}\n sx={{\n maxWidth: 480,\n lineHeight: 1.6,\n }}\n >\n {description}\n </Typography>\n )}\n\n {showActions && <Actions specs={actions} testId={testId} />}\n\n {helpLink && <HelpLink helpLink={helpLink} testId={testId('help-link')} />}\n </Stack>\n );\n};\n\nexport const EmptyState: React.FC<EmptyStateProps> = React.memo((props) => {\n const {\n variant = 'default',\n title,\n description,\n illustration,\n helpLink,\n refreshLabel = 'Refresh',\n createLabel = 'Create New',\n className,\n dataTestId,\n } = props;\n const theme = useTheme();\n const titleId = React.useId();\n const testId = makeTestId(dataTestId);\n\n const actions = actionsOf(props, refreshLabel, createLabel);\n // The `action` variant reserves the action row even when nothing fills it.\n const showActions = variant === 'action' || actions.length > 0;\n\n return (\n <Box\n role=\"region\"\n aria-labelledby={titleId}\n className={className}\n data-testid={dataTestId || 'empty-state'}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n padding: theme.spacing(6),\n minHeight: 200,\n gap: theme.spacing(3),\n }}\n >\n {/* Illustration */}\n {illustration && (\n <Illustration\n illustration={illustration}\n variant={variant}\n testId={testId('icon')}\n />\n )}\n\n {/* Content */}\n <Content\n title={title}\n description={description}\n titleId={titleId}\n testId={testId}\n actions={actions}\n showActions={showActions}\n helpLink={helpLink}\n />\n </Box>\n );\n});\n\nEmptyState.displayName = 'EmptyState';\n\nexport default EmptyState;\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/typography/Paragraph/Paragraph.tsx"],"sourcesContent":["import type { Theme } from '@mui/material/styles/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { ParagraphProps } from './Paragraph.types';\n\nconst getColorFromTheme = (theme: Theme, color: string) => {\n if (color === 'neutral') {\n return theme.palette.text.primary;\n }\n\n const colorMap: Record<string, string> = {\n primary: theme.palette.primary.main,\n secondary: theme.palette.secondary.main,\n success: theme.palette.success.main,\n warning: theme.palette.warning.main,\n info: theme.palette.info.main,\n danger: theme.palette.error.main,\n };\n\n return colorMap[color] || theme.palette.text.primary;\n};\n\nconst StyledParagraph = styled(Typography, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customColor', 'customSize'].includes(prop as string),\n})<{\n customVariant?: string;\n customColor?: string;\n customSize?: string;\n}>(({ theme, customVariant = 'default', customColor = 'neutral', customSize = 'md' }) => {\n const textColor = getColorFromTheme(theme, customColor);\n\n // Size mapping\n const sizeMap = {\n xs: { fontSize: '0.75rem', lineHeight: 1.4 },\n sm: { fontSize: '0.875rem', lineHeight: 1.5 },\n md: { fontSize: '1rem', lineHeight: 1.6 },\n lg: { fontSize: '1.125rem', lineHeight: 1.6 },\n xl: { fontSize: '1.25rem', lineHeight: 1.7 },\n };\n\n const baseStyles = {\n fontFamily: theme.typography.body1.fontFamily,\n margin: '0 0 1em 0',\n transition: 'all 0.2s ease',\n ...sizeMap[customSize as keyof typeof sizeMap],\n };\n\n // Variant-specific styles\n const variantStyles = {\n default: {\n ...baseStyles,\n color: textColor,\n fontWeight: 400,\n },\n lead: {\n ...baseStyles,\n color: textColor,\n fontWeight: 400,\n fontSize:\n customSize === 'md' ? '1.125rem' : sizeMap[customSize as keyof typeof sizeMap]?.fontSize,\n lineHeight: 1.7,\n letterSpacing: '0.01em',\n },\n muted: {\n ...baseStyles,\n color: theme.palette.text.secondary,\n fontWeight: 400,\n opacity: 0.8,\n },\n small: {\n ...baseStyles,\n color: theme.palette.text.secondary,\n fontSize:\n customSize === 'md' ? '0.875rem' : sizeMap[customSize as keyof typeof sizeMap]?.fontSize,\n fontWeight: 400,\n lineHeight: 1.5,\n },\n };\n\n return variantStyles[customVariant as keyof typeof variantStyles] || variantStyles.default;\n});\n\nexport const Paragraph = React.forwardRef<globalThis.HTMLParagraphElement, ParagraphProps>(\n ({ variant = 'default', color = 'neutral', size = 'md', children, ...props }, ref) => (\n <StyledParagraph\n ref={ref}\n customVariant={variant}\n customColor={color}\n customSize={size}\n {...props}\n >\n {children}\n </StyledParagraph>\n ),\n);\n\nParagraph.displayName = 'Paragraph';"],"mappings":";AACA,OAAO,gBAAgB;AACvB,SAAS,cAAc;AACvB,OAAO,WAAW;AAoFZ;AAhFN,IAAM,oBAAoB,CAAC,OAAc,UAAkB;AACzD,MAAI,UAAU,WAAW;AACvB,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC5B;AAEA,QAAM,WAAmC;AAAA,IACvC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,WAAW,MAAM,QAAQ,UAAU;AAAA,IACnC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,MAAM,MAAM,QAAQ,KAAK;AAAA,IACzB,QAAQ,MAAM,QAAQ,MAAM;AAAA,EAC9B;AAEA,SAAO,SAAS,KAAK,KAAK,MAAM,QAAQ,KAAK;AAC/C;AAEA,IAAM,kBAAkB,OAAO,YAAY;AAAA,EACzC,mBAAmB,CAAC,SAClB,CAAC,CAAC,iBAAiB,eAAe,YAAY,EAAE,SAAS,IAAc;AAC3E,CAAC,EAIE,CAAC,EAAE,OAAO,gBAAgB,WAAW,cAAc,WAAW,aAAa,KAAK,MAAM;AACvF,QAAM,YAAY,kBAAkB,OAAO,WAAW;AAGtD,QAAM,UAAU;AAAA,IACd,IAAI,EAAE,UAAU,WAAW,YAAY,IAAI;AAAA,IAC3C,IAAI,EAAE,UAAU,YAAY,YAAY,IAAI;AAAA,IAC5C,IAAI,EAAE,UAAU,QAAQ,YAAY,IAAI;AAAA,IACxC,IAAI,EAAE,UAAU,YAAY,YAAY,IAAI;AAAA,IAC5C,IAAI,EAAE,UAAU,WAAW,YAAY,IAAI;AAAA,EAC7C;AAEA,QAAM,aAAa;AAAA,IACjB,YAAY,MAAM,WAAW,MAAM;AAAA,IACnC,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,GAAG,QAAQ,UAAkC;AAAA,EAC/C;AAGA,QAAM,gBAAgB;AAAA,IACpB,SAAS;AAAA,MACP,GAAG;AAAA,MACH,OAAO;AAAA,MACP,YAAY;AAAA,IACd;AAAA,IACA,MAAM;AAAA,MACJ,GAAG;AAAA,MACH,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,UACE,eAAe,OAAO,aAAa,QAAQ,UAAkC,GAAG;AAAA,MAClF,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,OAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO,MAAM,QAAQ,KAAK;AAAA,MAC1B,YAAY;AAAA,MACZ,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,GAAG;AAAA,MACH,OAAO,MAAM,QAAQ,KAAK;AAAA,MAC1B,UACE,eAAe,OAAO,aAAa,QAAQ,UAAkC,GAAG;AAAA,MAClF,YAAY;AAAA,MACZ,YAAY;AAAA,IACd;AAAA,EACF;AAEA,SAAO,cAAc,aAA2C,KAAK,cAAc;AACrF,CAAC;AAEM,IAAM,YAAY,MAAM;AAAA,EAC7B,CAAC,EAAE,UAAU,WAAW,QAAQ,WAAW,OAAO,MAAM,UAAU,GAAG,MAAM,GAAG,QAC1E;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAe;AAAA,MACf,aAAa;AAAA,MACb,YAAY;AAAA,MACX,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEN;AAEA,UAAU,cAAc;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Button/Button.helpers.ts"],"sourcesContent":["import type { ButtonProps } from './Button.types';\n\ntype ButtonDefaultedKeys =\n | 'variant'\n | 'color'\n | 'size'\n | 'loading'\n | 'iconPosition'\n | 'glow'\n | 'pulse'\n | 'ripple'\n | 'active';\n\ntype ResolvedButtonProps = ButtonProps & Required<Pick<ButtonProps, ButtonDefaultedKeys>>;\n\nconst BUTTON_DEFAULTS: Pick<ButtonProps, ButtonDefaultedKeys> = {\n variant: 'solid',\n color: 'primary',\n size: 'md',\n loading: false,\n iconPosition: 'left',\n glow: false,\n pulse: false,\n ripple: true,\n active: false,\n};\n\n// Strips explicitly-undefined props before the merge, so `size={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: ButtonProps): Partial<ButtonProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<ButtonProps>;\n\nexport const resolveButtonProps = (props: ButtonProps): ResolvedButtonProps =>\n ({ ...BUTTON_DEFAULTS, ...definedProps(props) }) as ResolvedButtonProps;\n"],"mappings":";AAeA,IAAM,kBAA0D;AAAA,EAC9D,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AAAA,EACT,cAAc;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AACV;AAIA,IAAM,eAAe,CAAC,UACpB,OAAO;AAAA,EACL,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AACjE;AAEK,IAAM,qBAAqB,CAAC,WAChC,EAAE,GAAG,iBAAiB,GAAG,aAAa,KAAK,EAAE;","names":[]}
|
package/dist/chunk-C6AZDXEE.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
alertEmphasisStyles,
|
|
3
|
-
alertLayoutStyles,
|
|
4
|
-
alertVariantStyles,
|
|
5
|
-
fadeInScale,
|
|
6
|
-
getColorFromTheme,
|
|
7
|
-
getVariantIcon
|
|
8
|
-
} from "./chunk-5ERH4OIK.js";
|
|
9
|
-
|
|
10
|
-
// src/components/data-display/Alert/Alert.tsx
|
|
11
|
-
import Close from "@mui/icons-material/Close";
|
|
12
|
-
import MuiAlert from "@mui/material/Alert/index.js";
|
|
13
|
-
import AlertTitle from "@mui/material/AlertTitle/index.js";
|
|
14
|
-
import Box from "@mui/material/Box/index.js";
|
|
15
|
-
import Collapse from "@mui/material/Collapse/index.js";
|
|
16
|
-
import IconButton from "@mui/material/IconButton/index.js";
|
|
17
|
-
import { alpha, styled } from "@mui/material/styles/index.js";
|
|
18
|
-
import React from "react";
|
|
19
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
20
|
-
var StyledAlert = styled(MuiAlert, {
|
|
21
|
-
shouldForwardProp: (prop) => !["customVariant", "customColor", "glow", "pulse", "animate"].includes(prop)
|
|
22
|
-
})(({ theme, customVariant, customColor, glow, pulse, animate }) => {
|
|
23
|
-
const colorPalette = getColorFromTheme(theme, customColor || customVariant || "info");
|
|
24
|
-
return {
|
|
25
|
-
borderRadius: theme.spacing(1.5),
|
|
26
|
-
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
27
|
-
position: "relative",
|
|
28
|
-
overflow: "hidden",
|
|
29
|
-
animation: animate ? `${fadeInScale} 0.3s ease-out` : "none",
|
|
30
|
-
willChange: "transform, opacity",
|
|
31
|
-
...alertLayoutStyles(theme, colorPalette, animate),
|
|
32
|
-
// Hover effects
|
|
33
|
-
"&:hover": {
|
|
34
|
-
transform: "translateY(-3px) scale(1.01)",
|
|
35
|
-
boxShadow: `0 8px 20px ${alpha(colorPalette.main, 0.2)}`,
|
|
36
|
-
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
37
|
-
".MuiAlert-icon": {
|
|
38
|
-
transform: "scale(1.15) rotate(10deg)"
|
|
39
|
-
},
|
|
40
|
-
"&::before": {
|
|
41
|
-
opacity: 1
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
// Active state
|
|
45
|
-
"&:active": {
|
|
46
|
-
transform: "translateY(-1px) scale(0.99)",
|
|
47
|
-
transition: "transform 0.1s ease"
|
|
48
|
-
},
|
|
49
|
-
// Focus styles for accessibility
|
|
50
|
-
"&:focus-within": {
|
|
51
|
-
outline: `3px solid ${alpha(colorPalette.main, 0.5)}`,
|
|
52
|
-
outlineOffset: "3px",
|
|
53
|
-
boxShadow: `0 0 0 6px ${alpha(colorPalette.main, 0.1)}`,
|
|
54
|
-
transition: "all 0.2s ease"
|
|
55
|
-
},
|
|
56
|
-
...alertVariantStyles(theme, customVariant, colorPalette),
|
|
57
|
-
...alertEmphasisStyles(colorPalette, Boolean(glow), Boolean(pulse))
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
var ALERT_DEFAULTS = {
|
|
61
|
-
variant: "info",
|
|
62
|
-
glow: false,
|
|
63
|
-
pulse: false,
|
|
64
|
-
showIcon: true,
|
|
65
|
-
closable: false,
|
|
66
|
-
animate: true,
|
|
67
|
-
role: "alert",
|
|
68
|
-
"aria-atomic": "true",
|
|
69
|
-
"data-testid": "alert"
|
|
70
|
-
};
|
|
71
|
-
var definedProps = (props) => Object.fromEntries(
|
|
72
|
-
Object.entries(props).filter(([, value]) => value !== void 0)
|
|
73
|
-
);
|
|
74
|
-
var testIdFor = (base, suffix) => base ? `${base}-${suffix}` : `alert-${suffix}`;
|
|
75
|
-
var MUI_SEVERITY = {
|
|
76
|
-
danger: "error",
|
|
77
|
-
glass: "info",
|
|
78
|
-
gradient: "info"
|
|
79
|
-
};
|
|
80
|
-
var toMuiSeverity = (variant) => MUI_SEVERITY[variant] ?? variant;
|
|
81
|
-
var AlertContent = ({ title, description, dataTestId, children }) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
82
|
-
title && /* @__PURE__ */ jsx(
|
|
83
|
-
AlertTitle,
|
|
84
|
-
{
|
|
85
|
-
"data-testid": testIdFor(dataTestId, "title"),
|
|
86
|
-
sx: {
|
|
87
|
-
fontWeight: 600,
|
|
88
|
-
fontSize: "1.05rem",
|
|
89
|
-
marginBottom: description ? 0.5 : 0,
|
|
90
|
-
wordWrap: "break-word",
|
|
91
|
-
overflowWrap: "break-word",
|
|
92
|
-
wordBreak: "break-word"
|
|
93
|
-
},
|
|
94
|
-
children: title
|
|
95
|
-
}
|
|
96
|
-
),
|
|
97
|
-
description && /* @__PURE__ */ jsx(
|
|
98
|
-
Box,
|
|
99
|
-
{
|
|
100
|
-
component: "div",
|
|
101
|
-
"data-testid": testIdFor(dataTestId, "message"),
|
|
102
|
-
sx: {
|
|
103
|
-
opacity: 0.9,
|
|
104
|
-
fontSize: "0.925rem",
|
|
105
|
-
wordWrap: "break-word",
|
|
106
|
-
overflowWrap: "break-word",
|
|
107
|
-
wordBreak: "break-word"
|
|
108
|
-
},
|
|
109
|
-
children: description
|
|
110
|
-
}
|
|
111
|
-
),
|
|
112
|
-
children
|
|
113
|
-
] });
|
|
114
|
-
var AlertCloseButton = ({
|
|
115
|
-
dataTestId,
|
|
116
|
-
label,
|
|
117
|
-
onClose
|
|
118
|
-
}) => /* @__PURE__ */ jsx(
|
|
119
|
-
IconButton,
|
|
120
|
-
{
|
|
121
|
-
"data-testid": testIdFor(dataTestId, "close"),
|
|
122
|
-
"aria-label": label,
|
|
123
|
-
color: "inherit",
|
|
124
|
-
size: "small",
|
|
125
|
-
onClick: onClose,
|
|
126
|
-
sx: (theme) => ({
|
|
127
|
-
transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
128
|
-
opacity: 0.7,
|
|
129
|
-
"&:hover": {
|
|
130
|
-
transform: "rotate(90deg) scale(1.1)",
|
|
131
|
-
opacity: 1,
|
|
132
|
-
backgroundColor: alpha(theme.palette.action.hover, 0.1)
|
|
133
|
-
},
|
|
134
|
-
"&:focus": {
|
|
135
|
-
opacity: 1,
|
|
136
|
-
outline: "none",
|
|
137
|
-
backgroundColor: alpha(theme.palette.action.focus, 0.1)
|
|
138
|
-
}
|
|
139
|
-
}),
|
|
140
|
-
children: /* @__PURE__ */ jsx(Close, { fontSize: "inherit" })
|
|
141
|
-
}
|
|
142
|
-
);
|
|
143
|
-
function dismissButton(props, dataTestId, onClose) {
|
|
144
|
-
if (!props.closable) return null;
|
|
145
|
-
return /* @__PURE__ */ jsx(AlertCloseButton, { dataTestId, label: props.closeLabel, onClose });
|
|
146
|
-
}
|
|
147
|
-
var Alert = React.forwardRef(
|
|
148
|
-
(alertProps, ref) => {
|
|
149
|
-
const {
|
|
150
|
-
variant,
|
|
151
|
-
color,
|
|
152
|
-
glow,
|
|
153
|
-
pulse,
|
|
154
|
-
icon,
|
|
155
|
-
showIcon,
|
|
156
|
-
onClose,
|
|
157
|
-
title,
|
|
158
|
-
description,
|
|
159
|
-
children,
|
|
160
|
-
animate,
|
|
161
|
-
role,
|
|
162
|
-
"aria-atomic": ariaAtomic,
|
|
163
|
-
"data-testid": dataTestId,
|
|
164
|
-
...props
|
|
165
|
-
} = { ...ALERT_DEFAULTS, ...definedProps(alertProps) };
|
|
166
|
-
const ariaLive = alertProps["aria-live"] ?? (variant === "danger" ? "assertive" : "polite");
|
|
167
|
-
const [open, setOpen] = React.useState(true);
|
|
168
|
-
const [isClosing, setIsClosing] = React.useState(false);
|
|
169
|
-
const handleClose = () => {
|
|
170
|
-
setIsClosing(true);
|
|
171
|
-
window.setTimeout(() => {
|
|
172
|
-
setOpen(false);
|
|
173
|
-
onClose?.();
|
|
174
|
-
}, 200);
|
|
175
|
-
};
|
|
176
|
-
const severity = toMuiSeverity(variant);
|
|
177
|
-
const displayIcon = showIcon ? /* @__PURE__ */ jsx(Box, { component: "span", "data-testid": testIdFor(dataTestId, "icon"), children: icon || getVariantIcon(variant) }) : false;
|
|
178
|
-
const content = /* @__PURE__ */ jsx(AlertContent, { title, description, dataTestId, children });
|
|
179
|
-
return /* @__PURE__ */ jsx(Collapse, { in: open && !isClosing, timeout: 300, children: /* @__PURE__ */ jsx(
|
|
180
|
-
StyledAlert,
|
|
181
|
-
{
|
|
182
|
-
ref,
|
|
183
|
-
"data-testid": dataTestId || "alert",
|
|
184
|
-
severity,
|
|
185
|
-
customVariant: variant,
|
|
186
|
-
customColor: color,
|
|
187
|
-
glow,
|
|
188
|
-
pulse,
|
|
189
|
-
animate,
|
|
190
|
-
icon: displayIcon,
|
|
191
|
-
role,
|
|
192
|
-
"aria-live": ariaLive,
|
|
193
|
-
"aria-atomic": ariaAtomic,
|
|
194
|
-
tabIndex: 0,
|
|
195
|
-
action: dismissButton(alertProps, dataTestId, handleClose),
|
|
196
|
-
...props,
|
|
197
|
-
children: content
|
|
198
|
-
}
|
|
199
|
-
) });
|
|
200
|
-
}
|
|
201
|
-
);
|
|
202
|
-
Alert.displayName = "Alert";
|
|
203
|
-
|
|
204
|
-
export {
|
|
205
|
-
Alert
|
|
206
|
-
};
|
|
207
|
-
//# sourceMappingURL=chunk-C6AZDXEE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Alert/Alert.tsx"],"sourcesContent":["import Close from '@mui/icons-material/Close';\nimport MuiAlert from '@mui/material/Alert/index.js';\nimport AlertTitle from '@mui/material/AlertTitle/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport {\n alertEmphasisStyles,\n alertLayoutStyles,\n alertVariantStyles,\n fadeInScale,\n getColorFromTheme,\n getVariantIcon } from './Alert.styles';\nimport type { AlertColor } from '@mui/material/Alert/index.js';\nimport type { AlertProps } from './Alert.types';\n\n// Define animations\nconst StyledAlert = styled(MuiAlert, {\n shouldForwardProp: (prop) =>\n !['customVariant', 'customColor', 'glow', 'pulse', 'animate'].includes(prop as string) })<{\n customVariant?: string;\n customColor?: string;\n glow?: boolean;\n pulse?: boolean;\n animate?: boolean;\n}>(({ theme, customVariant, customColor, glow, pulse, animate }) => {\n const colorPalette = getColorFromTheme(theme, customColor || customVariant || 'info');\n\n return {\n borderRadius: theme.spacing(1.5),\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n position: 'relative',\n overflow: 'hidden',\n animation: animate ? `${fadeInScale} 0.3s ease-out` : 'none',\n willChange: 'transform, opacity',\n\n ...alertLayoutStyles(theme, colorPalette, animate),\n\n // Hover effects\n '&:hover': {\n transform: 'translateY(-3px) scale(1.01)',\n boxShadow: `0 8px 20px ${alpha(colorPalette.main, 0.2)}`,\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n\n '.MuiAlert-icon': {\n transform: 'scale(1.15) rotate(10deg)' },\n\n '&::before': {\n opacity: 1 } },\n\n // Active state\n '&:active': {\n transform: 'translateY(-1px) scale(0.99)',\n transition: 'transform 0.1s ease' },\n\n // Focus styles for accessibility\n '&:focus-within': {\n outline: `3px solid ${alpha(colorPalette.main, 0.5)}`,\n outlineOffset: '3px',\n boxShadow: `0 0 0 6px ${alpha(colorPalette.main, 0.1)}`,\n transition: 'all 0.2s ease' },\n\n ...alertVariantStyles(theme, customVariant, colorPalette),\n ...alertEmphasisStyles(colorPalette, Boolean(glow), Boolean(pulse)) };\n});\n\nconst ALERT_DEFAULTS = {\n variant: 'info',\n glow: false,\n pulse: false,\n showIcon: true,\n closable: false,\n animate: true,\n role: 'alert',\n 'aria-atomic': 'true',\n 'data-testid': 'alert' } satisfies Partial<AlertProps>;\n\n// Strips explicitly-undefined props before the merge so `prop={undefined}` still\n// falls back to the default, the way a destructuring default would.\nconst definedProps = (props: AlertProps): Partial<AlertProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<AlertProps>;\n\nconst testIdFor = (base: string | undefined, suffix: string) =>\n base ? `${base}-${suffix}` : `alert-${suffix}`;\n\n// glass and gradient are our own looks with no MUI severity of their own; both\n// borrow info's. danger is MUI's error.\nconst MUI_SEVERITY: Record<string, AlertColor> = {\n danger: 'error',\n glass: 'info',\n gradient: 'info' };\n\nconst toMuiSeverity = (variant: string): AlertColor =>\n MUI_SEVERITY[variant] ?? (variant as AlertColor);\n\nconst AlertContent: React.FC<{\n title?: AlertProps['title'];\n description?: AlertProps['description'];\n dataTestId?: string;\n children?: React.ReactNode;\n}> = ({ title, description, dataTestId, children }) => (\n <>\n {title && (\n <AlertTitle\n data-testid={testIdFor(dataTestId, 'title')}\n sx={{\n fontWeight: 600,\n fontSize: '1.05rem',\n marginBottom: description ? 0.5 : 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n wordBreak: 'break-word' }}\n >\n {title}\n </AlertTitle>\n )}\n {description && (\n <Box\n component=\"div\"\n data-testid={testIdFor(dataTestId, 'message')}\n sx={{\n opacity: 0.9,\n fontSize: '0.925rem',\n wordWrap: 'break-word',\n overflowWrap: 'break-word',\n wordBreak: 'break-word' }}\n >\n {description}\n </Box>\n )}\n {children}\n </>\n);\n\nconst AlertCloseButton: React.FC<{ dataTestId?: string; label: string; onClose: () => void }> = ({\n dataTestId,\n label,\n onClose }) => (\n <IconButton\n data-testid={testIdFor(dataTestId, 'close')}\n aria-label={label}\n color=\"inherit\"\n size=\"small\"\n onClick={onClose}\n sx={(theme) => ({\n transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)',\n opacity: 0.7,\n '&:hover': {\n transform: 'rotate(90deg) scale(1.1)',\n opacity: 1,\n backgroundColor: alpha(theme.palette.action.hover, 0.1) },\n '&:focus': {\n opacity: 1,\n outline: 'none',\n backgroundColor: alpha(theme.palette.action.focus, 0.1) } })}\n >\n <Close fontSize=\"inherit\" />\n </IconButton>\n);\n\n/**\n * The dismiss button, or nothing.\n *\n * Reads `closeLabel` straight off the props rather than through the\n * `definedProps` merge, which would widen it to `string | undefined` and hand\n * the button an empty name. The UNION in `AlertProps` guarantees the label\n * wherever `closable` is true — that narrowing is gone inside the component,\n * which is why the fallback below exists and why it is unreachable.\n */\nfunction dismissButton(\n props: AlertProps,\n dataTestId: string | undefined,\n onClose: () => void,\n): React.JSX.Element | null {\n if (!props.closable) return null;\n return <AlertCloseButton dataTestId={dataTestId} label={props.closeLabel} onClose={onClose} />;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n alertProps,\n ref,\n ) => {\n const {\n variant,\n color,\n glow,\n pulse,\n icon,\n showIcon,\n onClose,\n title,\n description,\n children,\n animate,\n role,\n 'aria-atomic': ariaAtomic,\n 'data-testid': dataTestId,\n ...props\n } = { ...ALERT_DEFAULTS, ...definedProps(alertProps) };\n\n // Depends on `variant`, so it cannot live in the static defaults above.\n const ariaLive = alertProps['aria-live'] ?? (variant === 'danger' ? 'assertive' : 'polite');\n const [open, setOpen] = React.useState(true);\n const [isClosing, setIsClosing] = React.useState(false);\n\n const handleClose = () => {\n setIsClosing(true);\n window.setTimeout(() => {\n setOpen(false);\n onClose?.();\n }, 200);\n };\n\n const severity = toMuiSeverity(variant);\n\n const displayIcon = showIcon ? (\n <Box component=\"span\" data-testid={testIdFor(dataTestId, 'icon')}>\n {icon || getVariantIcon(variant)}\n </Box>\n ) : false;\n\n const content = (\n <AlertContent title={title} description={description} dataTestId={dataTestId}>\n {children}\n </AlertContent>\n );\n\n return (\n <Collapse in={open && !isClosing} timeout={300}>\n <StyledAlert\n ref={ref}\n data-testid={dataTestId || 'alert'}\n severity={severity}\n customVariant={variant}\n customColor={color}\n glow={glow}\n pulse={pulse}\n animate={animate}\n icon={displayIcon}\n role={role}\n aria-live={ariaLive}\n aria-atomic={ariaAtomic}\n tabIndex={0}\n action={dismissButton(alertProps, dataTestId, handleClose)}\n {...props}\n >\n {content}\n </StyledAlert>\n </Collapse>\n );\n },\n);\n\nAlert.displayName = 'Alert';\n"],"mappings":"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","names":[]}
|
package/dist/chunk-DTO7GKLA.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
// src/components/layout/Spacer/Spacer.tsx
|
|
2
|
-
import Box from "@mui/material/Box/index.js";
|
|
3
|
-
import { useTheme } from "@mui/material/styles/index.js";
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
var Spacer = ({
|
|
6
|
-
size = "md",
|
|
7
|
-
direction = "both",
|
|
8
|
-
width,
|
|
9
|
-
height,
|
|
10
|
-
flex = false,
|
|
11
|
-
className,
|
|
12
|
-
"data-testid": dataTestId
|
|
13
|
-
}) => {
|
|
14
|
-
const theme = useTheme();
|
|
15
|
-
const getSpacing = () => {
|
|
16
|
-
switch (size) {
|
|
17
|
-
case "xs":
|
|
18
|
-
return theme.spacing(0.5);
|
|
19
|
-
case "sm":
|
|
20
|
-
return theme.spacing(1);
|
|
21
|
-
case "md":
|
|
22
|
-
return theme.spacing(2);
|
|
23
|
-
case "lg":
|
|
24
|
-
return theme.spacing(3);
|
|
25
|
-
case "xl":
|
|
26
|
-
return theme.spacing(4);
|
|
27
|
-
default:
|
|
28
|
-
return theme.spacing(2);
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
const getDimensions = () => {
|
|
32
|
-
const spacing = getSpacing();
|
|
33
|
-
let finalWidth = width;
|
|
34
|
-
let finalHeight = height;
|
|
35
|
-
if (direction === "horizontal" || direction === "both") {
|
|
36
|
-
finalWidth = width ?? spacing;
|
|
37
|
-
}
|
|
38
|
-
if (direction === "vertical" || direction === "both") {
|
|
39
|
-
finalHeight = height ?? spacing;
|
|
40
|
-
}
|
|
41
|
-
return { width: finalWidth, height: finalHeight };
|
|
42
|
-
};
|
|
43
|
-
const dimensions = getDimensions();
|
|
44
|
-
return /* @__PURE__ */ jsx(
|
|
45
|
-
Box,
|
|
46
|
-
{
|
|
47
|
-
className,
|
|
48
|
-
"data-testid": dataTestId,
|
|
49
|
-
sx: {
|
|
50
|
-
width: dimensions.width,
|
|
51
|
-
height: dimensions.height,
|
|
52
|
-
flex: flex ? 1 : void 0,
|
|
53
|
-
flexShrink: 0,
|
|
54
|
-
pointerEvents: "none",
|
|
55
|
-
userSelect: "none"
|
|
56
|
-
},
|
|
57
|
-
"aria-hidden": "true"
|
|
58
|
-
}
|
|
59
|
-
);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export {
|
|
63
|
-
Spacer
|
|
64
|
-
};
|
|
65
|
-
//# sourceMappingURL=chunk-DTO7GKLA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/Spacer/Spacer.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { SpacerProps } from './Spacer.types';\n\nexport const Spacer: React.FC<SpacerProps> = ({\n size = 'md',\n direction = 'both',\n width,\n height,\n flex = false,\n className,\n 'data-testid': dataTestId,\n}) => {\n const theme = useTheme();\n\n const getSpacing = () => {\n switch (size) {\n case 'xs':\n return theme.spacing(0.5);\n case 'sm':\n return theme.spacing(1);\n case 'md':\n return theme.spacing(2);\n case 'lg':\n return theme.spacing(3);\n case 'xl':\n return theme.spacing(4);\n default:\n return theme.spacing(2);\n }\n };\n\n const getDimensions = () => {\n const spacing = getSpacing();\n\n let finalWidth = width;\n let finalHeight = height;\n\n if (direction === 'horizontal' || direction === 'both') {\n finalWidth = width ?? spacing;\n }\n\n if (direction === 'vertical' || direction === 'both') {\n finalHeight = height ?? spacing;\n }\n\n return { width: finalWidth, height: finalHeight };\n };\n\n const dimensions = getDimensions();\n\n return (\n <Box\n className={className}\n data-testid={dataTestId}\n sx={{\n width: dimensions.width,\n height: dimensions.height,\n flex: flex ? 1 : undefined,\n flexShrink: 0,\n pointerEvents: 'none',\n userSelect: 'none',\n }}\n aria-hidden=\"true\"\n />\n );\n};\n"],"mappings":";AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AAqDrB;AAhDG,IAAM,SAAgC,CAAC;AAAA,EAC5C,OAAO;AAAA,EACP,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,eAAe;AACjB,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,QAAM,aAAa,MAAM;AACvB,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,eAAO,MAAM,QAAQ,GAAG;AAAA,MAC1B,KAAK;AACH,eAAO,MAAM,QAAQ,CAAC;AAAA,MACxB,KAAK;AACH,eAAO,MAAM,QAAQ,CAAC;AAAA,MACxB,KAAK;AACH,eAAO,MAAM,QAAQ,CAAC;AAAA,MACxB,KAAK;AACH,eAAO,MAAM,QAAQ,CAAC;AAAA,MACxB;AACE,eAAO,MAAM,QAAQ,CAAC;AAAA,IAC1B;AAAA,EACF;AAEA,QAAM,gBAAgB,MAAM;AAC1B,UAAM,UAAU,WAAW;AAE3B,QAAI,aAAa;AACjB,QAAI,cAAc;AAElB,QAAI,cAAc,gBAAgB,cAAc,QAAQ;AACtD,mBAAa,SAAS;AAAA,IACxB;AAEA,QAAI,cAAc,cAAc,cAAc,QAAQ;AACpD,oBAAc,UAAU;AAAA,IAC1B;AAEA,WAAO,EAAE,OAAO,YAAY,QAAQ,YAAY;AAAA,EAClD;AAEA,QAAM,aAAa,cAAc;AAEjC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA,QACF,OAAO,WAAW;AAAA,QAClB,QAAQ,WAAW;AAAA,QACnB,MAAM,OAAO,IAAI;AAAA,QACjB,YAAY;AAAA,QACZ,eAAe;AAAA,QACf,YAAY;AAAA,MACd;AAAA,MACA,eAAY;AAAA;AAAA,EACd;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/ErrorState/ErrorState.tsx"],"sourcesContent":["import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport WarningAmberIcon from '@mui/icons-material/WarningAmber';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { ErrorStateProps, ErrorStateSeverity } from './ErrorState.types';\n\nconst makeTestId =\n (dataTestId?: string) =>\n (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `error-state-${suffix}`;\n\nconst paletteFor = (theme: Theme, severity: ErrorStateSeverity) =>\n severity === 'error' ? theme.palette.error : theme.palette.warning;\n\nconst ErrorIcon: React.FC<{\n severity: ErrorStateSeverity;\n icon?: React.ReactNode;\n testId: string;\n}> = ({ severity, icon, testId }) => {\n const theme = useTheme();\n const color = paletteFor(theme, severity);\n const Fallback = severity === 'error' ? ErrorOutlineIcon : WarningAmberIcon;\n\n return (\n <Box\n data-testid={testId}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 80,\n height: 80,\n borderRadius: '50%',\n backgroundColor: color.light,\n opacity: 0.9,\n }}\n >\n {icon || <Fallback sx={{ fontSize: 48, color: color.main }} />}\n </Box>\n );\n};\n\nconst ErrorText: React.FC<{\n title?: string;\n message: string;\n titleId: string;\n testId: (suffix: string) => string;\n}> = ({ title, message, titleId, testId }) => {\n const theme = useTheme();\n\n return (\n <Stack spacing={1} alignItems=\"center\">\n {title && (\n <Typography\n id={titleId}\n variant=\"h6\"\n component=\"h3\"\n data-testid={testId('title')}\n sx={{\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.palette.text.primary,\n }}\n >\n {title}\n </Typography>\n )}\n\n <Typography\n id={`${titleId}-message`}\n variant=\"body2\"\n color=\"text.secondary\"\n data-testid={testId('message')}\n sx={{\n maxWidth: 400,\n lineHeight: 1.6,\n }}\n >\n {message}\n </Typography>\n </Stack>\n );\n};\n\nexport const ErrorState: React.FC<ErrorStateProps> = React.memo(\n ({\n message,\n title,\n onRetry,\n retryLabel = 'Retry',\n severity = 'error',\n icon,\n className,\n dataTestId,\n }) => {\n const theme = useTheme();\n const titleId = React.useId();\n const testId = makeTestId(dataTestId);\n\n return (\n <Box\n role=\"alert\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={`${titleId}-message`}\n className={className}\n data-testid={dataTestId || 'error-state'}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n padding: theme.spacing(6),\n minHeight: 200,\n gap: theme.spacing(2),\n }}\n >\n <ErrorIcon severity={severity} icon={icon} testId={testId('icon')} />\n\n <ErrorText title={title} message={message} titleId={titleId} testId={testId} />\n\n {onRetry && (\n <Button\n variant=\"outlined\"\n color={severity}\n onClick={onRetry}\n startIcon={<RefreshIcon />}\n data-testid={testId('retry-button')}\n sx={{\n mt: theme.spacing(1),\n minWidth: 120,\n }}\n >\n {retryLabel}\n </Button>\n )}\n </Box>\n );\n },\n);\n\nErrorState.displayName = 'ErrorState';\n\nexport default ErrorState;\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/typography/Heading/Heading.tsx"],"sourcesContent":["import { styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { headingSx } from './Heading.styles';\nimport type { HeadingFlags } from './Heading.styles';\nimport type { HeadingProps } from './Heading.types';\n\nconst styledHeading = () =>\n styled('h1', {\n shouldForwardProp: (prop) =>\n !['customSize', 'customColor', 'customWeight', 'gradient'].includes(prop as string),\n })<HeadingFlags>(({ theme, ...flags }) => ({ ...headingSx(theme, flags) }));\n\n/**\n * One styled component per tag. They share a style function but must be\n * separate components, since `withComponent` fixes the element at definition\n * time — a single component switching tags per render would remount the text.\n */\nconst STYLED_BY_TAG = {\n h1: styledHeading().withComponent('h1'),\n h2: styledHeading().withComponent('h2'),\n h3: styledHeading().withComponent('h3'),\n h4: styledHeading().withComponent('h4'),\n h5: styledHeading().withComponent('h5'),\n h6: styledHeading().withComponent('h6'),\n} as const;\n\n/**\n * Which tag each level renders. `display` is a size, not a rank, so it uses the\n * h1 element — the document still gets one level-one heading rather than an\n * unnamed tag outside the outline.\n */\nconst TAG_FOR_LEVEL: Record<string, keyof typeof STYLED_BY_TAG> = {\n display: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n};\n\n/**\n * The rank and the size were ALREADY independent in here — `TAG_FOR_LEVEL[level]`\n * and `customLevel={level}` are two separate derivations from one prop. The\n * component just never let a caller set them apart, so anyone who needed an\n * `h1` at a smaller size had to reach around the component and restyle it.\n * `size` is that seam, exposed: it defaults to `level`, so nothing that exists\n * renders differently.\n */\nexport const Heading = React.forwardRef<globalThis.HTMLHeadingElement, HeadingProps>(\n (\n { level = 'h2', size, color = 'neutral', weight = 'bold', gradient = false, children, ...props },\n ref,\n ) => {\n const Styled = STYLED_BY_TAG[TAG_FOR_LEVEL[level] ?? 'h2'];\n\n return (\n <Styled\n ref={ref}\n customSize={size ?? level}\n customColor={color}\n customWeight={weight}\n gradient={gradient}\n {...props}\n >\n {children}\n </Styled>\n );\n },\n);\n\nHeading.displayName = 'Heading';\n"],"mappings":";;;;;AAAA,SAAS,cAAc;AACvB,OAAO,WAAW;AAyDZ;AAnDN,IAAM,gBAAgB,MACpB,OAAO,MAAM;AAAA,EACX,mBAAmB,CAAC,SAClB,CAAC,CAAC,cAAc,eAAe,gBAAgB,UAAU,EAAE,SAAS,IAAc;AACtF,CAAC,EAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO,EAAE,GAAG,UAAU,OAAO,KAAK,EAAE,EAAE;AAO5E,IAAM,gBAAgB;AAAA,EACpB,IAAI,cAAc,EAAE,cAAc,IAAI;AAAA,EACtC,IAAI,cAAc,EAAE,cAAc,IAAI;AAAA,EACtC,IAAI,cAAc,EAAE,cAAc,IAAI;AAAA,EACtC,IAAI,cAAc,EAAE,cAAc,IAAI;AAAA,EACtC,IAAI,cAAc,EAAE,cAAc,IAAI;AAAA,EACtC,IAAI,cAAc,EAAE,cAAc,IAAI;AACxC;AAOA,IAAM,gBAA4D;AAAA,EAChE,SAAS;AAAA,EACT,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAUO,IAAM,UAAU,MAAM;AAAA,EAC3B,CACE,EAAE,QAAQ,MAAM,MAAM,QAAQ,WAAW,SAAS,QAAQ,WAAW,OAAO,UAAU,GAAG,MAAM,GAC/F,QACG;AACH,UAAM,SAAS,cAAc,cAAc,KAAK,KAAK,IAAI;AAEzD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,YAAY,QAAQ;AAAA,QACpB,aAAa;AAAA,QACb,cAAc;AAAA,QACd;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,QAAQ,cAAc;","names":[]}
|
package/dist/chunk-I6PZVHIT.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// src/tokens/scales.ts
|
|
2
|
-
var SIZE_VALUES = ["xs", "sm", "md", "lg", "xl"];
|
|
3
|
-
var COLOR_VALUES = [
|
|
4
|
-
"primary",
|
|
5
|
-
"secondary",
|
|
6
|
-
"success",
|
|
7
|
-
"warning",
|
|
8
|
-
"info",
|
|
9
|
-
"danger",
|
|
10
|
-
"neutral"
|
|
11
|
-
];
|
|
12
|
-
var muiSize = (size) => {
|
|
13
|
-
if (size === "xs" || size === "sm") return "small";
|
|
14
|
-
return size === "md" ? "medium" : "large";
|
|
15
|
-
};
|
|
16
|
-
function muiColor(color, neutralAs) {
|
|
17
|
-
if (color === "danger") return "error";
|
|
18
|
-
return color === "neutral" ? neutralAs : color;
|
|
19
|
-
}
|
|
20
|
-
var paletteKey = (color) => color === "danger" ? "error" : color === "neutral" ? "grey" : color;
|
|
21
|
-
function accentFor(theme, color) {
|
|
22
|
-
if (color === "neutral") {
|
|
23
|
-
const grey = theme.palette.grey;
|
|
24
|
-
return {
|
|
25
|
-
// Explicit fallbacks: the ramp is indexed, and under
|
|
26
|
-
// `noUncheckedIndexedAccess` every stop is `string | undefined`.
|
|
27
|
-
main: grey[600] ?? "#757575",
|
|
28
|
-
light: grey[400] ?? "#bdbdbd",
|
|
29
|
-
dark: grey[800] ?? "#424242",
|
|
30
|
-
// Grey 600 carries white text in both themes.
|
|
31
|
-
contrastText: "#fff"
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
const key = color === "danger" ? "error" : color;
|
|
35
|
-
return theme.palette[key];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export {
|
|
39
|
-
SIZE_VALUES,
|
|
40
|
-
COLOR_VALUES,
|
|
41
|
-
muiSize,
|
|
42
|
-
muiColor,
|
|
43
|
-
paletteKey,
|
|
44
|
-
accentFor
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=chunk-I6PZVHIT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tokens/scales.ts"],"sourcesContent":["import type { Theme } from '@mui/material/styles/index.js';\n\n/**\n * THE TWO VOCABULARIES EVERY COMPONENT SPEAKS.\n *\n * Before this file the package had both halves of every argument at once: 26\n * components sized themselves `xs|sm|md|lg|xl` and four used MUI's\n * `small|medium|large`; 14 coloured themselves `danger|neutral` and 15 used\n * MUI's `error`. Nothing enforced either, because most of these props were\n * spelled out as inline unions and a couple were plain `string`.\n *\n * That is not a tidiness problem. A caller learns the vocabulary from whichever\n * component they used first, and the wrong half is not rejected — it reaches MUI\n * as an unknown value and silently falls back. `Chip` shipped with `color?:\n * string` and MUI's `small|medium`, so `color=\"danger\"` rendered grey and\n * `size=\"sm\"` rendered medium; twelve live call sites were doing exactly that,\n * and every test passed because they all asserted on text.\n *\n * So the vocabulary is declared once, here, and components derive from it.\n *\n * DERIVE, DON'T COPY — AND TAKE THE WHOLE VOCABULARY. Every size prop is\n * `SizeValue` and every colour prop is `ColorValue`, with no `Extract` and no\n * `Exclude`. Handing a component a slice was tried and undone: it is the same\n * fragmentation wearing the canonical type's name, and it leaves a caller having\n * to remember which components accept `xs` and which accept `info`. Where the\n * underlying widget draws fewer steps than five, that is a rendering detail and\n * belongs at the MUI boundary below — not in the prop's type.\n *\n * A component whose size or colour is not this concept at all keeps its own type\n * — `Scrollbar`'s `thin|medium|thick` is a track width, `Sheet`'s `full` is a\n * viewport fraction, `LazyImage`'s size is pixels. Forcing those into the scale\n * would be consistency for its own sake.\n */\n\n/**\n * The house size scale.\n *\n * Abbreviated, because that is what 26 of the 30 components with a real size\n * already used and what every caller has been taught to write.\n *\n * Declared as the array and the type together so the two cannot disagree. The\n * runtime list is what Storybook `argTypes.options` and the demo grids iterate;\n * spelled by hand in each story it drifts, and it had — twelve colour lists\n * omitted `info`, so the control that documents the vocabulary offered a\n * component less than the component accepted.\n */\n/**\n * The type scale is the THIRD vocabulary, and it lives in `./typography.ts`\n * because it is metrics rather than a prop union. Re-exported here so\n * `@12-apps/ui/tokens` stays the one import path for \"what words does this\n * package speak\" — a second entry point is how a vocabulary gets missed.\n */\nexport {\n HEADING_LEVELS,\n HEADING_SCALE,\n headingMetrics,\n type HeadingLevel,\n type HeadingMetrics,\n type HeadingScaleOverrides,\n} from './typography';\n\nexport type SizeValue = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport const SIZE_VALUES = ['xs', 'sm', 'md', 'lg', 'xl'] as const satisfies readonly SizeValue[];\n\n/**\n * The house colour vocabulary.\n *\n * `danger` and `neutral` are OURS; the rest are MUI's own names already. That\n * sentence started life in `Button.tsx`, which is the component most callers\n * meet first and therefore the one that taught the vocabulary — so it is the one\n * the rest of the package follows.\n *\n * Components that hand these to MUI translate at the boundary (`danger` →\n * `error`, `neutral` → `default` or `inherit` depending on what the underlying\n * component calls its unaccented state). The translation must be a real mapping\n * and never a cast: a cast is precisely what let `danger` through untouched and\n * had MUI fall back to grey.\n *\n * Array and type declared together, for the reason given on {@link SIZE_VALUES}.\n */\nexport type ColorValue =\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'info'\n | 'danger'\n | 'neutral';\n\nexport const COLOR_VALUES = [\n 'primary',\n 'secondary',\n 'success',\n 'warning',\n 'info',\n 'danger',\n 'neutral',\n] as const satisfies readonly ColorValue[];\n\n/* ── Array and union, pinned to each other ────────────────────────────────── */\n\n/**\n * The arrays above are written out rather than derived, because deriving the\n * union from the array (`(typeof COLOR_VALUES)[number]`) costs the alias its\n * name: TypeScript resolves the indexed access eagerly, and every error in the\n * package stops saying `not assignable to type 'ColorValue'` and starts dumping\n * seven string literals. In a package whose entire purpose is teaching this\n * vocabulary, the name in the error message is worth keeping.\n *\n * Writing both means they could disagree, so both directions are checked here.\n * `satisfies` above catches an entry that is not a member. These catch the other\n * half — a member missing from the array — which `satisfies` cannot see and\n * which is the direction that actually bit: twelve story control lists offered\n * six colours for a vocabulary of seven, so `info` was undocumented everywhere.\n *\n * A gap makes the assignment below fail, and the error names the missing member.\n */\ntype Missing<Union extends string, Listed extends string> = Exclude<Union, Listed>;\n\nconst _allSizesListed: Missing<SizeValue, (typeof SIZE_VALUES)[number]> extends never\n ? true\n : never = true;\n\nconst _allColorsListed: Missing<ColorValue, (typeof COLOR_VALUES)[number]> extends never\n ? true\n : never = true;\n\nvoid _allSizesListed;\nvoid _allColorsListed;\n\n/* ── The MUI boundary ─────────────────────────────────────────────────────── */\n\n/** What MUI calls a size. Three entries against our five. */\nexport type MuiSize = 'small' | 'medium' | 'large';\n\n/**\n * The house scale collapsed onto MUI's three.\n *\n * Five onto three loses information, and it loses it at the ends on purpose:\n * `xs`/`sm` both draw small and `lg`/`xl` both draw large, because MUI has no\n * fourth and fifth step to give them. A component that genuinely needs five\n * distinct sizes styles them itself rather than routing through here — this is\n * for the ones that just forward the prop.\n */\nexport const muiSize = (size: SizeValue): MuiSize => {\n if (size === 'xs' || size === 'sm') return 'small';\n return size === 'md' ? 'medium' : 'large';\n};\n\n/** What MUI calls a semantic colour on most components. */\nexport type MuiColor = 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'error';\n\n/**\n * The house vocabulary translated for MUI, with the caller naming its neutral.\n *\n * `neutral` is the awkward one: MUI spells the unaccented state `default` on a\n * chip, `inherit` on a button and an icon button, and `grey` in the palette. So\n * the caller passes the word its own MUI component uses rather than this\n * pretending there is one answer.\n *\n * A MAPPING, NEVER A CAST. The cast is what let `danger` reach MUI untouched and\n * silently fall back to grey.\n */\nexport function muiColor<N extends string>(color: ColorValue, neutralAs: N): MuiColor | N {\n if (color === 'danger') return 'error';\n return color === 'neutral' ? neutralAs : color;\n}\n\n/**\n * The house vocabulary as a `theme.palette` key.\n *\n * Separate from {@link muiColor} because the palette has no `default` and no\n * `inherit` — an unaccented colour there is `grey`.\n */\nexport type PaletteKey = MuiColor | 'grey';\n\nexport const paletteKey = (color: ColorValue): PaletteKey =>\n color === 'danger' ? 'error' : color === 'neutral' ? 'grey' : color;\n\n/**\n * A `ColorValue` resolved to a four-stop accent from the theme.\n *\n * `paletteKey` is not enough on its own for anything that reads `.main`: MUI's\n * palette has no neutral `PaletteColor`, and `palette.grey` is a 50–900 ramp\n * with no `main`, `light`, `dark` or `contrastText` on it at all. So `neutral`\n * is resolved from the ramp here, once, instead of every component discovering\n * the same hole and branching around it.\n *\n * Typed against the theme structurally so this file does not drag in MUI's\n * `Theme` and become a dependency of everything that imports a token.\n */\nexport interface Accent {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\n\nexport function accentFor(theme: Theme, color: ColorValue): Accent {\n if (color === 'neutral') {\n const grey = theme.palette.grey;\n return {\n // Explicit fallbacks: the ramp is indexed, and under\n // `noUncheckedIndexedAccess` every stop is `string | undefined`.\n main: grey[600] ?? '#757575',\n light: grey[400] ?? '#bdbdbd',\n dark: grey[800] ?? '#424242',\n // Grey 600 carries white text in both themes.\n contrastText: '#fff',\n };\n }\n // Past the `neutral` return, `paletteKey` can only produce a `MuiColor` — but\n // its signature still admits `'grey'`, and TS cannot narrow a return type by\n // the argument. Naming the key here keeps the accent branch honestly typed\n // instead of casting the hole shut.\n const key: MuiColor = color === 'danger' ? 'error' : color;\n return theme.palette[key];\n}\n"],"mappings":";AA+DO,IAAM,cAAc,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AA2BjD,IAAM,eAAe;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AA+CO,IAAM,UAAU,CAAC,SAA6B;AACnD,MAAI,SAAS,QAAQ,SAAS,KAAM,QAAO;AAC3C,SAAO,SAAS,OAAO,WAAW;AACpC;AAgBO,SAAS,SAA2B,OAAmB,WAA4B;AACxF,MAAI,UAAU,SAAU,QAAO;AAC/B,SAAO,UAAU,YAAY,YAAY;AAC3C;AAUO,IAAM,aAAa,CAAC,UACzB,UAAU,WAAW,UAAU,UAAU,YAAY,SAAS;AAqBzD,SAAS,UAAU,OAAc,OAA2B;AACjE,MAAI,UAAU,WAAW;AACvB,UAAM,OAAO,MAAM,QAAQ;AAC3B,WAAO;AAAA;AAAA;AAAA,MAGL,MAAM,KAAK,GAAG,KAAK;AAAA,MACnB,OAAO,KAAK,GAAG,KAAK;AAAA,MACpB,MAAM,KAAK,GAAG,KAAK;AAAA;AAAA,MAEnB,cAAc;AAAA,IAChB;AAAA,EACF;AAKA,QAAM,MAAgB,UAAU,WAAW,UAAU;AACrD,SAAO,MAAM,QAAQ,GAAG;AAC1B;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Button/Button.tsx"],"sourcesContent":["import MuiButton from '@mui/material/Button/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport * as React from 'react';\n\nimport { resolveButtonProps } from './Button.helpers';\nimport {\n buttonEmphasisStyles,\n buttonVariantStyles,\n getColorFromTheme,\n iconAlignmentStyles,\n buttonSize,\n} from './Button.styles';\nimport type { ButtonProps } from './Button.types';\n\nconst StyledButton = styled(MuiButton, {\n shouldForwardProp: (prop) =>\n ['glow', 'pulse', 'loading', 'customVariant', 'customColor', 'ripple'].indexOf(\n prop as string,\n ) === -1,\n})<{\n customVariant?: string;\n customColor?: string;\n glow?: boolean;\n pulse?: boolean;\n ripple?: boolean;\n}>(({ theme, customVariant, customColor = 'primary', glow, pulse }) => {\n const colorPalette = getColorFromTheme(theme, customColor);\n\n return {\n textTransform: 'none',\n fontWeight: 500,\n borderRadius: theme.spacing(1),\n transition: 'all 0.3s ease',\n position: 'relative',\n overflow: 'hidden',\n ...iconAlignmentStyles(theme),\n ...buttonVariantStyles(theme, customVariant, colorPalette, customColor),\n ...buttonEmphasisStyles(colorPalette, glow, pulse),\n };\n});\n\n/** Our six variants collapse onto MUI's three; only outline and text differ. */\nconst muiVariantFor = (variant?: string): 'outlined' | 'text' | 'contained' => {\n if (variant === 'outline') return 'outlined';\n return variant === 'text' ? 'text' : 'contained';\n};\n\ntype MuiButtonColor = 'inherit' | 'primary' | 'secondary' | 'success' | 'warning' | 'info' | 'error';\n\n/** `danger` and `neutral` are ours; the rest are MUI's own names already. */\nconst muiColorFor = (color: NonNullable<ButtonProps['color']>): MuiButtonColor => {\n if (color === 'danger') return 'error';\n return color === 'neutral' ? 'inherit' : color;\n};\n\n/**\n * An icon and nothing else — the shape that should render square.\n *\n * A separate predicate rather than three clauses inline: the component function\n * is already at the complexity ceiling, and \"what counts as an icon button\" is\n * a rule worth naming anyway. `loading` disqualifies, because a spinner\n * replaces the children and would otherwise make every loading button square.\n */\nfunction isIconOnly({\n loading,\n icon,\n children,\n}: Pick<ButtonProps, 'loading' | 'icon' | 'children'>): boolean {\n return !loading && icon != null && children == null;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (rawProps, ref) => {\n const {\n variant,\n color,\n size,\n loading,\n icon,\n iconPosition,\n glow,\n pulse,\n ripple,\n active,\n children,\n disabled,\n onClick,\n onFocus,\n onBlur,\n dataTestId,\n ...props\n } = resolveButtonProps(rawProps);\n const testId = (suffix: string) =>\n dataTestId ? `${dataTestId}-${suffix}` : `button-${suffix}`;\n\n // Wrap icon with testId if provided\n const iconWithTestId =\n !loading && icon ? <span data-testid={testId('icon')}>{icon}</span> : undefined;\n\n // Only an icon, so the button is a square rather than a 64px slab.\n const iconOnly = isIconOnly({ loading, icon, children });\n\n const mergedClassName =\n [active ? 'active' : '', props.className].filter(Boolean).join(' ') || undefined;\n\n return (\n <StyledButton\n ref={ref}\n variant={muiVariantFor(variant)}\n color={muiColorFor(color)}\n customVariant={variant}\n customColor={color}\n glow={glow}\n pulse={pulse}\n ripple={ripple}\n disabled={disabled || loading}\n disableRipple={!ripple}\n startIcon={iconPosition === 'left' ? iconWithTestId : undefined}\n endIcon={iconPosition === 'right' ? iconWithTestId : undefined}\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n sx={buttonSize(size, iconOnly)}\n data-testid={dataTestId || 'button'}\n {...props}\n className={mergedClassName}\n >\n {loading ? (\n <CircularProgress size={16} color=\"inherit\" data-testid={testId('loading')} />\n ) : (\n children\n )}\n </StyledButton>\n );\n },\n);\n\nButton.displayName = 'Button';\n"],"mappings":";;;;;;;;;;;;AAAA,OAAO,eAAe;AACtB,OAAO,sBAAsB;AAC7B,SAAS,cAAc;AACvB,YAAY,WAAW;AA+FE;AAnFzB,IAAM,eAAe,OAAO,WAAW;AAAA,EACrC,mBAAmB,CAAC,SAClB,CAAC,QAAQ,SAAS,WAAW,iBAAiB,eAAe,QAAQ,EAAE;AAAA,IACrE;AAAA,EACF,MAAM;AACV,CAAC,EAME,CAAC,EAAE,OAAO,eAAe,cAAc,WAAW,MAAM,MAAM,MAAM;AACrE,QAAM,eAAe,kBAAkB,OAAO,WAAW;AAEzD,SAAO;AAAA,IACL,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,cAAc,MAAM,QAAQ,CAAC;AAAA,IAC7B,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,UAAU;AAAA,IACV,GAAG,oBAAoB,KAAK;AAAA,IAC5B,GAAG,oBAAoB,OAAO,eAAe,cAAc,WAAW;AAAA,IACtE,GAAG,qBAAqB,cAAc,MAAM,KAAK;AAAA,EACnD;AACF,CAAC;AAGD,IAAM,gBAAgB,CAAC,YAAwD;AAC7E,MAAI,YAAY,UAAW,QAAO;AAClC,SAAO,YAAY,SAAS,SAAS;AACvC;AAKA,IAAM,cAAc,CAAC,UAA6D;AAChF,MAAI,UAAU,SAAU,QAAO;AAC/B,SAAO,UAAU,YAAY,YAAY;AAC3C;AAUA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACF,GAAgE;AAC9D,SAAO,CAAC,WAAW,QAAQ,QAAQ,YAAY;AACjD;AAEO,IAAM,SAAe;AAAA,EAC1B,CAAC,UAAU,QAAQ;AACjB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,mBAAmB,QAAQ;AAC/B,UAAM,SAAS,CAAC,WACd,aAAa,GAAG,UAAU,IAAI,MAAM,KAAK,UAAU,MAAM;AAG3D,UAAM,iBACJ,CAAC,WAAW,OAAO,oBAAC,UAAK,eAAa,OAAO,MAAM,GAAI,gBAAK,IAAU;AAGxE,UAAM,WAAW,WAAW,EAAE,SAAS,MAAM,SAAS,CAAC;AAEvD,UAAM,kBACJ,CAAC,SAAS,WAAW,IAAI,MAAM,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,KAAK;AAEzE,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,SAAS,cAAc,OAAO;AAAA,QAC9B,OAAO,YAAY,KAAK;AAAA,QACxB,eAAe;AAAA,QACf,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,YAAY;AAAA,QACtB,eAAe,CAAC;AAAA,QAChB,WAAW,iBAAiB,SAAS,iBAAiB;AAAA,QACtD,SAAS,iBAAiB,UAAU,iBAAiB;AAAA,QACrD;AAAA,QACA;AAAA,QACA;AAAA,QACA,IAAI,WAAW,MAAM,QAAQ;AAAA,QAC7B,eAAa,cAAc;AAAA,QAC1B,GAAG;AAAA,QACJ,WAAW;AAAA,QAEV,oBACC,oBAAC,oBAAiB,MAAM,IAAI,OAAM,WAAU,eAAa,OAAO,SAAS,GAAG,IAE5E;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/LoadingState/LoadingState.helpers.ts"],"sourcesContent":["import type { LoadingStateProps, LoadingStateSize } from './LoadingState.types';\n\nexport const SIZE_MAP: Record<\n LoadingStateSize,\n { spinner: number; text: 'body2' | 'body1' | 'h6' }\n> = {\n xs: { spinner: 16, text: 'body2' },\n sm: { spinner: 24, text: 'body2' },\n md: { spinner: 40, text: 'body1' },\n lg: { spinner: 56, text: 'h6' },\n xl: { spinner: 64, text: 'h6' },\n};\n\nexport const SKELETON_ROW_HEIGHT: Record<LoadingStateSize, number> = {\n xs: 14,\n sm: 20,\n md: 28,\n lg: 36,\n xl: 44,\n};\n\ntype LoadingStateDefaultedKeys = 'variant' | 'size' | 'skeletonRows';\n\ntype ResolvedLoadingStateProps = LoadingStateProps &\n Required<Pick<LoadingStateProps, LoadingStateDefaultedKeys>>;\n\nconst LOADING_STATE_DEFAULTS: Pick<LoadingStateProps, LoadingStateDefaultedKeys> = {\n variant: 'spinner',\n size: 'md',\n skeletonRows: 3,\n};\n\n// Strips explicitly-undefined props before the merge, so `size={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: LoadingStateProps): Partial<LoadingStateProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<LoadingStateProps>;\n\nexport const resolveLoadingStateProps = (\n props: LoadingStateProps,\n): ResolvedLoadingStateProps =>\n ({ ...LOADING_STATE_DEFAULTS, ...definedProps(props) }) as ResolvedLoadingStateProps;\n\n/**\n * Test ids come in three flavours here: the container falls back to a bare\n * `loading-state`, the labelled parts to `loading-state-<part>`, and the\n * skeleton rows to nothing at all when the caller supplied no base id.\n */\nexport const makeTestIds = (dataTestId?: string) => ({\n base: dataTestId || 'loading-state',\n optional: (suffix: string): string | undefined =>\n dataTestId ? `${dataTestId}-${suffix}` : undefined,\n named: (suffix: string): string =>\n dataTestId ? `${dataTestId}-${suffix}` : `loading-state-${suffix}`,\n});\n"],"mappings":";AAEO,IAAM,WAGT;AAAA,EACF,IAAI,EAAE,SAAS,IAAI,MAAM,QAAQ;AAAA,EACjC,IAAI,EAAE,SAAS,IAAI,MAAM,QAAQ;AAAA,EACjC,IAAI,EAAE,SAAS,IAAI,MAAM,QAAQ;AAAA,EACjC,IAAI,EAAE,SAAS,IAAI,MAAM,KAAK;AAAA,EAC9B,IAAI,EAAE,SAAS,IAAI,MAAM,KAAK;AAChC;AAEO,IAAM,sBAAwD;AAAA,EACnE,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAOA,IAAM,yBAA6E;AAAA,EACjF,SAAS;AAAA,EACT,MAAM;AAAA,EACN,cAAc;AAChB;AAIA,IAAM,eAAe,CAAC,UACpB,OAAO;AAAA,EACL,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AACjE;AAEK,IAAM,2BAA2B,CACtC,WAEC,EAAE,GAAG,wBAAwB,GAAG,aAAa,KAAK,EAAE;AAOhD,IAAM,cAAc,CAAC,gBAAyB;AAAA,EACnD,MAAM,cAAc;AAAA,EACpB,UAAU,CAAC,WACT,aAAa,GAAG,UAAU,IAAI,MAAM,KAAK;AAAA,EAC3C,OAAO,CAAC,WACN,aAAa,GAAG,UAAU,IAAI,MAAM,KAAK,iBAAiB,MAAM;AACpE;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/layout/Container/Container.tsx"],"sourcesContent":["import MuiContainer from '@mui/material/Container/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { ContainerProps } from './Container.types';\n\nexport const Container: React.FC<ContainerProps> = ({\n children,\n maxWidth = 'lg',\n variant = 'default',\n padding = 'md',\n responsive = true,\n dataTestId,\n sx,\n ...props\n}) => {\n const theme = useTheme();\n\n const getPadding = () => {\n const paddingMap = {\n none: 0,\n xs: theme.spacing(1),\n sm: theme.spacing(2),\n md: theme.spacing(3),\n lg: theme.spacing(4),\n xl: theme.spacing(6),\n };\n return paddingMap[padding] || theme.spacing(3);\n };\n\n const getMaxWidth = (): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false => {\n if (variant === 'fluid') return false;\n if (variant === 'centered') return 'md';\n if (typeof maxWidth === 'string' && ['xs', 'sm', 'md', 'lg', 'xl'].includes(maxWidth)) {\n return maxWidth as 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n }\n if (maxWidth === false) return false;\n return 'lg'; // default fallback\n };\n\n const containerStyles: SxProps<Theme> = {\n ...(variant === 'centered' && {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100vh',\n }),\n ...(variant === 'padded' && {\n paddingTop: theme.spacing(8),\n paddingBottom: theme.spacing(8),\n }),\n padding: getPadding(),\n ...(responsive && {\n [theme.breakpoints.down('sm')]: {\n padding: theme.spacing(2),\n },\n }),\n ...(sx || {}),\n };\n\n return (\n <MuiContainer\n maxWidth={getMaxWidth()}\n sx={containerStyles}\n data-testid={dataTestId || 'container'}\n {...props}\n >\n {children}\n </MuiContainer>\n );\n};\n"],"mappings":";AAAA,OAAO,kBAAkB;AACzB,SAAS,gBAAgB;AA8DrB;AAxDG,IAAM,YAAsC,CAAC;AAAA,EAClD;AAAA,EACA,WAAW;AAAA,EACX,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,QAAM,aAAa,MAAM;AACvB,UAAM,aAAa;AAAA,MACjB,MAAM;AAAA,MACN,IAAI,MAAM,QAAQ,CAAC;AAAA,MACnB,IAAI,MAAM,QAAQ,CAAC;AAAA,MACnB,IAAI,MAAM,QAAQ,CAAC;AAAA,MACnB,IAAI,MAAM,QAAQ,CAAC;AAAA,MACnB,IAAI,MAAM,QAAQ,CAAC;AAAA,IACrB;AACA,WAAO,WAAW,OAAO,KAAK,MAAM,QAAQ,CAAC;AAAA,EAC/C;AAEA,QAAM,cAAc,MAAgD;AAClE,QAAI,YAAY,QAAS,QAAO;AAChC,QAAI,YAAY,WAAY,QAAO;AACnC,QAAI,OAAO,aAAa,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,SAAS,QAAQ,GAAG;AACrF,aAAO;AAAA,IACT;AACA,QAAI,aAAa,MAAO,QAAO;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkC;AAAA,IACtC,GAAI,YAAY,cAAc;AAAA,MAC5B,SAAS;AAAA,MACT,eAAe;AAAA,MACf,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,WAAW;AAAA,IACb;AAAA,IACA,GAAI,YAAY,YAAY;AAAA,MAC1B,YAAY,MAAM,QAAQ,CAAC;AAAA,MAC3B,eAAe,MAAM,QAAQ,CAAC;AAAA,IAChC;AAAA,IACA,SAAS,WAAW;AAAA,IACpB,GAAI,cAAc;AAAA,MAChB,CAAC,MAAM,YAAY,KAAK,IAAI,CAAC,GAAG;AAAA,QAC9B,SAAS,MAAM,QAAQ,CAAC;AAAA,MAC1B;AAAA,IACF;AAAA,IACA,GAAI,MAAM,CAAC;AAAA,EACb;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,UAAU,YAAY;AAAA,MACtB,IAAI;AAAA,MACJ,eAAa,cAAc;AAAA,MAC1B,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/form/Button/Button.styles.ts"],"sourcesContent":["import { alpha, darken, keyframes, lighten } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\n// Define pulse animation globally\nconst pulseAnimation = keyframes`\n 0% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 1;\n }\n 70% {\n box-shadow: 0 0 0 15px currentColor;\n opacity: 0;\n }\n 100% {\n box-shadow: 0 0 0 0 currentColor;\n opacity: 0;\n }\n`;\n\ninterface ColorPalette {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n}\n\nconst shade = (\n palette: ColorPalette | undefined,\n key: 'dark' | 'light',\n fallback: ColorPalette,\n): string => palette?.[key] || palette?.main || fallback[key];\n\n/** `neutral` has no MUI palette entry, so its four shades come from grey. */\nconst neutralPalette = (theme: Theme): ColorPalette => ({\n main: theme.palette.grey?.[700] || '#616161',\n dark: theme.palette.grey?.[800] || '#424242',\n light: theme.palette.grey?.[500] || '#9e9e9e',\n contrastText: '#fff',\n});\n\nexport const getColorFromTheme = (theme: Theme, color: string): ColorPalette => {\n if (color === 'neutral') return neutralPalette(theme);\n\n const colorMap: Record<string, ColorPalette> = {\n primary: theme.palette.primary as ColorPalette,\n secondary: theme.palette.secondary as ColorPalette,\n success: theme.palette.success as ColorPalette,\n warning: theme.palette.warning as ColorPalette,\n info: theme.palette.info as ColorPalette,\n danger: theme.palette.error as ColorPalette,\n };\n\n const fallback = theme.palette.primary as ColorPalette;\n const palette = colorMap[color] || fallback;\n\n // Ensure palette has required properties\n return {\n main: palette?.main || fallback.main,\n dark: shade(palette, 'dark', fallback),\n light: shade(palette, 'light', fallback),\n contrastText: palette?.contrastText || '#fff',\n };\n};\n\n/** What an unrecognised size falls back to, named so indexing can never be undefined. */\nconst DEFAULT_SIZE: CSSObject = { padding: '8px 16px', fontSize: '1rem' };\n\nconst SIZE_MAP: Record<string, CSSObject> = {\n xs: { padding: '2px 8px', fontSize: '0.75rem' },\n sm: { padding: '6px 12px', fontSize: '0.875rem' },\n md: DEFAULT_SIZE,\n lg: { padding: '10px 20px', fontSize: '1.125rem' },\n xl: { padding: '12px 24px', fontSize: '1.25rem' },\n};\n\n/**\n * A BUTTON THAT IS ONLY AN ICON IS SQUARE.\n *\n * MUI puts a 64px `min-width` on every button, which is right for a label and\n * wrong for a glyph: three dots in a 64px slab reads as a button that failed to\n * load its text, and at the end of a dense row it claims space the row needs.\n * The horizontal padding goes too — a square of padding round a square glyph —\n * and so does the gap MUI reserves beside a start/end icon, since there is\n * nothing on the other side of it.\n *\n * Derived, not declared: a button with an `icon` and no children can only be an\n * icon button, so no consumer has to opt in and none can forget to.\n */\nconst ICON_ONLY_PADDING: Record<string, string> = {\n xs: '2px',\n sm: '5px',\n md: '7px',\n lg: '9px',\n xl: '11px',\n};\n\nconst iconOnlySize = (size: string): CSSObject => ({\n minWidth: 0,\n padding: ICON_ONLY_PADDING[size] ?? ICON_ONLY_PADDING.md,\n fontSize: SIZE_MAP[size]?.fontSize ?? DEFAULT_SIZE.fontSize,\n '& .MuiButton-startIcon, & .MuiButton-endIcon': { margin: 0 },\n});\n\n/** The size styles for a button, square when it carries nothing but an icon. */\nexport const buttonSize = (size: string, iconOnly: boolean): CSSObject =>\n iconOnly ? iconOnlySize(size) : (SIZE_MAP[size] ?? DEFAULT_SIZE);\n\n/**\n * MUI centres icons with a negative margin that fights our own padding, so the\n * flex alignment is restated here rather than fought with `!important`.\n */\nexport const iconAlignmentStyles = (theme: Theme): CSSObject => ({\n '& .MuiButton-startIcon, & .MuiButton-endIcon': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: 0,\n verticalAlign: 'middle',\n '& > *': {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n lineHeight: 0,\n },\n },\n '& .MuiButton-startIcon': {\n marginRight: theme.spacing(0.5),\n },\n '& .MuiButton-endIcon': {\n marginLeft: theme.spacing(0.5),\n },\n});\n\n// Gradients run between two related hues; the named colours pick a specific pair,\n// anything else runs from its own main to its own dark.\nconst GRADIENT_PAIRS: Record<string, (theme: Theme) => [string, string]> = {\n primary: (theme) => [theme.palette.primary.main, theme.palette.secondary.main],\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n};\n\nconst gradientFor = (theme: Theme, color: string, palette: ColorPalette): string => {\n const [from, to] = GRADIENT_PAIRS[color]?.(theme) ?? [palette.main, palette.dark];\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\n/**\n * The label colour for the two variants that paint no background of their own.\n *\n * `ghost` and `text` used `palette.main` directly, which is the same mistake\n * the Alert made with its body text: a palette's `main` is chosen to sit UNDER\n * white — it is the fill of a solid button — and it is not chosen to be read AS\n * text. `#6366F1`, the default primary, is 3.6:1 on white and worse on any\n * tinted surface, so a \"Cancelar\" or an \"Agora não\" placed on a coloured panel\n * turned into a smudge. That is precisely where these two variants belong: they\n * exist to be the quiet option NEXT to a solid one, so they are the buttons\n * most likely to be sitting on something other than plain paper.\n *\n * One step darker (lighter, on a dark theme) keeps the hue the caller asked for\n * and buys the contrast back. `main` still drives the hover wash and every\n * bordered variant, so nothing that was already legible moves.\n */\nconst quietInk = (theme: Theme, palette: ColorPalette): string =>\n theme.palette.mode === 'dark' ? lighten(palette.main, 0.35) : darken(palette.main, 0.3);\n\nconst VARIANT_STYLES: Record<\n string,\n (theme: Theme, palette: ColorPalette, color: string) => CSSObject\n> = {\n solid: (theme, palette) => ({\n backgroundColor: palette.main,\n color: palette.contrastText || '#fff',\n '&:hover': {\n backgroundColor: palette.dark,\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[8],\n },\n }),\n outline: (_theme, palette) => ({\n backgroundColor: 'transparent',\n color: palette.main,\n border: `1px solid ${palette.main}`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n borderColor: palette.dark,\n },\n }),\n ghost: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n }),\n text: (theme, palette) => ({\n backgroundColor: 'transparent',\n color: quietInk(theme, palette),\n border: `none`,\n '&:hover': {\n backgroundColor: alpha(palette.main, 0.1),\n },\n '&.active': {\n backgroundColor: alpha(palette.main, 0.1),\n color: quietInk(theme, palette),\n },\n }),\n glass: (theme, palette) => ({\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: 'blur(20px)',\n border: `1px solid ${alpha(theme.palette.divider, 0.2)}`,\n color: palette.main,\n '&:hover': {\n backgroundColor: alpha(theme.palette.background.paper, 0.2),\n transform: 'translateY(-2px)',\n },\n }),\n gradient: (theme, palette, color) => ({\n background: gradientFor(theme, color, palette),\n color: '#fff',\n '&:hover': {\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px)',\n boxShadow: theme.shadows[12],\n },\n }),\n};\n\nexport const buttonVariantStyles = (\n theme: Theme,\n variant: string | undefined,\n palette: ColorPalette,\n color: string,\n): CSSObject => VARIANT_STYLES[variant ?? '']?.(theme, palette, color) ?? {};\n\n// Glow effect - applied with !important to override variant shadows\nconst glowStyles = (palette: ColorPalette): CSSObject => ({\n boxShadow: `0 0 20px 5px ${alpha(palette.main, 0.6)}, 0 0 40px 10px ${alpha(palette.main, 0.3)} !important`,\n filter: 'brightness(1.05)',\n '&:hover': {\n boxShadow: `0 0 25px 8px ${alpha(palette.main, 0.7)}, 0 0 50px 15px ${alpha(palette.main, 0.4)} !important`,\n filter: 'brightness(1.1)',\n transform: 'translateY(-2px) scale(1.02)',\n },\n});\n\n// Pulse animation using pseudo-element\nconst pulseStyles = (palette: ColorPalette): CSSObject => ({\n position: 'relative',\n overflow: 'visible',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: '50%',\n width: '100%',\n height: '100%',\n borderRadius: 'inherit',\n transform: 'translate(-50%, -50%)',\n backgroundColor: palette.main,\n opacity: 0.3,\n animation: `${pulseAnimation} 2s infinite`,\n pointerEvents: 'none',\n zIndex: -1,\n },\n});\n\n/**\n * glow and pulse are independent flags. The three combinations used to be spelled\n * out one by one, but each is just the union of whichever flags are set.\n */\nexport const buttonEmphasisStyles = (\n palette: ColorPalette,\n glow?: boolean,\n pulse?: boolean,\n): CSSObject => ({\n ...(glow ? glowStyles(palette) : {}),\n ...(pulse ? pulseStyles(palette) : {}),\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/LoadingState/LoadingState.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { Skeleton } from '../../layout/Skeleton/Skeleton';\n\nimport {\n makeTestIds,\n resolveLoadingStateProps,\n SIZE_MAP,\n SKELETON_ROW_HEIGHT,\n} from './LoadingState.helpers';\nimport type { LoadingStateProps, LoadingStateSize } from './LoadingState.types';\n\ninterface ViewProps {\n message?: string;\n size: LoadingStateSize;\n skeletonRows: number;\n className?: string;\n testIds: ReturnType<typeof makeTestIds>;\n}\n\nconst LoadingMessage: React.FC<{\n message?: string;\n size: LoadingStateSize;\n testIds: ViewProps['testIds'];\n sx?: object;\n}> = ({ message, size, testIds, sx }) =>\n message ? (\n <Typography\n variant={SIZE_MAP[size].text}\n color=\"text.secondary\"\n sx={sx}\n data-testid={testIds.named('message')}\n >\n {message}\n </Typography>\n ) : null;\n\nconst SkeletonView: React.FC<ViewProps> = ({\n message,\n size,\n skeletonRows,\n className,\n testIds,\n}) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"status\"\n aria-busy=\"true\"\n aria-label={message || 'Loading content'}\n className={className}\n data-testid={testIds.base}\n sx={{\n width: '100%',\n padding: theme.spacing(3),\n }}\n >\n <Stack spacing={2}>\n {Array.from({ length: skeletonRows }).map((_, index) => (\n <Skeleton\n key={`skeleton-row-${index}`}\n variant=\"rectangular\"\n animation=\"wave\"\n height={SKELETON_ROW_HEIGHT[size]}\n // The last row is short, so the block reads as a paragraph of text.\n width={index === skeletonRows - 1 ? '60%' : '100%'}\n borderRadius={4}\n data-testid={testIds.optional(`skeleton-${index}`)}\n />\n ))}\n </Stack>\n <LoadingMessage\n message={message}\n size={size}\n testIds={testIds}\n sx={{ mt: 2, textAlign: 'center' }}\n />\n </Box>\n );\n};\n\nconst SpinnerView: React.FC<ViewProps> = ({ message, size, className, testIds }) => {\n const theme = useTheme();\n\n return (\n <Box\n role=\"status\"\n aria-busy=\"true\"\n aria-label={message || 'Loading'}\n className={className}\n data-testid={testIds.base}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: theme.spacing(6),\n minHeight: 200,\n gap: theme.spacing(2),\n }}\n >\n <CircularProgress\n size={SIZE_MAP[size].spinner}\n data-testid={testIds.named('spinner')}\n />\n <LoadingMessage message={message} size={size} testIds={testIds} />\n </Box>\n );\n};\n\nexport const LoadingState: React.FC<LoadingStateProps> = React.memo((rawProps) => {\n const { variant, message, size, skeletonRows, className, dataTestId } =\n resolveLoadingStateProps(rawProps);\n const viewProps: ViewProps = {\n message,\n size,\n skeletonRows,\n className,\n testIds: makeTestIds(dataTestId),\n };\n\n return variant === 'skeleton' ? (\n <SkeletonView {...viewProps} />\n ) : (\n <SpinnerView {...viewProps} />\n );\n});\n\nLoadingState.displayName = 'LoadingState';\n\nexport default LoadingState;\n"],"mappings":";;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AACzB,OAAO,WAAW;AA2Bd,cAoBA,YApBA;AAPJ,IAAM,iBAKD,CAAC,EAAE,SAAS,MAAM,SAAS,GAAG,MACjC,UACE;AAAA,EAAC;AAAA;AAAA,IACC,SAAS,SAAS,IAAI,EAAE;AAAA,IACxB,OAAM;AAAA,IACN;AAAA,IACA,eAAa,QAAQ,MAAM,SAAS;AAAA,IAEnC;AAAA;AACH,IACE;AAEN,IAAM,eAAoC,CAAC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,WAAW;AAAA,MACvB;AAAA,MACA,eAAa,QAAQ;AAAA,MACrB,IAAI;AAAA,QACF,OAAO;AAAA,QACP,SAAS,MAAM,QAAQ,CAAC;AAAA,MAC1B;AAAA,MAEA;AAAA,4BAAC,SAAM,SAAS,GACb,gBAAM,KAAK,EAAE,QAAQ,aAAa,CAAC,EAAE,IAAI,CAAC,GAAG,UAC5C;AAAA,UAAC;AAAA;AAAA,YAEC,SAAQ;AAAA,YACR,WAAU;AAAA,YACV,QAAQ,oBAAoB,IAAI;AAAA,YAEhC,OAAO,UAAU,eAAe,IAAI,QAAQ;AAAA,YAC5C,cAAc;AAAA,YACd,eAAa,QAAQ,SAAS,YAAY,KAAK,EAAE;AAAA;AAAA,UAP5C,gBAAgB,KAAK;AAAA,QAQ5B,CACD,GACH;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,IAAI,EAAE,IAAI,GAAG,WAAW,SAAS;AAAA;AAAA,QACnC;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,cAAmC,CAAC,EAAE,SAAS,MAAM,WAAW,QAAQ,MAAM;AAClF,QAAM,QAAQ,SAAS;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,WAAW;AAAA,MACvB;AAAA,MACA,eAAa,QAAQ;AAAA,MACrB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS,MAAM,QAAQ,CAAC;AAAA,QACxB,WAAW;AAAA,QACX,KAAK,MAAM,QAAQ,CAAC;AAAA,MACtB;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,SAAS,IAAI,EAAE;AAAA,YACrB,eAAa,QAAQ,MAAM,SAAS;AAAA;AAAA,QACtC;AAAA,QACA,oBAAC,kBAAe,SAAkB,MAAY,SAAkB;AAAA;AAAA;AAAA,EAClE;AAEJ;AAEO,IAAM,eAA4C,MAAM,KAAK,CAAC,aAAa;AAChF,QAAM,EAAE,SAAS,SAAS,MAAM,cAAc,WAAW,WAAW,IAClE,yBAAyB,QAAQ;AACnC,QAAM,YAAuB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,YAAY,UAAU;AAAA,EACjC;AAEA,SAAO,YAAY,aACjB,oBAAC,gBAAc,GAAG,WAAW,IAE7B,oBAAC,eAAa,GAAG,WAAW;AAEhC,CAAC;AAED,aAAa,cAAc;AAE3B,IAAO,uBAAQ;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/typography/Heading/Heading.styles.ts"],"sourcesContent":["import type { CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport type { HeadingProps } from './Heading.types';\nimport { HEADING_SCALE, headingMetrics, type HeadingLevel } from '../../../tokens/typography';\nimport type { ColorValue } from '../../../tokens/scales';\n\ntype Weight = NonNullable<HeadingProps['weight']>;\n\n// Exhaustive over ColorValue, and deliberately without a fallback. The map\n// happened to hold all seven already, but it was `Record<string, string>` with\n// `|| text.primary` behind it — so nothing kept it that way, and the eighth\n// colour would have rendered as ordinary body text with no complaint. That is\n// the failure this whole vocabulary exists to make impossible; `Text` was\n// tightened the same way and this one was missed.\nconst getColorFromTheme = (theme: Theme, color: ColorValue): string => {\n if (color === 'neutral') {\n return theme.palette.text.primary;\n }\n\n const colorMap: Record<Exclude<ColorValue, 'neutral'>, string> = {\n primary: theme.palette.primary.main,\n secondary: theme.palette.secondary.main,\n success: theme.palette.success.main,\n warning: theme.palette.warning.main,\n info: theme.palette.info.main,\n danger: theme.palette.error.main,\n };\n\n return colorMap[color];\n};\n\nconst WEIGHTS: Record<Weight, number> = {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n};\n\n/** The two-stop gradient each colour paints its glyphs with. */\nconst PRIMARY_STOPS = (theme: Theme): [string, string] => [\n theme.palette.primary.main,\n theme.palette.secondary.main,\n];\n\n// Keyed over the whole vocabulary, with no `?? PRIMARY_STOPS` behind it. Two\n// stops were missing — `info` and `neutral` — so a gradient heading in either\n// colour painted the PRIMARY gradient and looked deliberate while ignoring the\n// prop entirely. The fallback is what hid it, so the fallback is gone.\nconst GRADIENT_STOPS: Record<ColorValue, (theme: Theme) => [string, string]> = {\n primary: PRIMARY_STOPS,\n secondary: (theme) => [theme.palette.secondary.main, theme.palette.primary.main],\n success: (theme) => [theme.palette.success.light, theme.palette.success.dark],\n warning: (theme) => [theme.palette.warning.light, theme.palette.warning.dark],\n info: (theme) => [theme.palette.info.light, theme.palette.info.dark],\n danger: (theme) => [theme.palette.error.light, theme.palette.error.dark],\n // The grey ramp has no light/dark pair, and every stop on it is\n // `string | undefined` under `noUncheckedIndexedAccess`.\n neutral: (theme) => [theme.palette.grey[500] ?? '#9e9e9e', theme.palette.grey[900] ?? '#212121'],\n};\n\nconst gradientFor = (theme: Theme, color: ColorValue) => {\n const [from, to] = GRADIENT_STOPS[color](theme);\n return `linear-gradient(135deg, ${from} 0%, ${to} 100%)`;\n};\n\nexport interface HeadingFlags {\n /**\n * The step of the scale to DRAW. Named `customSize` rather than `customLevel`\n * because the rank is no longer what decides it — see `Heading.tsx`, which\n * resolves `size ?? level` before it gets here. This file no longer knows\n * which tag it is styling, and that is the point.\n */\n customSize?: string;\n customColor?: ColorValue;\n customWeight?: string;\n gradient?: boolean;\n}\n\n/** A step name the scale actually has, or `h2` — the documented default. */\nconst stepOf = (value: string | undefined): HeadingLevel =>\n value !== undefined && value in HEADING_SCALE ? (value as HeadingLevel) : 'h2';\n\nexport const headingSx = (theme: Theme, flags: HeadingFlags): CSSObject => {\n const { customSize, customColor = 'neutral', customWeight = 'bold', gradient } = flags;\n // From the THEME, with the package default underneath — never from a table in\n // this file. A host's `createTheme({ typography: { headingScale } })` is what\n // sets the house scale now; see `tokens/typography.ts` for why it is our own\n // key rather than MUI's `typography.h1`.\n const { normalWeight, ...metrics } = headingMetrics(theme, stepOf(customSize));\n\n const base: CSSObject = {\n fontFamily: theme.typography.h1.fontFamily,\n margin: 0,\n transition: 'all 0.2s ease',\n ...metrics,\n fontWeight:\n customWeight === 'normal' ? normalWeight : (WEIGHTS[customWeight as Weight] ?? WEIGHTS.bold),\n };\n\n if (!gradient) {\n return { ...base, color: getColorFromTheme(theme, customColor) };\n }\n\n // The gradient paints the glyphs themselves, so the text must draw no fill of\n // its own for it to show through.\n return {\n ...base,\n background: gradientFor(theme, customColor),\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n MozBackgroundClip: 'text',\n MozTextFillColor: 'transparent',\n };\n};\n"],"mappings":";;;;;;AAcA,IAAM,oBAAoB,CAAC,OAAc,UAA8B;AACrE,MAAI,UAAU,WAAW;AACvB,WAAO,MAAM,QAAQ,KAAK;AAAA,EAC5B;AAEA,QAAM,WAA2D;AAAA,IAC/D,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,WAAW,MAAM,QAAQ,UAAU;AAAA,IACnC,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,SAAS,MAAM,QAAQ,QAAQ;AAAA,IAC/B,MAAM,MAAM,QAAQ,KAAK;AAAA,IACzB,QAAQ,MAAM,QAAQ,MAAM;AAAA,EAC9B;AAEA,SAAO,SAAS,KAAK;AACvB;AAEA,IAAM,UAAkC;AAAA,EACtC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AACR;AAGA,IAAM,gBAAgB,CAAC,UAAmC;AAAA,EACxD,MAAM,QAAQ,QAAQ;AAAA,EACtB,MAAM,QAAQ,UAAU;AAC1B;AAMA,IAAM,iBAAyE;AAAA,EAC7E,SAAS;AAAA,EACT,WAAW,CAAC,UAAU,CAAC,MAAM,QAAQ,UAAU,MAAM,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC/E,SAAS,CAAC,UAAU,CAAC,MAAM,QAAQ,QAAQ,OAAO,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC5E,SAAS,CAAC,UAAU,CAAC,MAAM,QAAQ,QAAQ,OAAO,MAAM,QAAQ,QAAQ,IAAI;AAAA,EAC5E,MAAM,CAAC,UAAU,CAAC,MAAM,QAAQ,KAAK,OAAO,MAAM,QAAQ,KAAK,IAAI;AAAA,EACnE,QAAQ,CAAC,UAAU,CAAC,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ,MAAM,IAAI;AAAA;AAAA;AAAA,EAGvE,SAAS,CAAC,UAAU,CAAC,MAAM,QAAQ,KAAK,GAAG,KAAK,WAAW,MAAM,QAAQ,KAAK,GAAG,KAAK,SAAS;AACjG;AAEA,IAAM,cAAc,CAAC,OAAc,UAAsB;AACvD,QAAM,CAAC,MAAM,EAAE,IAAI,eAAe,KAAK,EAAE,KAAK;AAC9C,SAAO,2BAA2B,IAAI,QAAQ,EAAE;AAClD;AAgBA,IAAM,SAAS,CAAC,UACd,UAAU,UAAa,SAAS,gBAAiB,QAAyB;AAErE,IAAM,YAAY,CAAC,OAAc,UAAmC;AACzE,QAAM,EAAE,YAAY,cAAc,WAAW,eAAe,QAAQ,SAAS,IAAI;AAKjF,QAAM,EAAE,cAAc,GAAG,QAAQ,IAAI,eAAe,OAAO,OAAO,UAAU,CAAC;AAE7E,QAAM,OAAkB;AAAA,IACtB,YAAY,MAAM,WAAW,GAAG;AAAA,IAChC,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,GAAG;AAAA,IACH,YACE,iBAAiB,WAAW,eAAgB,QAAQ,YAAsB,KAAK,QAAQ;AAAA,EAC3F;AAEA,MAAI,CAAC,UAAU;AACb,WAAO,EAAE,GAAG,MAAM,OAAO,kBAAkB,OAAO,WAAW,EAAE;AAAA,EACjE;AAIA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,YAAY,OAAO,WAAW;AAAA,IAC1C,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,EACpB;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/typography/Text/Text.tsx"],"sourcesContent":["'use client';\n\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport type { TextProps } from './Text.types';\nimport type { ColorValue } from '../../../tokens/scales';\n\nconst getColorFromTheme = (theme: Theme, color: ColorValue): string => {\n if (color === 'neutral') {\n return theme.palette.text.primary;\n }\n\n if (color === 'secondary') {\n return theme.palette.text.secondary;\n }\n\n // Exhaustive over ColorValue on purpose. It was a partial `Record<string, …>`\n // with a silent `|| text.primary` fallback, so `info` — accepted by the type\n // — rendered as ordinary body text. Typing the key means a colour added to\n // the vocabulary cannot reach here without a home.\n const colorMap: Record<Exclude<ColorValue, 'neutral' | 'secondary'>, string> = {\n primary: theme.palette.primary.main,\n success: theme.palette.success.main,\n warning: theme.palette.warning.main,\n info: theme.palette.info.main,\n danger: theme.palette.error.main,\n };\n\n return colorMap[color];\n};\n\nconst SIZE_MAP: Record<string, { fontSize: string; lineHeight: number }> = {\n xs: { fontSize: '0.75rem', lineHeight: 1.2 },\n sm: { fontSize: '0.875rem', lineHeight: 1.3 },\n md: { fontSize: '1rem', lineHeight: 1.5 },\n lg: { fontSize: '1.125rem', lineHeight: 1.4 },\n xl: { fontSize: '1.25rem', lineHeight: 1.3 },\n};\n\nconst WEIGHT_MAP: Record<string, number> = {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n};\n\ninterface TextStyleArgs {\n theme: Theme;\n customVariant?: string;\n customColor?: ColorValue;\n customSize?: string;\n customWeight?: string;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n}\n\n// underline and strikethrough combine into one declaration rather than one\n// winning over the other.\nconst decorationFor = (underline?: boolean, strikethrough?: boolean): string =>\n [underline && 'underline', strikethrough && 'line-through'].filter(Boolean).join(' ') || 'none';\n\nconst baseTextStyles = (theme: Theme, a: TextStyleArgs): CSSObject => ({\n color: getColorFromTheme(theme, a.customColor ?? 'neutral'),\n fontSize: SIZE_MAP[a.customSize ?? 'md']?.fontSize,\n lineHeight: SIZE_MAP[a.customSize ?? 'md']?.lineHeight,\n fontWeight: WEIGHT_MAP[a.customWeight ?? 'normal'],\n fontStyle: a.italic ? 'italic' : 'normal',\n textDecoration: decorationFor(a.underline, a.strikethrough),\n transition: 'all 0.2s ease',\n});\n\n// Captions and code shrink relative to the body scale, but only at the default\n// size — an explicit size wins.\nconst sizeOverride = (customSize: string | undefined, atDefault: string): string | undefined =>\n (customSize ?? 'md') === 'md' ? atDefault : SIZE_MAP[customSize ?? 'md']?.fontSize;\n\nconst textVariantStyles = (theme: Theme, a: TextStyleArgs, base: CSSObject): CSSObject => {\n const weight = a.customWeight ?? 'normal';\n\n switch (a.customVariant) {\n case 'heading':\n return {\n ...base,\n fontFamily: theme.typography.h4.fontFamily,\n fontWeight: weight === 'normal' ? 600 : WEIGHT_MAP[weight],\n letterSpacing: '-0.01em',\n };\n case 'caption':\n return {\n ...base,\n fontSize: sizeOverride(a.customSize, '0.75rem'),\n opacity: 0.8,\n letterSpacing: '0.02em',\n };\n case 'code':\n return {\n ...base,\n fontFamily: 'Monaco, Menlo, \"Ubuntu Mono\", \"Courier New\", monospace',\n fontSize: sizeOverride(a.customSize, '0.875rem'),\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n padding: '2px 6px',\n borderRadius: theme.shape.borderRadius / 2,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.12)}`,\n };\n default:\n return { ...base, fontFamily: theme.typography.body1.fontFamily };\n }\n};\n\nconst StyledText = styled(Typography, {\n shouldForwardProp: (prop) =>\n ![\n 'customVariant',\n 'customColor',\n 'customSize',\n 'customWeight',\n 'italic',\n 'underline',\n 'strikethrough',\n ].includes(prop as string),\n})<{\n customVariant?: string;\n customColor?: ColorValue;\n customSize?: string;\n customWeight?: string;\n italic?: boolean;\n underline?: boolean;\n strikethrough?: boolean;\n}>((args) => {\n const { theme } = args;\n return textVariantStyles(theme, args, baseTextStyles(theme, args));\n});\n\nexport const Text = React.forwardRef<HTMLElement, TextProps>(\n (\n {\n variant = 'body',\n color = 'neutral',\n size = 'md',\n weight = 'normal',\n as = 'span',\n italic = false,\n underline = false,\n strikethrough = false,\n children,\n ...props\n },\n ref,\n ) => (\n <StyledText\n ref={ref}\n customVariant={variant}\n customColor={color}\n customSize={size}\n customWeight={weight}\n italic={italic}\n underline={underline}\n strikethrough={strikethrough}\n {...(as && { as })}\n {...props}\n >\n {children}\n </StyledText>\n ),\n);\n\nText.displayName = 'Text';"],"mappings":"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","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|