@cloudscape-design/components-themeable 3.0.1361 → 3.0.1363

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 (77) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  3. package/lib/internal/template/action-card/internal.d.ts.map +1 -1
  4. package/lib/internal/template/action-card/internal.js +5 -2
  5. package/lib/internal/template/action-card/internal.js.map +1 -1
  6. package/lib/internal/template/app-layout/toggles/index.d.ts.map +1 -1
  7. package/lib/internal/template/app-layout/toggles/index.js +1 -1
  8. package/lib/internal/template/app-layout/toggles/index.js.map +1 -1
  9. package/lib/internal/template/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
  10. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +1 -1
  11. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  12. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  13. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +1 -1
  14. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  15. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js +2 -2
  16. package/lib/internal/template/breadcrumb-group/all-items-dropdown.js.map +1 -1
  17. package/lib/internal/template/button/internal.d.ts.map +1 -1
  18. package/lib/internal/template/button/internal.js +2 -0
  19. package/lib/internal/template/button/internal.js.map +1 -1
  20. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  21. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +2 -2
  22. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  23. package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
  24. package/lib/internal/template/button-dropdown/item-element/index.js +2 -2
  25. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  26. package/lib/internal/template/code-editor/tab-button.d.ts.map +1 -1
  27. package/lib/internal/template/code-editor/tab-button.js +1 -1
  28. package/lib/internal/template/code-editor/tab-button.js.map +1 -1
  29. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  30. package/lib/internal/template/expandable-section/expandable-section-header.js +13 -7
  31. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  32. package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
  33. package/lib/internal/template/flashbar/collapsible-flashbar.js +3 -3
  34. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  35. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  36. package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
  37. package/lib/internal/template/internal/components/button-trigger/index.js +2 -2
  38. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  39. package/lib/internal/template/internal/components/drag-handle/button.d.ts.map +1 -1
  40. package/lib/internal/template/internal/components/drag-handle/button.js +3 -1
  41. package/lib/internal/template/internal/components/drag-handle/button.js.map +1 -1
  42. package/lib/internal/template/internal/components/expand-toggle-button/index.d.ts.map +1 -1
  43. package/lib/internal/template/internal/components/expand-toggle-button/index.js +1 -1
  44. package/lib/internal/template/internal/components/expand-toggle-button/index.js.map +1 -1
  45. package/lib/internal/template/internal/components/menu-dropdown/index.d.ts.map +1 -1
  46. package/lib/internal/template/internal/components/menu-dropdown/index.js +1 -1
  47. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  48. package/lib/internal/template/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  49. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +2 -2
  50. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
  51. package/lib/internal/template/internal/environment.js +2 -2
  52. package/lib/internal/template/internal/environment.json +2 -2
  53. package/lib/internal/template/link/internal.d.ts.map +1 -1
  54. package/lib/internal/template/link/internal.js +2 -0
  55. package/lib/internal/template/link/internal.js.map +1 -1
  56. package/lib/internal/template/pagination/internal.d.ts.map +1 -1
  57. package/lib/internal/template/pagination/internal.js +3 -3
  58. package/lib/internal/template/pagination/internal.js.map +1 -1
  59. package/lib/internal/template/property-filter/filtering-token/index.js +4 -4
  60. package/lib/internal/template/property-filter/filtering-token/index.js.map +1 -1
  61. package/lib/internal/template/segmented-control/segment.d.ts.map +1 -1
  62. package/lib/internal/template/segmented-control/segment.js +1 -1
  63. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  64. package/lib/internal/template/side-navigation/parts.js +3 -3
  65. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  66. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  67. package/lib/internal/template/table/header-cell/index.js +2 -1
  68. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  69. package/lib/internal/template/tabs/tab-header-bar.d.ts.map +1 -1
  70. package/lib/internal/template/tabs/tab-header-bar.js +1 -1
  71. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  72. package/lib/internal/template/token/dismiss-button.js +2 -2
  73. package/lib/internal/template/token/dismiss-button.js.map +1 -1
  74. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  75. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +5 -5
  76. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  77. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport InternalInput from '../input/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { useTableComponentsContext } from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalPopover from '../popover/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataPaginationClick } from './analytics-metadata/interfaces';\nimport { PaginationProps } from './interfaces';\nimport { getPaginationState, range } from './utils';\n\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface PageButtonProps {\n className?: string;\n ariaLabel: string;\n disabled?: boolean;\n pageIndex: number;\n isCurrent?: boolean;\n children?: React.ReactNode;\n onClick: (requestedIndex: number) => void;\n}\n\nfunction PageButton({\n className,\n ariaLabel,\n disabled,\n pageIndex,\n isCurrent = false,\n children,\n onClick,\n ...rest\n}: PageButtonProps) {\n function handleClick(event: React.MouseEvent) {\n if (disabled) {\n return;\n }\n event.preventDefault();\n onClick(pageIndex);\n }\n return (\n <li className={styles['page-item']} {...copyAnalyticsMetadataAttribute(rest)}>\n <button\n className={clsx(\n className,\n styles.button,\n disabled && styles['button-disabled'],\n isCurrent && styles['button-current']\n )}\n type=\"button\"\n aria-label={ariaLabel}\n aria-disabled={disabled ? true : undefined}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n aria-current={isCurrent}\n {...(disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'click',\n detail: {\n label: { root: 'self' },\n },\n } as GeneratedAnalyticsMetadataPaginationClick))}\n >\n {children}\n </button>\n </li>\n );\n}\n\nfunction PageNumber({ pageIndex, ...rest }: PageButtonProps) {\n return (\n <PageButton\n className={styles['page-number']}\n pageIndex={pageIndex}\n {...rest}\n {...(rest.disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: `${pageIndex}`,\n },\n }))}\n >\n {pageIndex}\n </PageButton>\n );\n}\n\ntype InternalPaginationProps = PaginationProps & InternalBaseComponentProps;\n\nconst InternalPagination = React.forwardRef(\n (\n {\n openEnd,\n currentPageIndex,\n ariaLabels,\n i18nStrings,\n pagesCount,\n disabled,\n pagesVariant = 'normal',\n onChange,\n onNextPageClick,\n onPreviousPageClick,\n __internalRootRef,\n jumpToPage,\n ...rest\n }: InternalPaginationProps,\n ref: React.Ref<PaginationProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const { leftDots, leftIndex, rightIndex, rightDots } = getPaginationState(currentPageIndex, pagesCount, openEnd);\n const [jumpToPageValue, setJumpToPageValue] = useState(currentPageIndex?.toString());\n const previousLoading = usePrevious(jumpToPage?.loading);\n const jumpToPageInputRef = useRef<HTMLInputElement>(null);\n const [hasError, setHasError] = useState(false);\n\n const i18n = useInternalI18n('pagination');\n\n // Expose setError function via ref\n React.useImperativeHandle(ref, () => ({\n setError: (error: boolean) => setHasError(error),\n }));\n\n // Sync input with currentPageIndex after loading completes\n React.useEffect(() => {\n if (previousLoading && !jumpToPage?.loading) {\n setJumpToPageValue(String(currentPageIndex));\n }\n }, [previousLoading, jumpToPage?.loading, currentPageIndex]);\n\n const paginationLabel = ariaLabels?.paginationLabel ?? '';\n const nextPageLabel = i18n('ariaLabels.nextPageLabel', ariaLabels?.nextPageLabel) ?? '';\n const previousPageLabel = i18n('ariaLabels.previousPageLabel', ariaLabels?.previousPageLabel) ?? '';\n const pageNumberLabelFn =\n i18n('ariaLabels.pageLabel', ariaLabels?.pageLabel, format => pageNumber => format({ pageNumber })) ??\n ((pageNumber: number) => `${pageNumber}`);\n\n const pagesCompactText = i18n(\n 'i18nStrings.pagesCompactText',\n i18nStrings?.pagesCompactText,\n format => options =>\n format({\n currentPage: options.currentPage,\n pagesCount: options.pagesCount,\n openEnd: options.openEnd ? 'true' : 'false',\n })\n );\n\n const jumpToPageLabel = i18n('i18nStrings.jumpToPageInputLabel', i18nStrings?.jumpToPageInputLabel) ?? '';\n const jumpToPageButtonLabel = i18n('ariaLabels.jumpToPageButtonLabel', ariaLabels?.jumpToPageButton) ?? '';\n const jumpToPageError = i18n('i18nStrings.jumpToPageError', i18nStrings?.jumpToPageError) ?? '';\n const jumpToPageLoadingText = i18n('i18nStrings.jumpToPageLoadingText', i18nStrings?.jumpToPageLoadingText) ?? '';\n\n function handlePrevPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onPreviousPageClick, {\n requestedPageAvailable: true,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handleNextPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onNextPageClick, {\n requestedPageAvailable: currentPageIndex < pagesCount,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handlePageClick(requestedPageIndex: number, errorState?: boolean) {\n setJumpToPageValue(String(requestedPageIndex));\n setHasError(!!errorState); // Clear error on successful navigation\n fireNonCancelableEvent(onChange, { currentPageIndex: requestedPageIndex });\n }\n\n function handleJumpToPageClick(requestedPageIndex: number) {\n const adjustedIndex = Math.max(1, Math.floor(requestedPageIndex));\n\n if (openEnd) {\n // Open-end: always navigate, parent will handle async loading\n handlePageClick(adjustedIndex);\n } else {\n // Closed-end: validate range\n if (adjustedIndex >= 1 && adjustedIndex <= pagesCount) {\n handlePageClick(adjustedIndex);\n } else {\n // Out of range - set error and navigate to last page\n handlePageClick(pagesCount, true);\n }\n }\n jumpToPageInputRef.current?.focus();\n }\n\n // Auto-clear error when user types in the input\n const handleInputChange = (e: NonCancelableCustomEvent<BaseChangeDetail>) => {\n setJumpToPageValue(e.detail.value);\n if (hasError) {\n setHasError(false);\n }\n };\n\n const previousButtonDisabled = disabled || currentPageIndex === 1;\n const nextButtonDisabled = disabled || (!openEnd && (pagesCount === 0 || currentPageIndex === pagesCount));\n const tableComponentContext = useTableComponentsContext();\n if (tableComponentContext?.paginationRef?.current) {\n tableComponentContext.paginationRef.current.currentPageIndex = currentPageIndex;\n tableComponentContext.paginationRef.current.totalPageCount = pagesCount;\n tableComponentContext.paginationRef.current.openEnd = openEnd;\n }\n\n const jumpToPageButton = (\n <InternalButton\n iconName=\"arrow-right\"\n variant=\"icon\"\n loading={jumpToPage?.loading}\n loadingText={jumpToPageLoadingText}\n ariaLabel={jumpToPage?.loading ? jumpToPageLoadingText : jumpToPageButtonLabel}\n onClick={() => handleJumpToPageClick(Number(jumpToPageValue))}\n disabled={disabled || !jumpToPageValue || Number(jumpToPageValue) === currentPageIndex}\n />\n );\n\n return (\n <ul\n aria-label={paginationLabel}\n {...baseProps}\n className={clsx(baseProps.className, styles.root, disabled && styles['root-disabled'])}\n ref={__internalRootRef}\n >\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex - 1}\n ariaLabel={previousPageLabel}\n disabled={previousButtonDisabled}\n onClick={handlePrevPageClick}\n {...(previousButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'prev',\n },\n }))}\n >\n <InternalIcon name=\"angle-left\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n {pagesVariant === 'compact' ? (\n <li aria-disabled={disabled ? true : undefined} className={styles['pages-compact']}>\n <span className={testUtilStyles['pages-compact-text']}>\n {pagesCompactText?.({\n currentPage: currentPageIndex,\n pagesCount,\n openEnd: !!openEnd,\n })}\n </span>\n </li>\n ) : (\n <>\n <PageNumber\n pageIndex={1}\n isCurrent={currentPageIndex === 1}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(1)}\n onClick={handlePageClick}\n />\n {leftDots && <li className={styles.dots}>...</li>}\n {range(leftIndex, rightIndex).map(pageIndex => (\n <PageNumber\n key={pageIndex}\n isCurrent={currentPageIndex === pageIndex}\n pageIndex={pageIndex}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pageIndex)}\n onClick={handlePageClick}\n />\n ))}\n {rightDots && <li className={styles.dots}>...</li>}\n {!openEnd && pagesCount > 1 && (\n <PageNumber\n isCurrent={currentPageIndex === pagesCount}\n pageIndex={pagesCount}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pagesCount)}\n onClick={handlePageClick}\n />\n )}\n </>\n )}\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex + 1}\n ariaLabel={nextPageLabel}\n disabled={nextButtonDisabled}\n onClick={handleNextPageClick}\n {...(nextButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'next',\n },\n }))}\n >\n <InternalIcon name=\"angle-right\" variant={disabled ? 'disabled' : 'normal'} />\n </PageButton>\n {jumpToPage && (\n <li className={styles['jump-to-page']}>\n <InternalSpaceBetween size=\"xxs\" direction=\"horizontal\" alignItems=\"end\">\n <div className={styles['jump-to-page-input']}>\n <InternalInput\n ref={jumpToPageInputRef}\n type=\"number\"\n value={jumpToPageValue}\n disabled={disabled}\n inlineLabelText={jumpToPageLabel || undefined}\n __fullWidth={true}\n ariaLabel={jumpToPageLabel || undefined}\n nativeInputAttributes={{\n min: 1,\n max: !openEnd ? pagesCount : undefined,\n }}\n onChange={handleInputChange}\n onBlur={() => setHasError(false)}\n onKeyDown={e => {\n if (e.detail.keyCode === 13 && jumpToPageValue && Number(jumpToPageValue) !== currentPageIndex) {\n handleJumpToPageClick(Number(jumpToPageValue));\n }\n }}\n />\n </div>\n {hasError && !jumpToPage?.loading ? (\n <InternalPopover\n size=\"medium\"\n dismissButton={false}\n __visible={true}\n content={jumpToPageError}\n position=\"bottom\"\n triggerType=\"custom\"\n __onVisibleChange={({ detail }) => !detail.visible && setHasError(false)}\n >\n {jumpToPageButton}\n </InternalPopover>\n ) : (\n jumpToPageButton\n )}\n </InternalSpaceBetween>\n </li>\n )}\n </ul>\n );\n }\n);\n\nexport default InternalPagination;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/pagination/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalButton from '../button/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { BaseChangeDetail } from '../input/interfaces';\nimport InternalInput from '../input/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { useTableComponentsContext } from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalPopover from '../popover/internal';\nimport InternalSpaceBetween from '../space-between/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataPaginationClick } from './analytics-metadata/interfaces';\nimport { PaginationProps } from './interfaces';\nimport { getPaginationState, range } from './utils';\n\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface PageButtonProps {\n className?: string;\n ariaLabel: string;\n disabled?: boolean;\n pageIndex: number;\n isCurrent?: boolean;\n children?: React.ReactNode;\n onClick: (requestedIndex: number) => void;\n}\n\nfunction PageButton({\n className,\n ariaLabel,\n disabled,\n pageIndex,\n isCurrent = false,\n children,\n onClick,\n ...rest\n}: PageButtonProps) {\n function handleClick(event: React.MouseEvent) {\n if (disabled) {\n return;\n }\n event.preventDefault();\n onClick(pageIndex);\n }\n return (\n <li className={styles['page-item']} {...copyAnalyticsMetadataAttribute(rest)}>\n <button\n className={clsx(\n className,\n styles.button,\n disabled && styles['button-disabled'],\n isCurrent && styles['button-current']\n )}\n type=\"button\"\n aria-label={ariaLabel}\n aria-disabled={disabled ? true : undefined}\n tabIndex={disabled ? -1 : 0}\n onClick={handleClick}\n aria-current={isCurrent}\n data-awsui-motion-trigger=\"hover\"\n {...(disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'click',\n detail: {\n label: { root: 'self' },\n },\n } as GeneratedAnalyticsMetadataPaginationClick))}\n >\n {children}\n </button>\n </li>\n );\n}\n\nfunction PageNumber({ pageIndex, ...rest }: PageButtonProps) {\n return (\n <PageButton\n className={styles['page-number']}\n pageIndex={pageIndex}\n {...rest}\n {...(rest.disabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: `${pageIndex}`,\n },\n }))}\n >\n {pageIndex}\n </PageButton>\n );\n}\n\ntype InternalPaginationProps = PaginationProps & InternalBaseComponentProps;\n\nconst InternalPagination = React.forwardRef(\n (\n {\n openEnd,\n currentPageIndex,\n ariaLabels,\n i18nStrings,\n pagesCount,\n disabled,\n pagesVariant = 'normal',\n onChange,\n onNextPageClick,\n onPreviousPageClick,\n __internalRootRef,\n jumpToPage,\n ...rest\n }: InternalPaginationProps,\n ref: React.Ref<PaginationProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const { leftDots, leftIndex, rightIndex, rightDots } = getPaginationState(currentPageIndex, pagesCount, openEnd);\n const [jumpToPageValue, setJumpToPageValue] = useState(currentPageIndex?.toString());\n const previousLoading = usePrevious(jumpToPage?.loading);\n const jumpToPageInputRef = useRef<HTMLInputElement>(null);\n const [hasError, setHasError] = useState(false);\n\n const i18n = useInternalI18n('pagination');\n\n // Expose setError function via ref\n React.useImperativeHandle(ref, () => ({\n setError: (error: boolean) => setHasError(error),\n }));\n\n // Sync input with currentPageIndex after loading completes\n React.useEffect(() => {\n if (previousLoading && !jumpToPage?.loading) {\n setJumpToPageValue(String(currentPageIndex));\n }\n }, [previousLoading, jumpToPage?.loading, currentPageIndex]);\n\n const paginationLabel = ariaLabels?.paginationLabel ?? '';\n const nextPageLabel = i18n('ariaLabels.nextPageLabel', ariaLabels?.nextPageLabel) ?? '';\n const previousPageLabel = i18n('ariaLabels.previousPageLabel', ariaLabels?.previousPageLabel) ?? '';\n const pageNumberLabelFn =\n i18n('ariaLabels.pageLabel', ariaLabels?.pageLabel, format => pageNumber => format({ pageNumber })) ??\n ((pageNumber: number) => `${pageNumber}`);\n\n const pagesCompactText = i18n(\n 'i18nStrings.pagesCompactText',\n i18nStrings?.pagesCompactText,\n format => options =>\n format({\n currentPage: options.currentPage,\n pagesCount: options.pagesCount,\n openEnd: options.openEnd ? 'true' : 'false',\n })\n );\n\n const jumpToPageLabel = i18n('i18nStrings.jumpToPageInputLabel', i18nStrings?.jumpToPageInputLabel) ?? '';\n const jumpToPageButtonLabel = i18n('ariaLabels.jumpToPageButtonLabel', ariaLabels?.jumpToPageButton) ?? '';\n const jumpToPageError = i18n('i18nStrings.jumpToPageError', i18nStrings?.jumpToPageError) ?? '';\n const jumpToPageLoadingText = i18n('i18nStrings.jumpToPageLoadingText', i18nStrings?.jumpToPageLoadingText) ?? '';\n\n function handlePrevPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onPreviousPageClick, {\n requestedPageAvailable: true,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handleNextPageClick(requestedPageIndex: number) {\n handlePageClick(requestedPageIndex);\n fireNonCancelableEvent(onNextPageClick, {\n requestedPageAvailable: currentPageIndex < pagesCount,\n requestedPageIndex: requestedPageIndex,\n });\n }\n\n function handlePageClick(requestedPageIndex: number, errorState?: boolean) {\n setJumpToPageValue(String(requestedPageIndex));\n setHasError(!!errorState); // Clear error on successful navigation\n fireNonCancelableEvent(onChange, { currentPageIndex: requestedPageIndex });\n }\n\n function handleJumpToPageClick(requestedPageIndex: number) {\n const adjustedIndex = Math.max(1, Math.floor(requestedPageIndex));\n\n if (openEnd) {\n // Open-end: always navigate, parent will handle async loading\n handlePageClick(adjustedIndex);\n } else {\n // Closed-end: validate range\n if (adjustedIndex >= 1 && adjustedIndex <= pagesCount) {\n handlePageClick(adjustedIndex);\n } else {\n // Out of range - set error and navigate to last page\n handlePageClick(pagesCount, true);\n }\n }\n jumpToPageInputRef.current?.focus();\n }\n\n // Auto-clear error when user types in the input\n const handleInputChange = (e: NonCancelableCustomEvent<BaseChangeDetail>) => {\n setJumpToPageValue(e.detail.value);\n if (hasError) {\n setHasError(false);\n }\n };\n\n const previousButtonDisabled = disabled || currentPageIndex === 1;\n const nextButtonDisabled = disabled || (!openEnd && (pagesCount === 0 || currentPageIndex === pagesCount));\n const tableComponentContext = useTableComponentsContext();\n if (tableComponentContext?.paginationRef?.current) {\n tableComponentContext.paginationRef.current.currentPageIndex = currentPageIndex;\n tableComponentContext.paginationRef.current.totalPageCount = pagesCount;\n tableComponentContext.paginationRef.current.openEnd = openEnd;\n }\n\n const jumpToPageButton = (\n <InternalButton\n iconName=\"arrow-right\"\n variant=\"icon\"\n loading={jumpToPage?.loading}\n loadingText={jumpToPageLoadingText}\n ariaLabel={jumpToPage?.loading ? jumpToPageLoadingText : jumpToPageButtonLabel}\n onClick={() => handleJumpToPageClick(Number(jumpToPageValue))}\n disabled={disabled || !jumpToPageValue || Number(jumpToPageValue) === currentPageIndex}\n />\n );\n\n return (\n <ul\n aria-label={paginationLabel}\n {...baseProps}\n className={clsx(baseProps.className, styles.root, disabled && styles['root-disabled'])}\n ref={__internalRootRef}\n >\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex - 1}\n ariaLabel={previousPageLabel}\n disabled={previousButtonDisabled}\n onClick={handlePrevPageClick}\n {...(previousButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'prev',\n },\n }))}\n >\n <InternalIcon\n name=\"angle-left\"\n variant={disabled ? 'disabled' : 'normal'}\n nativeAttributes={{ 'data-awsui-motion-target': '' }}\n />\n </PageButton>\n {pagesVariant === 'compact' ? (\n <li aria-disabled={disabled ? true : undefined} className={styles['pages-compact']}>\n <span className={testUtilStyles['pages-compact-text']}>\n {pagesCompactText?.({\n currentPage: currentPageIndex,\n pagesCount,\n openEnd: !!openEnd,\n })}\n </span>\n </li>\n ) : (\n <>\n <PageNumber\n pageIndex={1}\n isCurrent={currentPageIndex === 1}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(1)}\n onClick={handlePageClick}\n />\n {leftDots && <li className={styles.dots}>...</li>}\n {range(leftIndex, rightIndex).map(pageIndex => (\n <PageNumber\n key={pageIndex}\n isCurrent={currentPageIndex === pageIndex}\n pageIndex={pageIndex}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pageIndex)}\n onClick={handlePageClick}\n />\n ))}\n {rightDots && <li className={styles.dots}>...</li>}\n {!openEnd && pagesCount > 1 && (\n <PageNumber\n isCurrent={currentPageIndex === pagesCount}\n pageIndex={pagesCount}\n disabled={disabled}\n ariaLabel={pageNumberLabelFn(pagesCount)}\n onClick={handlePageClick}\n />\n )}\n </>\n )}\n <PageButton\n className={styles.arrow}\n pageIndex={currentPageIndex + 1}\n ariaLabel={nextPageLabel}\n disabled={nextButtonDisabled}\n onClick={handleNextPageClick}\n {...(nextButtonDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n detail: {\n position: 'next',\n },\n }))}\n >\n <InternalIcon\n name=\"angle-right\"\n variant={disabled ? 'disabled' : 'normal'}\n nativeAttributes={{ 'data-awsui-motion-target': '' }}\n />\n </PageButton>\n {jumpToPage && (\n <li className={styles['jump-to-page']}>\n <InternalSpaceBetween size=\"xxs\" direction=\"horizontal\" alignItems=\"end\">\n <div className={styles['jump-to-page-input']}>\n <InternalInput\n ref={jumpToPageInputRef}\n type=\"number\"\n value={jumpToPageValue}\n disabled={disabled}\n inlineLabelText={jumpToPageLabel || undefined}\n __fullWidth={true}\n ariaLabel={jumpToPageLabel || undefined}\n nativeInputAttributes={{\n min: 1,\n max: !openEnd ? pagesCount : undefined,\n }}\n onChange={handleInputChange}\n onBlur={() => setHasError(false)}\n onKeyDown={e => {\n if (e.detail.keyCode === 13 && jumpToPageValue && Number(jumpToPageValue) !== currentPageIndex) {\n handleJumpToPageClick(Number(jumpToPageValue));\n }\n }}\n />\n </div>\n {hasError && !jumpToPage?.loading ? (\n <InternalPopover\n size=\"medium\"\n dismissButton={false}\n __visible={true}\n content={jumpToPageError}\n position=\"bottom\"\n triggerType=\"custom\"\n __onVisibleChange={({ detail }) => !detail.visible && setHasError(false)}\n >\n {jumpToPageButton}\n </InternalPopover>\n ) : (\n jumpToPageButton\n )}\n </InternalSpaceBetween>\n </li>\n )}\n </ul>\n );\n }\n);\n\nexport default InternalPagination;\n"]}
