@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) 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 { MRT_Row, MRT_RowData } from "material-react-table";
|
|
14
|
-
import { Fragment, ReactElement, memo, useCallback } from "react";
|
|
15
|
-
import {
|
|
16
|
-
Button,
|
|
17
|
-
MenuButton,
|
|
18
|
-
MenuButtonProps,
|
|
19
|
-
MenuItem,
|
|
20
|
-
} from "../Buttons/index.js";
|
|
21
|
-
import { Box as MuiBox } from "@mui/material";
|
|
22
|
-
import {
|
|
23
|
-
ArrowBottomIcon,
|
|
24
|
-
ArrowDownIcon,
|
|
25
|
-
ArrowTopIcon,
|
|
26
|
-
ArrowUpIcon,
|
|
27
|
-
MoreIcon,
|
|
28
|
-
} from "../icons.generated/index.js";
|
|
29
|
-
import { DataTableProps } from "./DataTable.js";
|
|
30
|
-
import { Trans, useTranslation } from "react-i18next";
|
|
31
|
-
|
|
32
|
-
export type DataTableRowActionsProps = {
|
|
33
|
-
row: (MRT_Row<MRT_RowData> | MRT_RowData) & { id: string };
|
|
34
|
-
rowIndex: number;
|
|
35
|
-
rowActionButtons?: (
|
|
36
|
-
row: MRT_RowData,
|
|
37
|
-
) => ReactElement<typeof Button | typeof Fragment>;
|
|
38
|
-
rowActionMenuItems?: (row: MRT_RowData) => MenuButtonProps["children"];
|
|
39
|
-
totalRows?: DataTableProps["totalRows"];
|
|
40
|
-
updateRowOrder?: ({
|
|
41
|
-
rowId,
|
|
42
|
-
newRowIndex,
|
|
43
|
-
}: {
|
|
44
|
-
rowId: string;
|
|
45
|
-
newRowIndex: number;
|
|
46
|
-
}) => void;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const DataTableRowActions = ({
|
|
50
|
-
row,
|
|
51
|
-
rowIndex,
|
|
52
|
-
rowActionButtons,
|
|
53
|
-
rowActionMenuItems,
|
|
54
|
-
totalRows,
|
|
55
|
-
updateRowOrder,
|
|
56
|
-
}: DataTableRowActionsProps) => {
|
|
57
|
-
const { t } = useTranslation();
|
|
58
|
-
|
|
59
|
-
const handleToFrontClick = useCallback(() => {
|
|
60
|
-
if (updateRowOrder) {
|
|
61
|
-
updateRowOrder({ rowId: row.id, newRowIndex: 0 });
|
|
62
|
-
}
|
|
63
|
-
}, [row.id, updateRowOrder]);
|
|
64
|
-
|
|
65
|
-
const handleForwardClick = useCallback(() => {
|
|
66
|
-
if (updateRowOrder) {
|
|
67
|
-
updateRowOrder({ rowId: row.id, newRowIndex: Math.max(0, rowIndex - 1) });
|
|
68
|
-
}
|
|
69
|
-
}, [row.id, rowIndex, updateRowOrder]);
|
|
70
|
-
|
|
71
|
-
const handleBackwardClick = useCallback(() => {
|
|
72
|
-
if (updateRowOrder) {
|
|
73
|
-
updateRowOrder({ rowId: row.id, newRowIndex: rowIndex + 1 });
|
|
74
|
-
}
|
|
75
|
-
}, [row.id, rowIndex, updateRowOrder]);
|
|
76
|
-
|
|
77
|
-
const handleToBackClick = useCallback(() => {
|
|
78
|
-
if (updateRowOrder) {
|
|
79
|
-
updateRowOrder({
|
|
80
|
-
rowId: row.id,
|
|
81
|
-
newRowIndex: totalRows ? totalRows - 1 : rowIndex,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
}, [row.id, rowIndex, totalRows, updateRowOrder]);
|
|
85
|
-
|
|
86
|
-
return (
|
|
87
|
-
<MuiBox display="flex">
|
|
88
|
-
{rowActionButtons?.(row)}
|
|
89
|
-
{(rowActionMenuItems || updateRowOrder) && (
|
|
90
|
-
<MenuButton
|
|
91
|
-
endIcon={<MoreIcon />}
|
|
92
|
-
size="small"
|
|
93
|
-
buttonVariant="floating"
|
|
94
|
-
ariaLabel={t("table.moreactions.arialabel")}
|
|
95
|
-
menuAlignment="right"
|
|
96
|
-
>
|
|
97
|
-
{rowActionMenuItems && <>{rowActionMenuItems(row)}</>}
|
|
98
|
-
{rowActionMenuItems && updateRowOrder && <hr />}
|
|
99
|
-
{updateRowOrder && (
|
|
100
|
-
<>
|
|
101
|
-
<MenuItem isDisabled={rowIndex <= 0} onClick={handleToFrontClick}>
|
|
102
|
-
<ArrowTopIcon /> <Trans i18nKey="table.reorder.tofront" />
|
|
103
|
-
</MenuItem>
|
|
104
|
-
<MenuItem isDisabled={rowIndex <= 0} onClick={handleForwardClick}>
|
|
105
|
-
<ArrowUpIcon /> <Trans i18nKey="table.reorder.forward" />
|
|
106
|
-
</MenuItem>
|
|
107
|
-
<MenuItem
|
|
108
|
-
isDisabled={totalRows ? rowIndex >= totalRows - 1 : false}
|
|
109
|
-
onClick={handleBackwardClick}
|
|
110
|
-
>
|
|
111
|
-
<ArrowDownIcon /> <Trans i18nKey="table.reorder.backward" />
|
|
112
|
-
</MenuItem>
|
|
113
|
-
{totalRows && (
|
|
114
|
-
<MenuItem
|
|
115
|
-
isDisabled={rowIndex >= totalRows - 1}
|
|
116
|
-
onClick={handleToBackClick}
|
|
117
|
-
>
|
|
118
|
-
<ArrowBottomIcon /> <Trans i18nKey="table.reorder.toback" />
|
|
119
|
-
</MenuItem>
|
|
120
|
-
)}
|
|
121
|
-
</>
|
|
122
|
-
)}
|
|
123
|
-
</MenuButton>
|
|
124
|
-
)}
|
|
125
|
-
</MuiBox>
|
|
126
|
-
);
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
const MemoizedDataTableRowActions = memo(DataTableRowActions);
|
|
130
|
-
MemoizedDataTableRowActions.displayName = "DataTableRowActions";
|
|
131
|
-
|
|
132
|
-
export { MemoizedDataTableRowActions as DataTableRowActions };
|
|
@@ -1,136 +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 { Dispatch, SetStateAction, memo, useCallback, useMemo } from "react";
|
|
14
|
-
import { Checkbox as MuiCheckbox } from "@mui/material";
|
|
15
|
-
import { MenuButton, MenuItem } from "../Buttons/index.js";
|
|
16
|
-
import { ListIcon, ShowIcon } from "../icons.generated/index.js";
|
|
17
|
-
import { densityValues } from "./constants.js";
|
|
18
|
-
import { DataTableProps } from "./DataTable.js";
|
|
19
|
-
import { MRT_VisibilityState } from "material-react-table";
|
|
20
|
-
import { useTranslation } from "react-i18next";
|
|
21
|
-
|
|
22
|
-
export type DataTableSettingsProps = {
|
|
23
|
-
hasChangeableDensity: DataTableProps["hasChangeableDensity"];
|
|
24
|
-
rowDensity: (typeof densityValues)[number];
|
|
25
|
-
setRowDensity: Dispatch<SetStateAction<(typeof densityValues)[number]>>;
|
|
26
|
-
hasColumnVisibility: DataTableProps["hasColumnVisibility"];
|
|
27
|
-
columns: DataTableProps["columns"];
|
|
28
|
-
columnVisibility?: MRT_VisibilityState;
|
|
29
|
-
setColumnVisibility: Dispatch<
|
|
30
|
-
SetStateAction<MRT_VisibilityState | undefined>
|
|
31
|
-
>;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
const DataTableSettings = ({
|
|
35
|
-
hasChangeableDensity,
|
|
36
|
-
rowDensity,
|
|
37
|
-
setRowDensity,
|
|
38
|
-
hasColumnVisibility,
|
|
39
|
-
columns,
|
|
40
|
-
columnVisibility,
|
|
41
|
-
setColumnVisibility,
|
|
42
|
-
}: DataTableSettingsProps) => {
|
|
43
|
-
const { t } = useTranslation();
|
|
44
|
-
|
|
45
|
-
const changeRowDensity = useCallback(
|
|
46
|
-
(value: (typeof densityValues)[number]) =>
|
|
47
|
-
(_event: React.MouseEvent<HTMLLIElement>) => {
|
|
48
|
-
// This is necessary to avoid linter errors, while the _event is necessary to satisfy the onClick type
|
|
49
|
-
if (process.env.NODE_ENV === "development") console.debug(_event);
|
|
50
|
-
|
|
51
|
-
setRowDensity(value);
|
|
52
|
-
},
|
|
53
|
-
[setRowDensity],
|
|
54
|
-
);
|
|
55
|
-
|
|
56
|
-
const changeColumnVisibility = useCallback(
|
|
57
|
-
(columnId: string) => (_event: React.MouseEvent<HTMLLIElement>) => {
|
|
58
|
-
// This is necessary to avoid linter errors, while the _event is necessary to satisfy the onClick type
|
|
59
|
-
if (process.env.NODE_ENV === "development") console.debug(_event);
|
|
60
|
-
|
|
61
|
-
setColumnVisibility((prevVisibility) => ({
|
|
62
|
-
...prevVisibility,
|
|
63
|
-
[columnId]: prevVisibility ? prevVisibility[columnId] === false : false,
|
|
64
|
-
}));
|
|
65
|
-
},
|
|
66
|
-
[setColumnVisibility],
|
|
67
|
-
);
|
|
68
|
-
|
|
69
|
-
const isColumnVisibilityChecked = useMemo(() => {
|
|
70
|
-
return columns.reduce(
|
|
71
|
-
(acc, column) => {
|
|
72
|
-
const isChecked = columnVisibility
|
|
73
|
-
? columnVisibility[column.accessorKey!] !== false
|
|
74
|
-
: true;
|
|
75
|
-
acc[column.accessorKey!] = isChecked;
|
|
76
|
-
return acc;
|
|
77
|
-
},
|
|
78
|
-
{} as Record<string, boolean>,
|
|
79
|
-
);
|
|
80
|
-
}, [columns, columnVisibility]);
|
|
81
|
-
|
|
82
|
-
return (
|
|
83
|
-
<>
|
|
84
|
-
{hasChangeableDensity && (
|
|
85
|
-
<MenuButton
|
|
86
|
-
endIcon={<ListIcon />}
|
|
87
|
-
ariaLabel={t("table.density.arialabel")}
|
|
88
|
-
menuAlignment="right"
|
|
89
|
-
shouldCloseOnSelect={false}
|
|
90
|
-
>
|
|
91
|
-
<>
|
|
92
|
-
{densityValues.map((value: (typeof densityValues)[number]) => (
|
|
93
|
-
<MenuItem
|
|
94
|
-
key={value}
|
|
95
|
-
isSelected={rowDensity === value}
|
|
96
|
-
onClick={changeRowDensity(value)}
|
|
97
|
-
>
|
|
98
|
-
{`${value.charAt(0).toUpperCase()}${value.slice(1)}`}
|
|
99
|
-
</MenuItem>
|
|
100
|
-
))}
|
|
101
|
-
</>
|
|
102
|
-
</MenuButton>
|
|
103
|
-
)}
|
|
104
|
-
|
|
105
|
-
{hasColumnVisibility && (
|
|
106
|
-
<MenuButton
|
|
107
|
-
endIcon={<ShowIcon />}
|
|
108
|
-
ariaLabel={t("table.columnvisibility.arialabel")}
|
|
109
|
-
menuAlignment="right"
|
|
110
|
-
shouldCloseOnSelect={false}
|
|
111
|
-
>
|
|
112
|
-
<>
|
|
113
|
-
{columns
|
|
114
|
-
.filter((column) => column.enableHiding !== false)
|
|
115
|
-
.map((column) => (
|
|
116
|
-
<MenuItem
|
|
117
|
-
key={column.accessorKey}
|
|
118
|
-
onClick={changeColumnVisibility(column.id as string)}
|
|
119
|
-
>
|
|
120
|
-
<MuiCheckbox
|
|
121
|
-
checked={isColumnVisibilityChecked[column.accessorKey!]}
|
|
122
|
-
/>
|
|
123
|
-
{column.header}
|
|
124
|
-
</MenuItem>
|
|
125
|
-
))}
|
|
126
|
-
</>
|
|
127
|
-
</MenuButton>
|
|
128
|
-
)}
|
|
129
|
-
</>
|
|
130
|
-
);
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
const MemoizedDataTableSettings = memo(DataTableSettings);
|
|
134
|
-
MemoizedDataTableSettings.displayName = "DataTableSettings";
|
|
135
|
-
|
|
136
|
-
export { MemoizedDataTableSettings as DataTableSettings };
|
|
@@ -1,13 +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
|
-
export const densityValues = ["comfortable", "spacious", "compact"] as const;
|
package/src/DataTable/index.tsx
DELETED
|
@@ -1,28 +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
|
-
export {
|
|
14
|
-
DataTable,
|
|
15
|
-
type DataTableColumn,
|
|
16
|
-
type DataTableProps,
|
|
17
|
-
type DataTableGetDataType,
|
|
18
|
-
type DataTableOnReorderRowsType,
|
|
19
|
-
type DataTableRenderDetailPanelType,
|
|
20
|
-
} from "./DataTable.js";
|
|
21
|
-
export { densityValues } from "./constants.js";
|
|
22
|
-
export type {
|
|
23
|
-
MRT_ColumnFiltersState as DataTableFiltersState,
|
|
24
|
-
MRT_SortingState as DataTableSortingState,
|
|
25
|
-
MRT_RowSelectionState as DataTableRowSelectionState,
|
|
26
|
-
MRT_RowData as DataTableRowData,
|
|
27
|
-
MRT_Row as DataTableRow,
|
|
28
|
-
} from "material-react-table";
|
|
@@ -1,48 +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 { MRT_RowData } from "material-react-table";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Reorders data rows locally.
|
|
17
|
-
*
|
|
18
|
-
* @param currentData - The current array of data rows.
|
|
19
|
-
* @param rowId - The ID of the row to move.
|
|
20
|
-
* @param newIndex - The new index to move the row to.
|
|
21
|
-
* @returns A new array of data with the row moved to the specified index.
|
|
22
|
-
*/
|
|
23
|
-
export const reorderDataRowsLocally = <TData extends MRT_RowData>({
|
|
24
|
-
currentData,
|
|
25
|
-
rowId,
|
|
26
|
-
newRowIndex,
|
|
27
|
-
}: {
|
|
28
|
-
currentData: TData[];
|
|
29
|
-
rowId: string;
|
|
30
|
-
newRowIndex: number;
|
|
31
|
-
}): TData[] => {
|
|
32
|
-
const updatedData = [...currentData];
|
|
33
|
-
const rowIndex = updatedData.findIndex((row) => row.id === rowId);
|
|
34
|
-
|
|
35
|
-
// Ensure the row exists and the new index is within bounds
|
|
36
|
-
if (rowIndex === -1 || newRowIndex < 0 || newRowIndex >= updatedData.length) {
|
|
37
|
-
console.warn("Invalid row ID or newIndex; cannot reorder rows.");
|
|
38
|
-
return updatedData; // Return the original data if conditions aren't met
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Remove the row from its current position
|
|
42
|
-
const [removedRow] = updatedData.splice(rowIndex, 1);
|
|
43
|
-
|
|
44
|
-
// Insert the row at the new index
|
|
45
|
-
updatedData.splice(newRowIndex, 0, removedRow);
|
|
46
|
-
|
|
47
|
-
return updatedData;
|
|
48
|
-
};
|
|
@@ -1,232 +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 { Dispatch, SetStateAction, KeyboardEvent } from "react";
|
|
14
|
-
import { DataTableProps } from "./DataTable.js";
|
|
15
|
-
import { reorderDataRowsLocally } from "./reorderDataRowsLocally.js";
|
|
16
|
-
import { useOdysseyDesignTokens } from "../OdysseyDesignTokensContext.js";
|
|
17
|
-
import { MRT_Row, MRT_RowData, MRT_TableInstance } from "material-react-table";
|
|
18
|
-
|
|
19
|
-
export const useRowReordering = <TData extends MRT_RowData>({
|
|
20
|
-
totalRows,
|
|
21
|
-
onReorderRows,
|
|
22
|
-
data,
|
|
23
|
-
setData,
|
|
24
|
-
draggingRow,
|
|
25
|
-
setDraggingRow,
|
|
26
|
-
resultsPerPage,
|
|
27
|
-
page,
|
|
28
|
-
}: {
|
|
29
|
-
totalRows: DataTableProps["totalRows"];
|
|
30
|
-
onReorderRows: DataTableProps["onReorderRows"];
|
|
31
|
-
data: TData[];
|
|
32
|
-
setData: Dispatch<SetStateAction<TData[]>>;
|
|
33
|
-
draggingRow?: MRT_Row<TData> | null;
|
|
34
|
-
setDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null | undefined>>;
|
|
35
|
-
resultsPerPage: number;
|
|
36
|
-
page: number;
|
|
37
|
-
}) => {
|
|
38
|
-
const updateRowOrder = ({
|
|
39
|
-
rowId,
|
|
40
|
-
newRowIndex,
|
|
41
|
-
}: {
|
|
42
|
-
rowId: string;
|
|
43
|
-
newRowIndex: number;
|
|
44
|
-
}) => {
|
|
45
|
-
if (newRowIndex < 0) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Needs to include the totalRows check because totalRows might not
|
|
50
|
-
// be set. If it isn't set, this whole check doesn't matter.
|
|
51
|
-
if (totalRows && newRowIndex > totalRows) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const newData = reorderDataRowsLocally({
|
|
56
|
-
currentData: data,
|
|
57
|
-
rowId,
|
|
58
|
-
newRowIndex,
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
setData(newData);
|
|
62
|
-
onReorderRows?.({ rowId, newRowIndex });
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
66
|
-
const dragHandleStyles = {
|
|
67
|
-
padding: odysseyDesignTokens.Spacing1,
|
|
68
|
-
borderRadius: odysseyDesignTokens.BorderRadiusMain,
|
|
69
|
-
"&:focus-visible": {
|
|
70
|
-
boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,
|
|
71
|
-
outline: "2px solid transparent",
|
|
72
|
-
outlineOffset: "1px",
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const dragHandleText = {
|
|
77
|
-
title: "Drag row or press space/enter key to start and stop reordering",
|
|
78
|
-
"aria-label":
|
|
79
|
-
"Drag row to reorder. Or, press space or enter to start and stop reordering and esc to cancel.",
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const draggableTableBodyRowClassName = ({
|
|
83
|
-
currentRowId,
|
|
84
|
-
draggingRowId,
|
|
85
|
-
hoveredRowId,
|
|
86
|
-
}: {
|
|
87
|
-
currentRowId: string;
|
|
88
|
-
draggingRowId?: string;
|
|
89
|
-
hoveredRowId?: string;
|
|
90
|
-
}) => {
|
|
91
|
-
if (draggingRowId === currentRowId && hoveredRowId !== currentRowId) {
|
|
92
|
-
return "isDragging";
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (hoveredRowId === currentRowId && draggingRowId !== currentRowId) {
|
|
96
|
-
return "isDragTarget";
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (draggingRowId === currentRowId && hoveredRowId === currentRowId) {
|
|
100
|
-
return "isDragging isDragTarget";
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return undefined;
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
const setHoveredRow = (table: MRT_TableInstance<TData>, id: TData["id"]) => {
|
|
107
|
-
if (id) {
|
|
108
|
-
// The `as MRT_Row<TData>` is necessary here to overcome some type/generic
|
|
109
|
-
// issues with the type of `setHoveredRow` defined by MRT. It's not ideal code,
|
|
110
|
-
// but it's the only way that works without a much larger rewrite.
|
|
111
|
-
const nextRow = table.getRow(id) as MRT_Row<TData>;
|
|
112
|
-
|
|
113
|
-
if (nextRow) {
|
|
114
|
-
table.setHoveredRow(nextRow);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
type HandleDragHandleKeyDownArgs = {
|
|
120
|
-
table: MRT_TableInstance<TData>;
|
|
121
|
-
row: MRT_Row<TData>;
|
|
122
|
-
event: KeyboardEvent<HTMLButtonElement>;
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const handleDragHandleKeyDown = ({
|
|
126
|
-
table,
|
|
127
|
-
row,
|
|
128
|
-
event,
|
|
129
|
-
}: HandleDragHandleKeyDownArgs) => {
|
|
130
|
-
const { hoveredRow } = table.getState();
|
|
131
|
-
|
|
132
|
-
const { key } = event;
|
|
133
|
-
|
|
134
|
-
const isSpaceKey = key === " ";
|
|
135
|
-
const isEnterKey = key === "Enter";
|
|
136
|
-
const isEscapeKey = key === "Escape";
|
|
137
|
-
const isArrowDown = key === "ArrowDown";
|
|
138
|
-
const isArrowUp = key === "ArrowUp";
|
|
139
|
-
const isSpaceOrEnter = isSpaceKey || isEnterKey;
|
|
140
|
-
const zeroIndexedPageNumber = page - 1;
|
|
141
|
-
const currentIndex = row.index + zeroIndexedPageNumber * resultsPerPage;
|
|
142
|
-
|
|
143
|
-
if (isEscapeKey) {
|
|
144
|
-
resetDraggingAndHoveredRow(table);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (isSpaceOrEnter) {
|
|
149
|
-
event.preventDefault();
|
|
150
|
-
event.stopPropagation();
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (draggingRow) {
|
|
154
|
-
if (typeof hoveredRow?.index === "number") {
|
|
155
|
-
const { index } = hoveredRow;
|
|
156
|
-
|
|
157
|
-
if (isSpaceOrEnter) {
|
|
158
|
-
const pageRelativeIndex =
|
|
159
|
-
index + zeroIndexedPageNumber * resultsPerPage;
|
|
160
|
-
|
|
161
|
-
if (pageRelativeIndex !== currentIndex) {
|
|
162
|
-
updateRowOrder({
|
|
163
|
-
rowId: row.id,
|
|
164
|
-
newRowIndex: pageRelativeIndex,
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
// Can't transition CSS hover effect. Use timeout to delay hovered row effect removal
|
|
168
|
-
setTimeout(() => {
|
|
169
|
-
resetDraggingAndHoveredRow(table);
|
|
170
|
-
}, odysseyDesignTokens.TransitionDurationMainAsNumber);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
if (isArrowDown || isArrowUp) {
|
|
176
|
-
const nextIndex = isArrowDown ? index + 1 : index - 1;
|
|
177
|
-
// This is a legacy file, and this type isn't a problem in `DataView` --Kevin Ghadyani
|
|
178
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
179
|
-
setHoveredRow(table, data[nextIndex]?.id);
|
|
180
|
-
}
|
|
181
|
-
} else {
|
|
182
|
-
if (isArrowDown || isArrowUp) {
|
|
183
|
-
const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;
|
|
184
|
-
// This is a legacy file, and this type isn't a problem in `DataView` --Kevin Ghadyani
|
|
185
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
186
|
-
setHoveredRow(table, data[nextIndex]?.id);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
} else {
|
|
190
|
-
if (isSpaceOrEnter) {
|
|
191
|
-
setDraggingRow(row);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
const handleDragHandleOnDragEnd = (table: MRT_TableInstance<TData>) => {
|
|
197
|
-
const cols = table.getAllColumns();
|
|
198
|
-
cols[0].toggleVisibility();
|
|
199
|
-
|
|
200
|
-
const { draggingRow, hoveredRow } = table.getState();
|
|
201
|
-
if (draggingRow) {
|
|
202
|
-
updateRowOrder({
|
|
203
|
-
newRowIndex: (hoveredRow as TData).index as number,
|
|
204
|
-
rowId: draggingRow.id,
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
setDraggingRow(null);
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
const handleDragHandleOnDragCapture = (table: MRT_TableInstance<TData>) => {
|
|
212
|
-
if (!draggingRow && table.getState().draggingRow?.id) {
|
|
213
|
-
setDraggingRow(table.getState().draggingRow);
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
|
|
217
|
-
const resetDraggingAndHoveredRow = (table: MRT_TableInstance<TData>) => {
|
|
218
|
-
setDraggingRow(null);
|
|
219
|
-
table.setHoveredRow(null);
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
return {
|
|
223
|
-
dragHandleStyles,
|
|
224
|
-
dragHandleText,
|
|
225
|
-
draggableTableBodyRowClassName,
|
|
226
|
-
handleDragHandleKeyDown,
|
|
227
|
-
handleDragHandleOnDragCapture,
|
|
228
|
-
handleDragHandleOnDragEnd,
|
|
229
|
-
resetDraggingAndHoveredRow,
|
|
230
|
-
updateRowOrder,
|
|
231
|
-
};
|
|
232
|
-
};
|