@okta/odyssey-react-mui 1.21.2 → 1.23.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/CHANGELOG.md +34 -0
- package/dist/@types/i18next.d.js.map +1 -1
- package/dist/Autocomplete.js +106 -38
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Callout.js +12 -24
- package/dist/Callout.js.map +1 -1
- package/dist/Checkbox.js +26 -11
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.js +14 -3
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/DataTable/DataTable.js +10 -2
- package/dist/DataTable/DataTable.js.map +1 -1
- package/dist/DataTable/useScrollIndication.js +9 -5
- package/dist/DataTable/useScrollIndication.js.map +1 -1
- package/dist/Field.js +3 -1
- package/dist/Field.js.map +1 -1
- package/dist/FileUploader/FileUploadIllustration.js.map +1 -0
- package/dist/FileUploader/FileUploadPreview.js.map +1 -0
- package/dist/{labs/FileUpload.js → FileUploader/FileUploader.js} +6 -5
- package/dist/FileUploader/FileUploader.js.map +1 -0
- package/dist/FileUploader/index.js +13 -0
- package/dist/FileUploader/index.js.map +1 -0
- package/dist/OdysseyCacheProvider.js +4 -3
- package/dist/OdysseyCacheProvider.js.map +1 -1
- package/dist/OdysseyProvider.js +10 -3
- package/dist/OdysseyProvider.js.map +1 -1
- package/dist/OdysseyThemeProvider.js +3 -2
- package/dist/OdysseyThemeProvider.js.map +1 -1
- package/dist/Radio.js +33 -6
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js +17 -5
- package/dist/RadioGroup.js.map +1 -1
- package/dist/Select.js +89 -31
- package/dist/Select.js.map +1 -1
- package/dist/{labs/Switch.js → Switch.js} +77 -23
- package/dist/Switch.js.map +1 -0
- package/dist/Tabs.js +7 -9
- package/dist/Tabs.js.map +1 -1
- package/dist/Tag.js +102 -4
- package/dist/Tag.js.map +1 -1
- package/dist/TextField.js +16 -39
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +2 -2
- package/dist/Toast.js.map +1 -1
- package/dist/ToastStack.js.map +1 -1
- package/dist/createShadowDomElements.js +43 -0
- package/dist/createShadowDomElements.js.map +1 -0
- package/dist/i18n.js +1 -1
- package/dist/i18n.js.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.scss +96 -8
- package/dist/labs/AppTile.js +124 -0
- package/dist/labs/AppTile.js.map +1 -0
- package/dist/labs/DataView/BulkActionsMenu.js.map +1 -0
- package/dist/labs/{DataComponents/StackContent.js → DataView/CardLayoutContent.js} +14 -14
- package/dist/labs/DataView/CardLayoutContent.js.map +1 -0
- package/dist/labs/{DataComponents/StackCard.js → DataView/DataCard.js} +6 -6
- package/dist/labs/DataView/DataCard.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/DataTable.js +6 -2
- package/dist/labs/DataView/DataTable.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/DataView.js +79 -30
- package/dist/labs/DataView/DataView.js.map +1 -0
- package/dist/labs/DataView/DetailPanel.js.map +1 -0
- package/dist/labs/DataView/LayoutSwitcher.js.map +1 -0
- package/dist/labs/DataView/RowActions.js.map +1 -0
- package/dist/labs/{DataComponents/TableContent.js → DataView/TableLayoutContent.js} +34 -20
- package/dist/labs/DataView/TableLayoutContent.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/TableSettings.js +2 -2
- package/dist/labs/DataView/TableSettings.js.map +1 -0
- package/dist/labs/DataView/componentTypes.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/constants.js +2 -2
- package/dist/labs/DataView/constants.js.map +1 -0
- package/dist/labs/DataView/dataTypes.js.map +1 -0
- package/dist/labs/DataView/fetchData.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/index.js +0 -1
- package/dist/labs/DataView/index.js.map +1 -0
- package/dist/labs/DataView/tableConstants.js.map +1 -0
- package/dist/labs/DataView/useFilterConversion.js.map +1 -0
- package/dist/labs/DateField.js +2 -0
- package/dist/labs/DateField.js.map +1 -1
- package/dist/labs/DatePicker.js +5 -1
- package/dist/labs/DatePicker.js.map +1 -1
- package/dist/labs/SideNav/CollapseIcon.js +44 -0
- package/dist/labs/SideNav/CollapseIcon.js.map +1 -0
- package/dist/labs/SideNav/OktaLogo.js +36 -0
- package/dist/labs/SideNav/OktaLogo.js.map +1 -0
- package/dist/labs/SideNav/SideNav.js +335 -0
- package/dist/labs/SideNav/SideNav.js.map +1 -0
- package/dist/labs/SideNav/SideNavFooterContent.js +49 -0
- package/dist/labs/SideNav/SideNavFooterContent.js.map +1 -0
- package/dist/labs/SideNav/SideNavHeader.js +81 -0
- package/dist/labs/SideNav/SideNavHeader.js.map +1 -0
- package/dist/labs/SideNav/SideNavItemContent.js +157 -0
- package/dist/labs/SideNav/SideNavItemContent.js.map +1 -0
- package/dist/labs/SideNav/SideNavItemLinkContent.js +71 -0
- package/dist/labs/SideNav/SideNavItemLinkContent.js.map +1 -0
- package/dist/labs/SideNav/index.js +14 -0
- package/dist/labs/SideNav/index.js.map +1 -0
- package/dist/labs/SideNav/types.js +2 -0
- package/dist/labs/SideNav/types.js.map +1 -0
- package/dist/labs/TopNav.js +2 -1
- package/dist/labs/TopNav.js.map +1 -1
- package/dist/labs/index.js +3 -4
- package/dist/labs/index.js.map +1 -1
- package/dist/labs/useDateFieldsTranslations.js +1 -1
- package/dist/labs/useDateFieldsTranslations.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui.js +3 -1
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_cs.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_da.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_de.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_el.js +18 -4
- package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_es.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fi.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fr.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ht.js +18 -4
- package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_hu.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_id.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_it.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ja.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ko.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ms.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nb.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pl.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ro.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ru.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_sv.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_th.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_tr.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_uk.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_vi.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/src/Autocomplete.d.ts +30 -0
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Callout.d.ts +11 -23
- package/dist/src/Callout.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +2 -2
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CheckboxGroup.d.ts +3 -3
- package/dist/src/CheckboxGroup.d.ts.map +1 -1
- package/dist/src/DataTable/DataTable.d.ts +9 -1
- package/dist/src/DataTable/DataTable.d.ts.map +1 -1
- package/dist/src/DataTable/useScrollIndication.d.ts.map +1 -1
- package/dist/src/Field.d.ts +3 -2
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/FileUploader/FileUploadIllustration.d.ts.map +1 -0
- package/dist/src/{labs → FileUploader}/FileUploadPreview.d.ts +2 -2
- package/dist/src/FileUploader/FileUploadPreview.d.ts.map +1 -0
- package/dist/src/{labs/FileUpload.d.ts → FileUploader/FileUploader.d.ts} +5 -4
- package/dist/src/FileUploader/FileUploader.d.ts.map +1 -0
- package/dist/src/FileUploader/index.d.ts +13 -0
- package/dist/src/FileUploader/index.d.ts.map +1 -0
- package/dist/src/NativeSelect.d.ts +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts +7 -3
- package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts +1 -1
- package/dist/src/OdysseyProvider.d.ts.map +1 -1
- package/dist/src/OdysseyThemeProvider.d.ts +3 -1
- package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -1
- package/dist/src/PasswordField.d.ts +1 -1
- package/dist/src/Radio.d.ts +6 -8
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/RadioGroup.d.ts +4 -5
- package/dist/src/RadioGroup.d.ts.map +1 -1
- package/dist/src/SearchField.d.ts +1 -1
- package/dist/src/Select.d.ts +38 -2
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/{labs/Switch.d.ts → Switch.d.ts} +8 -4
- package/dist/src/Switch.d.ts.map +1 -0
- package/dist/src/Tabs.d.ts +6 -8
- package/dist/src/Tabs.d.ts.map +1 -1
- package/dist/src/Tag.d.ts +7 -1
- package/dist/src/Tag.d.ts.map +1 -1
- package/dist/src/TextField.d.ts +17 -40
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/ToastStack.d.ts +2 -2
- package/dist/src/ToastStack.d.ts.map +1 -1
- package/dist/src/{createShadowRootElement.d.ts → createShadowDomElements.d.ts} +6 -1
- package/dist/src/createShadowDomElements.d.ts.map +1 -0
- package/dist/src/i18n.d.ts +2 -2
- package/dist/src/i18n.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/labs/AppTile.d.ts +39 -0
- package/dist/src/labs/AppTile.d.ts.map +1 -0
- package/dist/src/labs/DataView/BulkActionsMenu.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/StackContent.d.ts → DataView/CardLayoutContent.d.ts} +7 -7
- package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/StackCard.d.ts → DataView/DataCard.d.ts} +4 -4
- package/dist/src/labs/DataView/DataCard.d.ts.map +1 -0
- package/dist/src/labs/DataView/DataTable.d.ts +16 -0
- package/dist/src/labs/DataView/DataTable.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/DataView.d.ts +1 -1
- package/dist/src/labs/DataView/DataView.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/DetailPanel.d.ts +2 -2
- package/dist/src/labs/DataView/DetailPanel.d.ts.map +1 -0
- package/dist/src/labs/DataView/LayoutSwitcher.d.ts.map +1 -0
- package/dist/src/labs/DataView/RowActions.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/TableContent.d.ts → DataView/TableLayoutContent.d.ts} +8 -7
- package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/TableSettings.d.ts +3 -3
- package/dist/src/labs/DataView/TableSettings.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/componentTypes.d.ts +21 -9
- package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/constants.d.ts +1 -1
- package/dist/src/labs/DataView/constants.d.ts.map +1 -0
- package/dist/src/labs/DataView/dataTypes.d.ts.map +1 -0
- package/dist/src/labs/DataView/fetchData.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/index.d.ts +0 -1
- package/dist/src/labs/DataView/index.d.ts.map +1 -0
- package/dist/src/labs/DataView/tableConstants.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/useFilterConversion.d.ts +2 -2
- package/dist/src/labs/DataView/useFilterConversion.d.ts.map +1 -0
- package/dist/src/labs/DateField.d.ts +2 -2
- package/dist/src/labs/DateField.d.ts.map +1 -1
- package/dist/src/labs/DatePicker.d.ts +2 -2
- package/dist/src/labs/DatePicker.d.ts.map +1 -1
- package/dist/src/labs/SideNav/CollapseIcon.d.ts +17 -0
- package/dist/src/labs/SideNav/CollapseIcon.d.ts.map +1 -0
- package/dist/src/labs/SideNav/OktaLogo.d.ts +14 -0
- package/dist/src/labs/SideNav/OktaLogo.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNav.d.ts +16 -0
- package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -0
- package/dist/{test-selectors/odysseyTestSelectors.js → src/labs/SideNav/SideNavFooterContent.d.ts} +6 -9
- package/dist/src/labs/SideNav/SideNavFooterContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavHeader.d.ts +16 -0
- package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts +33 -0
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts +16 -0
- package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/index.d.ts +14 -0
- package/dist/src/labs/SideNav/index.d.ts.map +1 -0
- package/dist/src/labs/{SideNav.d.ts → SideNav/types.d.ts} +54 -33
- package/dist/src/labs/SideNav/types.d.ts.map +1 -0
- package/dist/src/labs/TopNav.d.ts +1 -0
- package/dist/src/labs/TopNav.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +2 -3
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +16 -2
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/src/test-selectors/getByQuerySelector.d.ts +148 -0
- package/dist/src/test-selectors/getByQuerySelector.d.ts.map +1 -0
- package/dist/src/test-selectors/getComputedAccessibleErrorMessageText.d.ts +14 -0
- package/dist/src/test-selectors/getComputedAccessibleErrorMessageText.d.ts.map +1 -0
- package/dist/src/test-selectors/getComputedAccessibleText.d.ts +23 -0
- package/dist/src/test-selectors/getComputedAccessibleText.d.ts.map +1 -0
- package/dist/src/test-selectors/index.d.ts +2 -2
- package/dist/src/test-selectors/index.d.ts.map +1 -1
- package/{src/test-selectors/odysseyTestSelectors.ts → dist/src/test-selectors/interpolateString.d.ts} +4 -11
- package/dist/src/test-selectors/interpolateString.d.ts.map +1 -0
- package/dist/src/test-selectors/linkedHtmlSelectors.d.ts +24 -0
- package/dist/src/test-selectors/linkedHtmlSelectors.d.ts.map +1 -0
- package/dist/src/test-selectors/queryOdysseySelector.d.ts +5755 -0
- package/dist/src/test-selectors/queryOdysseySelector.d.ts.map +1 -0
- package/dist/src/test-selectors/querySelector.d.ts +59 -3613
- package/dist/src/test-selectors/querySelector.d.ts.map +1 -1
- package/dist/src/test-selectors/sanityChecks.d.ts +18 -0
- package/dist/src/test-selectors/sanityChecks.d.ts.map +1 -0
- package/dist/src/test-selectors/testSelector.d.ts +46 -0
- package/dist/src/test-selectors/testSelector.d.ts.map +1 -0
- package/dist/src/theme/components.d.ts +3 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts +3 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
- package/dist/test-selectors/getByQuerySelector.js +64 -0
- package/dist/test-selectors/getByQuerySelector.js.map +1 -0
- package/dist/test-selectors/getComputedAccessibleErrorMessageText.js +25 -0
- package/dist/test-selectors/getComputedAccessibleErrorMessageText.js.map +1 -0
- package/dist/test-selectors/getComputedAccessibleText.js +24 -0
- package/dist/test-selectors/getComputedAccessibleText.js.map +1 -0
- package/dist/test-selectors/index.js +2 -2
- package/dist/test-selectors/index.js.map +1 -1
- package/dist/test-selectors/interpolateString.js +25 -0
- package/dist/test-selectors/interpolateString.js.map +1 -0
- package/dist/test-selectors/linkedHtmlSelectors.js +34 -0
- package/dist/test-selectors/linkedHtmlSelectors.js.map +1 -0
- package/dist/test-selectors/queryOdysseySelector.js +26 -0
- package/dist/test-selectors/queryOdysseySelector.js.map +1 -0
- package/dist/test-selectors/querySelector.js +82 -58
- package/dist/test-selectors/querySelector.js.map +1 -1
- package/dist/test-selectors/sanityChecks.js +33 -0
- package/dist/test-selectors/sanityChecks.js.map +1 -0
- package/dist/test-selectors/testSelector.js +2 -0
- package/dist/test-selectors/testSelector.js.map +1 -0
- package/dist/test-selectors/testSelectors.json +1 -1
- package/dist/theme/components.js +231 -146
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/createOdysseyMuiTheme.js +3 -2
- package/dist/theme/createOdysseyMuiTheme.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/jest.setup.js +3 -0
- package/package.json +5 -5
- package/scripts/generateTestSelectorsJson.ts +1 -1
- package/src/@types/i18next.d.ts +1 -1
- package/src/Autocomplete.tsx +140 -45
- package/src/Callout.tsx +13 -25
- package/src/Checkbox.tsx +39 -9
- package/src/CheckboxGroup.tsx +20 -4
- package/src/DataTable/DataTable.tsx +24 -1
- package/src/DataTable/useScrollIndication.tsx +11 -4
- package/src/Field.tsx +5 -2
- package/src/{labs → FileUploader}/FileUploadPreview.tsx +3 -3
- package/src/{labs/FileUpload.tsx → FileUploader/FileUploader.tsx} +7 -6
- package/src/FileUploader/index.ts +13 -0
- package/src/OdysseyCacheProvider.test.tsx +1 -0
- package/src/OdysseyCacheProvider.tsx +18 -4
- package/src/OdysseyProvider.tsx +12 -4
- package/src/OdysseyThemeProvider.tsx +6 -2
- package/src/Radio.tsx +41 -12
- package/src/RadioGroup.tsx +26 -7
- package/src/Select.tsx +116 -45
- package/src/{labs/Switch.tsx → Switch.tsx} +95 -41
- package/src/Tabs.tsx +8 -10
- package/src/Tag.tsx +134 -3
- package/src/TextField.tsx +18 -41
- package/src/Toast.tsx +1 -1
- package/src/ToastStack.tsx +2 -2
- package/src/createShadowDomElements.ts +53 -0
- package/src/i18n.ts +3 -3
- package/src/index.ts +7 -2
- package/src/labs/AppTile.tsx +200 -0
- package/src/labs/{DataComponents/StackContent.tsx → DataView/CardLayoutContent.tsx} +24 -19
- package/src/labs/{DataComponents/StackCard.tsx → DataView/DataCard.tsx} +7 -7
- package/src/labs/{DataComponents → DataView}/DataTable.tsx +8 -4
- package/src/labs/DataView/DataView.test.tsx +158 -0
- package/src/labs/{DataComponents → DataView}/DataView.tsx +119 -42
- package/src/labs/{DataComponents → DataView}/DetailPanel.tsx +2 -2
- package/src/labs/{DataComponents/TableContent.tsx → DataView/TableLayoutContent.tsx} +59 -27
- package/src/labs/{DataComponents → DataView}/TableSettings.tsx +5 -4
- package/src/labs/{DataComponents → DataView}/componentTypes.ts +24 -9
- package/src/labs/{DataComponents → DataView}/constants.tsx +2 -2
- package/src/labs/{DataComponents → DataView}/index.tsx +0 -1
- package/src/labs/{DataComponents → DataView}/useFilterConversion.ts +2 -2
- package/src/labs/DateField.tsx +3 -0
- package/src/labs/DatePicker.tsx +12 -1
- package/src/labs/SideNav/CollapseIcon.tsx +48 -0
- package/src/labs/SideNav/OktaLogo.tsx +39 -0
- package/src/labs/SideNav/SideNav.tsx +486 -0
- package/src/labs/SideNav/SideNavFooterContent.tsx +64 -0
- package/src/labs/SideNav/SideNavHeader.tsx +88 -0
- package/src/labs/SideNav/SideNavItemContent.tsx +216 -0
- package/src/labs/SideNav/SideNavItemLinkContent.tsx +87 -0
- package/src/labs/SideNav/index.ts +15 -0
- package/src/labs/SideNav/types.ts +152 -0
- package/src/labs/TopNav.tsx +3 -1
- package/src/labs/index.ts +3 -4
- package/src/labs/useDateFieldsTranslations.ts +1 -1
- package/src/properties/odyssey-react-mui.properties +2 -1
- package/src/properties/translations/odyssey-react-mui_cs.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_da.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_de.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_el.properties +16 -4
- package/src/properties/translations/odyssey-react-mui_es.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_fi.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_fr.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ht.properties +17 -6
- package/src/properties/translations/odyssey-react-mui_hu.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_id.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_it.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ja.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_ko.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_ms.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_nb.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_nl_NL.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_pl.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_pt_BR.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ro.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ru.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_sv.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_th.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_tr.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_uk.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_vi.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_zh_CN.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_zh_TW.properties +14 -2
- package/src/properties/ts/odyssey-react-mui.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ht.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
- package/src/test-selectors/getByQuerySelector.ts +176 -0
- package/src/test-selectors/getComputedAccessibleErrorMessageText.ts +52 -0
- package/src/test-selectors/getComputedAccessibleText.ts +36 -0
- package/src/test-selectors/index.ts +2 -2
- package/src/test-selectors/interpolateString.ts +41 -0
- package/src/test-selectors/linkedHtmlSelectors.ts +73 -0
- package/src/test-selectors/queryOdysseySelector.ts +36 -0
- package/src/test-selectors/querySelector.ts +221 -170
- package/src/test-selectors/sanityChecks.ts +53 -0
- package/src/test-selectors/testSelector.ts +143 -0
- package/src/theme/components.tsx +238 -150
- package/src/theme/createOdysseyMuiTheme.ts +4 -1
- package/dist/createShadowRootElement.js +0 -26
- package/dist/createShadowRootElement.js.map +0 -1
- package/dist/labs/DataComponents/BulkActionsMenu.js.map +0 -1
- package/dist/labs/DataComponents/DataStack.js +0 -85
- package/dist/labs/DataComponents/DataStack.js.map +0 -1
- package/dist/labs/DataComponents/DataTable.js.map +0 -1
- package/dist/labs/DataComponents/DataView.js.map +0 -1
- package/dist/labs/DataComponents/DetailPanel.js.map +0 -1
- package/dist/labs/DataComponents/LayoutSwitcher.js.map +0 -1
- package/dist/labs/DataComponents/RowActions.js.map +0 -1
- package/dist/labs/DataComponents/StackCard.js.map +0 -1
- package/dist/labs/DataComponents/StackContent.js.map +0 -1
- package/dist/labs/DataComponents/TableContent.js.map +0 -1
- package/dist/labs/DataComponents/TableSettings.js.map +0 -1
- package/dist/labs/DataComponents/componentTypes.js.map +0 -1
- package/dist/labs/DataComponents/constants.js.map +0 -1
- package/dist/labs/DataComponents/dataTypes.js.map +0 -1
- package/dist/labs/DataComponents/fetchData.js.map +0 -1
- package/dist/labs/DataComponents/index.js.map +0 -1
- package/dist/labs/DataComponents/tableConstants.js.map +0 -1
- package/dist/labs/DataComponents/useFilterConversion.js.map +0 -1
- package/dist/labs/FileUpload.js.map +0 -1
- package/dist/labs/FileUploadIllustration.js.map +0 -1
- package/dist/labs/FileUploadPreview.js.map +0 -1
- package/dist/labs/SideNav.js +0 -478
- package/dist/labs/SideNav.js.map +0 -1
- package/dist/labs/Switch.js.map +0 -1
- package/dist/src/createShadowRootElement.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataStack.d.ts +0 -20
- package/dist/src/labs/DataComponents/DataStack.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataTable.d.ts +0 -16
- package/dist/src/labs/DataComponents/DataTable.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataView.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/RowActions.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/StackCard.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/StackContent.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/TableContent.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/TableSettings.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/componentTypes.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/constants.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/dataTypes.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/fetchData.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/index.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/tableConstants.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +0 -1
- package/dist/src/labs/FileUpload.d.ts.map +0 -1
- package/dist/src/labs/FileUploadIllustration.d.ts.map +0 -1
- package/dist/src/labs/FileUploadPreview.d.ts.map +0 -1
- package/dist/src/labs/SideNav.d.ts.map +0 -1
- package/dist/src/labs/Switch.d.ts.map +0 -1
- package/dist/src/test-selectors/featureTestSelector.d.ts +0 -31
- package/dist/src/test-selectors/featureTestSelector.d.ts.map +0 -1
- package/dist/src/test-selectors/odysseyTestSelectors.d.ts +0 -120
- package/dist/src/test-selectors/odysseyTestSelectors.d.ts.map +0 -1
- package/dist/test-selectors/featureTestSelector.js +0 -2
- package/dist/test-selectors/featureTestSelector.js.map +0 -1
- package/dist/test-selectors/odysseyTestSelectors.js.map +0 -1
- package/src/createShadowRootElement.ts +0 -31
- package/src/labs/DataComponents/DataStack.tsx +0 -105
- package/src/labs/SideNav.tsx +0 -745
- package/src/test-selectors/featureTestSelector.ts +0 -41
- /package/dist/{labs → FileUploader}/FileUploadIllustration.js +0 -0
- /package/dist/{labs → FileUploader}/FileUploadPreview.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/BulkActionsMenu.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/DetailPanel.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/LayoutSwitcher.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/RowActions.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/componentTypes.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/dataTypes.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/fetchData.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/tableConstants.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/useFilterConversion.js +0 -0
- /package/dist/src/{labs → FileUploader}/FileUploadIllustration.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/BulkActionsMenu.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/LayoutSwitcher.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/RowActions.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/dataTypes.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/fetchData.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/tableConstants.d.ts +0 -0
- /package/src/{labs → FileUploader}/FileUploadIllustration.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/BulkActionsMenu.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/LayoutSwitcher.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/RowActions.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/dataTypes.ts +0 -0
- /package/src/labs/{DataComponents → DataView}/fetchData.ts +0 -0
- /package/src/labs/{DataComponents → DataView}/tableConstants.tsx +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"querySelector.js","names":["within","odysseyTestSelectors","interpolateString","string","values","interpolatedString","eval","Object","entries","map","key","value","JSON","stringify","join","test","getByQuerySelector","canvas","method","options","role","text","getByRole","getByLabelText","getByPlaceholderText","getByText","querySelector","templateArgs","templateArgsProp","testSelectors","element","selector","fromEntries","select","featureName","feature","queryOdysseySelector","componentName"],"sources":["../../src/test-selectors/querySelector.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n queries,\n within,\n type BoundFunctions,\n type ByRoleOptions,\n type GetByText,\n GetByRole,\n} from \"@testing-library/dom\";\n\nimport {\n type FeatureTestSelector,\n type TestSelector,\n} from \"./featureTestSelector\";\nimport { odysseyTestSelectors } from \"./odysseyTestSelectors\";\n\nexport const interpolateString = (\n string: string,\n values: Record<string, string | RegExp>,\n) => {\n const interpolatedString = eval(`\n ${Object.entries(values)\n .map(\n ([key, value]) =>\n `const ${key} = ${\n typeof value === \"string\" ? JSON.stringify(value) : value\n };`,\n )\n .join(\"\")}\n\n \\`${string}\\`\n `) as string;\n\n if (/^\\/*(.+)\\/$/.test(interpolatedString)) {\n return eval(interpolatedString) as RegExp;\n }\n\n return interpolatedString;\n};\n\nconst getByQuerySelector = ({\n canvas,\n method,\n options,\n role,\n text,\n}: {\n canvas: BoundFunctions<typeof queries>;\n method: \"ByRole\" | \"ByLabelText\" | \"ByPlaceholderText\" | \"ByText\";\n options?: ByRoleOptions;\n role?: Parameters<GetByRole>[1];\n text?: Parameters<GetByText>[1];\n}) => {\n if (method === \"ByRole\") {\n return canvas.getByRole(\n // TODO: These should eventually reference `query` as the function identifier.\n role!,\n options,\n );\n } else if (method === \"ByLabelText\") {\n return canvas.getByLabelText(\n // These should eventually reference `query` as the function identifier.\n text!, // TODO: Use TypeScript `Infer` to ensure `label` is required when it's `ByLabelText`.\n options,\n );\n } else if (method === \"ByPlaceholderText\") {\n return canvas.getByPlaceholderText(\n // These should eventually reference `query` as the function identifier.\n text!, // TODO: Use TypeScript `Infer` to ensure `label` is required when it's `ByLabelText`.\n options,\n );\n } else if (method === \"ByText\") {\n return canvas.getByText(\n // These should eventually reference `query` as the function identifier.\n text!, // TODO: Use TypeScript `Infer` to ensure `description` is required when it's `ByLabelText`.\n options,\n );\n }\n\n return null;\n};\n\nexport const querySelector = <TestSelectors extends FeatureTestSelector>({\n canvas,\n templateArgs: templateArgsProp,\n testSelectors,\n}: {\n /**\n * Testing Library canvas. This is usually `screen`, but Storybook uses `within(canvas)`.\n */\n canvas: BoundFunctions<typeof queries>;\n templateArgs?: TestSelectors extends TestSelector\n ? Record<\n TestSelectors[\"selector\"][\"templateVariableNames\"][number],\n string | RegExp\n >\n : never;\n testSelectors: TestSelectors;\n}) => {\n const element =\n \"selector\" in testSelectors\n ? getByQuerySelector({\n canvas,\n method: testSelectors.selector.method,\n options:\n templateArgsProp && testSelectors.selector.options\n ? Object.fromEntries(\n Object.entries(testSelectors.selector.options).map(\n ([key, value]) => [\n key,\n interpolateString(value, templateArgsProp),\n ],\n ),\n )\n : testSelectors.selector.options,\n ...(testSelectors.selector.method === \"ByRole\"\n ? {\n role: templateArgsProp\n ? (interpolateString(\n testSelectors.selector?.role,\n templateArgsProp,\n ) as string)\n : testSelectors.selector?.role,\n }\n : {\n text: templateArgsProp\n ? interpolateString(\n testSelectors.selector?.text,\n templateArgsProp,\n )\n : testSelectors.selector?.text,\n }),\n })\n : null;\n\n const select =\n \"feature\" in testSelectors\n ? <FeatureName extends keyof (typeof testSelectors)[\"feature\"]>(\n featureName: FeatureName,\n templateArgs?: (typeof testSelectors)[\"feature\"][FeatureName] extends TestSelector\n ? Record<\n (typeof testSelectors)[\"feature\"][FeatureName][\"selector\"][\"templateVariableNames\"][number],\n string | RegExp\n >\n : never,\n ) =>\n querySelector({\n canvas: element ? within(element) : canvas,\n templateArgs,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error: Type 'FeatureName' cannot be used to index type 'Record<string, FeatureTestSelector>'.ts(2536)\n testSelectors: testSelectors.feature[featureName],\n })\n : null;\n\n return {\n element,\n select,\n };\n};\n\nexport const queryOdysseySelector = <\n ComponentName extends keyof typeof odysseyTestSelectors,\n>({\n canvas,\n componentName,\n templateArgs,\n}: {\n canvas: Parameters<\n typeof querySelector<(typeof odysseyTestSelectors)[ComponentName]>\n >[0][\"canvas\"];\n /**\n * Name of the component you want to select within.\n */\n componentName: ComponentName;\n /**\n * String or RegExp values required for this selector.\n */\n templateArgs?: Parameters<\n typeof querySelector<(typeof odysseyTestSelectors)[ComponentName]>\n >[0][\"templateArgs\"];\n}) =>\n querySelector({\n canvas,\n templateArgs,\n testSelectors: odysseyTestSelectors[componentName],\n });\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAEEA,MAAM,QAKD,sBAAsB;AAAC,SAMrBC,oBAAoB;AAE7B,OAAO,MAAMC,iBAAiB,GAAGA,CAC/BC,MAAc,EACdC,MAAuC,KACpC;EACH,MAAMC,kBAAkB,GAAGC,IAAI,CAAE;AACnC,MAAMC,MAAM,CAACC,OAAO,CAACJ,MAAM,CAAC,CACrBK,GAAG,CACF,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KACV,SAAQD,GAAI,MACX,OAAOC,KAAK,KAAK,QAAQ,GAAGC,IAAI,CAACC,SAAS,CAACF,KAAK,CAAC,GAAGA,KACrD,GACL,CAAC,CACAG,IAAI,CAAC,EAAE,CAAE;AAChB;AACA,QAAQX,MAAO;AACf,GAAG,CAAW;EAEZ,IAAI,aAAa,CAACY,IAAI,CAACV,kBAAkB,CAAC,EAAE;IAC1C,OAAOC,IAAI,CAACD,kBAAkB,CAAC;EACjC;EAEA,OAAOA,kBAAkB;AAC3B,CAAC;AAED,MAAMW,kBAAkB,GAAGA,CAAC;EAC1BC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC,IAAI;EACJC;AAOF,CAAC,KAAK;EACJ,IAAIH,MAAM,KAAK,QAAQ,EAAE;IACvB,OAAOD,MAAM,CAACK,SAAS,CAErBF,IAAI,EACJD,OACF,CAAC;EACH,CAAC,MAAM,IAAID,MAAM,KAAK,aAAa,EAAE;IACnC,OAAOD,MAAM,CAACM,cAAc,CAE1BF,IAAI,EACJF,OACF,CAAC;EACH,CAAC,MAAM,IAAID,MAAM,KAAK,mBAAmB,EAAE;IACzC,OAAOD,MAAM,CAACO,oBAAoB,CAEhCH,IAAI,EACJF,OACF,CAAC;EACH,CAAC,MAAM,IAAID,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOD,MAAM,CAACQ,SAAS,CAErBJ,IAAI,EACJF,OACF,CAAC;EACH;EAEA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMO,aAAa,GAAGA,CAA4C;EACvET,MAAM;EACNU,YAAY,EAAEC,gBAAgB;EAC9BC;AAaF,CAAC,KAAK;EACJ,MAAMC,OAAO,GACX,UAAU,IAAID,aAAa,GACvBb,kBAAkB,CAAC;IACjBC,MAAM;IACNC,MAAM,EAAEW,aAAa,CAACE,QAAQ,CAACb,MAAM;IACrCC,OAAO,EACLS,gBAAgB,IAAIC,aAAa,CAACE,QAAQ,CAACZ,OAAO,GAC9CZ,MAAM,CAACyB,WAAW,CAChBzB,MAAM,CAACC,OAAO,CAACqB,aAAa,CAACE,QAAQ,CAACZ,OAAO,CAAC,CAACV,GAAG,CAChD,CAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK,CAChBD,GAAG,EACHR,iBAAiB,CAACS,KAAK,EAAEiB,gBAAgB,CAAC,CAE9C,CACF,CAAC,GACDC,aAAa,CAACE,QAAQ,CAACZ,OAAO;IACpC,IAAIU,aAAa,CAACE,QAAQ,CAACb,MAAM,KAAK,QAAQ,GAC1C;MACEE,IAAI,EAAEQ,gBAAgB,GACjB1B,iBAAiB,CAChB2B,aAAa,CAACE,QAAQ,EAAEX,IAAI,EAC5BQ,gBACF,CAAC,GACDC,aAAa,CAACE,QAAQ,EAAEX;IAC9B,CAAC,GACD;MACEC,IAAI,EAAEO,gBAAgB,GAClB1B,iBAAiB,CACf2B,aAAa,CAACE,QAAQ,EAAEV,IAAI,EAC5BO,gBACF,CAAC,GACDC,aAAa,CAACE,QAAQ,EAAEV;IAC9B,CAAC;EACP,CAAC,CAAC,GACF,IAAI;EAEV,MAAMY,MAAM,GACV,SAAS,IAAIJ,aAAa,GACtB,CACEK,WAAwB,EACxBP,YAKS,KAETD,aAAa,CAAC;IACZT,MAAM,EAAEa,OAAO,GAAG9B,MAAM,CAAC8B,OAAO,CAAC,GAAGb,MAAM;IAC1CU,YAAY;IAGZE,aAAa,EAAEA,aAAa,CAACM,OAAO,CAACD,WAAW;EAClD,CAAC,CAAC,GACJ,IAAI;EAEV,OAAO;IACLJ,OAAO;IACPG;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,oBAAoB,GAAGA,CAElC;EACAnB,MAAM;EACNoB,aAAa;EACbV;AAeF,CAAC,KACCD,aAAa,CAAC;EACZT,MAAM;EACNU,YAAY;EACZE,aAAa,EAAE5B,oBAAoB,CAACoC,aAAa;AACnD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"querySelector.js","names":["getComputedAccessibleText","getByRoleQuerySelector","getByTextQuerySelector","getControlledElement","ElementError","captureElement","containerElement","queryMethod","querySelectorOptions","role","testSelector","sharedProps","element","queryOptions","Object","fromEntries","entries","elementSelector","options","map","testSelectorOptionKey","testingLibraryOptionKey","method","Array","isArray","selectionMethod","text","isControlledElement","error","querySelector","props","capturedElement","undefined","getAccessibleText","labelName","Error","type","accessibleText","selectChild","childProps","children","name"],"sources":["../../src/test-selectors/querySelector.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n type AccessibleTextSelector,\n type AriaRole,\n type ElementChildSelector,\n type TestSelector,\n type ElementSelector,\n} from \"./testSelector\";\nimport { getComputedAccessibleText } from \"./getComputedAccessibleText\";\nimport {\n getByRoleQuerySelector,\n getByTextQuerySelector,\n type QueryMethod,\n} from \"./getByQuerySelector\";\nimport { getControlledElement } from \"./linkedHtmlSelectors\";\nimport { ElementError } from \"./sanityChecks\";\n\nexport type InnerQuerySelectorProps<\n LocalTestSelector extends TestSelector,\n LocalQueryMethod extends QueryMethod,\n> = {\n /**\n * Testing Library method used to query elements.\n */\n queryMethod?: LocalQueryMethod;\n} & (LocalTestSelector extends ElementSelector\n ? LocalTestSelector[\"elementSelector\"] extends {\n role: infer Role;\n }\n ? Role extends AriaRole[]\n ? {\n /**\n * Role is used when you have an optional `role`; otherwise, it'd baked into the metadata.\n */\n role: Role[number];\n }\n : object\n : object\n : object) &\n (LocalTestSelector extends ElementSelector\n ? {\n /**\n * Helps narrow down HTML selection to the correct element.\n */\n options: Record<\n keyof LocalTestSelector[\"elementSelector\"][\"options\"],\n string | RegExp\n >;\n }\n : object);\n\nexport const captureElement = <\n LocalTestSelector extends TestSelector,\n QuerySelectorOptions extends Record<string, string | RegExp>,\n LocalQueryMethod extends QueryMethod = \"get\",\n>({\n containerElement,\n queryMethod,\n querySelectorOptions,\n role,\n testSelector,\n}: {\n containerElement: HTMLElement;\n queryMethod: LocalQueryMethod;\n querySelectorOptions?: QuerySelectorOptions;\n role?: AriaRole;\n testSelector: LocalTestSelector;\n}) => {\n if (\"elementSelector\" in testSelector && querySelectorOptions) {\n const sharedProps = {\n element: containerElement,\n queryMethod,\n queryOptions: Object.fromEntries(\n Object.entries(testSelector.elementSelector.options).map(\n ([testSelectorOptionKey, testingLibraryOptionKey]) => [\n testingLibraryOptionKey,\n querySelectorOptions[testSelectorOptionKey],\n ],\n ),\n ),\n };\n\n if (testSelector.elementSelector.method === \"ByRole\") {\n return getByRoleQuerySelector({\n ...sharedProps,\n role:\n Array.isArray(testSelector.elementSelector.role) || role\n ? role || \"\"\n : testSelector.elementSelector.role,\n });\n }\n\n return getByTextQuerySelector({\n ...sharedProps,\n selectionMethod: testSelector.elementSelector.method,\n text: testSelector.elementSelector.text,\n });\n } else if (\n \"isControlledElement\" in testSelector &&\n testSelector.isControlledElement\n ) {\n try {\n return getControlledElement({ element: containerElement });\n } catch (error) {\n if (queryMethod === \"query\") {\n return null;\n }\n\n throw error;\n }\n }\n\n return null;\n};\n\nexport const querySelector =\n <LocalTestSelector extends TestSelector>(\n /**\n * Selectors object including children and accessible text selections.\n */\n testSelector: LocalTestSelector,\n ) =>\n <LocalQueryMethod extends QueryMethod = \"get\">(\n props: {\n /**\n * Refers to Testing Library's canvas. This is usually `screen`, but Storybook uses `within(canvas)`.\n */\n element: HTMLElement;\n } & InnerQuerySelectorProps<LocalTestSelector, LocalQueryMethod>,\n ) => {\n const { element: containerElement, queryMethod } = props;\n\n const capturedElement = captureElement({\n containerElement,\n queryMethod: queryMethod || (\"get\" as const),\n querySelectorOptions: \"options\" in props ? props.options : undefined,\n role: \"role\" in props ? (props.role as AriaRole) : undefined,\n testSelector,\n });\n\n const getAccessibleText = <\n LabelName extends LocalTestSelector extends AccessibleTextSelector\n ? keyof LocalTestSelector[\"accessibleText\"]\n : never,\n >(\n labelName: LabelName,\n ) => {\n if (!capturedElement) {\n throw new ElementError(\n \"No child HTML element available\",\n containerElement,\n );\n }\n\n if (!(\"accessibleText\" in testSelector)) {\n throw new Error(\"Missing `accessibleText` in `TestSelector`\");\n }\n\n return getComputedAccessibleText({\n element: capturedElement,\n type: testSelector.accessibleText[labelName],\n });\n };\n\n const selectChild = <\n ChildName extends LocalTestSelector extends ElementChildSelector\n ? keyof LocalTestSelector[\"children\"]\n : keyof ElementChildSelector,\n ChildQueryMethod extends QueryMethod = \"get\",\n >(\n childProps: {\n name: ChildName;\n } & InnerQuerySelectorProps<\n LocalTestSelector extends ElementChildSelector\n ? LocalTestSelector[\"children\"][ChildName]\n : TestSelector,\n ChildQueryMethod\n >,\n ) => {\n if (!capturedElement) {\n throw new ElementError(\n \"No child HTML element available\",\n containerElement,\n );\n }\n\n if (!(\"children\" in testSelector)) {\n throw new Error(\"Missing `children` in `TestSelector`\");\n }\n\n type Options = Record<\n LocalTestSelector extends ElementChildSelector\n ? LocalTestSelector[\"children\"][ChildName] extends ElementSelector\n ? keyof LocalTestSelector[\"children\"][ChildName][\"elementSelector\"][\"options\"]\n : never\n : never,\n string | RegExp\n >;\n\n return querySelector(\n testSelector.children[\n childProps.name\n ] as LocalTestSelector extends ElementChildSelector\n ? LocalTestSelector[\"children\"][ChildName]\n : TestSelector,\n )(\n // @ts-expect-error: Type '{ role?: AriaRole | undefined; options?: Record<LocalTestSelector extends ElementChildSelector ? LocalTestSelector[\"children\"][ChildName] extends TestSelector ? keyof LocalTestSelector[\"children\"][ChildName][\"selector\"][\"options\"] : string : string, string | RegExp> | undefined; element: HTMLElement...' is not assignable to type '(LocalTestSelector extends ElementChildSelector ? LocalTestSelector[\"children\"][ChildName] : TestSelector) extends { ...; } ? Role extends AriaRole[] ? { ...; } : object : object'.ts(2345)\n // `as testSelector.children[ChildName]` narrows the props down enough that TypeScript errors here. We're passing the correct information, but it doesn't know that, and it's difficult to fix this. -Kevin Ghadyani\n {\n element: capturedElement,\n queryMethod: childProps.queryMethod,\n ...(\"options\" in childProps && childProps.options\n ? {\n options: childProps.options as Options,\n }\n : {}),\n ...(\"role\" in childProps && childProps.role\n ? {\n role: childProps.role as AriaRole,\n }\n : {}),\n },\n );\n };\n\n return {\n element: capturedElement as LocalQueryMethod extends \"get\"\n ? HTMLElement\n : HTMLElement | null,\n getAccessibleText:\n getAccessibleText as LocalTestSelector extends AccessibleTextSelector\n ? typeof getAccessibleText\n : never,\n selectChild: selectChild as LocalTestSelector extends ElementChildSelector\n ? typeof selectChild\n : never,\n };\n };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAmBSA,yBAAyB;AAAA,SAEhCC,sBAAsB,EACtBC,sBAAsB;AAAA,SAGfC,oBAAoB;AAAA,SACpBC,YAAY;AAoCrB,OAAO,MAAMC,cAAc,GAAGA,CAI5B;EACAC,gBAAgB;EAChBC,WAAW;EACXC,oBAAoB;EACpBC,IAAI;EACJC;AAOF,CAAC,KAAK;EACJ,IAAI,iBAAiB,IAAIA,YAAY,IAAIF,oBAAoB,EAAE;IAC7D,MAAMG,WAAW,GAAG;MAClBC,OAAO,EAAEN,gBAAgB;MACzBC,WAAW;MACXM,YAAY,EAAEC,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACN,YAAY,CAACO,eAAe,CAACC,OAAO,CAAC,CAACC,GAAG,CACtD,CAAC,CAACC,qBAAqB,EAAEC,uBAAuB,CAAC,KAAK,CACpDA,uBAAuB,EACvBb,oBAAoB,CAACY,qBAAqB,CAAC,CAE/C,CACF;IACF,CAAC;IAED,IAAIV,YAAY,CAACO,eAAe,CAACK,MAAM,KAAK,QAAQ,EAAE;MACpD,OAAOrB,sBAAsB,CAAC;QAC5B,GAAGU,WAAW;QACdF,IAAI,EACFc,KAAK,CAACC,OAAO,CAACd,YAAY,CAACO,eAAe,CAACR,IAAI,CAAC,IAAIA,IAAI,GACpDA,IAAI,IAAI,EAAE,GACVC,YAAY,CAACO,eAAe,CAACR;MACrC,CAAC,CAAC;IACJ;IAEA,OAAOP,sBAAsB,CAAC;MAC5B,GAAGS,WAAW;MACdc,eAAe,EAAEf,YAAY,CAACO,eAAe,CAACK,MAAM;MACpDI,IAAI,EAAEhB,YAAY,CAACO,eAAe,CAACS;IACrC,CAAC,CAAC;EACJ,CAAC,MAAM,IACL,qBAAqB,IAAIhB,YAAY,IACrCA,YAAY,CAACiB,mBAAmB,EAChC;IACA,IAAI;MACF,OAAOxB,oBAAoB,CAAC;QAAES,OAAO,EAAEN;MAAiB,CAAC,CAAC;IAC5D,CAAC,CAAC,OAAOsB,KAAK,EAAE;MACd,IAAIrB,WAAW,KAAK,OAAO,EAAE;QAC3B,OAAO,IAAI;MACb;MAEA,MAAMqB,KAAK;IACb;EACF;EAEA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,MAAMC,aAAa,GAKtBnB,YAA+B,IAG/BoB,KAKgE,IAC7D;EACH,MAAM;IAAElB,OAAO,EAAEN,gBAAgB;IAAEC;EAAY,CAAC,GAAGuB,KAAK;EAExD,MAAMC,eAAe,GAAG1B,cAAc,CAAC;IACrCC,gBAAgB;IAChBC,WAAW,EAAEA,WAAW,IAAK,KAAe;IAC5CC,oBAAoB,EAAE,SAAS,IAAIsB,KAAK,GAAGA,KAAK,CAACZ,OAAO,GAAGc,SAAS;IACpEvB,IAAI,EAAE,MAAM,IAAIqB,KAAK,GAAIA,KAAK,CAACrB,IAAI,GAAgBuB,SAAS;IAC5DtB;EACF,CAAC,CAAC;EAEF,MAAMuB,iBAAiB,GAKrBC,SAAoB,IACjB;IACH,IAAI,CAACH,eAAe,EAAE;MACpB,MAAM,IAAI3B,YAAY,CACpB,iCAAiC,EACjCE,gBACF,CAAC;IACH;IAEA,IAAI,EAAE,gBAAgB,IAAII,YAAY,CAAC,EAAE;MACvC,MAAM,IAAIyB,KAAK,CAAC,4CAA4C,CAAC;IAC/D;IAEA,OAAOnC,yBAAyB,CAAC;MAC/BY,OAAO,EAAEmB,eAAe;MACxBK,IAAI,EAAE1B,YAAY,CAAC2B,cAAc,CAACH,SAAS;IAC7C,CAAC,CAAC;EACJ,CAAC;EAED,MAAMI,WAAW,GAMfC,UAOC,IACE;IACH,IAAI,CAACR,eAAe,EAAE;MACpB,MAAM,IAAI3B,YAAY,CACpB,iCAAiC,EACjCE,gBACF,CAAC;IACH;IAEA,IAAI,EAAE,UAAU,IAAII,YAAY,CAAC,EAAE;MACjC,MAAM,IAAIyB,KAAK,CAAC,sCAAsC,CAAC;IACzD;IAWA,OAAON,aAAa,CAClBnB,YAAY,CAAC8B,QAAQ,CACnBD,UAAU,CAACE,IAAI,CAInB,CAAC,CAGC;MACE7B,OAAO,EAAEmB,eAAe;MACxBxB,WAAW,EAAEgC,UAAU,CAAChC,WAAW;MACnC,IAAI,SAAS,IAAIgC,UAAU,IAAIA,UAAU,CAACrB,OAAO,GAC7C;QACEA,OAAO,EAAEqB,UAAU,CAACrB;MACtB,CAAC,GACD,CAAC,CAAC,CAAC;MACP,IAAI,MAAM,IAAIqB,UAAU,IAAIA,UAAU,CAAC9B,IAAI,GACvC;QACEA,IAAI,EAAE8B,UAAU,CAAC9B;MACnB,CAAC,GACD,CAAC,CAAC;IACR,CACF,CAAC;EACH,CAAC;EAED,OAAO;IACLG,OAAO,EAAEmB,eAEa;IACtBE,iBAAiB,EACfA,iBAES;IACXK,WAAW,EAAEA;EAGf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
3
|
+
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
4
|
+
*
|
|
5
|
+
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
8
|
+
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
*
|
|
10
|
+
* See the License for the specific language governing permissions and limitations under the License.
|
|
11
|
+
*/export class ElementError extends Error {
|
|
12
|
+
constructor(message, element) {
|
|
13
|
+
super(message);
|
|
14
|
+
this.name = "ElementError";
|
|
15
|
+
console.error("ElementError", element);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export const normalizeText = text => {
|
|
19
|
+
return text.replace(/\s+/g, " ").trim();
|
|
20
|
+
};
|
|
21
|
+
export const getWindow = htmlElement => {
|
|
22
|
+
if (!htmlElement || !htmlElement.ownerDocument || !htmlElement.ownerDocument.defaultView) {
|
|
23
|
+
throw new ElementError("Expected element to have a `window`", htmlElement);
|
|
24
|
+
}
|
|
25
|
+
return htmlElement.ownerDocument.defaultView;
|
|
26
|
+
};
|
|
27
|
+
export const validateHtmlElement = htmlElement => {
|
|
28
|
+
const window = getWindow(htmlElement);
|
|
29
|
+
if (!(htmlElement instanceof window.SVGElement) && !(htmlElement instanceof window.HTMLElement)) {
|
|
30
|
+
throw new ElementError("Expected element to be an HTMLElement or an SVGElement", htmlElement);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=sanityChecks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanityChecks.js","names":["ElementError","Error","constructor","message","element","name","console","error","normalizeText","text","replace","trim","getWindow","htmlElement","ownerDocument","defaultView","validateHtmlElement","window","SVGElement","HTMLElement"],"sources":["../../src/test-selectors/sanityChecks.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// Code modified from: https://github.com/testing-library/jest-dom/blob/main/src/utils.js\n\nexport class ElementError extends Error {\n constructor(message: string, element: HTMLElement) {\n super(message);\n\n this.name = \"ElementError\";\n\n console.error(\"ElementError\", element);\n }\n}\n\nexport const normalizeText = (text: string) => {\n return text.replace(/\\s+/g, \" \").trim();\n};\n\nexport const getWindow = (htmlElement: HTMLElement) => {\n if (\n !htmlElement ||\n !htmlElement.ownerDocument ||\n !htmlElement.ownerDocument.defaultView\n ) {\n throw new ElementError(\"Expected element to have a `window`\", htmlElement);\n }\n\n return htmlElement.ownerDocument.defaultView!;\n};\n\nexport const validateHtmlElement = (htmlElement: HTMLElement) => {\n const window = getWindow(htmlElement);\n\n if (\n !(htmlElement instanceof window.SVGElement) &&\n !(htmlElement instanceof window.HTMLElement)\n ) {\n throw new ElementError(\n \"Expected element to be an HTMLElement or an SVGElement\",\n htmlElement,\n );\n }\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAIA,OAAO,MAAMA,YAAY,SAASC,KAAK,CAAC;EACtCC,WAAWA,CAACC,OAAe,EAAEC,OAAoB,EAAE;IACjD,KAAK,CAACD,OAAO,CAAC;IAEd,IAAI,CAACE,IAAI,GAAG,cAAc;IAE1BC,OAAO,CAACC,KAAK,CAAC,cAAc,EAAEH,OAAO,CAAC;EACxC;AACF;AAEA,OAAO,MAAMI,aAAa,GAAIC,IAAY,IAAK;EAC7C,OAAOA,IAAI,CAACC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAACC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,OAAO,MAAMC,SAAS,GAAIC,WAAwB,IAAK;EACrD,IACE,CAACA,WAAW,IACZ,CAACA,WAAW,CAACC,aAAa,IAC1B,CAACD,WAAW,CAACC,aAAa,CAACC,WAAW,EACtC;IACA,MAAM,IAAIf,YAAY,CAAC,qCAAqC,EAAEa,WAAW,CAAC;EAC5E;EAEA,OAAOA,WAAW,CAACC,aAAa,CAACC,WAAW;AAC9C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAIH,WAAwB,IAAK;EAC/D,MAAMI,MAAM,GAAGL,SAAS,CAACC,WAAW,CAAC;EAErC,IACE,EAAEA,WAAW,YAAYI,MAAM,CAACC,UAAU,CAAC,IAC3C,EAAEL,WAAW,YAAYI,MAAM,CAACE,WAAW,CAAC,EAC5C;IACA,MAAM,IAAInB,YAAY,CACpB,wDAAwD,EACxDa,WACF,CAAC;EACH;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testSelector.js","names":[],"sources":["../../src/test-selectors/testSelector.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n type ByRoleOptions,\n type SelectorMatcherOptions,\n} from \"@testing-library/dom\";\n\nimport {\n type RoleSelectorMethod,\n type TextSelectorMethod,\n} from \"./getByQuerySelector\";\n\n/**\n * We can't use React's `AriaRole` because it allows any string value. We want to be very specific. This is otherwise copied straight from React's code.\n * @see https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts#L2815\n */\nexport type AriaRole =\n | \"alert\"\n | \"alertdialog\"\n | \"application\"\n | \"article\"\n | \"banner\"\n | \"button\"\n | \"cell\"\n | \"checkbox\"\n | \"columnheader\"\n | \"combobox\"\n | \"complementary\"\n | \"contentinfo\"\n | \"definition\"\n | \"dialog\"\n | \"directory\"\n | \"document\"\n | \"feed\"\n | \"figure\"\n | \"form\"\n | \"grid\"\n | \"gridcell\"\n | \"group\"\n | \"heading\"\n | \"img\"\n | \"link\"\n | \"list\"\n | \"listbox\"\n | \"listitem\"\n | \"log\"\n | \"main\"\n | \"marquee\"\n | \"math\"\n | \"menu\"\n | \"menubar\"\n | \"menuitem\"\n | \"menuitemcheckbox\"\n | \"menuitemradio\"\n | \"navigation\"\n | \"none\"\n | \"note\"\n | \"option\"\n | \"presentation\"\n | \"progressbar\"\n | \"radio\"\n | \"radiogroup\"\n | \"region\"\n | \"row\"\n | \"rowgroup\"\n | \"rowheader\"\n | \"scrollbar\"\n | \"search\"\n | \"searchbox\"\n | \"separator\"\n | \"slider\"\n | \"spinbutton\"\n | \"status\"\n | \"switch\"\n | \"tab\"\n | \"table\"\n | \"tablist\"\n | \"tabpanel\"\n | \"term\"\n | \"textbox\"\n | \"timer\"\n | \"toolbar\"\n | \"tooltip\"\n | \"tree\"\n | \"treegrid\"\n | \"treeitem\";\n\nexport type ControlledElementSelector = { isControlledElement?: true };\n\nexport type RoleSelectorOptions = {\n method: RoleSelectorMethod;\n options: Record<string, keyof ByRoleOptions>;\n role: AriaRole | AriaRole[];\n // | \"UNKNOWN\" // This should be a `Symbol`, but it can't because this is ultimately going to be JSON stringified. This type will allow passing a custom role if the component allows it: `Box`.\n};\n\nexport type TextSelectorOptions = {\n method: TextSelectorMethod;\n options: Record<string, keyof SelectorMatcherOptions>;\n text: string;\n};\n\nexport type ElementSelectorValue = RoleSelectorOptions | TextSelectorOptions;\n\nexport type ElementSelector = {\n elementSelector: ElementSelectorValue;\n};\n\nexport type ElementChildSelectorValue = Record<\n string,\n TestSelector & ControlledElementSelector\n>;\n\nexport type ElementChildSelector = {\n children: ElementChildSelectorValue;\n};\n\nexport type AccessibleTextSelectorValue =\n | \"description\"\n | \"errorMessage\"\n | \"label\";\n\nexport type AccessibleTextSelector = {\n /** An \"accessible -> semantic\" name mapping such as \"`description` -> `hint`\" where \"description\" equates to `\"aria-description\"`. */\n accessibleText: Record<string, AccessibleTextSelectorValue>;\n};\n\nexport type TestSelector =\n | ElementChildSelector\n | ElementSelector\n | (ElementChildSelector & ElementSelector)\n | (AccessibleTextSelector & ElementSelector)\n | (ElementChildSelector & AccessibleTextSelector & ElementSelector);\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"
|
|
1
|
+
{"Autocomplete":{"accessibleText":{"errorMessage":"errorMessage","hint":"description","label":"label"},"children":{"list":{"children":{"listItem":{"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"option"}}},"isControlledElement":true}},"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"combobox"}},"Callout":{"accessibleText":{"text":"description","title":"label"},"children":{"link":{"elementSelector":{"method":"ByRole","options":{"linkText":"name"},"role":"link"}}},"elementSelector":{"method":"ByRole","options":{"title":"name"},"role":["alert","status"]}},"Select":{"accessibleText":{"errorMessage":"errorMessage","hint":"description","label":"label"},"children":{"list":{"accessibleText":{"label":"label"},"children":{"listItem":{"accessibleText":{"label":"label"},"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"option"}}},"isControlledElement":true}},"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"combobox"}},"Tabs":{"children":{"tabItem":{"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"tab"}}},"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"tablist"}},"TextField":{"accessibleText":{"errorMessage":"errorMessage","hint":"description","label":"label"},"children":{"link":{"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"link"}}},"elementSelector":{"method":"ByRole","options":{"label":"name"},"role":"textbox"}}}
|
package/dist/theme/components.js
CHANGED
|
@@ -44,7 +44,8 @@ const drawerSizes = {
|
|
|
44
44
|
};
|
|
45
45
|
export const components = ({
|
|
46
46
|
odysseyTokens,
|
|
47
|
-
shadowDomElement
|
|
47
|
+
shadowDomElement,
|
|
48
|
+
shadowRootElement
|
|
48
49
|
}) => {
|
|
49
50
|
return {
|
|
50
51
|
MuiAccordion: {
|
|
@@ -152,29 +153,33 @@ export const components = ({
|
|
|
152
153
|
padding: odysseyTokens.Spacing4,
|
|
153
154
|
gap: odysseyTokens.Spacing4,
|
|
154
155
|
color: odysseyTokens.TypographyColorBody,
|
|
155
|
-
border:
|
|
156
|
+
border: "1px solid",
|
|
156
157
|
...(ownerState.severity === "success" && {
|
|
157
|
-
backgroundColor: odysseyTokens.
|
|
158
|
+
backgroundColor: odysseyTokens.HueGreen50,
|
|
159
|
+
borderColor: odysseyTokens.HueGreen200,
|
|
158
160
|
...(ownerState.variant === "toast" && {
|
|
159
|
-
backgroundColor: odysseyTokens.
|
|
161
|
+
backgroundColor: odysseyTokens.HueGreen50.concat(odysseyTokens.PaletteAlphaSemi)
|
|
160
162
|
})
|
|
161
163
|
}),
|
|
162
164
|
...(ownerState.severity === "info" && {
|
|
163
|
-
backgroundColor: odysseyTokens.
|
|
165
|
+
backgroundColor: odysseyTokens.HueBlue50,
|
|
166
|
+
borderColor: odysseyTokens.HueBlue200,
|
|
164
167
|
...(ownerState.variant === "toast" && {
|
|
165
|
-
backgroundColor: odysseyTokens.
|
|
168
|
+
backgroundColor: odysseyTokens.HueBlue50.concat(odysseyTokens.PaletteAlphaSemi)
|
|
166
169
|
})
|
|
167
170
|
}),
|
|
168
171
|
...(ownerState.severity === "error" && {
|
|
169
|
-
backgroundColor: odysseyTokens.
|
|
172
|
+
backgroundColor: odysseyTokens.HueRed50,
|
|
173
|
+
borderColor: odysseyTokens.HueRed200,
|
|
170
174
|
...(ownerState.variant === "toast" && {
|
|
171
|
-
backgroundColor: odysseyTokens.
|
|
175
|
+
backgroundColor: odysseyTokens.HueRed50.concat(odysseyTokens.PaletteAlphaSemi)
|
|
172
176
|
})
|
|
173
177
|
}),
|
|
174
178
|
...(ownerState.severity === "warning" && {
|
|
175
|
-
backgroundColor: odysseyTokens.
|
|
179
|
+
backgroundColor: odysseyTokens.HueYellow50,
|
|
180
|
+
borderColor: odysseyTokens.HueYellow500,
|
|
176
181
|
...(ownerState.variant === "toast" && {
|
|
177
|
-
backgroundColor: odysseyTokens.
|
|
182
|
+
backgroundColor: odysseyTokens.HueYellow50.concat(odysseyTokens.PaletteAlphaSemi)
|
|
178
183
|
})
|
|
179
184
|
}),
|
|
180
185
|
[`& .${alertTitleClasses.root}`]: {
|
|
@@ -431,7 +436,6 @@ export const components = ({
|
|
|
431
436
|
background: "transparent",
|
|
432
437
|
paddingBlockStart: odysseyTokens.Spacing1,
|
|
433
438
|
...(ownerState.ListboxComponent !== undefined && {
|
|
434
|
-
height: "100%",
|
|
435
439
|
maxHeight: "40vh"
|
|
436
440
|
})
|
|
437
441
|
}),
|
|
@@ -781,73 +785,95 @@ export const components = ({
|
|
|
781
785
|
},
|
|
782
786
|
styleOverrides: {
|
|
783
787
|
root: ({
|
|
788
|
+
ownerState,
|
|
784
789
|
theme
|
|
785
|
-
}) =>
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
duration: odysseyTokens.TransitionDurationMain
|
|
797
|
-
}),
|
|
798
|
-
[`.${svgIconClasses.root}`]: {
|
|
799
|
-
color: odysseyTokens.HueNeutralWhite,
|
|
800
|
-
transition: theme.transitions.create(["color"], {
|
|
790
|
+
}) => {
|
|
791
|
+
const isReadOnly = ownerState?.inputProps?.readOnly;
|
|
792
|
+
return {
|
|
793
|
+
width: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
794
|
+
minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
795
|
+
height: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
796
|
+
borderRadius: odysseyTokens.BorderRadiusTight,
|
|
797
|
+
border: `1px solid ${odysseyTokens.HueNeutral500}`,
|
|
798
|
+
padding: 0,
|
|
799
|
+
boxShadow: `0 0 0 0 transparent`,
|
|
800
|
+
transition: theme.transitions.create(["border-color", "background-color", "box-shadow"], {
|
|
801
801
|
duration: odysseyTokens.TransitionDurationMain
|
|
802
|
-
})
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
802
|
+
}),
|
|
803
|
+
[`.${svgIconClasses.root}`]: {
|
|
804
|
+
color: odysseyTokens.HueNeutralWhite,
|
|
805
|
+
transition: theme.transitions.create(["color"], {
|
|
806
|
+
duration: odysseyTokens.TransitionDurationMain
|
|
807
|
+
})
|
|
808
|
+
},
|
|
809
|
+
"&.Mui-checked, &.MuiCheckbox-indeterminate": {
|
|
810
|
+
backgroundColor: odysseyTokens.PalettePrimaryMain,
|
|
811
|
+
borderColor: odysseyTokens.PalettePrimaryMain,
|
|
812
|
+
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
813
|
+
backgroundColor: odysseyTokens.PalettePrimaryDark,
|
|
814
|
+
borderColor: odysseyTokens.PalettePrimaryDark
|
|
815
|
+
}
|
|
816
|
+
},
|
|
807
817
|
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
808
|
-
backgroundColor:
|
|
809
|
-
borderColor: odysseyTokens.
|
|
810
|
-
}
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
borderColor: odysseyTokens.BorderColorDangerDark,
|
|
818
|
-
"&.Mui-checked": {
|
|
819
|
-
backgroundColor: odysseyTokens.PaletteDangerDark,
|
|
820
|
-
borderColor: odysseyTokens.BorderColorDangerDark
|
|
821
|
-
}
|
|
822
|
-
},
|
|
823
|
-
".Mui-error:not(.Mui-valid) > &": {
|
|
824
|
-
borderColor: odysseyTokens.BorderColorDangerControl,
|
|
825
|
-
"&.Mui-checked": {
|
|
826
|
-
backgroundColor: odysseyTokens.PaletteDangerMain,
|
|
827
|
-
borderColor: odysseyTokens.BorderColorDangerControl
|
|
818
|
+
backgroundColor: "transparent",
|
|
819
|
+
borderColor: odysseyTokens.HueNeutral900
|
|
820
|
+
},
|
|
821
|
+
".Mui-error:not(.Mui-valid):hover > &": {
|
|
822
|
+
borderColor: odysseyTokens.BorderColorDangerDark,
|
|
823
|
+
"&.Mui-checked": {
|
|
824
|
+
backgroundColor: odysseyTokens.PaletteDangerDark,
|
|
825
|
+
borderColor: odysseyTokens.BorderColorDangerDark
|
|
826
|
+
}
|
|
828
827
|
},
|
|
829
|
-
"&.Mui-focusVisible": {
|
|
830
|
-
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`
|
|
831
|
-
}
|
|
832
|
-
},
|
|
833
|
-
"&.Mui-focusVisible": {
|
|
834
|
-
borderColor: odysseyTokens.HueNeutral900,
|
|
835
|
-
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
|
|
836
|
-
outline: "2px solid transparent",
|
|
837
|
-
outlineOffset: "1px"
|
|
838
|
-
},
|
|
839
|
-
"&.Mui-disabled": {
|
|
840
|
-
backgroundColor: odysseyTokens.HueNeutral50,
|
|
841
|
-
borderColor: odysseyTokens.HueNeutral300,
|
|
842
828
|
".Mui-error:not(.Mui-valid) > &": {
|
|
829
|
+
borderColor: odysseyTokens.BorderColorDangerControl,
|
|
830
|
+
"&.Mui-checked": {
|
|
831
|
+
backgroundColor: odysseyTokens.PaletteDangerMain,
|
|
832
|
+
borderColor: odysseyTokens.BorderColorDangerControl
|
|
833
|
+
},
|
|
834
|
+
"&.Mui-focusVisible": {
|
|
835
|
+
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`
|
|
836
|
+
}
|
|
837
|
+
},
|
|
838
|
+
"&.Mui-focusVisible": {
|
|
839
|
+
borderColor: odysseyTokens.HueNeutral900,
|
|
840
|
+
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
|
|
841
|
+
outline: "2px solid transparent",
|
|
842
|
+
outlineOffset: "1px"
|
|
843
|
+
},
|
|
844
|
+
"&.Mui-disabled": {
|
|
843
845
|
backgroundColor: odysseyTokens.HueNeutral50,
|
|
844
|
-
borderColor: odysseyTokens.HueNeutral300
|
|
846
|
+
borderColor: odysseyTokens.HueNeutral300,
|
|
847
|
+
".Mui-error:not(.Mui-valid) > &": {
|
|
848
|
+
backgroundColor: odysseyTokens.HueNeutral50,
|
|
849
|
+
borderColor: odysseyTokens.HueNeutral300
|
|
850
|
+
},
|
|
851
|
+
[`.${svgIconClasses.root}`]: {
|
|
852
|
+
color: odysseyTokens.HueNeutral300
|
|
853
|
+
}
|
|
845
854
|
},
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
855
|
+
...(isReadOnly && {
|
|
856
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
857
|
+
border: `1px solid ${odysseyTokens.HueNeutral300}`,
|
|
858
|
+
cursor: "default",
|
|
859
|
+
"&.Mui-checked, &.MuiCheckbox-indeterminate": {
|
|
860
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
861
|
+
borderColor: odysseyTokens.HueNeutral300,
|
|
862
|
+
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
863
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
864
|
+
borderColor: odysseyTokens.HueNeutral300
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
868
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
869
|
+
borderColor: odysseyTokens.HueNeutral300
|
|
870
|
+
},
|
|
871
|
+
[`.${svgIconClasses.root}`]: {
|
|
872
|
+
color: odysseyTokens.HueNeutral700
|
|
873
|
+
}
|
|
874
|
+
})
|
|
875
|
+
};
|
|
876
|
+
}
|
|
851
877
|
}
|
|
852
878
|
},
|
|
853
879
|
MuiChip: {
|
|
@@ -1919,6 +1945,12 @@ export const components = ({
|
|
|
1919
1945
|
}
|
|
1920
1946
|
}
|
|
1921
1947
|
},
|
|
1948
|
+
"&[data-empty='true']": {
|
|
1949
|
+
"&:after": {
|
|
1950
|
+
content: "' '",
|
|
1951
|
+
visibility: "hidden"
|
|
1952
|
+
}
|
|
1953
|
+
},
|
|
1922
1954
|
...(!ownerState.disableGutters && {
|
|
1923
1955
|
paddingInline: odysseyTokens.Spacing4
|
|
1924
1956
|
}),
|
|
@@ -1953,7 +1985,7 @@ export const components = ({
|
|
|
1953
1985
|
},
|
|
1954
1986
|
MuiModal: {
|
|
1955
1987
|
defaultProps: {
|
|
1956
|
-
container: shadowDomElement
|
|
1988
|
+
container: shadowRootElement || shadowDomElement
|
|
1957
1989
|
}
|
|
1958
1990
|
},
|
|
1959
1991
|
MuiNativeSelect: {
|
|
@@ -1988,7 +2020,7 @@ export const components = ({
|
|
|
1988
2020
|
},
|
|
1989
2021
|
MuiPopover: {
|
|
1990
2022
|
defaultProps: {
|
|
1991
|
-
container: shadowDomElement
|
|
2023
|
+
container: shadowRootElement || shadowDomElement
|
|
1992
2024
|
},
|
|
1993
2025
|
styleOverrides: {
|
|
1994
2026
|
paper: {
|
|
@@ -2001,7 +2033,7 @@ export const components = ({
|
|
|
2001
2033
|
},
|
|
2002
2034
|
MuiPopper: {
|
|
2003
2035
|
defaultProps: {
|
|
2004
|
-
container: shadowDomElement
|
|
2036
|
+
container: shadowRootElement || shadowDomElement
|
|
2005
2037
|
}
|
|
2006
2038
|
},
|
|
2007
2039
|
MuiRadio: {
|
|
@@ -2012,73 +2044,100 @@ export const components = ({
|
|
|
2012
2044
|
},
|
|
2013
2045
|
styleOverrides: {
|
|
2014
2046
|
root: ({
|
|
2047
|
+
ownerState,
|
|
2015
2048
|
theme
|
|
2016
|
-
}) =>
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
"&::before": {
|
|
2032
|
-
content: "''",
|
|
2033
|
-
position: "absolute",
|
|
2034
|
-
width: odysseyTokens.Spacing2,
|
|
2035
|
-
height: odysseyTokens.Spacing2,
|
|
2036
|
-
borderRadius: "50%",
|
|
2037
|
-
backgroundColor: "transparent",
|
|
2038
|
-
transition: theme.transitions.create(["background-color"], {
|
|
2049
|
+
}) => {
|
|
2050
|
+
const isReadOnly = ownerState?.inputProps?.readOnly;
|
|
2051
|
+
return {
|
|
2052
|
+
position: "relative",
|
|
2053
|
+
insetBlockStart: `${2 / theme.typography.fontSize}rem`,
|
|
2054
|
+
width: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
2055
|
+
minWidth: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
2056
|
+
height: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
2057
|
+
borderRadius: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
2058
|
+
borderWidth: odysseyTokens.BorderWidthMain,
|
|
2059
|
+
borderStyle: odysseyTokens.BorderStyleMain,
|
|
2060
|
+
borderColor: odysseyTokens.HueNeutral500,
|
|
2061
|
+
padding: 0,
|
|
2062
|
+
boxShadow: `0 0 0 0 transparent`,
|
|
2063
|
+
transition: theme.transitions.create(["border-color", "background-color", "box-shadow"], {
|
|
2039
2064
|
duration: odysseyTokens.TransitionDurationMain
|
|
2040
|
-
})
|
|
2041
|
-
},
|
|
2042
|
-
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
2043
|
-
backgroundColor: "transparent",
|
|
2044
|
-
borderColor: odysseyTokens.HueNeutral900
|
|
2045
|
-
},
|
|
2046
|
-
".Mui-error:hover > &": {
|
|
2047
|
-
backgroundColor: "transparent",
|
|
2048
|
-
borderColor: odysseyTokens.BorderColorDangerDark,
|
|
2065
|
+
}),
|
|
2049
2066
|
"&::before": {
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2067
|
+
content: "''",
|
|
2068
|
+
position: "absolute",
|
|
2069
|
+
width: odysseyTokens.Spacing2,
|
|
2070
|
+
height: odysseyTokens.Spacing2,
|
|
2071
|
+
borderRadius: "50%",
|
|
2072
|
+
backgroundColor: "transparent",
|
|
2073
|
+
transition: theme.transitions.create(["background-color"], {
|
|
2074
|
+
duration: odysseyTokens.TransitionDurationMain
|
|
2075
|
+
})
|
|
2076
|
+
},
|
|
2077
|
+
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
2078
|
+
backgroundColor: "transparent",
|
|
2079
|
+
borderColor: odysseyTokens.HueNeutral900
|
|
2080
|
+
},
|
|
2081
|
+
".Mui-error:hover > &": {
|
|
2082
|
+
backgroundColor: "transparent",
|
|
2083
|
+
borderColor: odysseyTokens.BorderColorDangerDark,
|
|
2084
|
+
"&::before": {
|
|
2085
|
+
backgroundColor: odysseyTokens.PaletteDangerDark
|
|
2086
|
+
}
|
|
2087
|
+
},
|
|
2088
|
+
".Mui-error > &": {
|
|
2089
|
+
borderColor: odysseyTokens.BorderColorDangerControl,
|
|
2090
|
+
"&.Mui-focusVisible": {
|
|
2091
|
+
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PaletteDangerMain}`
|
|
2092
|
+
}
|
|
2093
|
+
},
|
|
2055
2094
|
"&.Mui-focusVisible": {
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
"
|
|
2068
|
-
backgroundColor: odysseyTokens.
|
|
2069
|
-
}
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
backgroundColor: odysseyTokens.
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2095
|
+
borderColor: odysseyTokens.HueNeutral900,
|
|
2096
|
+
boxShadow: `0 0 0 2px ${odysseyTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyTokens.PalettePrimaryMain}`,
|
|
2097
|
+
outline: "2px solid transparent",
|
|
2098
|
+
outlineOffset: "1px"
|
|
2099
|
+
},
|
|
2100
|
+
"&.Mui-checked": {
|
|
2101
|
+
position: "relative",
|
|
2102
|
+
"&::before": {
|
|
2103
|
+
backgroundColor: odysseyTokens.PalettePrimaryMain
|
|
2104
|
+
}
|
|
2105
|
+
},
|
|
2106
|
+
".Mui-error > &.Mui-checked::before": {
|
|
2107
|
+
backgroundColor: odysseyTokens.PaletteDangerMain
|
|
2108
|
+
},
|
|
2109
|
+
"&.Mui-disabled": {
|
|
2110
|
+
backgroundColor: odysseyTokens.HueNeutral50,
|
|
2111
|
+
borderColor: odysseyTokens.BorderColorDisabled,
|
|
2112
|
+
"&.Mui-checked::before": {
|
|
2113
|
+
backgroundColor: odysseyTokens.BorderColorDisabled
|
|
2114
|
+
}
|
|
2115
|
+
},
|
|
2116
|
+
...(isReadOnly && {
|
|
2117
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
2118
|
+
borderColor: odysseyTokens.HueNeutral300,
|
|
2119
|
+
cursor: "default",
|
|
2120
|
+
"&::before": {
|
|
2121
|
+
content: "''",
|
|
2122
|
+
position: "absolute",
|
|
2123
|
+
width: odysseyTokens.Spacing2,
|
|
2124
|
+
height: odysseyTokens.Spacing2,
|
|
2125
|
+
borderRadius: "50%",
|
|
2126
|
+
backgroundColor: "transparent",
|
|
2127
|
+
transition: theme.transitions.create(["background-color"], {
|
|
2128
|
+
duration: odysseyTokens.TransitionDurationMain
|
|
2129
|
+
})
|
|
2130
|
+
},
|
|
2131
|
+
"&.Mui-checked::before": {
|
|
2132
|
+
backgroundColor: odysseyTokens.HueNeutral700
|
|
2133
|
+
},
|
|
2134
|
+
[`.${formControlLabelClasses.root}:hover > &`]: {
|
|
2135
|
+
backgroundColor: odysseyTokens.HueNeutral100,
|
|
2136
|
+
borderColor: odysseyTokens.HueNeutral300
|
|
2137
|
+
}
|
|
2138
|
+
})
|
|
2139
|
+
};
|
|
2140
|
+
}
|
|
2082
2141
|
}
|
|
2083
2142
|
},
|
|
2084
2143
|
MuiSnackbar: {
|
|
@@ -2107,11 +2166,34 @@ export const components = ({
|
|
|
2107
2166
|
}
|
|
2108
2167
|
},
|
|
2109
2168
|
styleOverrides: {
|
|
2110
|
-
|
|
2169
|
+
root: ({
|
|
2170
|
+
ownerState
|
|
2171
|
+
}) => ({
|
|
2172
|
+
...(ownerState?.inputProps?.readOnly && {
|
|
2173
|
+
"&.MuiInputBase-root": {
|
|
2174
|
+
backgroundColor: odysseyTokens.HueNeutral50,
|
|
2175
|
+
borderColor: odysseyTokens.HueNeutral200,
|
|
2176
|
+
"&:hover": {
|
|
2177
|
+
backgroundColor: odysseyTokens.HueNeutral50
|
|
2178
|
+
},
|
|
2179
|
+
"&.Mui-focused": {
|
|
2180
|
+
borderColor: odysseyTokens.PalettePrimaryMain
|
|
2181
|
+
}
|
|
2182
|
+
}
|
|
2183
|
+
}),
|
|
2184
|
+
"& .MuiSelect-icon": {
|
|
2185
|
+
right: "unset",
|
|
2186
|
+
insetInlineEnd: odysseyTokens.Spacing3,
|
|
2187
|
+
color: odysseyTokens.TypographyColorSubordinate
|
|
2188
|
+
}
|
|
2189
|
+
}),
|
|
2190
|
+
select: ({
|
|
2191
|
+
ownerState
|
|
2192
|
+
}) => ({
|
|
2111
2193
|
height: "auto",
|
|
2112
2194
|
paddingBlock: `calc(${odysseyTokens.Spacing3} - ${odysseyTokens.BorderWidthMain})`,
|
|
2113
2195
|
paddingInline: odysseyTokens.Spacing3,
|
|
2114
|
-
minHeight:
|
|
2196
|
+
minHeight: `${odysseyTokens.TypographyLineHeightUi}em`,
|
|
2115
2197
|
"&:focus": {
|
|
2116
2198
|
backgroundColor: "transparent"
|
|
2117
2199
|
},
|
|
@@ -2124,13 +2206,16 @@ export const components = ({
|
|
|
2124
2206
|
},
|
|
2125
2207
|
["& .MuiListItemSecondaryAction-root"]: {
|
|
2126
2208
|
display: "none"
|
|
2127
|
-
}
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2209
|
+
},
|
|
2210
|
+
...(ownerState?.inputProps?.readOnly && {
|
|
2211
|
+
color: odysseyTokens.HueNeutral700,
|
|
2212
|
+
cursor: "default",
|
|
2213
|
+
"&:focus": {
|
|
2214
|
+
backgroundColor: "transparent",
|
|
2215
|
+
borderColor: odysseyTokens.PalettePrimaryMain
|
|
2216
|
+
}
|
|
2217
|
+
})
|
|
2218
|
+
})
|
|
2134
2219
|
}
|
|
2135
2220
|
},
|
|
2136
2221
|
MuiSvgIcon: {
|