@12-apps/ui 6.17.1 → 6.18.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 +94 -0
- package/components-catalog.md +23 -0
- package/components-guidelines.md +16 -1
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +10 -4
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -4
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +10 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +9 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.js +11 -6
- 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 +12 -7
- 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 +1 -1
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +8 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -42
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +69 -62
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +12 -5
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +16 -9
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +16 -9
- package/dist/_internal/components/data-display/DataViews/base-card.js +8 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +10 -4
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +9 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +13 -7
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +9 -9
- 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 +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +16 -9
- 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 +46 -39
- 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 +23 -16
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +8 -2
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +13 -6
- 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 +19 -12
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +21 -14
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +18 -11
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +12 -5
- 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 +12 -6
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +8 -2
- package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
- 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/index.js +68 -61
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +10 -4
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/index.js +27 -21
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +6 -6
- 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/Calendar/Calendar.hooks.js +2 -2
- package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +8 -8
- package/dist/_internal/components/form/CepField/CepField.js +3 -3
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +1 -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/DateRangePicker/DateRangePicker.js +9 -9
- package/dist/_internal/components/form/Input/Input.js +2 -2
- 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 +12 -7
- 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/RichTextEditor/RichTextEditor.js +2 -2
- package/dist/_internal/components/form/index.js +94 -87
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +9 -9
- package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
- package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
- package/dist/_internal/components/form/total-form/Fields/index.js +21 -21
- package/dist/_internal/components/form/total-form/SubmitButton.js +10 -4
- package/dist/_internal/components/index.js +260 -252
- 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/SettingsLayout/SettingsLayout.js +2 -2
- 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 +19 -19
- 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/index.js +38 -31
- package/dist/_internal/components/typography/Heading/Heading.js +4 -3
- package/dist/_internal/components/typography/Heading/Heading.styles.js +3 -2
- 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 +13 -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/test-id.js +12 -0
- package/dist/_internal/platform/test-id.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 +15 -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/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 +12 -7
- package/dist/{chunk-IAQFQNBL.js → chunk-24BUCMQA.js} +15 -9
- package/dist/chunk-24BUCMQA.js.map +1 -0
- package/dist/{chunk-GFBNUWT5.js → chunk-2EKALM6P.js} +6 -6
- package/dist/{chunk-VRHBJXZ7.js → chunk-2PCOC3PT.js} +62 -42
- package/dist/chunk-2PCOC3PT.js.map +1 -0
- package/dist/{chunk-ISW5K72V.js → chunk-2ZRZTGWP.js} +5 -5
- package/dist/{chunk-EB4BTKKY.js → chunk-3AFUWDYS.js} +4 -4
- package/dist/{chunk-HR7YTBR7.js → chunk-3AOOI2NR.js} +4 -4
- package/dist/{chunk-PKJKA4CU.js → chunk-3ZFORMNT.js} +4 -4
- package/dist/{chunk-WME2F2YY.js → chunk-4EJSUL62.js} +3 -3
- package/dist/{chunk-WMALDOF5.js → chunk-4G3FGCWX.js} +4 -4
- 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-6CBYPMYQ.js → chunk-4R2CDZOQ.js} +4 -4
- package/dist/{chunk-FJHNNSD3.js → chunk-4WK2RTVY.js} +5 -5
- 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-GCJLMX63.js → chunk-67LDIJQZ.js} +2 -2
- 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-OAXAF4VY.js → chunk-74KMXBG3.js} +9 -9
- package/dist/{chunk-ZDWU52DJ.js → chunk-7AR2R7TV.js} +4 -4
- package/dist/{chunk-B6IURHSZ.js → chunk-7DNQHMDO.js} +4 -4
- package/dist/{chunk-G7CFUI4I.js → chunk-7EESF76V.js} +2 -2
- package/dist/chunk-7JXLGOM2.js +25 -0
- package/dist/chunk-7JXLGOM2.js.map +1 -0
- package/dist/{chunk-AX7UFG2U.js → chunk-7RZ4WOQW.js} +3 -3
- package/dist/chunk-7V6ZRQYW.js +90 -0
- package/dist/chunk-7V6ZRQYW.js.map +1 -0
- 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-VOOPGAQO.js → chunk-B7BZAIHL.js} +2 -2
- package/dist/{chunk-FWCUELBU.js → chunk-BILE3A7F.js} +2 -2
- package/dist/{chunk-XSKVBGCZ.js → chunk-BLBOYCOV.js} +6 -6
- package/dist/{chunk-4Y65Q3CR.js → chunk-C52BELLW.js} +3 -3
- package/dist/{chunk-QCIWROKG.js → chunk-CGQI4XE5.js} +5 -3
- package/dist/{chunk-QCIWROKG.js.map → chunk-CGQI4XE5.js.map} +1 -1
- package/dist/{chunk-RP3W6IQO.js → chunk-CPNSVIIB.js} +5 -5
- package/dist/{chunk-T4SM36XC.js → chunk-D7FJ2GAD.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-W2UTDN4T.js → chunk-DWZ7FLA7.js} +4 -4
- package/dist/{chunk-24LW52EU.js → chunk-DX527XPL.js} +2 -2
- package/dist/{chunk-A4YWFX5C.js → chunk-ENNW5SKT.js} +2 -2
- package/dist/{chunk-BPYPUEM5.js → chunk-EPNCYUQ7.js} +5 -5
- package/dist/{chunk-MUAVYVDJ.js → chunk-EW7ZNSWU.js} +5 -5
- package/dist/{chunk-DWUMMMLR.js → chunk-FOMK3WPG.js} +2 -2
- package/dist/{chunk-RQ4EQ5FJ.js → chunk-FP4R47TM.js} +2 -2
- package/dist/{chunk-7CA6GVBO.js → chunk-FZXKH2ZT.js} +3 -7
- package/dist/chunk-FZXKH2ZT.js.map +1 -0
- package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
- package/dist/{chunk-WEH5TCPE.js → chunk-GSTRPZS4.js} +8 -8
- package/dist/chunk-H2EQVMU3.js +49 -0
- package/dist/chunk-H2EQVMU3.js.map +1 -0
- package/dist/{chunk-WC3W36AM.js → chunk-HOJL2GKW.js} +4 -4
- package/dist/{chunk-PMFW55F5.js → chunk-HSAH5QUQ.js} +5 -5
- package/dist/{chunk-A3KY6NUA.js → chunk-IH4CX43Q.js} +2 -2
- package/dist/{chunk-HEDOL2RV.js → chunk-IJIT5HQP.js} +3 -3
- package/dist/{chunk-VR5HDUBK.js → chunk-IPS55KWK.js} +2 -2
- package/dist/chunk-ITGG5OKP.js +86 -0
- package/dist/chunk-ITGG5OKP.js.map +1 -0
- package/dist/{chunk-ELYLG4F7.js → chunk-J54WH74M.js} +4 -4
- 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-KLREH4X6.js +16 -0
- package/dist/chunk-KLREH4X6.js.map +1 -0
- package/dist/{chunk-EY4LPLIR.js → chunk-KQ74QU55.js} +3 -3
- package/dist/{chunk-XULTDO56.js → chunk-KT6HWAEN.js} +2 -2
- package/dist/{chunk-COSJTD6Z.js → chunk-KZSKI2R3.js} +2 -2
- package/dist/{chunk-DQIQKIEA.js → chunk-L5ZZJ4XE.js} +3 -3
- package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
- package/dist/{chunk-6RFL7HGI.js → chunk-LZRURORY.js} +4 -4
- package/dist/{chunk-KXNWDXR7.js → chunk-M2K7BPHX.js} +2 -2
- package/dist/{chunk-WLDK74RR.js → chunk-MSUSZLRE.js} +2 -2
- package/dist/{chunk-WPR2HS5B.js → chunk-MUVJD26L.js} +8 -8
- package/dist/{chunk-VVXRIPV5.js → chunk-MY5VNNSP.js} +9 -9
- package/dist/{chunk-JPDKRGYI.js → chunk-MZQTHSLN.js} +3 -3
- package/dist/{chunk-FF55LRSV.js → chunk-NETZMGQP.js} +2 -2
- package/dist/{chunk-3QGRQNTP.js → chunk-NFAKRI4S.js} +6 -6
- package/dist/{chunk-KSF7TLXH.js → chunk-NHSMLVNC.js} +6 -6
- package/dist/chunk-NQN5Z36J.js +182 -0
- package/dist/chunk-NQN5Z36J.js.map +1 -0
- package/dist/{chunk-HQJ75HHI.js → chunk-NYLXHOMR.js} +2 -2
- package/dist/chunk-OCUVKI63.js +35 -0
- package/dist/chunk-OCUVKI63.js.map +1 -0
- package/dist/{chunk-CXA6UNFF.js → chunk-OH3YGJT5.js} +7 -7
- package/dist/{chunk-REMK55JI.js → chunk-OLZTGVBT.js} +4 -4
- package/dist/{chunk-M3RIC6JI.js → chunk-OQXOYHIV.js} +4 -4
- package/dist/{chunk-3LO5JWTC.js → chunk-P5YYVDAD.js} +3 -3
- package/dist/{chunk-6TYSEAAT.js → chunk-PC5FFEIY.js} +4 -4
- package/dist/{chunk-SLYZMJEL.js → chunk-PHCSPHDH.js} +3 -3
- 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-IPE5FFFD.js → chunk-PUBPZOQJ.js} +2 -2
- package/dist/chunk-QLWBQQW7.js +18 -0
- package/dist/chunk-QLWBQQW7.js.map +1 -0
- package/dist/{chunk-6HNEEJES.js → chunk-QRX5BYUQ.js} +4 -4
- package/dist/chunk-QWBQVQRG.js +18 -0
- package/dist/chunk-QWBQVQRG.js.map +1 -0
- package/dist/{chunk-5QXSPLWU.js → chunk-R6SSXEK2.js} +2 -2
- 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-5SYD23V4.js → chunk-SKZHOWTS.js} +4 -4
- 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-CBPQJAHX.js → chunk-U7RULTSH.js} +3 -3
- package/dist/{chunk-RRX6ZTNX.js → chunk-UEJQQVP2.js} +4 -4
- package/dist/{chunk-ES2RN7YV.js → chunk-UQHJQ26Y.js} +2 -2
- package/dist/chunk-V3PLFYKO.js +34 -0
- package/dist/chunk-V3PLFYKO.js.map +1 -0
- package/dist/chunk-V5IOLAIS.js +22 -0
- package/dist/chunk-V5IOLAIS.js.map +1 -0
- package/dist/{chunk-WR6F6J43.js → chunk-V662PA6T.js} +6 -6
- package/dist/{chunk-VJKRJYZL.js → chunk-VEFDL77X.js} +2 -2
- package/dist/{chunk-GT7C6TSM.js → chunk-VNEEXUWA.js} +3 -3
- package/dist/{chunk-N34YHFZW.js → chunk-W2YNUUVJ.js} +2 -2
- package/dist/{chunk-N4WANJI3.js → chunk-WBVHRLIS.js} +4 -4
- package/dist/{chunk-MHFJBNDP.js → chunk-WO52KYSU.js} +8 -8
- package/dist/{chunk-CLNTJM3F.js → chunk-WUPVHIMD.js} +2 -2
- package/dist/{chunk-ZBOFBRZC.js → chunk-WX7VWW3W.js} +2 -2
- package/dist/{chunk-SRMWCN5D.js → chunk-X5BHPSAC.js} +5 -5
- package/dist/chunk-X5D3PTWI.js +58 -0
- package/dist/chunk-X5D3PTWI.js.map +1 -0
- package/dist/{chunk-MD6T7MDT.js → chunk-XKMFIH27.js} +12 -12
- package/dist/{chunk-T53L42XW.js → chunk-XSJWN3WH.js} +7 -7
- package/dist/{chunk-AVU6KU27.js → chunk-XXDXW6TX.js} +2 -2
- package/dist/chunk-XZTRZ3HO.js +7 -0
- package/dist/chunk-XZTRZ3HO.js.map +1 -0
- package/dist/chunk-YMRI5QKG.js +134 -0
- package/dist/chunk-YMRI5QKG.js.map +1 -0
- package/dist/{chunk-45OIUWGO.js → chunk-YNQGXSDD.js} +5 -5
- package/dist/{chunk-5VVM2PPV.js → chunk-ZEBJT5JZ.js} +3 -3
- package/dist/{chunk-DJORMYOV.js → chunk-ZU3SWR4I.js} +2 -2
- package/dist/data-display/AsyncStateContainer.js +3 -3
- package/dist/data-display/CardKit.js +14 -8
- package/dist/data-display/Carousel.js +11 -6
- package/dist/data-display/Chart.js +12 -7
- package/dist/data-display/DataGrid.js +1 -1
- package/dist/data-display/DataViews.js +78 -71
- package/dist/data-display/DescriptionItem.js +8 -2
- package/dist/data-display/InteractiveTooltip.js +2 -2
- package/dist/data-display/Lightbox.js +3 -3
- package/dist/data-display/Sheet.js +12 -7
- package/dist/en-US.js +8 -8
- package/dist/feedback/ConfirmAction.js +12 -6
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/form/AddressAutocomplete.js +6 -6
- package/dist/form/Button.js +9 -3
- package/dist/form/Calendar.js +6 -6
- package/dist/form/CategorySelect.js +10 -10
- package/dist/form/CepField.js +3 -3
- package/dist/form/CodeEditor.js +1 -1
- package/dist/form/Command.js +9 -4
- package/dist/form/DateRangePicker.js +9 -9
- package/dist/form/Input.js +2 -2
- package/dist/form/Label.js +9 -4
- package/dist/form/Menubar.js +12 -7
- package/dist/form/RichTextEditor.js +2 -2
- package/dist/form/total-form.js +34 -28
- 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/SettingsLayout.js +2 -2
- 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-5WLOVHKK.js +29 -0
- package/dist/native/chunks/chunk-5WLOVHKK.js.map +1 -0
- package/dist/native/chunks/chunk-L2UUNK2M.js +316 -0
- package/dist/native/chunks/chunk-L2UUNK2M.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-QZ233LRH.js +136 -0
- package/dist/native/chunks/chunk-QZ233LRH.js.map +1 -0
- package/dist/native/chunks/chunk-VGBKUL6D.js +21 -0
- package/dist/native/chunks/chunk-VGBKUL6D.js.map +1 -0
- package/dist/native/form/Button.js +321 -0
- package/dist/native/form/Button.js.map +1 -0
- package/dist/native/icons.js +108 -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/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/Text.js +131 -0
- package/dist/native/typography/Text.js.map +1 -0
- package/dist/navigation/AppHeader.js +19 -12
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/NavigationMenu.js +5 -5
- package/dist/navigation/Pagination.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 +15 -8
- package/dist/tokens.js +59 -6
- 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/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/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/test-id.d.ts +21 -0
- package/dist/types/platform/test-id.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/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/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/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/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/test-id.d.ts +21 -0
- package/dist/types-native/platform/test-id.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/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 +4 -3
- package/dist/typography/Text.js +7 -1
- package/dist/user-avatar.js +12 -5
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +79 -7
- 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 +339 -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/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/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/test-id.ts +34 -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/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-7CA6GVBO.js.map +0 -1
- package/dist/chunk-AUYC5K5K.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-NYUGX76C.js.map +0 -1
- package/dist/chunk-VRHBJXZ7.js.map +0 -1
- /package/dist/{chunk-GFBNUWT5.js.map → chunk-2EKALM6P.js.map} +0 -0
- /package/dist/{chunk-ISW5K72V.js.map → chunk-2ZRZTGWP.js.map} +0 -0
- /package/dist/{chunk-EB4BTKKY.js.map → chunk-3AFUWDYS.js.map} +0 -0
- /package/dist/{chunk-HR7YTBR7.js.map → chunk-3AOOI2NR.js.map} +0 -0
- /package/dist/{chunk-PKJKA4CU.js.map → chunk-3ZFORMNT.js.map} +0 -0
- /package/dist/{chunk-WME2F2YY.js.map → chunk-4EJSUL62.js.map} +0 -0
- /package/dist/{chunk-WMALDOF5.js.map → chunk-4G3FGCWX.js.map} +0 -0
- /package/dist/{chunk-2PPWKCMW.js.map → chunk-4N4ENTF7.js.map} +0 -0
- /package/dist/{chunk-6CBYPMYQ.js.map → chunk-4R2CDZOQ.js.map} +0 -0
- /package/dist/{chunk-FJHNNSD3.js.map → chunk-4WK2RTVY.js.map} +0 -0
- /package/dist/{chunk-6U7NA74A.js.map → chunk-5HOJSVQH.js.map} +0 -0
- /package/dist/{chunk-GCJLMX63.js.map → chunk-67LDIJQZ.js.map} +0 -0
- /package/dist/{chunk-X4X4CVWJ.js.map → chunk-6JZE4IIN.js.map} +0 -0
- /package/dist/{chunk-OAXAF4VY.js.map → chunk-74KMXBG3.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-G7CFUI4I.js.map → chunk-7EESF76V.js.map} +0 -0
- /package/dist/{chunk-AX7UFG2U.js.map → chunk-7RZ4WOQW.js.map} +0 -0
- /package/dist/{chunk-VOOPGAQO.js.map → chunk-B7BZAIHL.js.map} +0 -0
- /package/dist/{chunk-FWCUELBU.js.map → chunk-BILE3A7F.js.map} +0 -0
- /package/dist/{chunk-XSKVBGCZ.js.map → chunk-BLBOYCOV.js.map} +0 -0
- /package/dist/{chunk-4Y65Q3CR.js.map → chunk-C52BELLW.js.map} +0 -0
- /package/dist/{chunk-RP3W6IQO.js.map → chunk-CPNSVIIB.js.map} +0 -0
- /package/dist/{chunk-T4SM36XC.js.map → chunk-D7FJ2GAD.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-W2UTDN4T.js.map → chunk-DWZ7FLA7.js.map} +0 -0
- /package/dist/{chunk-24LW52EU.js.map → chunk-DX527XPL.js.map} +0 -0
- /package/dist/{chunk-A4YWFX5C.js.map → chunk-ENNW5SKT.js.map} +0 -0
- /package/dist/{chunk-BPYPUEM5.js.map → chunk-EPNCYUQ7.js.map} +0 -0
- /package/dist/{chunk-MUAVYVDJ.js.map → chunk-EW7ZNSWU.js.map} +0 -0
- /package/dist/{chunk-DWUMMMLR.js.map → chunk-FOMK3WPG.js.map} +0 -0
- /package/dist/{chunk-RQ4EQ5FJ.js.map → chunk-FP4R47TM.js.map} +0 -0
- /package/dist/{chunk-SHQWIDD5.js.map → chunk-GJQYM3PM.js.map} +0 -0
- /package/dist/{chunk-WEH5TCPE.js.map → chunk-GSTRPZS4.js.map} +0 -0
- /package/dist/{chunk-WC3W36AM.js.map → chunk-HOJL2GKW.js.map} +0 -0
- /package/dist/{chunk-PMFW55F5.js.map → chunk-HSAH5QUQ.js.map} +0 -0
- /package/dist/{chunk-A3KY6NUA.js.map → chunk-IH4CX43Q.js.map} +0 -0
- /package/dist/{chunk-HEDOL2RV.js.map → chunk-IJIT5HQP.js.map} +0 -0
- /package/dist/{chunk-VR5HDUBK.js.map → chunk-IPS55KWK.js.map} +0 -0
- /package/dist/{chunk-ELYLG4F7.js.map → chunk-J54WH74M.js.map} +0 -0
- /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
- /package/dist/{chunk-EY4LPLIR.js.map → chunk-KQ74QU55.js.map} +0 -0
- /package/dist/{chunk-XULTDO56.js.map → chunk-KT6HWAEN.js.map} +0 -0
- /package/dist/{chunk-COSJTD6Z.js.map → chunk-KZSKI2R3.js.map} +0 -0
- /package/dist/{chunk-DQIQKIEA.js.map → chunk-L5ZZJ4XE.js.map} +0 -0
- /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
- /package/dist/{chunk-6RFL7HGI.js.map → chunk-LZRURORY.js.map} +0 -0
- /package/dist/{chunk-KXNWDXR7.js.map → chunk-M2K7BPHX.js.map} +0 -0
- /package/dist/{chunk-WLDK74RR.js.map → chunk-MSUSZLRE.js.map} +0 -0
- /package/dist/{chunk-WPR2HS5B.js.map → chunk-MUVJD26L.js.map} +0 -0
- /package/dist/{chunk-VVXRIPV5.js.map → chunk-MY5VNNSP.js.map} +0 -0
- /package/dist/{chunk-JPDKRGYI.js.map → chunk-MZQTHSLN.js.map} +0 -0
- /package/dist/{chunk-FF55LRSV.js.map → chunk-NETZMGQP.js.map} +0 -0
- /package/dist/{chunk-3QGRQNTP.js.map → chunk-NFAKRI4S.js.map} +0 -0
- /package/dist/{chunk-KSF7TLXH.js.map → chunk-NHSMLVNC.js.map} +0 -0
- /package/dist/{chunk-HQJ75HHI.js.map → chunk-NYLXHOMR.js.map} +0 -0
- /package/dist/{chunk-CXA6UNFF.js.map → chunk-OH3YGJT5.js.map} +0 -0
- /package/dist/{chunk-REMK55JI.js.map → chunk-OLZTGVBT.js.map} +0 -0
- /package/dist/{chunk-M3RIC6JI.js.map → chunk-OQXOYHIV.js.map} +0 -0
- /package/dist/{chunk-3LO5JWTC.js.map → chunk-P5YYVDAD.js.map} +0 -0
- /package/dist/{chunk-6TYSEAAT.js.map → chunk-PC5FFEIY.js.map} +0 -0
- /package/dist/{chunk-SLYZMJEL.js.map → chunk-PHCSPHDH.js.map} +0 -0
- /package/dist/{chunk-TCAB2ERD.js.map → chunk-PNYXXLPU.js.map} +0 -0
- /package/dist/{chunk-IPE5FFFD.js.map → chunk-PUBPZOQJ.js.map} +0 -0
- /package/dist/{chunk-6HNEEJES.js.map → chunk-QRX5BYUQ.js.map} +0 -0
- /package/dist/{chunk-5QXSPLWU.js.map → chunk-R6SSXEK2.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-5SYD23V4.js.map → chunk-SKZHOWTS.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-CBPQJAHX.js.map → chunk-U7RULTSH.js.map} +0 -0
- /package/dist/{chunk-RRX6ZTNX.js.map → chunk-UEJQQVP2.js.map} +0 -0
- /package/dist/{chunk-ES2RN7YV.js.map → chunk-UQHJQ26Y.js.map} +0 -0
- /package/dist/{chunk-WR6F6J43.js.map → chunk-V662PA6T.js.map} +0 -0
- /package/dist/{chunk-VJKRJYZL.js.map → chunk-VEFDL77X.js.map} +0 -0
- /package/dist/{chunk-GT7C6TSM.js.map → chunk-VNEEXUWA.js.map} +0 -0
- /package/dist/{chunk-N34YHFZW.js.map → chunk-W2YNUUVJ.js.map} +0 -0
- /package/dist/{chunk-N4WANJI3.js.map → chunk-WBVHRLIS.js.map} +0 -0
- /package/dist/{chunk-MHFJBNDP.js.map → chunk-WO52KYSU.js.map} +0 -0
- /package/dist/{chunk-CLNTJM3F.js.map → chunk-WUPVHIMD.js.map} +0 -0
- /package/dist/{chunk-ZBOFBRZC.js.map → chunk-WX7VWW3W.js.map} +0 -0
- /package/dist/{chunk-SRMWCN5D.js.map → chunk-X5BHPSAC.js.map} +0 -0
- /package/dist/{chunk-MD6T7MDT.js.map → chunk-XKMFIH27.js.map} +0 -0
- /package/dist/{chunk-T53L42XW.js.map → chunk-XSJWN3WH.js.map} +0 -0
- /package/dist/{chunk-AVU6KU27.js.map → chunk-XXDXW6TX.js.map} +0 -0
- /package/dist/{chunk-45OIUWGO.js.map → chunk-YNQGXSDD.js.map} +0 -0
- /package/dist/{chunk-5VVM2PPV.js.map → chunk-ZEBJT5JZ.js.map} +0 -0
- /package/dist/{chunk-DJORMYOV.js.map → chunk-ZU3SWR4I.js.map} +0 -0
|
@@ -5,8 +5,24 @@ import Typography from '@mui/material/Typography/index.js';
|
|
|
5
5
|
import { alpha, styled } from '@mui/material/styles/index.js';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
+
import {
|
|
9
|
+
CAPTION_FONT_SIZE,
|
|
10
|
+
CAPTION_LETTER_SPACING_EM,
|
|
11
|
+
CAPTION_OPACITY,
|
|
12
|
+
CODE_BACKGROUND_ALPHA,
|
|
13
|
+
CODE_BORDER_ALPHA,
|
|
14
|
+
CODE_FONT_SIZE,
|
|
15
|
+
CODE_PADDING,
|
|
16
|
+
CODE_RADIUS_FACTOR,
|
|
17
|
+
HEADING_DEFAULT_WEIGHT,
|
|
18
|
+
HEADING_LETTER_SPACING_EM,
|
|
19
|
+
TEXT_SIZES,
|
|
20
|
+
TEXT_WEIGHTS,
|
|
21
|
+
} from './Text.metrics';
|
|
8
22
|
import type { TextProps } from './Text.types';
|
|
23
|
+
import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
9
24
|
import type { ColorValue } from '../../../tokens/scales';
|
|
25
|
+
import { px } from '../../../tokens/theme';
|
|
10
26
|
|
|
11
27
|
const getColorFromTheme = (theme: Theme, color: ColorValue): string => {
|
|
12
28
|
if (color === 'neutral') {
|
|
@@ -32,21 +48,16 @@ const getColorFromTheme = (theme: Theme, color: ColorValue): string => {
|
|
|
32
48
|
return colorMap[color];
|
|
33
49
|
};
|
|
34
50
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
51
|
+
// Derived from the shared metrics, not restated: the native `Text` reads the
|
|
52
|
+
// same table, so the two renderers cannot disagree on a size.
|
|
53
|
+
const SIZE_MAP: Record<string, { fontSize: string; lineHeight: number }> = Object.fromEntries(
|
|
54
|
+
Object.entries(TEXT_SIZES).map(([size, step]) => [
|
|
55
|
+
size,
|
|
56
|
+
{ fontSize: px(step.fontSize), lineHeight: step.lineHeight },
|
|
57
|
+
]),
|
|
58
|
+
);
|
|
42
59
|
|
|
43
|
-
const WEIGHT_MAP: Record<string, number> =
|
|
44
|
-
light: 300,
|
|
45
|
-
normal: 400,
|
|
46
|
-
medium: 500,
|
|
47
|
-
semibold: 600,
|
|
48
|
-
bold: 700,
|
|
49
|
-
};
|
|
60
|
+
const WEIGHT_MAP: Record<string, number> = TEXT_WEIGHTS;
|
|
50
61
|
|
|
51
62
|
interface TextStyleArgs {
|
|
52
63
|
theme: Theme;
|
|
@@ -87,25 +98,25 @@ const textVariantStyles = (theme: Theme, a: TextStyleArgs, base: CSSObject): CSS
|
|
|
87
98
|
return {
|
|
88
99
|
...base,
|
|
89
100
|
fontFamily: theme.typography.h4.fontFamily,
|
|
90
|
-
fontWeight: weight === 'normal' ?
|
|
91
|
-
letterSpacing:
|
|
101
|
+
fontWeight: weight === 'normal' ? HEADING_DEFAULT_WEIGHT : WEIGHT_MAP[weight],
|
|
102
|
+
letterSpacing: `${HEADING_LETTER_SPACING_EM}em`,
|
|
92
103
|
};
|
|
93
104
|
case 'caption':
|
|
94
105
|
return {
|
|
95
106
|
...base,
|
|
96
|
-
fontSize: sizeOverride(a.customSize,
|
|
97
|
-
opacity:
|
|
98
|
-
letterSpacing:
|
|
107
|
+
fontSize: sizeOverride(a.customSize, px(CAPTION_FONT_SIZE)),
|
|
108
|
+
opacity: CAPTION_OPACITY,
|
|
109
|
+
letterSpacing: `${CAPTION_LETTER_SPACING_EM}em`,
|
|
99
110
|
};
|
|
100
111
|
case 'code':
|
|
101
112
|
return {
|
|
102
113
|
...base,
|
|
103
114
|
fontFamily: 'Monaco, Menlo, "Ubuntu Mono", "Courier New", monospace',
|
|
104
|
-
fontSize: sizeOverride(a.customSize,
|
|
105
|
-
backgroundColor: alpha(theme.palette.primary.main,
|
|
106
|
-
padding:
|
|
107
|
-
borderRadius: theme.shape.borderRadius
|
|
108
|
-
border: `1px solid ${alpha(theme.palette.primary.main,
|
|
115
|
+
fontSize: sizeOverride(a.customSize, px(CODE_FONT_SIZE)),
|
|
116
|
+
backgroundColor: alpha(theme.palette.primary.main, CODE_BACKGROUND_ALPHA),
|
|
117
|
+
padding: `${CODE_PADDING.vertical}px ${CODE_PADDING.horizontal}px`,
|
|
118
|
+
borderRadius: theme.shape.borderRadius * CODE_RADIUS_FACTOR,
|
|
119
|
+
border: `1px solid ${alpha(theme.palette.primary.main, CODE_BORDER_ALPHA)}`,
|
|
109
120
|
};
|
|
110
121
|
default:
|
|
111
122
|
return { ...base, fontFamily: theme.typography.body1.fontFamily };
|
|
@@ -148,12 +159,18 @@ export const Text = React.forwardRef<HTMLElement, TextProps>(
|
|
|
148
159
|
underline = false,
|
|
149
160
|
strikethrough = false,
|
|
150
161
|
children,
|
|
151
|
-
...
|
|
162
|
+
...others
|
|
152
163
|
},
|
|
153
164
|
ref,
|
|
154
|
-
) =>
|
|
165
|
+
) => {
|
|
166
|
+
// `testID` and `dataTestId` are the shared contract's spellings; the DOM
|
|
167
|
+
// wants `data-testid`, and must not see the other two as attributes.
|
|
168
|
+
const testId = resolveTestId(others);
|
|
169
|
+
const props = withoutTestIdProps(others);
|
|
170
|
+
return (
|
|
155
171
|
<StyledText
|
|
156
172
|
ref={ref}
|
|
173
|
+
data-testid={testId}
|
|
157
174
|
customVariant={variant}
|
|
158
175
|
customColor={color}
|
|
159
176
|
customSize={size}
|
|
@@ -166,7 +183,8 @@ export const Text = React.forwardRef<HTMLElement, TextProps>(
|
|
|
166
183
|
>
|
|
167
184
|
{children}
|
|
168
185
|
</StyledText>
|
|
169
|
-
)
|
|
186
|
+
);
|
|
187
|
+
},
|
|
170
188
|
);
|
|
171
189
|
|
|
172
190
|
Text.displayName = 'Text';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StyleProp, TextProps as RNTextProps, TextStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import type { TextBaseProps } from './Text.base';
|
|
4
|
+
|
|
5
|
+
export type { TextBaseProps, TextVariant, TextWeight } from './Text.base';
|
|
6
|
+
|
|
7
|
+
/** The native `Text`: the shared contract, plus a react-native `Text`'s own props. */
|
|
8
|
+
export type TextProps = TextBaseProps &
|
|
9
|
+
Omit<RNTextProps, keyof TextBaseProps | 'style'> & {
|
|
10
|
+
style?: StyleProp<TextStyle>;
|
|
11
|
+
};
|
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
import type { ColorValue, SizeValue } from '../../../tokens/scales';
|
|
2
1
|
import type React from 'react';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import type { TextBaseProps } from './Text.base';
|
|
5
4
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
export type { TextBaseProps, TextVariant, TextWeight } from './Text.base';
|
|
6
|
+
|
|
7
|
+
export interface TextProps
|
|
8
|
+
extends TextBaseProps,
|
|
9
|
+
Omit<React.HTMLAttributes<HTMLSpanElement>, 'color' | 'children'> {
|
|
11
10
|
as?: keyof React.JSX.IntrinsicElements;
|
|
12
|
-
|
|
13
|
-
underline?: boolean;
|
|
14
|
-
strikethrough?: boolean;
|
|
15
|
-
children: React.ReactNode;
|
|
16
|
-
}
|
|
11
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { Text } from './Text';
|
|
2
|
-
export type { TextProps } from './Text.types';
|
|
2
|
+
export type { TextBaseProps, TextProps, TextVariant, TextWeight } from './Text.types';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Icon
|
|
2
|
+
|
|
3
|
+
One glyph name, both renderers.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { Icon } from '@12-apps/ui/icons';
|
|
7
|
+
|
|
8
|
+
<Icon name="Close" size="sm" color="neutral" label="Fechar" />
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The web `Icon` is MUI's `SvgIcon` drawing a path; the native `Icon` is
|
|
12
|
+
`react-native-svg` drawing the same path in the same 24-unit box. The path data
|
|
13
|
+
is **generated** from the installed `@mui/icons-material` by
|
|
14
|
+
`scripts/generate-icon-paths.mjs` into `src/icons/paths.generated.ts`, from the
|
|
15
|
+
list in `src/icons/glyphs.json`. Adding a glyph is one line there and
|
|
16
|
+
`pnpm icons:generate`; `pnpm icons:check` fails CI when the two drift.
|
|
17
|
+
|
|
18
|
+
| prop | type | notes |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| `name` | `IconName` | one of `glyphs.json` |
|
|
21
|
+
| `size` | `xs` `sm` `md` `lg` `xl` or a px number | 16, 20, 24 (MUI's default), 32, 40 |
|
|
22
|
+
| `color` | a house colour, `inherit`, or any CSS colour | `inherit` is the surrounding text on the web and the theme's primary text on native, which has no `currentColor` |
|
|
23
|
+
| `label` | `string` | the accessible name; omit for a decorative glyph, which is then `aria-hidden` on both sides |
|
|
24
|
+
| `testID` / `dataTestId` | `string` | defaults to `icon-<name>` |
|
|
25
|
+
|
|
26
|
+
Inside the package, a ported component draws its own glyphs through this
|
|
27
|
+
component rather than importing `@mui/icons-material` directly, so its native
|
|
28
|
+
twin can draw the same one.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
import Svg, { Path } from 'react-native-svg';
|
|
4
|
+
|
|
5
|
+
import { iconFill } from './icon-color';
|
|
6
|
+
import { iconSize, type IconBaseProps } from './Icon.types';
|
|
7
|
+
import { ICON_PATHS } from './paths.generated';
|
|
8
|
+
import { resolveTestId } from '../platform/test-id';
|
|
9
|
+
import { useUiTheme } from '../provider/use-ui-theme.native';
|
|
10
|
+
|
|
11
|
+
export interface IconProps extends IconBaseProps {
|
|
12
|
+
style?: StyleProp<ViewStyle>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The native `Icon`: `react-native-svg` drawing the same generated path the web
|
|
17
|
+
* `SvgIcon` draws, in the same 24-unit box, at the same px size.
|
|
18
|
+
*/
|
|
19
|
+
export function Icon({ name, size, color, label, style, ...rest }: IconProps): React.JSX.Element {
|
|
20
|
+
const theme = useUiTheme();
|
|
21
|
+
const px = iconSize(size);
|
|
22
|
+
const fill = iconFill(theme, color, theme.palette.text.primary);
|
|
23
|
+
const testId = resolveTestId(rest, `icon-${name}`);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<Svg
|
|
27
|
+
width={px}
|
|
28
|
+
height={px}
|
|
29
|
+
viewBox="0 0 24 24"
|
|
30
|
+
fill={fill}
|
|
31
|
+
style={style}
|
|
32
|
+
testID={testId}
|
|
33
|
+
role="img"
|
|
34
|
+
aria-label={label}
|
|
35
|
+
aria-hidden={!label}
|
|
36
|
+
>
|
|
37
|
+
{ICON_PATHS[name].map((d) => (
|
|
38
|
+
<Path key={d} d={d} fill={fill} />
|
|
39
|
+
))}
|
|
40
|
+
</Svg>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
Icon.displayName = 'Icon';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import SvgIcon from '@mui/material/SvgIcon/index.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
import { iconFill } from './icon-color';
|
|
5
|
+
import { iconSize, type IconBaseProps } from './Icon.types';
|
|
6
|
+
import { ICON_PATHS } from './paths.generated';
|
|
7
|
+
import { resolveTestId } from '../platform/test-id';
|
|
8
|
+
import { useUiTheme } from '../provider/use-ui-theme';
|
|
9
|
+
|
|
10
|
+
export interface IconProps extends IconBaseProps {
|
|
11
|
+
className?: string;
|
|
12
|
+
style?: React.CSSProperties;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The web `Icon`: MUI's `SvgIcon` drawing the generated path, so a glyph named
|
|
17
|
+
* here is pixel-for-pixel the one `@mui/icons-material` would draw — and the one
|
|
18
|
+
* the native `Icon` draws from the same path data.
|
|
19
|
+
*/
|
|
20
|
+
export const Icon = React.forwardRef<SVGSVGElement, IconProps>(
|
|
21
|
+
({ name, size, color, label, className, style, ...rest }, ref) => {
|
|
22
|
+
const theme = useUiTheme();
|
|
23
|
+
const px = iconSize(size);
|
|
24
|
+
const fill = iconFill(theme, color, 'currentColor');
|
|
25
|
+
const testId = resolveTestId(rest, `icon-${name}`);
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<SvgIcon
|
|
29
|
+
ref={ref}
|
|
30
|
+
viewBox="0 0 24 24"
|
|
31
|
+
className={className}
|
|
32
|
+
style={style}
|
|
33
|
+
sx={{ fontSize: px, color: fill }}
|
|
34
|
+
titleAccess={label}
|
|
35
|
+
aria-hidden={label ? undefined : true}
|
|
36
|
+
data-testid={testId}
|
|
37
|
+
data-icon={name}
|
|
38
|
+
>
|
|
39
|
+
{ICON_PATHS[name].map((d) => (
|
|
40
|
+
<path key={d} d={d} />
|
|
41
|
+
))}
|
|
42
|
+
</SvgIcon>
|
|
43
|
+
);
|
|
44
|
+
},
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
Icon.displayName = 'Icon';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { IconName } from './paths.generated';
|
|
2
|
+
import type { ColorValue, SizeValue } from '../tokens/vocabulary';
|
|
3
|
+
|
|
4
|
+
export type { IconName };
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* The glyph sizes, in px. `md` is MUI's `SvgIcon` default (24) and `sm` its
|
|
8
|
+
* `small` (20); the rest continue the house scale in 4px steps either side.
|
|
9
|
+
*/
|
|
10
|
+
export const ICON_SIZES: Record<SizeValue, number> = {
|
|
11
|
+
xs: 16,
|
|
12
|
+
sm: 20,
|
|
13
|
+
md: 24,
|
|
14
|
+
lg: 32,
|
|
15
|
+
xl: 40,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export interface IconBaseProps {
|
|
19
|
+
/** Which glyph. The list is `src/icons/glyphs.json`; both renderers draw the same paths. */
|
|
20
|
+
name: IconName;
|
|
21
|
+
/** A step of the house scale, or an exact px size. */
|
|
22
|
+
size?: SizeValue | number;
|
|
23
|
+
/**
|
|
24
|
+
* A house colour, `inherit` (the surrounding text's colour on the web, the
|
|
25
|
+
* theme's primary text on native, which has no `currentColor`), or any CSS
|
|
26
|
+
* colour string.
|
|
27
|
+
*/
|
|
28
|
+
color?: ColorValue | 'inherit' | string;
|
|
29
|
+
/**
|
|
30
|
+
* The name a screen reader gives the glyph. Omit for a decorative icon: it
|
|
31
|
+
* is then hidden from assistive technology on both renderers.
|
|
32
|
+
*/
|
|
33
|
+
label?: string;
|
|
34
|
+
testID?: string;
|
|
35
|
+
dataTestId?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** The px size for either spelling of `size`. */
|
|
39
|
+
export const iconSize = (size: SizeValue | number | undefined): number =>
|
|
40
|
+
typeof size === 'number' ? size : ICON_SIZES[size ?? 'md'];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
[
|
|
2
|
+
"Add",
|
|
3
|
+
"ArrowBack",
|
|
4
|
+
"ArrowDownward",
|
|
5
|
+
"ArrowForward",
|
|
6
|
+
"ArrowUpward",
|
|
7
|
+
"Check",
|
|
8
|
+
"CheckCircle",
|
|
9
|
+
"ChevronLeft",
|
|
10
|
+
"ChevronRight",
|
|
11
|
+
"Close",
|
|
12
|
+
"ContentCopy",
|
|
13
|
+
"Delete",
|
|
14
|
+
"Edit",
|
|
15
|
+
"Error",
|
|
16
|
+
"ErrorOutline",
|
|
17
|
+
"ExpandLess",
|
|
18
|
+
"ExpandMore",
|
|
19
|
+
"FilterList",
|
|
20
|
+
"Info",
|
|
21
|
+
"InfoOutlined",
|
|
22
|
+
"KeyboardArrowDown",
|
|
23
|
+
"KeyboardArrowUp",
|
|
24
|
+
"Menu",
|
|
25
|
+
"MoreHoriz",
|
|
26
|
+
"MoreVert",
|
|
27
|
+
"NavigateBefore",
|
|
28
|
+
"NavigateNext",
|
|
29
|
+
"Person",
|
|
30
|
+
"Refresh",
|
|
31
|
+
"Remove",
|
|
32
|
+
"Save",
|
|
33
|
+
"Search",
|
|
34
|
+
"Settings",
|
|
35
|
+
"Visibility",
|
|
36
|
+
"VisibilityOff",
|
|
37
|
+
"Warning",
|
|
38
|
+
"WarningAmber"
|
|
39
|
+
]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { COLOR_VALUES, type ColorValue } from '../tokens/vocabulary';
|
|
2
|
+
import type { UiTheme } from '../tokens/theme';
|
|
3
|
+
|
|
4
|
+
const isColorValue = (color: string): color is ColorValue =>
|
|
5
|
+
(COLOR_VALUES as readonly string[]).includes(color);
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The fill for an icon's `color` prop, on either renderer.
|
|
9
|
+
*
|
|
10
|
+
* A house colour resolves to the palette slot's `main`; `inherit` is the
|
|
11
|
+
* caller's problem (the web passes `currentColor`, native the text colour); any
|
|
12
|
+
* other string is taken as a CSS colour and passed through.
|
|
13
|
+
*/
|
|
14
|
+
export function iconFill(theme: UiTheme, color: string | undefined, inherit: string): string {
|
|
15
|
+
if (color === undefined || color === 'inherit') return inherit;
|
|
16
|
+
if (isColorValue(color)) {
|
|
17
|
+
return color === 'neutral' ? theme.palette.text.secondary : theme.palette[color].main;
|
|
18
|
+
}
|
|
19
|
+
return color;
|
|
20
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// GENERATED by scripts/generate-icon-paths.mjs from src/icons/glyphs.json.
|
|
2
|
+
// Do not edit: run `pnpm icons:generate`; `pnpm icons:check` fails CI on drift.
|
|
3
|
+
//
|
|
4
|
+
// Each entry is the `d` of every <path> in the matching @mui/icons-material
|
|
5
|
+
// module, in a 24x24 viewBox — the SAME geometry the web renders through
|
|
6
|
+
// SvgIcon, so the native Icon draws the identical glyph.
|
|
7
|
+
|
|
8
|
+
/** Path data per glyph, in a 0 0 24 24 viewBox. */
|
|
9
|
+
export const ICON_PATHS = {
|
|
10
|
+
Add: ["M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"],
|
|
11
|
+
ArrowBack: ["M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"],
|
|
12
|
+
ArrowDownward: ["m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8z"],
|
|
13
|
+
ArrowForward: ["m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"],
|
|
14
|
+
ArrowUpward: ["m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"],
|
|
15
|
+
Check: ["M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"],
|
|
16
|
+
CheckCircle: ["M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8z"],
|
|
17
|
+
ChevronLeft: ["M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"],
|
|
18
|
+
ChevronRight: ["M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],
|
|
19
|
+
Close: ["M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"],
|
|
20
|
+
ContentCopy: ["M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2m0 16H8V7h11z"],
|
|
21
|
+
Delete: ["M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM19 4h-3.5l-1-1h-5l-1 1H5v2h14z"],
|
|
22
|
+
Edit: ["M3 17.25V21h3.75L17.81 9.94l-3.75-3.75zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75z"],
|
|
23
|
+
Error: ["M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"],
|
|
24
|
+
ErrorOutline: ["M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"],
|
|
25
|
+
ExpandLess: ["m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"],
|
|
26
|
+
ExpandMore: ["M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"],
|
|
27
|
+
FilterList: ["M10 18h4v-2h-4zM3 6v2h18V6zm3 7h12v-2H6z"],
|
|
28
|
+
Info: ["M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-6h2zm0-8h-2V7h2z"],
|
|
29
|
+
InfoOutlined: ["M11 7h2v2h-2zm0 4h2v6h-2zm1-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8"],
|
|
30
|
+
KeyboardArrowDown: ["M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6z"],
|
|
31
|
+
KeyboardArrowUp: ["M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"],
|
|
32
|
+
Menu: ["M3 18h18v-2H3zm0-5h18v-2H3zm0-7v2h18V6z"],
|
|
33
|
+
MoreHoriz: ["M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"],
|
|
34
|
+
MoreVert: ["M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2m0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2"],
|
|
35
|
+
NavigateBefore: ["M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z"],
|
|
36
|
+
NavigateNext: ["M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"],
|
|
37
|
+
Person: ["M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"],
|
|
38
|
+
Refresh: ["M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"],
|
|
39
|
+
Remove: ["M19 13H5v-2h14z"],
|
|
40
|
+
Save: ["M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3m3-10H5V5h10z"],
|
|
41
|
+
Search: ["M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14"],
|
|
42
|
+
Settings: ["M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6"],
|
|
43
|
+
Visibility: ["M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5M12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5m0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3"],
|
|
44
|
+
VisibilityOff: ["M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7M2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2m4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3z"],
|
|
45
|
+
Warning: ["M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"],
|
|
46
|
+
WarningAmber: ["M12 5.99 19.53 19H4.47zM12 2 1 21h22z","M13 16h-2v2h2zm0-6h-2v5h2z"],
|
|
47
|
+
} as const;
|
|
48
|
+
|
|
49
|
+
export type IconName = keyof typeof ICON_PATHS;
|
|
50
|
+
|
|
51
|
+
export const ICON_NAMES = Object.keys(ICON_PATHS) as readonly IconName[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One test id, three spellings.
|
|
3
|
+
*
|
|
4
|
+
* The web components take `dataTestId` and forward it as `data-testid`; the
|
|
5
|
+
* existing test stories pass `'data-testid'` straight through as an unknown
|
|
6
|
+
* prop; React Native calls the same thing `testID`, and react-native-web turns
|
|
7
|
+
* THAT back into `data-testid`. A native component that honoured only one of
|
|
8
|
+
* the three would pass its own unit tests and fail the shared stories.
|
|
9
|
+
*/
|
|
10
|
+
export interface TestIdProps {
|
|
11
|
+
testID?: string;
|
|
12
|
+
dataTestId?: string;
|
|
13
|
+
'data-testid'?: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/** The id the caller asked for under any of the three names, else `fallback`. */
|
|
17
|
+
export function resolveTestId(props: TestIdProps, fallback?: string): string | undefined {
|
|
18
|
+
return props.testID ?? props.dataTestId ?? props['data-testid'] ?? fallback;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/** `${id}-${suffix}` for a sub-element, or `${fallback}-${suffix}` when unnamed. */
|
|
22
|
+
export function childTestId(
|
|
23
|
+
props: TestIdProps,
|
|
24
|
+
suffix: string,
|
|
25
|
+
fallback: string,
|
|
26
|
+
): string {
|
|
27
|
+
return `${resolveTestId(props, fallback) ?? fallback}-${suffix}`;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** `props` without any of the three spellings, for spreading onto a native element. */
|
|
31
|
+
export function withoutTestIdProps<P extends TestIdProps>(props: P): Omit<P, keyof TestIdProps> {
|
|
32
|
+
const { testID: _testID, dataTestId: _dataTestId, 'data-testid': _dataTestid, ...rest } = props;
|
|
33
|
+
return rest;
|
|
34
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import { UiThemeContext } from './ui-theme-context';
|
|
4
|
+
import { isUiTheme, type UiProviderProps } from './UiProvider.types';
|
|
5
|
+
import { createUiTheme } from '../tokens/theme';
|
|
6
|
+
|
|
7
|
+
/** The native `UiProvider`: the theme every native component reads. */
|
|
8
|
+
export function UiProvider({ theme, children }: UiProviderProps): React.JSX.Element {
|
|
9
|
+
const ui = React.useMemo(() => (isUiTheme(theme) ? theme : createUiTheme(theme)), [theme]);
|
|
10
|
+
return <UiThemeContext.Provider value={ui}>{children}</UiThemeContext.Provider>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
UiProvider.displayName = 'UiProvider';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createTheme, ThemeProvider } from '@mui/material/styles/index.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
|
|
4
|
+
import { muiThemeOptionsFrom } from './mui-bridge';
|
|
5
|
+
import { isUiTheme, type UiProviderProps } from './UiProvider.types';
|
|
6
|
+
import { createUiTheme } from '../tokens/theme';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The same provider name on both renderers.
|
|
10
|
+
*
|
|
11
|
+
* On the web it is a MUI `ThemeProvider` fed from a `UiTheme`, for a host that
|
|
12
|
+
* has no MUI theme of its own. A host that already mounts one (every origin app
|
|
13
|
+
* does) needs nothing from this file: the web components read MUI's theme, and
|
|
14
|
+
* `useUiTheme` derives the neutral view from it.
|
|
15
|
+
*/
|
|
16
|
+
export function UiProvider({ theme, children }: UiProviderProps): React.JSX.Element {
|
|
17
|
+
const ui = React.useMemo(() => (isUiTheme(theme) ? theme : createUiTheme(theme)), [theme]);
|
|
18
|
+
const mui = React.useMemo(() => createTheme(muiThemeOptionsFrom(ui)), [ui]);
|
|
19
|
+
return <ThemeProvider theme={mui}>{children}</ThemeProvider>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
UiProvider.displayName = 'UiProvider';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { UiTheme, UiThemeOptions } from '../tokens/theme';
|
|
4
|
+
|
|
5
|
+
export interface UiProviderProps {
|
|
6
|
+
/**
|
|
7
|
+
* A built `UiTheme`, or the options to build one. Omit for the package
|
|
8
|
+
* default: the platform's light theme.
|
|
9
|
+
*/
|
|
10
|
+
theme?: UiTheme | UiThemeOptions;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Options may carry a `palette` too (the seeds), so the discriminant is the
|
|
16
|
+
* one thing only a BUILT theme has: `spacing` as a function. Options carry a
|
|
17
|
+
* numeric `spacingUnit` instead.
|
|
18
|
+
*/
|
|
19
|
+
export const isUiTheme = (theme: UiTheme | UiThemeOptions | undefined): theme is UiTheme =>
|
|
20
|
+
theme !== undefined && 'palette' in theme && 'spacing' in theme && typeof theme.spacing === 'function';
|