@@ -70,11 +70,11 @@ function OperationSelector({ operation, onChange, ariaLabel, andText, orText, pa
70
70
  function TokenDismissButton({ ariaLabel, onClick, parent, disabled, }) {
71
71
  return (React.createElement("button", { type: "button", className: clsx(parent
72
72
  ? clsx(styles['dismiss-button'], testUtilStyles['filtering-token-dismiss-button'])
73
- : clsx(styles['inner-dismiss-button'], testUtilStyles['filtering-token-inner-dismiss-button'])), "aria-label": ariaLabel, onClick: onClick, disabled: disabled, ...getAnalyticsMetadataAttribute({ action: 'dismiss' }) },
74
- React.createElement(InternalIcon, { name: "close" })));
73
+ : clsx(styles['inner-dismiss-button'], testUtilStyles['filtering-token-inner-dismiss-button'])), "aria-label": ariaLabel, onClick: onClick, disabled: disabled, "data-awsui-motion-trigger": "hover", ...getAnalyticsMetadataAttribute({ action: 'dismiss' }) },
74
+ React.createElement(InternalIcon, { name: "close", nativeAttributes: { 'data-awsui-motion-target': '' } })));
75
75
  }
76
76
  function TokenEditButton({ ariaLabel, disabled }) {
77
- return (React.createElement("button", { type: "button", className: clsx(styles['edit-button'], testUtilStyles['filtering-token-edit-button']), "aria-label": ariaLabel, disabled: disabled },
78
- React.createElement(InternalIcon, { name: "edit" })));
77
+ return (React.createElement("button", { type: "button", className: clsx(styles['edit-button'], testUtilStyles['filtering-token-edit-button']), "aria-label": ariaLabel, disabled: disabled, "data-awsui-motion-trigger": "hover" },
78
+ React.createElement(InternalIcon, { name: "edit", nativeAttributes: { 'data-awsui-motion-target': '' } })));
79
79
  }
