@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,132 +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 { Fragment, useMemo, useState } from "react";
|
|
14
|
-
import type { ReactNode } from "react";
|
|
15
|
-
import { useTranslation } from "react-i18next";
|
|
16
|
-
import {
|
|
17
|
-
Active,
|
|
18
|
-
Announcements,
|
|
19
|
-
DndContext,
|
|
20
|
-
KeyboardSensor,
|
|
21
|
-
PointerSensor,
|
|
22
|
-
UniqueIdentifier,
|
|
23
|
-
useSensor,
|
|
24
|
-
useSensors,
|
|
25
|
-
} from "@dnd-kit/core";
|
|
26
|
-
import {
|
|
27
|
-
SortableContext,
|
|
28
|
-
sortableKeyboardCoordinates,
|
|
29
|
-
} from "@dnd-kit/sortable";
|
|
30
|
-
|
|
31
|
-
import { SortableItem } from "./SortableItem.js";
|
|
32
|
-
import { SortableOverlay } from "./SortableOverlay.js";
|
|
33
|
-
|
|
34
|
-
export interface BaseItem {
|
|
35
|
-
id: UniqueIdentifier;
|
|
36
|
-
isDisabled: boolean | undefined;
|
|
37
|
-
isSelected: boolean | undefined;
|
|
38
|
-
isSortable: boolean | undefined;
|
|
39
|
-
navItem: ReactNode;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
interface ListProps<T extends BaseItem> {
|
|
43
|
-
parentId: string;
|
|
44
|
-
items: T[];
|
|
45
|
-
onChange: (
|
|
46
|
-
parentId: string,
|
|
47
|
-
activeId: UniqueIdentifier,
|
|
48
|
-
activeIndex: number,
|
|
49
|
-
overIndex: number,
|
|
50
|
-
) => void;
|
|
51
|
-
renderItem: (item: T) => ReactNode;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const SortableList = <T extends BaseItem>({
|
|
55
|
-
parentId,
|
|
56
|
-
items,
|
|
57
|
-
onChange,
|
|
58
|
-
renderItem,
|
|
59
|
-
}: ListProps<T>) => {
|
|
60
|
-
const [active, setActive] = useState<Active | null>(null);
|
|
61
|
-
|
|
62
|
-
const activeItem = useMemo(
|
|
63
|
-
() => items.find((item) => item.id === active?.id),
|
|
64
|
-
[active, items],
|
|
65
|
-
);
|
|
66
|
-
const sensors = useSensors(
|
|
67
|
-
useSensor(PointerSensor),
|
|
68
|
-
useSensor(KeyboardSensor, {
|
|
69
|
-
coordinateGetter: sortableKeyboardCoordinates,
|
|
70
|
-
}),
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
const { t } = useTranslation();
|
|
74
|
-
const announcements: Announcements = useMemo(
|
|
75
|
-
() => ({
|
|
76
|
-
onDragStart: ({ active }) => {
|
|
77
|
-
return `${t("sortable.list.drag.start", { activeId: active.id })}`;
|
|
78
|
-
},
|
|
79
|
-
onDragOver: ({ active, over }) => {
|
|
80
|
-
if (over) {
|
|
81
|
-
return `${t("sortable.list.drag.moved.over", { activeId: active.id, overId: over.id })}`;
|
|
82
|
-
}
|
|
83
|
-
return `${t("sortable.list.drag.nolonger.over", { activeId: active.id })}`;
|
|
84
|
-
},
|
|
85
|
-
onDragEnd: ({ active, over }) => {
|
|
86
|
-
if (over) {
|
|
87
|
-
return `${t("sortable.list.drag.end.dropped.over", { activeId: active.id, overId: over.id })}`;
|
|
88
|
-
}
|
|
89
|
-
return `${t("sortable.list.drag.end.dropped", { activeId: active.id })}`;
|
|
90
|
-
},
|
|
91
|
-
onDragCancel: ({ active }) => {
|
|
92
|
-
return `${t("sortable.list.drag.cancel", { activeId: active.id })}`;
|
|
93
|
-
},
|
|
94
|
-
}),
|
|
95
|
-
[t],
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
return (
|
|
99
|
-
<DndContext
|
|
100
|
-
accessibility={{ announcements: announcements }}
|
|
101
|
-
sensors={sensors}
|
|
102
|
-
onDragStart={({ active }) => {
|
|
103
|
-
setActive(active);
|
|
104
|
-
}}
|
|
105
|
-
onDragEnd={({ active, over }) => {
|
|
106
|
-
if (over && active.id !== over?.id) {
|
|
107
|
-
const activeIndex = items.findIndex(({ id }) => id === active.id);
|
|
108
|
-
const overIndex = items.findIndex(({ id }) => id === over.id);
|
|
109
|
-
// allow sorting by default except when isSortable is set to false explicitly
|
|
110
|
-
if (items[overIndex].isSortable !== false) {
|
|
111
|
-
onChange(parentId, active.id, activeIndex, overIndex);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
setActive(null);
|
|
115
|
-
}}
|
|
116
|
-
onDragCancel={() => {
|
|
117
|
-
setActive(null);
|
|
118
|
-
}}
|
|
119
|
-
>
|
|
120
|
-
<SortableContext items={items}>
|
|
121
|
-
{items.map((item) => (
|
|
122
|
-
<Fragment key={item.id}>{renderItem(item)}</Fragment>
|
|
123
|
-
))}
|
|
124
|
-
</SortableContext>
|
|
125
|
-
<SortableOverlay>
|
|
126
|
-
{activeItem ? renderItem(activeItem) : null}
|
|
127
|
-
</SortableOverlay>
|
|
128
|
-
</DndContext>
|
|
129
|
-
);
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
SortableList.Item = SortableItem;
|
|
@@ -1,34 +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
|
-
defaultDropAnimationSideEffects,
|
|
15
|
-
DragOverlay,
|
|
16
|
-
DropAnimation,
|
|
17
|
-
} from "@dnd-kit/core";
|
|
18
|
-
import type { PropsWithChildren } from "react";
|
|
19
|
-
|
|
20
|
-
const dropAnimationConfig: DropAnimation = {
|
|
21
|
-
sideEffects: defaultDropAnimationSideEffects({
|
|
22
|
-
styles: {
|
|
23
|
-
active: {
|
|
24
|
-
opacity: "0.4",
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
}),
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export function SortableOverlay({ children }: PropsWithChildren<object>) {
|
|
31
|
-
return (
|
|
32
|
-
<DragOverlay dropAnimation={dropAnimationConfig}>{children}</DragOverlay>
|
|
33
|
-
);
|
|
34
|
-
}
|
|
@@ -1,16 +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 { SideNav } from "./SideNav.js";
|
|
14
|
-
export * from "./NavAccordion.js";
|
|
15
|
-
|
|
16
|
-
export * from "./types.js";
|
|
@@ -1,224 +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 { ReactElement, SyntheticEvent } from "react";
|
|
14
|
-
|
|
15
|
-
import type { HtmlProps } from "../../HtmlProps.js";
|
|
16
|
-
import type { statusSeverityValues } from "../../Status.js";
|
|
17
|
-
import { UniqueIdentifier } from "@dnd-kit/core";
|
|
18
|
-
|
|
19
|
-
type LogoWithLink = {
|
|
20
|
-
href: string;
|
|
21
|
-
ariaLabel: string;
|
|
22
|
-
};
|
|
23
|
-
type LogoWithNoLink = {
|
|
24
|
-
href?: never;
|
|
25
|
-
ariaLabel?: never;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export type SideNavLogoProps = { isSameBackgroundAsMain?: boolean } & (
|
|
29
|
-
| LogoWithLink
|
|
30
|
-
| LogoWithNoLink
|
|
31
|
-
) &
|
|
32
|
-
(
|
|
33
|
-
| {
|
|
34
|
-
/**
|
|
35
|
-
* a component to render as the logo
|
|
36
|
-
*/
|
|
37
|
-
logoComponent: ReactElement;
|
|
38
|
-
imageAltText?: never;
|
|
39
|
-
imageUrl?: never;
|
|
40
|
-
}
|
|
41
|
-
| {
|
|
42
|
-
/**
|
|
43
|
-
* The src url to render in an `img` tag
|
|
44
|
-
*/
|
|
45
|
-
imageUrl: string;
|
|
46
|
-
/**
|
|
47
|
-
* alt text for the img logo
|
|
48
|
-
*/
|
|
49
|
-
imageAltText: string;
|
|
50
|
-
logoComponent?: never;
|
|
51
|
-
}
|
|
52
|
-
| {
|
|
53
|
-
/**
|
|
54
|
-
* The src url to render in an `img` tag
|
|
55
|
-
*/
|
|
56
|
-
imageUrl?: never;
|
|
57
|
-
/**
|
|
58
|
-
* alt text for the img logo
|
|
59
|
-
*/
|
|
60
|
-
imageAltText?: never;
|
|
61
|
-
logoComponent?: never;
|
|
62
|
-
}
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
export type SideNavProps = {
|
|
66
|
-
/**
|
|
67
|
-
* Side Nav header text that is usually reserved to show the App name
|
|
68
|
-
*/
|
|
69
|
-
appName?: string;
|
|
70
|
-
/**
|
|
71
|
-
* Determines whether the side nav is collapsible
|
|
72
|
-
*/
|
|
73
|
-
isCollapsible?: boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Determines whether the side nav is collapsed
|
|
76
|
-
*/
|
|
77
|
-
isCollapsed?: boolean;
|
|
78
|
-
/**
|
|
79
|
-
* Determines whether the side nav items use compact layout
|
|
80
|
-
*/
|
|
81
|
-
isCompact?: boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Before the side nav has items, it will be in a loading state.
|
|
84
|
-
*/
|
|
85
|
-
isLoading?: boolean;
|
|
86
|
-
/**
|
|
87
|
-
* An optional logo component or src string for an img to display in the header. If not provided, will default to the Okta logo
|
|
88
|
-
*/
|
|
89
|
-
logoProps?: SideNavLogoProps;
|
|
90
|
-
/**
|
|
91
|
-
* Triggers when the side nav is collapsed
|
|
92
|
-
*/
|
|
93
|
-
onCollapse?: () => void;
|
|
94
|
-
/**
|
|
95
|
-
* Triggers when the side nav is expanded
|
|
96
|
-
*/
|
|
97
|
-
onExpand?: () => void;
|
|
98
|
-
/**
|
|
99
|
-
* Triggers when the item is reordered
|
|
100
|
-
*/
|
|
101
|
-
onSort?: (
|
|
102
|
-
reorderedItems: SideNavItem[],
|
|
103
|
-
parentId: string,
|
|
104
|
-
activeId: UniqueIdentifier,
|
|
105
|
-
activeIndex: number,
|
|
106
|
-
overIndex: number,
|
|
107
|
-
) => void;
|
|
108
|
-
/**
|
|
109
|
-
* Nav items in the side nav
|
|
110
|
-
*/
|
|
111
|
-
sideNavItems: SideNavItem[];
|
|
112
|
-
} & (
|
|
113
|
-
| {
|
|
114
|
-
/**
|
|
115
|
-
* The component to display as the footer; if present the `footerItems` are ignored and not rendered.
|
|
116
|
-
*/
|
|
117
|
-
footerComponent?: ReactElement;
|
|
118
|
-
footerItems?: never;
|
|
119
|
-
hasCustomFooter: true;
|
|
120
|
-
}
|
|
121
|
-
| {
|
|
122
|
-
footerComponent?: never;
|
|
123
|
-
/**
|
|
124
|
-
* Footer items in the side nav
|
|
125
|
-
*/
|
|
126
|
-
footerItems?: SideNavFooterItem[];
|
|
127
|
-
hasCustomFooter?: false;
|
|
128
|
-
}
|
|
129
|
-
) &
|
|
130
|
-
Pick<HtmlProps, "testId">;
|
|
131
|
-
|
|
132
|
-
export type SideNavItem = {
|
|
133
|
-
/**
|
|
134
|
-
* The number to display as a count alongside the nav item
|
|
135
|
-
*/
|
|
136
|
-
count?: number;
|
|
137
|
-
/**
|
|
138
|
-
* The icon element to display after the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.
|
|
139
|
-
*/
|
|
140
|
-
endIcon?: ReactElement;
|
|
141
|
-
id: string;
|
|
142
|
-
/**
|
|
143
|
-
* Whether the item is disabled. When set to true the nav item is set to Disabled color,
|
|
144
|
-
* the link/item is not clickable, and item with nestedNavItems is not expandable.
|
|
145
|
-
*/
|
|
146
|
-
isDisabled?: boolean;
|
|
147
|
-
/**
|
|
148
|
-
* Whether the item is active/selected
|
|
149
|
-
*/
|
|
150
|
-
isSelected?: boolean;
|
|
151
|
-
/**
|
|
152
|
-
* Whether the item is sortable within a sortable list
|
|
153
|
-
*/
|
|
154
|
-
isSortable?: boolean;
|
|
155
|
-
label: string;
|
|
156
|
-
/**
|
|
157
|
-
* Event fired when the nav item is clicked
|
|
158
|
-
*/
|
|
159
|
-
onClick?: (event: SyntheticEvent) => void;
|
|
160
|
-
/**
|
|
161
|
-
* The status element to display after the label
|
|
162
|
-
*/
|
|
163
|
-
severity?: (typeof statusSeverityValues)[number];
|
|
164
|
-
/**
|
|
165
|
-
* The icon element to display before the nav item text. Only use this with images that don't have React context. Even the official Odyssey Icons use MUI which references the MUI theme in context and will error when rendered in Unified UI Shell.
|
|
166
|
-
*/
|
|
167
|
-
startIcon?: ReactElement;
|
|
168
|
-
/**
|
|
169
|
-
* The label to display inside the status
|
|
170
|
-
*/
|
|
171
|
-
statusLabel?: string;
|
|
172
|
-
/**
|
|
173
|
-
* The link target prop. e.g., "_blank"
|
|
174
|
-
*/
|
|
175
|
-
target?: string;
|
|
176
|
-
} & (
|
|
177
|
-
| {
|
|
178
|
-
nestedNavItems?: never;
|
|
179
|
-
href?: never;
|
|
180
|
-
isDefaultExpanded?: never;
|
|
181
|
-
isExpanded?: never;
|
|
182
|
-
/**
|
|
183
|
-
* Determines if the side nav item is a section header
|
|
184
|
-
*/
|
|
185
|
-
isSectionHeader: true;
|
|
186
|
-
}
|
|
187
|
-
| {
|
|
188
|
-
nestedNavItems?: never;
|
|
189
|
-
/**
|
|
190
|
-
* link added to the nav item. if it is undefined, static text will be displayed.
|
|
191
|
-
* fires onClick event when it is passed
|
|
192
|
-
*/
|
|
193
|
-
href?: string;
|
|
194
|
-
isDefaultExpanded?: never;
|
|
195
|
-
isExpanded?: never;
|
|
196
|
-
isSectionHeader?: never;
|
|
197
|
-
}
|
|
198
|
-
| {
|
|
199
|
-
/**
|
|
200
|
-
* An array of side nav items to be displayed as nestedNavItems within Accordion
|
|
201
|
-
*/
|
|
202
|
-
nestedNavItems: Array<Omit<SideNavItem, "nestedNavItems" | "startIcon">>;
|
|
203
|
-
href?: never;
|
|
204
|
-
/**
|
|
205
|
-
* Whether the accordion (nav item with nestedNavItems) is expanded by default
|
|
206
|
-
*/
|
|
207
|
-
isDefaultExpanded?: boolean;
|
|
208
|
-
/**
|
|
209
|
-
* If true, expands the accordion, otherwise collapse it.
|
|
210
|
-
* Setting this prop enables control over the accordion.
|
|
211
|
-
*/
|
|
212
|
-
isExpanded?: boolean;
|
|
213
|
-
/**
|
|
214
|
-
* If true, enables sorting for the accordion items
|
|
215
|
-
*/
|
|
216
|
-
isSectionHeader?: never;
|
|
217
|
-
}
|
|
218
|
-
);
|
|
219
|
-
|
|
220
|
-
export type SideNavFooterItem = {
|
|
221
|
-
href?: string;
|
|
222
|
-
id: string;
|
|
223
|
-
label: string;
|
|
224
|
-
};
|
|
@@ -1,109 +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
|
-
import styled from "@emotion/styled";
|
|
14
|
-
import { memo, type ReactElement } from "react";
|
|
15
|
-
|
|
16
|
-
import type { HtmlProps } from "../../HtmlProps.js";
|
|
17
|
-
import {
|
|
18
|
-
DesignTokens,
|
|
19
|
-
useOdysseyDesignTokens,
|
|
20
|
-
} from "../../OdysseyDesignTokensContext.js";
|
|
21
|
-
import {
|
|
22
|
-
UiShellColors,
|
|
23
|
-
useUiShellContext,
|
|
24
|
-
} from "../../ui-shell/UiShellProvider.js";
|
|
25
|
-
|
|
26
|
-
export const TOP_NAV_HEIGHT = `${64 / 14}rem`;
|
|
27
|
-
|
|
28
|
-
const StyledLeftSideContainer = styled("div")(() => ({
|
|
29
|
-
flexGrow: 1,
|
|
30
|
-
}));
|
|
31
|
-
|
|
32
|
-
const StyledRightSideContainer = styled("div")(() => ({
|
|
33
|
-
flexShrink: 0,
|
|
34
|
-
}));
|
|
35
|
-
|
|
36
|
-
const StyledTopNavContainer = styled("div", {
|
|
37
|
-
shouldForwardProp: (prop) =>
|
|
38
|
-
prop !== "odysseyDesignTokens" &&
|
|
39
|
-
prop !== "isScrolled" &&
|
|
40
|
-
prop !== "topNavBackgroundColor",
|
|
41
|
-
})<{
|
|
42
|
-
isScrolled?: boolean;
|
|
43
|
-
odysseyDesignTokens: DesignTokens;
|
|
44
|
-
topNavBackgroundColor?: UiShellColors["topNavBackgroundColor"];
|
|
45
|
-
}>(({ odysseyDesignTokens, isScrolled, topNavBackgroundColor }) => ({
|
|
46
|
-
alignItems: "center",
|
|
47
|
-
backgroundColor: topNavBackgroundColor,
|
|
48
|
-
boxShadow: isScrolled ? odysseyDesignTokens.DepthMedium : undefined,
|
|
49
|
-
clipPath: "inset(0 0 -100vh 0)",
|
|
50
|
-
display: "flex",
|
|
51
|
-
gap: odysseyDesignTokens.Spacing4,
|
|
52
|
-
height: "100%",
|
|
53
|
-
justifyContent: "space-between",
|
|
54
|
-
maxHeight: TOP_NAV_HEIGHT,
|
|
55
|
-
minHeight: TOP_NAV_HEIGHT,
|
|
56
|
-
paddingBlock: odysseyDesignTokens.Spacing2,
|
|
57
|
-
paddingInline: odysseyDesignTokens.Spacing8,
|
|
58
|
-
position: "relative",
|
|
59
|
-
transition: `box-shadow ${odysseyDesignTokens.TransitionDurationMain} ${odysseyDesignTokens.TransitionTimingMain}`,
|
|
60
|
-
zIndex: 100,
|
|
61
|
-
|
|
62
|
-
...(topNavBackgroundColor === odysseyDesignTokens.HueNeutralWhite && {
|
|
63
|
-
borderBottom: `${odysseyDesignTokens.BorderWidthMain} ${odysseyDesignTokens.BorderStyleMain} ${odysseyDesignTokens.HueNeutral100}`,
|
|
64
|
-
}),
|
|
65
|
-
}));
|
|
66
|
-
|
|
67
|
-
export type TopNavProps = {
|
|
68
|
-
/**
|
|
69
|
-
* Whether or not the underlying content has been scrolled
|
|
70
|
-
*/
|
|
71
|
-
isScrolled?: boolean;
|
|
72
|
-
/**
|
|
73
|
-
* React components that render into the left side of the top nav.
|
|
74
|
-
*/
|
|
75
|
-
leftSideComponent?: ReactElement;
|
|
76
|
-
/**
|
|
77
|
-
* React components that render into the right side of the top nav.
|
|
78
|
-
*/
|
|
79
|
-
rightSideComponent?: ReactElement;
|
|
80
|
-
} & Pick<HtmlProps, "testId">;
|
|
81
|
-
|
|
82
|
-
const TopNav = ({
|
|
83
|
-
isScrolled,
|
|
84
|
-
leftSideComponent,
|
|
85
|
-
rightSideComponent,
|
|
86
|
-
}: TopNavProps) => {
|
|
87
|
-
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
88
|
-
const uiShellContext = useUiShellContext();
|
|
89
|
-
|
|
90
|
-
return (
|
|
91
|
-
<StyledTopNavContainer
|
|
92
|
-
odysseyDesignTokens={odysseyDesignTokens}
|
|
93
|
-
isScrolled={isScrolled}
|
|
94
|
-
topNavBackgroundColor={uiShellContext?.topNavBackgroundColor}
|
|
95
|
-
>
|
|
96
|
-
<StyledLeftSideContainer>
|
|
97
|
-
{leftSideComponent ?? <div />}
|
|
98
|
-
</StyledLeftSideContainer>
|
|
99
|
-
<StyledRightSideContainer>
|
|
100
|
-
{rightSideComponent ?? <div />}
|
|
101
|
-
</StyledRightSideContainer>
|
|
102
|
-
</StyledTopNavContainer>
|
|
103
|
-
);
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
const MemoizedTopNav = memo(TopNav);
|
|
107
|
-
MemoizedTopNav.displayName = "TopNav";
|
|
108
|
-
|
|
109
|
-
export { MemoizedTopNav as TopNav };
|
|
@@ -1,68 +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
|
-
import styled from "@emotion/styled";
|
|
14
|
-
import { memo, type ReactElement } from "react";
|
|
15
|
-
|
|
16
|
-
import type { HtmlProps } from "../../HtmlProps.js";
|
|
17
|
-
import { TopNavListItem, TopNavListItemProps } from "./TopNavListItem.js";
|
|
18
|
-
import { UserProfileProps } from "../../labs/UserProfile.js";
|
|
19
|
-
|
|
20
|
-
export type TopNavLinksListProps = {
|
|
21
|
-
/**
|
|
22
|
-
* Pass in an additional component like `Button` that will be displayed after the nav link items
|
|
23
|
-
*/
|
|
24
|
-
additionalNavItem?: ReactElement;
|
|
25
|
-
/**
|
|
26
|
-
* URL to the help page.
|
|
27
|
-
*/
|
|
28
|
-
helpPageHref?: string;
|
|
29
|
-
/**
|
|
30
|
-
* Pass in a SearchField component with the variant="filled" prop set
|
|
31
|
-
*/
|
|
32
|
-
searchField?: ReactElement;
|
|
33
|
-
/**
|
|
34
|
-
* URL to settings page.
|
|
35
|
-
*/
|
|
36
|
-
settingsPageHref?: string;
|
|
37
|
-
/**
|
|
38
|
-
* Nav links in the top nav
|
|
39
|
-
*/
|
|
40
|
-
topNavLinkItems: TopNavListItemProps[];
|
|
41
|
-
/**
|
|
42
|
-
* Displays user account info
|
|
43
|
-
*/
|
|
44
|
-
userProfile?: UserProfileProps;
|
|
45
|
-
} & Pick<HtmlProps, "testId">;
|
|
46
|
-
|
|
47
|
-
const StyledTopNavList = styled("ul")(() => ({
|
|
48
|
-
alignItems: "center",
|
|
49
|
-
display: "flex",
|
|
50
|
-
listStyle: "none",
|
|
51
|
-
listStyleType: "none",
|
|
52
|
-
padding: 0,
|
|
53
|
-
}));
|
|
54
|
-
|
|
55
|
-
const TopNavLinksList = ({ topNavLinkItems }: TopNavLinksListProps) => (
|
|
56
|
-
<nav>
|
|
57
|
-
<StyledTopNavList>
|
|
58
|
-
{topNavLinkItems.map((item) => (
|
|
59
|
-
<TopNavListItem {...item} key={item.id} />
|
|
60
|
-
))}
|
|
61
|
-
</StyledTopNavList>
|
|
62
|
-
</nav>
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
const MemoizedTopNavLinksList = memo(TopNavLinksList);
|
|
66
|
-
MemoizedTopNavLinksList.displayName = "TopNavLinksList";
|
|
67
|
-
|
|
68
|
-
export { MemoizedTopNavLinksList as TopNavLinksList };
|