@okta/odyssey-react-mui 1.35.2 → 1.35.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.
Files changed (80) hide show
  1. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs +2 -2
  2. package/dist/cjs/DatePickers/useOdysseyDateFields.cjs.map +1 -1
  3. package/dist/cjs/Field.cjs +1 -1
  4. package/dist/cjs/Field.cjs.map +1 -1
  5. package/dist/cjs/Pagination/Pagination.cjs +0 -6
  6. package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
  7. package/dist/cjs/inputUtils.cjs +1 -1
  8. package/dist/cjs/inputUtils.cjs.map +1 -1
  9. package/dist/cjs/labs/DataFilters.cjs +4 -4
  10. package/dist/cjs/labs/DataFilters.cjs.map +1 -1
  11. package/dist/cjs/labs/DataView/DataCard.cjs +18 -18
  12. package/dist/cjs/labs/DataView/DataCard.cjs.map +1 -1
  13. package/dist/cjs/labs/DataView/DataView.cjs +10 -10
  14. package/dist/cjs/labs/DataView/DataView.cjs.map +1 -1
  15. package/dist/cjs/labs/DataView/useFilterConversion.cjs +1 -1
  16. package/dist/cjs/labs/DataView/useFilterConversion.cjs.map +1 -1
  17. package/dist/cjs/theme/useMediaQuery.cjs +1 -1
  18. package/dist/cjs/theme/useMediaQuery.cjs.map +1 -1
  19. package/dist/cjs/ui-shell/SideNav/SideNav.cjs +79 -48
  20. package/dist/cjs/ui-shell/SideNav/SideNav.cjs.map +1 -1
  21. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs +84 -112
  22. package/dist/cjs/ui-shell/SideNav/SideNavToggleButton.cjs.map +1 -1
  23. package/dist/cjs/ui-shell/WideUiShellContent.cjs +2 -1
  24. package/dist/cjs/ui-shell/WideUiShellContent.cjs.map +1 -1
  25. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs +1 -1
  26. package/dist/cjs/ui-shell/useMatchAppElementToUiShellAppArea.cjs.map +1 -1
  27. package/dist/cjs/ui-shell/useScrollState.cjs +71 -21
  28. package/dist/cjs/ui-shell/useScrollState.cjs.map +1 -1
  29. package/dist/cjs/web-component/createReactRootElements.cjs +5 -3
  30. package/dist/cjs/web-component/createReactRootElements.cjs.map +1 -1
  31. package/dist/esm/DatePickers/useOdysseyDateFields.js +2 -2
  32. package/dist/esm/DatePickers/useOdysseyDateFields.js.map +1 -1
  33. package/dist/esm/Field.js +1 -1
  34. package/dist/esm/Field.js.map +1 -1
  35. package/dist/esm/Pagination/Pagination.js +0 -6
  36. package/dist/esm/Pagination/Pagination.js.map +1 -1
  37. package/dist/esm/inputUtils.js +1 -1
  38. package/dist/esm/inputUtils.js.map +1 -1
  39. package/dist/esm/labs/DataFilters.js +4 -4
  40. package/dist/esm/labs/DataFilters.js.map +1 -1
  41. package/dist/esm/labs/DataView/DataCard.js +18 -18
  42. package/dist/esm/labs/DataView/DataCard.js.map +1 -1
  43. package/dist/esm/labs/DataView/DataView.js +10 -10
  44. package/dist/esm/labs/DataView/DataView.js.map +1 -1
  45. package/dist/esm/labs/DataView/useFilterConversion.js +1 -1
  46. package/dist/esm/labs/DataView/useFilterConversion.js.map +1 -1
  47. package/dist/esm/theme/useMediaQuery.js +1 -1
  48. package/dist/esm/theme/useMediaQuery.js.map +1 -1
  49. package/dist/esm/ui-shell/SideNav/SideNav.js +80 -49
  50. package/dist/esm/ui-shell/SideNav/SideNav.js.map +1 -1
  51. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js +85 -113
  52. package/dist/esm/ui-shell/SideNav/SideNavToggleButton.js.map +1 -1
  53. package/dist/esm/ui-shell/WideUiShellContent.js +2 -1
  54. package/dist/esm/ui-shell/WideUiShellContent.js.map +1 -1
  55. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js +1 -1
  56. package/dist/esm/ui-shell/useMatchAppElementToUiShellAppArea.js.map +1 -1
  57. package/dist/esm/ui-shell/useScrollState.js +67 -21
  58. package/dist/esm/ui-shell/useScrollState.js.map +1 -1
  59. package/dist/esm/web-component/createReactRootElements.js +4 -2
  60. package/dist/esm/web-component/createReactRootElements.js.map +1 -1
  61. package/dist/index.cjs +1 -1
  62. package/dist/index.mjs +1 -1
  63. package/dist/index.scss +1 -1
  64. package/dist/tsconfig.production.tsbuildinfo +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/dist/types/DatePickers/useOdysseyDateFields.d.ts.map +1 -1
  67. package/dist/types/Pagination/Pagination.d.ts.map +1 -1
  68. package/dist/types/labs/DataView/DataCard.d.ts.map +1 -1
  69. package/dist/types/labs/DataView/DataView.d.ts.map +1 -1
  70. package/dist/types/ui-shell/SideNav/SideNav.d.ts +2 -0
  71. package/dist/types/ui-shell/SideNav/SideNav.d.ts.map +1 -1
  72. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts +15 -8
  73. package/dist/types/ui-shell/SideNav/SideNavToggleButton.d.ts.map +1 -1
  74. package/dist/types/ui-shell/WideUiShellContent.d.ts.map +1 -1
  75. package/dist/types/ui-shell/useMatchAppElementToUiShellAppArea.d.ts.map +1 -1
  76. package/dist/types/ui-shell/useScrollState.d.ts +9 -1
  77. package/dist/types/ui-shell/useScrollState.d.ts.map +1 -1
  78. package/dist/types/web-component/createReactRootElements.d.ts +2 -0
  79. package/dist/types/web-component/createReactRootElements.d.ts.map +1 -1
  80. package/package.json +13 -10
