@okta/odyssey-react-mui 1.32.0 → 1.32.4
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/dist/cjs/theme/components.cjs +6 -0
- package/dist/cjs/theme/components.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNav.cjs +2 -1
- package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs +36 -11
- package/dist/cjs/ui-shell/SideNav/SideNavItemContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs +3 -1
- package/dist/cjs/ui-shell/SideNav/SideNavItemLinkContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs +14 -2
- package/dist/cjs/ui-shell/SideNav/SideNavLogo.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +1 -1
- package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
- package/dist/cjs/ui-shell/SideNav/types.cjs.map +1 -1
- package/dist/cjs/ui-shell/UiShellContent.cjs +48 -32
- package/dist/cjs/ui-shell/UiShellContent.cjs.map +1 -1
- package/dist/cjs/ui-shell/index.cjs +9 -1
- package/dist/cjs/ui-shell/index.cjs.map +1 -1
- package/dist/cjs/useContrastMode.cjs +1 -1
- package/dist/cjs/useContrastMode.cjs.map +1 -1
- package/dist/esm/theme/components.js +6 -0
- package/dist/esm/theme/components.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNav.js +2 -1
- package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemContent.js +37 -12
- package/dist/esm/ui-shell/SideNav/SideNavItemContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js +3 -1
- package/dist/esm/ui-shell/SideNav/SideNavItemLinkContent.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavLogo.js +14 -2
- package/dist/esm/ui-shell/SideNav/SideNavLogo.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +1 -1
- package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
- package/dist/esm/ui-shell/SideNav/types.js.map +1 -1
- package/dist/esm/ui-shell/UiShellContent.js +45 -31
- package/dist/esm/ui-shell/UiShellContent.js.map +1 -1
- package/dist/esm/ui-shell/index.js +1 -0
- package/dist/esm/ui-shell/index.js.map +1 -1
- package/dist/esm/useContrastMode.js +2 -2
- package/dist/esm/useContrastMode.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.scss +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/types/theme/components.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts +9 -7
- package/dist/types/ui-shell/SideNav/SideNavItemContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts +1 -1
- package/dist/types/ui-shell/SideNav/SideNavItemLinkContent.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/SideNavLogo.d.ts.map +1 -1
- package/dist/types/ui-shell/SideNav/types.d.ts +5 -1
- package/dist/types/ui-shell/SideNav/types.d.ts.map +1 -1
- package/dist/types/ui-shell/UiShellContent.d.ts +8 -2
- package/dist/types/ui-shell/UiShellContent.d.ts.map +1 -1
- package/dist/types/ui-shell/index.d.ts +1 -1
- package/dist/types/ui-shell/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/.browserslistrc +0 -1
- package/.svgrrc.cjs +0 -13
- package/CHANGELOG.md +0 -1490
- package/babel.config.cjs +0 -112
- package/i18n.config.json +0 -10
- package/scripts/generateIconsIndex.ts +0 -49
- package/scripts/generateTestSelectorsJson.ts +0 -33
- package/scripts/properties-to-ts.ts +0 -111
- package/src/@types/i18next.d.ts +0 -24
- package/src/@types/properties.d.ts +0 -292
- package/src/@types/react-augment.d.ts +0 -22
- package/src/Accordion.tsx +0 -117
- package/src/Autocomplete.tsx +0 -321
- package/src/Badge.tsx +0 -112
- package/src/Banner.tsx +0 -112
- package/src/Box.tsx +0 -44
- package/src/Breadcrumbs.tsx +0 -221
- package/src/Buttons/BaseButton.tsx +0 -250
- package/src/Buttons/BaseMenuButton.tsx +0 -342
- package/src/Buttons/Button.tsx +0 -30
- package/src/Buttons/ButtonContext.tsx +0 -23
- package/src/Buttons/MenuButton.tsx +0 -33
- package/src/Buttons/MenuContext.ts +0 -25
- package/src/Buttons/MenuItem.tsx +0 -103
- package/src/Buttons/index.ts +0 -25
- package/src/Callout.tsx +0 -176
- package/src/Card.tsx +0 -186
- package/src/Checkbox.tsx +0 -261
- package/src/CheckboxGroup.tsx +0 -127
- package/src/CircularProgress.tsx +0 -42
- package/src/CssBaseline.tsx +0 -20
- package/src/DataTable/DataTable.tsx +0 -968
- package/src/DataTable/DataTableRowActions.tsx +0 -132
- package/src/DataTable/DataTableSettings.tsx +0 -136
- package/src/DataTable/constants.ts +0 -13
- package/src/DataTable/index.tsx +0 -28
- package/src/DataTable/reorderDataRowsLocally.tsx +0 -48
- package/src/DataTable/useRowReordering.tsx +0 -232
- package/src/DataTable/useScrollIndication.tsx +0 -125
- package/src/DatePickers/DateField.tsx +0 -267
- package/src/DatePickers/DateFieldActionBar.tsx +0 -65
- package/src/DatePickers/DateFieldLocalizationProvider.tsx +0 -46
- package/src/DatePickers/DatePicker.test.tsx +0 -66
- package/src/DatePickers/DatePicker.tsx +0 -299
- package/src/DatePickers/DatePicker.types.d.ts +0 -14
- package/src/DatePickers/TimeZonePicker.tsx +0 -59
- package/src/DatePickers/datePickerTheme.tsx +0 -377
- package/src/DatePickers/index.ts +0 -15
- package/src/DatePickers/useDateFieldsTranslations.ts +0 -94
- package/src/DatePickers/useOdysseyDateFields.ts +0 -303
- package/src/Dialog.tsx +0 -178
- package/src/Drawer.tsx +0 -255
- package/src/EmptyState.tsx +0 -79
- package/src/ErrorMessageList.tsx +0 -56
- package/src/Field.tsx +0 -189
- package/src/FieldComponentProps.ts +0 -66
- package/src/FieldError.tsx +0 -59
- package/src/FieldHint.tsx +0 -72
- package/src/FieldLabel.tsx +0 -67
- package/src/Fieldset.tsx +0 -116
- package/src/FieldsetContext.tsx +0 -23
- package/src/FileUploader/FileUploadIllustration.tsx +0 -66
- package/src/FileUploader/FileUploadPreview.tsx +0 -151
- package/src/FileUploader/FileUploader.tsx +0 -311
- package/src/FileUploader/index.ts +0 -13
- package/src/Form.tsx +0 -185
- package/src/FormCheckedProps.ts +0 -59
- package/src/HintLink.tsx +0 -28
- package/src/HtmlProps.ts +0 -112
- package/src/IconWithTooltip.tsx +0 -90
- package/src/Link.tsx +0 -115
- package/src/MuiPropsChild.tsx +0 -42
- package/src/MuiPropsContext.ts +0 -18
- package/src/NativeSelect.tsx +0 -249
- package/src/NullElement.tsx +0 -13
- package/src/OdysseyCacheProvider.test.tsx +0 -39
- package/src/OdysseyCacheProvider.tsx +0 -86
- package/src/OdysseyDesignTokensContext.tsx +0 -23
- package/src/OdysseyProvider.tsx +0 -92
- package/src/OdysseyThemeProvider.test.tsx +0 -211
- package/src/OdysseyThemeProvider.tsx +0 -109
- package/src/OdysseyTranslationProvider.test.tsx +0 -95
- package/src/OdysseyTranslationProvider.tsx +0 -77
- package/src/OdysseyTranslationProvider.types.ts +0 -47
- package/src/Pagination/Pagination.test.tsx +0 -327
- package/src/Pagination/Pagination.tsx +0 -417
- package/src/Pagination/constants.ts +0 -13
- package/src/Pagination/index.ts +0 -15
- package/src/Pagination/usePagination.ts +0 -45
- package/src/PasswordField.tsx +0 -253
- package/src/Radio.tsx +0 -199
- package/src/RadioGroup.tsx +0 -164
- package/src/ScreenReaderText.tsx +0 -53
- package/src/SearchField.tsx +0 -240
- package/src/Select.tsx +0 -576
- package/src/Stack.tsx +0 -56
- package/src/Status.tsx +0 -67
- package/src/Surface.tsx +0 -61
- package/src/SvgIcon.ts +0 -22
- package/src/Switch.tsx +0 -425
- package/src/Tabs.tsx +0 -259
- package/src/Tag.tsx +0 -317
- package/src/TagList.tsx +0 -55
- package/src/TagListContext.tsx +0 -23
- package/src/TextField.tsx +0 -298
- package/src/Toast.tsx +0 -151
- package/src/ToastStack.tsx +0 -43
- package/src/Tooltip.tsx +0 -61
- package/src/Typography.test.tsx +0 -26
- package/src/Typography.tsx +0 -474
- package/src/createContrastColors.ts +0 -112
- package/src/createUniqueAlphabeticalId.test.ts +0 -22
- package/src/createUniqueAlphabeticalId.ts +0 -17
- package/src/createUniqueId.test.ts +0 -22
- package/src/createUniqueId.ts +0 -17
- package/src/getTypedObjectKeys.ts +0 -15
- package/src/hexToRgb.ts +0 -40
- package/src/i18n.ts +0 -110
- package/src/icons.generated/Add.tsx +0 -44
- package/src/icons.generated/AddCircle.tsx +0 -46
- package/src/icons.generated/Apps.tsx +0 -44
- package/src/icons.generated/ArrowBottom.tsx +0 -46
- package/src/icons.generated/ArrowDown.tsx +0 -46
- package/src/icons.generated/ArrowLeft.tsx +0 -46
- package/src/icons.generated/ArrowLowerLeft.tsx +0 -46
- package/src/icons.generated/ArrowLowerRight.tsx +0 -46
- package/src/icons.generated/ArrowRight.tsx +0 -46
- package/src/icons.generated/ArrowTop.tsx +0 -46
- package/src/icons.generated/ArrowUnsorted.tsx +0 -46
- package/src/icons.generated/ArrowUp.tsx +0 -46
- package/src/icons.generated/ArrowUpperLeft.tsx +0 -46
- package/src/icons.generated/ArrowUpperRight.tsx +0 -46
- package/src/icons.generated/Bug.tsx +0 -44
- package/src/icons.generated/Calendar.tsx +0 -46
- package/src/icons.generated/Call.tsx +0 -44
- package/src/icons.generated/Chat.tsx +0 -44
- package/src/icons.generated/Check.tsx +0 -44
- package/src/icons.generated/CheckCircleFilled.tsx +0 -47
- package/src/icons.generated/ChevronDown.tsx +0 -46
- package/src/icons.generated/ChevronLeft.tsx +0 -46
- package/src/icons.generated/ChevronRight.tsx +0 -46
- package/src/icons.generated/ChevronUp.tsx +0 -46
- package/src/icons.generated/Clock.tsx +0 -44
- package/src/icons.generated/Close.tsx +0 -44
- package/src/icons.generated/CloseCircleFilled.tsx +0 -47
- package/src/icons.generated/CollapseLeft.tsx +0 -46
- package/src/icons.generated/CollapseRight.tsx +0 -46
- package/src/icons.generated/Copy.tsx +0 -44
- package/src/icons.generated/Custom.tsx +0 -50
- package/src/icons.generated/DangerDiamond.tsx +0 -46
- package/src/icons.generated/DangerDiamondFilled.tsx +0 -47
- package/src/icons.generated/Delete.tsx +0 -44
- package/src/icons.generated/Deny.tsx +0 -44
- package/src/icons.generated/Devices.tsx +0 -46
- package/src/icons.generated/Directory.tsx +0 -46
- package/src/icons.generated/Documentation.tsx +0 -46
- package/src/icons.generated/Download.tsx +0 -46
- package/src/icons.generated/DragIndicator.tsx +0 -46
- package/src/icons.generated/Duo.tsx +0 -62
- package/src/icons.generated/Edit.tsx +0 -44
- package/src/icons.generated/Email.tsx +0 -49
- package/src/icons.generated/ExpandLeft.tsx +0 -46
- package/src/icons.generated/ExpandRight.tsx +0 -46
- package/src/icons.generated/ExternalLink.tsx +0 -44
- package/src/icons.generated/Fido2.tsx +0 -72
- package/src/icons.generated/Filter.tsx +0 -44
- package/src/icons.generated/Folder.tsx +0 -44
- package/src/icons.generated/Globe.tsx +0 -44
- package/src/icons.generated/GoogleAuth.tsx +0 -70
- package/src/icons.generated/Grid.tsx +0 -47
- package/src/icons.generated/Group.tsx +0 -44
- package/src/icons.generated/Hide.tsx +0 -44
- package/src/icons.generated/Home.tsx +0 -44
- package/src/icons.generated/Idp.tsx +0 -54
- package/src/icons.generated/InformationCircle.tsx +0 -47
- package/src/icons.generated/InformationCircleFilled.tsx +0 -47
- package/src/icons.generated/Link.tsx +0 -44
- package/src/icons.generated/List.tsx +0 -44
- package/src/icons.generated/Lock.tsx +0 -44
- package/src/icons.generated/More.tsx +0 -44
- package/src/icons.generated/Notification.tsx +0 -46
- package/src/icons.generated/OktaVerify.tsx +0 -46
- package/src/icons.generated/OnPremMfa.tsx +0 -52
- package/src/icons.generated/OneTimePassword.tsx +0 -65
- package/src/icons.generated/Password.tsx +0 -80
- package/src/icons.generated/Pause.tsx +0 -44
- package/src/icons.generated/QuestionCircle.tsx +0 -46
- package/src/icons.generated/QuestionCircleFilled.tsx +0 -47
- package/src/icons.generated/Refresh.tsx +0 -46
- package/src/icons.generated/Reset.tsx +0 -44
- package/src/icons.generated/Resume.tsx +0 -44
- package/src/icons.generated/Search.tsx +0 -44
- package/src/icons.generated/SecurityQuestion.tsx +0 -51
- package/src/icons.generated/Server.tsx +0 -44
- package/src/icons.generated/Settings.tsx +0 -46
- package/src/icons.generated/Show.tsx +0 -44
- package/src/icons.generated/SmartCard.tsx +0 -65
- package/src/icons.generated/Sms.tsx +0 -55
- package/src/icons.generated/Subtract.tsx +0 -46
- package/src/icons.generated/SymantecVip.tsx +0 -52
- package/src/icons.generated/Sync.tsx +0 -44
- package/src/icons.generated/ThumbsDown.tsx +0 -46
- package/src/icons.generated/ThumbsUp.tsx +0 -46
- package/src/icons.generated/Unlock.tsx +0 -44
- package/src/icons.generated/Upload.tsx +0 -44
- package/src/icons.generated/User.tsx +0 -44
- package/src/icons.generated/Video.tsx +0 -44
- package/src/icons.generated/VoiceCall.tsx +0 -62
- package/src/icons.generated/Warning.tsx +0 -46
- package/src/icons.generated/WarningFilled.tsx +0 -46
- package/src/icons.generated/Yubikey.tsx +0 -44
- package/src/icons.generated/index.ts +0 -107
- package/src/index.ts +0 -118
- package/src/inputUtils.ts +0 -80
- package/src/labs/AppTile.tsx +0 -421
- package/src/labs/DataFilters.tsx +0 -871
- package/src/labs/DataTable.tsx +0 -877
- package/src/labs/DataTablePagination.tsx +0 -88
- package/src/labs/DataView/BulkActionsMenu.tsx +0 -98
- package/src/labs/DataView/CardLayoutContent.tsx +0 -272
- package/src/labs/DataView/DataCard.tsx +0 -357
- package/src/labs/DataView/DataTable.tsx +0 -128
- package/src/labs/DataView/DataView.test.tsx +0 -1168
- package/src/labs/DataView/DataView.tsx +0 -504
- package/src/labs/DataView/DetailPanel.tsx +0 -31
- package/src/labs/DataView/LayoutSwitcher.tsx +0 -72
- package/src/labs/DataView/RowActions.tsx +0 -125
- package/src/labs/DataView/TableLayoutContent.tsx +0 -500
- package/src/labs/DataView/TableSettings.tsx +0 -144
- package/src/labs/DataView/componentTypes.ts +0 -129
- package/src/labs/DataView/constants.tsx +0 -28
- package/src/labs/DataView/dataTypes.ts +0 -83
- package/src/labs/DataView/fetchData.ts +0 -49
- package/src/labs/DataView/index.ts +0 -19
- package/src/labs/DataView/tableConstants.tsx +0 -137
- package/src/labs/DataView/testSupportData.tsx +0 -301
- package/src/labs/DataView/useFilterConversion.ts +0 -88
- package/src/labs/DatePickers/DateTimeField.tsx +0 -267
- package/src/labs/DatePickers/DateTimePicker.test.tsx +0 -70
- package/src/labs/DatePickers/DateTimePicker.tsx +0 -303
- package/src/labs/DatePickers/dateTimePickerTheme.ts +0 -216
- package/src/labs/DatePickers/index.ts +0 -13
- package/src/labs/GroupPicker.tsx +0 -261
- package/src/labs/OdysseyPickers/ComposablePicker.test.tsx +0 -32
- package/src/labs/OdysseyPickers/ComposablePicker.tsx +0 -188
- package/src/labs/OdysseyPickers/Picker.tsx +0 -381
- package/src/labs/OdysseyPickers/PickerVirtualizationListBox.tsx +0 -192
- package/src/labs/OdysseyPickers/PickerWithOptionAdornment.tsx +0 -429
- package/src/labs/OdysseyPickers/index.ts +0 -15
- package/src/labs/PageTemplate/Layout.tsx +0 -85
- package/src/labs/PageTemplate/PageTemplate.tsx +0 -234
- package/src/labs/PageTemplate/index.ts +0 -14
- package/src/labs/PaginatedTable.tsx +0 -290
- package/src/labs/README.md +0 -46
- package/src/labs/StaticTable.tsx +0 -131
- package/src/labs/UserProfile.tsx +0 -104
- package/src/labs/UserProfileMenuButton.tsx +0 -86
- package/src/labs/index.ts +0 -47
- package/src/labs/materialReactTableTypes.tsx +0 -19
- package/src/properties/odyssey-react-mui.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_cs.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_da.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_de.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_el.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_es.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_fi.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_fr.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ht.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_hu.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_id.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_it.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ja.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ko.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ms.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_nb.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_nl_NL.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ok_PL.properties +0 -126
- package/src/properties/translations/odyssey-react-mui_ok_SK.properties +0 -126
- package/src/properties/translations/odyssey-react-mui_pl.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_pt_BR.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ro.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_ru.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_sv.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_th.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_tr.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_uk.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_vi.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_zh_CN.properties +0 -140
- package/src/properties/translations/odyssey-react-mui_zh_TW.properties +0 -140
- package/src/properties/ts/odyssey-react-mui.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_cs.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_da.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_de.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_el.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_es.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_fi.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_fr.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ht.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_hu.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_id.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_it.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ja.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ko.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ms.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_nb.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_nl_NL.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ok_PL.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ok_SK.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_pl.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_pt_BR.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ro.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_ru.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_sv.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_th.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_tr.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_uk.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_vi.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_zh_CN.ts +0 -1
- package/src/properties/ts/odyssey-react-mui_zh_TW.ts +0 -1
- package/src/remUtils.ts +0 -27
- package/src/shadow-dom/index.ts +0 -13
- package/src/shadow-dom/shadow-dom.test.ts +0 -24
- package/src/shadow-dom/shadow-dom.ts +0 -54
- package/src/test-selectors/getByQuerySelector.ts +0 -176
- package/src/test-selectors/getComputedAccessibleErrorMessageText.ts +0 -52
- package/src/test-selectors/getComputedAccessibleText.ts +0 -36
- package/src/test-selectors/index.ts +0 -15
- package/src/test-selectors/interpolateString.ts +0 -41
- package/src/test-selectors/linkedHtmlSelectors.ts +0 -73
- package/src/test-selectors/queryOdysseySelector.ts +0 -36
- package/src/test-selectors/querySelector.ts +0 -249
- package/src/test-selectors/sanityChecks.ts +0 -53
- package/src/test-selectors/testSelector.ts +0 -143
- package/src/theme/components.tsx +0 -3275
- package/src/theme/components.types.ts +0 -111
- package/src/theme/createOdysseyMuiTheme.ts +0 -54
- package/src/theme/index.ts +0 -13
- package/src/theme/mixins.ts +0 -29
- package/src/theme/mixins.types.ts +0 -31
- package/src/theme/palette.ts +0 -112
- package/src/theme/palette.types.ts +0 -24
- package/src/theme/shape.ts +0 -31
- package/src/theme/spacing.ts +0 -34
- package/src/theme/theme.ts +0 -13
- package/src/theme/typography.ts +0 -137
- package/src/theme/typography.types.ts +0 -41
- package/src/theme/useContrastMode.test.tsx +0 -504
- package/src/ui-shell/AppSwitcher/AppSwitcher.tsx +0 -94
- package/src/ui-shell/AppSwitcher/AppSwitcherApp.tsx +0 -146
- package/src/ui-shell/AppSwitcher/OktaAura.tsx +0 -50
- package/src/ui-shell/AppSwitcher/index.ts +0 -13
- package/src/ui-shell/SideNav/CollapseIcon.tsx +0 -34
- package/src/ui-shell/SideNav/HandleIcon.tsx +0 -35
- package/src/ui-shell/SideNav/NavAccordion.tsx +0 -243
- package/src/ui-shell/SideNav/OktaLogo.tsx +0 -34
- package/src/ui-shell/SideNav/SideNav.test.tsx +0 -326
- package/src/ui-shell/SideNav/SideNav.tsx +0 -810
- package/src/ui-shell/SideNav/SideNavFooterContent.tsx +0 -85
- package/src/ui-shell/SideNav/SideNavHeader.tsx +0 -134
- package/src/ui-shell/SideNav/SideNavItemContent.tsx +0 -402
- package/src/ui-shell/SideNav/SideNavItemContentContext.tsx +0 -29
- package/src/ui-shell/SideNav/SideNavItemLinkContent.tsx +0 -90
- package/src/ui-shell/SideNav/SideNavLogo.tsx +0 -65
- package/src/ui-shell/SideNav/SideNavToggleButton.tsx +0 -272
- package/src/ui-shell/SideNav/SortableList/SortableItem.tsx +0 -237
- package/src/ui-shell/SideNav/SortableList/SortableList.tsx +0 -132
- package/src/ui-shell/SideNav/SortableList/SortableOverlay.tsx +0 -34
- package/src/ui-shell/SideNav/index.ts +0 -16
- package/src/ui-shell/SideNav/types.ts +0 -224
- package/src/ui-shell/TopNav/TopNav.tsx +0 -109
- package/src/ui-shell/TopNav/TopNavLinksList.tsx +0 -68
- package/src/ui-shell/TopNav/TopNavListItem.tsx +0 -209
- package/src/ui-shell/TopNav/index.ts +0 -13
- package/src/ui-shell/UiShell.test.tsx +0 -366
- package/src/ui-shell/UiShell.tsx +0 -153
- package/src/ui-shell/UiShellContent.tsx +0 -350
- package/src/ui-shell/UiShellProvider.tsx +0 -103
- package/src/ui-shell/bufferLatest.test.ts +0 -79
- package/src/ui-shell/bufferLatest.ts +0 -64
- package/src/ui-shell/createMessageBus.test.ts +0 -115
- package/src/ui-shell/createMessageBus.ts +0 -53
- package/src/ui-shell/createStore.test.ts +0 -103
- package/src/ui-shell/createStore.ts +0 -37
- package/src/ui-shell/index.ts +0 -21
- package/src/ui-shell/renderUiShell.test.tsx +0 -203
- package/src/ui-shell/renderUiShell.tsx +0 -158
- package/src/ui-shell/useHasUiShell.ts +0 -25
- package/src/ui-shell/useScrollState.ts +0 -59
- package/src/useAutocomplete.tsx +0 -184
- package/src/useContrastMode.tsx +0 -143
- package/src/useNormalizedKey.ts +0 -17
- package/src/useUniqueAlphabeticalId.ts +0 -21
- package/src/useUniqueId.ts +0 -21
- package/src/web-component/createReactRootElements.test.ts +0 -40
- package/src/web-component/createReactRootElements.ts +0 -39
- package/src/web-component/index.ts +0 -13
- package/src/web-component/renderReactInWebComponent.test.tsx +0 -128
- package/src/web-component/renderReactInWebComponent.ts +0 -135
- package/tsconfig.json +0 -16
- package/tsconfig.production.json +0 -13
- package/vitest.config.ts +0 -36
- package/vitest.setup.ts +0 -32
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const translation = {"navigation.label":"Основна навігація","navigation.footer":"Додаткові навігаційні посилання","navigation.drag.handle":"Маркер перетягування","sortable.list.drag.start":"Вибрано перетягуваний елемент {{activeId}}","sortable.list.drag.moved.over":"Перетягуваний елемент {{activeId}} переміщено до області відпускання {{overId}}","sortable.list.drag.nolonger.over":"Перетягуваний елемент {{activeId}} більше не перебуває в області відпускання","sortable.list.drag.end.dropped.over":"Перетягуваний елемент {{activeId}} відпущено в області відпускання {{overId}}","sortable.list.drag.end.dropped":"Перетягуваний елемент {{activeId}} відпущено","sortable.list.drag.cancel":"Перетягування скасовано Перетягуваний елемент {{activeId}} відпущено","breadcrumbs.home.text":"Головна сторінка","breadcrumbs.label.text":"Навігаційні ланцюги","close.text":"Закрити","clear.text":"Очистити","open.text":"Відкрити","picker.calendar.navigation.nextmonth":"Наступний місяць","picker.calendar.navigation.previousmonth":"Попередній місяць","picker.date.toolbar.title":"Вибрана дата","picker.daterange.toolbar.title":"Виберіть діапазон дат","picker.datetime.toolbar.title":"Виберіть дату та час","picker.error.invalid":"Виправте формат дати або виберіть дату з календаря.","picker.error.mindate":"Введена дата раніше, ніж дозволені. Виберіть дату з діапазону, доступного в календарі.","picker.error.maxdate":"Введена дата пізніше, ніж дозволені. Виберіть дату з діапазону, доступного в календарі.","picker.field.placeholder.day":"ДД","picker.field.placeholder.hours":"гг","picker.field.placeholder.meridiem":"пп","picker.field.placeholder.minutes":"хх","picker.field.placeholder.month":"ММ","picker.field.placeholder.seconds":"сс","picker.field.placeholder.year":"РРРР","picker.labels.action.apply":"Застосувати","picker.labels.action.cancel":"Скасувати","picker.labels.action.today":"Сьогодні","picker.labels.clock.empty":"Час не вибрано","picker.labels.clock.hours":"год","picker.labels.clock.minutes":"хв","picker.labels.clock.seconds":"с","picker.labels.clock.selected":"Вибраний час –","picker.labels.date.choose":"Виберіть дату","picker.labels.date.selected":"Вибрана дата –","picker.labels.empty":"Пусто","picker.labels.field.clear":"Очистити значення","picker.labels.range.end":"Завершення","picker.labels.range.enddate":"Дата завершення","picker.labels.range.endtime":"Час завершення","picker.labels.range.start":"Початок","picker.labels.range.startdate":"Дата початку","picker.labels.range.starttime":"Час початку","picker.labels.select":"Вибрати","picker.labels.table.date":"вибрати дату","picker.labels.table.time":"вибрати час","picker.labels.time.choose":"Виберіть час","picker.labels.time.selected":"вибраний час:","picker.time.toolbar.title":"Виберіть час","picker.view.name.day":"День","picker.view.name.hours":"Години","picker.view.name.meridiem":"Полудень","picker.view.name.minutes":"Хвилини","picker.view.name.month":"Місяць","picker.view.name.seconds":"Секунди","picker.view.name.weekday":"День тижня","picker.view.name.year":"Рік","picker.view.navigation.open.nextview":"Відкрити наступний перегляд","picker.view.navigation.open.previousview":"Відкрити попередній перегляд","picker.view.navigation.switch.calendarview":"відкрито перегляд року, перейдіть до перегляду календаря","picker.view.navigation.switch.yearview":"відкрито перегляд календаря, перейдіть до перегляду року","fielderror.screenreader.text":"Помилка","fieldlabel.optional.text":"Необов’язково","fieldlabel.required.text":"Обов’язково","filters.clear.label":"Очистити фільтри","filters.submit.label":"Подати","filters.filter.any":"Будь-які","filters.filter.clear":"Очистити фільтр","filters.filters.arialabel":"Фільтри","filters.menuitem.any":"Будь-які {{label}}","filters.menuitem.selected":"{{selected}} вибрано","filters.search.label":"Пошук","fileupload.button.text":"Додати файли","fileupload.prompt.text":"Перетягніть файли сюди або натисніть \"Додати файли\"","fileupload.removefile.text":"Вилучити файл","passwordfield.icon.label.hide":"Приховати пароль","passwordfield.icon.label.show":"Показати пароль","severity.error":"помилка","severity.info":"дані","severity.success":"готово","severity.warning":"попередження","sidenav.toggle.expand":"Відкрити навігацію","sidenav.toggle.collapse":"Закрити навігацію","switch.active":"Активовано","switch.inactive":"Не активовано","table.columnvisibility.arialabel":"Показати/сховати стовпці","table.density.arialabel":"Щільність таблиці","table.draghandle.arialabel":"Перетягніть рядок, щоб змінити порядок. Або натисніть клавішу пробілу чи Enter, щоб почати змінення порядку. Щоб скасувати, натисніть Esc.","table.draghandle.tooltip":"Щоб почати й зупинити змінення порядку, перетягніть рядок або натисніть клавішу пробілу чи Enter","table.actions":"Дії","table.error":"Помилка завантаження даних.","table.fetchedrows.text":"Отримано рядків {{totalRows}}","table.fetchedrows.text_plural":"Усього отримано рядків: {{totalRows}}","table.moreactions.arialabel":"Інші дії","table.noresults.heading":"Немає результатів.","table.noresults.text":"Спробуйте інший запит.","table.reorder.backward":"Перемістити назад","table.reorder.forward":"Перемістити вперед","table.reorder.toback":"Перемістити в кінець","table.reorder.tofront":"Перемістити на початок","table.rows.text":"Рядків: {{totalRows}}","table.rows.text_plural":"Рядків: {{totalRows}}","pagination.label":"Розбивка на сторінки","pagination.loadmore":"Показати більше","pagination.next":"Наступна сторінка","pagination.previous":"Попередня сторінка","pagination.page":"Сторінка","pagination.rowsperpage":"Рядків на сторінці","pagination.rowswithtotal":"Рядків: {{firstRow}}–{{lastRow}} з {{totalRows}}","pagination.rowswithouttotal":"Рядків: {{firstRow}}–{{lastRow}}","table.actions.selectall":"Вибрати все","table.actions.selectnone":"Нічого не вибирати","table.actions.selectsome":"{{selectedRowCount}} вибрано","table.rowexpansion.expand":"Розгорнути","table.rowexpansion.expandall":"Розгорнути все","table.rowexpansion.collapse":"Згорнути","table.rowexpansion.collapseall":"Згорнути все","dataview.layout.table":"Таблиця","dataview.layout.grid":"Сітка","dataview.layout.list":"Список","topnav.helpicon":"сторінка довідки","topnav.settingsicon":"сторінка налаштувань"};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const translation = {"navigation.label":"Điều hướng chính","navigation.footer":"Liên kết điều hướng phụ","navigation.drag.handle":"Tay cầm kéo thả","sortable.list.drag.start":"Đã nhấc mục kéo thả {{activeId}}","sortable.list.drag.moved.over":"Mục kéo thả {{activeId}} đã được di chuyển đến vùng thả {{overId}}","sortable.list.drag.nolonger.over":"Mục kéo thả {{activeId}} không còn nằm trong vùng thả","sortable.list.drag.end.dropped.over":"Mục kéo thả {{activeId}} đã được thả ở vùng thả {{overId}}","sortable.list.drag.end.dropped":"Mục kéo thả {{activeId}} đã được thả","sortable.list.drag.cancel":"Thao tác kéo thả đã bị huỷ. Mục kéo thả {{activeId}} đã được thả","breadcrumbs.home.text":"Trang chủ","breadcrumbs.label.text":"Liên kết phân cấp","close.text":"Đóng","clear.text":"Xóa","open.text":"Mở","picker.calendar.navigation.nextmonth":"Tháng sau","picker.calendar.navigation.previousmonth":"Tháng trước","picker.date.toolbar.title":"Ngày đã chọn","picker.daterange.toolbar.title":"Chọn khoảng ngày","picker.datetime.toolbar.title":"Chọn ngày và giờ","picker.error.invalid":"Chỉnh sửa định dạng ngày hoặc chọn ngày từ lịch.","picker.error.mindate":"Ngày đã nhập sớm hơn ngày cho phép. Chọn ngày trong phạm vi có sẵn trong lịch.","picker.error.maxdate":"Ngày đã nhập muộn hơn ngày cho phép. Chọn ngày trong phạm vi có sẵn trong lịch.","picker.field.placeholder.day":"DD","picker.field.placeholder.hours":"hh","picker.field.placeholder.meridiem":"aa","picker.field.placeholder.minutes":"mm","picker.field.placeholder.month":"MM","picker.field.placeholder.seconds":"ss","picker.field.placeholder.year":"YYYY","picker.labels.action.apply":"Áp dụng","picker.labels.action.cancel":"Hủy","picker.labels.action.today":"Hôm nay","picker.labels.clock.empty":"Chưa chọn giờ","picker.labels.clock.hours":"giờ","picker.labels.clock.minutes":"phút","picker.labels.clock.seconds":"giây","picker.labels.clock.selected":"Giờ đã chọn là","picker.labels.date.choose":"Chọn ngày","picker.labels.date.selected":"Ngày đã chọn là","picker.labels.empty":"Trống","picker.labels.field.clear":"Xóa giá trị","picker.labels.range.end":"Kết thúc","picker.labels.range.enddate":"Ngày kết thúc","picker.labels.range.endtime":"Giờ kết thúc","picker.labels.range.start":"Bắt đầu","picker.labels.range.startdate":"Ngày bắt đầu","picker.labels.range.starttime":"Giờ bắt đầu","picker.labels.select":"Chọn","picker.labels.table.date":"chọn ngày","picker.labels.table.time":"chọn giờ","picker.labels.time.choose":"Chọn giờ","picker.labels.time.selected":"thời gian đã chọn là","picker.time.toolbar.title":"Chọn giờ","picker.view.name.day":"Ngày","picker.view.name.hours":"Giờ","picker.view.name.meridiem":"Kinh tuyến","picker.view.name.minutes":"Phút","picker.view.name.month":"Tháng","picker.view.name.seconds":"Giây","picker.view.name.weekday":"Ngày trong tuần","picker.view.name.year":"Năm","picker.view.navigation.open.nextview":"Mở chế độ xem tiếp theo","picker.view.navigation.open.previousview":"Mở chế độ xem trước đó","picker.view.navigation.switch.calendarview":"chế độ xem năm đang mở, chuyển sang chế độ xem lịch","picker.view.navigation.switch.yearview":"chế độ xem lịch đang mở, chuyển sang chế độ xem năm","fielderror.screenreader.text":"Lỗi","fieldlabel.optional.text":"Không bắt buộc","fieldlabel.required.text":"Bắt buộc","filters.clear.label":"Xóa bộ lọc","filters.submit.label":"Gửi","filters.filter.any":"Bất kỳ","filters.filter.clear":"Xóa bộ lọc","filters.filters.arialabel":"Bộ lọc","filters.menuitem.any":"{{label}} bất kỳ","filters.menuitem.selected":"Đã chọn {{selected}}","filters.search.label":"Tìm kiếm","fileupload.button.text":"Thêm tệp","fileupload.prompt.text":"Kéo và thả tệp tại đây hoặc nhấp để thêm tệp","fileupload.removefile.text":"Xóa tệp","passwordfield.icon.label.hide":"Ẩn mật khẩu","passwordfield.icon.label.show":"Hiển thị mật khẩu","severity.error":"lỗi","severity.info":"thông tin","severity.success":"thành công","severity.warning":"cảnh báo","sidenav.toggle.expand":"Mở điều hướng","sidenav.toggle.collapse":"Đóng điều hướng","switch.active":"Đang hoạt động","switch.inactive":"Không hoạt động","table.columnvisibility.arialabel":"Hiển thị/ẩn cột","table.density.arialabel":"Mật độ của bảng","table.draghandle.arialabel":"Kéo hàng để sắp xếp lại. Hoặc nhấn phím cách hoặc Enter để bắt đầu và dừng sắp xếp lại, nhấn Esc để hủy.","table.draghandle.tooltip":"Kéo hàng hoặc nhấn phím cách/Enter để bắt đầu và dừng sắp xếp lại","table.actions":"Thao tác","table.error":"Lỗi khi tải dữ liệu.","table.fetchedrows.text":"Đã tìm nạp {{totalRows}} hàng","table.fetchedrows.text_plural":"Đã tìm nạp tổng {{totalRows}} hàng","table.moreactions.arialabel":"Thao tác khác","table.noresults.heading":"Không có kết quả.","table.noresults.text":"Thử truy vấn khác.","table.reorder.backward":"Di chuyển xuống dưới","table.reorder.forward":"Di chuyển lên trên","table.reorder.toback":"Di chuyển xuống dưới cùng","table.reorder.tofront":"Di chuyển lên trên cùng","table.rows.text":"{{totalRows}} hàng","table.rows.text_plural":"{{totalRows}} hàng","pagination.label":"Phân trang","pagination.loadmore":"Hiển thị thêm","pagination.next":"Trang sau","pagination.previous":"Trang trước","pagination.page":"Trang","pagination.rowsperpage":"Số hàng mỗi trang","pagination.rowswithtotal":"{{firstRow}}-{{lastRow}}/{{totalRows}} hàng","pagination.rowswithouttotal":"{{firstRow}}-{{lastRow}} hàng","table.actions.selectall":"Chọn tất cả","table.actions.selectnone":"Chọn không","table.actions.selectsome":"Đã chọn {{selectedRowCount}}","table.rowexpansion.expand":"Mở rộng","table.rowexpansion.expandall":"Mở rộng tất cả","table.rowexpansion.collapse":"Thu gọn","table.rowexpansion.collapseall":"Thu gọn tất cả","dataview.layout.table":"Bảng","dataview.layout.grid":"Lưới","dataview.layout.list":"Danh sách","topnav.helpicon":"trang trợ giúp","topnav.settingsicon":"trang cài đặt"};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const translation = {"navigation.label":"主导航","navigation.footer":"导航备用链接","navigation.drag.handle":"拖动手柄","sortable.list.drag.start":"拾取可拖动项 {{activeId}}","sortable.list.drag.moved.over":"可拖动项 {{activeId}} 已移动至可放置区域 {{overId}}","sortable.list.drag.nolonger.over":"可拖动项 {{activeId}} 不再位于可放置区域","sortable.list.drag.end.dropped.over":"可拖动项 {{activeId}} 已放置在可放置区域 {{overId}}","sortable.list.drag.end.dropped":"可拖动项 {{activeId}} 已放置","sortable.list.drag.cancel":"拖动已取消。可拖动项 {{activeId}} 已放置","breadcrumbs.home.text":"主页","breadcrumbs.label.text":"面包屑","close.text":"关闭","clear.text":"清除","open.text":"打开","picker.calendar.navigation.nextmonth":"下个月","picker.calendar.navigation.previousmonth":"上个月","picker.date.toolbar.title":"选定日期","picker.daterange.toolbar.title":"选择日期范围","picker.datetime.toolbar.title":"选择日期和时间","picker.error.invalid":"更正日期格式或从日历中选择日期。","picker.error.mindate":"输入的日期早于允许的日期。从日历中选择一个可用日期。","picker.error.maxdate":"输入的日期晚于允许的日期。从日历中选择一个可用日期。","picker.field.placeholder.day":"DD","picker.field.placeholder.hours":"hh","picker.field.placeholder.meridiem":"aa","picker.field.placeholder.minutes":"mm","picker.field.placeholder.month":"MM","picker.field.placeholder.seconds":"ss","picker.field.placeholder.year":"YYYY","picker.labels.action.apply":"应用","picker.labels.action.cancel":"取消","picker.labels.action.today":"今天","picker.labels.clock.empty":"未选择时间","picker.labels.clock.hours":"小时","picker.labels.clock.minutes":"分钟","picker.labels.clock.seconds":"秒","picker.labels.clock.selected":"选定时间为","picker.labels.date.choose":"选择日期","picker.labels.date.selected":"选定日期为","picker.labels.empty":"空","picker.labels.field.clear":"清除值","picker.labels.range.end":"结束","picker.labels.range.enddate":"结束日期","picker.labels.range.endtime":"结束时间","picker.labels.range.start":"开始","picker.labels.range.startdate":"开始日期","picker.labels.range.starttime":"开始时间","picker.labels.select":"选择","picker.labels.table.date":"选择日期","picker.labels.table.time":"选择时间","picker.labels.time.choose":"选择时间","picker.labels.time.selected":"选定时间为","picker.time.toolbar.title":"选择时间","picker.view.name.day":"天","picker.view.name.hours":"小时","picker.view.name.meridiem":"正午","picker.view.name.minutes":"分钟","picker.view.name.month":"月","picker.view.name.seconds":"秒","picker.view.name.weekday":"工作日","picker.view.name.year":"年份","picker.view.navigation.open.nextview":"打开下一个视图","picker.view.navigation.open.previousview":"打开上一个视图","picker.view.navigation.switch.calendarview":"年份视图已打开,切换到日历视图","picker.view.navigation.switch.yearview":"日历视图已打开,切换到年份视图","fielderror.screenreader.text":"错误","fieldlabel.optional.text":"可选","fieldlabel.required.text":"必填","filters.clear.label":"清除筛选器","filters.submit.label":"提交","filters.filter.any":"任何","filters.filter.clear":"清除筛选器","filters.filters.arialabel":"筛选器","filters.menuitem.any":"任何 {{label}}","filters.menuitem.selected":"{{selected}} 已选中","filters.search.label":"搜索","fileupload.button.text":"添加文件","fileupload.prompt.text":"将文件拖放到此处或点击添加文件","fileupload.removefile.text":"删除文件","passwordfield.icon.label.hide":"隐藏密码","passwordfield.icon.label.show":"显示密码","severity.error":"错误","severity.info":"信息","severity.success":"成功","severity.warning":"警告","sidenav.toggle.expand":"打开导航","sidenav.toggle.collapse":"关闭导航","switch.active":"活动","switch.inactive":"非活动","table.columnvisibility.arialabel":"显示/隐藏列","table.density.arialabel":"表密度","table.draghandle.arialabel":"拖动行以重新排序。或者,按空格键或 Enter 键开始和停止重新排序,按 Esc 键取消操作。","table.draghandle.tooltip":"拖动行或按空格/Enter 键开始和停止重新排序","table.actions":"操作","table.error":"加载数据时出错。","table.fetchedrows.text":"已获取 {{totalRows}} 行","table.fetchedrows.text_plural":"共计已获取 {{totalRows}} 行","table.moreactions.arialabel":"更多操作","table.noresults.heading":"没有结果。","table.noresults.text":"尝试不同的查询。","table.reorder.backward":"下移","table.reorder.forward":"上移","table.reorder.toback":"移至底部","table.reorder.tofront":"移至顶部","table.rows.text":"{{totalRows}} 行","table.rows.text_plural":"{{totalRows}} 行","pagination.label":"标页码","pagination.loadmore":"显示更多","pagination.next":"下一页","pagination.previous":"上一页","pagination.page":"页面","pagination.rowsperpage":"每页行数","pagination.rowswithtotal":"第 {{firstRow}} 行至第 {{lastRow}} 行,共 {{totalRows}} 行","pagination.rowswithouttotal":"第 {{firstRow}} 行至第 {{lastRow}} 行","table.actions.selectall":"全选","table.actions.selectnone":"全部不选","table.actions.selectsome":"{{selectedRowCount}} 已选中","table.rowexpansion.expand":"展开","table.rowexpansion.expandall":"全部展开","table.rowexpansion.collapse":"折叠","table.rowexpansion.collapseall":"全部折叠","dataview.layout.table":"表格","dataview.layout.grid":"网格","dataview.layout.list":"列表","topnav.helpicon":"帮助页面","topnav.settingsicon":"设置页面"};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const translation = {"navigation.label":"主要導覽","navigation.footer":"導覽次要連結","navigation.drag.handle":"拖曳控點","sortable.list.drag.start":"已選擇可拖曳項目 {{activeId}}","sortable.list.drag.moved.over":"可拖曳項目 {{activeId}} 已移至可放置區域上方 {{overId}}","sortable.list.drag.nolonger.over":"可拖曳項目 {{activeId}} 不再位於可放置區域上方","sortable.list.drag.end.dropped.over":"可拖曳項目 {{activeId}} 已放置在可放置區域上方 {{overId}}","sortable.list.drag.end.dropped":"可拖曳項目 {{activeId}} 已放置","sortable.list.drag.cancel":"拖曳操作已取消。可拖曳項目 {{activeId}} 已放置","breadcrumbs.home.text":"首頁","breadcrumbs.label.text":"軌跡","close.text":"關閉","clear.text":"清除","open.text":"開啟","picker.calendar.navigation.nextmonth":"下個月","picker.calendar.navigation.previousmonth":"上個月","picker.date.toolbar.title":"已選取日期","picker.daterange.toolbar.title":"選取日期範圍","picker.datetime.toolbar.title":"選取日期與時間","picker.error.invalid":"修正日期格式,或從行事曆中選取日期。","picker.error.mindate":"輸入的日期早於允許的日期。從行事曆中的可用範圍選取日期。","picker.error.maxdate":"輸入的日期晚於允許的日期。從行事曆中的可用範圍選取日期。","picker.field.placeholder.day":"DD","picker.field.placeholder.hours":"hh","picker.field.placeholder.meridiem":"aa","picker.field.placeholder.minutes":"mm","picker.field.placeholder.month":"MM","picker.field.placeholder.seconds":"ss","picker.field.placeholder.year":"YYYY","picker.labels.action.apply":"套用","picker.labels.action.cancel":"取消","picker.labels.action.today":"今天","picker.labels.clock.empty":"沒有選取時間","picker.labels.clock.hours":"小時","picker.labels.clock.minutes":"分鐘","picker.labels.clock.seconds":"秒","picker.labels.clock.selected":"選取的時間是","picker.labels.date.choose":"選擇日期","picker.labels.date.selected":"選取的日期是","picker.labels.empty":"空白","picker.labels.field.clear":"清除值","picker.labels.range.end":"結束","picker.labels.range.enddate":"結束日期","picker.labels.range.endtime":"結束時間","picker.labels.range.start":"開始","picker.labels.range.startdate":"開始日期","picker.labels.range.starttime":"開始時間","picker.labels.select":"選取","picker.labels.table.date":"挑選日期","picker.labels.table.time":"挑選時間","picker.labels.time.choose":"選擇時間","picker.labels.time.selected":"選取的時間是","picker.time.toolbar.title":"選取時間","picker.view.name.day":"天","picker.view.name.hours":"小時","picker.view.name.meridiem":"十二小時制","picker.view.name.minutes":"分鐘","picker.view.name.month":"個月","picker.view.name.seconds":"秒","picker.view.name.weekday":"星期幾","picker.view.name.year":"年","picker.view.navigation.open.nextview":"開啟下一個檢視","picker.view.navigation.open.previousview":"開啟上一個檢視","picker.view.navigation.switch.calendarview":"年檢視已開啟,切換至行事曆檢視","picker.view.navigation.switch.yearview":"行事曆檢視已開啟,切換至年檢視","fielderror.screenreader.text":"錯誤","fieldlabel.optional.text":"選擇性","fieldlabel.required.text":"必要","filters.clear.label":"清除篩選條件","filters.submit.label":"提交","filters.filter.any":"任何","filters.filter.clear":"清除篩選條件","filters.filters.arialabel":"篩選條件","filters.menuitem.any":"任何 {{label}}","filters.menuitem.selected":"已選取 {{selected}}","filters.search.label":"搜尋","fileupload.button.text":"新增檔案","fileupload.prompt.text":"將檔案拖放到此處或按一下以新增檔案","fileupload.removefile.text":"移除檔案","passwordfield.icon.label.hide":"隱藏密碼","passwordfield.icon.label.show":"顯示密碼","severity.error":"錯誤","severity.info":"資訊","severity.success":"成功","severity.warning":"警告","sidenav.toggle.expand":"開啟導覽","sidenav.toggle.collapse":"關閉導覽","switch.active":"作用中","switch.inactive":"非作用中","table.columnvisibility.arialabel":"顯示/隱藏欄","table.density.arialabel":"表格密度","table.draghandle.arialabel":"拖曳列以重新排序。或者按下空白鍵或 Enter 鍵以開始和停止重新排序,按下 Esc 鍵可取消。","table.draghandle.tooltip":"拖曳列或按下空白鍵/Enter 鍵即可開始和停止重新排序","table.actions":"動作","table.error":"載入資料時發生錯誤。","table.fetchedrows.text":"已擷取 {{totalRows}} 列","table.fetchedrows.text_plural":"已擷取總共 {{totalRows}} 列","table.moreactions.arialabel":"更多動作","table.noresults.heading":"沒有結果。","table.noresults.text":"請嘗試不同的查詢。","table.reorder.backward":"往後傳送","table.reorder.forward":"往前帶","table.reorder.toback":"向後傳送","table.reorder.tofront":"向前帶","table.rows.text":"{{totalRows}} 列","table.rows.text_plural":"{{totalRows}} 列","pagination.label":"分頁","pagination.loadmore":"顯示更多","pagination.next":"下一頁","pagination.previous":"上一頁","pagination.page":"頁面","pagination.rowsperpage":"每頁列數","pagination.rowswithtotal":"第 {{firstRow}}-{{lastRow}} 列,總共 {{totalRows}} 列","pagination.rowswithouttotal":"第 {{firstRow}}-{{lastRow}} 列","table.actions.selectall":"全選","table.actions.selectnone":"沒有選取","table.actions.selectsome":"已選取 {{selectedRowCount}} 個","table.rowexpansion.expand":"展開","table.rowexpansion.expandall":"全部展開","table.rowexpansion.collapse":"摺疊","table.rowexpansion.collapseall":"全部摺疊","dataview.layout.table":"表格","dataview.layout.grid":"網格","dataview.layout.list":"清單","topnav.helpicon":"說明頁面","topnav.settingsicon":"設定頁面"};
|
package/src/remUtils.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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
|
-
/**
|
|
14
|
-
* takes a rem value as an argument like "2rem" and strips the "rem" text and returns just the number
|
|
15
|
-
*/
|
|
16
|
-
export const stripRem = (remValue: string) =>
|
|
17
|
-
Number(remValue.replace(/rem$/, ""));
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* takes a pixel value as an argument and converts that to rem value based on a 14px font size
|
|
21
|
-
*/
|
|
22
|
-
export const toRem = (pixelValue: number) => pixelValue / 14;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* takes a rem value based on a 14px font size as an argument and returns a pixel value
|
|
26
|
-
*/
|
|
27
|
-
export const fromRem = (remValue: number) => remValue * 14;
|
package/src/shadow-dom/index.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2025-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 * from "./shadow-dom.js";
|
|
@@ -1,24 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { createShadowDomElements } from "./shadow-dom.js";
|
|
14
|
-
|
|
15
|
-
describe("createShadowDomElements", () => {
|
|
16
|
-
test("returns two elements attached to a Shadow DOM", () => {
|
|
17
|
-
const { emotionRootElement, shadowRootElement } = createShadowDomElements(
|
|
18
|
-
document.createElement("div"),
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
expect(emotionRootElement.parentNode).toBeInstanceOf(ShadowRoot);
|
|
22
|
-
expect(shadowRootElement.parentNode).toBeInstanceOf(ShadowRoot);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
@@ -1,54 +0,0 @@
|
|
|
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
|
-
import { createReactRootElements } from "../web-component/createReactRootElements.js";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @deprecated Use `renderReactInWebComponent` from `@okta/odyssey-react-mui/ui-shell` instead. This function was necessary when using bare Shadow DOM, but with UI Shell rendering in a Web Component, you won't be able to render your Shadow DOM in its Shadow DOM without using a Web Component.
|
|
17
|
-
*/
|
|
18
|
-
export const createShadowDomElements = (containerElement: HTMLElement) => {
|
|
19
|
-
const shadowRoot = containerElement.attachShadow({ mode: "open" });
|
|
20
|
-
|
|
21
|
-
// Container for Emotion `<style>` elements.
|
|
22
|
-
const { appRootElement, stylesRootElement } = createReactRootElements();
|
|
23
|
-
|
|
24
|
-
shadowRoot.appendChild(appRootElement);
|
|
25
|
-
shadowRoot.appendChild(stylesRootElement);
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
emotionRootElement: stylesRootElement,
|
|
29
|
-
shadowRootElement: appRootElement,
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* @deprecated Use `createShadowDomElements` instead which returns an object instead of an array. It's otherwise the same.
|
|
35
|
-
* @deprecated Ideally, use `renderReactInWebComponent` from `@okta/odyssey-react-mui/ui-shell` instead. This function was necessary when using bare Shadow DOM, but with UI Shell rendering in a Web Component, you won't be able to render your Shadow DOM in its Shadow DOM without using a Web Component. */
|
|
36
|
-
export const createShadowRootElement = (
|
|
37
|
-
containerElement: HTMLElement,
|
|
38
|
-
): [HTMLStyleElement, HTMLDivElement] => {
|
|
39
|
-
const shadowRoot = containerElement.attachShadow({ mode: "open" });
|
|
40
|
-
|
|
41
|
-
// the element that styles will be cached into
|
|
42
|
-
const emotionRootElement = document.createElement("style");
|
|
43
|
-
emotionRootElement.setAttribute("id", "style-root");
|
|
44
|
-
emotionRootElement.setAttribute("nonce", window.cspNonce);
|
|
45
|
-
|
|
46
|
-
// the element that emotion renders html into
|
|
47
|
-
const shadowRootElement = document.createElement("div");
|
|
48
|
-
shadowRootElement.setAttribute("id", "shadow-root");
|
|
49
|
-
|
|
50
|
-
shadowRoot.appendChild(emotionRootElement);
|
|
51
|
-
shadowRoot.appendChild(shadowRootElement);
|
|
52
|
-
|
|
53
|
-
return [emotionRootElement, shadowRootElement];
|
|
54
|
-
};
|
|
@@ -1,176 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
queries,
|
|
15
|
-
within,
|
|
16
|
-
type BoundFunctions,
|
|
17
|
-
type ByRoleMatcher,
|
|
18
|
-
type ByRoleOptions,
|
|
19
|
-
type Matcher,
|
|
20
|
-
type SelectorMatcherOptions,
|
|
21
|
-
} from "@testing-library/dom";
|
|
22
|
-
|
|
23
|
-
export type RoleSelectorMethod = "ByRole";
|
|
24
|
-
|
|
25
|
-
export type TextSelectorMethod =
|
|
26
|
-
| "ByLabelText"
|
|
27
|
-
| "ByPlaceholderText"
|
|
28
|
-
| "ByText"
|
|
29
|
-
| "ByAltText"
|
|
30
|
-
| "ByTitle";
|
|
31
|
-
|
|
32
|
-
export type QueryMethod = "find" | "get" | "query";
|
|
33
|
-
|
|
34
|
-
export type ByRoleMethods =
|
|
35
|
-
| "getByRole"
|
|
36
|
-
// | "getAllByRole"
|
|
37
|
-
| "queryByRole";
|
|
38
|
-
// | "queryAllByRole"
|
|
39
|
-
// | "findByRole"
|
|
40
|
-
// | "findAllByRole"
|
|
41
|
-
|
|
42
|
-
export type ByTextMethods =
|
|
43
|
-
| "getByLabelText"
|
|
44
|
-
// | "getAllByLabelText"
|
|
45
|
-
| "queryByLabelText"
|
|
46
|
-
// | "queryAllByLabelText"
|
|
47
|
-
// | "findByLabelText"
|
|
48
|
-
// | "findAllByLabelText"
|
|
49
|
-
| "getByPlaceholderText"
|
|
50
|
-
// | "getAllByPlaceholderText"
|
|
51
|
-
| "queryByPlaceholderText"
|
|
52
|
-
// | "queryAllByPlaceholderText"
|
|
53
|
-
// | "findByPlaceholderText"
|
|
54
|
-
// | "findAllByPlaceholderText"
|
|
55
|
-
| "getByText"
|
|
56
|
-
// | "getAllByText"
|
|
57
|
-
| "queryByText"
|
|
58
|
-
// | "queryAllByText"
|
|
59
|
-
// | "findByText"
|
|
60
|
-
// | "findAllByText"
|
|
61
|
-
| "getByAltText"
|
|
62
|
-
// | "getAllByAltText"
|
|
63
|
-
| "queryByAltText"
|
|
64
|
-
// | "queryAllByAltText"
|
|
65
|
-
// | "findByAltText"
|
|
66
|
-
// | "findAllByAltText"
|
|
67
|
-
| "getByTitle"
|
|
68
|
-
// | "getAllByTitle"
|
|
69
|
-
| "queryByTitle";
|
|
70
|
-
// | "queryAllByTitle"
|
|
71
|
-
// | "findByTitle"
|
|
72
|
-
// | "findAllByTitle"
|
|
73
|
-
|
|
74
|
-
export const executeTestingLibraryMethod = <
|
|
75
|
-
CanvasMethods extends keyof BoundFunctions<typeof queries>,
|
|
76
|
-
>({
|
|
77
|
-
canvas,
|
|
78
|
-
queryMethod,
|
|
79
|
-
selectionMethod,
|
|
80
|
-
}: {
|
|
81
|
-
canvas: Pick<BoundFunctions<typeof queries>, CanvasMethods>;
|
|
82
|
-
queryMethod: QueryMethod;
|
|
83
|
-
selectionMethod: RoleSelectorMethod | TextSelectorMethod;
|
|
84
|
-
}) =>
|
|
85
|
-
canvas[
|
|
86
|
-
queryMethod.concat(selectionMethod) as keyof Pick<
|
|
87
|
-
BoundFunctions<typeof queries>,
|
|
88
|
-
CanvasMethods
|
|
89
|
-
>
|
|
90
|
-
];
|
|
91
|
-
|
|
92
|
-
export const getByQuerySelector = <
|
|
93
|
-
LocalQueryMethod extends QueryMethod = "get",
|
|
94
|
-
>({
|
|
95
|
-
element,
|
|
96
|
-
queryMethod,
|
|
97
|
-
queryOptions,
|
|
98
|
-
role,
|
|
99
|
-
selectionMethod,
|
|
100
|
-
text,
|
|
101
|
-
}: {
|
|
102
|
-
element: HTMLElement;
|
|
103
|
-
queryMethod: LocalQueryMethod;
|
|
104
|
-
} & (
|
|
105
|
-
| {
|
|
106
|
-
queryOptions?: ByRoleOptions;
|
|
107
|
-
role: ByRoleMatcher;
|
|
108
|
-
selectionMethod: RoleSelectorMethod;
|
|
109
|
-
text?: never;
|
|
110
|
-
}
|
|
111
|
-
| {
|
|
112
|
-
queryOptions?: SelectorMatcherOptions;
|
|
113
|
-
role?: never;
|
|
114
|
-
selectionMethod: TextSelectorMethod;
|
|
115
|
-
text: Matcher;
|
|
116
|
-
}
|
|
117
|
-
)) => {
|
|
118
|
-
const canvas = within(element);
|
|
119
|
-
|
|
120
|
-
const capturedElement =
|
|
121
|
-
selectionMethod === "ByRole"
|
|
122
|
-
? executeTestingLibraryMethod<ByRoleMethods>({
|
|
123
|
-
canvas,
|
|
124
|
-
queryMethod,
|
|
125
|
-
selectionMethod,
|
|
126
|
-
})(role, queryOptions)
|
|
127
|
-
: executeTestingLibraryMethod<ByTextMethods>({
|
|
128
|
-
canvas,
|
|
129
|
-
queryMethod,
|
|
130
|
-
selectionMethod,
|
|
131
|
-
})(text, queryOptions);
|
|
132
|
-
|
|
133
|
-
return capturedElement as LocalQueryMethod extends "get"
|
|
134
|
-
? HTMLElement
|
|
135
|
-
: HTMLElement | null;
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
export const getByRoleQuerySelector = <LocalQueryMethod extends QueryMethod>({
|
|
139
|
-
element,
|
|
140
|
-
queryMethod,
|
|
141
|
-
queryOptions,
|
|
142
|
-
role,
|
|
143
|
-
}: {
|
|
144
|
-
element: HTMLElement;
|
|
145
|
-
queryMethod: LocalQueryMethod;
|
|
146
|
-
queryOptions?: ByRoleOptions;
|
|
147
|
-
role: ByRoleMatcher;
|
|
148
|
-
}) =>
|
|
149
|
-
getByQuerySelector({
|
|
150
|
-
element,
|
|
151
|
-
queryMethod,
|
|
152
|
-
queryOptions,
|
|
153
|
-
role,
|
|
154
|
-
selectionMethod: "ByRole",
|
|
155
|
-
});
|
|
156
|
-
|
|
157
|
-
export const getByTextQuerySelector = <LocalQueryMethod extends QueryMethod>({
|
|
158
|
-
element,
|
|
159
|
-
queryMethod,
|
|
160
|
-
queryOptions,
|
|
161
|
-
selectionMethod,
|
|
162
|
-
text,
|
|
163
|
-
}: {
|
|
164
|
-
element: HTMLElement;
|
|
165
|
-
queryMethod: LocalQueryMethod;
|
|
166
|
-
queryOptions?: SelectorMatcherOptions;
|
|
167
|
-
selectionMethod: TextSelectorMethod;
|
|
168
|
-
text: Matcher;
|
|
169
|
-
}) =>
|
|
170
|
-
getByQuerySelector({
|
|
171
|
-
element,
|
|
172
|
-
queryMethod,
|
|
173
|
-
queryOptions,
|
|
174
|
-
selectionMethod,
|
|
175
|
-
text,
|
|
176
|
-
});
|
|
@@ -1,52 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { normalizeText, validateHtmlElement } from "./sanityChecks.js";
|
|
14
|
-
|
|
15
|
-
// Code modified from: https://github.com/testing-library/jest-dom/blob/main/src/to-have-accessible-errormessage.js
|
|
16
|
-
|
|
17
|
-
/** @see https://www.w3.org/TR/wai-aria-1.2/#aria-errormessage */
|
|
18
|
-
export const getComputedAccessibleErrorMessageText = (
|
|
19
|
-
htmlElement: HTMLElement,
|
|
20
|
-
) => {
|
|
21
|
-
validateHtmlElement(htmlElement);
|
|
22
|
-
|
|
23
|
-
const ariaErrorMessageId = htmlElement.getAttribute("aria-errormessage");
|
|
24
|
-
|
|
25
|
-
// `aria-errormessage` only supports a single `id`.
|
|
26
|
-
if (Boolean(ariaErrorMessageId) && /\s+/.test(ariaErrorMessageId || "")) {
|
|
27
|
-
throw new Error(
|
|
28
|
-
"`aria-errormessage` needs to have a single `id`.".concat(
|
|
29
|
-
"\n",
|
|
30
|
-
`Received: ${ariaErrorMessageId}`,
|
|
31
|
-
),
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** @see https://www.w3.org/TR/wai-aria-1.2/#aria-invalid */
|
|
36
|
-
const ariaInvalid = htmlElement.getAttribute("aria-invalid");
|
|
37
|
-
|
|
38
|
-
// `aria-invalid` only supports `true` when getting an error message.
|
|
39
|
-
if (!htmlElement.hasAttribute("aria-invalid") || ariaInvalid === "false") {
|
|
40
|
-
throw new Error(
|
|
41
|
-
"`aria-invalid` must be `true` when getting an accessible error message.".concat(
|
|
42
|
-
"\n",
|
|
43
|
-
`Received: ${ariaInvalid}`,
|
|
44
|
-
),
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return normalizeText(
|
|
49
|
-
htmlElement.ownerDocument.getElementById(ariaErrorMessageId || "")
|
|
50
|
-
?.textContent ?? "",
|
|
51
|
-
);
|
|
52
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
computeAccessibleName,
|
|
15
|
-
computeAccessibleDescription,
|
|
16
|
-
} from "dom-accessibility-api";
|
|
17
|
-
|
|
18
|
-
import { type AccessibleTextSelectorValue } from "./testSelector.js";
|
|
19
|
-
import { getComputedAccessibleErrorMessageText } from "./getComputedAccessibleErrorMessageText.js";
|
|
20
|
-
|
|
21
|
-
export const accessibleTextSelector = {
|
|
22
|
-
description: computeAccessibleDescription,
|
|
23
|
-
errorMessage: getComputedAccessibleErrorMessageText,
|
|
24
|
-
label: computeAccessibleName,
|
|
25
|
-
} as const satisfies Record<
|
|
26
|
-
AccessibleTextSelectorValue,
|
|
27
|
-
(element: HTMLElement) => string
|
|
28
|
-
>;
|
|
29
|
-
|
|
30
|
-
export const getComputedAccessibleText = ({
|
|
31
|
-
element,
|
|
32
|
-
type,
|
|
33
|
-
}: {
|
|
34
|
-
element: HTMLElement;
|
|
35
|
-
type: AccessibleTextSelectorValue;
|
|
36
|
-
}) => accessibleTextSelector[type](element);
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
export * from "./queryOdysseySelector.js";
|
|
14
|
-
export * from "./querySelector.js";
|
|
15
|
-
export * from "./testSelector.js";
|
|
@@ -1,41 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
export const isRegExpString = (string: string) => /^\/*(.+)\/$/.test(string);
|
|
14
|
-
|
|
15
|
-
/** @deprecated This function is only to be used to interpolate strings in unit tests. It uses `eval` internally which could be unsafe if it wasn't done explicitly in our testing environment. */
|
|
16
|
-
export const interpolateString = (
|
|
17
|
-
string: string,
|
|
18
|
-
replacements: Record<string, string | RegExp>,
|
|
19
|
-
) => {
|
|
20
|
-
// Writes out all replacement pairs as "const variableName = value" because we don't know which we want. Then at the end, we `return` the value we want by simply adding it as the last thing in eval'd code.
|
|
21
|
-
const interpolatedString = eval(`
|
|
22
|
-
${Object.entries(replacements)
|
|
23
|
-
.map(
|
|
24
|
-
([variableName, value]) =>
|
|
25
|
-
`const ${variableName} = ${
|
|
26
|
-
typeof value === "string" ? JSON.stringify(value) : value
|
|
27
|
-
};`,
|
|
28
|
-
)
|
|
29
|
-
.join("")}
|
|
30
|
-
|
|
31
|
-
\`${string}\`
|
|
32
|
-
`) as string;
|
|
33
|
-
|
|
34
|
-
if (isRegExpString(interpolatedString)) {
|
|
35
|
-
// If this string matches the RegExp format, we know that it's a RegExp, and we'll evaluate it to one. TypeScript has no way of knowing the resulting type, so we have to set that ourselves.
|
|
36
|
-
return eval(interpolatedString) as RegExp;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// This interpolated string is just a string.
|
|
40
|
-
return interpolatedString;
|
|
41
|
-
};
|
|
@@ -1,73 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { type AriaRole } from "react";
|
|
14
|
-
import { ElementError } from "./sanityChecks.js";
|
|
15
|
-
import { getRole } from "dom-accessibility-api";
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* For `aria-haspopup`:
|
|
19
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup
|
|
20
|
-
* For `datalist`:
|
|
21
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/datalist
|
|
22
|
-
*/
|
|
23
|
-
export const getControlledElement = ({
|
|
24
|
-
element,
|
|
25
|
-
role,
|
|
26
|
-
}: {
|
|
27
|
-
element: HTMLElement;
|
|
28
|
-
/** If this element controls multiple items, it might be valuable to help narrow down the specific item's `role`. */
|
|
29
|
-
role?: AriaRole;
|
|
30
|
-
}) => {
|
|
31
|
-
if (element instanceof HTMLInputElement && element.list) {
|
|
32
|
-
return element.list;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (element.getAttribute("aria-expanded") === "false") {
|
|
36
|
-
throw new ElementError(
|
|
37
|
-
"Popup isn't open in ARIA; therefore, it cannot be captured.",
|
|
38
|
-
element,
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const linkedElementIds =
|
|
43
|
-
element.getAttribute("aria-controls") || element.getAttribute("aria-owns");
|
|
44
|
-
|
|
45
|
-
if (!linkedElementIds) {
|
|
46
|
-
throw new ElementError(
|
|
47
|
-
"Popup isn't linked; therefore, it cannot be captured.",
|
|
48
|
-
element,
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const linkedElement = linkedElementIds
|
|
53
|
-
.split(" ")
|
|
54
|
-
.map((linkedElementId) =>
|
|
55
|
-
element.ownerDocument.getElementById(linkedElementId),
|
|
56
|
-
)
|
|
57
|
-
// This can be `.filter(Boolean)` when Inferred Type Predicates is in TypeScript (which should be part of the version we're using): https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-5.html#:~:text=Inferred%20Type%20Predicates,Thanks%20Dan!
|
|
58
|
-
.filter((linkedElement): linkedElement is HTMLElement =>
|
|
59
|
-
Boolean(linkedElement),
|
|
60
|
-
)
|
|
61
|
-
.find((linkedElement) =>
|
|
62
|
-
role ? getRole(linkedElement) === role : Boolean(linkedElement),
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
if (!linkedElement) {
|
|
66
|
-
throw new ElementError(
|
|
67
|
-
"Controlled element isn't available; therefore, it cannot be captured.",
|
|
68
|
-
element,
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
return linkedElement;
|
|
73
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
-
*/
|
|
12
|
-
|
|
13
|
-
import { querySelector } from "./querySelector.js";
|
|
14
|
-
import { type TestSelector } from "./testSelector.js";
|
|
15
|
-
import { AutocompleteTestSelector } from "../Autocomplete.js";
|
|
16
|
-
import { CalloutTestSelector } from "../Callout.js";
|
|
17
|
-
import { SelectTestSelector } from "../Select.js";
|
|
18
|
-
import { TabsTestSelector } from "../Tabs.js";
|
|
19
|
-
import { TextFieldTestSelector } from "../TextField.js";
|
|
20
|
-
|
|
21
|
-
export const odysseyTestSelector = {
|
|
22
|
-
Autocomplete: AutocompleteTestSelector,
|
|
23
|
-
Callout: CalloutTestSelector,
|
|
24
|
-
Select: SelectTestSelector,
|
|
25
|
-
Tabs: TabsTestSelector,
|
|
26
|
-
TextField: TextFieldTestSelector,
|
|
27
|
-
} as const satisfies Record<string, TestSelector>;
|
|
28
|
-
|
|
29
|
-
export const queryOdysseySelector = <
|
|
30
|
-
ComponentName extends keyof typeof odysseyTestSelector,
|
|
31
|
-
>(
|
|
32
|
-
/**
|
|
33
|
-
* Name of the component you want to select within.
|
|
34
|
-
*/
|
|
35
|
-
componentName: ComponentName,
|
|
36
|
-
) => querySelector(odysseyTestSelector[componentName]);
|