@okta/odyssey-react-mui 1.21.2 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/Autocomplete.js +76 -38
- package/dist/Autocomplete.js.map +1 -1
- package/dist/Checkbox.js +26 -11
- package/dist/Checkbox.js.map +1 -1
- package/dist/CheckboxGroup.js +14 -3
- package/dist/CheckboxGroup.js.map +1 -1
- package/dist/DataTable/DataTable.js +10 -2
- package/dist/DataTable/DataTable.js.map +1 -1
- package/dist/DataTable/useScrollIndication.js +2 -2
- package/dist/DataTable/useScrollIndication.js.map +1 -1
- package/dist/Field.js +3 -1
- package/dist/Field.js.map +1 -1
- package/dist/OdysseyCacheProvider.js +4 -3
- package/dist/OdysseyCacheProvider.js.map +1 -1
- package/dist/OdysseyProvider.js +6 -3
- package/dist/OdysseyProvider.js.map +1 -1
- package/dist/OdysseyThemeProvider.js +3 -2
- package/dist/OdysseyThemeProvider.js.map +1 -1
- package/dist/Radio.js +34 -7
- package/dist/Radio.js.map +1 -1
- package/dist/RadioGroup.js +17 -5
- package/dist/RadioGroup.js.map +1 -1
- package/dist/Select.js +53 -31
- package/dist/Select.js.map +1 -1
- package/dist/ToastStack.js.map +1 -1
- package/dist/{createShadowRootElement.js → createShadowDomElements.js} +22 -6
- package/dist/createShadowDomElements.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.scss +5 -5
- package/dist/labs/AppTile.js +124 -0
- package/dist/labs/AppTile.js.map +1 -0
- package/dist/labs/DataView/BulkActionsMenu.js.map +1 -0
- package/dist/labs/{DataComponents/StackContent.js → DataView/CardLayoutContent.js} +14 -14
- package/dist/labs/DataView/CardLayoutContent.js.map +1 -0
- package/dist/labs/{DataComponents/StackCard.js → DataView/DataCard.js} +6 -6
- package/dist/labs/DataView/DataCard.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/DataTable.js +6 -2
- package/dist/labs/DataView/DataTable.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/DataView.js +25 -15
- package/dist/labs/DataView/DataView.js.map +1 -0
- package/dist/labs/DataView/DetailPanel.js.map +1 -0
- package/dist/labs/DataView/LayoutSwitcher.js.map +1 -0
- package/dist/labs/DataView/RowActions.js.map +1 -0
- package/dist/labs/{DataComponents/TableContent.js → DataView/TableLayoutContent.js} +17 -17
- package/dist/labs/DataView/TableLayoutContent.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/TableSettings.js +2 -2
- package/dist/labs/DataView/TableSettings.js.map +1 -0
- package/dist/labs/DataView/componentTypes.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/constants.js +2 -2
- package/dist/labs/DataView/constants.js.map +1 -0
- package/dist/labs/DataView/dataTypes.js.map +1 -0
- package/dist/labs/DataView/fetchData.js.map +1 -0
- package/dist/labs/{DataComponents → DataView}/index.js +0 -1
- package/dist/labs/DataView/index.js.map +1 -0
- package/dist/labs/DataView/tableConstants.js.map +1 -0
- package/dist/labs/DataView/useFilterConversion.js.map +1 -0
- package/dist/labs/SideNav/CollapseIcon.js +44 -0
- package/dist/labs/SideNav/CollapseIcon.js.map +1 -0
- package/dist/labs/SideNav/SideNav.js +246 -0
- package/dist/labs/SideNav/SideNav.js.map +1 -0
- package/dist/labs/SideNav/SideNavFooterContent.js +49 -0
- package/dist/labs/SideNav/SideNavFooterContent.js.map +1 -0
- package/dist/labs/SideNav/SideNavHeader.js +58 -0
- package/dist/labs/SideNav/SideNavHeader.js.map +1 -0
- package/dist/labs/SideNav/SideNavItemContent.js +157 -0
- package/dist/labs/SideNav/SideNavItemContent.js.map +1 -0
- package/dist/labs/SideNav/SideNavItemLinkContent.js +71 -0
- package/dist/labs/SideNav/SideNavItemLinkContent.js.map +1 -0
- package/dist/labs/SideNav/index.js +14 -0
- package/dist/labs/SideNav/index.js.map +1 -0
- package/dist/labs/SideNav/types.js +2 -0
- package/dist/labs/SideNav/types.js.map +1 -0
- package/dist/labs/Switch.js +70 -16
- package/dist/labs/Switch.js.map +1 -1
- package/dist/labs/index.js +3 -2
- package/dist/labs/index.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_cs.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_cs.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_da.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_da.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_de.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_de.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_el.js +18 -4
- package/dist/properties/ts/odyssey-react-mui_el.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_es.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_es.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fi.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_fi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_fr.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_fr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ht.js +18 -4
- package/dist/properties/ts/odyssey-react-mui_ht.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_hu.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_hu.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_id.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_id.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_it.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_it.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ja.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_ja.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ko.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_ko.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ms.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ms.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nb.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_nb.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_nl_NL.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pl.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_pl.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_pt_BR.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ro.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ro.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_ru.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_ru.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_sv.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_sv.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_th.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_th.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_tr.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_tr.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_uk.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_uk.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_vi.js +17 -3
- package/dist/properties/ts/odyssey-react-mui_vi.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_zh_CN.js.map +1 -1
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js +16 -2
- package/dist/properties/ts/odyssey-react-mui_zh_TW.js.map +1 -1
- package/dist/src/Autocomplete.d.ts.map +1 -1
- package/dist/src/Checkbox.d.ts +2 -2
- package/dist/src/Checkbox.d.ts.map +1 -1
- package/dist/src/CheckboxGroup.d.ts +3 -3
- package/dist/src/CheckboxGroup.d.ts.map +1 -1
- package/dist/src/DataTable/DataTable.d.ts +9 -1
- package/dist/src/DataTable/DataTable.d.ts.map +1 -1
- package/dist/src/Field.d.ts +3 -2
- package/dist/src/Field.d.ts.map +1 -1
- package/dist/src/OdysseyCacheProvider.d.ts +7 -3
- package/dist/src/OdysseyCacheProvider.d.ts.map +1 -1
- package/dist/src/OdysseyProvider.d.ts +1 -1
- package/dist/src/OdysseyProvider.d.ts.map +1 -1
- package/dist/src/OdysseyThemeProvider.d.ts +3 -1
- package/dist/src/OdysseyThemeProvider.d.ts.map +1 -1
- package/dist/src/Radio.d.ts +6 -8
- package/dist/src/Radio.d.ts.map +1 -1
- package/dist/src/RadioGroup.d.ts +4 -5
- package/dist/src/RadioGroup.d.ts.map +1 -1
- package/dist/src/Select.d.ts +2 -2
- package/dist/src/Select.d.ts.map +1 -1
- package/dist/src/ToastStack.d.ts +2 -2
- package/dist/src/ToastStack.d.ts.map +1 -1
- package/dist/src/{createShadowRootElement.d.ts → createShadowDomElements.d.ts} +6 -1
- package/dist/src/createShadowDomElements.d.ts.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/labs/AppTile.d.ts +39 -0
- package/dist/src/labs/AppTile.d.ts.map +1 -0
- package/dist/src/labs/DataView/BulkActionsMenu.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/StackContent.d.ts → DataView/CardLayoutContent.d.ts} +7 -7
- package/dist/src/labs/DataView/CardLayoutContent.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/StackCard.d.ts → DataView/DataCard.d.ts} +4 -4
- package/dist/src/labs/DataView/DataCard.d.ts.map +1 -0
- package/dist/src/labs/DataView/DataTable.d.ts +16 -0
- package/dist/src/labs/DataView/DataTable.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/DataView.d.ts +1 -1
- package/dist/src/labs/DataView/DataView.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/DetailPanel.d.ts +2 -2
- package/dist/src/labs/DataView/DetailPanel.d.ts.map +1 -0
- package/dist/src/labs/DataView/LayoutSwitcher.d.ts.map +1 -0
- package/dist/src/labs/DataView/RowActions.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents/TableContent.d.ts → DataView/TableLayoutContent.d.ts} +7 -7
- package/dist/src/labs/DataView/TableLayoutContent.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/TableSettings.d.ts +3 -3
- package/dist/src/labs/DataView/TableSettings.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/componentTypes.d.ts +11 -9
- package/dist/src/labs/DataView/componentTypes.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/constants.d.ts +1 -1
- package/dist/src/labs/DataView/constants.d.ts.map +1 -0
- package/dist/src/labs/DataView/dataTypes.d.ts.map +1 -0
- package/dist/src/labs/DataView/fetchData.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/index.d.ts +0 -1
- package/dist/src/labs/DataView/index.d.ts.map +1 -0
- package/dist/src/labs/DataView/tableConstants.d.ts.map +1 -0
- package/dist/src/labs/{DataComponents → DataView}/useFilterConversion.d.ts +2 -2
- package/dist/src/labs/DataView/useFilterConversion.d.ts.map +1 -0
- package/dist/src/labs/SideNav/CollapseIcon.d.ts +17 -0
- package/dist/src/labs/SideNav/CollapseIcon.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNav.d.ts +15 -0
- package/dist/src/labs/SideNav/SideNav.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavFooterContent.d.ts +17 -0
- package/dist/src/labs/SideNav/SideNavFooterContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavHeader.d.ts +16 -0
- package/dist/src/labs/SideNav/SideNavHeader.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts +33 -0
- package/dist/src/labs/SideNav/SideNavItemContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts +16 -0
- package/dist/src/labs/SideNav/SideNavItemLinkContent.d.ts.map +1 -0
- package/dist/src/labs/SideNav/index.d.ts +14 -0
- package/dist/src/labs/SideNav/index.d.ts.map +1 -0
- package/dist/src/labs/{SideNav.d.ts → SideNav/types.d.ts} +31 -33
- package/dist/src/labs/SideNav/types.d.ts.map +1 -0
- package/dist/src/labs/Switch.d.ts +5 -1
- package/dist/src/labs/Switch.d.ts.map +1 -1
- package/dist/src/labs/index.d.ts +2 -1
- package/dist/src/labs/index.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_cs.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_da.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_de.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_el.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_es.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_fi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_fr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts +16 -2
- package/dist/src/properties/ts/odyssey-react-mui_ht.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_hu.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_id.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_it.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ja.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ko.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ms.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_nb.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_nl_NL.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_pl.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_pt_BR.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ro.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_ru.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_sv.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_th.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_tr.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_uk.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_vi.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_CN.d.ts.map +1 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts +15 -1
- package/dist/src/properties/ts/odyssey-react-mui_zh_TW.d.ts.map +1 -1
- package/dist/src/theme/components.d.ts +3 -1
- package/dist/src/theme/components.d.ts.map +1 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts +3 -1
- package/dist/src/theme/createOdysseyMuiTheme.d.ts.map +1 -1
- package/dist/theme/components.js +232 -146
- package/dist/theme/components.js.map +1 -1
- package/dist/theme/createOdysseyMuiTheme.js +3 -2
- package/dist/theme/createOdysseyMuiTheme.js.map +1 -1
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/package.json +3 -4
- package/src/Autocomplete.tsx +108 -45
- package/src/Checkbox.tsx +39 -9
- package/src/CheckboxGroup.tsx +20 -4
- package/src/DataTable/DataTable.tsx +24 -1
- package/src/DataTable/useScrollIndication.tsx +2 -2
- package/src/Field.tsx +5 -2
- package/src/OdysseyCacheProvider.tsx +18 -4
- package/src/OdysseyProvider.tsx +6 -3
- package/src/OdysseyThemeProvider.tsx +6 -2
- package/src/Radio.tsx +42 -13
- package/src/RadioGroup.tsx +26 -7
- package/src/Select.tsx +78 -45
- package/src/ToastStack.tsx +2 -2
- package/src/{createShadowRootElement.ts → createShadowDomElements.ts} +24 -5
- package/src/index.ts +1 -1
- package/src/labs/AppTile.tsx +200 -0
- package/src/labs/{DataComponents/StackContent.tsx → DataView/CardLayoutContent.tsx} +24 -19
- package/src/labs/{DataComponents/StackCard.tsx → DataView/DataCard.tsx} +7 -7
- package/src/labs/{DataComponents → DataView}/DataTable.tsx +8 -4
- package/src/labs/{DataComponents → DataView}/DataView.tsx +46 -17
- package/src/labs/{DataComponents → DataView}/DetailPanel.tsx +2 -2
- package/src/labs/{DataComponents/TableContent.tsx → DataView/TableLayoutContent.tsx} +31 -26
- package/src/labs/{DataComponents → DataView}/TableSettings.tsx +5 -4
- package/src/labs/{DataComponents → DataView}/componentTypes.ts +11 -9
- package/src/labs/{DataComponents → DataView}/constants.tsx +2 -2
- package/src/labs/{DataComponents → DataView}/index.tsx +0 -1
- package/src/labs/{DataComponents → DataView}/useFilterConversion.ts +2 -2
- package/src/labs/SideNav/CollapseIcon.tsx +48 -0
- package/src/labs/SideNav/SideNav.tsx +350 -0
- package/src/labs/SideNav/SideNavFooterContent.tsx +64 -0
- package/src/labs/SideNav/SideNavHeader.tsx +65 -0
- package/src/labs/SideNav/SideNavItemContent.tsx +216 -0
- package/src/labs/SideNav/SideNavItemLinkContent.tsx +87 -0
- package/src/labs/SideNav/index.ts +15 -0
- package/src/labs/SideNav/types.ts +125 -0
- package/src/labs/Switch.tsx +85 -31
- package/src/labs/index.ts +3 -1
- package/src/properties/translations/odyssey-react-mui_cs.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_da.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_de.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_el.properties +16 -4
- package/src/properties/translations/odyssey-react-mui_es.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_fi.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_fr.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ht.properties +17 -6
- package/src/properties/translations/odyssey-react-mui_hu.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_id.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_it.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ja.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_ko.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_ms.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_nb.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_nl_NL.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_pl.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_pt_BR.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ro.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_ru.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_sv.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_th.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_tr.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_uk.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_vi.properties +15 -3
- package/src/properties/translations/odyssey-react-mui_zh_CN.properties +14 -2
- package/src/properties/translations/odyssey-react-mui_zh_TW.properties +14 -2
- package/src/properties/ts/odyssey-react-mui_cs.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_da.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_de.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_el.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_es.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_fr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ht.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_hu.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_id.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_it.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ja.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ko.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ms.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nb.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_nl_NL.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pl.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_pt_BR.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ro.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_ru.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_sv.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_th.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_tr.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_uk.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_vi.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_CN.ts +1 -1
- package/src/properties/ts/odyssey-react-mui_zh_TW.ts +1 -1
- package/src/theme/components.tsx +240 -150
- package/src/theme/createOdysseyMuiTheme.ts +4 -1
- package/dist/createShadowRootElement.js.map +0 -1
- package/dist/labs/DataComponents/BulkActionsMenu.js.map +0 -1
- package/dist/labs/DataComponents/DataStack.js +0 -85
- package/dist/labs/DataComponents/DataStack.js.map +0 -1
- package/dist/labs/DataComponents/DataTable.js.map +0 -1
- package/dist/labs/DataComponents/DataView.js.map +0 -1
- package/dist/labs/DataComponents/DetailPanel.js.map +0 -1
- package/dist/labs/DataComponents/LayoutSwitcher.js.map +0 -1
- package/dist/labs/DataComponents/RowActions.js.map +0 -1
- package/dist/labs/DataComponents/StackCard.js.map +0 -1
- package/dist/labs/DataComponents/StackContent.js.map +0 -1
- package/dist/labs/DataComponents/TableContent.js.map +0 -1
- package/dist/labs/DataComponents/TableSettings.js.map +0 -1
- package/dist/labs/DataComponents/componentTypes.js.map +0 -1
- package/dist/labs/DataComponents/constants.js.map +0 -1
- package/dist/labs/DataComponents/dataTypes.js.map +0 -1
- package/dist/labs/DataComponents/fetchData.js.map +0 -1
- package/dist/labs/DataComponents/index.js.map +0 -1
- package/dist/labs/DataComponents/tableConstants.js.map +0 -1
- package/dist/labs/DataComponents/useFilterConversion.js.map +0 -1
- package/dist/labs/SideNav.js +0 -478
- package/dist/labs/SideNav.js.map +0 -1
- package/dist/src/createShadowRootElement.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/BulkActionsMenu.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataStack.d.ts +0 -20
- package/dist/src/labs/DataComponents/DataStack.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataTable.d.ts +0 -16
- package/dist/src/labs/DataComponents/DataTable.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DataView.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/DetailPanel.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/LayoutSwitcher.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/RowActions.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/StackCard.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/StackContent.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/TableContent.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/TableSettings.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/componentTypes.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/constants.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/dataTypes.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/fetchData.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/index.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/tableConstants.d.ts.map +0 -1
- package/dist/src/labs/DataComponents/useFilterConversion.d.ts.map +0 -1
- package/dist/src/labs/SideNav.d.ts.map +0 -1
- package/src/labs/DataComponents/DataStack.tsx +0 -105
- package/src/labs/SideNav.tsx +0 -745
- /package/dist/labs/{DataComponents → DataView}/BulkActionsMenu.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/DetailPanel.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/LayoutSwitcher.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/RowActions.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/componentTypes.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/dataTypes.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/fetchData.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/tableConstants.js +0 -0
- /package/dist/labs/{DataComponents → DataView}/useFilterConversion.js +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/BulkActionsMenu.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/LayoutSwitcher.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/RowActions.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/dataTypes.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/fetchData.d.ts +0 -0
- /package/dist/src/labs/{DataComponents → DataView}/tableConstants.d.ts +0 -0
- /package/src/labs/{DataComponents → DataView}/BulkActionsMenu.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/LayoutSwitcher.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/RowActions.tsx +0 -0
- /package/src/labs/{DataComponents → DataView}/dataTypes.ts +0 -0
- /package/src/labs/{DataComponents → DataView}/fetchData.ts +0 -0
- /package/src/labs/{DataComponents → DataView}/tableConstants.tsx +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNav.js","names":["styled","memo","useMemo","useState","useCallback","useRef","useEffect","Box","ExpandLeftIcon","NavAccordion","useOdysseyDesignTokens","SideNavHeader","SideNavItemContent","SideNavListItemContainer","SideNavFooterContent","jsx","_jsx","jsxs","_jsxs","SideNavCollapsedContainer","shouldForwardProp","prop","odysseyDesignTokens","isSideNavCollapsed","backgroundColor","HueNeutral300","paddingTop","Spacing5","cursor","width","opacity","visibility","transitionProperty","transitionDuration","TransitionDurationMain","transitionTimingFunction","TransitionTimingMain","SideNavExpandContainer","HueNeutralWhite","flexDirection","display","SideNavListContainer","ul","padding","listStyle","listStyleType","SectionHeader","fontSize","TypographySizeOverline","fontWeight","TypographyWeightHeadingBold","color","HueNeutral600","Spacing3","paddingBottom","paddingLeft","Spacing4","textTransform","SideNavFooterContainer","Spacing2","justifyContent","flexWrap","alignItems","TypographyColorHeading","textDecoration","SideNav","navHeaderText","isCollapsible","onCollapse","onExpand","sideNavItems","footerItems","setSideNavCollapsed","scrollIntoViewRef","firstSideNavItemIdWithIsSelected","flattenedItems","flatMap","sideNavItem","children","firstItemWithIsSelected","find","isSelected","id","current","scrollIntoView","getRefIfThisIsFirstNodeWithIsSelected","itemId","undefined","processedSideNavItems","map","item","childProps","scrollRef","sideNavCollapseHandler","sideNavExpandClickHandler","sideNavExpandKeyHandler","event","key","code","preventDefault","sideNavStyles","height","sideNavHeaderContainerStyles","position","top","sideNavListContainerStyles","flex","overflowY","sideNavFooterContainerStyles","bottom","expandLeftIconStyles","margin","Spacing1","sx","tabIndex","role","onClick","onKeyDown","testId","label","isSectionHeader","startIcon","isDefaultExpanded","isDisabled","isExpanded","MemoizedSideNav","displayName"],"sources":["../../../src/labs/SideNav/SideNav.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n memo,\n useMemo,\n useState,\n useCallback,\n KeyboardEvent,\n useRef,\n useEffect,\n} from \"react\";\n\nimport { Box } from \"../../Box\";\nimport { ExpandLeftIcon } from \"../../icons.generated\";\nimport { NavAccordion } from \"../NavAccordion\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport type { SideNavProps } from \"./types\";\nimport { SideNavHeader } from \"./SideNavHeader\";\nimport {\n SideNavItemContent,\n SideNavListItemContainer,\n} from \"./SideNavItemContent\";\nimport { SideNavFooterContent } from \"./SideNavFooterContent\";\n\nconst SideNavCollapsedContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})(\n ({\n odysseyDesignTokens,\n isSideNavCollapsed,\n }: {\n odysseyDesignTokens: DesignTokens;\n isSideNavCollapsed: boolean;\n }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutral300,\n paddingTop: odysseyDesignTokens.Spacing5,\n cursor: \"pointer\",\n width: isSideNavCollapsed ? \"auto\" : 0,\n opacity: isSideNavCollapsed ? 1 : 0,\n visibility: isSideNavCollapsed ? \"visible\" : \"hidden\",\n transitionProperty: \"opacity\",\n transitionDuration: odysseyDesignTokens.TransitionDurationMain,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n }),\n);\n\nconst SideNavExpandContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isSideNavCollapsed\",\n})(\n ({\n odysseyDesignTokens,\n isSideNavCollapsed,\n }: {\n odysseyDesignTokens: DesignTokens;\n isSideNavCollapsed: boolean;\n }) => ({\n backgroundColor: odysseyDesignTokens.HueNeutralWhite,\n flexDirection: \"column\",\n display: \"flex\",\n opacity: isSideNavCollapsed ? 0 : 1,\n visibility: isSideNavCollapsed ? \"hidden\" : \"visible\",\n width: isSideNavCollapsed ? \"0\" : \"100%\",\n transitionProperty: \"opacity, width\",\n transitionDuration: odysseyDesignTokens.TransitionDurationMain,\n transitionTimingFunction: odysseyDesignTokens.TransitionTimingMain,\n }),\n);\n\nconst SideNavListContainer = styled.ul({\n padding: 0,\n listStyle: \"none\",\n listStyleType: \"none\",\n});\n\nconst SectionHeader = styled(\"li\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n fontSize: odysseyDesignTokens.TypographySizeOverline,\n fontWeight: odysseyDesignTokens.TypographyWeightHeadingBold,\n color: odysseyDesignTokens.HueNeutral600,\n paddingTop: odysseyDesignTokens.Spacing3,\n paddingBottom: odysseyDesignTokens.Spacing3,\n paddingLeft: odysseyDesignTokens.Spacing4,\n textTransform: \"uppercase\",\n}));\n\nconst SideNavFooterContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n paddingTop: odysseyDesignTokens.Spacing2,\n paddingBottom: odysseyDesignTokens.Spacing2,\n display: \"flex\",\n justifyContent: \"center\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n fontSize: odysseyDesignTokens.TypographySizeOverline,\n \"& a\": {\n color: `${odysseyDesignTokens.TypographyColorHeading} !important`,\n },\n \"& a:hover\": {\n textDecoration: \"none\",\n },\n \"& a:visited\": {\n color: odysseyDesignTokens.TypographyColorHeading,\n },\n}));\n\nconst SideNav = ({\n navHeaderText,\n isCollapsible,\n onCollapse,\n onExpand,\n sideNavItems,\n footerItems,\n}: SideNavProps) => {\n const [isSideNavCollapsed, setSideNavCollapsed] = useState(false);\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const scrollIntoViewRef = useRef<HTMLLIElement>(null);\n /**\n * Look through the sideNavItems and determine which is the first node\n * with isSelected. This should be the node we set a ref on in order to\n * call scrollIntoView in the effect\n */\n const firstSideNavItemIdWithIsSelected = useMemo(() => {\n const flattenedItems = sideNavItems.flatMap((sideNavItem) =>\n sideNavItem.children\n ? [sideNavItem, ...sideNavItem.children]\n : sideNavItem,\n );\n const firstItemWithIsSelected = flattenedItems.find(\n (sideNavItem) => sideNavItem.isSelected,\n );\n return firstItemWithIsSelected?.id;\n }, [sideNavItems]);\n /**\n * Once we've rendered and if we have an item to scroll to, do the scroll action.\n * This must rely on checking firstSideNavItemIdWithIsSelected or it will not run\n * once the actual ref is populated.\n */\n useEffect(() => {\n if (firstSideNavItemIdWithIsSelected && scrollIntoViewRef.current) {\n scrollIntoViewRef.current.scrollIntoView();\n }\n }, [firstSideNavItemIdWithIsSelected, scrollIntoViewRef]);\n\n /**\n * We only want to put a ref on a node iff it is the first selected node.\n * This function returns the ref only if the ID provided matches the first\n * selected node, otherwise returns undefined (so that the node has no ref)\n */\n const getRefIfThisIsFirstNodeWithIsSelected = useCallback(\n (itemId: string) =>\n itemId === firstSideNavItemIdWithIsSelected\n ? scrollIntoViewRef\n : undefined,\n [firstSideNavItemIdWithIsSelected],\n );\n\n const processedSideNavItems = useMemo(\n () =>\n sideNavItems.map((item) => ({\n ...item,\n children: item.children?.map((childProps) => (\n <SideNavItemContent\n key={childProps.id}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(childProps.id)}\n {...childProps}\n />\n )),\n })),\n [getRefIfThisIsFirstNodeWithIsSelected, sideNavItems],\n );\n\n const sideNavCollapseHandler = useCallback(() => {\n setSideNavCollapsed(!isSideNavCollapsed);\n onCollapse?.();\n }, [isSideNavCollapsed, setSideNavCollapsed, onCollapse]);\n\n const sideNavExpandClickHandler = useCallback(() => {\n setSideNavCollapsed(!isSideNavCollapsed);\n onExpand?.();\n }, [isSideNavCollapsed, setSideNavCollapsed, onExpand]);\n\n const sideNavExpandKeyHandler = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event?.key === \"Enter\" || event?.code === \"Space\") {\n event.preventDefault();\n setSideNavCollapsed(!isSideNavCollapsed);\n onExpand?.();\n }\n },\n [isSideNavCollapsed, setSideNavCollapsed, onExpand],\n );\n\n const sideNavStyles = useMemo(\n () => ({\n display: \"flex\",\n height: \"100vh\",\n }),\n [],\n );\n\n const sideNavHeaderContainerStyles = useMemo(\n () => ({\n position: \"sticky\",\n top: 0,\n }),\n [],\n );\n\n const sideNavListContainerStyles = useMemo(\n () => ({\n flex: 1,\n overflowY: \"auto\",\n }),\n [],\n );\n\n const sideNavFooterContainerStyles = useMemo(\n () => ({\n position: \"sticky\",\n bottom: 0,\n paddingTop: odysseyDesignTokens.Spacing2,\n }),\n [odysseyDesignTokens],\n );\n\n const expandLeftIconStyles = useMemo(\n () => ({\n fontSize: \"1em\",\n margin: `0 ${odysseyDesignTokens.Spacing1}`,\n }),\n [odysseyDesignTokens],\n );\n\n return (\n <Box sx={sideNavStyles}>\n <SideNavCollapsedContainer\n tabIndex={0}\n role=\"button\"\n odysseyDesignTokens={odysseyDesignTokens}\n isSideNavCollapsed={isSideNavCollapsed}\n onClick={sideNavExpandClickHandler}\n onKeyDown={sideNavExpandKeyHandler}\n data-se=\"collapsed-region\"\n data-aria-label=\"expand side navigation\"\n >\n <ExpandLeftIcon sx={expandLeftIconStyles} />\n </SideNavCollapsedContainer>\n <SideNavExpandContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isSideNavCollapsed={isSideNavCollapsed}\n data-se=\"expanded-region\"\n >\n <Box sx={sideNavHeaderContainerStyles}>\n <SideNavHeader\n navHeaderText={navHeaderText}\n isCollapsible={isCollapsible}\n onCollapse={sideNavCollapseHandler}\n />\n </Box>\n <Box sx={sideNavListContainerStyles} testId=\"scrollable-region\">\n <SideNavListContainer>\n {processedSideNavItems?.map((item) => {\n const {\n id,\n label,\n isSectionHeader,\n startIcon,\n children,\n isDefaultExpanded,\n isDisabled,\n isExpanded,\n } = item;\n\n if (isSectionHeader) {\n return (\n <SectionHeader\n id={id}\n key={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {label}\n </SectionHeader>\n );\n } else if (children) {\n return (\n <SideNavListItemContainer\n id={id}\n key={id}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n <NavAccordion\n label={label}\n isDefaultExpanded={isDefaultExpanded}\n isExpanded={isExpanded}\n startIcon={startIcon}\n isDisabled={isDisabled}\n >\n <SideNavListContainer id={`${id}-list`}>\n {children}\n </SideNavListContainer>\n </NavAccordion>\n </SideNavListItemContainer>\n );\n } else {\n return (\n <SideNavItemContent\n key={item.id}\n scrollRef={getRefIfThisIsFirstNodeWithIsSelected(item.id)}\n {...item}\n />\n );\n }\n })}\n </SideNavListContainer>\n </Box>\n {footerItems && (\n <Box sx={sideNavFooterContainerStyles}>\n <SideNavFooterContainer odysseyDesignTokens={odysseyDesignTokens}>\n <SideNavFooterContent footerItems={footerItems} />\n </SideNavFooterContainer>\n </Box>\n )}\n </SideNavExpandContainer>\n </Box>\n );\n};\n\nconst MemoizedSideNav = memo(SideNav);\nMemoizedSideNav.displayName = \"SideNav\";\n\nexport { MemoizedSideNav as SideNav };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 { memo, useMemo } from "react";
|
|
14
|
+
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
15
|
+
import { Box } from "../../Box.js";
|
|
16
|
+
import { Link } from "../../Link.js";
|
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
+
const SideNavFooterContent = ({
|
|
20
|
+
footerItems
|
|
21
|
+
}) => {
|
|
22
|
+
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
23
|
+
const footerContent = useMemo(() => {
|
|
24
|
+
return footerItems?.map((item, index) => _jsxs(Box, {
|
|
25
|
+
sx: {
|
|
26
|
+
display: "flex"
|
|
27
|
+
},
|
|
28
|
+
children: [item.href ? _jsx(Link, {
|
|
29
|
+
href: item.href,
|
|
30
|
+
children: item.label
|
|
31
|
+
}, item.id) : _jsx(Box, {
|
|
32
|
+
component: "span",
|
|
33
|
+
children: item.label
|
|
34
|
+
}, item.id), index < footerItems.length - 1 && _jsx(Box, {
|
|
35
|
+
sx: {
|
|
36
|
+
marginLeft: odysseyDesignTokens.Spacing4,
|
|
37
|
+
marginRight: odysseyDesignTokens.Spacing4,
|
|
38
|
+
color: odysseyDesignTokens.HueNeutral300
|
|
39
|
+
},
|
|
40
|
+
children: "|"
|
|
41
|
+
}, `${item.id}-separator`)]
|
|
42
|
+
}, `${item.id}-wrapper`));
|
|
43
|
+
}, [footerItems, odysseyDesignTokens]);
|
|
44
|
+
return footerContent;
|
|
45
|
+
};
|
|
46
|
+
const MemoizedSideNavFooterContent = memo(SideNavFooterContent);
|
|
47
|
+
MemoizedSideNavFooterContent.displayName = "SideNavFooterContent";
|
|
48
|
+
export { MemoizedSideNavFooterContent as SideNavFooterContent };
|
|
49
|
+
//# sourceMappingURL=SideNavFooterContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavFooterContent.js","names":["memo","useMemo","useOdysseyDesignTokens","Box","Link","jsx","_jsx","jsxs","_jsxs","SideNavFooterContent","footerItems","odysseyDesignTokens","footerContent","map","item","index","sx","display","children","href","label","id","component","length","marginLeft","Spacing4","marginRight","color","HueNeutral300","MemoizedSideNavFooterContent","displayName"],"sources":["../../../src/labs/SideNav/SideNavFooterContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { memo, useMemo } from \"react\";\nimport { useOdysseyDesignTokens } from \"../../OdysseyDesignTokensContext\";\nimport type { SideNavFooterItem } from \"./types\";\nimport { Box } from \"../../Box\";\nimport { Link } from \"../../Link\";\n\nconst SideNavFooterContent = ({\n footerItems,\n}: {\n footerItems: SideNavFooterItem[];\n}) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const footerContent = useMemo(() => {\n return footerItems?.map((item, index) => (\n <Box\n key={`${item.id}-wrapper`}\n sx={{\n display: \"flex\",\n }}\n >\n {item.href ? (\n <Link key={item.id} href={item.href}>\n {item.label}\n </Link>\n ) : (\n <Box component=\"span\" key={item.id}>\n {item.label}\n </Box>\n )}\n {index < footerItems.length - 1 && (\n <Box\n key={`${item.id}-separator`}\n sx={{\n marginLeft: odysseyDesignTokens.Spacing4,\n marginRight: odysseyDesignTokens.Spacing4,\n color: odysseyDesignTokens.HueNeutral300,\n }}\n >\n |\n </Box>\n )}\n </Box>\n ));\n }, [footerItems, odysseyDesignTokens]);\n\n return footerContent;\n};\nconst MemoizedSideNavFooterContent = memo(SideNavFooterContent);\nMemoizedSideNavFooterContent.displayName = \"SideNavFooterContent\";\n\nexport { MemoizedSideNavFooterContent as SideNavFooterContent };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAAC,SAC7BC,sBAAsB;AAAA,SAEtBC,GAAG;AAAA,SACHC,IAAI;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAEb,MAAMC,oBAAoB,GAAGA,CAAC;EAC5BC;AAGF,CAAC,KAAK;EACJ,MAAMC,mBAAmB,GAAGT,sBAAsB,CAAC,CAAC;EAEpD,MAAMU,aAAa,GAAGX,OAAO,CAAC,MAAM;IAClC,OAAOS,WAAW,EAAEG,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAClCP,KAAA,CAACL,GAAG;MAEFa,EAAE,EAAE;QACFC,OAAO,EAAE;MACX,CAAE;MAAAC,QAAA,GAEDJ,IAAI,CAACK,IAAI,GACRb,IAAA,CAACF,IAAI;QAAee,IAAI,EAAEL,IAAI,CAACK,IAAK;QAAAD,QAAA,EACjCJ,IAAI,CAACM;MAAK,GADFN,IAAI,CAACO,EAEV,CAAC,GAEPf,IAAA,CAACH,GAAG;QAACmB,SAAS,EAAC,MAAM;QAAAJ,QAAA,EAClBJ,IAAI,CAACM;MAAK,GADcN,IAAI,CAACO,EAE3B,CACN,EACAN,KAAK,GAAGL,WAAW,CAACa,MAAM,GAAG,CAAC,IAC7BjB,IAAA,CAACH,GAAG;QAEFa,EAAE,EAAE;UACFQ,UAAU,EAAEb,mBAAmB,CAACc,QAAQ;UACxCC,WAAW,EAAEf,mBAAmB,CAACc,QAAQ;UACzCE,KAAK,EAAEhB,mBAAmB,CAACiB;QAC7B,CAAE;QAAAV,QAAA,EACH;MAED,GARQ,GAAEJ,IAAI,CAACO,EAAG,YAQb,CACN;IAAA,GAzBK,GAAEP,IAAI,CAACO,EAAG,UA0Bb,CACN,CAAC;EACJ,CAAC,EAAE,CAACX,WAAW,EAAEC,mBAAmB,CAAC,CAAC;EAEtC,OAAOC,aAAa;AACtB,CAAC;AACD,MAAMiB,4BAA4B,GAAG7B,IAAI,CAACS,oBAAoB,CAAC;AAC/DoB,4BAA4B,CAACC,WAAW,GAAG,sBAAsB;AAEjE,SAASD,4BAA4B,IAAIpB,oBAAoB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 styled from "@emotion/styled";
|
|
14
|
+
import { memo, useMemo } from "react";
|
|
15
|
+
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
16
|
+
import { Box } from "../../Box.js";
|
|
17
|
+
import { Heading6 } from "../../Typography.js";
|
|
18
|
+
import { CollapseIcon } from "./CollapseIcon.js";
|
|
19
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
20
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
+
const SideNavHeaderContainer = styled("div", {
|
|
22
|
+
shouldForwardProp: prop => prop !== "odysseyDesignTokens"
|
|
23
|
+
})(({
|
|
24
|
+
odysseyDesignTokens
|
|
25
|
+
}) => ({
|
|
26
|
+
display: "flex",
|
|
27
|
+
justifyContent: "space-between",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
paddingLeft: odysseyDesignTokens.Spacing4,
|
|
30
|
+
paddingRight: odysseyDesignTokens.Spacing4,
|
|
31
|
+
paddingTop: odysseyDesignTokens.Spacing3,
|
|
32
|
+
paddingBottom: odysseyDesignTokens.Spacing3
|
|
33
|
+
}));
|
|
34
|
+
const SideNavHeader = ({
|
|
35
|
+
navHeaderText,
|
|
36
|
+
isCollapsible,
|
|
37
|
+
onCollapse
|
|
38
|
+
}) => {
|
|
39
|
+
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
40
|
+
const sideNavHeaderStyles = useMemo(() => ({
|
|
41
|
+
marginTop: odysseyDesignTokens.Spacing2
|
|
42
|
+
}), [odysseyDesignTokens]);
|
|
43
|
+
return _jsxs(SideNavHeaderContainer, {
|
|
44
|
+
odysseyDesignTokens: odysseyDesignTokens,
|
|
45
|
+
children: [_jsx(Box, {
|
|
46
|
+
sx: sideNavHeaderStyles,
|
|
47
|
+
children: _jsx(Heading6, {
|
|
48
|
+
children: navHeaderText
|
|
49
|
+
})
|
|
50
|
+
}), isCollapsible && _jsx(CollapseIcon, {
|
|
51
|
+
onClick: onCollapse
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
const MemoizedSideNavHeader = memo(SideNavHeader);
|
|
56
|
+
MemoizedSideNavHeader.displayName = "SideNavHeader";
|
|
57
|
+
export { MemoizedSideNavHeader as SideNavHeader };
|
|
58
|
+
//# sourceMappingURL=SideNavHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavHeader.js","names":["styled","memo","useMemo","useOdysseyDesignTokens","Box","Heading6","CollapseIcon","jsx","_jsx","jsxs","_jsxs","SideNavHeaderContainer","shouldForwardProp","prop","odysseyDesignTokens","display","justifyContent","alignItems","paddingLeft","Spacing4","paddingRight","paddingTop","Spacing3","paddingBottom","SideNavHeader","navHeaderText","isCollapsible","onCollapse","sideNavHeaderStyles","marginTop","Spacing2","children","sx","onClick","MemoizedSideNavHeader","displayName"],"sources":["../../../src/labs/SideNav/SideNavHeader.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, ReactNode, useMemo } from \"react\";\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { Box } from \"../../Box\";\nimport { Heading6 } from \"../../Typography\";\nimport { CollapseIcon } from \"./CollapseIcon\";\nimport type { SideNavProps } from \"./types\";\n\nconst SideNavHeaderContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})(({ odysseyDesignTokens }: { odysseyDesignTokens: DesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingLeft: odysseyDesignTokens.Spacing4,\n paddingRight: odysseyDesignTokens.Spacing4,\n paddingTop: odysseyDesignTokens.Spacing3,\n paddingBottom: odysseyDesignTokens.Spacing3,\n}));\n\nconst SideNavHeader = ({\n navHeaderText,\n isCollapsible,\n onCollapse,\n}: Pick<\n SideNavProps,\n \"navHeaderText\" | \"isCollapsible\" | \"onCollapse\"\n>): ReactNode => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const sideNavHeaderStyles = useMemo(\n () => ({\n marginTop: odysseyDesignTokens.Spacing2,\n }),\n [odysseyDesignTokens],\n );\n\n return (\n <SideNavHeaderContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Box sx={sideNavHeaderStyles}>\n <Heading6>{navHeaderText}</Heading6>\n </Box>\n {isCollapsible && <CollapseIcon onClick={onCollapse} />}\n </SideNavHeaderContainer>\n );\n};\nconst MemoizedSideNavHeader = memo(SideNavHeader);\nMemoizedSideNavHeader.displayName = \"SideNavHeader\";\n\nexport { MemoizedSideNavHeader as SideNavHeader };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,EAAaC,OAAO,QAAQ,OAAO;AAAC,SAG/CC,sBAAsB;AAAA,SAEfC,GAAG;AAAA,SACHC,QAAQ;AAAA,SACRC,YAAY;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAGrB,MAAMC,sBAAsB,GAAGX,MAAM,CAAC,KAAK,EAAE;EAC3CY,iBAAiB,EAAGC,IAAI,IAAKA,IAAI,KAAK;AACxC,CAAC,CAAC,CAAC,CAAC;EAAEC;AAA2D,CAAC,MAAM;EACtEC,OAAO,EAAE,MAAM;EACfC,cAAc,EAAE,eAAe;EAC/BC,UAAU,EAAE,QAAQ;EACpBC,WAAW,EAAEJ,mBAAmB,CAACK,QAAQ;EACzCC,YAAY,EAAEN,mBAAmB,CAACK,QAAQ;EAC1CE,UAAU,EAAEP,mBAAmB,CAACQ,QAAQ;EACxCC,aAAa,EAAET,mBAAmB,CAACQ;AACrC,CAAC,CAAC,CAAC;AAEH,MAAME,aAAa,GAAGA,CAAC;EACrBC,aAAa;EACbC,aAAa;EACbC;AAIF,CAAC,KAAgB;EACf,MAAMb,mBAAmB,GAAGX,sBAAsB,CAAC,CAAC;EAEpD,MAAMyB,mBAAmB,GAAG1B,OAAO,CACjC,OAAO;IACL2B,SAAS,EAAEf,mBAAmB,CAACgB;EACjC,CAAC,CAAC,EACF,CAAChB,mBAAmB,CACtB,CAAC;EAED,OACEJ,KAAA,CAACC,sBAAsB;IAACG,mBAAmB,EAAEA,mBAAoB;IAAAiB,QAAA,GAC/DvB,IAAA,CAACJ,GAAG;MAAC4B,EAAE,EAAEJ,mBAAoB;MAAAG,QAAA,EAC3BvB,IAAA,CAACH,QAAQ;QAAA0B,QAAA,EAAEN;MAAa,CAAW;IAAC,CACjC,CAAC,EACLC,aAAa,IAAIlB,IAAA,CAACF,YAAY;MAAC2B,OAAO,EAAEN;IAAW,CAAE,CAAC;EAAA,CACjC,CAAC;AAE7B,CAAC;AACD,MAAMO,qBAAqB,GAAGjC,IAAI,CAACuB,aAAa,CAAC;AACjDU,qBAAqB,CAACC,WAAW,GAAG,eAAe;AAEnD,SAASD,qBAAqB,IAAIV,aAAa"}
|
|
@@ -0,0 +1,157 @@
|
|
|
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 styled from "@emotion/styled";
|
|
14
|
+
import { useRef, useImperativeHandle, useCallback, memo } from "react";
|
|
15
|
+
import { Link } from "../../Link.js";
|
|
16
|
+
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
17
|
+
import { SideNavItemLinkContent } from "./SideNavItemLinkContent.js";
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
export const SideNavListItemContainer = styled("li", {
|
|
20
|
+
shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isSelected" && prop !== "isDisabled"
|
|
21
|
+
})(({
|
|
22
|
+
odysseyDesignTokens,
|
|
23
|
+
isSelected,
|
|
24
|
+
isDisabled
|
|
25
|
+
}) => ({
|
|
26
|
+
display: "flex",
|
|
27
|
+
alignItems: "center",
|
|
28
|
+
cursor: isDisabled ? "default" : "pointer",
|
|
29
|
+
pointerEvents: isDisabled ? "none" : "auto",
|
|
30
|
+
backgroundColor: isSelected ? odysseyDesignTokens.HueNeutral50 : "unset",
|
|
31
|
+
margin: `${odysseyDesignTokens.Spacing1} 0`,
|
|
32
|
+
"&:last-child": {
|
|
33
|
+
marginBottom: odysseyDesignTokens.Spacing2
|
|
34
|
+
},
|
|
35
|
+
"& a": {
|
|
36
|
+
display: "flex",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
width: "100%",
|
|
39
|
+
minHeight: "48px",
|
|
40
|
+
padding: `${odysseyDesignTokens.Spacing3} ${odysseyDesignTokens.Spacing4}`,
|
|
41
|
+
color: `${odysseyDesignTokens.TypographyColorHeading} !important`,
|
|
42
|
+
pointerEvents: isDisabled ? "none" : "auto"
|
|
43
|
+
},
|
|
44
|
+
"& a:hover": {
|
|
45
|
+
textDecoration: "none",
|
|
46
|
+
cursor: isDisabled ? "default" : "pointer",
|
|
47
|
+
backgroundColor: !isDisabled ? odysseyDesignTokens.HueNeutral50 : "inherit"
|
|
48
|
+
},
|
|
49
|
+
"& a:focus-visible": {
|
|
50
|
+
outlineOffset: 0,
|
|
51
|
+
borderRadius: 0,
|
|
52
|
+
outlineWidth: odysseyDesignTokens.FocusOutlineWidthMain,
|
|
53
|
+
backgroundColor: !isDisabled ? odysseyDesignTokens.HueNeutral50 : "inherit"
|
|
54
|
+
}
|
|
55
|
+
}));
|
|
56
|
+
const scrollToNode = node => {
|
|
57
|
+
if (node) {
|
|
58
|
+
node?.scrollIntoView({
|
|
59
|
+
behavior: "instant",
|
|
60
|
+
block: "center",
|
|
61
|
+
inline: "nearest"
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const SideNavItemContent = ({
|
|
66
|
+
id,
|
|
67
|
+
label,
|
|
68
|
+
href,
|
|
69
|
+
target,
|
|
70
|
+
startIcon,
|
|
71
|
+
severity,
|
|
72
|
+
statusLabel,
|
|
73
|
+
endIcon,
|
|
74
|
+
onClick,
|
|
75
|
+
isSelected,
|
|
76
|
+
isDisabled,
|
|
77
|
+
scrollRef
|
|
78
|
+
}) => {
|
|
79
|
+
const localScrollRef = useRef(null);
|
|
80
|
+
useImperativeHandle(scrollRef, () => {
|
|
81
|
+
return {
|
|
82
|
+
scrollIntoView: () => {
|
|
83
|
+
scrollToNode(localScrollRef.current);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}, []);
|
|
87
|
+
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
88
|
+
const NavItemContentClickContainer = styled("div", {
|
|
89
|
+
shouldForwardProp: prop => prop !== "odysseyDesignTokens"
|
|
90
|
+
})(() => ({
|
|
91
|
+
display: "flex",
|
|
92
|
+
alignItems: "center",
|
|
93
|
+
width: "100%",
|
|
94
|
+
minHeight: "48px",
|
|
95
|
+
padding: `${odysseyDesignTokens.Spacing3} ${odysseyDesignTokens.Spacing4}`,
|
|
96
|
+
color: `${isDisabled ? odysseyDesignTokens.TypographyColorDisabled : odysseyDesignTokens.TypographyColorHeading} !important`,
|
|
97
|
+
"&:focus-visible": {
|
|
98
|
+
borderRadius: 0,
|
|
99
|
+
outlineColor: odysseyDesignTokens.FocusOutlineColorPrimary,
|
|
100
|
+
outlineStyle: odysseyDesignTokens.FocusOutlineStyle,
|
|
101
|
+
outlineWidth: odysseyDesignTokens.FocusOutlineWidthMain,
|
|
102
|
+
backgroundColor: odysseyDesignTokens.HueNeutral50,
|
|
103
|
+
textDecoration: "none"
|
|
104
|
+
}
|
|
105
|
+
}));
|
|
106
|
+
const sideNavItemContentKeyHandler = useCallback(event => {
|
|
107
|
+
if (event?.key === "Enter") {
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
onClick?.();
|
|
110
|
+
}
|
|
111
|
+
}, [onClick]);
|
|
112
|
+
return _jsx(SideNavListItemContainer, {
|
|
113
|
+
ref: localScrollRef,
|
|
114
|
+
id: id,
|
|
115
|
+
disabled: isDisabled,
|
|
116
|
+
"aria-disabled": isDisabled,
|
|
117
|
+
isDisabled: isDisabled,
|
|
118
|
+
isSelected: isSelected,
|
|
119
|
+
odysseyDesignTokens: odysseyDesignTokens,
|
|
120
|
+
children: isDisabled ? _jsx(NavItemContentClickContainer, {
|
|
121
|
+
children: _jsx(SideNavItemLinkContent, {
|
|
122
|
+
label: label,
|
|
123
|
+
startIcon: startIcon,
|
|
124
|
+
endIcon: endIcon,
|
|
125
|
+
statusLabel: statusLabel,
|
|
126
|
+
severity: severity
|
|
127
|
+
})
|
|
128
|
+
}) : !href ? _jsx(NavItemContentClickContainer, {
|
|
129
|
+
role: "button",
|
|
130
|
+
tabIndex: 0,
|
|
131
|
+
onClick: onClick,
|
|
132
|
+
onKeyDown: sideNavItemContentKeyHandler,
|
|
133
|
+
children: _jsx(SideNavItemLinkContent, {
|
|
134
|
+
label: label,
|
|
135
|
+
startIcon: startIcon,
|
|
136
|
+
endIcon: endIcon,
|
|
137
|
+
statusLabel: statusLabel,
|
|
138
|
+
severity: severity
|
|
139
|
+
})
|
|
140
|
+
}) : _jsx(Link, {
|
|
141
|
+
href: href,
|
|
142
|
+
target: target,
|
|
143
|
+
onClick: onClick,
|
|
144
|
+
children: _jsx(SideNavItemLinkContent, {
|
|
145
|
+
label: label,
|
|
146
|
+
startIcon: startIcon,
|
|
147
|
+
endIcon: endIcon,
|
|
148
|
+
statusLabel: statusLabel,
|
|
149
|
+
severity: severity
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
}, id);
|
|
153
|
+
};
|
|
154
|
+
const MemoizedSideNavItemContent = memo(SideNavItemContent);
|
|
155
|
+
MemoizedSideNavItemContent.displayName = "SideNavItemContent";
|
|
156
|
+
export { MemoizedSideNavItemContent as SideNavItemContent };
|
|
157
|
+
//# sourceMappingURL=SideNavItemContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavItemContent.js","names":["styled","useRef","useImperativeHandle","useCallback","memo","Link","useOdysseyDesignTokens","SideNavItemLinkContent","jsx","_jsx","SideNavListItemContainer","shouldForwardProp","prop","odysseyDesignTokens","isSelected","isDisabled","display","alignItems","cursor","pointerEvents","backgroundColor","HueNeutral50","margin","Spacing1","marginBottom","Spacing2","width","minHeight","padding","Spacing3","Spacing4","color","TypographyColorHeading","textDecoration","outlineOffset","borderRadius","outlineWidth","FocusOutlineWidthMain","scrollToNode","node","scrollIntoView","behavior","block","inline","SideNavItemContent","id","label","href","target","startIcon","severity","statusLabel","endIcon","onClick","scrollRef","localScrollRef","current","NavItemContentClickContainer","TypographyColorDisabled","outlineColor","FocusOutlineColorPrimary","outlineStyle","FocusOutlineStyle","sideNavItemContentKeyHandler","event","key","preventDefault","ref","disabled","children","role","tabIndex","onKeyDown","MemoizedSideNavItemContent","displayName"],"sources":["../../../src/labs/SideNav/SideNavItemContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport {\n useRef,\n useImperativeHandle,\n useCallback,\n memo,\n KeyboardEvent,\n} from \"react\";\nimport { Link } from \"../../Link\";\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { SideNavItemLinkContent } from \"./SideNavItemLinkContent\";\nimport type { SideNavItem } from \"./types\";\n\nexport const SideNavListItemContainer = styled(\"li\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" &&\n prop !== \"isSelected\" &&\n prop !== \"isDisabled\",\n})<{\n odysseyDesignTokens: DesignTokens;\n isSelected?: boolean;\n disabled?: boolean;\n isDisabled?: boolean;\n}>(({ odysseyDesignTokens, isSelected, isDisabled }) => ({\n display: \"flex\",\n alignItems: \"center\",\n cursor: isDisabled ? \"default\" : \"pointer\",\n pointerEvents: isDisabled ? \"none\" : \"auto\",\n backgroundColor: isSelected ? odysseyDesignTokens.HueNeutral50 : \"unset\",\n margin: `${odysseyDesignTokens.Spacing1} 0`,\n \"&:last-child\": {\n marginBottom: odysseyDesignTokens.Spacing2,\n },\n \"& a\": {\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n minHeight: \"48px\",\n padding: `${odysseyDesignTokens.Spacing3} ${odysseyDesignTokens.Spacing4}`,\n color: `${odysseyDesignTokens.TypographyColorHeading} !important`,\n pointerEvents: isDisabled ? \"none\" : \"auto\",\n },\n \"& a:hover\": {\n textDecoration: \"none\",\n cursor: isDisabled ? \"default\" : \"pointer\",\n backgroundColor: !isDisabled ? odysseyDesignTokens.HueNeutral50 : \"inherit\",\n },\n \"& a:focus-visible\": {\n outlineOffset: 0,\n borderRadius: 0,\n outlineWidth: odysseyDesignTokens.FocusOutlineWidthMain,\n backgroundColor: !isDisabled ? odysseyDesignTokens.HueNeutral50 : \"inherit\",\n },\n}));\n\nconst scrollToNode = (node: HTMLElement | null) => {\n if (node) {\n node?.scrollIntoView({\n behavior: \"instant\",\n block: \"center\",\n inline: \"nearest\",\n });\n }\n};\n\ntype ScrollIntoViewHandle = {\n scrollIntoView: () => void;\n};\n\nconst SideNavItemContent = ({\n id,\n label,\n href,\n target,\n startIcon,\n severity,\n statusLabel,\n endIcon,\n onClick,\n isSelected,\n isDisabled,\n scrollRef,\n}: Pick<\n SideNavItem,\n | \"id\"\n | \"label\"\n | \"href\"\n | \"target\"\n | \"startIcon\"\n | \"severity\"\n | \"statusLabel\"\n | \"endIcon\"\n | \"onClick\"\n | \"isSelected\"\n | \"isDisabled\"\n> & {\n /**\n * The ref used to scroll to this item\n */\n scrollRef?: React.RefObject<ScrollIntoViewHandle>;\n}) => {\n const localScrollRef = useRef<HTMLLIElement>(null);\n useImperativeHandle(\n scrollRef,\n () => {\n return {\n scrollIntoView: () => {\n scrollToNode(localScrollRef.current);\n },\n };\n },\n [],\n );\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const NavItemContentClickContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n })(() => ({\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n minHeight: \"48px\",\n padding: `${odysseyDesignTokens.Spacing3} ${odysseyDesignTokens.Spacing4}`,\n color: `${isDisabled ? odysseyDesignTokens.TypographyColorDisabled : odysseyDesignTokens.TypographyColorHeading} !important`,\n \"&:focus-visible\": {\n borderRadius: 0,\n outlineColor: odysseyDesignTokens.FocusOutlineColorPrimary,\n outlineStyle: odysseyDesignTokens.FocusOutlineStyle,\n outlineWidth: odysseyDesignTokens.FocusOutlineWidthMain,\n backgroundColor: odysseyDesignTokens.HueNeutral50,\n textDecoration: \"none\",\n },\n }));\n\n const sideNavItemContentKeyHandler = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event?.key === \"Enter\") {\n event.preventDefault();\n onClick?.();\n }\n },\n [onClick],\n );\n\n return (\n <SideNavListItemContainer\n ref={localScrollRef}\n id={id}\n key={id}\n disabled={isDisabled}\n aria-disabled={isDisabled}\n isDisabled={isDisabled}\n isSelected={isSelected}\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {\n // Use Link for nav items with links and div for disabled or non-link items\n isDisabled ? (\n <NavItemContentClickContainer>\n <SideNavItemLinkContent\n label={label}\n startIcon={startIcon}\n endIcon={endIcon}\n statusLabel={statusLabel}\n severity={severity}\n />\n </NavItemContentClickContainer>\n ) : !href ? (\n <NavItemContentClickContainer\n role=\"button\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={sideNavItemContentKeyHandler}\n >\n <SideNavItemLinkContent\n label={label}\n startIcon={startIcon}\n endIcon={endIcon}\n statusLabel={statusLabel}\n severity={severity}\n />\n </NavItemContentClickContainer>\n ) : (\n <Link href={href} target={target} onClick={onClick}>\n <SideNavItemLinkContent\n label={label}\n startIcon={startIcon}\n endIcon={endIcon}\n statusLabel={statusLabel}\n severity={severity}\n />\n </Link>\n )\n }\n </SideNavListItemContainer>\n );\n};\nconst MemoizedSideNavItemContent = memo(SideNavItemContent);\nMemoizedSideNavItemContent.displayName = \"SideNavItemContent\";\n\nexport { MemoizedSideNavItemContent as SideNavItemContent };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
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 styled from "@emotion/styled";
|
|
14
|
+
import { memo, useMemo } from "react";
|
|
15
|
+
import { useOdysseyDesignTokens } from "../../OdysseyDesignTokensContext.js";
|
|
16
|
+
import { Box } from "../../Box.js";
|
|
17
|
+
import { Status } from "../../Status.js";
|
|
18
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
21
|
+
const SideNavItemLabelContainer = styled("div", {
|
|
22
|
+
shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isIconVisible"
|
|
23
|
+
})(({
|
|
24
|
+
odysseyDesignTokens,
|
|
25
|
+
isIconVisible
|
|
26
|
+
}) => ({
|
|
27
|
+
width: "100%",
|
|
28
|
+
display: "flex",
|
|
29
|
+
flexWrap: "wrap",
|
|
30
|
+
alignItems: "center",
|
|
31
|
+
fontSize: odysseyDesignTokens.TypographyScale0,
|
|
32
|
+
fontWeight: odysseyDesignTokens.TypographyWeightHeading,
|
|
33
|
+
marginLeft: isIconVisible ? odysseyDesignTokens.Spacing2 : 0,
|
|
34
|
+
"& a": {
|
|
35
|
+
color: `${odysseyDesignTokens.TypographyColorHeading} !important`,
|
|
36
|
+
fontSize: odysseyDesignTokens.TypographyScale0
|
|
37
|
+
},
|
|
38
|
+
"& a:hover": {
|
|
39
|
+
textDecoration: "none",
|
|
40
|
+
cursor: "pointer"
|
|
41
|
+
}
|
|
42
|
+
}));
|
|
43
|
+
const SideNavItemLinkContent = ({
|
|
44
|
+
label,
|
|
45
|
+
startIcon,
|
|
46
|
+
endIcon,
|
|
47
|
+
severity,
|
|
48
|
+
statusLabel
|
|
49
|
+
}) => {
|
|
50
|
+
const odysseyDesignTokens = useOdysseyDesignTokens();
|
|
51
|
+
const sideNavItemContentStyles = useMemo(() => ({
|
|
52
|
+
marginLeft: odysseyDesignTokens.Spacing2
|
|
53
|
+
}), [odysseyDesignTokens]);
|
|
54
|
+
return _jsxs(_Fragment, {
|
|
55
|
+
children: [startIcon && startIcon, _jsxs(SideNavItemLabelContainer, {
|
|
56
|
+
odysseyDesignTokens: odysseyDesignTokens,
|
|
57
|
+
isIconVisible: Boolean(startIcon),
|
|
58
|
+
children: [label, severity && _jsx(Box, {
|
|
59
|
+
sx: sideNavItemContentStyles,
|
|
60
|
+
children: _jsx(Status, {
|
|
61
|
+
severity: severity,
|
|
62
|
+
label: statusLabel || ""
|
|
63
|
+
})
|
|
64
|
+
})]
|
|
65
|
+
}), endIcon && endIcon]
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
const MemoizedSideNavItemLinkContent = memo(SideNavItemLinkContent);
|
|
69
|
+
MemoizedSideNavItemLinkContent.displayName = "SideNavItemLinkContent";
|
|
70
|
+
export { MemoizedSideNavItemLinkContent as SideNavItemLinkContent };
|
|
71
|
+
//# sourceMappingURL=SideNavItemLinkContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideNavItemLinkContent.js","names":["styled","memo","useMemo","useOdysseyDesignTokens","Box","Status","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SideNavItemLabelContainer","shouldForwardProp","prop","odysseyDesignTokens","isIconVisible","width","display","flexWrap","alignItems","fontSize","TypographyScale0","fontWeight","TypographyWeightHeading","marginLeft","Spacing2","color","TypographyColorHeading","textDecoration","cursor","SideNavItemLinkContent","label","startIcon","endIcon","severity","statusLabel","sideNavItemContentStyles","children","Boolean","sx","MemoizedSideNavItemLinkContent","displayName"],"sources":["../../../src/labs/SideNav/SideNavItemLinkContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport styled from \"@emotion/styled\";\nimport { memo, ReactNode, useMemo } from \"react\";\nimport {\n type DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext\";\nimport { Box } from \"../../Box\";\nimport { Status } from \"../../Status\";\nimport type { SideNavItem } from \"./types\";\n\nconst SideNavItemLabelContainer = styled(\"div\", {\n shouldForwardProp: (prop) =>\n prop !== \"odysseyDesignTokens\" && prop !== \"isIconVisible\",\n})<{\n odysseyDesignTokens: DesignTokens;\n isIconVisible: boolean;\n}>(({ odysseyDesignTokens, isIconVisible }) => ({\n width: \"100%\",\n display: \"flex\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n fontSize: odysseyDesignTokens.TypographyScale0,\n fontWeight: odysseyDesignTokens.TypographyWeightHeading,\n marginLeft: isIconVisible ? odysseyDesignTokens.Spacing2 : 0,\n \"& a\": {\n color: `${odysseyDesignTokens.TypographyColorHeading} !important`,\n fontSize: odysseyDesignTokens.TypographyScale0,\n },\n \"& a:hover\": {\n textDecoration: \"none\",\n cursor: \"pointer\",\n },\n}));\n\nconst SideNavItemLinkContent = ({\n label,\n startIcon,\n endIcon,\n severity,\n statusLabel,\n}: Pick<\n SideNavItem,\n \"label\" | \"startIcon\" | \"endIcon\" | \"severity\" | \"statusLabel\"\n>): ReactNode => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const sideNavItemContentStyles = useMemo(\n () => ({\n marginLeft: odysseyDesignTokens.Spacing2,\n }),\n [odysseyDesignTokens],\n );\n\n return (\n <>\n {startIcon && startIcon}\n <SideNavItemLabelContainer\n odysseyDesignTokens={odysseyDesignTokens}\n isIconVisible={Boolean(startIcon)}\n >\n {label}\n {severity && (\n <Box sx={sideNavItemContentStyles}>\n <Status severity={severity} label={statusLabel || \"\"} />\n </Box>\n )}\n </SideNavItemLabelContainer>\n {endIcon && endIcon}\n </>\n );\n};\nconst MemoizedSideNavItemLinkContent = memo(SideNavItemLinkContent);\nMemoizedSideNavItemLinkContent.displayName = \"SideNavItemLinkContent\";\n\nexport { MemoizedSideNavItemLinkContent as SideNavItemLinkContent };\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,MAAM,MAAM,iBAAiB;AACpC,SAASC,IAAI,EAAaC,OAAO,QAAQ,OAAO;AAAC,SAG/CC,sBAAsB;AAAA,SAEfC,GAAG;AAAA,SACHC,MAAM;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAGf,MAAMC,yBAAyB,GAAGZ,MAAM,CAAC,KAAK,EAAE;EAC9Ca,iBAAiB,EAAGC,IAAI,IACtBA,IAAI,KAAK,qBAAqB,IAAIA,IAAI,KAAK;AAC/C,CAAC,CAAC,CAGC,CAAC;EAAEC,mBAAmB;EAAEC;AAAc,CAAC,MAAM;EAC9CC,KAAK,EAAE,MAAM;EACbC,OAAO,EAAE,MAAM;EACfC,QAAQ,EAAE,MAAM;EAChBC,UAAU,EAAE,QAAQ;EACpBC,QAAQ,EAAEN,mBAAmB,CAACO,gBAAgB;EAC9CC,UAAU,EAAER,mBAAmB,CAACS,uBAAuB;EACvDC,UAAU,EAAET,aAAa,GAAGD,mBAAmB,CAACW,QAAQ,GAAG,CAAC;EAC5D,KAAK,EAAE;IACLC,KAAK,EAAG,GAAEZ,mBAAmB,CAACa,sBAAuB,aAAY;IACjEP,QAAQ,EAAEN,mBAAmB,CAACO;EAChC,CAAC;EACD,WAAW,EAAE;IACXO,cAAc,EAAE,MAAM;IACtBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC,CAAC;AAEH,MAAMC,sBAAsB,GAAGA,CAAC;EAC9BC,KAAK;EACLC,SAAS;EACTC,OAAO;EACPC,QAAQ;EACRC;AAIF,CAAC,KAAgB;EACf,MAAMrB,mBAAmB,GAAGZ,sBAAsB,CAAC,CAAC;EAEpD,MAAMkC,wBAAwB,GAAGnC,OAAO,CACtC,OAAO;IACLuB,UAAU,EAAEV,mBAAmB,CAACW;EAClC,CAAC,CAAC,EACF,CAACX,mBAAmB,CACtB,CAAC;EAED,OACEN,KAAA,CAAAE,SAAA;IAAA2B,QAAA,GACGL,SAAS,IAAIA,SAAS,EACvBxB,KAAA,CAACG,yBAAyB;MACxBG,mBAAmB,EAAEA,mBAAoB;MACzCC,aAAa,EAAEuB,OAAO,CAACN,SAAS,CAAE;MAAAK,QAAA,GAEjCN,KAAK,EACLG,QAAQ,IACP5B,IAAA,CAACH,GAAG;QAACoC,EAAE,EAAEH,wBAAyB;QAAAC,QAAA,EAChC/B,IAAA,CAACF,MAAM;UAAC8B,QAAQ,EAAEA,QAAS;UAACH,KAAK,EAAEI,WAAW,IAAI;QAAG,CAAE;MAAC,CACrD,CACN;IAAA,CACwB,CAAC,EAC3BF,OAAO,IAAIA,OAAO;EAAA,CACnB,CAAC;AAEP,CAAC;AACD,MAAMO,8BAA8B,GAAGxC,IAAI,CAAC8B,sBAAsB,CAAC;AACnEU,8BAA8B,CAACC,WAAW,GAAG,wBAAwB;AAErE,SAASD,8BAA8B,IAAIV,sBAAsB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
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
|
+
export { SideNav } from "./SideNav.js";
|
|
13
|
+
export * from "./types.js";
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["SideNav"],"sources":["../../../src/labs/SideNav/index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport { SideNav } from \"./SideNav\";\n\nexport * from \"./types\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,SAYSA,OAAO;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/labs/SideNav/types.ts"],"sourcesContent":["/*!\n * Copyright (c) 2024-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport type { ReactElement } from \"react\";\nimport type { HtmlProps } from \"../../HtmlProps\";\nimport type { statusSeverityValues } from \"../../Status\";\n\nexport type SideNavProps = {\n /**\n * Side Nav header text that is usually reserved to show the App name\n */\n navHeaderText: string;\n /**\n * Determines whether the side nav is collapsible\n */\n isCollapsible?: boolean;\n /**\n * Footer items in the side nav\n */\n footerItems?: SideNavFooterItem[];\n /**\n * Triggers when the side nav is collapsed\n */\n onCollapse?(): void;\n /**\n * Triggers when the side nav is expanded\n */\n onExpand?(): void;\n /**\n * Nav items in the side nav\n */\n sideNavItems: SideNavItem[];\n} & Pick<HtmlProps, \"testId\">;\n\nexport type SideNavItem = {\n id: string;\n label: string;\n /**\n * The icon element to display at the end of the Nav Item\n */\n endIcon?: ReactElement;\n /**\n * Whether the item is disabled. When set to true the nav item is set to Disabled color,\n * the link/item is not clickable, and item with children is not expandable.\n */\n isDisabled?: boolean;\n /**\n * Whether the item is active/selected\n */\n isSelected?: boolean;\n /**\n * Event fired when the nav item is clicked\n */\n onClick?(): void;\n /**\n * The status element to display after the label\n */\n severity?: (typeof statusSeverityValues)[number];\n /**\n * The icon element to display at the start of the Nav Item\n */\n startIcon?: ReactElement;\n /**\n * The label to display inside the status\n */\n statusLabel?: string;\n /**\n * The link target prop. e.g., \"_blank\"\n */\n target?: string;\n} & (\n | {\n /**\n * Determines if the side nav item is a section header\n */\n isSectionHeader: true;\n href?: never;\n children?: never;\n isDefaultExpanded?: never;\n isExpanded?: never;\n }\n | {\n /**\n * link added to the nav item. if it is undefined, static text will be displayed.\n * fires onClick event when it is passed\n */\n href: string;\n children?: never;\n isSectionHeader?: never;\n isDefaultExpanded?: never;\n isExpanded?: never;\n }\n | {\n /**\n * An array of side nav items to be displayed as children within Accordion\n */\n children?: SideNavItem[];\n /**\n * Whether the accordion (nav item with children) is expanded by default\n */\n isDefaultExpanded?: boolean;\n /**\n * If true, expands the accordion, otherwise collapse it.\n * Setting this prop enables control over the accordion.\n */\n isExpanded?: boolean;\n isSectionHeader?: never;\n href?: never;\n }\n);\n\nexport type SideNavFooterItem = {\n href?: string;\n id: string;\n label: string;\n};\n"],"mappings":""}
|