@@ -1 +1 @@
1
- {"version":3,"file":"DataView.cjs","names":["_react","require","_reactI18next","_constants","_Box","_BulkActionsMenu","_Callout","_DataFilters","_EmptyState","_fetchData","_LayoutSwitcher","_index","_index2","_TableSettings","_index3","_TableLayoutContent","_CardLayoutContent","_useFilterConversion","_useRowReordering","_Typography","_OdysseyDesignTokensContext","_styled","_interopRequireDefault","_jsxRuntime","e","__esModule","default","DataViewContainer","styled","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","BulkActionsContainer","justifyContent","AdditionalActionsContainer","Spacing2","AdditionalActionsInner","alignItems","MetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","availableLayouts","allAvailableLayouts","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","useOdysseyDesignTokens","t","useTranslation","currentLayout","setCurrentLayout","useState","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","useEffect","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","densityValues","shouldShowFilters","availableFilters","useFilterConversion","columns","dataQueryParams","useMemo","page","sort","useCallback","originalRow","id","prev","fetchData","undefined","length","prevValue","emptyState","noResultsInnerContent","jsx","EmptyState","description","heading","additionalActions","jsxs","children","Typography","color","TableSettings","LayoutSwitcher","MenuButton","endIcon","MoreIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","usePagination","currentRowsCount","rowReorderingUtilities","useRowReordering","Box","Callout","severity","text","DataFilters","isDisabled","onChangeFilters","onChangeSearch","BulkActionsMenu","menuItems","TableLayoutContent","CardLayoutContent","Pagination","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","exports","memo","displayName"],"sources":["../../../../src/labs/DataView/DataView.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, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst DataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst BulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst AdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst AdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst MetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<DataViewProps<TData>>[\"getRowId\"]>(\n (originalRow) => originalRow.id as string,\n [],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <AdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <MetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </MetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </AdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <DataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <BulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </BulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <AdditionalActionsContainer odysseyDesignTokens={odysseyDesignTokens}>\n {additionalActions}\n </AdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </DataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataView.cjs","names":["_react","require","_reactI18next","_constants","_Box","_BulkActionsMenu","_Callout","_DataFilters","_EmptyState","_fetchData","_LayoutSwitcher","_index","_index2","_TableSettings","_index3","_TableLayoutContent","_CardLayoutContent","_useFilterConversion","_useRowReordering","_Typography","_OdysseyDesignTokensContext","_styled","_interopRequireDefault","_jsxRuntime","e","__esModule","default","StyledDataViewContainer","styled","shouldForwardProp","prop","odysseyDesignTokens","display","flexDirection","gap","Spacing4","StyledBulkActionsContainer","justifyContent","StyledAdditionalActionsContainer","Spacing2","StyledAdditionalActionsInner","alignItems","StyledMetaTextContainer","marginInlineEnd","DataView","additionalActionButton","additionalActionMenuItems","availableLayouts","allAvailableLayouts","bulkActionMenuItems","currentPage","emptyPlaceholder","enableVirtualization","enableVirtualizationProp","errorMessage","errorMessageProp","filters","filtersProp","getData","getRowId","getRowIdProp","hasFilters","hasPagination","hasPageInput","hasRowCountInput","hasRowCountLabel","hasSearch","hasSearchSubmitButton","hasRowReordering","hasRowSelection","initialLayout","isEmpty","isEmptyProp","isLoading","isLoadingProp","isNoResults","isNoResultsProp","isPaginationMoreDisabled","isRowReorderingDisabled","metaText","noResultsPlaceholder","onChangeRowSelection","onReorderRows","paginationType","resultsPerPage","searchDelayTime","cardLayoutOptions","tableLayoutOptions","totalRows","maxPages","maxResultsPerPage","onPaginationChange","useOdysseyDesignTokens","t","useTranslation","currentLayout","setCurrentLayout","useState","data","setData","setIsLoading","setIsEmpty","setIsNoResults","setErrorMessage","search","setSearch","initialFilters","setInitialFilters","setFilters","draggingRow","setDraggingRow","rowSelection","setRowSelection","useEffect","pagination","setPagination","pageIndex","pageSize","tableState","setTableState","columnSorting","columnVisibility","rowDensity","initialDensity","densityValues","shouldShowFilters","availableFilters","useFilterConversion","columns","dataQueryParams","useMemo","page","sort","useCallback","originalRow","id","prev","fetchData","undefined","length","prevValue","emptyState","noResultsInnerContent","jsx","EmptyState","description","heading","additionalActions","jsxs","children","Typography","color","TableSettings","LayoutSwitcher","MenuButton","endIcon","MoreIcon","ariaLabel","buttonVariant","menuAlignment","lastRow","lastRowOnPage","usePagination","currentRowsCount","rowReorderingUtilities","useRowReordering","Box","Callout","severity","text","DataFilters","isDisabled","onChangeFilters","onChangeSearch","BulkActionsMenu","menuItems","TableLayoutContent","CardLayoutContent","Pagination","currentPageLabel","isMoreDisabled","loadMoreLabel","maxPageIndex","maxPageSize","nextLabel","previousLabel","rowsPerPageLabel","variant","MemoizedDataView","exports","memo","displayName"],"sources":["../../../../src/labs/DataView/DataView.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, useCallback, useEffect, useMemo, useState } from \"react\";\nimport {\n MRT_Row,\n MRT_RowData,\n MRT_RowSelectionState,\n} from \"material-react-table\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n availableLayouts as allAvailableLayouts,\n densityValues,\n} from \"./constants.js\";\nimport {\n DataLayout,\n UniversalProps,\n ViewProps,\n TableState,\n} from \"./componentTypes.js\";\nimport { Box } from \"../../Box.js\";\nimport { BulkActionsMenu } from \"./BulkActionsMenu.js\";\nimport { Callout } from \"../../Callout.js\";\nimport { DataFilters } from \"../DataFilters.js\";\nimport { EmptyState } from \"../../EmptyState.js\";\nimport { fetchData } from \"./fetchData.js\";\nimport { LayoutSwitcher } from \"./LayoutSwitcher.js\";\nimport { MenuButton } from \"../../Buttons/index.js\";\nimport { MoreIcon } from \"../../icons.generated/index.js\";\nimport { TableSettings } from \"./TableSettings.js\";\nimport { Pagination, usePagination } from \"../../Pagination/index.js\";\nimport { TableLayoutContent } from \"./TableLayoutContent.js\";\nimport { CardLayoutContent } from \"./CardLayoutContent.js\";\nimport { useFilterConversion } from \"./useFilterConversion.js\";\nimport { useRowReordering } from \"../../DataTable/useRowReordering.js\";\nimport { Typography } from \"../../Typography.js\";\nimport {\n DesignTokens,\n useOdysseyDesignTokens,\n} from \"../../OdysseyDesignTokensContext.js\";\nimport styled from \"@emotion/styled\";\n\nexport type DataViewProps<TData extends MRT_RowData> = UniversalProps<TData> &\n ViewProps<TData, DataLayout>;\ntype DataViewComponent = (<TData extends MRT_RowData>(\n props: DataViewProps<TData>,\n) => JSX.Element) & {\n displayName?: string;\n};\n\nconst StyledDataViewContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n flexDirection: \"column\",\n gap: odysseyDesignTokens.Spacing4,\n}));\n\nconst StyledBulkActionsContainer = styled(\"div\")(() => ({\n display: \"flex\",\n justifyContent: \"space-between\",\n}));\n\nconst StyledAdditionalActionsContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n justifyContent: \"flex-end\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledAdditionalActionsInner = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n display: \"flex\",\n alignItems: \"center\",\n gap: odysseyDesignTokens.Spacing2,\n}));\n\nconst StyledMetaTextContainer = styled(\"div\", {\n shouldForwardProp: (prop) => prop !== \"odysseyDesignTokens\",\n})<{ odysseyDesignTokens: DesignTokens }>(({ odysseyDesignTokens }) => ({\n marginInlineEnd: odysseyDesignTokens.Spacing2,\n}));\n\nconst DataView = <TData extends MRT_RowData>({\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts = allAvailableLayouts,\n bulkActionMenuItems,\n currentPage = 1,\n emptyPlaceholder,\n enableVirtualization: enableVirtualizationProp,\n errorMessage: errorMessageProp,\n filters: filtersProp,\n getData,\n getRowId: getRowIdProp,\n hasFilters,\n hasPagination,\n hasPageInput,\n hasRowCountInput,\n hasRowCountLabel,\n hasSearch,\n hasSearchSubmitButton,\n hasRowReordering,\n hasRowSelection,\n initialLayout,\n isEmpty: isEmptyProp,\n isLoading: isLoadingProp,\n isNoResults: isNoResultsProp,\n isPaginationMoreDisabled,\n isRowReorderingDisabled,\n metaText,\n noResultsPlaceholder,\n onChangeRowSelection,\n onReorderRows,\n paginationType = \"paged\",\n resultsPerPage = 20,\n searchDelayTime,\n cardLayoutOptions,\n tableLayoutOptions,\n totalRows,\n maxPages,\n maxResultsPerPage,\n onPaginationChange,\n}: DataViewProps<TData>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n const { t } = useTranslation();\n\n const [currentLayout, setCurrentLayout] = useState<DataLayout>(\n initialLayout ?? availableLayouts[0],\n );\n\n const [data, setData] = useState<TData[]>([]);\n const [isLoading, setIsLoading] = useState<boolean>(isLoadingProp ?? true);\n const [isEmpty, setIsEmpty] = useState<boolean>(isEmptyProp ?? true);\n const [isNoResults, setIsNoResults] = useState<boolean>(\n isNoResultsProp ?? false,\n );\n const [errorMessage, setErrorMessage] =\n useState<UniversalProps<TData>[\"errorMessage\"]>(errorMessageProp);\n\n const [search, setSearch] = useState<string>(\"\");\n\n const [initialFilters, setInitialFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n const [filters, setFilters] =\n useState<UniversalProps<TData>[\"filters\"]>(filtersProp);\n\n const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n\n const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n\n useEffect(() => {\n onChangeRowSelection?.(rowSelection);\n }, [rowSelection, onChangeRowSelection]);\n\n const [pagination, setPagination] = useState({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n\n const [tableState, setTableState] = useState<TableState>({\n columnSorting: [],\n columnVisibility: {},\n rowDensity: tableLayoutOptions?.initialDensity ?? densityValues[0],\n });\n\n const shouldShowFilters =\n hasSearch ||\n hasFilters ||\n additionalActionButton ||\n additionalActionMenuItems;\n\n const availableFilters = useFilterConversion({\n filters: filters,\n columns: tableLayoutOptions?.columns,\n });\n\n useEffect(() => {\n if (!initialFilters && availableFilters) {\n setInitialFilters(availableFilters);\n }\n }, [availableFilters, initialFilters]);\n\n const dataQueryParams = useMemo(\n () => ({\n page: pagination.pageIndex,\n resultsPerPage: pagination.pageSize,\n search,\n filters: availableFilters,\n sort: tableState?.columnSorting,\n }),\n [\n pagination.pageIndex,\n pagination.pageSize,\n search,\n availableFilters,\n tableState?.columnSorting,\n ],\n );\n\n const getRowId = useCallback<Required<DataViewProps<TData>>[\"getRowId\"]>(\n (originalRow) => originalRow.id as string,\n [],\n );\n\n // Update pagination state if props change\n useEffect(() => {\n setPagination({\n pageIndex: currentPage,\n pageSize: resultsPerPage,\n });\n }, [currentPage, resultsPerPage]);\n\n // Reset pagination if search or filters change\n useEffect(() => {\n setPagination((prev) => ({\n pageIndex: 1,\n pageSize: paginationType == \"loadMore\" ? resultsPerPage : prev.pageSize,\n }));\n }, [filters, paginationType, resultsPerPage, search]);\n\n // Fire onPaginationChange if pagination changes\n useEffect(() => {\n onPaginationChange?.(pagination);\n }, [onPaginationChange, pagination]);\n\n // Retrieve the data\n useEffect(() => {\n fetchData({\n dataQueryParams,\n errorMessageProp,\n getData,\n setData,\n setErrorMessage,\n // Only include setIsLoading if that's not being controlled manually\n setIsLoading: isLoadingProp ? undefined : setIsLoading,\n });\n }, [dataQueryParams, errorMessageProp, getData, isLoadingProp]);\n\n // When data is updated\n useEffect(() => {\n setIsEmpty(\n pagination.pageIndex === currentPage &&\n pagination.pageSize === resultsPerPage &&\n search === \"\" &&\n (!hasFilters || filters === initialFilters) &&\n data.length === 0,\n );\n }, [\n currentPage,\n data,\n filters,\n hasFilters,\n initialFilters,\n pagination,\n resultsPerPage,\n search,\n ]);\n\n // Change loading, empty and noResults state on prop change\n useEffect(() => {\n setIsLoading((prevValue) => isLoadingProp ?? prevValue);\n }, [isLoadingProp]);\n\n useEffect(() => {\n setIsEmpty((prevValue) => isEmptyProp ?? prevValue);\n }, [isEmptyProp]);\n\n useEffect(() => {\n setIsNoResults((prevValue) => isNoResultsProp ?? prevValue);\n }, [isNoResultsProp]);\n\n const emptyState = useMemo(() => {\n const noResultsInnerContent = noResultsPlaceholder || (\n <EmptyState\n description={t(\"table.noresults.text\")}\n heading={t(\"table.noresults.heading\")}\n />\n );\n\n if (isEmpty) {\n return emptyPlaceholder || noResultsInnerContent;\n }\n\n if (isNoResults) {\n return noResultsInnerContent;\n }\n\n return;\n }, [noResultsPlaceholder, t, isEmpty, isNoResults, emptyPlaceholder]);\n\n const additionalActions = useMemo(() => {\n return (\n (metaText ||\n (currentLayout === \"table\" && tableLayoutOptions) ||\n availableLayouts.length > 1 ||\n additionalActionButton ||\n additionalActionMenuItems) && (\n <StyledAdditionalActionsInner odysseyDesignTokens={odysseyDesignTokens}>\n {metaText && (\n <StyledMetaTextContainer odysseyDesignTokens={odysseyDesignTokens}>\n <Typography color=\"textSecondary\">{metaText}</Typography>\n </StyledMetaTextContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableSettings\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n />\n )}\n\n {availableLayouts.length > 1 && (\n <LayoutSwitcher\n availableLayouts={availableLayouts}\n currentLayout={currentLayout}\n setCurrentLayout={setCurrentLayout}\n />\n )}\n\n {additionalActionButton}\n\n {additionalActionMenuItems && (\n <MenuButton\n endIcon={<MoreIcon />}\n ariaLabel={t(\"table.moreactions.arialabel\")}\n buttonVariant=\"secondary\"\n menuAlignment=\"right\"\n >\n {additionalActionMenuItems}\n </MenuButton>\n )}\n </StyledAdditionalActionsInner>\n )\n );\n }, [\n additionalActionButton,\n additionalActionMenuItems,\n availableLayouts,\n currentLayout,\n metaText,\n odysseyDesignTokens,\n tableLayoutOptions,\n tableState,\n t,\n ]);\n\n const enableVirtualization = useMemo(\n () => enableVirtualizationProp ?? paginationType === \"loadMore\",\n [enableVirtualizationProp, paginationType],\n );\n\n const { lastRow: lastRowOnPage } = usePagination({\n currentRowsCount: data.length,\n pageIndex: pagination.pageIndex,\n pageSize: pagination.pageSize,\n totalRows,\n });\n\n const rowReorderingUtilities = useRowReordering({\n totalRows,\n onReorderRows,\n data,\n setData,\n draggingRow,\n setDraggingRow,\n resultsPerPage: pagination.pageSize,\n page: pagination.pageIndex,\n });\n\n return (\n <StyledDataViewContainer odysseyDesignTokens={odysseyDesignTokens}>\n {errorMessage && (\n <Box>\n <Callout severity=\"error\" text={errorMessage} />\n </Box>\n )}\n\n {shouldShowFilters && (\n <DataFilters\n additionalActions={additionalActions}\n filters={hasFilters ? availableFilters : undefined}\n hasSearchSubmitButton={hasSearchSubmitButton}\n isDisabled={isEmpty}\n onChangeFilters={hasFilters ? setFilters : undefined}\n onChangeSearch={hasSearch ? setSearch : undefined}\n searchDelayTime={searchDelayTime}\n />\n )}\n\n {(bulkActionMenuItems || hasRowSelection) && (\n <StyledBulkActionsContainer>\n <BulkActionsMenu\n data={data}\n menuItems={bulkActionMenuItems}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n />\n {!shouldShowFilters && additionalActions}\n </StyledBulkActionsContainer>\n )}\n\n {!shouldShowFilters &&\n !bulkActionMenuItems &&\n !hasRowSelection &&\n additionalActions && (\n <StyledAdditionalActionsContainer\n odysseyDesignTokens={odysseyDesignTokens}\n >\n {additionalActions}\n </StyledAdditionalActionsContainer>\n )}\n\n {currentLayout === \"table\" && tableLayoutOptions && (\n <TableLayoutContent\n columns={tableLayoutOptions.columns}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n enableVirtualization={enableVirtualization}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n setTableState={setTableState}\n tableLayoutOptions={tableLayoutOptions}\n tableState={tableState}\n totalRows={totalRows}\n />\n )}\n {(currentLayout === \"list\" || currentLayout === \"grid\") &&\n cardLayoutOptions && (\n <CardLayoutContent\n currentLayout={currentLayout}\n data={data}\n draggingRow={draggingRow}\n emptyState={emptyState}\n getRowId={getRowIdProp || getRowId}\n hasRowReordering={hasRowReordering}\n hasRowSelection={hasRowSelection}\n isEmpty={isEmpty}\n isLoading={isLoading}\n isNoResults={isNoResults}\n isRowReorderingDisabled={isRowReorderingDisabled}\n onReorderRows={onReorderRows}\n pagination={pagination}\n rowReorderingUtilities={rowReorderingUtilities}\n rowSelection={rowSelection}\n setRowSelection={setRowSelection}\n cardLayoutOptions={cardLayoutOptions}\n totalRows={totalRows}\n />\n )}\n\n {hasPagination && (\n <Pagination\n currentPageLabel={t(\"pagination.page\")}\n hasPageInput={hasPageInput}\n hasRowCountInput={hasRowCountInput}\n hasRowCountLabel={hasRowCountLabel}\n isDisabled={isEmpty}\n isMoreDisabled={isPaginationMoreDisabled}\n lastRow={lastRowOnPage}\n loadMoreLabel={t(\"pagination.loadmore\")}\n maxPageIndex={maxPages}\n maxPageSize={maxResultsPerPage}\n nextLabel={t(\"pagination.next\")}\n onPaginationChange={setPagination}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n previousLabel={t(\"pagination.previous\")}\n rowsPerPageLabel={t(\"pagination.rowsperpage\")}\n totalRows={totalRows}\n currentRowsCount={data.length}\n variant={paginationType}\n />\n )}\n </StyledDataViewContainer>\n );\n};\n\nconst MemoizedDataView = memo(DataView) as DataViewComponent;\nMemoizedDataView.displayName = \"DataView\";\n\nexport { MemoizedDataView as DataView };\n"],"mappings":"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","ignoreList":[]}
@@ -51,7 +51,7 @@ const useFilterConversion = ({
51
51
  }
52
52
  return accumulator;
53
53
  }, []);
