@12-apps/ui 6.20.0 → 6.22.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 +10 -4
- package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -8
- package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
- package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +6 -6
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +3 -3
- package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -3
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +49 -48
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +72 -65
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +9 -6
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -7
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +20 -13
- package/dist/_internal/components/data-display/DataViews/base-card.js +12 -8
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
- package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +10 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +18 -15
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +17 -15
- package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-empty.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-export.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +20 -18
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -45
- package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +23 -22
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +8 -8
- package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +14 -14
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +27 -20
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +13 -13
- package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +4 -4
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
- package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -3
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
- package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
- package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -3
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +3 -3
- package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +4 -4
- 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/Progress/Progress.js +2 -2
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
- package/dist/_internal/components/data-display/StatCard/StatCard.js +4 -4
- package/dist/_internal/components/data-display/index.js +50 -50
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
- package/dist/_internal/components/feedback/Dialog/Dialog.base.js +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.base.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js +12 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.js +6 -2
- package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js +42 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js.map +1 -0
- package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +3 -1
- package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
- package/dist/_internal/components/feedback/index.js +14 -11
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +11 -9
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +7 -5
- package/dist/_internal/components/form/AddressAutocomplete/AddressFallbackField.js +5 -3
- package/dist/_internal/components/form/AddressAutocomplete/AddressInputField.js +5 -3
- package/dist/_internal/components/form/AddressAutocomplete/AddressTextField.js +4 -2
- package/dist/_internal/components/form/Button/Button.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +10 -8
- package/dist/_internal/components/form/CategorySelect/CategoryPanelFoot.js +5 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanelHead.js +5 -3
- package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +6 -4
- package/dist/_internal/components/form/CategorySelect/CategoryRows.js +5 -3
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +13 -11
- package/dist/_internal/components/form/CategorySelect/CategorySelect.styles.js +4 -2
- package/dist/_internal/components/form/CategorySelect/CategoryTrigger.js +5 -3
- package/dist/_internal/components/form/CepField/CepField.js +10 -4
- package/dist/_internal/components/form/Checkbox/Checkbox.base.js +1 -0
- package/dist/_internal/components/form/Checkbox/Checkbox.base.js.map +1 -0
- package/dist/_internal/components/form/Checkbox/Checkbox.helpers.js +2 -1
- package/dist/_internal/components/form/Checkbox/Checkbox.js +9 -2
- package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js +34 -0
- package/dist/_internal/components/form/Checkbox/Checkbox.metrics.js.map +1 -0
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +5 -3
- package/dist/_internal/components/form/CreatableSelect/CreatableSelect.js +4 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
- package/dist/_internal/components/form/Input/Input.base.js +1 -0
- package/dist/_internal/components/form/Input/Input.base.js.map +1 -0
- package/dist/_internal/components/form/Input/Input.helpers.js +23 -0
- package/dist/_internal/components/form/Input/Input.helpers.js.map +1 -0
- package/dist/_internal/components/form/Input/Input.js +9 -3
- package/dist/_internal/components/form/Input/Input.metrics.js +53 -0
- package/dist/_internal/components/form/Input/Input.metrics.js.map +1 -0
- package/dist/_internal/components/form/Input/Input.styles.js +10 -4
- package/dist/_internal/components/form/InputOTP/InputOTP.js +5 -3
- package/dist/_internal/components/form/InputOTP/InputOTP.styles.js +4 -2
- package/dist/_internal/components/form/Label/Label.js +2 -2
- package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
- package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -2
- package/dist/_internal/components/form/RadioGroup/RadioGroup.js +6 -4
- package/dist/_internal/components/form/RadioGroup/RadioGroup.styles.js +4 -2
- package/dist/_internal/components/form/RadioGroup/RadioGroup.variants.js +5 -3
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +4 -2
- package/dist/_internal/components/form/Select/Select.base.js +1 -0
- package/dist/_internal/components/form/Select/Select.base.js.map +1 -0
- package/dist/_internal/components/form/Select/Select.helpers.js +48 -0
- package/dist/_internal/components/form/Select/Select.helpers.js.map +1 -0
- package/dist/_internal/components/form/Select/Select.js +10 -2
- package/dist/_internal/components/form/Select/Select.metrics.js +38 -0
- package/dist/_internal/components/form/Select/Select.metrics.js.map +1 -0
- package/dist/_internal/components/form/Switch/Switch.base.js +1 -0
- package/dist/_internal/components/form/Switch/Switch.base.js.map +1 -0
- package/dist/_internal/components/form/Switch/Switch.helpers.js +59 -0
- package/dist/_internal/components/form/Switch/Switch.helpers.js.map +1 -0
- package/dist/_internal/components/form/Switch/Switch.js +9 -3
- package/dist/_internal/components/form/Switch/Switch.metrics.js +83 -0
- package/dist/_internal/components/form/Switch/Switch.metrics.js.map +1 -0
- package/dist/_internal/components/form/Switch/Switch.parts.js +7 -2
- package/dist/_internal/components/form/Switch/Switch.styles.js +6 -1
- package/dist/_internal/components/form/Textarea/Textarea.js +5 -3
- package/dist/_internal/components/form/Textarea/Textarea.styles.js +4 -2
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +4 -2
- package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
- package/dist/_internal/components/form/Toggle/Toggle.js +5 -3
- package/dist/_internal/components/form/Toggle/Toggle.styles.js +4 -2
- package/dist/_internal/components/form/index.js +46 -40
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +14 -12
- package/dist/_internal/components/form/total-form/Fields/CepField.js +11 -5
- package/dist/_internal/components/form/total-form/Fields/SelectField.js +11 -3
- package/dist/_internal/components/form/total-form/Fields/TextField.js +10 -4
- package/dist/_internal/components/form/total-form/Fields/index.js +32 -24
- package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
- package/dist/_internal/components/index.js +138 -128
- package/dist/_internal/components/layout/Box/Box.js +2 -2
- package/dist/_internal/components/layout/Card/Card.base.js +1 -0
- package/dist/_internal/components/layout/Card/Card.base.js.map +1 -0
- package/dist/_internal/components/layout/Card/Card.helpers.js +1 -1
- package/dist/_internal/components/layout/Card/Card.js +6 -3
- package/dist/_internal/components/layout/Card/Card.metrics.js +44 -0
- package/dist/_internal/components/layout/Card/Card.metrics.js.map +1 -0
- package/dist/_internal/components/layout/Card/Card.styles.js +3 -1
- package/dist/_internal/components/layout/Container/Container.js +2 -2
- package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
- package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -3
- package/dist/_internal/components/layout/Spacer/Spacer.js +2 -2
- package/dist/_internal/components/layout/Stack/Stack.js +3 -3
- package/dist/_internal/components/layout/index.js +22 -20
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +12 -9
- 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/index.js +20 -17
- package/dist/_internal/components/typography/Heading/Heading.js +2 -2
- package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -2
- package/dist/_internal/components/typography/Text/Text.js +2 -2
- package/dist/_internal/components/typography/index.js +4 -4
- package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
- package/dist/_internal/components/utility/index.js +2 -2
- package/dist/_internal/icons/Icon.js +3 -3
- package/dist/_internal/icons/paths.generated.js +1 -1
- package/dist/_internal/platform/aria.js +17 -1
- package/dist/_internal/platform/aria.js.map +1 -1
- package/dist/_internal/platform/test-id.js +5 -1
- package/dist/_internal/social-login-button/social-login-button.js +10 -8
- package/dist/_internal/tokens/field-edge.core.js +11 -0
- package/dist/_internal/tokens/field-edge.core.js.map +1 -0
- package/dist/_internal/tokens/field-edge.js +5 -2
- package/dist/_internal/tokens/mui-type.js +1 -0
- package/dist/_internal/tokens/mui-type.js.map +1 -1
- package/dist/_internal/tokens/shadow.js +18 -0
- package/dist/_internal/tokens/shadow.js.map +1 -0
- package/dist/_internal/user-avatar/user-avatar.js +9 -7
- package/dist/charts.js +11 -11
- package/dist/{chunk-MBYO2F4Y.js → chunk-25R3ITGZ.js} +6 -6
- package/dist/chunk-2ECT4IY2.js +250 -0
- package/dist/chunk-2ECT4IY2.js.map +1 -0
- package/dist/{chunk-KQ74QU55.js → chunk-2FDBR77W.js} +3 -3
- package/dist/{chunk-D7FJ2GAD.js → chunk-2HPP6RVC.js} +2 -2
- package/dist/{chunk-B2A4DG77.js → chunk-2MMEIN4T.js} +6 -6
- package/dist/{chunk-YRUCIKPO.js → chunk-2UYR2OOE.js} +4 -4
- package/dist/{chunk-2PCOC3PT.js → chunk-343TTIHD.js} +2 -2
- package/dist/{chunk-DQHC5P64.js → chunk-3FLVIVOK.js} +3 -3
- package/dist/{chunk-URWGRPL7.js → chunk-3W7IEWEL.js} +2 -2
- package/dist/{chunk-47UD6DZ4.js → chunk-4523RYE7.js} +5 -5
- package/dist/{chunk-AEGX66N7.js → chunk-4IVOHL32.js} +2 -2
- package/dist/{chunk-OQXOYHIV.js → chunk-4OHRZW7U.js} +48 -40
- package/dist/chunk-4OHRZW7U.js.map +1 -0
- package/dist/{chunk-GGE7Y53F.js → chunk-4TXIZ5WI.js} +2 -2
- package/dist/{chunk-IJIT5HQP.js → chunk-4X4KM4ZB.js} +4 -4
- package/dist/{chunk-6PRA45LC.js → chunk-5KEMPCW4.js} +54 -45
- package/dist/chunk-5KEMPCW4.js.map +1 -0
- package/dist/{chunk-M7OHXNLF.js → chunk-5NKUYCZD.js} +3 -3
- package/dist/{chunk-C52BELLW.js → chunk-5OIH36KX.js} +3 -3
- package/dist/chunk-5ZNU2U4D.js +41 -0
- package/dist/chunk-5ZNU2U4D.js.map +1 -0
- package/dist/{chunk-LMJBINWN.js → chunk-5ZTUP65G.js} +7 -7
- package/dist/{chunk-EX3PSZLV.js → chunk-67L7HMEP.js} +3 -3
- package/dist/{chunk-2EKALM6P.js → chunk-6JGPPTLX.js} +5 -5
- package/dist/{chunk-LZRURORY.js → chunk-6NZTYZP5.js} +4 -4
- package/dist/chunk-6Q6T3FW5.js +92 -0
- package/dist/chunk-6Q6T3FW5.js.map +1 -0
- package/dist/{chunk-DCEMUZJQ.js → chunk-6WIDZGXE.js} +2 -2
- package/dist/{chunk-R7MX5KPJ.js → chunk-6YLAVHV4.js} +4 -4
- package/dist/chunk-73BEVJCS.js +28 -0
- package/dist/chunk-73BEVJCS.js.map +1 -0
- package/dist/chunk-7FDU3FIN.js +13 -0
- package/dist/chunk-7FDU3FIN.js.map +1 -0
- package/dist/{chunk-RXSGHPCR.js → chunk-7FOOLP5H.js} +4 -4
- package/dist/{chunk-DOADQW7I.js → chunk-7NSX7A5H.js} +2 -2
- package/dist/{chunk-QZWKC3AP.js → chunk-7VN7LFBA.js} +6 -6
- package/dist/{chunk-E4FGKZID.js → chunk-AEGXHZQT.js} +2 -2
- package/dist/{chunk-WO52KYSU.js → chunk-AGSBIUPV.js} +8 -8
- package/dist/{chunk-D2IASECY.js → chunk-AIRWM7KK.js} +39 -28
- package/dist/chunk-AIRWM7KK.js.map +1 -0
- package/dist/{chunk-PU3AAKRR.js → chunk-AJ6XEO4E.js} +2 -2
- package/dist/{chunk-7DNQHMDO.js → chunk-B6IURHSZ.js} +4 -4
- package/dist/chunk-BEBLRL5D.js +177 -0
- package/dist/chunk-BEBLRL5D.js.map +1 -0
- package/dist/{chunk-WX7VWW3W.js → chunk-C3CMEDSO.js} +2 -2
- package/dist/{chunk-HSAH5QUQ.js → chunk-CHPZTF34.js} +7 -7
- package/dist/{chunk-7EESF76V.js → chunk-CJBBGMIA.js} +2 -2
- package/dist/{chunk-2W4CIWTW.js → chunk-DBYFC6CF.js} +3 -3
- package/dist/chunk-DFK6QCXX.js +150 -0
- package/dist/chunk-DFK6QCXX.js.map +1 -0
- package/dist/{chunk-FGLV6BXQ.js → chunk-DTC224UJ.js} +6 -6
- package/dist/{chunk-HEK4LQT6.js → chunk-DVFIE54C.js} +2 -2
- package/dist/{chunk-4N4ENTF7.js → chunk-DW5FRWRQ.js} +2 -2
- package/dist/{chunk-THBT56JE.js → chunk-E55CJV65.js} +2 -2
- package/dist/{chunk-B7BZAIHL.js → chunk-EOHKZGOZ.js} +2 -2
- package/dist/{chunk-MLOWPVVW.js → chunk-EPEJMTCQ.js} +16 -13
- package/dist/chunk-EPEJMTCQ.js.map +1 -0
- package/dist/{chunk-EGRFMPGD.js → chunk-EXJBPKGW.js} +4 -4
- package/dist/{chunk-BILE3A7F.js → chunk-FGK2C7JR.js} +2 -2
- package/dist/{chunk-OI3HOI74.js → chunk-FGUESLDX.js} +2 -2
- package/dist/{chunk-RI5JZLZL.js → chunk-FKUYRQSP.js} +1 -1
- package/dist/chunk-FKUYRQSP.js.map +1 -0
- package/dist/{chunk-VCTKJHXD.js → chunk-FL54G7PV.js} +2 -2
- package/dist/{chunk-FX5DY6VR.js → chunk-FR67FG2U.js} +7 -4
- package/dist/chunk-FR67FG2U.js.map +1 -0
- package/dist/{chunk-HDNK7BAX.js → chunk-GT7C6TSM.js} +3 -3
- package/dist/chunk-GY6KNVMI.js +39 -0
- package/dist/chunk-GY6KNVMI.js.map +1 -0
- package/dist/chunk-GYXUCS37.js +36 -0
- package/dist/chunk-GYXUCS37.js.map +1 -0
- package/dist/{chunk-V3SBJ3PB.js → chunk-HFXTAEYY.js} +2 -2
- package/dist/{chunk-HBAPVB7T.js → chunk-HKKSZ7HG.js} +2 -2
- package/dist/{chunk-FOMK3WPG.js → chunk-HLYPI5CO.js} +4 -4
- package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
- package/dist/{chunk-UNF65XZW.js → chunk-I5SBTNV2.js} +2 -2
- package/dist/{chunk-X24P3ZYW.js → chunk-J4W4TQPC.js} +6 -6
- package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
- package/dist/{chunk-NQC6H7GY.js → chunk-JIKWZDNK.js} +2 -2
- package/dist/{chunk-ENNW5SKT.js → chunk-JSH3HFDQ.js} +2 -2
- package/dist/{chunk-JB7JE4QZ.js → chunk-JWW2Z3RH.js} +4 -4
- package/dist/{chunk-LAHDFBDE.js → chunk-JXNT5TUP.js} +3 -3
- package/dist/{chunk-VMNSGE2G.js → chunk-KEVPUBOE.js} +5 -1
- package/dist/chunk-KEVPUBOE.js.map +1 -0
- package/dist/{chunk-ZBNTFWTG.js → chunk-KIHQE5YA.js} +2 -2
- package/dist/{chunk-ZEBJT5JZ.js → chunk-KTK4A3IF.js} +3 -3
- package/dist/{chunk-4WK2RTVY.js → chunk-LS4FMSHY.js} +5 -5
- package/dist/{chunk-PNYXXLPU.js → chunk-M4LQRQFL.js} +2 -2
- package/dist/{chunk-Z7JNCB5Q.js → chunk-MESRKY67.js} +2 -2
- package/dist/chunk-MLCFODJO.js +135 -0
- package/dist/chunk-MLCFODJO.js.map +1 -0
- package/dist/{chunk-VJK5FBNK.js → chunk-MP4VSWHK.js} +2 -2
- package/dist/{chunk-Q5EQC7NL.js → chunk-N5IVVLTH.js} +8 -5
- package/dist/chunk-N5IVVLTH.js.map +1 -0
- package/dist/{chunk-6XPNJLXE.js → chunk-NARIG5FL.js} +2 -2
- package/dist/{chunk-VEFDL77X.js → chunk-NWNSUHEB.js} +2 -2
- package/dist/{chunk-43NEBUV3.js → chunk-O3336DJ6.js} +2 -2
- package/dist/{chunk-WBVHRLIS.js → chunk-OFOYMZRY.js} +2 -2
- package/dist/{chunk-SM3NRN7L.js → chunk-ON2CMKTI.js} +2 -2
- package/dist/{chunk-IH4CX43Q.js → chunk-OP65D4UR.js} +2 -2
- package/dist/{chunk-NHSMLVNC.js → chunk-OVLNF4AZ.js} +3 -3
- package/dist/{chunk-ZTZ6S5Q6.js → chunk-OXQP3N6X.js} +4 -4
- package/dist/{chunk-YVW7VPK4.js → chunk-PFLKPNBU.js} +2 -2
- package/dist/{chunk-7P2HZLEG.js → chunk-PFV6RL4Q.js} +3 -3
- package/dist/{chunk-76GZ55IC.js → chunk-PMS3H3OO.js} +7 -7
- package/dist/{chunk-UF27D35R.js → chunk-PRUSQQDT.js} +2 -2
- package/dist/{chunk-HBZIN6IQ.js → chunk-PZEC5CQA.js} +2 -2
- package/dist/{chunk-74OZ5KVR.js → chunk-Q75SJ35X.js} +4 -4
- package/dist/{chunk-PC5FFEIY.js → chunk-QFJRB27Q.js} +4 -4
- package/dist/{chunk-6D5WEZ2L.js → chunk-QFVFHIHE.js} +2 -2
- package/dist/{chunk-GBB6XQ56.js → chunk-QGBMCB76.js} +2 -2
- package/dist/{chunk-PODGTNXS.js → chunk-QKIJ6YXZ.js} +4 -4
- package/dist/{chunk-DX527XPL.js → chunk-QWDEOITU.js} +2 -2
- package/dist/{chunk-BJ3J6FTN.js → chunk-R7R3LOKW.js} +40 -23
- package/dist/chunk-R7R3LOKW.js.map +1 -0
- package/dist/{chunk-OLZTGVBT.js → chunk-REMK55JI.js} +4 -4
- package/dist/{chunk-BLT5ZBVL.js → chunk-RRX6ZTNX.js} +2 -2
- package/dist/{chunk-RMSH2I3O.js → chunk-S6YY2WWK.js} +40 -50
- package/dist/chunk-S6YY2WWK.js.map +1 -0
- package/dist/{chunk-FCOEJCUP.js → chunk-TFO6GBW7.js} +2 -2
- package/dist/{chunk-2ZDTGI5V.js → chunk-TLMLEC4F.js} +7 -7
- package/dist/{chunk-VSLUFBMT.js → chunk-TOYEP23N.js} +41 -27
- package/dist/chunk-TOYEP23N.js.map +1 -0
- package/dist/{chunk-FP4R47TM.js → chunk-TW3BXVEU.js} +2 -2
- package/dist/{chunk-QLWBQQW7.js → chunk-TYJR4GOF.js} +10 -2
- package/dist/chunk-TYJR4GOF.js.map +1 -0
- package/dist/{chunk-JD364H3Y.js → chunk-TZ633UZA.js} +6 -5
- package/dist/chunk-TZ633UZA.js.map +1 -0
- package/dist/{chunk-J6UFAMIC.js → chunk-TZDDL3DR.js} +2 -2
- package/dist/{chunk-6IUTT6BK.js → chunk-U2YJCNRU.js} +4 -4
- package/dist/{chunk-KZSKI2R3.js → chunk-U2ZDN2AL.js} +2 -2
- package/dist/{chunk-YFHIESMD.js → chunk-U7Q2Y6WG.js} +2 -2
- package/dist/{chunk-RQDN4BN5.js → chunk-UU3QAKG6.js} +14 -14
- package/dist/{chunk-VJFH2AXT.js → chunk-UVGRRI7N.js} +7 -7
- package/dist/{chunk-7DBFEZRC.js → chunk-VIK3HAUQ.js} +2 -2
- package/dist/chunk-VM3HRSAU.js +79 -0
- package/dist/chunk-VM3HRSAU.js.map +1 -0
- package/dist/{chunk-SOCKK67R.js → chunk-VNDOQEJ7.js} +4 -4
- package/dist/{chunk-J54WH74M.js → chunk-VNNG46TS.js} +5 -5
- package/dist/{chunk-5ZF3VASA.js → chunk-VQAM2XZV.js} +7 -7
- package/dist/{chunk-SEH7KOVG.js → chunk-VXTYVJDK.js} +2 -2
- package/dist/{chunk-37YPZHAG.js → chunk-W4SDVTZC.js} +2 -2
- package/dist/{chunk-X5D3PTWI.js → chunk-W4YWU7LQ.js} +2 -2
- package/dist/{chunk-LKVIZNUM.js → chunk-W7Y6RA6W.js} +8 -8
- package/dist/{chunk-Z4GWXTZV.js → chunk-WGRS4PGY.js} +8 -8
- package/dist/{chunk-NRUYYGDZ.js → chunk-WLQTHPMX.js} +2 -2
- package/dist/{chunk-J2KSG754.js → chunk-WRDPWEIC.js} +5 -5
- package/dist/{chunk-HEG7JIBM.js → chunk-X5MPHXG5.js} +4 -4
- package/dist/{chunk-NFAKRI4S.js → chunk-XELVDPKL.js} +4 -4
- package/dist/{chunk-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
- package/dist/{chunk-7RZ4WOQW.js → chunk-XKV5ZIBG.js} +3 -3
- package/dist/{chunk-F2DOTCF3.js → chunk-XSF6AXEU.js} +2 -2
- package/dist/{chunk-74EZ565M.js → chunk-XT7HMNBW.js} +9 -9
- package/dist/{chunk-PHCSPHDH.js → chunk-XUJG2HFW.js} +3 -3
- package/dist/{chunk-ACDYA5WC.js → chunk-XZTOIEKI.js} +2 -2
- package/dist/{chunk-S5LE2ARG.js → chunk-YANLN6HP.js} +66 -56
- package/dist/chunk-YANLN6HP.js.map +1 -0
- package/dist/{chunk-SKZHOWTS.js → chunk-YDI6IJ6F.js} +2 -2
- package/dist/{chunk-YK2PETUP.js → chunk-YJ4HM25H.js} +2 -2
- package/dist/{chunk-Q4NOI2CR.js → chunk-YQ6TNHAC.js} +4 -4
- package/dist/{chunk-24BUCMQA.js → chunk-YTOYMJPM.js} +2 -2
- package/dist/{chunk-G5ZVD5IJ.js → chunk-ZDWU52DJ.js} +2 -2
- package/dist/{chunk-MY5VNNSP.js → chunk-ZIYMBR7K.js} +8 -8
- package/dist/{chunk-7JWXLDRH.js → chunk-ZKR5B6YJ.js} +4 -4
- package/dist/{chunk-4MGFUPQT.js → chunk-ZOUWHGV3.js} +4 -4
- package/dist/{chunk-UMDXGIRZ.js → chunk-ZZOOSKSV.js} +2 -2
- package/dist/data-display/Alert.js +2 -2
- package/dist/data-display/AsyncStateContainer.js +8 -8
- package/dist/data-display/Badge.js +2 -2
- package/dist/data-display/CardKit.js +10 -10
- package/dist/data-display/Carousel.js +3 -3
- package/dist/data-display/Chart.js +11 -11
- package/dist/data-display/DataGrid.js +3 -3
- package/dist/data-display/DataViews.js +90 -81
- package/dist/data-display/DescriptionItem.js +3 -3
- package/dist/data-display/EmptyState.js +3 -3
- package/dist/data-display/ErrorState.js +2 -2
- package/dist/data-display/HoverCard.js +3 -3
- package/dist/data-display/LazyImage.js +4 -4
- package/dist/data-display/Lightbox.js +5 -5
- package/dist/data-display/LoadingState.js +4 -4
- package/dist/data-display/MapPreview.js +4 -4
- package/dist/data-display/Progress.js +2 -2
- package/dist/data-display/SectionOnboarding.js +4 -4
- package/dist/data-display/Sheet.js +4 -4
- package/dist/data-display/StatCard.js +4 -4
- package/dist/feedback/ConfirmAction.js +5 -5
- package/dist/feedback/Dialog.js +6 -2
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/StackedModal.js +2 -2
- package/dist/form/AddressAutocomplete.js +11 -9
- package/dist/form/Button.js +2 -2
- package/dist/form/CategorySelect.js +13 -11
- package/dist/form/CepField.js +10 -4
- package/dist/form/Checkbox.js +9 -2
- package/dist/form/CodeEditor.js +5 -3
- package/dist/form/CreatableSelect.js +4 -2
- package/dist/form/DateRangePicker.js +3 -3
- package/dist/form/Input.js +9 -3
- package/dist/form/InputOTP.js +5 -3
- package/dist/form/Label.js +2 -2
- package/dist/form/Menubar.js +2 -2
- package/dist/form/PhoneInput.js +4 -2
- package/dist/form/RadioGroup.js +6 -4
- package/dist/form/RichTextEditor.js +4 -2
- package/dist/form/Select.js +10 -2
- package/dist/form/Switch.js +9 -3
- package/dist/form/Textarea.js +5 -3
- package/dist/form/Toggle.js +5 -3
- package/dist/form/total-form.js +37 -32
- package/dist/icons.js +3 -3
- package/dist/layout/Box.js +2 -2
- package/dist/layout/Card.js +6 -3
- package/dist/layout/Container.js +2 -2
- package/dist/layout/ContentToolbar.js +9 -9
- package/dist/layout/ScrollArea.js +3 -3
- package/dist/layout/Skeleton.js +3 -3
- package/dist/layout/Spacer.js +2 -2
- package/dist/layout/Stack.js +3 -3
- package/dist/native/chunks/{chunk-HSIND52T.js → chunk-2UFNPDYT.js} +2 -1
- package/dist/native/chunks/chunk-2UFNPDYT.js.map +1 -0
- package/dist/native/chunks/{chunk-EKKNUEA6.js → chunk-75JQYVDZ.js} +3 -3
- package/dist/native/chunks/chunk-7LTVGW23.js +351 -0
- package/dist/native/chunks/chunk-7LTVGW23.js.map +1 -0
- package/dist/native/chunks/{chunk-M4DTJDWU.js → chunk-AR5O4BEY.js} +6 -2
- package/dist/native/chunks/chunk-AR5O4BEY.js.map +1 -0
- package/dist/native/chunks/{chunk-UKCCYP52.js → chunk-ATS7STZJ.js} +4 -4
- package/dist/native/chunks/{chunk-YTHR4Y5P.js → chunk-GWGIWQO7.js} +2 -2
- package/dist/native/chunks/{chunk-P3PL4WBO.js → chunk-LEMMXZFN.js} +24 -24
- package/dist/native/chunks/{chunk-P3PL4WBO.js.map → chunk-LEMMXZFN.js.map} +1 -1
- package/dist/native/chunks/chunk-NRN37A5K.js +67 -0
- package/dist/native/chunks/chunk-NRN37A5K.js.map +1 -0
- package/dist/native/chunks/chunk-OXHZDFJZ.js +15 -0
- package/dist/native/chunks/chunk-OXHZDFJZ.js.map +1 -0
- package/dist/native/chunks/{chunk-Q52IDAF2.js → chunk-QYUD3S6F.js} +9 -5
- package/dist/native/chunks/chunk-QYUD3S6F.js.map +1 -0
- package/dist/native/chunks/chunk-T6BJPP3E.js +26 -0
- package/dist/native/chunks/chunk-T6BJPP3E.js.map +1 -0
- package/dist/native/data-display/Alert.js +9 -9
- package/dist/native/data-display/Avatar.js +7 -7
- package/dist/native/data-display/Badge.js +9 -9
- package/dist/native/data-display/Chip.js +4 -4
- package/dist/native/data-display/EmptyState.js +12 -12
- package/dist/native/data-display/ErrorState.js +12 -12
- package/dist/native/data-display/LoadingState.js +7 -7
- package/dist/native/data-display/Progress.js +3 -3
- package/dist/native/feedback/Dialog.js +496 -0
- package/dist/native/feedback/Dialog.js.map +1 -0
- package/dist/native/form/Button.js +4 -4
- package/dist/native/form/Checkbox.js +233 -0
- package/dist/native/form/Checkbox.js.map +1 -0
- package/dist/native/form/Input.js +233 -0
- package/dist/native/form/Input.js.map +1 -0
- package/dist/native/form/Select.js +348 -0
- package/dist/native/form/Select.js.map +1 -0
- package/dist/native/form/Switch.js +511 -0
- package/dist/native/form/Switch.js.map +1 -0
- package/dist/native/icons.js +4 -4
- package/dist/native/layout/Box.js +4 -4
- package/dist/native/layout/Card.js +494 -0
- package/dist/native/layout/Card.js.map +1 -0
- package/dist/native/layout/Container.js +3 -3
- package/dist/native/layout/Skeleton.js +6 -6
- package/dist/native/layout/Spacer.js +3 -3
- package/dist/native/layout/Stack.js +4 -4
- package/dist/native/provider.js +2 -2
- package/dist/native/tokens.js +1 -1
- package/dist/native/typography/Heading.js +3 -3
- package/dist/native/typography/Paragraph.js +3 -3
- package/dist/native/typography/Text.js +3 -3
- package/dist/navigation/AppHeader.js +12 -9
- package/dist/navigation/CommandPalette.js +3 -3
- package/dist/navigation/NavigationMenu.js +5 -5
- package/dist/social-login-button.js +10 -8
- package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +64 -0
- package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
- package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
- package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
- package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts +4 -4
- package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +8 -41
- package/dist/types/components/feedback/Dialog/Dialog.types.d.ts.map +1 -1
- package/dist/types/components/feedback/Dialog/index.d.ts +1 -1
- package/dist/types/components/feedback/Dialog/index.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/Checkbox.base.d.ts +36 -0
- package/dist/types/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
- package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts +9 -3
- package/dist/types/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
- package/dist/types/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
- package/dist/types/components/form/Checkbox/Checkbox.types.d.ts +8 -10
- package/dist/types/components/form/Checkbox/Checkbox.types.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/index.d.ts +1 -1
- package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.base.d.ts +62 -0
- package/dist/types/components/form/Input/Input.base.d.ts.map +1 -0
- package/dist/types/components/form/Input/Input.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.helpers.d.ts +11 -0
- package/dist/types/components/form/Input/Input.helpers.d.ts.map +1 -0
- package/dist/types/components/form/Input/Input.metrics.d.ts +186 -0
- package/dist/types/components/form/Input/Input.metrics.d.ts.map +1 -0
- package/dist/types/components/form/Input/Input.styles.d.ts +1 -35
- package/dist/types/components/form/Input/Input.styles.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.types.d.ts +12 -17
- package/dist/types/components/form/Input/Input.types.d.ts.map +1 -1
- package/dist/types/components/form/Input/index.d.ts +1 -1
- package/dist/types/components/form/Input/index.d.ts.map +1 -1
- package/dist/types/components/form/Select/Select.base.d.ts +75 -0
- package/dist/types/components/form/Select/Select.base.d.ts.map +1 -0
- package/dist/types/components/form/Select/Select.d.ts.map +1 -1
- package/dist/types/components/form/Select/Select.helpers.d.ts +36 -0
- package/dist/types/components/form/Select/Select.helpers.d.ts.map +1 -0
- package/dist/types/components/form/Select/Select.metrics.d.ts +72 -0
- package/dist/types/components/form/Select/Select.metrics.d.ts.map +1 -0
- package/dist/types/components/form/Select/Select.types.d.ts +12 -49
- package/dist/types/components/form/Select/Select.types.d.ts.map +1 -1
- package/dist/types/components/form/Select/index.d.ts +1 -1
- package/dist/types/components/form/Select/index.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.base.d.ts +111 -0
- package/dist/types/components/form/Switch/Switch.base.d.ts.map +1 -0
- package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.helpers.d.ts +17 -0
- package/dist/types/components/form/Switch/Switch.helpers.d.ts.map +1 -0
- package/dist/types/components/form/Switch/Switch.metrics.d.ts +194 -0
- package/dist/types/components/form/Switch/Switch.metrics.d.ts.map +1 -0
- package/dist/types/components/form/Switch/Switch.parts.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.styles.d.ts +5 -3
- package/dist/types/components/form/Switch/Switch.styles.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.types.d.ts +9 -91
- package/dist/types/components/form/Switch/Switch.types.d.ts.map +1 -1
- package/dist/types/components/form/Switch/index.d.ts +1 -1
- package/dist/types/components/form/Switch/index.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.base.d.ts +77 -0
- package/dist/types/components/layout/Card/Card.base.d.ts.map +1 -0
- package/dist/types/components/layout/Card/Card.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.helpers.d.ts +8 -3
- package/dist/types/components/layout/Card/Card.helpers.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.metrics.d.ts +182 -0
- package/dist/types/components/layout/Card/Card.metrics.d.ts.map +1 -0
- package/dist/types/components/layout/Card/Card.styles.d.ts +2 -2
- package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
- package/dist/types/components/layout/Card/Card.types.d.ts +10 -44
- package/dist/types/components/layout/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/layout/Card/index.d.ts +1 -1
- package/dist/types/components/layout/Card/index.d.ts.map +1 -1
- package/dist/types/icons/paths.generated.d.ts +4 -0
- package/dist/types/icons/paths.generated.d.ts.map +1 -1
- package/dist/types/platform/aria.d.ts +59 -1
- package/dist/types/platform/aria.d.ts.map +1 -1
- package/dist/types/platform/test-id.d.ts +24 -0
- package/dist/types/platform/test-id.d.ts.map +1 -1
- package/dist/types/tokens/field-edge.core.d.ts +27 -0
- package/dist/types/tokens/field-edge.core.d.ts.map +1 -0
- package/dist/types/tokens/field-edge.d.ts +8 -9
- package/dist/types/tokens/field-edge.d.ts.map +1 -1
- package/dist/types/tokens/mui-type.d.ts +1 -1
- package/dist/types/tokens/mui-type.d.ts.map +1 -1
- package/dist/types/tokens/shadow.d.ts +40 -0
- package/dist/types/tokens/shadow.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +64 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts +44 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts +8 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts +25 -0
- package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts +39 -0
- package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts.map +1 -0
- package/dist/types-native/components/feedback/Dialog/index.native.d.ts +4 -0
- package/dist/types-native/components/feedback/Dialog/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts +36 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.base.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts +13 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.helpers.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts +92 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts +21 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts +27 -0
- package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Checkbox/index.native.d.ts +3 -0
- package/dist/types-native/components/form/Checkbox/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.base.d.ts +62 -0
- package/dist/types-native/components/form/Input/Input.base.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.helpers.d.ts +11 -0
- package/dist/types-native/components/form/Input/Input.helpers.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.look.native.d.ts +61 -0
- package/dist/types-native/components/form/Input/Input.look.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.metrics.d.ts +186 -0
- package/dist/types-native/components/form/Input/Input.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.native.d.ts +22 -0
- package/dist/types-native/components/form/Input/Input.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/Input.types.native.d.ts +20 -0
- package/dist/types-native/components/form/Input/Input.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Input/index.native.d.ts +3 -0
- package/dist/types-native/components/form/Input/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.base.d.ts +75 -0
- package/dist/types-native/components/form/Select/Select.base.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.helpers.d.ts +36 -0
- package/dist/types-native/components/form/Select/Select.helpers.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.look.native.d.ts +26 -0
- package/dist/types-native/components/form/Select/Select.look.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.metrics.d.ts +72 -0
- package/dist/types-native/components/form/Select/Select.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.native.d.ts +21 -0
- package/dist/types-native/components/form/Select/Select.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/Select.types.native.d.ts +29 -0
- package/dist/types-native/components/form/Select/Select.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Select/index.native.d.ts +3 -0
- package/dist/types-native/components/form/Select/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.base.d.ts +111 -0
- package/dist/types-native/components/form/Switch/Switch.base.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.helpers.d.ts +17 -0
- package/dist/types-native/components/form/Switch/Switch.helpers.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.look.native.d.ts +43 -0
- package/dist/types-native/components/form/Switch/Switch.look.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.metrics.d.ts +194 -0
- package/dist/types-native/components/form/Switch/Switch.metrics.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.native.d.ts +20 -0
- package/dist/types-native/components/form/Switch/Switch.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/Switch.types.native.d.ts +27 -0
- package/dist/types-native/components/form/Switch/Switch.types.native.d.ts.map +1 -0
- package/dist/types-native/components/form/Switch/index.native.d.ts +3 -0
- package/dist/types-native/components/form/Switch/index.native.d.ts.map +1 -0
- package/dist/types-native/components/form/field-pulse.native.d.ts +18 -0
- package/dist/types-native/components/form/field-pulse.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.base.d.ts +77 -0
- package/dist/types-native/components/layout/Card/Card.base.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.helpers.d.ts +11 -0
- package/dist/types-native/components/layout/Card/Card.helpers.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.look.native.d.ts +57 -0
- package/dist/types-native/components/layout/Card/Card.look.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.metrics.d.ts +182 -0
- package/dist/types-native/components/layout/Card/Card.metrics.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.native.d.ts +11 -0
- package/dist/types-native/components/layout/Card/Card.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/Card.types.native.d.ts +28 -0
- package/dist/types-native/components/layout/Card/Card.types.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/CardParts.native.d.ts +55 -0
- package/dist/types-native/components/layout/Card/CardParts.native.d.ts.map +1 -0
- package/dist/types-native/components/layout/Card/index.native.d.ts +4 -0
- package/dist/types-native/components/layout/Card/index.native.d.ts.map +1 -0
- package/dist/types-native/icons/paths.generated.d.ts +4 -0
- package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
- package/dist/types-native/platform/aria.d.ts +59 -1
- package/dist/types-native/platform/aria.d.ts.map +1 -1
- package/dist/types-native/platform/pulse-ring.native.d.ts +35 -0
- package/dist/types-native/platform/pulse-ring.native.d.ts.map +1 -0
- package/dist/types-native/platform/test-id.d.ts +24 -0
- package/dist/types-native/platform/test-id.d.ts.map +1 -1
- package/dist/types-native/tokens/field-edge.core.d.ts +27 -0
- package/dist/types-native/tokens/field-edge.core.d.ts.map +1 -0
- package/dist/types-native/tokens/mui-type.d.ts +1 -1
- package/dist/types-native/tokens/mui-type.d.ts.map +1 -1
- package/dist/types-native/tokens/shadow.d.ts +40 -0
- package/dist/types-native/tokens/shadow.d.ts.map +1 -0
- package/dist/types-native/utils/withDefaults.d.ts +13 -0
- package/dist/types-native/utils/withDefaults.d.ts.map +1 -0
- package/dist/typography/Heading.js +2 -2
- package/dist/typography/Paragraph.js +2 -2
- package/dist/typography/Text.js +2 -2
- package/dist/user-avatar.js +9 -7
- package/dist/utility/InstallPrompt.js +2 -2
- package/package.json +25 -1
- package/src/components/data-display/CardKit/NATIVE-NOTES.md +48 -0
- package/src/components/feedback/Dialog/Dialog.base.ts +69 -0
- package/src/components/feedback/Dialog/Dialog.helpers.ts +75 -0
- package/src/components/feedback/Dialog/Dialog.look.native.ts +159 -0
- package/src/components/feedback/Dialog/Dialog.metrics.ts +140 -0
- package/src/components/feedback/Dialog/Dialog.native.tsx +149 -0
- package/src/components/feedback/Dialog/Dialog.styles.ts +63 -41
- package/src/components/feedback/Dialog/Dialog.tsx +58 -74
- package/src/components/feedback/Dialog/Dialog.types.native.ts +46 -0
- package/src/components/feedback/Dialog/Dialog.types.ts +24 -41
- package/src/components/feedback/Dialog/DialogParts.native.tsx +257 -0
- package/src/components/feedback/Dialog/NATIVE-NOTES.md +16 -0
- package/src/components/feedback/Dialog/index.native.ts +16 -0
- package/src/components/feedback/Dialog/index.ts +8 -2
- package/src/components/form/Checkbox/Checkbox.base.ts +36 -0
- package/src/components/form/Checkbox/Checkbox.helpers.ts +13 -13
- package/src/components/form/Checkbox/Checkbox.metrics.ts +73 -0
- package/src/components/form/Checkbox/Checkbox.native.tsx +246 -0
- package/src/components/form/Checkbox/Checkbox.tsx +34 -21
- package/src/components/form/Checkbox/Checkbox.types.native.ts +29 -0
- package/src/components/form/Checkbox/Checkbox.types.ts +12 -11
- package/src/components/form/Checkbox/NATIVE-NOTES.md +11 -0
- package/src/components/form/Checkbox/index.native.ts +8 -0
- package/src/components/form/Checkbox/index.ts +1 -1
- package/src/components/form/Input/Input.base.ts +84 -0
- package/src/components/form/Input/Input.helpers.ts +43 -0
- package/src/components/form/Input/Input.look.native.ts +246 -0
- package/src/components/form/Input/Input.metrics.ts +229 -0
- package/src/components/form/Input/Input.native.tsx +240 -0
- package/src/components/form/Input/Input.styles.ts +45 -51
- package/src/components/form/Input/Input.tsx +46 -42
- package/src/components/form/Input/Input.types.native.ts +29 -0
- package/src/components/form/Input/Input.types.ts +15 -17
- package/src/components/form/Input/NATIVE-NOTES.md +14 -0
- package/src/components/form/Input/index.native.ts +2 -0
- package/src/components/form/Input/index.ts +1 -1
- package/src/components/form/Select/NATIVE-NOTES.md +12 -0
- package/src/components/form/Select/Select.base.ts +78 -0
- package/src/components/form/Select/Select.helpers.ts +82 -0
- package/src/components/form/Select/Select.look.native.ts +99 -0
- package/src/components/form/Select/Select.metrics.ts +90 -0
- package/src/components/form/Select/Select.native.tsx +264 -0
- package/src/components/form/Select/Select.tsx +37 -25
- package/src/components/form/Select/Select.types.native.ts +30 -0
- package/src/components/form/Select/Select.types.ts +14 -51
- package/src/components/form/Select/index.native.ts +9 -0
- package/src/components/form/Select/index.ts +7 -1
- package/src/components/form/Switch/NATIVE-NOTES.md +12 -0
- package/src/components/form/Switch/Switch.base.ts +136 -0
- package/src/components/form/Switch/Switch.helpers.ts +61 -0
- package/src/components/form/Switch/Switch.look.native.ts +187 -0
- package/src/components/form/Switch/Switch.metrics.ts +191 -0
- package/src/components/form/Switch/Switch.native.tsx +360 -0
- package/src/components/form/Switch/Switch.parts.tsx +4 -4
- package/src/components/form/Switch/Switch.styles.ts +109 -147
- package/src/components/form/Switch/Switch.tsx +4 -2
- package/src/components/form/Switch/Switch.types.native.ts +34 -0
- package/src/components/form/Switch/Switch.types.ts +16 -117
- package/src/components/form/Switch/index.native.ts +8 -0
- package/src/components/form/Switch/index.ts +6 -1
- package/src/components/form/field-pulse.native.tsx +78 -0
- package/src/components/layout/Card/Card.base.ts +92 -0
- package/src/components/layout/Card/Card.helpers.ts +13 -7
- package/src/components/layout/Card/Card.look.native.ts +204 -0
- package/src/components/layout/Card/Card.metrics.ts +171 -0
- package/src/components/layout/Card/Card.native.tsx +130 -0
- package/src/components/layout/Card/Card.styles.ts +88 -48
- package/src/components/layout/Card/Card.tsx +41 -25
- package/src/components/layout/Card/Card.types.native.ts +59 -0
- package/src/components/layout/Card/Card.types.ts +30 -45
- package/src/components/layout/Card/CardParts.native.tsx +262 -0
- package/src/components/layout/Card/NATIVE-NOTES.md +15 -0
- package/src/components/layout/Card/index.native.ts +18 -0
- package/src/components/layout/Card/index.ts +9 -0
- package/src/icons/glyphs.json +4 -0
- package/src/icons/paths.generated.ts +4 -0
- package/src/platform/aria.ts +72 -1
- package/src/platform/pulse-ring.native.tsx +82 -0
- package/src/platform/test-id.ts +30 -0
- package/src/tokens/field-edge.core.ts +87 -0
- package/src/tokens/field-edge.ts +10 -66
- package/src/tokens/mui-type.ts +2 -1
- package/src/tokens/shadow.ts +59 -0
- package/dist/chunk-6PRA45LC.js.map +0 -1
- package/dist/chunk-BJ3J6FTN.js.map +0 -1
- package/dist/chunk-D2IASECY.js.map +0 -1
- package/dist/chunk-FX5DY6VR.js.map +0 -1
- package/dist/chunk-JD364H3Y.js.map +0 -1
- package/dist/chunk-MLOWPVVW.js.map +0 -1
- package/dist/chunk-OQXOYHIV.js.map +0 -1
- package/dist/chunk-Q5EQC7NL.js.map +0 -1
- package/dist/chunk-QLWBQQW7.js.map +0 -1
- package/dist/chunk-RI5JZLZL.js.map +0 -1
- package/dist/chunk-RMSH2I3O.js.map +0 -1
- package/dist/chunk-S5LE2ARG.js.map +0 -1
- package/dist/chunk-TBWEIQUR.js +0 -263
- package/dist/chunk-TBWEIQUR.js.map +0 -1
- package/dist/chunk-VMF3UXM4.js +0 -137
- package/dist/chunk-VMF3UXM4.js.map +0 -1
- package/dist/chunk-VMNSGE2G.js.map +0 -1
- package/dist/chunk-VSLUFBMT.js.map +0 -1
- package/dist/native/chunks/chunk-4NK5ZQZ3.js +0 -10
- package/dist/native/chunks/chunk-4NK5ZQZ3.js.map +0 -1
- package/dist/native/chunks/chunk-HSIND52T.js.map +0 -1
- package/dist/native/chunks/chunk-M4DTJDWU.js.map +0 -1
- package/dist/native/chunks/chunk-Q52IDAF2.js.map +0 -1
- /package/dist/{chunk-MBYO2F4Y.js.map → chunk-25R3ITGZ.js.map} +0 -0
- /package/dist/{chunk-KQ74QU55.js.map → chunk-2FDBR77W.js.map} +0 -0
- /package/dist/{chunk-D7FJ2GAD.js.map → chunk-2HPP6RVC.js.map} +0 -0
- /package/dist/{chunk-B2A4DG77.js.map → chunk-2MMEIN4T.js.map} +0 -0
- /package/dist/{chunk-YRUCIKPO.js.map → chunk-2UYR2OOE.js.map} +0 -0
- /package/dist/{chunk-2PCOC3PT.js.map → chunk-343TTIHD.js.map} +0 -0
- /package/dist/{chunk-DQHC5P64.js.map → chunk-3FLVIVOK.js.map} +0 -0
- /package/dist/{chunk-URWGRPL7.js.map → chunk-3W7IEWEL.js.map} +0 -0
- /package/dist/{chunk-47UD6DZ4.js.map → chunk-4523RYE7.js.map} +0 -0
- /package/dist/{chunk-AEGX66N7.js.map → chunk-4IVOHL32.js.map} +0 -0
- /package/dist/{chunk-GGE7Y53F.js.map → chunk-4TXIZ5WI.js.map} +0 -0
- /package/dist/{chunk-IJIT5HQP.js.map → chunk-4X4KM4ZB.js.map} +0 -0
- /package/dist/{chunk-M7OHXNLF.js.map → chunk-5NKUYCZD.js.map} +0 -0
- /package/dist/{chunk-C52BELLW.js.map → chunk-5OIH36KX.js.map} +0 -0
- /package/dist/{chunk-LMJBINWN.js.map → chunk-5ZTUP65G.js.map} +0 -0
- /package/dist/{chunk-EX3PSZLV.js.map → chunk-67L7HMEP.js.map} +0 -0
- /package/dist/{chunk-2EKALM6P.js.map → chunk-6JGPPTLX.js.map} +0 -0
- /package/dist/{chunk-LZRURORY.js.map → chunk-6NZTYZP5.js.map} +0 -0
- /package/dist/{chunk-DCEMUZJQ.js.map → chunk-6WIDZGXE.js.map} +0 -0
- /package/dist/{chunk-R7MX5KPJ.js.map → chunk-6YLAVHV4.js.map} +0 -0
- /package/dist/{chunk-RXSGHPCR.js.map → chunk-7FOOLP5H.js.map} +0 -0
- /package/dist/{chunk-DOADQW7I.js.map → chunk-7NSX7A5H.js.map} +0 -0
- /package/dist/{chunk-QZWKC3AP.js.map → chunk-7VN7LFBA.js.map} +0 -0
- /package/dist/{chunk-E4FGKZID.js.map → chunk-AEGXHZQT.js.map} +0 -0
- /package/dist/{chunk-WO52KYSU.js.map → chunk-AGSBIUPV.js.map} +0 -0
- /package/dist/{chunk-PU3AAKRR.js.map → chunk-AJ6XEO4E.js.map} +0 -0
- /package/dist/{chunk-7DNQHMDO.js.map → chunk-B6IURHSZ.js.map} +0 -0
- /package/dist/{chunk-WX7VWW3W.js.map → chunk-C3CMEDSO.js.map} +0 -0
- /package/dist/{chunk-HSAH5QUQ.js.map → chunk-CHPZTF34.js.map} +0 -0
- /package/dist/{chunk-7EESF76V.js.map → chunk-CJBBGMIA.js.map} +0 -0
- /package/dist/{chunk-2W4CIWTW.js.map → chunk-DBYFC6CF.js.map} +0 -0
- /package/dist/{chunk-FGLV6BXQ.js.map → chunk-DTC224UJ.js.map} +0 -0
- /package/dist/{chunk-HEK4LQT6.js.map → chunk-DVFIE54C.js.map} +0 -0
- /package/dist/{chunk-4N4ENTF7.js.map → chunk-DW5FRWRQ.js.map} +0 -0
- /package/dist/{chunk-THBT56JE.js.map → chunk-E55CJV65.js.map} +0 -0
- /package/dist/{chunk-B7BZAIHL.js.map → chunk-EOHKZGOZ.js.map} +0 -0
- /package/dist/{chunk-EGRFMPGD.js.map → chunk-EXJBPKGW.js.map} +0 -0
- /package/dist/{chunk-BILE3A7F.js.map → chunk-FGK2C7JR.js.map} +0 -0
- /package/dist/{chunk-OI3HOI74.js.map → chunk-FGUESLDX.js.map} +0 -0
- /package/dist/{chunk-VCTKJHXD.js.map → chunk-FL54G7PV.js.map} +0 -0
- /package/dist/{chunk-HDNK7BAX.js.map → chunk-GT7C6TSM.js.map} +0 -0
- /package/dist/{chunk-V3SBJ3PB.js.map → chunk-HFXTAEYY.js.map} +0 -0
- /package/dist/{chunk-HBAPVB7T.js.map → chunk-HKKSZ7HG.js.map} +0 -0
- /package/dist/{chunk-FOMK3WPG.js.map → chunk-HLYPI5CO.js.map} +0 -0
- /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
- /package/dist/{chunk-UNF65XZW.js.map → chunk-I5SBTNV2.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-NQC6H7GY.js.map → chunk-JIKWZDNK.js.map} +0 -0
- /package/dist/{chunk-ENNW5SKT.js.map → chunk-JSH3HFDQ.js.map} +0 -0
- /package/dist/{chunk-JB7JE4QZ.js.map → chunk-JWW2Z3RH.js.map} +0 -0
- /package/dist/{chunk-LAHDFBDE.js.map → chunk-JXNT5TUP.js.map} +0 -0
- /package/dist/{chunk-ZBNTFWTG.js.map → chunk-KIHQE5YA.js.map} +0 -0
- /package/dist/{chunk-ZEBJT5JZ.js.map → chunk-KTK4A3IF.js.map} +0 -0
- /package/dist/{chunk-4WK2RTVY.js.map → chunk-LS4FMSHY.js.map} +0 -0
- /package/dist/{chunk-PNYXXLPU.js.map → chunk-M4LQRQFL.js.map} +0 -0
- /package/dist/{chunk-Z7JNCB5Q.js.map → chunk-MESRKY67.js.map} +0 -0
- /package/dist/{chunk-VJK5FBNK.js.map → chunk-MP4VSWHK.js.map} +0 -0
- /package/dist/{chunk-6XPNJLXE.js.map → chunk-NARIG5FL.js.map} +0 -0
- /package/dist/{chunk-VEFDL77X.js.map → chunk-NWNSUHEB.js.map} +0 -0
- /package/dist/{chunk-43NEBUV3.js.map → chunk-O3336DJ6.js.map} +0 -0
- /package/dist/{chunk-WBVHRLIS.js.map → chunk-OFOYMZRY.js.map} +0 -0
- /package/dist/{chunk-SM3NRN7L.js.map → chunk-ON2CMKTI.js.map} +0 -0
- /package/dist/{chunk-IH4CX43Q.js.map → chunk-OP65D4UR.js.map} +0 -0
- /package/dist/{chunk-NHSMLVNC.js.map → chunk-OVLNF4AZ.js.map} +0 -0
- /package/dist/{chunk-ZTZ6S5Q6.js.map → chunk-OXQP3N6X.js.map} +0 -0
- /package/dist/{chunk-YVW7VPK4.js.map → chunk-PFLKPNBU.js.map} +0 -0
- /package/dist/{chunk-7P2HZLEG.js.map → chunk-PFV6RL4Q.js.map} +0 -0
- /package/dist/{chunk-76GZ55IC.js.map → chunk-PMS3H3OO.js.map} +0 -0
- /package/dist/{chunk-UF27D35R.js.map → chunk-PRUSQQDT.js.map} +0 -0
- /package/dist/{chunk-HBZIN6IQ.js.map → chunk-PZEC5CQA.js.map} +0 -0
- /package/dist/{chunk-74OZ5KVR.js.map → chunk-Q75SJ35X.js.map} +0 -0
- /package/dist/{chunk-PC5FFEIY.js.map → chunk-QFJRB27Q.js.map} +0 -0
- /package/dist/{chunk-6D5WEZ2L.js.map → chunk-QFVFHIHE.js.map} +0 -0
- /package/dist/{chunk-GBB6XQ56.js.map → chunk-QGBMCB76.js.map} +0 -0
- /package/dist/{chunk-PODGTNXS.js.map → chunk-QKIJ6YXZ.js.map} +0 -0
- /package/dist/{chunk-DX527XPL.js.map → chunk-QWDEOITU.js.map} +0 -0
- /package/dist/{chunk-OLZTGVBT.js.map → chunk-REMK55JI.js.map} +0 -0
- /package/dist/{chunk-BLT5ZBVL.js.map → chunk-RRX6ZTNX.js.map} +0 -0
- /package/dist/{chunk-FCOEJCUP.js.map → chunk-TFO6GBW7.js.map} +0 -0
- /package/dist/{chunk-2ZDTGI5V.js.map → chunk-TLMLEC4F.js.map} +0 -0
- /package/dist/{chunk-FP4R47TM.js.map → chunk-TW3BXVEU.js.map} +0 -0
- /package/dist/{chunk-J6UFAMIC.js.map → chunk-TZDDL3DR.js.map} +0 -0
- /package/dist/{chunk-6IUTT6BK.js.map → chunk-U2YJCNRU.js.map} +0 -0
- /package/dist/{chunk-KZSKI2R3.js.map → chunk-U2ZDN2AL.js.map} +0 -0
- /package/dist/{chunk-YFHIESMD.js.map → chunk-U7Q2Y6WG.js.map} +0 -0
- /package/dist/{chunk-RQDN4BN5.js.map → chunk-UU3QAKG6.js.map} +0 -0
- /package/dist/{chunk-VJFH2AXT.js.map → chunk-UVGRRI7N.js.map} +0 -0
- /package/dist/{chunk-7DBFEZRC.js.map → chunk-VIK3HAUQ.js.map} +0 -0
- /package/dist/{chunk-SOCKK67R.js.map → chunk-VNDOQEJ7.js.map} +0 -0
- /package/dist/{chunk-J54WH74M.js.map → chunk-VNNG46TS.js.map} +0 -0
- /package/dist/{chunk-5ZF3VASA.js.map → chunk-VQAM2XZV.js.map} +0 -0
- /package/dist/{chunk-SEH7KOVG.js.map → chunk-VXTYVJDK.js.map} +0 -0
- /package/dist/{chunk-37YPZHAG.js.map → chunk-W4SDVTZC.js.map} +0 -0
- /package/dist/{chunk-X5D3PTWI.js.map → chunk-W4YWU7LQ.js.map} +0 -0
- /package/dist/{chunk-LKVIZNUM.js.map → chunk-W7Y6RA6W.js.map} +0 -0
- /package/dist/{chunk-Z4GWXTZV.js.map → chunk-WGRS4PGY.js.map} +0 -0
- /package/dist/{chunk-NRUYYGDZ.js.map → chunk-WLQTHPMX.js.map} +0 -0
- /package/dist/{chunk-J2KSG754.js.map → chunk-WRDPWEIC.js.map} +0 -0
- /package/dist/{chunk-HEG7JIBM.js.map → chunk-X5MPHXG5.js.map} +0 -0
- /package/dist/{chunk-NFAKRI4S.js.map → chunk-XELVDPKL.js.map} +0 -0
- /package/dist/{chunk-EPNUVSNK.js.map → chunk-XFUNJYFT.js.map} +0 -0
- /package/dist/{chunk-7RZ4WOQW.js.map → chunk-XKV5ZIBG.js.map} +0 -0
- /package/dist/{chunk-F2DOTCF3.js.map → chunk-XSF6AXEU.js.map} +0 -0
- /package/dist/{chunk-74EZ565M.js.map → chunk-XT7HMNBW.js.map} +0 -0
- /package/dist/{chunk-PHCSPHDH.js.map → chunk-XUJG2HFW.js.map} +0 -0
- /package/dist/{chunk-ACDYA5WC.js.map → chunk-XZTOIEKI.js.map} +0 -0
- /package/dist/{chunk-SKZHOWTS.js.map → chunk-YDI6IJ6F.js.map} +0 -0
- /package/dist/{chunk-YK2PETUP.js.map → chunk-YJ4HM25H.js.map} +0 -0
- /package/dist/{chunk-Q4NOI2CR.js.map → chunk-YQ6TNHAC.js.map} +0 -0
- /package/dist/{chunk-24BUCMQA.js.map → chunk-YTOYMJPM.js.map} +0 -0
- /package/dist/{chunk-G5ZVD5IJ.js.map → chunk-ZDWU52DJ.js.map} +0 -0
- /package/dist/{chunk-MY5VNNSP.js.map → chunk-ZIYMBR7K.js.map} +0 -0
- /package/dist/{chunk-7JWXLDRH.js.map → chunk-ZKR5B6YJ.js.map} +0 -0
- /package/dist/{chunk-4MGFUPQT.js.map → chunk-ZOUWHGV3.js.map} +0 -0
- /package/dist/{chunk-UMDXGIRZ.js.map → chunk-ZZOOSKSV.js.map} +0 -0
- /package/dist/native/chunks/{chunk-EKKNUEA6.js.map → chunk-75JQYVDZ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-UKCCYP52.js.map → chunk-ATS7STZJ.js.map} +0 -0
- /package/dist/native/chunks/{chunk-YTHR4Y5P.js.map → chunk-GWGIWQO7.js.map} +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Select on React Native
|
|
2
|
+
|
|
3
|
+
Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
|
|
4
|
+
|
|
5
|
+
- The option list is an absolutely positioned panel under the field, not a portal over the screen: React Native's `Modal` traps focus and covers the viewport, which is right for a dialog and wrong for a dropdown. So the list is clipped by any ancestor that hides its overflow, it cannot escape a `ScrollView`, and there is no backdrop — the list closes on a pick, on Escape, or when the field is pressed again, never by a tap elsewhere.
|
|
6
|
+
- Arrow keys open the list and Escape closes it, through react-native-web's DOM key events; `Enter` toggles it, because react-native-web's `Pressable` already answers `Enter` as a press. None of the three exists on a device, where the list is a touch surface — so there is no highlighted option to walk.
|
|
7
|
+
- The label sits above the field rather than floating into a notch in its border, and the arrow is laid out in flow rather than absolutely at `right: 7`; the 1px difference that costs is taken out of the gap before the glyph, so the value still stops 32px from the edge. Both follow from React Native having no notched outline and no `position: absolute` inside a text run.
|
|
8
|
+
- `glass` paints its 0.1 paper wash without the 20px backdrop blur (React Native has no backdrop filter), and `gradient` paints the first stop of its 135° fill flat inside a 2px ring of the gradient's first hue — React Native core has no gradient fill and no masked pseudo-element border.
|
|
9
|
+
- Hover has no touch equivalent: the web's hover border, its brighter glass wash and the `action.hover` wash under a menu row are not drawn. `glow` is a shadow on iOS and an elevation on Android, so its halo is not symmetrical there, and it does not brighten on focus the way the web's does.
|
|
10
|
+
- `defaultValue` selects an option here and does nothing on the web, where `Select.tsx` passes `value={value ?? ''}` and MUI's controlled value wins over it. Fixing that is a web change.
|
|
11
|
+
- The list is rendered in full inside a `ScrollView` capped at the window height less 96px, where MUI's `Menu` measures the anchor and flips or shifts to stay on screen; a list opened near the bottom of a device screen runs off it.
|
|
12
|
+
- The display slot, the option labels, the label and the helper text are set in MUI's own numbers (`body1` at 16px on a 23px line, the 0.75 shrunk label, `caption` at 12px); a host that re-themes MUI's typography variants moves the web only.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { SizeValue } from '../../../tokens/vocabulary';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* THE CONTRACT BOTH RENDERERS HONOUR — and nothing else.
|
|
5
|
+
*
|
|
6
|
+
* No MUI and no react-native here: this file is in BOTH declaration outputs,
|
|
7
|
+
* and a native consumer has no `@mui/material` to resolve a type import
|
|
8
|
+
* against. See `Button.base.ts`.
|
|
9
|
+
*/
|
|
10
|
+
export type SelectVariant = 'default' | 'glass' | 'gradient';
|
|
11
|
+
|
|
12
|
+
/** What a value can be. The DOM stringifies either, so the two are compared as strings. */
|
|
13
|
+
export type SelectValue = string | number;
|
|
14
|
+
|
|
15
|
+
export interface SelectOption {
|
|
16
|
+
value: SelectValue;
|
|
17
|
+
label: string;
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The contract both renderers honour.
|
|
23
|
+
*
|
|
24
|
+
* `value`, `defaultValue` and `onChange` are NOT here: MUI types the value as
|
|
25
|
+
* `unknown` and the change as its own `SelectChangeEvent`, while the native
|
|
26
|
+
* side takes a `SelectValue` and synthesises the `{ target: { value } }` shape
|
|
27
|
+
* the web handlers already read.
|
|
28
|
+
*/
|
|
29
|
+
export interface SelectBaseProps {
|
|
30
|
+
/**
|
|
31
|
+
* Visual variant of the select component
|
|
32
|
+
* @default 'default'
|
|
33
|
+
*/
|
|
34
|
+
variant?: SelectVariant;
|
|
35
|
+
/**
|
|
36
|
+
* Array of options to display in the select
|
|
37
|
+
*/
|
|
38
|
+
options: SelectOption[];
|
|
39
|
+
/**
|
|
40
|
+
* Label for the select field
|
|
41
|
+
*/
|
|
42
|
+
label?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Helper text to display below the select
|
|
45
|
+
*/
|
|
46
|
+
helperText?: string;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the select should take full width
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
fullWidth?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Size of the select component
|
|
54
|
+
* @default 'medium'
|
|
55
|
+
*/
|
|
56
|
+
size?: SizeValue;
|
|
57
|
+
/**
|
|
58
|
+
* Placeholder text when no option is selected
|
|
59
|
+
*/
|
|
60
|
+
placeholder?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Paints the field, the label and the helper text in the danger hue
|
|
63
|
+
*/
|
|
64
|
+
error?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to show a glow effect
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
glow?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether to show a pulse animation
|
|
72
|
+
* @default false
|
|
73
|
+
*/
|
|
74
|
+
pulse?: boolean;
|
|
75
|
+
disabled?: boolean;
|
|
76
|
+
testID?: string;
|
|
77
|
+
dataTestId?: string;
|
|
78
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { SelectBaseProps, SelectOption, SelectValue } from './Select.base';
|
|
2
|
+
import { withDefaults } from '../../../utils/withDefaults';
|
|
3
|
+
|
|
4
|
+
type SelectDefaultedKeys = 'variant' | 'size' | 'fullWidth' | 'error' | 'glow' | 'pulse' | 'disabled';
|
|
5
|
+
|
|
6
|
+
export type ResolvedSelectProps<P extends SelectBaseProps> = P &
|
|
7
|
+
Required<Pick<SelectBaseProps, SelectDefaultedKeys>>;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* `Select.tsx` leaves `variant`, `size`, `glow` and `pulse` undefined on
|
|
11
|
+
* purpose — undefined resolves to the default variant, MUI's medium and no
|
|
12
|
+
* effects, which keeps its render function under the complexity budget. The
|
|
13
|
+
* native renderer has to name them, so the same resolution happens here.
|
|
14
|
+
*/
|
|
15
|
+
const SELECT_DEFAULTS: Required<Pick<SelectBaseProps, SelectDefaultedKeys>> = {
|
|
16
|
+
variant: 'default',
|
|
17
|
+
size: 'md',
|
|
18
|
+
fullWidth: true,
|
|
19
|
+
error: false,
|
|
20
|
+
glow: false,
|
|
21
|
+
pulse: false,
|
|
22
|
+
disabled: false,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const resolveSelectProps = <P extends SelectBaseProps>(props: P): ResolvedSelectProps<P> =>
|
|
26
|
+
withDefaults(props, SELECT_DEFAULTS as Partial<P>) as ResolvedSelectProps<P>;
|
|
27
|
+
|
|
28
|
+
/** One row of the list: an option, or the disabled placeholder above them. */
|
|
29
|
+
export interface SelectItem {
|
|
30
|
+
value: SelectValue;
|
|
31
|
+
label: string;
|
|
32
|
+
disabled: boolean;
|
|
33
|
+
/** The placeholder is not an option: it carries no test id and cannot be chosen. */
|
|
34
|
+
placeholder: boolean;
|
|
35
|
+
option?: SelectOption;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* The list MUI renders: the placeholder first when there is one, then the
|
|
40
|
+
* options, in the order `renderMenuItems` builds them.
|
|
41
|
+
*/
|
|
42
|
+
export function selectItems(options: SelectOption[], placeholder?: string): SelectItem[] {
|
|
43
|
+
const items: SelectItem[] = options.map((option) => ({
|
|
44
|
+
value: option.value,
|
|
45
|
+
label: option.label,
|
|
46
|
+
disabled: option.disabled === true,
|
|
47
|
+
placeholder: false,
|
|
48
|
+
option,
|
|
49
|
+
}));
|
|
50
|
+
if (placeholder === undefined || placeholder === '') return items;
|
|
51
|
+
return [{ value: '', label: placeholder, disabled: true, placeholder: true }, ...items];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* What the display slot shows.
|
|
56
|
+
*
|
|
57
|
+
* The LAST match wins, which is MUI's own answer: `SelectInput` walks its
|
|
58
|
+
* children and overwrites the display for every child whose value matches, so
|
|
59
|
+
* a list carrying both an empty placeholder and a real empty-valued option
|
|
60
|
+
* shows the option. Values are compared as strings because the DOM stringifies
|
|
61
|
+
* them anyway (MUI's `areEqualValues`).
|
|
62
|
+
*/
|
|
63
|
+
export function displayLabel(items: SelectItem[], value: SelectValue): string {
|
|
64
|
+
let label = '';
|
|
65
|
+
for (const item of items) {
|
|
66
|
+
if (String(item.value) === String(value)) label = item.label;
|
|
67
|
+
}
|
|
68
|
+
return label;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** The three ids the web puts on the control, spelled exactly as it spells them. */
|
|
72
|
+
export function selectTestIds(id: string | undefined): {
|
|
73
|
+
root: string | undefined;
|
|
74
|
+
trigger: string;
|
|
75
|
+
option: (value: SelectValue) => string;
|
|
76
|
+
} {
|
|
77
|
+
return {
|
|
78
|
+
root: id,
|
|
79
|
+
trigger: id ? `${id}-select` : 'select',
|
|
80
|
+
option: (value) => (id ? `${id}-option-${value}` : `option-${value}`),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { TextStyle, ViewStyle } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
MUI_MENU_SHADOW,
|
|
5
|
+
SELECT_DISPLAY_MIN_HEIGHT,
|
|
6
|
+
SELECT_ICON,
|
|
7
|
+
SELECT_ICON_GAP,
|
|
8
|
+
SELECT_MENU,
|
|
9
|
+
inputVariantFor,
|
|
10
|
+
selectedWashAlpha,
|
|
11
|
+
} from './Select.metrics';
|
|
12
|
+
import type { SelectVariant } from './Select.base';
|
|
13
|
+
import { INPUT_FONT_SIZE, INPUT_LINE_HEIGHT } from '../Input/Input.metrics';
|
|
14
|
+
import { fieldLook, horizontalBorderInset, type FieldState } from '../Input/Input.look.native';
|
|
15
|
+
import { alpha } from '../../../tokens/color';
|
|
16
|
+
import type { UiTheme } from '../../../tokens/theme';
|
|
17
|
+
import type { SizeValue } from '../../../tokens/vocabulary';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* WHAT A NATIVE `Select` PAINTS.
|
|
21
|
+
*
|
|
22
|
+
* The box is the `Input`'s box: a select on the web is an `OutlinedInput` with
|
|
23
|
+
* a display slot where the value would be typed, so `fieldLook` decides the
|
|
24
|
+
* fill, the edges and the inset, and this file only says what a select adds —
|
|
25
|
+
* room for the arrow, and the list under it.
|
|
26
|
+
*/
|
|
27
|
+
export interface SelectLook {
|
|
28
|
+
box: ViewStyle;
|
|
29
|
+
display: TextStyle;
|
|
30
|
+
iconGap: number;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function selectLook(
|
|
34
|
+
theme: UiTheme,
|
|
35
|
+
variant: SelectVariant,
|
|
36
|
+
size: SizeValue,
|
|
37
|
+
state: FieldState,
|
|
38
|
+
): SelectLook {
|
|
39
|
+
const inputVariant = inputVariantFor(variant);
|
|
40
|
+
const look = fieldLook(theme, inputVariant, size, state);
|
|
41
|
+
const inset = horizontalBorderInset(inputVariant, state.focused);
|
|
42
|
+
|
|
43
|
+
return {
|
|
44
|
+
box: {
|
|
45
|
+
...look.box,
|
|
46
|
+
// MUI's arrow is absolute at `right: 7`; laid out in flow it takes the
|
|
47
|
+
// row's right inset instead, and {@link SELECT_ICON_GAP} makes up the
|
|
48
|
+
// difference so the value still stops 32px from the edge.
|
|
49
|
+
paddingRight: SELECT_ICON.right - inset,
|
|
50
|
+
},
|
|
51
|
+
display: {
|
|
52
|
+
...look.value,
|
|
53
|
+
minHeight: SELECT_DISPLAY_MIN_HEIGHT,
|
|
54
|
+
fontSize: INPUT_FONT_SIZE,
|
|
55
|
+
lineHeight: INPUT_LINE_HEIGHT,
|
|
56
|
+
},
|
|
57
|
+
iconGap: SELECT_ICON_GAP,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** The option list's paper: MUI's `Menu`, at elevation 8 on the theme's radius. */
|
|
62
|
+
export function menuStyle(theme: UiTheme, maxHeight: number): ViewStyle {
|
|
63
|
+
return {
|
|
64
|
+
position: 'absolute',
|
|
65
|
+
top: '100%',
|
|
66
|
+
left: 0,
|
|
67
|
+
right: 0,
|
|
68
|
+
zIndex: theme.zIndex.modal,
|
|
69
|
+
maxHeight,
|
|
70
|
+
paddingVertical: SELECT_MENU.listPaddingVertical,
|
|
71
|
+
backgroundColor: theme.palette.background.paper,
|
|
72
|
+
borderRadius: theme.radius.md,
|
|
73
|
+
boxShadow: MUI_MENU_SHADOW,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** One `MenuItem`: 48px tall at least, 6px by 16px of padding, washed when selected. */
|
|
78
|
+
export function optionStyle(theme: UiTheme, selected: boolean, disabled: boolean): ViewStyle {
|
|
79
|
+
return {
|
|
80
|
+
minHeight: SELECT_MENU.itemMinHeight,
|
|
81
|
+
justifyContent: 'center',
|
|
82
|
+
paddingVertical: SELECT_MENU.itemPaddingVertical,
|
|
83
|
+
paddingHorizontal: SELECT_MENU.itemPaddingHorizontal,
|
|
84
|
+
backgroundColor: selected
|
|
85
|
+
? alpha(theme.palette.primary.main, selectedWashAlpha(theme))
|
|
86
|
+
: 'transparent',
|
|
87
|
+
opacity: disabled ? SELECT_MENU.disabledOpacity : 1,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/** A `MenuItem`'s label: MUI's `body1`, the same type the display slot sets. */
|
|
92
|
+
export function optionTextStyle(theme: UiTheme): TextStyle {
|
|
93
|
+
return {
|
|
94
|
+
color: theme.palette.text.primary,
|
|
95
|
+
fontFamily: theme.typography.fontFamily,
|
|
96
|
+
fontSize: INPUT_FONT_SIZE,
|
|
97
|
+
lineHeight: INPUT_LINE_HEIGHT,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { SelectVariant } from './Select.base';
|
|
2
|
+
import type { InputVariant } from '../Input/Input.base';
|
|
3
|
+
import { ICON_SIZES } from '../../../icons/Icon.types';
|
|
4
|
+
import type { UiTheme } from '../../../tokens/theme';
|
|
5
|
+
import type { SizeValue } from '../../../tokens/vocabulary';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* THE NUMBERS BOTH `Select` RENDERERS DRAW WITH.
|
|
9
|
+
*
|
|
10
|
+
* A `Select` on the web IS an `OutlinedInput` with a display slot and an arrow
|
|
11
|
+
* where the value would be typed, so the box's own numbers — the padding, the
|
|
12
|
+
* border, the radius, the field edge — are `Input.metrics.ts`'s, read through
|
|
13
|
+
* {@link inputVariantFor} rather than restated. What is here is what a select
|
|
14
|
+
* has and a text field does not: the arrow, the option list, and the two
|
|
15
|
+
* heights MUI's `FormControl` offers.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/** Our three variants onto the `Input` variant that draws the same box. */
|
|
19
|
+
export const inputVariantFor = (variant: SelectVariant): InputVariant =>
|
|
20
|
+
variant === 'default' ? 'outlined' : variant;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The house scale as a `FormControl` size.
|
|
24
|
+
*
|
|
25
|
+
* Not `muiSize`: that collapses five onto MUI's three, and a FormControl takes
|
|
26
|
+
* only two — `sm` draws small and EVERY other step, `xs` included, draws
|
|
27
|
+
* medium. Restated from `Select.tsx`'s `formControlSize` so the native side
|
|
28
|
+
* reads the same lossy map rather than inventing a kinder one.
|
|
29
|
+
*/
|
|
30
|
+
export const selectInputSize = (size: SizeValue | undefined): 'sm' | 'md' =>
|
|
31
|
+
size === 'sm' ? 'sm' : 'md';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The arrow: MUI's `ArrowDropDown` at `SvgIcon`'s medium size, 7px from the
|
|
35
|
+
* right edge, turned over while the list is open. The display slot reserves
|
|
36
|
+
* 32px for it, so the flow-laid glyph takes the difference as a margin.
|
|
37
|
+
*/
|
|
38
|
+
export const SELECT_ICON = {
|
|
39
|
+
size: ICON_SIZES.md,
|
|
40
|
+
right: 7,
|
|
41
|
+
displayPaddingRight: 32,
|
|
42
|
+
openRotateDeg: 180,
|
|
43
|
+
} as const;
|
|
44
|
+
|
|
45
|
+
/** What the glyph leaves between itself and the value: 32 - 24 - 7. */
|
|
46
|
+
export const SELECT_ICON_GAP =
|
|
47
|
+
SELECT_ICON.displayPaddingRight - SELECT_ICON.size - SELECT_ICON.right;
|
|
48
|
+
|
|
49
|
+
/** `.MuiSelect-select`'s floor, MUI's `1.4375em` at the 16px body size. */
|
|
50
|
+
export const SELECT_DISPLAY_MIN_HEIGHT = 23;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The option list: MUI's `Menu` over a `MenuList` of `MenuItem`s.
|
|
54
|
+
*
|
|
55
|
+
* `selectedAlpha` is `palette.action.selectedOpacity`, which MUI doubles in
|
|
56
|
+
* dark mode; `disabledOpacity` is `palette.action.disabledOpacity`. Neither is
|
|
57
|
+
* on `UiTheme`, whose `action` carries colours rather than opacities.
|
|
58
|
+
*/
|
|
59
|
+
export const SELECT_MENU = {
|
|
60
|
+
itemMinHeight: 48,
|
|
61
|
+
itemPaddingVertical: 6,
|
|
62
|
+
itemPaddingHorizontal: 16,
|
|
63
|
+
listPaddingVertical: 8,
|
|
64
|
+
selectedAlpha: { light: 0.08, dark: 0.16 },
|
|
65
|
+
disabledOpacity: 0.38,
|
|
66
|
+
/** MUI's `Menu` paper is `calc(100% - 96px)` tall at most. */
|
|
67
|
+
maxHeightInset: 96,
|
|
68
|
+
} as const;
|
|
69
|
+
|
|
70
|
+
/** MUI's `theme.shadows[8]`, the elevation a `Menu` paper rests at. */
|
|
71
|
+
export const MUI_MENU_SHADOW =
|
|
72
|
+
'0px 5px 5px -3px rgba(0,0,0,0.2),0px 8px 10px 1px rgba(0,0,0,0.14),0px 3px 14px 2px rgba(0,0,0,0.12)';
|
|
73
|
+
|
|
74
|
+
/** The wash behind the option the value currently names. */
|
|
75
|
+
export const selectedWashAlpha = (theme: UiTheme): number =>
|
|
76
|
+
theme.mode === 'dark' ? SELECT_MENU.selectedAlpha.dark : SELECT_MENU.selectedAlpha.light;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* The box a select draws IS the input's box, so these are the input's tables
|
|
80
|
+
* under this component's names — the border widths, the glass and gradient
|
|
81
|
+
* alphas, the halo and the pulse. Restating them here is how the two controls
|
|
82
|
+
* would come to disagree about what an outlined field looks like.
|
|
83
|
+
*/
|
|
84
|
+
export {
|
|
85
|
+
INPUT_BORDER as SELECT_BORDER,
|
|
86
|
+
INPUT_GLASS as SELECT_GLASS,
|
|
87
|
+
INPUT_GLOW as SELECT_GLOW,
|
|
88
|
+
INPUT_GRADIENT as SELECT_GRADIENT,
|
|
89
|
+
INPUT_PULSE as SELECT_PULSE,
|
|
90
|
+
} from '../Input/Input.metrics';
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Platform,
|
|
4
|
+
Pressable,
|
|
5
|
+
ScrollView,
|
|
6
|
+
StyleSheet,
|
|
7
|
+
Text as RNText,
|
|
8
|
+
View,
|
|
9
|
+
useWindowDimensions,
|
|
10
|
+
type ViewStyle,
|
|
11
|
+
} from 'react-native';
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
displayLabel,
|
|
15
|
+
resolveSelectProps,
|
|
16
|
+
selectItems,
|
|
17
|
+
selectTestIds,
|
|
18
|
+
type SelectItem,
|
|
19
|
+
} from './Select.helpers';
|
|
20
|
+
import { menuStyle, optionStyle, optionTextStyle, selectLook, type SelectLook } from './Select.look.native';
|
|
21
|
+
import {
|
|
22
|
+
SELECT_GLOW,
|
|
23
|
+
SELECT_ICON,
|
|
24
|
+
SELECT_MENU,
|
|
25
|
+
SELECT_PULSE,
|
|
26
|
+
inputVariantFor,
|
|
27
|
+
selectInputSize,
|
|
28
|
+
} from './Select.metrics';
|
|
29
|
+
import type { SelectProps, SelectValue } from './Select.types.native';
|
|
30
|
+
import { Icon } from '../../../icons/Icon.native';
|
|
31
|
+
import { webAria, webKeyDown, webRole, type WebKeyEvent } from '../../../platform/aria';
|
|
32
|
+
import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
|
|
33
|
+
import { useUiTheme } from '../../../provider/use-ui-theme.native';
|
|
34
|
+
import { FieldPulse } from '../field-pulse.native';
|
|
35
|
+
import { helperStyle, labelStyle, type FieldState } from '../Input/Input.look.native';
|
|
36
|
+
|
|
37
|
+
/** MUI's halo on the outlined input, painted as a shadow. */
|
|
38
|
+
function glowStyle(color: string): ViewStyle {
|
|
39
|
+
return Platform.select<ViewStyle>({
|
|
40
|
+
android: { elevation: SELECT_GLOW.rest.blur / 2 },
|
|
41
|
+
default: {
|
|
42
|
+
shadowColor: color,
|
|
43
|
+
shadowOpacity: SELECT_GLOW.rest.alpha,
|
|
44
|
+
shadowRadius: SELECT_GLOW.rest.blur,
|
|
45
|
+
shadowOffset: { width: 0, height: 0 },
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
interface MenuProps {
|
|
51
|
+
items: SelectItem[];
|
|
52
|
+
value: SelectValue;
|
|
53
|
+
testIdFor: (value: SelectValue) => string;
|
|
54
|
+
onPick: (item: SelectItem) => void;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/** The option list: MUI's `Menu`, under the field rather than portalled over it. */
|
|
58
|
+
function SelectMenu({ items, value, testIdFor, onPick }: MenuProps): React.JSX.Element {
|
|
59
|
+
const theme = useUiTheme();
|
|
60
|
+
const { height } = useWindowDimensions();
|
|
61
|
+
const textStyle = optionTextStyle(theme);
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<View style={menuStyle(theme, height - SELECT_MENU.maxHeightInset)} {...webRole('listbox')}>
|
|
65
|
+
<ScrollView>
|
|
66
|
+
{items.map((item) => {
|
|
67
|
+
const selected = String(item.value) === String(value);
|
|
68
|
+
return (
|
|
69
|
+
<Pressable
|
|
70
|
+
key={`${item.placeholder ? 'placeholder' : 'option'}-${item.value}`}
|
|
71
|
+
role="option"
|
|
72
|
+
aria-selected={selected}
|
|
73
|
+
aria-disabled={item.disabled}
|
|
74
|
+
disabled={item.disabled}
|
|
75
|
+
testID={item.placeholder ? undefined : testIdFor(item.value)}
|
|
76
|
+
onPress={() => onPick(item)}
|
|
77
|
+
style={optionStyle(theme, selected, item.disabled)}
|
|
78
|
+
>
|
|
79
|
+
<RNText style={textStyle}>{item.label}</RNText>
|
|
80
|
+
</Pressable>
|
|
81
|
+
);
|
|
82
|
+
})}
|
|
83
|
+
</ScrollView>
|
|
84
|
+
</View>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface TriggerProps {
|
|
89
|
+
testID: string;
|
|
90
|
+
look: SelectLook;
|
|
91
|
+
open: boolean;
|
|
92
|
+
disabled: boolean;
|
|
93
|
+
error: boolean;
|
|
94
|
+
glow: boolean;
|
|
95
|
+
display: string;
|
|
96
|
+
labelId?: string;
|
|
97
|
+
helperId?: string;
|
|
98
|
+
onToggle: () => void;
|
|
99
|
+
onKey: (event: WebKeyEvent) => void;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* The field itself: MUI's display slot and its arrow, under one `combobox`.
|
|
104
|
+
*
|
|
105
|
+
* `tabIndex` is spelled out because react-native-web only makes a handful of
|
|
106
|
+
* roles focusable on its own, and `combobox` is not one of them — without it
|
|
107
|
+
* the control would not be a tab stop. It goes to -1 when disabled, which is
|
|
108
|
+
* what the web does by leaving the attribute off a disabled field entirely.
|
|
109
|
+
*/
|
|
110
|
+
function SelectTrigger(props: TriggerProps): React.JSX.Element {
|
|
111
|
+
const theme = useUiTheme();
|
|
112
|
+
const { testID, look, open, disabled, error, glow, display, labelId, helperId } = props;
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<Pressable
|
|
116
|
+
testID={testID}
|
|
117
|
+
role="combobox"
|
|
118
|
+
tabIndex={disabled ? -1 : 0}
|
|
119
|
+
aria-expanded={open}
|
|
120
|
+
aria-disabled={disabled}
|
|
121
|
+
disabled={disabled}
|
|
122
|
+
onPress={props.onToggle}
|
|
123
|
+
style={[look.box, glow ? glowStyle(theme.palette.primary.main) : null]}
|
|
124
|
+
{...webAria({
|
|
125
|
+
'aria-haspopup': 'listbox',
|
|
126
|
+
'aria-invalid': error,
|
|
127
|
+
...(labelId === undefined ? {} : { 'aria-labelledby': labelId }),
|
|
128
|
+
...(helperId === undefined ? {} : { 'aria-describedby': helperId }),
|
|
129
|
+
})}
|
|
130
|
+
{...webKeyDown(props.onKey)}
|
|
131
|
+
>
|
|
132
|
+
<RNText style={look.display} numberOfLines={1}>
|
|
133
|
+
{display}
|
|
134
|
+
</RNText>
|
|
135
|
+
<Icon
|
|
136
|
+
name="ArrowDropDown"
|
|
137
|
+
size={SELECT_ICON.size}
|
|
138
|
+
color={disabled ? theme.palette.action.disabled : theme.palette.action.active}
|
|
139
|
+
testID={`${testID}-icon`}
|
|
140
|
+
style={[
|
|
141
|
+
{ marginLeft: look.iconGap },
|
|
142
|
+
open ? { transform: [{ rotate: `${SELECT_ICON.openRotateDeg}deg` }] } : null,
|
|
143
|
+
]}
|
|
144
|
+
/>
|
|
145
|
+
</Pressable>
|
|
146
|
+
);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** The value the control shows, controlled by the caller or held here. */
|
|
150
|
+
function useSelectValue(
|
|
151
|
+
value: SelectValue | undefined,
|
|
152
|
+
defaultValue: SelectValue | undefined,
|
|
153
|
+
): [SelectValue, (next: SelectValue) => void] {
|
|
154
|
+
const [own, setOwn] = React.useState<SelectValue>(defaultValue ?? '');
|
|
155
|
+
return [value ?? own, setOwn];
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* The native `Select`.
|
|
160
|
+
*
|
|
161
|
+
* The list is an absolutely positioned panel under the field rather than a
|
|
162
|
+
* portal over the screen: React Native's `Modal` traps focus, which is right
|
|
163
|
+
* for a dialog and wrong for a dropdown — and wrong for the shared stories,
|
|
164
|
+
* which expect the trigger to keep focus while the list is open. The trade is
|
|
165
|
+
* recorded in `NATIVE-NOTES.md`.
|
|
166
|
+
*/
|
|
167
|
+
export const Select = React.forwardRef<View, SelectProps>((rawProps, ref) => {
|
|
168
|
+
const {
|
|
169
|
+
variant, options, label, helperText, fullWidth, size, placeholder, error, glow, pulse,
|
|
170
|
+
disabled, value, defaultValue, onChange, onOpen, onClose, style, ...others
|
|
171
|
+
} = resolveSelectProps(rawProps);
|
|
172
|
+
|
|
173
|
+
const theme = useUiTheme();
|
|
174
|
+
const [open, setOpen] = React.useState(false);
|
|
175
|
+
const [current, setCurrent] = useSelectValue(value, defaultValue);
|
|
176
|
+
const labelId = React.useId();
|
|
177
|
+
const helperId = React.useId();
|
|
178
|
+
|
|
179
|
+
const items = selectItems(options, placeholder);
|
|
180
|
+
const ids = selectTestIds(resolveTestId(others));
|
|
181
|
+
const state: FieldState = { focused: open && !disabled, error, disabled };
|
|
182
|
+
const look = selectLook(theme, variant, size, state);
|
|
183
|
+
|
|
184
|
+
const setOpenState = (next: boolean): void => {
|
|
185
|
+
if (next === open) return;
|
|
186
|
+
setOpen(next);
|
|
187
|
+
(next ? onOpen : onClose)?.();
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
const handleKey = (event: WebKeyEvent): void => {
|
|
191
|
+
if (event.key === 'Escape') setOpenState(false);
|
|
192
|
+
if (event.key === 'ArrowDown' || event.key === 'ArrowUp') setOpenState(true);
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
const pick = (item: SelectItem): void => {
|
|
196
|
+
setOpenState(false);
|
|
197
|
+
if (item.option === undefined) return;
|
|
198
|
+
setCurrent(item.value);
|
|
199
|
+
onChange?.({ target: { value: item.value } }, item.option);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
return (
|
|
203
|
+
<View
|
|
204
|
+
ref={ref}
|
|
205
|
+
testID={ids.root}
|
|
206
|
+
style={[styles.root, fullWidth ? styles.fullWidth : styles.auto, style]}
|
|
207
|
+
{...withoutTestIdProps(others)}
|
|
208
|
+
>
|
|
209
|
+
{pulse ? (
|
|
210
|
+
<FieldPulse
|
|
211
|
+
color={theme.palette.primary.main}
|
|
212
|
+
radius={theme.spacing(SELECT_PULSE.radiusUnits)}
|
|
213
|
+
testID={`${ids.trigger}-pulse`}
|
|
214
|
+
/>
|
|
215
|
+
) : null}
|
|
216
|
+
{label === undefined ? null : (
|
|
217
|
+
<RNText id={labelId} style={labelStyle(theme, inputVariantFor(variant), size, state)}>
|
|
218
|
+
{label}
|
|
219
|
+
</RNText>
|
|
220
|
+
)}
|
|
221
|
+
<View style={[styles.anchor, open ? { zIndex: theme.zIndex.modal } : null]}>
|
|
222
|
+
<SelectTrigger
|
|
223
|
+
testID={ids.trigger}
|
|
224
|
+
look={look}
|
|
225
|
+
open={open}
|
|
226
|
+
disabled={disabled}
|
|
227
|
+
error={error}
|
|
228
|
+
glow={glow}
|
|
229
|
+
display={displayLabel(items, current)}
|
|
230
|
+
labelId={label === undefined ? undefined : labelId}
|
|
231
|
+
helperId={helperText === undefined ? undefined : helperId}
|
|
232
|
+
onToggle={() => setOpenState(!open)}
|
|
233
|
+
onKey={handleKey}
|
|
234
|
+
/>
|
|
235
|
+
{open ? (
|
|
236
|
+
<SelectMenu items={items} value={current} testIdFor={ids.option} onPick={pick} />
|
|
237
|
+
) : null}
|
|
238
|
+
</View>
|
|
239
|
+
{helperText === undefined ? null : (
|
|
240
|
+
<RNText id={helperId} style={helperStyle(theme, inputVariantFor(variant), selectInputSize(size), state)}>
|
|
241
|
+
{helperText}
|
|
242
|
+
</RNText>
|
|
243
|
+
)}
|
|
244
|
+
</View>
|
|
245
|
+
);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
Select.displayName = 'Select';
|
|
249
|
+
|
|
250
|
+
const styles = StyleSheet.create({
|
|
251
|
+
root: {
|
|
252
|
+
position: 'relative',
|
|
253
|
+
},
|
|
254
|
+
anchor: {
|
|
255
|
+
position: 'relative',
|
|
256
|
+
},
|
|
257
|
+
fullWidth: {
|
|
258
|
+
alignSelf: 'stretch',
|
|
259
|
+
width: '100%',
|
|
260
|
+
},
|
|
261
|
+
auto: {
|
|
262
|
+
alignSelf: 'flex-start',
|
|
263
|
+
},
|
|
264
|
+
});
|