80
80
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/property-filter/filtering-token/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useDensityMode, useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport { useListFocusController } from '../../internal/hooks/use-list-focus-controller';\nimport { PopoverProps } from '../../popover/interfaces';\nimport InternalPopover, { InternalPopoverProps } from '../../popover/internal';\nimport InternalSelect from '../../select/internal';\nimport { GeneratedAnalyticsMetadataPropertyEditStart } from '../analytics-metadata/interfaces';\n\nimport testUtilStyles from '../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport namespace FilteringTokenProps {\n export type Operation = 'and' | 'or';\n}\n\nexport interface FilteringTokenProps {\n tokens: TokenItem[];\n operation: FilteringTokenProps.Operation;\n groupOperation: FilteringTokenProps.Operation;\n showOperation: boolean;\n readOnlyOperations: boolean;\n andText: string;\n orText: string;\n groupAriaLabel: string;\n operationAriaLabel: string;\n groupEditAriaLabel: string;\n disabled?: boolean;\n onChangeOperation: (operation: FilteringTokenProps.Operation) => void;\n onChangeGroupOperation: (operation: FilteringTokenProps.Operation) => void;\n onDismissToken: (tokenIndex: number) => void;\n editorContent: React.ReactNode;\n editorHeader: string;\n editorDismissAriaLabel?: string;\n editorExpandToViewport: boolean;\n onEditorOpen?: () => void;\n hasGroups: boolean;\n popoverSize: InternalPopoverProps['size'];\n}\n\nexport interface FilteringTokenRef {\n closeEditor(): void;\n}\n\ninterface TokenItem {\n content: React.ReactNode;\n ariaLabel: string;\n dismissAriaLabel: string;\n}\n\nconst FilteringToken = forwardRef(\n (\n {\n tokens,\n showOperation,\n readOnlyOperations,\n operation,\n groupOperation,\n andText,\n orText,\n groupAriaLabel,\n operationAriaLabel,\n groupEditAriaLabel,\n disabled = false,\n onChangeOperation,\n onChangeGroupOperation,\n onDismissToken,\n editorContent,\n editorHeader,\n editorDismissAriaLabel,\n editorExpandToViewport,\n onEditorOpen,\n hasGroups,\n popoverSize,\n ...rest\n }: FilteringTokenProps,\n ref: React.Ref<FilteringTokenRef>\n ) => {\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved: target => {\n target.focus();\n setNextFocusIndex(null);\n },\n listItemSelector: `.${styles['inner-root']}`,\n fallbackSelector: `.${styles.root}`,\n });\n\n const popoverRef = useRef<PopoverProps.Ref>(null);\n const popoverProps: InternalPopoverProps = {\n content: editorContent,\n triggerType: 'text',\n header: editorHeader,\n size: popoverSize,\n position: 'bottom',\n dismissAriaLabel: editorDismissAriaLabel,\n renderWithPortal: editorExpandToViewport,\n __onOpen: onEditorOpen,\n __closeAnalyticsAction: 'editClose',\n };\n useImperativeHandle(ref, () => ({ closeEditor: () => popoverRef.current?.focus() }));\n\n return (\n <TokenGroup\n ref={tokenListRef}\n ariaLabel={tokens.length === 1 ? tokens[0].ariaLabel : groupAriaLabel}\n operation={\n showOperation && (\n <OperationSelector\n operation={operation}\n onChange={onChangeOperation}\n ariaLabel={operationAriaLabel}\n andText={andText}\n orText={orText}\n parent={true}\n readOnlyOperations={readOnlyOperations}\n disabled={disabled}\n />\n )\n }\n tokenAction={\n tokens.length === 1 ? (\n <TokenDismissButton\n ariaLabel={tokens[0].dismissAriaLabel}\n onClick={() => onDismissToken(0)}\n parent={true}\n disabled={disabled}\n />\n ) : (\n <InternalPopover ref={popoverRef} {...popoverProps} triggerType=\"filtering-token\">\n <TokenEditButton ariaLabel={groupEditAriaLabel} disabled={disabled} />\n </InternalPopover>\n )\n }\n parent={true}\n grouped={tokens.length > 1}\n disabled={disabled}\n hasGroups={hasGroups}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {tokens.length === 1 ? (\n <InternalPopover ref={popoverRef} {...popoverProps}>\n <span\n {...getAnalyticsMetadataAttribute({\n action: 'editStart',\n } as Partial<GeneratedAnalyticsMetadataPropertyEditStart>)}\n >\n {tokens[0].content}\n </span>\n </InternalPopover>\n ) : (\n <ul className={styles.list}>\n {tokens.map((token, index) => (\n <li key={index}>\n <TokenGroup\n ariaLabel={token.ariaLabel}\n operation={\n index !== 0 && (\n <OperationSelector\n operation={groupOperation}\n onChange={onChangeGroupOperation}\n ariaLabel={operationAriaLabel}\n andText={andText}\n orText={orText}\n parent={false}\n readOnlyOperations={readOnlyOperations}\n disabled={disabled}\n />\n )\n }\n tokenAction={\n <TokenDismissButton\n ariaLabel={token.dismissAriaLabel}\n onClick={() => {\n onDismissToken(index);\n setNextFocusIndex(index);\n }}\n parent={false}\n disabled={disabled}\n />\n }\n parent={false}\n grouped={false}\n disabled={disabled}\n hasGroups={false}\n >\n {token.content}\n </TokenGroup>\n </li>\n ))}\n </ul>\n )}\n </TokenGroup>\n );\n }\n);\n\nexport default FilteringToken;\n\nconst TokenGroup = forwardRef(\n (\n {\n ariaLabel,\n children,\n operation,\n tokenAction,\n parent,\n grouped,\n disabled,\n hasGroups,\n ...rest\n }: {\n ariaLabel?: string;\n children: React.ReactNode;\n operation: React.ReactNode;\n tokenAction: React.ReactNode;\n parent: boolean;\n grouped: boolean;\n disabled: boolean;\n hasGroups: boolean;\n },\n ref: React.Ref<HTMLDivElement>\n ) => {\n const groupRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(ref, groupRef);\n const isCompactMode = useDensityMode(groupRef) === 'compact';\n return (\n <div\n ref={mergedRef}\n className={clsx(\n parent\n ? clsx(styles.root, testUtilStyles['filtering-token'])\n : clsx(styles['inner-root'], testUtilStyles['filtering-token-inner']),\n hasGroups && styles['has-groups'],\n isCompactMode && styles['compact-mode']\n )}\n role=\"group\"\n aria-label={ariaLabel}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {operation}\n\n <div\n className={clsx(\n parent ? styles.token : styles['inner-token'],\n !!operation && styles['show-operation'],\n grouped && styles.grouped,\n disabled && styles['token-disabled']\n )}\n aria-disabled={disabled}\n >\n <div\n className={clsx(\n parent\n ? clsx(styles['token-content'], testUtilStyles['filtering-token-content'])\n : clsx(styles['inner-token-content'], testUtilStyles['filtering-token-inner-content']),\n grouped && styles['token-content-grouped']\n )}\n >\n {children}\n </div>\n\n {tokenAction}\n </div>\n </div>\n );\n }\n);\n\nfunction OperationSelector({\n operation,\n onChange,\n ariaLabel,\n andText,\n orText,\n parent,\n readOnlyOperations,\n disabled,\n}: {\n operation: FilteringTokenProps.Operation;\n onChange: (operation: FilteringTokenProps.Operation) => void;\n andText: string;\n orText: string;\n ariaLabel: string;\n parent: boolean;\n readOnlyOperations: boolean;\n disabled?: boolean;\n}) {\n return (\n <InternalSelect\n __inFilteringToken={parent ? 'root' : 'nested'}\n className={clsx(\n parent\n ? clsx(styles.select, testUtilStyles['filtering-token-select'])\n : clsx(styles['inner-select'], testUtilStyles['filtering-token-inner-select'])\n )}\n options={[\n { value: 'and', label: andText },\n { value: 'or', label: orText },\n ]}\n selectedOption={{ value: operation, label: operation === 'and' ? andText : orText }}\n onChange={e => onChange(e.detail.selectedOption.value as FilteringTokenProps.Operation)}\n disabled={disabled}\n readOnly={readOnlyOperations}\n ariaLabel={ariaLabel}\n />\n );\n}\n\nfunction TokenDismissButton({\n ariaLabel,\n onClick,\n parent,\n disabled,\n}: {\n ariaLabel: string;\n onClick: () => void;\n parent: boolean;\n disabled?: boolean;\n}) {\n return (\n <button\n type=\"button\"\n className={clsx(\n parent\n ? clsx(styles['dismiss-button'], testUtilStyles['filtering-token-dismiss-button'])\n : clsx(styles['inner-dismiss-button'], testUtilStyles['filtering-token-inner-dismiss-button'])\n )}\n aria-label={ariaLabel}\n onClick={onClick}\n disabled={disabled}\n {...getAnalyticsMetadataAttribute({ action: 'dismiss' })}\n >\n <InternalIcon name=\"close\" />\n </button>\n );\n}\n\nfunction TokenEditButton({ ariaLabel, disabled }: { ariaLabel: string; disabled?: boolean }) {\n return (\n <button\n type=\"button\"\n className={clsx(styles['edit-button'], testUtilStyles['filtering-token-edit-button'])}\n aria-label={ariaLabel}\n disabled={disabled}\n >\n <InternalIcon name=\"edit\" />\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/property-filter/filtering-token/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useDensityMode, useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\nimport {\n copyAnalyticsMetadataAttribute,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport { useListFocusController } from '../../internal/hooks/use-list-focus-controller';\nimport { PopoverProps } from '../../popover/interfaces';\nimport InternalPopover, { InternalPopoverProps } from '../../popover/internal';\nimport InternalSelect from '../../select/internal';\nimport { GeneratedAnalyticsMetadataPropertyEditStart } from '../analytics-metadata/interfaces';\n\nimport testUtilStyles from '../test-classes/styles.css.js';\nimport styles from './styles.css.js';\n\nexport namespace FilteringTokenProps {\n export type Operation = 'and' | 'or';\n}\n\nexport interface FilteringTokenProps {\n tokens: TokenItem[];\n operation: FilteringTokenProps.Operation;\n groupOperation: FilteringTokenProps.Operation;\n showOperation: boolean;\n readOnlyOperations: boolean;\n andText: string;\n orText: string;\n groupAriaLabel: string;\n operationAriaLabel: string;\n groupEditAriaLabel: string;\n disabled?: boolean;\n onChangeOperation: (operation: FilteringTokenProps.Operation) => void;\n onChangeGroupOperation: (operation: FilteringTokenProps.Operation) => void;\n onDismissToken: (tokenIndex: number) => void;\n editorContent: React.ReactNode;\n editorHeader: string;\n editorDismissAriaLabel?: string;\n editorExpandToViewport: boolean;\n onEditorOpen?: () => void;\n hasGroups: boolean;\n popoverSize: InternalPopoverProps['size'];\n}\n\nexport interface FilteringTokenRef {\n closeEditor(): void;\n}\n\ninterface TokenItem {\n content: React.ReactNode;\n ariaLabel: string;\n dismissAriaLabel: string;\n}\n\nconst FilteringToken = forwardRef(\n (\n {\n tokens,\n showOperation,\n readOnlyOperations,\n operation,\n groupOperation,\n andText,\n orText,\n groupAriaLabel,\n operationAriaLabel,\n groupEditAriaLabel,\n disabled = false,\n onChangeOperation,\n onChangeGroupOperation,\n onDismissToken,\n editorContent,\n editorHeader,\n editorDismissAriaLabel,\n editorExpandToViewport,\n onEditorOpen,\n hasGroups,\n popoverSize,\n ...rest\n }: FilteringTokenProps,\n ref: React.Ref<FilteringTokenRef>\n ) => {\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved: target => {\n target.focus();\n setNextFocusIndex(null);\n },\n listItemSelector: `.${styles['inner-root']}`,\n fallbackSelector: `.${styles.root}`,\n });\n\n const popoverRef = useRef<PopoverProps.Ref>(null);\n const popoverProps: InternalPopoverProps = {\n content: editorContent,\n triggerType: 'text',\n header: editorHeader,\n size: popoverSize,\n position: 'bottom',\n dismissAriaLabel: editorDismissAriaLabel,\n renderWithPortal: editorExpandToViewport,\n __onOpen: onEditorOpen,\n __closeAnalyticsAction: 'editClose',\n };\n useImperativeHandle(ref, () => ({ closeEditor: () => popoverRef.current?.focus() }));\n\n return (\n <TokenGroup\n ref={tokenListRef}\n ariaLabel={tokens.length === 1 ? tokens[0].ariaLabel : groupAriaLabel}\n operation={\n showOperation && (\n <OperationSelector\n operation={operation}\n onChange={onChangeOperation}\n ariaLabel={operationAriaLabel}\n andText={andText}\n orText={orText}\n parent={true}\n readOnlyOperations={readOnlyOperations}\n disabled={disabled}\n />\n )\n }\n tokenAction={\n tokens.length === 1 ? (\n <TokenDismissButton\n ariaLabel={tokens[0].dismissAriaLabel}\n onClick={() => onDismissToken(0)}\n parent={true}\n disabled={disabled}\n />\n ) : (\n <InternalPopover ref={popoverRef} {...popoverProps} triggerType=\"filtering-token\">\n <TokenEditButton ariaLabel={groupEditAriaLabel} disabled={disabled} />\n </InternalPopover>\n )\n }\n parent={true}\n grouped={tokens.length > 1}\n disabled={disabled}\n hasGroups={hasGroups}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {tokens.length === 1 ? (\n <InternalPopover ref={popoverRef} {...popoverProps}>\n <span\n {...getAnalyticsMetadataAttribute({\n action: 'editStart',\n } as Partial<GeneratedAnalyticsMetadataPropertyEditStart>)}\n >\n {tokens[0].content}\n </span>\n </InternalPopover>\n ) : (\n <ul className={styles.list}>\n {tokens.map((token, index) => (\n <li key={index}>\n <TokenGroup\n ariaLabel={token.ariaLabel}\n operation={\n index !== 0 && (\n <OperationSelector\n operation={groupOperation}\n onChange={onChangeGroupOperation}\n ariaLabel={operationAriaLabel}\n andText={andText}\n orText={orText}\n parent={false}\n readOnlyOperations={readOnlyOperations}\n disabled={disabled}\n />\n )\n }\n tokenAction={\n <TokenDismissButton\n ariaLabel={token.dismissAriaLabel}\n onClick={() => {\n onDismissToken(index);\n setNextFocusIndex(index);\n }}\n parent={false}\n disabled={disabled}\n />\n }\n parent={false}\n grouped={false}\n disabled={disabled}\n hasGroups={false}\n >\n {token.content}\n </TokenGroup>\n </li>\n ))}\n </ul>\n )}\n </TokenGroup>\n );\n }\n);\n\nexport default FilteringToken;\n\nconst TokenGroup = forwardRef(\n (\n {\n ariaLabel,\n children,\n operation,\n tokenAction,\n parent,\n grouped,\n disabled,\n hasGroups,\n ...rest\n }: {\n ariaLabel?: string;\n children: React.ReactNode;\n operation: React.ReactNode;\n tokenAction: React.ReactNode;\n parent: boolean;\n grouped: boolean;\n disabled: boolean;\n hasGroups: boolean;\n },\n ref: React.Ref<HTMLDivElement>\n ) => {\n const groupRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergeRefs(ref, groupRef);\n const isCompactMode = useDensityMode(groupRef) === 'compact';\n return (\n <div\n ref={mergedRef}\n className={clsx(\n parent\n ? clsx(styles.root, testUtilStyles['filtering-token'])\n : clsx(styles['inner-root'], testUtilStyles['filtering-token-inner']),\n hasGroups && styles['has-groups'],\n isCompactMode && styles['compact-mode']\n )}\n role=\"group\"\n aria-label={ariaLabel}\n {...copyAnalyticsMetadataAttribute(rest)}\n >\n {operation}\n\n <div\n className={clsx(\n parent ? styles.token : styles['inner-token'],\n !!operation && styles['show-operation'],\n grouped && styles.grouped,\n disabled && styles['token-disabled']\n )}\n aria-disabled={disabled}\n >\n <div\n className={clsx(\n parent\n ? clsx(styles['token-content'], testUtilStyles['filtering-token-content'])\n : clsx(styles['inner-token-content'], testUtilStyles['filtering-token-inner-content']),\n grouped && styles['token-content-grouped']\n )}\n >\n {children}\n </div>\n\n {tokenAction}\n </div>\n </div>\n );\n }\n);\n\nfunction OperationSelector({\n operation,\n onChange,\n ariaLabel,\n andText,\n orText,\n parent,\n readOnlyOperations,\n disabled,\n}: {\n operation: FilteringTokenProps.Operation;\n onChange: (operation: FilteringTokenProps.Operation) => void;\n andText: string;\n orText: string;\n ariaLabel: string;\n parent: boolean;\n readOnlyOperations: boolean;\n disabled?: boolean;\n}) {\n return (\n <InternalSelect\n __inFilteringToken={parent ? 'root' : 'nested'}\n className={clsx(\n parent\n ? clsx(styles.select, testUtilStyles['filtering-token-select'])\n : clsx(styles['inner-select'], testUtilStyles['filtering-token-inner-select'])\n )}\n options={[\n { value: 'and', label: andText },\n { value: 'or', label: orText },\n ]}\n selectedOption={{ value: operation, label: operation === 'and' ? andText : orText }}\n onChange={e => onChange(e.detail.selectedOption.value as FilteringTokenProps.Operation)}\n disabled={disabled}\n readOnly={readOnlyOperations}\n ariaLabel={ariaLabel}\n />\n );\n}\n\nfunction TokenDismissButton({\n ariaLabel,\n onClick,\n parent,\n disabled,\n}: {\n ariaLabel: string;\n onClick: () => void;\n parent: boolean;\n disabled?: boolean;\n}) {\n return (\n <button\n type=\"button\"\n className={clsx(\n parent\n ? clsx(styles['dismiss-button'], testUtilStyles['filtering-token-dismiss-button'])\n : clsx(styles['inner-dismiss-button'], testUtilStyles['filtering-token-inner-dismiss-button'])\n )}\n aria-label={ariaLabel}\n onClick={onClick}\n disabled={disabled}\n data-awsui-motion-trigger=\"hover\"\n {...getAnalyticsMetadataAttribute({ action: 'dismiss' })}\n >\n <InternalIcon name=\"close\" nativeAttributes={{ 'data-awsui-motion-target': '' }} />\n </button>\n );\n}\n\nfunction TokenEditButton({ ariaLabel, disabled }: { ariaLabel: string; disabled?: boolean }) {\n return (\n <button\n type=\"button\"\n className={clsx(styles['edit-button'], testUtilStyles['filtering-token-edit-button'])}\n aria-label={ariaLabel}\n disabled={disabled}\n data-awsui-motion-trigger=\"hover\"\n >\n <InternalIcon name=\"edit\" nativeAttributes={{ 'data-awsui-motion-target': '' }} />\n </button>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAKrD,UAAU,YAAa,SAAQ,qBAAqB,CAAC,MAAM;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,OAAO,wFA+EnB,CAAC"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAKrD,UAAU,YAAa,SAAQ,qBAAqB,CAAC,MAAM;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,OAAO,wFAiFnB,CAAC"}
@@ -15,7 +15,7 @@ export const Segment = React.forwardRef(({ disabled, disabledReason, text, iconN
15
15
  const isDisabledWithReason = disabled && !!disabledReason;
16
16
  const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);
17
17
  const isVisualRefresh = useVisualRefresh();
18
- return (React.createElement("button", { className: clsx(styles.segment, { [styles.disabled]: !!disabled }, { [styles.selected]: isActive }, { [styles.refresh]: isVisualRefresh }), ref: useMergeRefs(ref, buttonRef), onClick: onClick, onKeyDown: onKeyDown, disabled: disabled && !disabledReason, "aria-disabled": isDisabledWithReason ? 'true' : undefined, type: "button", tabIndex: tabIndex, "aria-pressed": isActive ? 'true' : 'false', "aria-label": !text ? iconAlt : undefined, onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined, onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined, ...(isDisabledWithReason ? targetProps : {}), "data-testid": id, style: getSegmentedControlSegmentStyles(style) },
18
+ return (React.createElement("button", { className: clsx(styles.segment, { [styles.disabled]: !!disabled }, { [styles.selected]: isActive }, { [styles.refresh]: isVisualRefresh }), ref: useMergeRefs(ref, buttonRef), onClick: onClick, onKeyDown: onKeyDown, disabled: disabled && !disabledReason, "aria-disabled": isDisabledWithReason ? 'true' : undefined, type: "button", tabIndex: tabIndex, "aria-pressed": isActive ? 'true' : 'false', "aria-label": !text ? iconAlt : undefined, onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined, onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined, ...(isDisabledWithReason ? targetProps : {}), "data-testid": id, "data-awsui-motion-trigger": "hover", "data-awsui-motion-target": "", style: getSegmentedControlSegmentStyles(style) },
19
19
  (iconName || iconUrl || iconSvg) && (React.createElement(InternalIcon, { className: clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text']), name: iconName, url: iconUrl, svg: iconSvg, alt: iconAlt, variant: disabled ? 'disabled' : 'normal' })),
20
20
  React.createElement("span", null, text),
21
21
  isDisabledWithReason && (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalIcon from '../icon/internal';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport Tooltip from '../tooltip/internal.js';\nimport { SegmentedControlProps } from './interfaces';\nimport { getSegmentedControlSegmentStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface SegmentProps extends SegmentedControlProps.Option {\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n isActive: boolean;\n tabIndex: number;\n style: SegmentedControlProps['style'];\n}\n\nexport const Segment = React.forwardRef(\n (\n {\n disabled,\n disabledReason,\n text,\n iconName,\n iconAlt,\n iconUrl,\n iconSvg,\n isActive,\n onClick,\n onKeyDown,\n tabIndex,\n id,\n style,\n }: SegmentProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const buttonRef = useRef<HTMLElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n const isDisabledWithReason = disabled && !!disabledReason;\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <button\n className={clsx(\n styles.segment,\n { [styles.disabled]: !!disabled },\n { [styles.selected]: isActive },\n { [styles.refresh]: isVisualRefresh }\n )}\n ref={useMergeRefs(ref, buttonRef)}\n onClick={onClick}\n onKeyDown={onKeyDown}\n disabled={disabled && !disabledReason}\n aria-disabled={isDisabledWithReason ? 'true' : undefined}\n type=\"button\"\n tabIndex={tabIndex}\n aria-pressed={isActive ? 'true' : 'false'}\n aria-label={!text ? iconAlt : undefined}\n onFocus={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onBlur={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n onMouseEnter={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onMouseLeave={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n {...(isDisabledWithReason ? targetProps : {})}\n data-testid={id}\n style={getSegmentedControlSegmentStyles(style)}\n >\n {(iconName || iconUrl || iconSvg) && (\n <InternalIcon\n className={clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text'])}\n name={iconName}\n url={iconUrl}\n svg={iconSvg}\n alt={iconAlt}\n variant={disabled ? 'disabled' : 'normal'}\n />\n )}\n <span>{text}</span>\n\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip\n className={styles['disabled-reason-tooltip']}\n getTrack={() => buttonRef.current}\n content={disabledReason!}\n onEscape={() => setShowTooltip(false)}\n />\n )}\n </>\n )}\n </button>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalIcon from '../icon/internal';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport Tooltip from '../tooltip/internal.js';\nimport { SegmentedControlProps } from './interfaces';\nimport { getSegmentedControlSegmentStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface SegmentProps extends SegmentedControlProps.Option {\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n isActive: boolean;\n tabIndex: number;\n style: SegmentedControlProps['style'];\n}\n\nexport const Segment = React.forwardRef(\n (\n {\n disabled,\n disabledReason,\n text,\n iconName,\n iconAlt,\n iconUrl,\n iconSvg,\n isActive,\n onClick,\n onKeyDown,\n tabIndex,\n id,\n style,\n }: SegmentProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const buttonRef = useRef<HTMLElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n const isDisabledWithReason = disabled && !!disabledReason;\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <button\n className={clsx(\n styles.segment,\n { [styles.disabled]: !!disabled },\n { [styles.selected]: isActive },\n { [styles.refresh]: isVisualRefresh }\n )}\n ref={useMergeRefs(ref, buttonRef)}\n onClick={onClick}\n onKeyDown={onKeyDown}\n disabled={disabled && !disabledReason}\n aria-disabled={isDisabledWithReason ? 'true' : undefined}\n type=\"button\"\n tabIndex={tabIndex}\n aria-pressed={isActive ? 'true' : 'false'}\n aria-label={!text ? iconAlt : undefined}\n onFocus={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onBlur={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n onMouseEnter={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onMouseLeave={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n {...(isDisabledWithReason ? targetProps : {})}\n data-testid={id}\n data-awsui-motion-trigger=\"hover\"\n data-awsui-motion-target=\"\"\n style={getSegmentedControlSegmentStyles(style)}\n >\n {(iconName || iconUrl || iconSvg) && (\n <InternalIcon\n className={clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text'])}\n name={iconName}\n url={iconUrl}\n svg={iconSvg}\n alt={iconAlt}\n variant={disabled ? 'disabled' : 'normal'}\n />\n )}\n <span>{text}</span>\n\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip\n className={styles['disabled-reason-tooltip']}\n getTrack={() => buttonRef.current}\n content={disabledReason!}\n onEscape={() => setShowTooltip(false)}\n />\n )}\n </>\n )}\n </button>\n );\n }\n);\n"]}
@@ -161,7 +161,7 @@ const ItemIcon = React.forwardRef(function ItemIcon({ icon, collapsed, className
161
161
  if (!icon) {
162
162
  return null;
163
163
  }
164
- return (React.createElement("span", { ref: ref, className: clsx(styles['item-icon'], testUtilStyles['item-icon'], collapsed && styles['item-icon--collapsed'], className), ...rest }, icon));
164
+ return (React.createElement("span", { ref: ref, className: clsx(styles['item-icon'], testUtilStyles['item-icon'], collapsed && styles['item-icon--collapsed'], className), "data-awsui-motion-target": "", ...rest }, icon));
165
165
  });
166
166
  // Manages a tooltip that shows the item's text label on focus or hover.
167
167
  // Used in the collapsed state, where the visible labels are hidden, to give
@@ -231,13 +231,13 @@ function Link({ definition, activeHref, fireFollow, position, collapsed, activeT
231
231
  const internalLink = (React.createElement("a", { ref: mergedRef, href: definition.href, className: clsx(styles.link, {
232
232
  [styles['link-active']]: isActive,
233
233
  [styles['link--collapsed']]: collapsed,
234
- }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-current": definition.href === activeHref ? 'page' : undefined, "aria-label": collapsed ? definition.text : undefined, onClick: onClick, ...(collapsed ? collapsedTooltip.triggerProps : {}), ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
234
+ }), target: definition.external ? '_blank' : undefined, rel: definition.external ? 'noopener noreferrer' : undefined, "aria-current": definition.href === activeHref ? 'page' : undefined, "aria-label": collapsed ? definition.text : undefined, ...(definition.external || definition.icon ? { 'data-awsui-motion-trigger': 'hover' } : {}), onClick: onClick, ...(collapsed ? collapsedTooltip.triggerProps : {}), ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
235
235
  React.createElement(ItemIcon, { icon: definition.icon, collapsed: collapsed, "aria-hidden": collapsed ? true : undefined }),
236
236
  React.createElement("span", { className: clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed']), "aria-hidden": collapsed ? true : undefined },
237
237
  React.createElement("span", { className: clsx(styles['link-text-wrapper-content']) },
238
238
  React.createElement("span", { className: analyticsSelectors['link-text'] }, definition.text),
239
239
  definition.external && (React.createElement("span", { "aria-label": renderedExternalIconAriaLabel, role: renderedExternalIconAriaLabel ? 'img' : undefined },
240
- React.createElement(InternalIcon, { name: "external", className: styles['external-icon'] }))))),
240
+ React.createElement(InternalIcon, { name: "external", className: styles['external-icon'], nativeAttributes: { 'data-awsui-motion-target': '' } }))))),
241
241
  collapsed && collapsedTooltip.tooltip));
242
242
  return showInfo ? (React.createElement("div", { className: styles['list-item--link-with-info'] },
243
243
  internalLink,
@@ -1 +1 @@
1
- {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalBox from '../box/internal';\nimport { ExpandableSectionProps } from '../expandable-section/interfaces';\nimport InternalExpandableSection from '../expandable-section/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { Transition } from '../internal/components/transition';\nimport { isPlainLeftClick } from '../internal/events';\nimport { useOneTheme, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport Tooltip from '../tooltip/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataSideNavigationClick } from './analytics-metadata/interfaces';\nimport { SideNavigationProps } from './interfaces';\nimport { hasActiveLink } from './util';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface BaseItemComponentProps {\n activeHref?: string;\n fireChange: (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => void;\n fireFollow: (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n event: React.SyntheticEvent | Event\n ) => void;\n position?: string;\n collapsed?: boolean;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}\n\ninterface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow, collapsed }: HeaderProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['header-link-text']}`,\n external: 'false',\n href: definition.href,\n position: 'header',\n },\n };\n\n return (\n <>\n {!collapsed && (\n <h2 className={styles.header}>\n <a\n href={definition.href}\n className={clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo })}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n {definition.logo &&\n (definition.logo.svg ? (\n <span\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n >\n {definition.logo.svg}\n </span>\n ) : (\n <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n src={definition.logo.src}\n alt={definition.logo.alt}\n />\n ))}\n <span className={clsx(styles['header-link-text'], analyticsSelectors['header-link-text'])}>\n {definition.text}\n </span>\n </a>\n </h2>\n )}\n {!collapsed && <Divider isPresentational={true} variant=\"header\" />}\n </>\n );\n}\n\ninterface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n ariaLabel?: string;\n}\n\ninterface Item {\n element?: ReactNode;\n listVariant?: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n items?: Array<Item>;\n}\n\nexport function NavigationItemsList({\n items,\n variant,\n activeHref,\n fireChange,\n fireFollow,\n position = '',\n collapsed,\n withIcons,\n ariaLabel,\n activeTooltip,\n setActiveTooltip,\n}: NavigationItemsListProps) {\n const lists: Array<Item> = [];\n let currentListIndex = 0;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n\n items.forEach((item, index) => {\n const itemid = index + 1;\n const itemPosition = `${position ? `${position},` : ''}${itemid}`;\n\n // Emits a divider as its own list segment (dividers break the <ul> grouping).\n function pushDivider() {\n lists.push({\n listVariant: variant,\n element: (\n <div data-itemid={`item-${itemid}`} className={clsx(collapsed && styles['list-item--group'])}>\n <Divider variant=\"default\" collapsed={collapsed} />\n </div>\n ),\n });\n currentListIndex =\n lists.push({\n listVariant: variant,\n items: [],\n }) - 1;\n }\n\n // In collapsed mode, hide plain links without icons (they have no visual representation).\n // Exception: link-group / expandable-link-group children must stay rendered so\n // the grid-template-rows collapse animation has content to transition.\n if (\n collapsed &&\n item.type === 'link' &&\n !(item as SideNavigationProps.Link).icon &&\n variant !== 'link-group' &&\n variant !== 'expandable-link-group'\n ) {\n return;\n }\n switch (item.type) {\n case 'divider': {\n pushDivider();\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(styles['list-item'], collapsed && styles['list-item--collapsed'])}\n >\n <Link\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <SectionGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <LinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n // In collapsed mode, skip empty item segments and deduplicate consecutive dividers.\n const filteredLists = collapsed\n ? lists.filter((list, index) => {\n if (list.items) {\n return list.items.length > 0;\n }\n // Divider — skip if preceded by another divider or empty segment, or followed by nothing.\n const prevVisible = lists\n .slice(0, index)\n .reverse()\n .find(l => !l.items || l.items.length > 0);\n const nextVisible = lists.slice(index + 1).find(l => !l.items || l.items.length > 0);\n return (\n (!prevVisible || (prevVisible.items !== undefined && prevVisible.items.length > 0)) &&\n nextVisible !== undefined &&\n (nextVisible.items === undefined || nextVisible.items.length > 0)\n );\n })\n : lists;\n\n return (\n <>\n {filteredLists.map((list, index) => {\n if (!list.items || list.items.length === 0) {\n return (\n <div\n key={`hr-${index}`}\n className={clsx(styles.list, styles[`list-variant-${variant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n >\n {list.element}\n </div>\n );\n } else {\n return (\n <ul\n key={`list-${index}`}\n className={clsx(styles.list, styles[`list-variant-${list.listVariant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n aria-label={ariaLabel}\n >\n {list.items.map(item => item.element)}\n </ul>\n );\n }\n })}\n </>\n );\n}\n\ninterface DividerProps {\n variant: 'default' | 'header';\n isPresentational?: boolean;\n collapsed?: boolean;\n}\n\nfunction Divider({ variant = 'default', isPresentational = false, collapsed }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`], collapsed && styles['divider--collapsed'])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n}\n\ninterface ItemIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n icon: React.ReactNode;\n collapsed?: boolean;\n}\n\nconst ItemIcon = React.forwardRef<HTMLSpanElement, ItemIconProps>(function ItemIcon(\n { icon, collapsed, className, ...rest },\n ref\n) {\n if (!icon) {\n return null;\n }\n return (\n <span\n ref={ref}\n className={clsx(\n styles['item-icon'],\n testUtilStyles['item-icon'],\n collapsed && styles['item-icon--collapsed'],\n className\n )}\n {...rest}\n >\n {icon}\n </span>\n );\n});\n\n// Manages a tooltip that shows the item's text label on focus or hover.\n// Used in the collapsed state, where the visible labels are hidden, to give\n// pointer and keyboard users a way to identify each item without relying on\n// their browser's native title popup.\nfunction useCollapsedTooltip<T extends HTMLElement>({\n label,\n position,\n activeTooltip,\n setActiveTooltip,\n}: {\n label: React.ReactNode;\n position?: string;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}) {\n const triggerRef = useRef<T | null>(null);\n const id = position ?? '';\n const show = activeTooltip === id;\n\n const claim = () => setActiveTooltip?.(id);\n const release = () => {\n if (activeTooltip === id) {\n setActiveTooltip?.(null);\n }\n };\n\n const triggerProps = {\n onFocus: claim,\n onBlur: release,\n onMouseEnter: claim,\n onMouseLeave: release,\n };\n\n const tooltip = show ? (\n <Tooltip getTrack={() => triggerRef.current} content={label} position=\"right\" onEscape={release} />\n ) : null;\n\n return { triggerRef, triggerProps, tooltip };\n}\n\nfunction Link({ definition, activeHref, fireFollow, position, collapsed, activeTooltip, setActiveTooltip }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\n const i18n = useInternalI18n('link');\n const linkRef = useRef<HTMLAnchorElement>(null);\n const collapsedTooltip = useCollapsedTooltip<HTMLAnchorElement>({\n label: definition.text,\n position,\n activeTooltip,\n setActiveTooltip,\n });\n\n // Make icon-less collapsed links inert (they collapse to 0×0 and must\n // not be focusable or visible to assistive technology).\n const isIconLess = !definition.icon;\n useEffect(() => {\n if (linkRef.current) {\n linkRef.current.inert = !!(collapsed && isIconLess);\n }\n }, [collapsed, isIconLess]);\n\n // Merge linkRef with collapsedTooltip.triggerRef so both can track the <a>.\n const mergedRef = useCallback(\n (node: HTMLAnchorElement | null) => {\n (linkRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n if (collapsed) {\n (collapsedTooltip.triggerRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n }\n },\n [collapsed, collapsedTooltip.triggerRef]\n );\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['link-text']}`,\n external: `${!!definition.external}`,\n href: definition.href,\n position,\n },\n };\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', definition.externalIconAriaLabel);\n\n const showInfo = !collapsed && definition.info;\n\n const internalLink = (\n <a\n ref={mergedRef}\n href={definition.href}\n className={clsx(styles.link, {\n [styles['link-active']]: isActive,\n [styles['link--collapsed']]: collapsed,\n })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n aria-label={collapsed ? definition.text : undefined}\n onClick={onClick}\n {...(collapsed ? collapsedTooltip.triggerProps : {})}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n <ItemIcon icon={definition.icon} collapsed={collapsed} aria-hidden={collapsed ? true : undefined} />\n <span\n className={clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n <span className={clsx(styles['link-text-wrapper-content'])}>\n <span className={analyticsSelectors['link-text']}>{definition.text}</span>\n {definition.external && (\n <span aria-label={renderedExternalIconAriaLabel} role={renderedExternalIconAriaLabel ? 'img' : undefined}>\n <InternalIcon name=\"external\" className={styles['external-icon']} />\n </span>\n )}\n </span>\n </span>\n {collapsed && collapsedTooltip.tooltip}\n </a>\n );\n return showInfo ? (\n <div className={styles['list-item--link-with-info']}>\n {internalLink}\n <span className={clsx(styles.info, testUtilStyles.info)}>{definition.info}</span>\n </div>\n ) : (\n internalLink\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction Section({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\n const sectionRef = useRef<HTMLDivElement>(null);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n useEffect(() => {\n setExpanded(definition.defaultExpanded ?? true);\n }, [definition]);\n\n // Sections are transparent in the collapsed rail — only the header is made inert\n // so child links remain focusable. The header hosts the expand toggle that must\n // leave the tab order when collapsed.\n useEffect(() => {\n const el = sectionRef.current as HTMLElement | null;\n if (el) {\n el.inert = false;\n const header = el.firstElementChild as HTMLElement | null;\n if (header) {\n header.inert = !!collapsed;\n }\n }\n }, [collapsed]);\n\n const isInSectionGroup = variant === 'section-group';\n\n return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={collapsed ? true : expanded}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __internalRootRef={sectionRef}\n className={clsx(\n styles.section,\n isInSectionGroup && styles['section--no-ident'],\n withIcons && styles['section--expand-icon-end'],\n isVisualRefresh && styles.refresh,\n collapsed && styles['section--collapsed']\n )}\n headerText={\n <span\n className={clsx(styles['section-header'], styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.text}\n </span>\n }\n __expandIconPosition={withIcons ? 'end' : 'start'}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n withIcons?: boolean;\n}\n\nfunction SectionGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionGroupProps) {\n const isOneTheme = useOneTheme();\n const sectionGroupRef = useRef<HTMLDivElement>(null);\n\n // Section-groups are transparent — children are always promoted in the collapsed rail.\n useEffect(() => {\n if (sectionGroupRef.current) {\n sectionGroupRef.current.inert = false;\n }\n }, [collapsed]);\n\n return (\n <div ref={sectionGroupRef} className={styles['section-group']}>\n <InternalBox\n className={clsx(styles['section-group-title'], collapsed && styles['section-group-title--collapsed'])}\n variant=\"h3\"\n fontSize={isOneTheme ? 'heading-s' : undefined}\n >\n <span\n className={clsx(styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.title}\n </span>\n </InternalBox>\n <NavigationItemsList\n variant=\"section-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.title : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n withIcons?: boolean;\n}\n\nfunction LinkGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const childrenRef = useRef<HTMLDivElement>(null);\n const isOneTheme = useOneTheme();\n\n // Set inert on the children container when collapsed so they leave\n // the tab order and assistive technology.\n useEffect(() => {\n if (childrenRef.current) {\n childrenRef.current.inert = !!collapsed;\n }\n }, [collapsed]);\n\n return (\n <>\n <Link\n definition={{\n type: 'link',\n href: definition.href,\n text: definition.text,\n info: definition.info,\n icon: definition.icon,\n }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n <Transition<HTMLDivElement> in={!collapsed} disabled={!isOneTheme}>\n {(transitionState, transitionEventsRef, motionDisabled) => {\n const childrenSettled = !collapsed && (motionDisabled || transitionState === 'entered');\n\n return (\n <div\n ref={transitionEventsRef}\n className={clsx(styles['link-group-children'], collapsed && styles['link-group-children--collapsed'])}\n >\n <div\n ref={childrenRef}\n className={clsx(\n styles['link-group-children-inner'],\n !collapsed && styles['link-group-children-inner--expanded'],\n childrenSettled && styles['link-group-children-inner--settled']\n )}\n >\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n </div>\n );\n }}\n </Transition>\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction ExpandableLinkGroup({\n definition,\n fireFollow,\n fireChange,\n activeHref,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: ExpandableLinkGroupProps) {\n // Check whether the definition contains an active link and memoize it to avoid\n // rechecking every time.\n const containsActiveLink = useMemo(() => {\n return activeHref ? hasActiveLink(definition.items, activeHref) : false;\n }, [activeHref, definition.items]);\n\n const [expanded, setExpanded] = useState<boolean>(() => {\n return definition.defaultExpanded ?? (definition.href === activeHref || containsActiveLink);\n });\n\n const [userExpanded, setUserExpanded] = useState<boolean | undefined>();\n\n // Reset user expansion status when the items property is updated.\n useEffect(() => setUserExpanded(undefined), [definition]);\n\n // By default, the expandable section is open when there's an active link inside.\n useEffect(() => {\n setExpanded(definition.href === activeHref || containsActiveLink);\n }, [definition.href, containsActiveLink, activeHref]);\n\n // If the definition object itself is updated, reset the expansion state to default.\n useEffect(() => {\n if (definition.defaultExpanded !== undefined) {\n setExpanded(definition.defaultExpanded);\n }\n }, [definition]);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setUserExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n const onHeaderFollow: LinkProps['fireFollow'] = (_, event) => {\n fireFollow(definition, event);\n setUserExpanded(true);\n if (!expanded) {\n fireChange(definition, true);\n }\n };\n\n return (\n <InternalExpandableSection\n className={clsx(\n styles['expandable-link-group'],\n variant === 'section-group' && styles['expandable-link-group--no-ident'],\n withIcons && styles['expandable-link-group--expand-icon-end'],\n definition.href === activeHref && styles['expandable-link-group--active'],\n collapsed && styles['expandable-link-group--collapsed']\n )}\n variant=\"navigation\"\n expanded={collapsed ? false : (userExpanded ?? expanded)}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __disableHeaderPaddings={true}\n __expandIconPosition={withIcons ? 'end' : 'start'}\n __hideExpandIcon={!!collapsed}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, icon: definition.icon }}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n }\n >\n <NavigationItemsList\n variant=\"expandable-link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n"]}
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalBox from '../box/internal';\nimport { ExpandableSectionProps } from '../expandable-section/interfaces';\nimport InternalExpandableSection from '../expandable-section/internal';\nimport { useInternalI18n } from '../i18n/context';\nimport InternalIcon from '../icon/internal';\nimport { Transition } from '../internal/components/transition';\nimport { isPlainLeftClick } from '../internal/events';\nimport { useOneTheme, useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\nimport Tooltip from '../tooltip/internal';\nimport { NonCancelableCustomEvent } from '../types/events';\nimport { GeneratedAnalyticsMetadataSideNavigationClick } from './analytics-metadata/interfaces';\nimport { SideNavigationProps } from './interfaces';\nimport { hasActiveLink } from './util';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\nimport testUtilStyles from './test-classes/styles.css.js';\n\ninterface BaseItemComponentProps {\n activeHref?: string;\n fireChange: (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => void;\n fireFollow: (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n event: React.SyntheticEvent | Event\n ) => void;\n position?: string;\n collapsed?: boolean;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}\n\ninterface HeaderProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Header;\n}\n\nexport function Header({ definition, activeHref, fireFollow, collapsed }: HeaderProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['header-link-text']}`,\n external: 'false',\n href: definition.href,\n position: 'header',\n },\n };\n\n return (\n <>\n {!collapsed && (\n <h2 className={styles.header}>\n <a\n href={definition.href}\n className={clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo })}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n onClick={onClick}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n {definition.logo &&\n (definition.logo.svg ? (\n <span\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n >\n {definition.logo.svg}\n </span>\n ) : (\n <img\n className={clsx(styles['header-logo'], {\n [styles['header-logo--stretched']]: !definition.text,\n })}\n src={definition.logo.src}\n alt={definition.logo.alt}\n />\n ))}\n <span className={clsx(styles['header-link-text'], analyticsSelectors['header-link-text'])}>\n {definition.text}\n </span>\n </a>\n </h2>\n )}\n {!collapsed && <Divider isPresentational={true} variant=\"header\" />}\n </>\n );\n}\n\ninterface NavigationItemsListProps extends BaseItemComponentProps {\n items: ReadonlyArray<SideNavigationProps.Item>;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n ariaLabel?: string;\n}\n\ninterface Item {\n element?: ReactNode;\n listVariant?: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n items?: Array<Item>;\n}\n\nexport function NavigationItemsList({\n items,\n variant,\n activeHref,\n fireChange,\n fireFollow,\n position = '',\n collapsed,\n withIcons,\n ariaLabel,\n activeTooltip,\n setActiveTooltip,\n}: NavigationItemsListProps) {\n const lists: Array<Item> = [];\n let currentListIndex = 0;\n lists[currentListIndex] = {\n listVariant: variant,\n items: [],\n };\n\n items.forEach((item, index) => {\n const itemid = index + 1;\n const itemPosition = `${position ? `${position},` : ''}${itemid}`;\n\n // Emits a divider as its own list segment (dividers break the <ul> grouping).\n function pushDivider() {\n lists.push({\n listVariant: variant,\n element: (\n <div data-itemid={`item-${itemid}`} className={clsx(collapsed && styles['list-item--group'])}>\n <Divider variant=\"default\" collapsed={collapsed} />\n </div>\n ),\n });\n currentListIndex =\n lists.push({\n listVariant: variant,\n items: [],\n }) - 1;\n }\n\n // In collapsed mode, hide plain links without icons (they have no visual representation).\n // Exception: link-group / expandable-link-group children must stay rendered so\n // the grid-template-rows collapse animation has content to transition.\n if (\n collapsed &&\n item.type === 'link' &&\n !(item as SideNavigationProps.Link).icon &&\n variant !== 'link-group' &&\n variant !== 'expandable-link-group'\n ) {\n return;\n }\n switch (item.type) {\n case 'divider': {\n pushDivider();\n return;\n }\n case 'link': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(styles['list-item'], collapsed && styles['list-item--collapsed'])}\n >\n <Link\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <Section\n definition={item}\n activeHref={activeHref}\n variant={variant}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'section-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <SectionGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <LinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n case 'expandable-link-group': {\n lists[currentListIndex].items?.push({\n element: (\n <li\n key={index}\n data-itemid={`item-${itemid}`}\n className={clsx(\n styles['list-item'],\n collapsed && styles['list-item--collapsed'],\n collapsed && styles['list-item--group']\n )}\n >\n <ExpandableLinkGroup\n definition={item}\n activeHref={activeHref}\n fireChange={fireChange}\n fireFollow={fireFollow}\n variant={variant}\n position={itemPosition}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </li>\n ),\n });\n return;\n }\n }\n });\n\n // In collapsed mode, skip empty item segments and deduplicate consecutive dividers.\n const filteredLists = collapsed\n ? lists.filter((list, index) => {\n if (list.items) {\n return list.items.length > 0;\n }\n // Divider — skip if preceded by another divider or empty segment, or followed by nothing.\n const prevVisible = lists\n .slice(0, index)\n .reverse()\n .find(l => !l.items || l.items.length > 0);\n const nextVisible = lists.slice(index + 1).find(l => !l.items || l.items.length > 0);\n return (\n (!prevVisible || (prevVisible.items !== undefined && prevVisible.items.length > 0)) &&\n nextVisible !== undefined &&\n (nextVisible.items === undefined || nextVisible.items.length > 0)\n );\n })\n : lists;\n\n return (\n <>\n {filteredLists.map((list, index) => {\n if (!list.items || list.items.length === 0) {\n return (\n <div\n key={`hr-${index}`}\n className={clsx(styles.list, styles[`list-variant-${variant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n >\n {list.element}\n </div>\n );\n } else {\n return (\n <ul\n key={`list-${index}`}\n className={clsx(styles.list, styles[`list-variant-${list.listVariant}`], {\n [styles['list-variant-root--first']]: list.listVariant === 'root' && index === 0,\n [styles[`list-variant-${list.listVariant}--collapsed`]]: collapsed,\n [styles['list--with-icons']]: withIcons,\n })}\n aria-label={ariaLabel}\n >\n {list.items.map(item => item.element)}\n </ul>\n );\n }\n })}\n </>\n );\n}\n\ninterface DividerProps {\n variant: 'default' | 'header';\n isPresentational?: boolean;\n collapsed?: boolean;\n}\n\nfunction Divider({ variant = 'default', isPresentational = false, collapsed }: DividerProps) {\n return (\n <hr\n className={clsx(styles.divider, styles[`divider-${variant}`], collapsed && styles['divider--collapsed'])}\n role={isPresentational ? 'presentation' : undefined}\n />\n );\n}\n\ninterface LinkProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Link;\n}\n\ninterface ItemIconProps extends React.HTMLAttributes<HTMLSpanElement> {\n icon: React.ReactNode;\n collapsed?: boolean;\n}\n\nconst ItemIcon = React.forwardRef<HTMLSpanElement, ItemIconProps>(function ItemIcon(\n { icon, collapsed, className, ...rest },\n ref\n) {\n if (!icon) {\n return null;\n }\n return (\n <span\n ref={ref}\n className={clsx(\n styles['item-icon'],\n testUtilStyles['item-icon'],\n collapsed && styles['item-icon--collapsed'],\n className\n )}\n data-awsui-motion-target=\"\"\n {...rest}\n >\n {icon}\n </span>\n );\n});\n\n// Manages a tooltip that shows the item's text label on focus or hover.\n// Used in the collapsed state, where the visible labels are hidden, to give\n// pointer and keyboard users a way to identify each item without relying on\n// their browser's native title popup.\nfunction useCollapsedTooltip<T extends HTMLElement>({\n label,\n position,\n activeTooltip,\n setActiveTooltip,\n}: {\n label: React.ReactNode;\n position?: string;\n activeTooltip?: string | null;\n setActiveTooltip?: (position: string | null) => void;\n}) {\n const triggerRef = useRef<T | null>(null);\n const id = position ?? '';\n const show = activeTooltip === id;\n\n const claim = () => setActiveTooltip?.(id);\n const release = () => {\n if (activeTooltip === id) {\n setActiveTooltip?.(null);\n }\n };\n\n const triggerProps = {\n onFocus: claim,\n onBlur: release,\n onMouseEnter: claim,\n onMouseLeave: release,\n };\n\n const tooltip = show ? (\n <Tooltip getTrack={() => triggerRef.current} content={label} position=\"right\" onEscape={release} />\n ) : null;\n\n return { triggerRef, triggerProps, tooltip };\n}\n\nfunction Link({ definition, activeHref, fireFollow, position, collapsed, activeTooltip, setActiveTooltip }: LinkProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const isActive = definition.href === activeHref;\n const i18n = useInternalI18n('link');\n const linkRef = useRef<HTMLAnchorElement>(null);\n const collapsedTooltip = useCollapsedTooltip<HTMLAnchorElement>({\n label: definition.text,\n position,\n activeTooltip,\n setActiveTooltip,\n });\n\n // Make icon-less collapsed links inert (they collapse to 0×0 and must\n // not be focusable or visible to assistive technology).\n const isIconLess = !definition.icon;\n useEffect(() => {\n if (linkRef.current) {\n linkRef.current.inert = !!(collapsed && isIconLess);\n }\n }, [collapsed, isIconLess]);\n\n // Merge linkRef with collapsedTooltip.triggerRef so both can track the <a>.\n const mergedRef = useCallback(\n (node: HTMLAnchorElement | null) => {\n (linkRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n if (collapsed) {\n (collapsedTooltip.triggerRef as React.MutableRefObject<HTMLAnchorElement | null>).current = node;\n }\n },\n [collapsed, collapsedTooltip.triggerRef]\n );\n\n const onClick = useCallback(\n (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollow(definition, event);\n }\n },\n [fireFollow, definition]\n );\n\n const clickActionAnalyticsMetadata: GeneratedAnalyticsMetadataSideNavigationClick = {\n action: 'click',\n detail: {\n label: `.${analyticsSelectors['link-text']}`,\n external: `${!!definition.external}`,\n href: definition.href,\n position,\n },\n };\n\n const renderedExternalIconAriaLabel = i18n('externalIconAriaLabel', definition.externalIconAriaLabel);\n\n const showInfo = !collapsed && definition.info;\n\n const internalLink = (\n <a\n ref={mergedRef}\n href={definition.href}\n className={clsx(styles.link, {\n [styles['link-active']]: isActive,\n [styles['link--collapsed']]: collapsed,\n })}\n target={definition.external ? '_blank' : undefined}\n rel={definition.external ? 'noopener noreferrer' : undefined}\n aria-current={definition.href === activeHref ? 'page' : undefined}\n aria-label={collapsed ? definition.text : undefined}\n {...(definition.external || definition.icon ? { 'data-awsui-motion-trigger': 'hover' } : {})}\n onClick={onClick}\n {...(collapsed ? collapsedTooltip.triggerProps : {})}\n {...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata)}\n >\n <ItemIcon icon={definition.icon} collapsed={collapsed} aria-hidden={collapsed ? true : undefined} />\n <span\n className={clsx(styles['link-text-wrapper'], collapsed && styles['link-text-wrapper--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n <span className={clsx(styles['link-text-wrapper-content'])}>\n <span className={analyticsSelectors['link-text']}>{definition.text}</span>\n {definition.external && (\n <span aria-label={renderedExternalIconAriaLabel} role={renderedExternalIconAriaLabel ? 'img' : undefined}>\n <InternalIcon\n name=\"external\"\n className={styles['external-icon']}\n nativeAttributes={{ 'data-awsui-motion-target': '' }}\n />\n </span>\n )}\n </span>\n </span>\n {collapsed && collapsedTooltip.tooltip}\n </a>\n );\n return showInfo ? (\n <div className={styles['list-item--link-with-info']}>\n {internalLink}\n <span className={clsx(styles.info, testUtilStyles.info)}>{definition.info}</span>\n </div>\n ) : (\n internalLink\n );\n}\n\ninterface SectionProps extends BaseItemComponentProps {\n definition: SideNavigationProps.Section;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction Section({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionProps) {\n const [expanded, setExpanded] = useState<boolean>(definition.defaultExpanded ?? true);\n const isVisualRefresh = useVisualRefresh();\n const sectionRef = useRef<HTMLDivElement>(null);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n useEffect(() => {\n setExpanded(definition.defaultExpanded ?? true);\n }, [definition]);\n\n // Sections are transparent in the collapsed rail — only the header is made inert\n // so child links remain focusable. The header hosts the expand toggle that must\n // leave the tab order when collapsed.\n useEffect(() => {\n const el = sectionRef.current as HTMLElement | null;\n if (el) {\n el.inert = false;\n const header = el.firstElementChild as HTMLElement | null;\n if (header) {\n header.inert = !!collapsed;\n }\n }\n }, [collapsed]);\n\n const isInSectionGroup = variant === 'section-group';\n\n return (\n <InternalExpandableSection\n variant=\"footer\"\n expanded={collapsed ? true : expanded}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __internalRootRef={sectionRef}\n className={clsx(\n styles.section,\n isInSectionGroup && styles['section--no-ident'],\n withIcons && styles['section--expand-icon-end'],\n isVisualRefresh && styles.refresh,\n collapsed && styles['section--collapsed']\n )}\n headerText={\n <span\n className={clsx(styles['section-header'], styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.text}\n </span>\n }\n __expandIconPosition={withIcons ? 'end' : 'start'}\n >\n <NavigationItemsList\n variant=\"section\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n\ninterface SectionGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.SectionGroup;\n withIcons?: boolean;\n}\n\nfunction SectionGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: SectionGroupProps) {\n const isOneTheme = useOneTheme();\n const sectionGroupRef = useRef<HTMLDivElement>(null);\n\n // Section-groups are transparent — children are always promoted in the collapsed rail.\n useEffect(() => {\n if (sectionGroupRef.current) {\n sectionGroupRef.current.inert = false;\n }\n }, [collapsed]);\n\n return (\n <div ref={sectionGroupRef} className={styles['section-group']}>\n <InternalBox\n className={clsx(styles['section-group-title'], collapsed && styles['section-group-title--collapsed'])}\n variant=\"h3\"\n fontSize={isOneTheme ? 'heading-s' : undefined}\n >\n <span\n className={clsx(styles['label-text'], collapsed && styles['label-text--collapsed'])}\n aria-hidden={collapsed ? true : undefined}\n >\n {definition.title}\n </span>\n </InternalBox>\n <NavigationItemsList\n variant=\"section-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.title : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n );\n}\n\ninterface LinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.LinkGroup;\n withIcons?: boolean;\n}\n\nfunction LinkGroup({\n definition,\n activeHref,\n fireFollow,\n fireChange,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: LinkGroupProps) {\n checkSafeUrl('SideNavigation', definition.href);\n const childrenRef = useRef<HTMLDivElement>(null);\n const isOneTheme = useOneTheme();\n\n // Set inert on the children container when collapsed so they leave\n // the tab order and assistive technology.\n useEffect(() => {\n if (childrenRef.current) {\n childrenRef.current.inert = !!collapsed;\n }\n }, [collapsed]);\n\n return (\n <>\n <Link\n definition={{\n type: 'link',\n href: definition.href,\n text: definition.text,\n info: definition.info,\n icon: definition.icon,\n }}\n fireFollow={(_, event) => fireFollow(definition, event)}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n <Transition<HTMLDivElement> in={!collapsed} disabled={!isOneTheme}>\n {(transitionState, transitionEventsRef, motionDisabled) => {\n const childrenSettled = !collapsed && (motionDisabled || transitionState === 'entered');\n\n return (\n <div\n ref={transitionEventsRef}\n className={clsx(styles['link-group-children'], collapsed && styles['link-group-children--collapsed'])}\n >\n <div\n ref={childrenRef}\n className={clsx(\n styles['link-group-children-inner'],\n !collapsed && styles['link-group-children-inner--expanded'],\n childrenSettled && styles['link-group-children-inner--settled']\n )}\n >\n <NavigationItemsList\n variant=\"link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n ariaLabel={collapsed ? definition.text : undefined}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n </div>\n );\n }}\n </Transition>\n </>\n );\n}\n\ninterface ExpandableLinkGroupProps extends BaseItemComponentProps {\n definition: SideNavigationProps.ExpandableLinkGroup;\n variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';\n withIcons?: boolean;\n}\n\nfunction ExpandableLinkGroup({\n definition,\n fireFollow,\n fireChange,\n activeHref,\n variant,\n position,\n collapsed,\n withIcons,\n activeTooltip,\n setActiveTooltip,\n}: ExpandableLinkGroupProps) {\n // Check whether the definition contains an active link and memoize it to avoid\n // rechecking every time.\n const containsActiveLink = useMemo(() => {\n return activeHref ? hasActiveLink(definition.items, activeHref) : false;\n }, [activeHref, definition.items]);\n\n const [expanded, setExpanded] = useState<boolean>(() => {\n return definition.defaultExpanded ?? (definition.href === activeHref || containsActiveLink);\n });\n\n const [userExpanded, setUserExpanded] = useState<boolean | undefined>();\n\n // Reset user expansion status when the items property is updated.\n useEffect(() => setUserExpanded(undefined), [definition]);\n\n // By default, the expandable section is open when there's an active link inside.\n useEffect(() => {\n setExpanded(definition.href === activeHref || containsActiveLink);\n }, [definition.href, containsActiveLink, activeHref]);\n\n // If the definition object itself is updated, reset the expansion state to default.\n useEffect(() => {\n if (definition.defaultExpanded !== undefined) {\n setExpanded(definition.defaultExpanded);\n }\n }, [definition]);\n\n const onExpandedChange = useCallback(\n (e: NonCancelableCustomEvent<ExpandableSectionProps.ChangeDetail>) => {\n fireChange(definition, e.detail.expanded);\n setUserExpanded(e.detail.expanded);\n },\n [definition, fireChange]\n );\n\n const onHeaderFollow: LinkProps['fireFollow'] = (_, event) => {\n fireFollow(definition, event);\n setUserExpanded(true);\n if (!expanded) {\n fireChange(definition, true);\n }\n };\n\n return (\n <InternalExpandableSection\n className={clsx(\n styles['expandable-link-group'],\n variant === 'section-group' && styles['expandable-link-group--no-ident'],\n withIcons && styles['expandable-link-group--expand-icon-end'],\n definition.href === activeHref && styles['expandable-link-group--active'],\n collapsed && styles['expandable-link-group--collapsed']\n )}\n variant=\"navigation\"\n expanded={collapsed ? false : (userExpanded ?? expanded)}\n onChange={onExpandedChange}\n disableContentPaddings={true}\n __disableHeaderPaddings={true}\n __expandIconPosition={withIcons ? 'end' : 'start'}\n __hideExpandIcon={!!collapsed}\n headerText={\n <Link\n definition={{ type: 'link', href: definition.href, text: definition.text, icon: definition.icon }}\n fireFollow={onHeaderFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n }\n >\n <NavigationItemsList\n variant=\"expandable-link-group\"\n items={definition.items}\n fireFollow={fireFollow}\n fireChange={fireChange}\n activeHref={activeHref}\n position={position}\n collapsed={collapsed}\n withIcons={withIcons}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </InternalExpandableSection>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,GACX,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAuQhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAQrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvD,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IACrC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,GACX,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eA2QhC"}
@@ -153,6 +153,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
153
153
  tabIndex: clickableHeaderTabIndex,
154
154
  role: 'button',
155
155
  onClick: event => handleClick(event.shiftKey),
156
+ 'data-awsui-motion-trigger': 'hover',
156
157
  // Prevent the browser from extending the text selection on Shift+click.
157
158
  onMouseDown: (event) => {
158
159
  if (event.shiftKey) {
@@ -168,7 +169,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
168
169
  sortAccessibleText && React.createElement(ScreenreaderOnly, null, sortAccessibleText),
169
170
  sortingStatus && (React.createElement("span", { className: styles['sorting-icon'] },
170
171
  showPriorityBadge && (React.createElement("span", { className: styles['sort-priority-badge'], "aria-hidden": "true" }, multiSortIndex)),
171
- React.createElement(InternalIcon, { name: getSortingIconName(sortingStatus) })))),
172
+ React.createElement(InternalIcon, { name: getSortingIconName(sortingStatus), nativeAttributes: { 'data-awsui-motion-target': '' } })))),
172
173
  hasSortMenu && (React.createElement(SortMenu, { column: column, inSort: inMultiSort, isSortedAscending: inMultiSort && !descending, isSortedDescending: inMultiSort && descending, i18nStrings: i18nStrings, ariaLabel: ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.sortMenuTriggerLabel, ariaDescribedby: headerId, onAction: handleSortMenuAction }))),
173
174
  resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-control-${String(columnId)}`, showFocusRing: focusedComponent === `resize-control-${String(columnId)}`, onWidthUpdate: newWidth => updateColumn(columnId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth, roleDescription: i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription),
174
175
  // TODO: Replace with this when strings are available