54
- }, [columns, filters]);
54
+ }, [columns, convertColumnToFilter, filters]);
55
55
  return dataTableFilters;
56
56
  };
57
57
  exports.useFilterConversion = useFilterConversion;
@@ -1 +1 @@
1
- {"version":3,"file":"useFilterConversion.cjs","names":["_react","require","useFilterConversion","columns","filters","convertFilterSelectOptions","useCallback","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","useMemo","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","exports"],"sources":["../../../../src/labs/DataView/useFilterConversion.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 { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<MRT_RowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,kBAAW,EAC3CC,OAA4D,IAC3DA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAG,IAAAN,kBAAW,EACtCO,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAEF,0BAA0B,CAACQ,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACf,0BAA0B,CAC7B,CAAC;EAED,MAAMgB,gBAAgB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAGrC,MAAMC,eAAe,GAAGnB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOoB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGxB,OAAO,EAAEyB,IAAI,CAC9Bf,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKW,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAIf,qBAAqB,CAACe,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGjB,qBAAqB,CAACc,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACtB,OAAO,EAAEC,OAAO,CAAC,CAAC;EAEtB,OAAOiB,gBAAgB;AACzB,CAAC;AAACU,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
1
+ {"version":3,"file":"useFilterConversion.cjs","names":["_react","require","useFilterConversion","columns","filters","convertFilterSelectOptions","useCallback","options","map","option","label","value","convertColumnToFilter","column","enableColumnFilter","accessorKey","id","header","variant","filterVariant","filterSelectOptions","dataTableFilters","useMemo","providedFilters","reduce","accumulator","item","foundColumn","find","filter","concat","exports"],"sources":["../../../../src/labs/DataView/useFilterConversion.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 { useCallback, useMemo } from \"react\";\nimport { MRT_RowData } from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\nimport { DataTableColumn } from \"../../DataTable/index.js\";\nimport { UniversalProps, TableLayoutProps } from \"./componentTypes.js\";\n\ntype FilterConversionType<TData extends MRT_RowData> = {\n columns?: TableLayoutProps<TData>[\"columns\"];\n filters?: UniversalProps<TData>[\"filters\"];\n};\n\nexport const useFilterConversion = <TData extends MRT_RowData>({\n columns,\n filters,\n}: FilterConversionType<TData>) => {\n const convertFilterSelectOptions = useCallback(\n (options: DataTableColumn<MRT_RowData>[\"filterSelectOptions\"]) =>\n options?.map((option) =>\n typeof option === \"string\"\n ? {\n label: option,\n value: option,\n }\n : {\n // If the option isn't a string, it must have value and/or option defined\n // If either is undefined, use the other\n label: (option.label ?? option.value) as string,\n value: (option.value ?? option.label) as string,\n },\n ),\n [],\n );\n\n const convertColumnToFilter = useCallback(\n (column: DataTableColumn<TData>) =>\n column.enableColumnFilter !== false && column.accessorKey\n ? {\n id: column.accessorKey,\n label: column.header,\n variant: column.filterVariant,\n options: convertFilterSelectOptions(column.filterSelectOptions),\n }\n : null,\n [convertFilterSelectOptions],\n );\n\n const dataTableFilters = useMemo(() => {\n // Filters may be manually set via the `filters` variable;\n // If not, they may be inferred from `columns`\n const providedFilters = filters || columns || [];\n\n return providedFilters.reduce<DataFilter[]>((accumulator, item) => {\n if (typeof item === \"string\") {\n const foundColumn = columns?.find(\n (column) => column.accessorKey === item,\n );\n const filter = foundColumn && convertColumnToFilter(foundColumn);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"accessorKey\" in item) {\n const filter = convertColumnToFilter(item);\n return filter ? accumulator.concat(filter) : accumulator;\n }\n\n if (\"label\" in item) {\n return accumulator.concat(item);\n }\n\n return accumulator;\n }, []);\n }, [columns, convertColumnToFilter, filters]);\n\n return dataTableFilters;\n};\n"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcO,MAAMC,mBAAmB,GAAGA,CAA4B;EAC7DC,OAAO;EACPC;AAC2B,CAAC,KAAK;EACjC,MAAMC,0BAA0B,GAAG,IAAAC,kBAAW,EAC3CC,OAA4D,IAC3DA,OAAO,EAAEC,GAAG,CAAEC,MAAM,IAClB,OAAOA,MAAM,KAAK,QAAQ,GACtB;IACEC,KAAK,EAAED,MAAM;IACbE,KAAK,EAAEF;EACT,CAAC,GACD;IAGEC,KAAK,EAAGD,MAAM,CAACC,KAAK,IAAID,MAAM,CAACE,KAAgB;IAC/CA,KAAK,EAAGF,MAAM,CAACE,KAAK,IAAIF,MAAM,CAACC;EACjC,CACN,CAAC,EACH,EACF,CAAC;EAED,MAAME,qBAAqB,GAAG,IAAAN,kBAAW,EACtCO,MAA8B,IAC7BA,MAAM,CAACC,kBAAkB,KAAK,KAAK,IAAID,MAAM,CAACE,WAAW,GACrD;IACEC,EAAE,EAAEH,MAAM,CAACE,WAAW;IACtBL,KAAK,EAAEG,MAAM,CAACI,MAAM;IACpBC,OAAO,EAAEL,MAAM,CAACM,aAAa;IAC7BZ,OAAO,EAAEF,0BAA0B,CAACQ,MAAM,CAACO,mBAAmB;EAChE,CAAC,GACD,IAAI,EACV,CAACf,0BAA0B,CAC7B,CAAC;EAED,MAAMgB,gBAAgB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAGrC,MAAMC,eAAe,GAAGnB,OAAO,IAAID,OAAO,IAAI,EAAE;IAEhD,OAAOoB,eAAe,CAACC,MAAM,CAAe,CAACC,WAAW,EAAEC,IAAI,KAAK;MACjE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAMC,WAAW,GAAGxB,OAAO,EAAEyB,IAAI,CAC9Bf,MAAM,IAAKA,MAAM,CAACE,WAAW,KAAKW,IACrC,CAAC;QACD,MAAMG,MAAM,GAAGF,WAAW,IAAIf,qBAAqB,CAACe,WAAW,CAAC;QAChE,OAAOE,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,aAAa,IAAIC,IAAI,EAAE;QACzB,MAAMG,MAAM,GAAGjB,qBAAqB,CAACc,IAAI,CAAC;QAC1C,OAAOG,MAAM,GAAGJ,WAAW,CAACK,MAAM,CAACD,MAAM,CAAC,GAAGJ,WAAW;MAC1D;MAEA,IAAI,OAAO,IAAIC,IAAI,EAAE;QACnB,OAAOD,WAAW,CAACK,MAAM,CAACJ,IAAI,CAAC;MACjC;MAEA,OAAOD,WAAW;IACpB,CAAC,EAAE,EAAE,CAAC;EACR,CAAC,EAAE,CAACtB,OAAO,EAAES,qBAAqB,EAAER,OAAO,CAAC,CAAC;EAE7C,OAAOiB,gBAAgB;AACzB,CAAC;AAACU,OAAA,CAAA7B,mBAAA,GAAAA,mBAAA","ignoreList":[]}
@@ -27,7 +27,7 @@ const useMediaQuery = mediaQuery => {
27
27
  return () => {
28
28
  mediaQueryList.removeEventListener("change", updateHasMatches);
29
29
  };
30
- }, [mediaQueryList]);
30
+ }, [mediaQueryList, updateHasMatches]);
31
31
  return hasMatches;
32
32
  };
