@okta/odyssey-react-mui 0.23.0 → 0.24.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 +20 -0
- package/README.md +43 -7
- package/dist/{src/ThemeProvider.d.ts → @types/i18next.d.js} +4 -7
- package/dist/@types/i18next.d.js.map +1 -0
- package/dist/Autocomplete.js +13 -3
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Banner.js +6 -3
- package/dist/Banner.js.map +1 -1
- package/dist/Button.js +13 -3
- package/dist/Button.js.map +1 -1
- package/dist/Checkbox.js +44 -10
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.js +14 -3
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/CircularProgress.js +11 -0
- package/dist/CircularProgress.js.map +1 -1
- package/dist/Dialog.js +11 -7
- package/dist/Dialog.js.map +1 -1
- package/dist/Field.js +13 -8
- package/dist/Field.js.map +1 -1
- package/dist/FieldError.js +6 -3
- package/dist/FieldError.js.map +1 -1
- package/dist/FieldHint.js +1 -2
- package/dist/FieldHint.js.map +1 -1
- package/dist/FieldLabel.js +17 -5
- package/dist/FieldLabel.js.map +1 -1
- package/dist/Fieldset.js +55 -0
- package/dist/Fieldset.js.map +1 -0
- package/dist/Form.js +69 -0
- package/dist/Form.js.map +1 -0
- package/dist/Icon.js +2 -3
- package/dist/Icon.js.map +1 -1
- package/dist/Infobox.js +6 -3
- package/dist/Infobox.js.map +1 -1
- package/dist/Link.js +6 -2
- package/dist/Link.js.map +1 -1
- package/dist/MenuButton.js +0 -5
- package/dist/MenuButton.js.map +1 -1
- package/dist/MenuItem.js +4 -2
- package/dist/MenuItem.js.map +1 -1
- package/dist/MuiPropsChild.js +3 -1
- package/dist/MuiPropsChild.js.map +1 -1
- package/dist/MuiPropsContext.js +1 -0
- package/dist/MuiPropsContext.js.map +1 -1
- package/dist/NativeSelect.js +61 -0
- package/dist/NativeSelect.js.map +1 -0
- package/dist/OdysseyCacheProvider.js +1 -2
- package/dist/OdysseyCacheProvider.js.map +1 -1
- package/dist/OdysseyI18n.js +93 -0
- package/dist/OdysseyI18n.js.map +1 -0
- package/dist/{ThemeProvider.js → OdysseyProvider.js} +20 -8
- package/dist/OdysseyProvider.js.map +1 -0
- package/dist/OdysseyThemeProvider.js +11 -5
- package/dist/OdysseyThemeProvider.js.map +1 -1
- package/dist/OdysseyTranslationProvider.js +47 -0
- package/dist/OdysseyTranslationProvider.js.map +1 -0
- package/dist/OdysseyTranslationProvider.types.js +14 -0
- package/dist/OdysseyTranslationProvider.types.js.map +1 -0
- package/dist/PasswordField.js +12 -0
- package/dist/PasswordField.js.map +1 -1
- package/dist/Radio.js +11 -2
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js +11 -2
- package/dist/RadioGroup.js.map +1 -1
- package/dist/ScreenReaderText.js +3 -3
- package/dist/ScreenReaderText.js.map +1 -1
- package/dist/SearchField.js +11 -0
- package/dist/SearchField.js.map +1 -1
- package/dist/Select.js +131 -0
- package/dist/Select.js.map +1 -0
- package/dist/Status.js.map +1 -1
- package/dist/Tabs.js +46 -0
- package/dist/Tabs.js.map +1 -0
- package/dist/Tag.js +11 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TagList.js +11 -2
- package/dist/TagList.js.map +1 -1
- package/dist/TagListContext.js +1 -0
- package/dist/TagListContext.js.map +1 -1
- package/dist/TextField.js +12 -2
- package/dist/TextField.js.map +1 -1
- package/dist/Toast.js +10 -4
- package/dist/Toast.js.map +1 -1
- package/dist/ToastStack.js +1 -2
- package/dist/ToastStack.js.map +1 -1
- package/dist/Tooltip.js +11 -0
- package/dist/Tooltip.js.map +1 -1
- package/dist/a11yCheck.js +1 -2
- package/dist/a11yCheck.js.map +1 -1
- package/dist/createUniqueAlphabeticalId.js +1 -2
- package/dist/createUniqueAlphabeticalId.js.map +1 -1
- package/dist/createUniqueId.js +1 -2
- package/dist/createUniqueId.js.map +1 -1
- package/dist/iconDictionary/Add.js +1 -2
- package/dist/iconDictionary/Add.js.map +1 -1
- package/dist/iconDictionary/AddCircle.js +1 -2
- package/dist/iconDictionary/AddCircle.js.map +1 -1
- package/dist/iconDictionary/AlertCircle.js +1 -2
- package/dist/iconDictionary/AlertCircle.js.map +1 -1
- package/dist/iconDictionary/AlertCircleFilled.js +1 -2
- package/dist/iconDictionary/AlertCircleFilled.js.map +1 -1
- package/dist/iconDictionary/AlertTriangleFilled.js +1 -2
- package/dist/iconDictionary/AlertTriangleFilled.js.map +1 -1
- package/dist/iconDictionary/Anchor.js +1 -2
- package/dist/iconDictionary/Anchor.js.map +1 -1
- package/dist/iconDictionary/ArrowDown.js +1 -2
- package/dist/iconDictionary/ArrowDown.js.map +1 -1
- package/dist/iconDictionary/ArrowLeft.js +1 -2
- package/dist/iconDictionary/ArrowLeft.js.map +1 -1
- package/dist/iconDictionary/ArrowRight.js +1 -2
- package/dist/iconDictionary/ArrowRight.js.map +1 -1
- package/dist/iconDictionary/ArrowUp.js +1 -2
- package/dist/iconDictionary/ArrowUp.js.map +1 -1
- package/dist/iconDictionary/ArrowUpDown.js +1 -2
- package/dist/iconDictionary/ArrowUpDown.js.map +1 -1
- package/dist/iconDictionary/Calendar.js +1 -2
- package/dist/iconDictionary/Calendar.js.map +1 -1
- package/dist/iconDictionary/Check.js +1 -2
- package/dist/iconDictionary/Check.js.map +1 -1
- package/dist/iconDictionary/CheckCircleFilled.js +1 -2
- package/dist/iconDictionary/CheckCircleFilled.js.map +1 -1
- package/dist/iconDictionary/ChevronDown.js +1 -2
- package/dist/iconDictionary/ChevronDown.js.map +1 -1
- package/dist/iconDictionary/ChevronUp.js +1 -2
- package/dist/iconDictionary/ChevronUp.js.map +1 -1
- package/dist/iconDictionary/Close.js +1 -2
- package/dist/iconDictionary/Close.js.map +1 -1
- package/dist/iconDictionary/CloseCircleFilled.js +1 -2
- package/dist/iconDictionary/CloseCircleFilled.js.map +1 -1
- package/dist/iconDictionary/Copy.js +1 -2
- package/dist/iconDictionary/Copy.js.map +1 -1
- package/dist/iconDictionary/Delete.js +1 -2
- package/dist/iconDictionary/Delete.js.map +1 -1
- package/dist/iconDictionary/Download.js +1 -2
- package/dist/iconDictionary/Download.js.map +1 -1
- package/dist/iconDictionary/DragHandle.js +1 -2
- package/dist/iconDictionary/DragHandle.js.map +1 -1
- package/dist/iconDictionary/Edit.js +1 -2
- package/dist/iconDictionary/Edit.js.map +1 -1
- package/dist/iconDictionary/ExternalLink.js +1 -2
- package/dist/iconDictionary/ExternalLink.js.map +1 -1
- package/dist/iconDictionary/Eye.js +1 -2
- package/dist/iconDictionary/Eye.js.map +1 -1
- package/dist/iconDictionary/EyeOff.js +1 -2
- package/dist/iconDictionary/EyeOff.js.map +1 -1
- package/dist/iconDictionary/Filter.js +1 -2
- package/dist/iconDictionary/Filter.js.map +1 -1
- package/dist/iconDictionary/Globe.js +1 -2
- package/dist/iconDictionary/Globe.js.map +1 -1
- package/dist/iconDictionary/Home.js +1 -2
- package/dist/iconDictionary/Home.js.map +1 -1
- package/dist/iconDictionary/InformationCircle.js +1 -2
- package/dist/iconDictionary/InformationCircle.js.map +1 -1
- package/dist/iconDictionary/InformationCircleFilled.js +1 -2
- package/dist/iconDictionary/InformationCircleFilled.js.map +1 -1
- package/dist/iconDictionary/Notification.js +1 -2
- package/dist/iconDictionary/Notification.js.map +1 -1
- package/dist/iconDictionary/OverflowVertical.js +1 -2
- package/dist/iconDictionary/OverflowVertical.js.map +1 -1
- package/dist/iconDictionary/QuestionCircle.js +1 -2
- package/dist/iconDictionary/QuestionCircle.js.map +1 -1
- package/dist/iconDictionary/QuestionCircleFilled.js +1 -2
- package/dist/iconDictionary/QuestionCircleFilled.js.map +1 -1
- package/dist/iconDictionary/Search.js +1 -2
- package/dist/iconDictionary/Search.js.map +1 -1
- package/dist/iconDictionary/Settings.js +1 -2
- package/dist/iconDictionary/Settings.js.map +1 -1
- package/dist/iconDictionary/Subtract.js +1 -2
- package/dist/iconDictionary/Subtract.js.map +1 -1
- package/dist/iconDictionary/SvgIcon.js +1 -0
- package/dist/iconDictionary/SvgIcon.js.map +1 -1
- package/dist/iconDictionary/User.js +1 -2
- package/dist/iconDictionary/User.js.map +1 -1
- package/dist/iconDictionary/UserGroup.js +1 -2
- package/dist/iconDictionary/UserGroup.js.map +1 -1
- package/dist/iconDictionary/index.js.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui.js +11 -0
- package/dist/properties/ts/odyssey-react-mui.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_cs.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_da.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_de.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_el.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_es.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_fi.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_fr.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_hu.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_id.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_it.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_ja.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_ko.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_ms.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_nb.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_nl-NL.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_nl-NL.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_pl.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_pt-BR.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_pt-BR.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_ro.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_ru.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_sv.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_th.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_tr.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_uk.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_zh-CN.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_zh-CN.js.map +1 -0
- package/dist/properties/ts/odyssey-react-mui_zh-TW.js +2 -0
- package/dist/properties/ts/odyssey-react-mui_zh-TW.js.map +1 -0
- package/dist/src/Banner.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +4 -2
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CheckboxGroup.d.ts +2 -1
- package/dist/src/CheckboxGroup.d.ts.map +1 -1
- package/dist/src/Field.d.ts +5 -5
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/FieldError.d.ts.map +1 -1
- package/dist/src/FieldLabel.d.ts +1 -2
- package/dist/src/FieldLabel.d.ts.map +1 -1
- package/dist/src/Fieldset.d.ts +42 -0
- package/dist/src/Fieldset.d.ts.map +1 -0
- package/dist/src/Form.d.ts +73 -0
- package/dist/src/Form.d.ts.map +1 -0
- package/dist/src/Icon.d.ts +4 -2
- package/dist/src/Icon.d.ts.map +1 -1
- package/dist/src/Infobox.d.ts.map +1 -1
- package/dist/src/MenuItem.d.ts +1 -1
- package/dist/src/MenuItem.d.ts.map +1 -1
- package/dist/src/NativeSelect.d.ts +36 -0
- package/dist/src/NativeSelect.d.ts.map +1 -0
- package/dist/src/OdysseyI18n.d.ts +54 -0
- package/dist/src/OdysseyI18n.d.ts.map +1 -0
- package/dist/src/OdysseyProvider.d.ts +27 -0
- package/dist/src/OdysseyProvider.d.ts.map +1 -0
- package/dist/src/OdysseyThemeProvider.d.ts +4 -2
- package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/src/OdysseyTranslationProvider.d.ts +25 -0
- package/dist/src/OdysseyTranslationProvider.d.ts.map +1 -0
- package/dist/src/OdysseyTranslationProvider.types.d.ts +14 -0
- package/dist/src/OdysseyTranslationProvider.types.d.ts.map +1 -0
- package/dist/src/PasswordField.d.ts.map +1 -1
- package/dist/src/Select.d.ts +35 -0
- package/dist/src/Select.d.ts.map +1 -0
- package/{src/ThemeProvider.tsx → dist/src/Tabs.d.ts} +16 -15
- package/dist/src/Tabs.d.ts.map +1 -0
- package/dist/src/TextField.d.ts +0 -4
- package/dist/src/TextField.d.ts.map +1 -1
- package/dist/src/Toast.d.ts +1 -1
- package/dist/src/Toast.d.ts.map +1 -1
- package/dist/src/index.d.ts +9 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui.d.ts +11 -0
- package/dist/src/properties/ts/odyssey-react-mui.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_nl-NL.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_nl-NL.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_pt-BR.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_pt-BR.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_zh-CN.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_zh-CN.d.ts.map +1 -0
- package/dist/src/properties/ts/odyssey-react-mui_zh-TW.d.ts +2 -0
- package/dist/src/properties/ts/odyssey-react-mui_zh-TW.d.ts.map +1 -0
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/index.d.ts +3 -1
- package/dist/src/theme/index.d.ts.map +1 -1
- package/dist/src/theme/mixins.d.ts +2 -1
- package/dist/src/theme/mixins.d.ts.map +1 -1
- package/dist/src/theme/palette.d.ts +2 -1
- package/dist/src/theme/palette.d.ts.map +1 -1
- package/dist/src/theme/shape.d.ts +2 -1
- package/dist/src/theme/shape.d.ts.map +1 -1
- package/dist/src/theme/spacing.d.ts +2 -1
- package/dist/src/theme/spacing.d.ts.map +1 -1
- package/dist/src/theme/theme.d.ts +3 -2
- package/dist/src/theme/theme.d.ts.map +1 -1
- package/dist/src/theme/typography.d.ts +2 -1
- package/dist/src/theme/typography.d.ts.map +1 -1
- package/dist/theme/components.js +91 -73
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/components.types.js +1 -0
- package/dist/theme/components.types.js.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/mixins.js +8 -6
- package/dist/theme/mixins.js.map +1 -1
- package/dist/theme/mixins.types.js +1 -0
- package/dist/theme/mixins.types.js.map +1 -1
- package/dist/theme/palette.js +89 -86
- package/dist/theme/palette.js.map +1 -1
- package/dist/theme/palette.types.js +1 -0
- package/dist/theme/palette.types.js.map +1 -1
- package/dist/theme/shape.js +6 -4
- package/dist/theme/shape.js.map +1 -1
- package/dist/theme/spacing.js +4 -1
- package/dist/theme/spacing.js.map +1 -1
- package/dist/theme/temp.js +1 -0
- package/dist/theme/temp.js.map +1 -1
- package/dist/theme/theme.js +12 -9
- package/dist/theme/theme.js.map +1 -1
- package/dist/theme/typography.js +85 -83
- package/dist/theme/typography.js.map +1 -1
- package/dist/theme/typography.types.js +1 -0
- package/dist/theme/typography.types.js.map +1 -1
- package/dist/theme/useTheme.js +1 -0
- package/dist/theme/useTheme.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/useUniqueAlphabeticalId.js +1 -0
- package/dist/useUniqueAlphabeticalId.js.map +1 -1
- package/dist/useUniqueId.js +1 -0
- package/dist/useUniqueId.js.map +1 -1
- package/i18n.config.json +8 -0
- package/package.json +9 -4
- package/scripts/properties-to-ts.js +103 -0
- package/src/@types/i18next.d.ts +22 -0
- package/src/Banner.tsx +16 -11
- package/src/Checkbox.tsx +47 -21
- package/src/CheckboxGroup.tsx +4 -1
- package/src/Field.tsx +16 -7
- package/src/FieldError.tsx +6 -1
- package/src/FieldLabel.tsx +7 -4
- package/src/Fieldset.tsx +95 -0
- package/src/Form.tsx +142 -0
- package/src/Icon.tsx +11 -14
- package/src/Infobox.tsx +12 -7
- package/src/Link.tsx +2 -2
- package/src/MenuItem.tsx +1 -0
- package/src/NativeSelect.tsx +107 -0
- package/src/OdysseyI18n.ts +101 -0
- package/src/OdysseyProvider.tsx +59 -0
- package/src/OdysseyThemeProvider.tsx +9 -3
- package/src/OdysseyTranslationProvider.test.tsx +63 -0
- package/src/OdysseyTranslationProvider.tsx +65 -0
- package/src/OdysseyTranslationProvider.types.ts +42 -0
- package/src/PasswordField.tsx +1 -0
- package/src/Select.tsx +226 -0
- package/src/Tabs.tsx +70 -0
- package/src/TextField.tsx +1 -6
- package/src/Toast.tsx +61 -59
- package/src/index.ts +7 -9
- package/src/properties/odyssey-react-mui.properties +8 -0
- package/src/properties/translations/odyssey-react-mui_cs.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_da.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_de.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_el.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_es.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_fi.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_fr.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_hu.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_id.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_it.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_ja.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_ko.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_ms.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_nb.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_nl-NL.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_pl.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_pt-BR.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_ro.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_ru.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_sv.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_th.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_tr.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_uk.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_zh-CN.properties +0 -0
- package/src/properties/translations/odyssey-react-mui_zh-TW.properties +0 -0
- package/src/properties/ts/odyssey-react-mui.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_cs.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_da.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_de.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_el.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_es.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_fi.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_fr.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_hu.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_id.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_it.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_ja.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_ko.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_ms.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_nb.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_nl-NL.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_pl.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_pt-BR.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_ro.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_ru.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_sv.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_th.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_tr.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_uk.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_zh-CN.ts +1 -0
- package/src/properties/ts/odyssey-react-mui_zh-TW.ts +1 -0
- package/src/theme/components.tsx +12 -4
- package/src/theme/index.ts +5 -1
- package/src/theme/mixins.ts +10 -6
- package/src/theme/palette.ts +95 -88
- package/src/theme/shape.ts +12 -8
- package/src/theme/spacing.ts +17 -12
- package/src/theme/theme.ts +14 -10
- package/src/theme/typography.ts +87 -83
- package/dist/ThemeProvider.js.map +0 -1
- package/dist/src/ThemeProvider.d.ts.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2023-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
|
+
*/
|
|
12
|
+
|
|
13
|
+
export const supportedLanguages = [
|
|
14
|
+
"cs", // Czech
|
|
15
|
+
"da", // Danish
|
|
16
|
+
"de", // German
|
|
17
|
+
"el", // Greek
|
|
18
|
+
"en", // English
|
|
19
|
+
"es", // Spanish
|
|
20
|
+
"fi", // Finnish
|
|
21
|
+
"fr", // French
|
|
22
|
+
"hu", // Hungarian
|
|
23
|
+
"id", // Indonesian
|
|
24
|
+
"it", // Italian
|
|
25
|
+
"ja", // Japanese
|
|
26
|
+
"ko", // Korean
|
|
27
|
+
"ms", // Malaysian
|
|
28
|
+
"nb", // Norwegian
|
|
29
|
+
"nl-NL", // Dutch
|
|
30
|
+
"pl", // Polish
|
|
31
|
+
"pt-BR", // Portuguese (Brazil)
|
|
32
|
+
"ro", // Romanian
|
|
33
|
+
"ru", // Russian
|
|
34
|
+
"sv", // Swedish
|
|
35
|
+
"th", // Thai
|
|
36
|
+
"tr", // Turkish
|
|
37
|
+
"uk", // Ukrainian
|
|
38
|
+
"zh-CN", // Chinese (PRC)
|
|
39
|
+
"zh-TW", // Chinese
|
|
40
|
+
] as const;
|
|
41
|
+
|
|
42
|
+
export type SupportedLanguages = (typeof supportedLanguages)[number];
|
package/src/PasswordField.tsx
CHANGED
package/src/Select.tsx
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2022-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
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { ReactNode, forwardRef, memo, useCallback, useState } from "react";
|
|
14
|
+
import {
|
|
15
|
+
Box,
|
|
16
|
+
Chip,
|
|
17
|
+
ListSubheader,
|
|
18
|
+
MenuItem,
|
|
19
|
+
Select as MuiSelect,
|
|
20
|
+
SelectChangeEvent,
|
|
21
|
+
} from "@mui/material";
|
|
22
|
+
import { SelectProps as MuiSelectProps } from "@mui/material";
|
|
23
|
+
import { Checkbox } from "./Checkbox";
|
|
24
|
+
import { Field } from "./Field";
|
|
25
|
+
|
|
26
|
+
export type SelectOption = {
|
|
27
|
+
text: string;
|
|
28
|
+
value?: string;
|
|
29
|
+
type?: "heading" | "option";
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type SelectProps = {
|
|
33
|
+
errorMessage?: string;
|
|
34
|
+
hint?: string;
|
|
35
|
+
id?: string;
|
|
36
|
+
isDisabled?: boolean;
|
|
37
|
+
isMultiSelect?: boolean;
|
|
38
|
+
isOptional?: boolean;
|
|
39
|
+
label: string;
|
|
40
|
+
onBlur?: MuiSelectProps["onBlur"];
|
|
41
|
+
onChange?: MuiSelectProps["onChange"];
|
|
42
|
+
onFocus?: MuiSelectProps["onFocus"];
|
|
43
|
+
options: (string | SelectOption)[];
|
|
44
|
+
value?: string | string[];
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Options in Odyssey <Select> are passed as an array, which can contain any combination
|
|
49
|
+
* of the following:
|
|
50
|
+
* - string — A simple string. The string will be both the text and the value of the resulting option.
|
|
51
|
+
* <option value="string">string</option>
|
|
52
|
+
*
|
|
53
|
+
* - { text: string } — Same as above, but the string is contained within an object.
|
|
54
|
+
* <option value="text">text</option>
|
|
55
|
+
*
|
|
56
|
+
* - { text: string, value: string } — The option text will be text, and the option value will be value.
|
|
57
|
+
* <option value="value">text</option>
|
|
58
|
+
*
|
|
59
|
+
* - { text: string, type: "heading" } — Used to display a group heading with the text
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
const Select = forwardRef<HTMLSelectElement, SelectProps>(
|
|
63
|
+
(
|
|
64
|
+
{
|
|
65
|
+
errorMessage,
|
|
66
|
+
hint,
|
|
67
|
+
id: idOverride,
|
|
68
|
+
isDisabled = false,
|
|
69
|
+
isMultiSelect = false,
|
|
70
|
+
isOptional = false,
|
|
71
|
+
label,
|
|
72
|
+
onBlur,
|
|
73
|
+
onChange: onChangeProp,
|
|
74
|
+
onFocus,
|
|
75
|
+
value,
|
|
76
|
+
options,
|
|
77
|
+
},
|
|
78
|
+
ref
|
|
79
|
+
) => {
|
|
80
|
+
// If there's no value set, we set it to a blank string (if it's a single-select)
|
|
81
|
+
// or an empty array (if it's a multi-select)
|
|
82
|
+
if (typeof value === "undefined") {
|
|
83
|
+
value = isMultiSelect ? [] : "";
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const [selectedValue, setSelectedValue] = useState<string | string[]>(
|
|
87
|
+
value
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
const onChange = useCallback(
|
|
91
|
+
(event: SelectChangeEvent<string | string[]>, child: ReactNode) => {
|
|
92
|
+
const {
|
|
93
|
+
target: { value },
|
|
94
|
+
} = event;
|
|
95
|
+
|
|
96
|
+
// Set the field value, with some additional logic to handle array values
|
|
97
|
+
// for multi-selects
|
|
98
|
+
if (isMultiSelect) {
|
|
99
|
+
setSelectedValue(
|
|
100
|
+
typeof value === "string" ? value.split(",") : value
|
|
101
|
+
);
|
|
102
|
+
} else {
|
|
103
|
+
setSelectedValue(value);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Trigger the onChange event, if one has been passed
|
|
107
|
+
if (onChangeProp) {
|
|
108
|
+
onChangeProp(event, child);
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
[isMultiSelect, onChangeProp, setSelectedValue]
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
// Normalize the options array to accommodate the various
|
|
115
|
+
// data types that might be passed
|
|
116
|
+
const normalizedOptions = options.map((option) => {
|
|
117
|
+
if (typeof option === "object") {
|
|
118
|
+
return {
|
|
119
|
+
text: option.text,
|
|
120
|
+
value: option.value || option.text,
|
|
121
|
+
type: option.type === "heading" ? "heading" : "option",
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return { text: option, value: option, type: "option" };
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
const renderValue = useCallback(
|
|
129
|
+
(selected: string | string[]) => {
|
|
130
|
+
// If the selected value isn't an array, then we don't need to display
|
|
131
|
+
// chips and should fall back to the default render behavior
|
|
132
|
+
if (typeof selected === "string") {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Convert the selected options array into <Chip>s
|
|
137
|
+
const renderedChips = selected
|
|
138
|
+
.map((item: string) => {
|
|
139
|
+
const selectedOption = normalizedOptions.find(
|
|
140
|
+
(option) => option.value === item
|
|
141
|
+
);
|
|
142
|
+
|
|
143
|
+
if (!selectedOption) {
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return <Chip key={item} label={selectedOption.text} />;
|
|
148
|
+
})
|
|
149
|
+
.filter(Boolean);
|
|
150
|
+
|
|
151
|
+
if (renderedChips.length === 0) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// We need the <Box> to surround the <Chip>s for
|
|
156
|
+
// proper styling
|
|
157
|
+
return <Box>{renderedChips}</Box>;
|
|
158
|
+
},
|
|
159
|
+
[normalizedOptions]
|
|
160
|
+
);
|
|
161
|
+
|
|
162
|
+
// Convert the options into the ReactNode children
|
|
163
|
+
// that will populate the <Select>
|
|
164
|
+
const children = normalizedOptions.map((option) => {
|
|
165
|
+
if (option.type === "heading") {
|
|
166
|
+
return <ListSubheader key={option.text}>{option.text}</ListSubheader>;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return (
|
|
170
|
+
<MenuItem key={option.value} value={option.value}>
|
|
171
|
+
{isMultiSelect && (
|
|
172
|
+
<Checkbox isChecked={selectedValue.includes(option.value)} />
|
|
173
|
+
)}
|
|
174
|
+
{option.text}
|
|
175
|
+
</MenuItem>
|
|
176
|
+
);
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
const renderFieldComponent = useCallback(
|
|
180
|
+
() => (
|
|
181
|
+
<MuiSelect
|
|
182
|
+
id={idOverride}
|
|
183
|
+
name={idOverride}
|
|
184
|
+
multiple={isMultiSelect}
|
|
185
|
+
onBlur={onBlur}
|
|
186
|
+
onChange={onChange}
|
|
187
|
+
onFocus={onFocus}
|
|
188
|
+
ref={ref}
|
|
189
|
+
children={children}
|
|
190
|
+
renderValue={isMultiSelect ? renderValue : undefined}
|
|
191
|
+
value={selectedValue}
|
|
192
|
+
/>
|
|
193
|
+
),
|
|
194
|
+
[
|
|
195
|
+
idOverride,
|
|
196
|
+
isMultiSelect,
|
|
197
|
+
onBlur,
|
|
198
|
+
onChange,
|
|
199
|
+
onFocus,
|
|
200
|
+
ref,
|
|
201
|
+
children,
|
|
202
|
+
renderValue,
|
|
203
|
+
selectedValue,
|
|
204
|
+
]
|
|
205
|
+
);
|
|
206
|
+
|
|
207
|
+
return (
|
|
208
|
+
<Field
|
|
209
|
+
errorMessage={errorMessage}
|
|
210
|
+
fieldType="single"
|
|
211
|
+
hasVisibleLabel
|
|
212
|
+
hint={hint}
|
|
213
|
+
id={idOverride}
|
|
214
|
+
isDisabled={isDisabled}
|
|
215
|
+
isOptional={isOptional}
|
|
216
|
+
label={label}
|
|
217
|
+
renderFieldComponent={renderFieldComponent}
|
|
218
|
+
/>
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
const MemoizedSelect = memo(Select);
|
|
224
|
+
MemoizedSelect.displayName = "Select";
|
|
225
|
+
|
|
226
|
+
export { MemoizedSelect as Select };
|
package/src/Tabs.tsx
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2022-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
|
+
*/
|
|
12
|
+
|
|
13
|
+
import React, { ReactElement, ReactNode, useCallback, useState } from "react";
|
|
14
|
+
import { Tab as MuiTab } from "@mui/material";
|
|
15
|
+
import {
|
|
16
|
+
TabList as MuiTabList,
|
|
17
|
+
TabPanel as MuiTabPanel,
|
|
18
|
+
TabContext as MuiTabContext,
|
|
19
|
+
} from "@mui/lab";
|
|
20
|
+
|
|
21
|
+
export type TabItemProps = {
|
|
22
|
+
children: ReactNode;
|
|
23
|
+
startIcon?: ReactElement;
|
|
24
|
+
label: string;
|
|
25
|
+
isDisabled?: boolean;
|
|
26
|
+
value?: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type TabsProps = {
|
|
30
|
+
tabs: TabItemProps[];
|
|
31
|
+
initialValue?: string;
|
|
32
|
+
ariaLabel?: string;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const Tabs = ({ ariaLabel, tabs, initialValue = "0" }: TabsProps) => {
|
|
36
|
+
const [tabState, setTabState] = useState(initialValue);
|
|
37
|
+
|
|
38
|
+
const onChange = useCallback(
|
|
39
|
+
(_event: React.SyntheticEvent, newState: string) => {
|
|
40
|
+
setTabState(newState);
|
|
41
|
+
},
|
|
42
|
+
[]
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<MuiTabContext value={tabState}>
|
|
47
|
+
<MuiTabList onChange={onChange} aria-label={ariaLabel}>
|
|
48
|
+
{tabs.map((tab, index) => (
|
|
49
|
+
<MuiTab
|
|
50
|
+
disabled={tab.isDisabled}
|
|
51
|
+
icon={tab.startIcon}
|
|
52
|
+
label={tab.label}
|
|
53
|
+
value={tab.value ? tab.value : index.toString()}
|
|
54
|
+
key={tab.value ? tab.value : index.toString()}
|
|
55
|
+
/>
|
|
56
|
+
))}
|
|
57
|
+
</MuiTabList>
|
|
58
|
+
{tabs.map((tab, index) => (
|
|
59
|
+
<MuiTabPanel
|
|
60
|
+
value={tab.value ? tab.value : index.toString()}
|
|
61
|
+
key={tab.value ? tab.value : index.toString()}
|
|
62
|
+
>
|
|
63
|
+
{tab.children}
|
|
64
|
+
</MuiTabPanel>
|
|
65
|
+
))}
|
|
66
|
+
</MuiTabContext>
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { Tabs };
|
package/src/TextField.tsx
CHANGED
|
@@ -83,10 +83,6 @@ export type TextFieldProps = {
|
|
|
83
83
|
* Callback fired when the `input` element get focus.
|
|
84
84
|
*/
|
|
85
85
|
onFocus?: FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
|
|
86
|
-
/**
|
|
87
|
-
* The label for the `input` element if it's optional
|
|
88
|
-
*/
|
|
89
|
-
optionalLabel?: string;
|
|
90
86
|
/**
|
|
91
87
|
* The short hint displayed in the `input` before the user enters a value.
|
|
92
88
|
*/
|
|
@@ -122,7 +118,6 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
122
118
|
onBlur,
|
|
123
119
|
onChange,
|
|
124
120
|
onFocus,
|
|
125
|
-
optionalLabel = "Optional",
|
|
126
121
|
placeholder,
|
|
127
122
|
startAdornment,
|
|
128
123
|
type = "text",
|
|
@@ -187,7 +182,6 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
187
182
|
isDisabled={isDisabled}
|
|
188
183
|
isOptional={isOptional}
|
|
189
184
|
label={label}
|
|
190
|
-
optionalLabel={optionalLabel}
|
|
191
185
|
renderFieldComponent={renderFieldComponent}
|
|
192
186
|
/>
|
|
193
187
|
);
|
|
@@ -195,5 +189,6 @@ const TextField = forwardRef<HTMLInputElement, TextFieldProps>(
|
|
|
195
189
|
);
|
|
196
190
|
|
|
197
191
|
const MemoizedTextField = memo(TextField);
|
|
192
|
+
MemoizedTextField.displayName = "TextField";
|
|
198
193
|
|
|
199
194
|
export { MemoizedTextField as TextField };
|
package/src/Toast.tsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { AlertColor } from "@mui/material";
|
|
14
|
-
import { useEffect, memo,
|
|
14
|
+
import { useEffect, memo, useState, useCallback } from "react";
|
|
15
15
|
import {
|
|
16
16
|
Alert,
|
|
17
17
|
AlertTitle,
|
|
@@ -21,6 +21,7 @@ import {
|
|
|
21
21
|
visuallyHidden,
|
|
22
22
|
} from ".";
|
|
23
23
|
import { Button } from "./Button";
|
|
24
|
+
import { useTranslation } from "react-i18next";
|
|
24
25
|
|
|
25
26
|
export type ToastProps = {
|
|
26
27
|
/**
|
|
@@ -69,70 +70,71 @@ export type ToastProps = {
|
|
|
69
70
|
|
|
70
71
|
const ClickAwayListenerProps = { onClickAway: () => false };
|
|
71
72
|
|
|
72
|
-
const Toast =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
const [isVisible, setIsVisible] = useState(isVisibleProp);
|
|
73
|
+
const Toast = ({
|
|
74
|
+
autoHideDuration = 6000,
|
|
75
|
+
isDismissable,
|
|
76
|
+
linkText,
|
|
77
|
+
linkUrl,
|
|
78
|
+
isVisible: isVisibleProp,
|
|
79
|
+
onHide: onHideProp,
|
|
80
|
+
role,
|
|
81
|
+
severity,
|
|
82
|
+
text,
|
|
83
|
+
}: ToastProps) => {
|
|
84
|
+
const { t } = useTranslation();
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
setIsVisible(isVisibleProp);
|
|
88
|
-
}, [isVisibleProp]);
|
|
86
|
+
const [isVisible, setIsVisible] = useState(isVisibleProp);
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}, [onHideProp]);
|
|
88
|
+
useEffect(() => {
|
|
89
|
+
setIsVisible(isVisibleProp);
|
|
90
|
+
}, [isVisibleProp]);
|
|
94
91
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
const onHide = useCallback(() => {
|
|
93
|
+
setIsVisible(false);
|
|
94
|
+
onHideProp?.();
|
|
95
|
+
}, [onHideProp]);
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
<Snackbar
|
|
99
|
+
open={isVisible}
|
|
100
|
+
autoHideDuration={
|
|
101
|
+
isDismissable || autoHideDuration <= 0 ? undefined : autoHideDuration
|
|
102
|
+
}
|
|
103
|
+
onClose={onHide}
|
|
104
|
+
className="Toast"
|
|
105
|
+
ClickAwayListenerProps={ClickAwayListenerProps}
|
|
106
|
+
>
|
|
107
|
+
<Alert
|
|
108
|
+
action={
|
|
109
|
+
isDismissable === true && (
|
|
110
|
+
<Button
|
|
111
|
+
aria-label={t("toast.close.text")}
|
|
112
|
+
onClick={onHide}
|
|
113
|
+
size="small"
|
|
114
|
+
startIcon={<CloseIcon />}
|
|
115
|
+
variant="floating"
|
|
116
|
+
/>
|
|
117
|
+
)
|
|
100
118
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
119
|
+
role={role}
|
|
120
|
+
severity={severity}
|
|
121
|
+
variant="toast"
|
|
104
122
|
>
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
severity={severity}
|
|
119
|
-
variant="toast"
|
|
120
|
-
>
|
|
121
|
-
<AlertTitle>
|
|
122
|
-
<span style={visuallyHidden}>{severity}:</span>
|
|
123
|
-
{text}
|
|
124
|
-
</AlertTitle>
|
|
125
|
-
{linkUrl && (
|
|
126
|
-
<Link href={linkUrl} variant="monochrome">
|
|
127
|
-
{linkText}
|
|
128
|
-
</Link>
|
|
129
|
-
)}
|
|
130
|
-
</Alert>
|
|
131
|
-
</Snackbar>
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
);
|
|
123
|
+
<AlertTitle>
|
|
124
|
+
<span style={visuallyHidden}>{severity}:</span>
|
|
125
|
+
{text}
|
|
126
|
+
</AlertTitle>
|
|
127
|
+
{linkUrl && (
|
|
128
|
+
<Link href={linkUrl} variant="monochrome">
|
|
129
|
+
{linkText}
|
|
130
|
+
</Link>
|
|
131
|
+
)}
|
|
132
|
+
</Alert>
|
|
133
|
+
</Snackbar>
|
|
134
|
+
);
|
|
135
|
+
};
|
|
135
136
|
|
|
136
137
|
const MemoizedToast = memo(Toast);
|
|
138
|
+
MemoizedToast.displayName = "Toast";
|
|
137
139
|
|
|
138
140
|
export { MemoizedToast as Toast };
|
package/src/index.ts
CHANGED
|
@@ -40,11 +40,9 @@ export {
|
|
|
40
40
|
MenuList,
|
|
41
41
|
Paper,
|
|
42
42
|
ScopedCssBaseline,
|
|
43
|
-
Select,
|
|
44
43
|
Snackbar,
|
|
45
44
|
Stack,
|
|
46
45
|
SvgIcon,
|
|
47
|
-
Tab,
|
|
48
46
|
Table,
|
|
49
47
|
TableBody,
|
|
50
48
|
TableCell,
|
|
@@ -85,11 +83,9 @@ export type {
|
|
|
85
83
|
PaperProps,
|
|
86
84
|
ScopedCssBaselineProps,
|
|
87
85
|
SelectChangeEvent,
|
|
88
|
-
SelectProps,
|
|
89
86
|
SnackbarProps,
|
|
90
87
|
StackProps,
|
|
91
88
|
SvgIconProps,
|
|
92
|
-
TabProps,
|
|
93
89
|
TableBodyProps,
|
|
94
90
|
TableCellProps,
|
|
95
91
|
TableContainerProps,
|
|
@@ -101,10 +97,6 @@ export type {
|
|
|
101
97
|
TypographyProps,
|
|
102
98
|
} from "@mui/material";
|
|
103
99
|
|
|
104
|
-
export { TabContext, TabList, TabPanel } from "@mui/lab";
|
|
105
|
-
|
|
106
|
-
export type { TabContextProps, TabListProps, TabPanelProps } from "@mui/lab";
|
|
107
|
-
|
|
108
100
|
export { default as FavoriteIcon } from "@mui/icons-material/Favorite";
|
|
109
101
|
|
|
110
102
|
export { deepmerge, visuallyHidden } from "@mui/utils";
|
|
@@ -117,25 +109,31 @@ export * from "./CheckboxGroup";
|
|
|
117
109
|
export * from "./CircularProgress";
|
|
118
110
|
export * from "./createUniqueId";
|
|
119
111
|
export * from "./Dialog";
|
|
112
|
+
export * from "./Fieldset";
|
|
113
|
+
export * from "./Form";
|
|
120
114
|
export * from "./Icon";
|
|
121
115
|
export * from "./iconDictionary";
|
|
122
116
|
export * from "./Infobox";
|
|
123
117
|
export * from "./Link";
|
|
124
118
|
export * from "./MenuButton";
|
|
125
119
|
export * from "./MenuItem";
|
|
120
|
+
export * from "./NativeSelect";
|
|
126
121
|
export * from "./OdysseyCacheProvider";
|
|
122
|
+
export * from "./OdysseyProvider";
|
|
127
123
|
export * from "./OdysseyThemeProvider";
|
|
124
|
+
export * from "./OdysseyTranslationProvider";
|
|
128
125
|
export * from "./PasswordField";
|
|
129
126
|
export * from "./Radio";
|
|
130
127
|
export * from "./RadioGroup";
|
|
131
128
|
export * from "./ScreenReaderText";
|
|
132
129
|
export * from "./SearchField";
|
|
130
|
+
export * from "./Select";
|
|
133
131
|
export * from "./Status";
|
|
132
|
+
export * from "./Tabs";
|
|
134
133
|
export * from "./Tag";
|
|
135
134
|
export * from "./TagList";
|
|
136
135
|
export * from "./TextField";
|
|
137
136
|
export * from "./theme";
|
|
138
|
-
export * from "./ThemeProvider";
|
|
139
137
|
export * from "./Tooltip";
|
|
140
138
|
export * from "./Toast";
|
|
141
139
|
export * from "./ToastStack";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const translation = {"fielderror.screenreader.text":"Error","fieldlabel.optional.text":"Optional","fieldlabel.required.text":"Required","severity.success":"success","severity.warning":"warning","severity.info":"info","severity.error":"error","toast.close.text":"close"};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const translation = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const translation = {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const translation = {};
|