33
33
  exports.useMediaQuery = useMediaQuery;
@@ -1 +1 @@
1
- {"version":3,"file":"useMediaQuery.cjs","names":["_react","require","useMediaQuery","mediaQuery","mediaQueryList","useMemo","window","matchMedia","hasMatches","setHasMatches","useState","matches","updateHasMatches","useCallback","event","useEffect","addEventListener","removeEventListener","exports"],"sources":["../../../src/theme/useMediaQuery.ts"],"sourcesContent":["/*!\n * Copyright (c) 2025-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 { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { StringWithValue } from \"./StringWithValue.js\";\n\nexport const useMediaQuery = <MediaQuery extends string>(\n mediaQuery: StringWithValue<MediaQuery>,\n) => {\n const mediaQueryList = useMemo(\n () => window.matchMedia(mediaQuery),\n [mediaQuery],\n );\n\n const [hasMatches, setHasMatches] = useState(() => mediaQueryList.matches);\n\n const updateHasMatches = useCallback(\n (event: MediaQueryListEvent | MediaQueryList) =>\n setHasMatches(event.matches),\n [],\n );\n\n useEffect(() => {\n mediaQueryList.addEventListener(\"change\", updateHasMatches);\n\n updateHasMatches(mediaQueryList);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", updateHasMatches);\n };\n }, [mediaQueryList]);\n\n return hasMatches;\n};\n"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAC5B,MAAMC,MAAM,CAACC,UAAU,CAACJ,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMN,cAAc,CAACO,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EACjCC,KAA2C,IAC1CL,aAAa,CAACK,KAAK,CAACH,OAAO,CAAC,EAC9B,EACF,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACdX,cAAc,CAACY,gBAAgB,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACR,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACa,mBAAmB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACR,cAAc,CAAC,CAAC;EAEpB,OAAOI,UAAU;AACnB,CAAC;AAACU,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"file":"useMediaQuery.cjs","names":["_react","require","useMediaQuery","mediaQuery","mediaQueryList","useMemo","window","matchMedia","hasMatches","setHasMatches","useState","matches","updateHasMatches","useCallback","event","useEffect","addEventListener","removeEventListener","exports"],"sources":["../../../src/theme/useMediaQuery.ts"],"sourcesContent":["/*!\n * Copyright (c) 2025-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 { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { StringWithValue } from \"./StringWithValue.js\";\n\nexport const useMediaQuery = <MediaQuery extends string>(\n mediaQuery: StringWithValue<MediaQuery>,\n) => {\n const mediaQueryList = useMemo(\n () => window.matchMedia(mediaQuery),\n [mediaQuery],\n );\n\n const [hasMatches, setHasMatches] = useState(() => mediaQueryList.matches);\n\n const updateHasMatches = useCallback(\n (event: MediaQueryListEvent | MediaQueryList) =>\n setHasMatches(event.matches),\n [],\n );\n\n useEffect(() => {\n mediaQueryList.addEventListener(\"change\", updateHasMatches);\n\n updateHasMatches(mediaQueryList);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", updateHasMatches);\n };\n }, [mediaQueryList, updateHasMatches]);\n\n return hasMatches;\n};\n"],"mappings":";;;;;;AAYA,IAAAA,MAAA,GAAAC,OAAA;AAZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,MAAMC,aAAa,GACxBC,UAAuC,IACpC;EACH,MAAMC,cAAc,GAAG,IAAAC,cAAO,EAC5B,MAAMC,MAAM,CAACC,UAAU,CAACJ,UAAU,CAAC,EACnC,CAACA,UAAU,CACb,CAAC;EAED,MAAM,CAACK,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMN,cAAc,CAACO,OAAO,CAAC;EAE1E,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EACjCC,KAA2C,IAC1CL,aAAa,CAACK,KAAK,CAACH,OAAO,CAAC,EAC9B,EACF,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACdX,cAAc,CAACY,gBAAgB,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC;IAE3DA,gBAAgB,CAACR,cAAc,CAAC;IAEhC,OAAO,MAAM;MACXA,cAAc,CAACa,mBAAmB,CAAC,QAAQ,EAAEL,gBAAgB,CAAC;IAChE,CAAC;EACH,CAAC,EAAE,CAACR,cAAc,EAAEQ,gBAAgB,CAAC,CAAC;EAEtC,OAAOJ,UAAU;AACnB,CAAC;AAACU,OAAA,CAAAhB,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SideNav = void 0;
6
+ exports.SideNav = exports.SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = void 0;
7
7
  var _Skeleton2 = _interopRequireDefault(require("@mui/material/Skeleton"));
8
8
  var _styled = _interopRequireDefault(require("@emotion/styled"));
9
9
  var _react = require("react");
@@ -36,6 +36,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
36
36
  * See the License for the specific language governing permissions and limitations under the License.
37
37
  */
38
38
 
39
+ const SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED = 12;
40
+ const SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = exports.SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED = 2;
39
41
  const StyledCollapsibleContent = (0, _styled.default)("div", {
40
42
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "isSideNavCollapsed"
41
43
  })(({
@@ -71,54 +73,62 @@ const StyledOpacityTransitionContainer = (0, _styled.default)("div", {
71
73
  })
72
74
  }));
73
75
  const StyledSideNavContainer = (0, _styled.default)("nav", {
74
- shouldForwardProp: prop => prop !== "backgroundColor" && prop !== "odysseyDesignTokens" && prop !== "isAppContentWhiteBackground" && prop !== "isSideNavCollapsed"
76
+ shouldForwardProp: prop => prop !== "backgroundColor" && prop !== "hasNeighboringContent" && prop !== "isAppContentWhiteBackground" && prop !== "isSideNavCollapsed" && prop !== "isSideNavToggleHighlighted" && prop !== "odysseyDesignTokens"
75
77
  })(({
76
78
  backgroundColor,
79
+ hasNeighboringContent,
77
80
  isAppContentWhiteBackground,
78
81
  isSideNavCollapsed,
82
+ isSideNavToggleHighlighted,
79
83
  odysseyDesignTokens
80
84
  }) => ({
81
85
  backgroundColor: backgroundColor || odysseyDesignTokens.HueNeutralWhite,
82
86
  height: "100%",
83
87
  position: "relative",
84
88
  width: "fit-content",
85
- ...(isAppContentWhiteBackground && {
86
- borderRightWidth: odysseyDesignTokens.BorderWidthMain,
87
- borderRightStyle: odysseyDesignTokens.BorderStyleMain,
88
- borderRightColor: odysseyDesignTokens.HueNeutral100
89
- }),
90
- "&::after": {
91
- backgroundColor: odysseyDesignTokens.HueNeutral200,
89
+ "&::before, &::after": {
92
90
  content: "''",
93
91
  height: "100%",
94
- opacity: 0,
92
+ pointerEvents: "none",
95
93
  position: "absolute",
96
- right: 0,
94
+ right: `-${odysseyDesignTokens.BorderWidthMain}`,
97
95
  top: 0,
98
- transform: `translateX(0)`,
99
- transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}`,
100
- width: odysseyDesignTokens.Spacing2,
96
+ transition: `opacity ${odysseyDesignTokens.TransitionDurationMain}, transform ${odysseyDesignTokens.TransitionDurationMain}, width ${odysseyDesignTokens.TransitionDurationMain}`,
97
+ userSelect: "none",
101
98
  zIndex: _uiShellSharedConstants.UI_SHELL_OVERLAY_Z_INDEX
102
99
  },
103
- "&:has([data-sidenav-toggle='true']:hover), &:has([data-sidenav-toggle='true']:focus-visible)": {
104
- ...(isSideNavCollapsed && {
105
- "&::after": {
106
- opacity: 1,
107
- transform: `translateX(100%)`
108
- },
109
- "[data-sidenav-toggle='true']": {
110
- transform: `translate3d(calc(100% + ${odysseyDesignTokens.Spacing3}), 0, 0)`
111
- }
112
- })
100
+ "&::before": {
101
+ backgroundColor: isSideNavToggleHighlighted ? odysseyDesignTokens.BorderColorPrimaryControl : odysseyDesignTokens.HueNeutral100,
102
+ opacity: isAppContentWhiteBackground || !isSideNavCollapsed && isSideNavToggleHighlighted ? 1 : 0,
103
+ width: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`
113
104
  },
114
- "[data-sidenav-toggle='true']": {
115
- position: "absolute",
116
- top: _uiShellSharedConstants.SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,
117
- right: 0,
118
- transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,
119
- transform: `translate3d(100%, 0, 0)`
105
+ "&::after": {
106
+ backgroundColor: odysseyDesignTokens.HueNeutral200,
107
+ opacity: isSideNavCollapsed ? 1 : 0,
108
+ transform: isSideNavCollapsed && !hasNeighboringContent ? isSideNavToggleHighlighted ? `translateX(calc(100% - (${odysseyDesignTokens.BorderWidthMain} * 2)))` : `translateX(calc(100% - ${SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px))` : "translateX(0)",
109
+ width: hasNeighboringContent ? 0 : `calc(${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px + ${odysseyDesignTokens.BorderWidthMain} * 2)`,
110
+ ...(isSideNavCollapsed && isSideNavToggleHighlighted ? {
111
+ borderRightColor: odysseyDesignTokens.BorderColorPrimaryControl,
112
+ borderRightStyle: odysseyDesignTokens.BorderStyleMain,
113
+ borderRightWidth: `calc(${odysseyDesignTokens.BorderWidthMain} * 2)`
114
+ } : {})
120
115
  }
121
116
  }));
117
+ const StyledSideNavToggleButtonContainer = (0, _styled.default)("div", {
118
+ shouldForwardProp: prop => prop !== "hasNeighboringContent" && prop !== "isSideNavCollapsed" && prop !== "isSideNavToggleHighlighted" && prop !== "odysseyDesignTokens"
119
+ })(({
120
+ hasNeighboringContent,
121
+ isSideNavCollapsed,
122
+ isSideNavToggleHighlighted,
123
+ odysseyDesignTokens
124
+ }) => ({
125
+ position: "absolute",
126
+ right: `${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE}px`,
127
+ top: _uiShellSharedConstants.SIDE_NAV_VISIBILITY_TOGGLE_ICON_POSITION,
128
+ transform: isSideNavCollapsed && !hasNeighboringContent ? isSideNavToggleHighlighted ? `translate3d(calc(100% + ${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_HIGHLIGHTED}px), 0, 0)` : `translate3d(calc(100% + ${_SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_HALF_SIZE + SIDE_NAV_COLLAPSED_PADDING_UNHIGHLIGHTED}px), 0, 0)` : "translate3d(100%, 0, 0)",
129
+ transition: `transform ${odysseyDesignTokens.TransitionDurationMain}`,
130
+ zIndex: _uiShellSharedConstants.UI_SHELL_OVERLAY_Z_INDEX + 1
131
+ }));
122
132
  const StyledSideNavHeaderContainer = (0, _styled.default)("div", {
123
133
  shouldForwardProp: prop => prop !== "borderColor" && prop !== "hasContentScrolled" && prop !== "odysseyDesignTokens"
124
134
  })(({
@@ -158,10 +168,10 @@ const StyledSectionHeaderContainer = (0, _styled.default)("li", {
158
168
  contrastFontColor,
159
169
  odysseyDesignTokens
160
170
  }) => ({
161
- paddingBlock: odysseyDesignTokens.Spacing1,
162
- paddingInline: odysseyDesignTokens.Spacing4,
171
+ color: contrastFontColor || odysseyDesignTokens.HueNeutral600,
163
172
  marginBlock: `${odysseyDesignTokens.Spacing3}`,
164
- color: contrastFontColor || odysseyDesignTokens.HueNeutral600
173
+ paddingBlock: odysseyDesignTokens.Spacing1,
174
+ paddingInline: odysseyDesignTokens.Spacing4
165
175
  }));
166
176
  const StyledSideNavFooter = (0, _styled.default)("div", {
167
177
  shouldForwardProp: prop => prop !== "odysseyDesignTokens" && prop !== "sideNavBackgroundColor"
@@ -169,9 +179,9 @@ const StyledSideNavFooter = (0, _styled.default)("div", {
169
179
  odysseyDesignTokens,
170
180
  sideNavBackgroundColor
171
181
  }) => ({
182
+ backgroundColor: odysseyDesignTokens.HueNeutralWhite,
172
183
  flexShrink: 0,
173
184
  padding: odysseyDesignTokens.Spacing4,
174
- backgroundColor: odysseyDesignTokens.HueNeutralWhite,
175
185
  ...(sideNavBackgroundColor && {
176
186
  backgroundColor: sideNavBackgroundColor
177
187
  })
@@ -267,9 +277,11 @@ const SideNav = ({
267
277
  onSort,
268
278
  sideNavItems
269
279
  }) => {
270
- const [isSideNavCollapsed, setIsSideNavCollapsed] = (0, _react.useState)(isCollapsed);
271
280
  const [hasContentScrolled, setHasContentScrolled] = (0, _react.useState)(false);
281
+ const [hasNeighboringContent, setHasNeighboringContent] = (0, _react.useState)(false);
272
282
  const [isContentScrollable, setIsContentScrollable] = (0, _react.useState)(false);
283
+ const [isSideNavCollapsed, setIsSideNavCollapsed] = (0, _react.useState)(isCollapsed);
284
+ const [isSideNavToggleHighlighted, setIsSideNavToggleHighlighted] = (0, _react.useState)(false);
273
285
  const [sideNavItemsList, updateSideNavItemsList] = (0, _react.useState)(sideNavItems);
274
286
  const uiShellContext = (0, _UiShellProvider.useUiShellContext)();
275
287
  const odysseyDesignTokens = (0, _OdysseyDesignTokensContext.useOdysseyDesignTokens)();
@@ -279,9 +291,15 @@ const SideNav = ({
279
291
  const scrollableContentRef = (0, _react.useRef)(null);
280
292
  const resizeObserverRef = (0, _react.useRef)(null);
281
293
  const intersectionObserverRef = (0, _react.useRef)(null);
294
+ const sideNavRef = (0, _react.useRef)(null);
282
295
  const blankElement = (0, _react.useMemo)(() => (0, _jsxRuntime.jsx)("div", {}), []);
283
296
  (0, _react.useEffect)(() => updateSideNavItemsList(sideNavItems), [sideNavItems]);
284
- (0, _react.useEffect)(() => setIsSideNavCollapsed(isCollapsed), [isCollapsed]);
297
+ (0, _react.useEffect)(() => {
298
+ setIsSideNavCollapsed(isCollapsed);
299
+ if (sideNavRef.current) {
300
+ setHasNeighboringContent(sideNavRef.current.getBoundingClientRect().x > 0);
301
+ }
302
+ }, [isCollapsed]);
285
303
  (0, _react.useEffect)(() => {
286
304
  const updateIsContentScrollable = () => {
287
305
  if (scrollableContentRef.current && scrollableContentRef.current.parentElement) {
@@ -432,18 +450,32 @@ const SideNav = ({
432
450
  updateSideNavItemsList(sortedSideNavItems);
433
451
  onSort?.(sortedSideNavItems, parentId, activeId, activeIndex, overIndex);
434
452
  }, [onSort, sideNavItemsList]);
453
+ const onSideNavToggleButtonHighlight = (0, _react.useCallback)(isHighlighted => {
454
+ setIsSideNavToggleHighlighted(isHighlighted);
455
+ }, []);
435
456
  return (0, _jsxRuntime.jsxs)(StyledSideNavContainer, {
436
457
  "aria-label": t("navigation.label"),
437
458
  backgroundColor: uiShellContext?.sideNavBackgroundColor,
459
+ hasNeighboringContent: hasNeighboringContent,
438
460
  id: "side-nav-expandable",
439
461
  isAppContentWhiteBackground: uiShellContext?.appBackgroundColor === odysseyDesignTokens.HueNeutralWhite,
440
462
  isSideNavCollapsed: isSideNavCollapsed,
463
+ isSideNavToggleHighlighted: isSideNavToggleHighlighted,
441
464
  odysseyDesignTokens: odysseyDesignTokens,
442
- children: [isCollapsible && (0, _jsxRuntime.jsx)(_SideNavToggleButton.SideNavToggleButton, {
443
- ariaControls: "side-nav-expandable",
465
+ ref: sideNavRef,
466
+ children: [isCollapsible && (0, _jsxRuntime.jsx)(StyledSideNavToggleButtonContainer, {
467
+ hasNeighboringContent: hasNeighboringContent,
444
468
  isSideNavCollapsed: isSideNavCollapsed,
445
- onClick: sideNavExpandClickHandler,
446
- onKeyDown: sideNavExpandKeyHandler
469
+ isSideNavToggleHighlighted: isSideNavToggleHighlighted,
470
+ odysseyDesignTokens: odysseyDesignTokens,
471
+ children: (0, _jsxRuntime.jsx)(_SideNavToggleButton.SideNavToggleButton, {
472
+ clickAreaPadding: isSideNavCollapsed && !hasNeighboringContent ? _SideNavToggleButton.SIDE_NAV_TOGGLE_ICON_SIZE / 2 : 0,
473
+ ariaControls: "side-nav-expandable",
474
+ isSideNavCollapsed: isSideNavCollapsed,
475
+ onClick: sideNavExpandClickHandler,
476
+ onHighlight: onSideNavToggleButtonHighlight,
477
+ onKeyDown: sideNavExpandKeyHandler
478
+ })
447
479
  }), (0, _jsxRuntime.jsx)(_OdysseyThemeProvider.OdysseyThemeProvider, {
448
480
  children: (0, _jsxRuntime.jsx)(StyledCollapsibleContent, {
449
481
  "data-se": "collapsible-region",
@@ -492,8 +524,8 @@ const SideNav = ({
492
524
  component: "h3",
493
525
  children: label
494
526
  })
495
- }, id)
496
- });
527
+ })
528
+ }, id);
497
529
  } else if (childNavItems) {
498
530
  return (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
499
531
  fallback: blankElement,
@@ -525,22 +557,21 @@ const SideNav = ({
525
557
  }) : childNavItems.map(item => item.navItem)
526
558
  })
527
559
  })
528
- }, id)
529
- });
560
+ })
561
+ }, id);
530
562
  } else {
531
563
  return (0, _jsxRuntime.jsx)(_reactErrorBoundary.ErrorBoundary, {
532
564
  fallback: blankElement,
533
565
  children: (0, _jsxRuntime.jsx)(_SideNavItemContentContext.SideNavItemContentContext.Provider, {
534
566
  value: sideNavItemContentProviderValue,
535
- children: (0, _react.createElement)(_SideNavItemContent.SideNavItemContent, {
567
+ children: (0, _jsxRuntime.jsx)(_SideNavItemContent.SideNavItemContent, {
536
568
  ...item,
537
- key: item.id,
538
569
  onItemSelected: setSelectedItem,
539
570
  scrollRef: getRefIfThisIsFirstNodeWithIsSelected(item.id),
540
571
  startIcon: item.startIcon
541
572
  })
542
- }, item.id)
543
- });
573
+ })
574
+ }, item.id);
544
575
  }
545
576
  })
546
577
  }), !isLoading && footerItems && !hasCustomFooter && (0, _jsxRuntime.jsx)(StyledSideNavFooter, {