@cloudscape-design/components 3.0.1297 → 3.0.1299
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attribute-editor/styles.css.js +15 -15
- package/attribute-editor/styles.scoped.css +29 -28
- package/attribute-editor/styles.selectors.js +15 -15
- package/breadcrumb-group/item/styles.css.js +7 -7
- package/breadcrumb-group/item/styles.scoped.css +30 -29
- package/breadcrumb-group/item/styles.selectors.js +7 -7
- package/breadcrumb-group/styles.css.js +14 -14
- package/breadcrumb-group/styles.scoped.css +25 -25
- package/breadcrumb-group/styles.selectors.js +14 -14
- package/button-dropdown/category-elements/category-element.js +1 -1
- package/button-dropdown/category-elements/category-element.js.map +1 -1
- package/button-dropdown/category-elements/expandable-category-element.js +1 -1
- package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
- package/button-dropdown/category-elements/mobile-expandable-category-element.js +1 -1
- package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
- package/button-dropdown/item-element/index.js +1 -1
- package/button-dropdown/item-element/index.js.map +1 -1
- package/button-dropdown/item-element/styles.css.js +21 -21
- package/button-dropdown/item-element/styles.scoped.css +38 -37
- package/button-dropdown/item-element/styles.selectors.js +21 -21
- package/copy-to-clipboard/index.d.ts +1 -0
- package/copy-to-clipboard/index.d.ts.map +1 -1
- package/copy-to-clipboard/index.js +2 -2
- package/copy-to-clipboard/index.js.map +1 -1
- package/copy-to-clipboard/interfaces.d.ts +5 -0
- package/copy-to-clipboard/interfaces.d.ts.map +1 -1
- package/copy-to-clipboard/interfaces.js.map +1 -1
- package/copy-to-clipboard/internal.d.ts +1 -0
- package/copy-to-clipboard/internal.d.ts.map +1 -1
- package/copy-to-clipboard/internal.js +3 -3
- package/copy-to-clipboard/internal.js.map +1 -1
- package/copy-to-clipboard/styles.css.js +5 -3
- package/copy-to-clipboard/styles.scoped.css +18 -3
- package/copy-to-clipboard/styles.selectors.js +5 -3
- package/drawer/implementation.d.ts +3 -3
- package/drawer/implementation.d.ts.map +1 -1
- package/drawer/implementation.js +3 -2
- package/drawer/implementation.js.map +1 -1
- package/drawer/index.d.ts +2 -10
- package/drawer/index.d.ts.map +1 -1
- package/drawer/index.js +21 -9
- package/drawer/index.js.map +1 -1
- package/drawer/interfaces.d.ts +45 -18
- package/drawer/interfaces.d.ts.map +1 -1
- package/drawer/interfaces.js.map +1 -1
- package/drawer/styles.css.js +29 -25
- package/drawer/styles.scoped.css +43 -34
- package/drawer/styles.selectors.js +29 -25
- package/drawer/utils.d.ts +2 -2
- package/drawer/utils.d.ts.map +1 -1
- package/drawer/utils.js +6 -5
- package/drawer/utils.js.map +1 -1
- package/flashbar/collapsible-flashbar.d.ts.map +1 -1
- package/flashbar/collapsible-flashbar.js +6 -1
- package/flashbar/collapsible-flashbar.js.map +1 -1
- package/flashbar/flash.d.ts.map +1 -1
- package/flashbar/flash.js +2 -5
- package/flashbar/flash.js.map +1 -1
- package/form-field/styles.css.js +24 -24
- package/form-field/styles.scoped.css +41 -41
- package/form-field/styles.selectors.js +24 -24
- package/help-panel/styles.css.js +6 -6
- package/help-panel/styles.scoped.css +73 -71
- package/help-panel/styles.selectors.js +6 -6
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/base-component/styles.scoped.css +36 -13
- package/internal/components/token-list/styles.css.js +10 -10
- package/internal/components/token-list/styles.scoped.css +24 -23
- package/internal/components/token-list/styles.selectors.js +10 -10
- package/internal/environment.js +2 -2
- package/internal/environment.json +2 -2
- package/internal/generated/styles/tokens.d.ts +27 -12
- package/internal/generated/styles/tokens.js +27 -12
- package/internal/generated/theming/index.cjs +229 -58
- package/internal/generated/theming/index.cjs.d.ts +225 -99
- package/internal/generated/theming/index.d.ts +225 -99
- package/internal/generated/theming/index.js +229 -58
- package/internal/manifest.json +1 -1
- package/key-value-pairs/styles.css.js +8 -8
- package/key-value-pairs/styles.scoped.css +12 -12
- package/key-value-pairs/styles.selectors.js +8 -8
- package/link/internal.js +1 -1
- package/link/internal.js.map +1 -1
- package/link/styles.css.js +21 -21
- package/link/styles.scoped.css +94 -84
- package/link/styles.selectors.js +21 -21
- package/live-region/internal.d.ts +5 -0
- package/live-region/internal.d.ts.map +1 -1
- package/live-region/internal.js +10 -2
- package/live-region/internal.js.map +1 -1
- package/package.json +2 -1
- package/pagination/index.d.ts.map +1 -1
- package/pagination/index.js +4 -1
- package/pagination/index.js.map +1 -1
- package/skeleton/index.d.ts +10 -0
- package/skeleton/index.d.ts.map +1 -0
- package/skeleton/index.js +21 -0
- package/skeleton/index.js.map +1 -0
- package/skeleton/interfaces.d.ts +36 -0
- package/skeleton/interfaces.d.ts.map +1 -0
- package/skeleton/interfaces.js +2 -0
- package/skeleton/interfaces.js.map +1 -0
- package/skeleton/internal.d.ts +14 -0
- package/skeleton/internal.d.ts.map +1 -0
- package/skeleton/internal.js +13 -0
- package/skeleton/internal.js.map +1 -0
- package/skeleton/styles.css.js +20 -0
- package/skeleton/styles.scoped.css +273 -0
- package/skeleton/styles.selectors.js +21 -0
- package/status-indicator/internal.js +1 -1
- package/status-indicator/internal.js.map +1 -1
- package/table/body-cell/td-element.js +1 -1
- package/table/body-cell/td-element.js.map +1 -1
- package/tag-editor/styles.css.js +3 -3
- package/tag-editor/styles.scoped.css +12 -11
- package/tag-editor/styles.selectors.js +3 -3
- package/test-utils/dom/drawer/index.d.ts +2 -0
- package/test-utils/dom/drawer/index.js +6 -0
- package/test-utils/dom/drawer/index.js.map +1 -1
- package/test-utils/dom/index.d.ts +28 -0
- package/test-utils/dom/index.js +20 -1
- package/test-utils/dom/index.js.map +1 -1
- package/test-utils/dom/skeleton/index.d.ts +4 -0
- package/test-utils/dom/skeleton/index.js +11 -0
- package/test-utils/dom/skeleton/index.js.map +1 -0
- package/test-utils/selectors/drawer/index.d.ts +2 -0
- package/test-utils/selectors/drawer/index.js +6 -0
- package/test-utils/selectors/drawer/index.js.map +1 -1
- package/test-utils/selectors/index.d.ts +18 -0
- package/test-utils/selectors/index.js +15 -1
- package/test-utils/selectors/index.js.map +1 -1
- package/test-utils/selectors/skeleton/index.d.ts +4 -0
- package/test-utils/selectors/skeleton/index.js +11 -0
- package/test-utils/selectors/skeleton/index.js.map +1 -0
- package/text-content/styles.css.js +1 -1
- package/text-content/styles.scoped.css +68 -66
- package/text-content/styles.selectors.js +1 -1
- package/tooltip/index.d.ts +0 -3
- package/tooltip/index.d.ts.map +1 -1
- package/tooltip/index.js +0 -3
- package/tooltip/index.js.map +1 -1
- package/tutorial-panel/components/tutorial-detail-view/index.d.ts.map +1 -1
- package/tutorial-panel/components/tutorial-detail-view/index.js +2 -1
- package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
- package/tutorial-panel/components/tutorial-list/index.js +11 -12
- package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
- package/drawer/next.d.ts +0 -5
- package/drawer/next.d.ts.map +0 -1
- package/drawer/next.js +0 -38
- package/drawer/next.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,eAAe,GAAG,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,GACI,EAAE,EAAE;;IAClB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAwC;QACtD,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC;QACjB,MAAM,EAAE,IAAqC;QAC7C,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,QAAQ,EAAE,IAAI;QACd,eAAe,EAAE,UAAU;KAC5B,CAAC;IACF,MAAM,YAAY,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,mCAAI,IAAI,CAAC;IAEhE,yEAAyE;IACzE,6BAA6B;IAC7B,OAAO,CACL,4BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAC3F,IAAI,EAAC,cAAc;QAElB,IAAI,CAAC,IAAI,IAAI,CACZ,2BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC7B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;gBAC3B,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY;aAC/C,CAAC,iBACU,MAAM,IAEjB,YAAY,CAAC,CAAC,CAAC,CACd,YAAY,CACb,CAAC,CAAC,CAAC,CACF,8BAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC;YACtC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAClD,8BAAM,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC;gBACrC,oBAAC,YAAY,IAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,GAAI,CACzF,CACR;
|
|
1
|
+
{"version":3,"file":"category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/category-element.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 from 'react';\nimport clsx from 'clsx';\n\nimport InternalIcon from '../../icon/internal';\nimport { ButtonDropdownProps, CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\n\nimport styles from './styles.css.js';\n\nconst CategoryElement = ({\n item,\n index,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n position,\n renderItem,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const groupProps: ButtonDropdownProps.GroupRenderItem = {\n type: 'group',\n index: index ?? 0,\n option: item as ButtonDropdownProps.ItemGroup,\n disabled: !!disabled,\n highlighted: !!highlighted,\n expanded: true,\n expandDirection: 'vertical',\n };\n const renderResult = renderItem?.({ item: groupProps }) ?? null;\n\n // Hide the category title element from screen readers because it will be\n // provided as an ARIA label.\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], disabled && styles.disabled)}\n role=\"presentation\"\n >\n {item.text && (\n <p\n className={clsx(styles.header, {\n [styles.disabled]: disabled,\n [styles['no-content-styling']]: !!renderResult,\n })}\n aria-hidden=\"true\"\n >\n {renderResult ? (\n renderResult\n ) : (\n <span className={styles['header-content']}>\n {(item.iconName || item.iconUrl || item.iconSvg) && (\n <span className={styles['icon-wrapper']}>\n <InternalIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />\n </span>\n )}\n <span>{item.text}</span>\n </span>\n )}\n </p>\n )}\n <ul className={styles['items-list-container']} role=\"group\" aria-label={item.text} aria-disabled={disabled}>\n {item.items && (\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n categoryDisabled={disabled}\n hasCategoryHeader={!!item.text}\n variant={variant}\n position={position}\n renderItem={renderItem}\n parentProps={groupProps}\n />\n )}\n </ul>\n </li>\n );\n};\n\nexport default CategoryElement;\n"]}
|
|
@@ -69,7 +69,7 @@ const ExpandableCategoryElement = ({ index, item, onItemActivate, onGroupToggle,
|
|
|
69
69
|
}) }, renderResult ? (renderResult) : (React.createElement(React.Fragment, null,
|
|
70
70
|
(item.iconName || item.iconUrl || item.iconSvg) && (React.createElement("span", { className: styles['icon-wrapper'] },
|
|
71
71
|
React.createElement(InternalIcon, { name: item.iconName, url: item.iconUrl, svg: item.iconSvg, alt: item.iconAlt }))),
|
|
72
|
-
item.text,
|
|
72
|
+
React.createElement("span", null, item.text),
|
|
73
73
|
React.createElement("span", { className: clsx(styles['expand-icon'], styles['expand-icon-right']) },
|
|
74
74
|
React.createElement(InternalIcon, { name: "caret-down-filled" }))))));
|
|
75
75
|
let content;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.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, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport Dropdown from '../../dropdown/internal';\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport {\n GeneratedAnalyticsMetadataButtonDropdownCollapse,\n GeneratedAnalyticsMetadataButtonDropdownExpand,\n} from '../analytics-metadata/interfaces.js';\nimport { ButtonDropdownProps, CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nimport styles from './styles.css.js';\n\nconst ExpandableCategoryElement = ({\n index,\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n expandToViewport,\n variant,\n position,\n renderItem,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const ref = useRef<HTMLLIElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick: React.MouseEventHandler = event => {\n if (!disabled) {\n event.preventDefault();\n onGroupToggle(item, event);\n triggerRef.current?.focus();\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isVisualRefresh = useVisualRefresh();\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n\n const groupProps: ButtonDropdownProps.GroupRenderItem = {\n index: index ?? 0,\n type: 'group',\n option: item as ButtonDropdownProps.ItemGroup,\n disabled: !!disabled,\n highlighted: !!highlighted,\n expanded: expanded,\n expandDirection: 'horizontal',\n };\n const renderResult = renderItem?.({ item: groupProps }) ?? null;\n\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n [styles['no-content-styling']]: !!renderResult,\n [styles['is-focused']]: isKeyboardHighlighted,\n [styles['visual-refresh']]: isVisualRefresh,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, expanded, disabled })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: !expanded ? 'expand' : 'collapse',\n detail: {\n position: position || '0',\n label: { root: 'self' },\n id: item.id || '',\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand | GeneratedAnalyticsMetadataButtonDropdownCollapse)\n )}\n >\n {renderResult ? (\n renderResult\n ) : (\n <>\n {(item.iconName || item.iconUrl || item.iconSvg) && (\n <span className={styles['icon-wrapper']}>\n <InternalIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />\n </span>\n )}\n {item.text}\n <span className={clsx(styles['expand-icon'], styles['expand-icon-right'])}>\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </>\n )}\n </span>\n );\n\n let content: React.ReactNode;\n // If the category element is disabled, we do not render a dropdown.\n // Screenreaders are confused by additional sections\n if (isDisabledWithReason) {\n content = (\n <Tooltip content={item.disabledReason}>\n {trigger}\n {descriptionEl}\n </Tooltip>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <Dropdown\n open={expanded}\n interior={true}\n hideBlockBorder={false}\n expandToViewport={expandToViewport}\n trigger={trigger}\n content={\n item.items && expanded ? (\n <ul\n role=\"menu\"\n aria-label={item.text}\n className={clsx(styles['items-list-container'], styles['in-dropdown'])}\n >\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n variant={variant}\n position={position}\n renderItem={renderItem}\n parentProps={groupProps}\n />\n </ul>\n ) : undefined\n }\n />\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n })}\n role=\"presentation\"\n data-testid={item.id}\n ref={ref}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n {content}\n </li>\n );\n};\n\nexport default ExpandableCategoryElement;\n"]}
|
|
1
|
+
{"version":3,"file":"expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/expandable-category-element.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, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport Dropdown from '../../dropdown/internal';\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport {\n GeneratedAnalyticsMetadataButtonDropdownCollapse,\n GeneratedAnalyticsMetadataButtonDropdownExpand,\n} from '../analytics-metadata/interfaces.js';\nimport { ButtonDropdownProps, CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nimport styles from './styles.css.js';\n\nconst ExpandableCategoryElement = ({\n index,\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n expandToViewport,\n variant,\n position,\n renderItem,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const ref = useRef<HTMLLIElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick: React.MouseEventHandler = event => {\n if (!disabled) {\n event.preventDefault();\n onGroupToggle(item, event);\n triggerRef.current?.focus();\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isVisualRefresh = useVisualRefresh();\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n\n const groupProps: ButtonDropdownProps.GroupRenderItem = {\n index: index ?? 0,\n type: 'group',\n option: item as ButtonDropdownProps.ItemGroup,\n disabled: !!disabled,\n highlighted: !!highlighted,\n expanded: expanded,\n expandDirection: 'horizontal',\n };\n const renderResult = renderItem?.({ item: groupProps }) ?? null;\n\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n [styles['no-content-styling']]: !!renderResult,\n [styles['is-focused']]: isKeyboardHighlighted,\n [styles['visual-refresh']]: isVisualRefresh,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, expanded, disabled })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: !expanded ? 'expand' : 'collapse',\n detail: {\n position: position || '0',\n label: { root: 'self' },\n id: item.id || '',\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand | GeneratedAnalyticsMetadataButtonDropdownCollapse)\n )}\n >\n {renderResult ? (\n renderResult\n ) : (\n <>\n {(item.iconName || item.iconUrl || item.iconSvg) && (\n <span className={styles['icon-wrapper']}>\n <InternalIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />\n </span>\n )}\n <span>{item.text}</span>\n <span className={clsx(styles['expand-icon'], styles['expand-icon-right'])}>\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </>\n )}\n </span>\n );\n\n let content: React.ReactNode;\n // If the category element is disabled, we do not render a dropdown.\n // Screenreaders are confused by additional sections\n if (isDisabledWithReason) {\n content = (\n <Tooltip content={item.disabledReason}>\n {trigger}\n {descriptionEl}\n </Tooltip>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <Dropdown\n open={expanded}\n interior={true}\n hideBlockBorder={false}\n expandToViewport={expandToViewport}\n trigger={trigger}\n content={\n item.items && expanded ? (\n <ul\n role=\"menu\"\n aria-label={item.text}\n className={clsx(styles['items-list-container'], styles['in-dropdown'])}\n >\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n variant={variant}\n position={position}\n renderItem={renderItem}\n parentProps={groupProps}\n />\n </ul>\n ) : undefined\n }\n />\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted,\n })}\n role=\"presentation\"\n data-testid={item.id}\n ref={ref}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n {content}\n </li>\n );\n};\n\nexport default ExpandableCategoryElement;\n"]}
|
|
@@ -65,7 +65,7 @@ const MobileExpandableCategoryElement = ({ index, item, onItemActivate, onGroupT
|
|
|
65
65
|
}) }, renderResult ? (renderResult) : (React.createElement(React.Fragment, null,
|
|
66
66
|
(item.iconName || item.iconUrl || item.iconSvg) && (React.createElement("span", { className: styles['icon-wrapper'] },
|
|
67
67
|
React.createElement(InternalIcon, { name: item.iconName, url: item.iconUrl, svg: item.iconSvg, alt: item.iconAlt }))),
|
|
68
|
-
item.text,
|
|
68
|
+
React.createElement("span", null, item.text),
|
|
69
69
|
React.createElement("span", { className: clsx(styles['expand-icon'], {
|
|
70
70
|
[styles['expand-icon-up']]: expanded,
|
|
71
71
|
}) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile-expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.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, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { GeneratedAnalyticsMetadataButtonDropdownExpand } from '../analytics-metadata/interfaces.js';\nimport { ButtonDropdownProps, CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport MobileExpandableGroup from '../mobile-expandable-group/mobile-expandable-group';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item.js';\n\nimport styles from './styles.css.js';\n\nconst MobileExpandableCategoryElement = ({\n index,\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n position,\n renderItem,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick = (e: React.MouseEvent) => {\n if (!disabled) {\n e.preventDefault();\n onGroupToggle(item, e);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n\n const groupProps: ButtonDropdownProps.GroupRenderItem = {\n index: index ?? 0,\n type: 'group',\n option: item as ButtonDropdownProps.ItemGroup,\n disabled: !!disabled,\n highlighted: !!highlighted,\n expanded: expanded,\n expandDirection: 'vertical',\n };\n const renderResult = renderItem?.({ item: groupProps }) ?? null;\n\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles['rolled-down']]: expanded,\n [styles['no-content-styling']]: !!renderResult,\n [styles.disabled]: disabled,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, disabled, expanded })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: 'expand',\n detail: {\n position: position || '0',\n label: { root: 'self' },\n id: item.id || '',\n expanded: `${!expanded}`,\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand)\n )}\n >\n {renderResult ? (\n renderResult\n ) : (\n <>\n {(item.iconName || item.iconUrl || item.iconSvg) && (\n <span className={styles['icon-wrapper']}>\n <InternalIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />\n </span>\n )}\n {item.text}\n <span\n className={clsx(styles['expand-icon'], {\n [styles['expand-icon-up']]: expanded,\n })}\n >\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </>\n )}\n </span>\n );\n\n let content: React.ReactNode;\n\n if (isDisabledWithReason) {\n content = (\n <>\n {descriptionEl}\n <Tooltip content={item.disabledReason}>{trigger}</Tooltip>\n </>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <MobileExpandableGroup open={expanded} trigger={trigger}>\n {item.items && expanded && (\n <ul role=\"menu\" aria-label={item.text} className={styles['items-list-container']}>\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n hasCategoryHeader={true}\n variant={variant}\n position={position}\n renderItem={renderItem}\n parentProps={groupProps}\n />\n </ul>\n )}\n </MobileExpandableGroup>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted || expanded,\n [styles.expandable]: true,\n })}\n role=\"presentation\"\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n data-testid={item.id}\n >\n {content}\n </li>\n );\n};\n\nexport default MobileExpandableCategoryElement;\n"]}
|
|
1
|
+
{"version":3,"file":"mobile-expandable-category-element.js","sourceRoot":"","sources":["../../../../src/button-dropdown/category-elements/mobile-expandable-category-element.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, { useEffect } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { GeneratedAnalyticsMetadataButtonDropdownExpand } from '../analytics-metadata/interfaces.js';\nimport { ButtonDropdownProps, CategoryProps } from '../interfaces';\nimport ItemsList from '../items-list';\nimport MobileExpandableGroup from '../mobile-expandable-group/mobile-expandable-group';\nimport Tooltip from '../tooltip.js';\nimport { getMenuItemProps } from '../utils/menu-item.js';\n\nimport styles from './styles.css.js';\n\nconst MobileExpandableCategoryElement = ({\n index,\n item,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n lastInDropdown,\n highlightItem,\n disabled,\n variant,\n position,\n renderItem,\n}: CategoryProps) => {\n const highlighted = isHighlighted(item);\n const expanded = isExpanded(item);\n const isKeyboardHighlighted = isKeyboardHighlight(item);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n\n useEffect(() => {\n if (triggerRef.current && highlighted && !expanded) {\n triggerRef.current.focus();\n }\n }, [expanded, highlighted]);\n\n const onClick = (e: React.MouseEvent) => {\n if (!disabled) {\n e.preventDefault();\n onGroupToggle(item, e);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isDisabledWithReason = !!item.disabledReason && item.disabled;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n\n const groupProps: ButtonDropdownProps.GroupRenderItem = {\n index: index ?? 0,\n type: 'group',\n option: item as ButtonDropdownProps.ItemGroup,\n disabled: !!disabled,\n highlighted: !!highlighted,\n expanded: expanded,\n expandDirection: 'vertical',\n };\n const renderResult = renderItem?.({ item: groupProps }) ?? null;\n\n const trigger = item.text && (\n <span\n className={clsx(styles.header, styles['expandable-header'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles['rolled-down']]: expanded,\n [styles['no-content-styling']]: !!renderResult,\n [styles.disabled]: disabled,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex={highlighted ? 0 : -1}\n ref={triggerRef}\n {...getMenuItemProps({ parent: true, disabled, expanded })}\n {...(isDisabledWithReason ? targetProps : {})}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : ({\n action: 'expand',\n detail: {\n position: position || '0',\n label: { root: 'self' },\n id: item.id || '',\n expanded: `${!expanded}`,\n },\n } as GeneratedAnalyticsMetadataButtonDropdownExpand)\n )}\n >\n {renderResult ? (\n renderResult\n ) : (\n <>\n {(item.iconName || item.iconUrl || item.iconSvg) && (\n <span className={styles['icon-wrapper']}>\n <InternalIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />\n </span>\n )}\n <span>{item.text}</span>\n <span\n className={clsx(styles['expand-icon'], {\n [styles['expand-icon-up']]: expanded,\n })}\n >\n <InternalIcon name=\"caret-down-filled\" />\n </span>\n </>\n )}\n </span>\n );\n\n let content: React.ReactNode;\n\n if (isDisabledWithReason) {\n content = (\n <>\n {descriptionEl}\n <Tooltip content={item.disabledReason}>{trigger}</Tooltip>\n </>\n );\n } else if (disabled) {\n content = trigger;\n } else {\n content = (\n <MobileExpandableGroup open={expanded} trigger={trigger}>\n {item.items && expanded && (\n <ul role=\"menu\" aria-label={item.text} className={styles['items-list-container']}>\n <ItemsList\n items={item.items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n lastInDropdown={lastInDropdown}\n highlightItem={highlightItem}\n hasCategoryHeader={true}\n variant={variant}\n position={position}\n renderItem={renderItem}\n parentProps={groupProps}\n />\n </ul>\n )}\n </MobileExpandableGroup>\n );\n }\n\n return (\n <li\n className={clsx(styles.category, styles[`variant-${variant}`], styles.expandable, {\n [styles.expanded]: expanded,\n [styles.disabled]: disabled,\n [styles.highlighted]: highlighted || expanded,\n [styles.expandable]: true,\n })}\n role=\"presentation\"\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n data-testid={item.id}\n >\n {content}\n </li>\n );\n};\n\nexport default MobileExpandableCategoryElement;\n"]}
|
|
@@ -122,7 +122,7 @@ const MenuItemContent = ({ item, disabled, highlighted, }) => {
|
|
|
122
122
|
React.createElement("div", { className: styles['content-wrapper'] },
|
|
123
123
|
React.createElement("div", { className: styles['main-row'] },
|
|
124
124
|
React.createElement("div", null,
|
|
125
|
-
item.text,
|
|
125
|
+
React.createElement("span", null, item.text),
|
|
126
126
|
hasExternal && React.createElement(ExternalIcon, { disabled: disabled, ariaLabel: item.externalIconAriaLabel })),
|
|
127
127
|
item.labelTag && (React.createElement("div", { className: clsx(styles['label-tag'], disabled && styles.disabled) }, item.labelTag))),
|
|
128
128
|
item.secondaryText && (React.createElement("div", { className: clsx(styles['secondary-text'], highlighted && styles.highlighted, disabled && styles.disabled) }, item.secondaryText)))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/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\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useDropdownContext } from '../../dropdown/context';\nimport InternalIcon, { InternalIconProps } from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport { getDataAttributes } from '../../internal/utils/data-attributes';\nimport { GeneratedAnalyticsMetadataButtonDropdownClick } from '../analytics-metadata/interfaces';\nimport { ButtonDropdownProps, InternalCheckboxItem, InternalItem, ItemProps, LinkItem } from '../interfaces';\nimport Tooltip from '../tooltip';\nimport { getMenuItemCheckboxProps, getMenuItemProps } from '../utils/menu-item';\nimport { isCheckboxItem, isLinkItem } from '../utils/utils';\nimport { getItemTarget } from '../utils/utils';\n\nimport analyticsLabels from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst ItemElement = ({\n position = '1',\n index,\n item,\n disabled,\n onItemActivate,\n highlighted,\n highlightItem,\n showDivider,\n hasCategoryHeader,\n isKeyboardHighlighted = false,\n analyticsMetadataTransformer = (metadata: GeneratedAnalyticsMetadataFragment) => metadata,\n variant = 'normal',\n linkStyle,\n renderItem,\n parentProps,\n}: ItemProps) => {\n const isLink = isLinkItem(item);\n const isCheckbox = isCheckboxItem(item);\n const onClick = (event: React.MouseEvent) => {\n // Stop propagation to parent node and handle event exclusively in here. This ensures\n // that no group will interfere with the default behavior of links\n event.stopPropagation();\n if (!isLink) {\n event.preventDefault();\n }\n if (!disabled) {\n onItemActivate(item, event);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <li\n className={clsx(styles['item-element'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles.disabled]: disabled,\n [styles['has-category-header']]: hasCategoryHeader,\n [styles['has-checkmark']]: isCheckbox,\n [styles['show-divider']]: showDivider,\n [styles['is-focused']]: isKeyboardHighlighted,\n [styles['visual-refresh']]: isVisualRefresh,\n })}\n role=\"presentation\"\n data-testid={item.id}\n data-description={item.description}\n {...getDataAttributes(item.dataAttributes, ['testid'])}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : (analyticsMetadataTransformer!({\n action: 'click',\n detail: {\n position,\n id: item.id,\n label: `.${analyticsLabels['menu-item']}`,\n href: (item as LinkItem).href || '',\n },\n }) as GeneratedAnalyticsMetadataButtonDropdownClick)\n )}\n >\n <MenuItem\n index={index}\n item={item}\n disabled={disabled}\n highlighted={highlighted}\n linkStyle={linkStyle}\n renderItem={renderItem}\n parentProps={parentProps}\n />\n </li>\n );\n};\n\ninterface MenuItemProps {\n index?: number;\n item: InternalItem | InternalCheckboxItem;\n disabled: boolean;\n highlighted: boolean;\n linkStyle?: boolean;\n renderItem?: ButtonDropdownProps.ItemRenderer;\n parentProps?: ButtonDropdownProps.GroupRenderItem;\n}\n\nfunction MenuItem({ index, item, disabled, highlighted, linkStyle, renderItem, parentProps }: MenuItemProps) {\n const menuItemRef = useRef<(HTMLSpanElement & HTMLAnchorElement) | null>(null);\n const isCheckbox = isCheckboxItem(item);\n const isCurrentBreadcrumb = !isCheckbox && item.isCurrentBreadcrumb;\n\n useEffect(() => {\n if (highlighted && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [highlighted]);\n\n let itemProps: { item: ButtonDropdownProps.RenderItem };\n\n if (isCheckbox) {\n itemProps = {\n item: {\n index: index ?? 0,\n type: 'checkbox',\n option: item as ButtonDropdownProps.CheckboxItem,\n disabled: disabled,\n highlighted: highlighted,\n checked: item.checked,\n parent: parentProps ?? null,\n },\n };\n } else {\n itemProps = {\n item: {\n index: index ?? 0,\n type: 'action',\n option: item as ButtonDropdownProps.Item,\n disabled: disabled,\n highlighted: highlighted,\n parent: parentProps ?? null,\n },\n };\n }\n\n const renderResult = renderItem?.(itemProps) ?? null;\n\n const isDisabledWithReason = disabled && item.disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const menuItemProps: React.HTMLAttributes<HTMLSpanElement & HTMLAnchorElement> = {\n 'aria-label': item.ariaLabel,\n className: clsx(\n styles['menu-item'],\n !!renderResult && styles['no-content-styling'],\n analyticsLabels['menu-item'],\n linkStyle && styles['link-style'],\n linkStyle && highlighted && styles['link-style-highlighted'],\n isCurrentBreadcrumb && styles['current-breadcrumb']\n ),\n 'aria-current': isCurrentBreadcrumb,\n lang: item.lang,\n ref: menuItemRef,\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex: highlighted ? 0 : -1,\n ...(isCheckbox ? getMenuItemCheckboxProps({ disabled, checked: item.checked }) : getMenuItemProps({ disabled })),\n ...(isDisabledWithReason ? targetProps : {}),\n };\n\n const menuItem = isLinkItem(item) ? (\n <a\n {...menuItemProps}\n href={!disabled ? item.href : undefined}\n download={!disabled && item.download ? item.download : undefined}\n target={getItemTarget(item)}\n rel={item.external ? 'noopener noreferrer' : undefined}\n >\n {renderResult ? renderResult : <MenuItemContent item={item} disabled={disabled} highlighted={highlighted} />}\n </a>\n ) : (\n <span {...menuItemProps}>\n {renderResult ? renderResult : <MenuItemContent item={item} disabled={disabled} highlighted={highlighted} />}\n </span>\n );\n\n const { position } = useDropdownContext();\n const tooltipPosition = position === 'bottom-left' || position === 'top-left' ? 'left' : 'right';\n return isDisabledWithReason ? (\n <Tooltip content={item.disabledReason} position={tooltipPosition} className={styles['item-tooltip-wrapper']}>\n {menuItem}\n {descriptionEl}\n </Tooltip>\n ) : (\n menuItem\n );\n}\n\nconst MenuItemContent = ({\n item,\n disabled,\n highlighted,\n}: {\n item: InternalItem | InternalCheckboxItem;\n disabled: boolean;\n highlighted: boolean;\n}) => {\n const hasIcon = !!(item.iconName || item.iconUrl || item.iconSvg);\n const hasExternal = isLinkItem(item) && item.external;\n const isCheckbox = isCheckboxItem(item);\n return (\n <>\n {isCheckbox && <MenuItemCheckmark checked={item.checked} disabled={disabled} />}\n {hasIcon && (\n <MenuItemIcon\n name={item.iconName}\n url={item.iconUrl}\n svg={item.iconSvg}\n alt={item.iconAlt}\n badge={item.badge}\n />\n )}\n <div className={styles['content-wrapper']}>\n <div className={styles['main-row']}>\n <div>\n {item.text}\n {hasExternal && <ExternalIcon disabled={disabled} ariaLabel={item.externalIconAriaLabel} />}\n </div>\n {item.labelTag && (\n <div className={clsx(styles['label-tag'], disabled && styles.disabled)}>{item.labelTag}</div>\n )}\n </div>\n {item.secondaryText && (\n <div\n className={clsx(styles['secondary-text'], highlighted && styles.highlighted, disabled && styles.disabled)}\n >\n {item.secondaryText}\n </div>\n )}\n </div>\n </>\n );\n};\n\nconst MenuItemIcon = (props: InternalIconProps) => (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n);\n\n// Toggle has aria-hidden set because it's just used as a graphical element,\n// a11y attributes for the checkmark are communicated through the role and aria-checked state\n// of the menu element item.\nconst MenuItemCheckmark = ({ disabled, checked }: { disabled: boolean; checked: boolean }) => {\n const checkmark = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"check\" />;\n return (\n <span\n className={clsx(styles.icon, styles.checkmark, { [styles.disabled]: disabled })}\n aria-hidden=\"true\"\n style={{ visibility: checked ? 'visible' : 'hidden' }}\n >\n {checkmark}\n </span>\n );\n};\n\nconst ExternalIcon = ({ disabled, ariaLabel }: { disabled: boolean; ariaLabel?: string }) => {\n const icon = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"external\" />;\n return (\n <span className={styles['external-icon']} role={ariaLabel ? 'img' : undefined} aria-label={ariaLabel}>\n {icon}\n </span>\n );\n};\n\nexport default ItemElement;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/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\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useDropdownContext } from '../../dropdown/context';\nimport InternalIcon, { InternalIconProps } from '../../icon/internal';\nimport useHiddenDescription from '../../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../../internal/hooks/use-visual-mode';\nimport { getDataAttributes } from '../../internal/utils/data-attributes';\nimport { GeneratedAnalyticsMetadataButtonDropdownClick } from '../analytics-metadata/interfaces';\nimport { ButtonDropdownProps, InternalCheckboxItem, InternalItem, ItemProps, LinkItem } from '../interfaces';\nimport Tooltip from '../tooltip';\nimport { getMenuItemCheckboxProps, getMenuItemProps } from '../utils/menu-item';\nimport { isCheckboxItem, isLinkItem } from '../utils/utils';\nimport { getItemTarget } from '../utils/utils';\n\nimport analyticsLabels from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst ItemElement = ({\n position = '1',\n index,\n item,\n disabled,\n onItemActivate,\n highlighted,\n highlightItem,\n showDivider,\n hasCategoryHeader,\n isKeyboardHighlighted = false,\n analyticsMetadataTransformer = (metadata: GeneratedAnalyticsMetadataFragment) => metadata,\n variant = 'normal',\n linkStyle,\n renderItem,\n parentProps,\n}: ItemProps) => {\n const isLink = isLinkItem(item);\n const isCheckbox = isCheckboxItem(item);\n const onClick = (event: React.MouseEvent) => {\n // Stop propagation to parent node and handle event exclusively in here. This ensures\n // that no group will interfere with the default behavior of links\n event.stopPropagation();\n if (!isLink) {\n event.preventDefault();\n }\n if (!disabled) {\n onItemActivate(item, event);\n }\n };\n\n const onHover = () => {\n highlightItem(item);\n };\n\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <li\n className={clsx(styles['item-element'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles.disabled]: disabled,\n [styles['has-category-header']]: hasCategoryHeader,\n [styles['has-checkmark']]: isCheckbox,\n [styles['show-divider']]: showDivider,\n [styles['is-focused']]: isKeyboardHighlighted,\n [styles['visual-refresh']]: isVisualRefresh,\n })}\n role=\"presentation\"\n data-testid={item.id}\n data-description={item.description}\n {...getDataAttributes(item.dataAttributes, ['testid'])}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n {...getAnalyticsMetadataAttribute(\n disabled\n ? {}\n : (analyticsMetadataTransformer!({\n action: 'click',\n detail: {\n position,\n id: item.id,\n label: `.${analyticsLabels['menu-item']}`,\n href: (item as LinkItem).href || '',\n },\n }) as GeneratedAnalyticsMetadataButtonDropdownClick)\n )}\n >\n <MenuItem\n index={index}\n item={item}\n disabled={disabled}\n highlighted={highlighted}\n linkStyle={linkStyle}\n renderItem={renderItem}\n parentProps={parentProps}\n />\n </li>\n );\n};\n\ninterface MenuItemProps {\n index?: number;\n item: InternalItem | InternalCheckboxItem;\n disabled: boolean;\n highlighted: boolean;\n linkStyle?: boolean;\n renderItem?: ButtonDropdownProps.ItemRenderer;\n parentProps?: ButtonDropdownProps.GroupRenderItem;\n}\n\nfunction MenuItem({ index, item, disabled, highlighted, linkStyle, renderItem, parentProps }: MenuItemProps) {\n const menuItemRef = useRef<(HTMLSpanElement & HTMLAnchorElement) | null>(null);\n const isCheckbox = isCheckboxItem(item);\n const isCurrentBreadcrumb = !isCheckbox && item.isCurrentBreadcrumb;\n\n useEffect(() => {\n if (highlighted && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [highlighted]);\n\n let itemProps: { item: ButtonDropdownProps.RenderItem };\n\n if (isCheckbox) {\n itemProps = {\n item: {\n index: index ?? 0,\n type: 'checkbox',\n option: item as ButtonDropdownProps.CheckboxItem,\n disabled: disabled,\n highlighted: highlighted,\n checked: item.checked,\n parent: parentProps ?? null,\n },\n };\n } else {\n itemProps = {\n item: {\n index: index ?? 0,\n type: 'action',\n option: item as ButtonDropdownProps.Item,\n disabled: disabled,\n highlighted: highlighted,\n parent: parentProps ?? null,\n },\n };\n }\n\n const renderResult = renderItem?.(itemProps) ?? null;\n\n const isDisabledWithReason = disabled && item.disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const menuItemProps: React.HTMLAttributes<HTMLSpanElement & HTMLAnchorElement> = {\n 'aria-label': item.ariaLabel,\n className: clsx(\n styles['menu-item'],\n !!renderResult && styles['no-content-styling'],\n analyticsLabels['menu-item'],\n linkStyle && styles['link-style'],\n linkStyle && highlighted && styles['link-style-highlighted'],\n isCurrentBreadcrumb && styles['current-breadcrumb']\n ),\n 'aria-current': isCurrentBreadcrumb,\n lang: item.lang,\n ref: menuItemRef,\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex: highlighted ? 0 : -1,\n ...(isCheckbox ? getMenuItemCheckboxProps({ disabled, checked: item.checked }) : getMenuItemProps({ disabled })),\n ...(isDisabledWithReason ? targetProps : {}),\n };\n\n const menuItem = isLinkItem(item) ? (\n <a\n {...menuItemProps}\n href={!disabled ? item.href : undefined}\n download={!disabled && item.download ? item.download : undefined}\n target={getItemTarget(item)}\n rel={item.external ? 'noopener noreferrer' : undefined}\n >\n {renderResult ? renderResult : <MenuItemContent item={item} disabled={disabled} highlighted={highlighted} />}\n </a>\n ) : (\n <span {...menuItemProps}>\n {renderResult ? renderResult : <MenuItemContent item={item} disabled={disabled} highlighted={highlighted} />}\n </span>\n );\n\n const { position } = useDropdownContext();\n const tooltipPosition = position === 'bottom-left' || position === 'top-left' ? 'left' : 'right';\n return isDisabledWithReason ? (\n <Tooltip content={item.disabledReason} position={tooltipPosition} className={styles['item-tooltip-wrapper']}>\n {menuItem}\n {descriptionEl}\n </Tooltip>\n ) : (\n menuItem\n );\n}\n\nconst MenuItemContent = ({\n item,\n disabled,\n highlighted,\n}: {\n item: InternalItem | InternalCheckboxItem;\n disabled: boolean;\n highlighted: boolean;\n}) => {\n const hasIcon = !!(item.iconName || item.iconUrl || item.iconSvg);\n const hasExternal = isLinkItem(item) && item.external;\n const isCheckbox = isCheckboxItem(item);\n return (\n <>\n {isCheckbox && <MenuItemCheckmark checked={item.checked} disabled={disabled} />}\n {hasIcon && (\n <MenuItemIcon\n name={item.iconName}\n url={item.iconUrl}\n svg={item.iconSvg}\n alt={item.iconAlt}\n badge={item.badge}\n />\n )}\n <div className={styles['content-wrapper']}>\n <div className={styles['main-row']}>\n <div>\n <span>{item.text}</span>\n {hasExternal && <ExternalIcon disabled={disabled} ariaLabel={item.externalIconAriaLabel} />}\n </div>\n {item.labelTag && (\n <div className={clsx(styles['label-tag'], disabled && styles.disabled)}>{item.labelTag}</div>\n )}\n </div>\n {item.secondaryText && (\n <div\n className={clsx(styles['secondary-text'], highlighted && styles.highlighted, disabled && styles.disabled)}\n >\n {item.secondaryText}\n </div>\n )}\n </div>\n </>\n );\n};\n\nconst MenuItemIcon = (props: InternalIconProps) => (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n);\n\n// Toggle has aria-hidden set because it's just used as a graphical element,\n// a11y attributes for the checkmark are communicated through the role and aria-checked state\n// of the menu element item.\nconst MenuItemCheckmark = ({ disabled, checked }: { disabled: boolean; checked: boolean }) => {\n const checkmark = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"check\" />;\n return (\n <span\n className={clsx(styles.icon, styles.checkmark, { [styles.disabled]: disabled })}\n aria-hidden=\"true\"\n style={{ visibility: checked ? 'visible' : 'hidden' }}\n >\n {checkmark}\n </span>\n );\n};\n\nconst ExternalIcon = ({ disabled, ariaLabel }: { disabled: boolean; ariaLabel?: string }) => {\n const icon = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"external\" />;\n return (\n <span className={styles['external-icon']} role={ariaLabel ? 'img' : undefined} aria-label={ariaLabel}>\n {icon}\n </span>\n );\n};\n\nexport default ItemElement;\n"]}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
|
|
2
2
|
import './styles.scoped.css';
|
|
3
3
|
export default {
|
|
4
|
-
"item-element": "awsui_item-
|
|
5
|
-
"no-content-styling": "awsui_no-content-
|
|
6
|
-
"disabled": "
|
|
7
|
-
"show-divider": "awsui_show-
|
|
8
|
-
"highlighted": "
|
|
9
|
-
"is-focused": "awsui_is-
|
|
10
|
-
"visual-refresh": "awsui_visual-
|
|
11
|
-
"menu-item": "awsui_menu-
|
|
12
|
-
"link-style": "awsui_link-
|
|
13
|
-
"current-breadcrumb": "awsui_current-
|
|
14
|
-
"link-style-highlighted": "awsui_link-style-
|
|
15
|
-
"has-category-header": "awsui_has-category-
|
|
16
|
-
"item-tooltip-wrapper": "awsui_item-tooltip-
|
|
17
|
-
"has-checkmark": "awsui_has-
|
|
18
|
-
"icon": "
|
|
19
|
-
"checkmark": "
|
|
20
|
-
"external-icon": "awsui_external-
|
|
21
|
-
"content-wrapper": "awsui_content-
|
|
22
|
-
"main-row": "awsui_main-
|
|
23
|
-
"label-tag": "awsui_label-
|
|
24
|
-
"secondary-text": "awsui_secondary-
|
|
4
|
+
"item-element": "awsui_item-element_93a1u_34t16_145",
|
|
5
|
+
"no-content-styling": "awsui_no-content-styling_93a1u_34t16_157",
|
|
6
|
+
"disabled": "awsui_disabled_93a1u_34t16_162",
|
|
7
|
+
"show-divider": "awsui_show-divider_93a1u_34t16_169",
|
|
8
|
+
"highlighted": "awsui_highlighted_93a1u_34t16_172",
|
|
9
|
+
"is-focused": "awsui_is-focused_93a1u_34t16_187",
|
|
10
|
+
"visual-refresh": "awsui_visual-refresh_93a1u_34t16_190",
|
|
11
|
+
"menu-item": "awsui_menu-item_93a1u_34t16_194",
|
|
12
|
+
"link-style": "awsui_link-style_93a1u_34t16_211",
|
|
13
|
+
"current-breadcrumb": "awsui_current-breadcrumb_93a1u_34t16_248",
|
|
14
|
+
"link-style-highlighted": "awsui_link-style-highlighted_93a1u_34t16_256",
|
|
15
|
+
"has-category-header": "awsui_has-category-header_93a1u_34t16_262",
|
|
16
|
+
"item-tooltip-wrapper": "awsui_item-tooltip-wrapper_93a1u_34t16_262",
|
|
17
|
+
"has-checkmark": "awsui_has-checkmark_93a1u_34t16_262",
|
|
18
|
+
"icon": "awsui_icon_93a1u_34t16_269",
|
|
19
|
+
"checkmark": "awsui_checkmark_93a1u_34t16_273",
|
|
20
|
+
"external-icon": "awsui_external-icon_93a1u_34t16_280",
|
|
21
|
+
"content-wrapper": "awsui_content-wrapper_93a1u_34t16_284",
|
|
22
|
+
"main-row": "awsui_main-row_93a1u_34t16_290",
|
|
23
|
+
"label-tag": "awsui_label-tag_93a1u_34t16_297",
|
|
24
|
+
"secondary-text": "awsui_secondary-text_93a1u_34t16_304"
|
|
25
25
|
};
|
|
26
26
|
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
*/
|
|
143
143
|
/* Style used for links in slots/components that are text heavy, to help links stand out among
|
|
144
144
|
surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
|
|
145
|
-
.awsui_item-
|
|
145
|
+
.awsui_item-element_93a1u_34t16_145:not(#\9) {
|
|
146
146
|
position: relative;
|
|
147
147
|
z-index: 1;
|
|
148
148
|
border-block: var(--border-item-width-miijiw, 2px) solid transparent;
|
|
@@ -154,22 +154,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
154
154
|
margin-block-start: calc(-1 * var(--border-width-dropdown-youcay, 2px));
|
|
155
155
|
cursor: pointer;
|
|
156
156
|
}
|
|
157
|
-
.awsui_item-
|
|
157
|
+
.awsui_item-element_93a1u_34t16_145.awsui_no-content-styling_93a1u_34t16_157:not(#\9) {
|
|
158
158
|
padding-block: 0;
|
|
159
159
|
padding-inline: 0;
|
|
160
160
|
color: var(--color-text-dropdown-item-default-f1jr9u, #0f141a);
|
|
161
161
|
}
|
|
162
|
-
.awsui_item-
|
|
162
|
+
.awsui_item-element_93a1u_34t16_145.awsui_disabled_93a1u_34t16_162:not(#\9) {
|
|
163
163
|
cursor: default;
|
|
164
164
|
color: var(--color-text-dropdown-item-disabled-8m65hf, #b4b4bb);
|
|
165
165
|
}
|
|
166
|
-
.awsui_item-
|
|
166
|
+
.awsui_item-element_93a1u_34t16_145:not(#\9):first-child {
|
|
167
167
|
margin-block-start: 0;
|
|
168
168
|
}
|
|
169
|
-
.awsui_item-
|
|
169
|
+
.awsui_item-element_93a1u_34t16_145.awsui_show-divider_93a1u_34t16_169:not(#\9) {
|
|
170
170
|
border-block-end: var(--border-item-width-miijiw, 2px) solid var(--color-border-dropdown-group-ylcnh8, #c6c6cd);
|
|
171
171
|
}
|
|
172
|
-
.awsui_item-
|
|
172
|
+
.awsui_item-element_93a1u_34t16_145.awsui_highlighted_93a1u_34t16_172:not(#\9) {
|
|
173
173
|
color: var(--color-text-dropdown-item-highlighted-yr1px8, #0f141a);
|
|
174
174
|
z-index: 2;
|
|
175
175
|
background-color: var(--color-background-dropdown-item-hover-yunepc, #f3f3f7);
|
|
@@ -179,19 +179,19 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
179
179
|
border-end-start-radius: var(--border-radius-item-iwaia5, 8px);
|
|
180
180
|
border-end-end-radius: var(--border-radius-item-iwaia5, 8px);
|
|
181
181
|
}
|
|
182
|
-
.awsui_item-
|
|
182
|
+
.awsui_item-element_93a1u_34t16_145.awsui_highlighted_93a1u_34t16_172.awsui_disabled_93a1u_34t16_162:not(#\9) {
|
|
183
183
|
color: var(--color-text-dropdown-item-dimmed-tq8vh3, #b4b4bb);
|
|
184
184
|
border-color: var(--color-border-dropdown-item-dimmed-hover-ga9sch, #8c8c94);
|
|
185
185
|
background-color: var(--color-background-dropdown-item-dimmed-dhho03, transparent);
|
|
186
186
|
}
|
|
187
|
-
.awsui_item-
|
|
187
|
+
.awsui_item-element_93a1u_34t16_145.awsui_highlighted_93a1u_34t16_172.awsui_is-focused_93a1u_34t16_187:not(#\9) {
|
|
188
188
|
border-color: var(--color-border-dropdown-item-focused-zacqlp, #424650);
|
|
189
189
|
}
|
|
190
|
-
.awsui_item-
|
|
190
|
+
.awsui_item-element_93a1u_34t16_145.awsui_highlighted_93a1u_34t16_172.awsui_is-focused_93a1u_34t16_187:not(#\9):not(.awsui_visual-refresh_93a1u_34t16_190) {
|
|
191
191
|
box-shadow: inset 0 0 0 var(--border-control-focus-ring-shadow-spread-9mjajk, 1px) var(--color-border-item-focused-uk47pl, #006ce0);
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
.awsui_menu-
|
|
194
|
+
.awsui_menu-item_93a1u_34t16_194:not(#\9) {
|
|
195
195
|
min-inline-size: 0;
|
|
196
196
|
word-break: break-word;
|
|
197
197
|
display: flex;
|
|
@@ -203,50 +203,51 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
203
203
|
/* stylelint-disable selector-max-type */
|
|
204
204
|
/* stylelint-enable selector-max-type */
|
|
205
205
|
}
|
|
206
|
-
.awsui_menu-
|
|
206
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_no-content-styling_93a1u_34t16_157:not(#\9) {
|
|
207
207
|
padding-block: 0;
|
|
208
208
|
padding-inline: 0;
|
|
209
209
|
color: var(--color-text-dropdown-item-default-f1jr9u, #0f141a);
|
|
210
210
|
}
|
|
211
|
-
.awsui_menu-
|
|
211
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9) {
|
|
212
212
|
padding-block-end: calc(var(--space-option-padding-vertical-d2srv9, 4px) + var(--space-xxxs-pajhad, 2px));
|
|
213
213
|
text-underline-offset: 0.25em;
|
|
214
|
-
text-decoration-thickness: 1px;
|
|
214
|
+
text-decoration-thickness: var(--font-decoration-thickness-link-uesuo7, 1px);
|
|
215
|
+
text-decoration-style: var(--font-decoration-style-link-pk2xmp, solid);
|
|
215
216
|
color: var(--awsui-style-color-default-6b9ypa, var(--color-text-link-default-hude44, #006ce0));
|
|
216
217
|
font-weight: inherit;
|
|
217
218
|
letter-spacing: normal;
|
|
218
219
|
text-decoration-line: underline;
|
|
219
|
-
text-decoration-color: currentColor;
|
|
220
|
+
text-decoration-color: var(--color-text-link-decoration-default-0x8fhu, currentColor);
|
|
220
221
|
transition-property: color, -webkit-text-decoration;
|
|
221
222
|
transition-property: color, text-decoration;
|
|
222
223
|
transition-property: color, text-decoration, -webkit-text-decoration;
|
|
223
224
|
transition-duration: var(--motion-duration-refresh-only-medium-5rbn3k, 165ms);
|
|
224
225
|
}
|
|
225
226
|
@media (prefers-reduced-motion: reduce) {
|
|
226
|
-
.awsui_menu-
|
|
227
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9) {
|
|
227
228
|
animation: none;
|
|
228
229
|
transition: none;
|
|
229
230
|
}
|
|
230
231
|
}
|
|
231
|
-
.awsui-motion-disabled .awsui_menu-
|
|
232
|
+
.awsui-motion-disabled .awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9), .awsui-mode-entering .awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9) {
|
|
232
233
|
animation: none;
|
|
233
234
|
transition: none;
|
|
234
235
|
}
|
|
235
|
-
.awsui_menu-
|
|
236
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):hover {
|
|
236
237
|
cursor: pointer;
|
|
237
238
|
color: var(--awsui-style-color-hover-6b9ypa, var(--color-text-link-hover-2hfec2, #002b66));
|
|
238
239
|
}
|
|
239
|
-
.awsui_menu-
|
|
240
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):focus {
|
|
240
241
|
outline: none;
|
|
241
242
|
}
|
|
242
|
-
.awsui_menu-
|
|
243
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):active {
|
|
243
244
|
color: var(--awsui-style-color-active-6b9ypa, var(--color-text-link-hover-2hfec2, #002b66));
|
|
244
245
|
}
|
|
245
|
-
.awsui_menu-
|
|
246
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):active, .awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):focus, .awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211:not(#\9):hover {
|
|
246
247
|
text-decoration-line: underline;
|
|
247
|
-
text-decoration-color: currentColor;
|
|
248
|
+
text-decoration-color: var(--color-text-link-decoration-hover-kui2t9, currentColor);
|
|
248
249
|
}
|
|
249
|
-
.awsui_menu-
|
|
250
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211.awsui_current-breadcrumb_93a1u_34t16_248:not(#\9) {
|
|
250
251
|
font-weight: var(--font-weight-button-0eg20c, 700);
|
|
251
252
|
-webkit-font-smoothing: var(--font-smoothing-webkit-oemolo, antialiased);
|
|
252
253
|
-moz-osx-font-smoothing: var(--font-smoothing-moz-osx-hbm0aq, grayscale);
|
|
@@ -254,63 +255,63 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
|
|
|
254
255
|
font-weight: var(--font-weight-bold-fo1afg, 700);
|
|
255
256
|
text-decoration: none;
|
|
256
257
|
}
|
|
257
|
-
.awsui_menu-
|
|
258
|
+
.awsui_menu-item_93a1u_34t16_194.awsui_link-style_93a1u_34t16_211.awsui_link-style-highlighted_93a1u_34t16_256:not(#\9) {
|
|
258
259
|
color: var(--color-text-link-hover-2hfec2, #002b66);
|
|
259
260
|
}
|
|
260
|
-
.awsui_menu-
|
|
261
|
+
.awsui_menu-item_93a1u_34t16_194:not(#\9):focus {
|
|
261
262
|
outline: none;
|
|
262
263
|
}
|
|
263
|
-
.awsui_has-category-
|
|
264
|
+
.awsui_has-category-header_93a1u_34t16_262 > .awsui_menu-item_93a1u_34t16_194:not(#\9), .awsui_has-category-header_93a1u_34t16_262 > .awsui_item-tooltip-wrapper_93a1u_34t16_262 > .awsui_menu-item_93a1u_34t16_194:not(#\9), .awsui_has-category-header_93a1u_34t16_262:not(#\9):not(.awsui_has-checkmark_93a1u_34t16_262) > span > .awsui_menu-item_93a1u_34t16_194 {
|
|
264
265
|
padding-inline-start: calc(var(--space-xs-ymlm0b, 8px) + var(--space-option-padding-horizontal-4taa4b, 20px));
|
|
265
266
|
}
|
|
266
|
-
.awsui_has-category-
|
|
267
|
+
.awsui_has-category-header_93a1u_34t16_262 > .awsui_menu-item_93a1u_34t16_194.awsui_no-content-styling_93a1u_34t16_157:not(#\9), .awsui_has-category-header_93a1u_34t16_262 > .awsui_item-tooltip-wrapper_93a1u_34t16_262 > .awsui_menu-item_93a1u_34t16_194.awsui_no-content-styling_93a1u_34t16_157:not(#\9), .awsui_has-category-header_93a1u_34t16_262:not(#\9):not(.awsui_has-checkmark_93a1u_34t16_262) > span > .awsui_menu-item_93a1u_34t16_194.awsui_no-content-styling_93a1u_34t16_157 {
|
|
267
268
|
padding-inline-start: 0;
|
|
268
269
|
}
|
|
269
270
|
|
|
270
|
-
.
|
|
271
|
+
.awsui_icon_93a1u_34t16_269:not(#\9) {
|
|
271
272
|
padding-inline-end: var(--space-xxs-hwfkai, 4px);
|
|
272
273
|
flex-shrink: 0;
|
|
273
274
|
}
|
|
274
|
-
.
|
|
275
|
+
.awsui_icon_93a1u_34t16_269.awsui_checkmark_93a1u_34t16_273:not(#\9) {
|
|
275
276
|
color: var(--color-item-selected-72rnwy, #006ce0);
|
|
276
277
|
}
|
|
277
|
-
.
|
|
278
|
+
.awsui_icon_93a1u_34t16_269.awsui_disabled_93a1u_34t16_162:not(#\9) {
|
|
278
279
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
279
280
|
}
|
|
280
281
|
|
|
281
|
-
.awsui_external-
|
|
282
|
+
.awsui_external-icon_93a1u_34t16_280:not(#\9) {
|
|
282
283
|
margin-inline-start: var(--space-xxs-hwfkai, 4px);
|
|
283
284
|
}
|
|
284
285
|
|
|
285
|
-
.awsui_content-
|
|
286
|
+
.awsui_content-wrapper_93a1u_34t16_284:not(#\9) {
|
|
286
287
|
flex: 1;
|
|
287
288
|
display: flex;
|
|
288
289
|
flex-direction: column;
|
|
289
290
|
}
|
|
290
291
|
|
|
291
|
-
.awsui_main-
|
|
292
|
+
.awsui_main-row_93a1u_34t16_290:not(#\9) {
|
|
292
293
|
display: flex;
|
|
293
294
|
justify-content: space-between;
|
|
294
295
|
align-items: center;
|
|
295
296
|
gap: var(--space-s-tvghoh, 12px);
|
|
296
297
|
}
|
|
297
298
|
|
|
298
|
-
.awsui_label-
|
|
299
|
+
.awsui_label-tag_93a1u_34t16_297:not(#\9) {
|
|
299
300
|
color: var(--color-text-body-default-vvtq8u, #0f141a);
|
|
300
301
|
}
|
|
301
|
-
.awsui_label-
|
|
302
|
+
.awsui_label-tag_93a1u_34t16_297.awsui_disabled_93a1u_34t16_162:not(#\9) {
|
|
302
303
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
303
304
|
}
|
|
304
305
|
|
|
305
|
-
.awsui_secondary-
|
|
306
|
+
.awsui_secondary-text_93a1u_34t16_304:not(#\9) {
|
|
306
307
|
font-size: var(--font-size-body-s-smc8cv, 12px);
|
|
307
308
|
line-height: var(--line-height-body-s-nu5hx1, 16px);
|
|
308
309
|
letter-spacing: var(--letter-spacing-body-s-gq78ok, 0.005em);
|
|
309
310
|
color: var(--color-text-dropdown-item-secondary-v12lfh, #656871);
|
|
310
311
|
}
|
|
311
|
-
.awsui_secondary-
|
|
312
|
+
.awsui_secondary-text_93a1u_34t16_304.awsui_highlighted_93a1u_34t16_172:not(#\9) {
|
|
312
313
|
color: var(--color-text-dropdown-item-highlighted-yr1px8, #0f141a);
|
|
313
314
|
}
|
|
314
|
-
.awsui_secondary-
|
|
315
|
+
.awsui_secondary-text_93a1u_34t16_304.awsui_disabled_93a1u_34t16_162:not(#\9) {
|
|
315
316
|
color: var(--color-text-interactive-disabled-1bqmrl, #b4b4bb);
|
|
316
317
|
}
|
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
// es-module interop with Babel and Typescript
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
module.exports.default = {
|
|
5
|
-
"item-element": "awsui_item-
|
|
6
|
-
"no-content-styling": "awsui_no-content-
|
|
7
|
-
"disabled": "
|
|
8
|
-
"show-divider": "awsui_show-
|
|
9
|
-
"highlighted": "
|
|
10
|
-
"is-focused": "awsui_is-
|
|
11
|
-
"visual-refresh": "awsui_visual-
|
|
12
|
-
"menu-item": "awsui_menu-
|
|
13
|
-
"link-style": "awsui_link-
|
|
14
|
-
"current-breadcrumb": "awsui_current-
|
|
15
|
-
"link-style-highlighted": "awsui_link-style-
|
|
16
|
-
"has-category-header": "awsui_has-category-
|
|
17
|
-
"item-tooltip-wrapper": "awsui_item-tooltip-
|
|
18
|
-
"has-checkmark": "awsui_has-
|
|
19
|
-
"icon": "
|
|
20
|
-
"checkmark": "
|
|
21
|
-
"external-icon": "awsui_external-
|
|
22
|
-
"content-wrapper": "awsui_content-
|
|
23
|
-
"main-row": "awsui_main-
|
|
24
|
-
"label-tag": "awsui_label-
|
|
25
|
-
"secondary-text": "awsui_secondary-
|
|
5
|
+
"item-element": "awsui_item-element_93a1u_34t16_145",
|
|
6
|
+
"no-content-styling": "awsui_no-content-styling_93a1u_34t16_157",
|
|
7
|
+
"disabled": "awsui_disabled_93a1u_34t16_162",
|
|
8
|
+
"show-divider": "awsui_show-divider_93a1u_34t16_169",
|
|
9
|
+
"highlighted": "awsui_highlighted_93a1u_34t16_172",
|
|
10
|
+
"is-focused": "awsui_is-focused_93a1u_34t16_187",
|
|
11
|
+
"visual-refresh": "awsui_visual-refresh_93a1u_34t16_190",
|
|
12
|
+
"menu-item": "awsui_menu-item_93a1u_34t16_194",
|
|
13
|
+
"link-style": "awsui_link-style_93a1u_34t16_211",
|
|
14
|
+
"current-breadcrumb": "awsui_current-breadcrumb_93a1u_34t16_248",
|
|
15
|
+
"link-style-highlighted": "awsui_link-style-highlighted_93a1u_34t16_256",
|
|
16
|
+
"has-category-header": "awsui_has-category-header_93a1u_34t16_262",
|
|
17
|
+
"item-tooltip-wrapper": "awsui_item-tooltip-wrapper_93a1u_34t16_262",
|
|
18
|
+
"has-checkmark": "awsui_has-checkmark_93a1u_34t16_262",
|
|
19
|
+
"icon": "awsui_icon_93a1u_34t16_269",
|
|
20
|
+
"checkmark": "awsui_checkmark_93a1u_34t16_273",
|
|
21
|
+
"external-icon": "awsui_external-icon_93a1u_34t16_280",
|
|
22
|
+
"content-wrapper": "awsui_content-wrapper_93a1u_34t16_284",
|
|
23
|
+
"main-row": "awsui_main-row_93a1u_34t16_290",
|
|
24
|
+
"label-tag": "awsui_label-tag_93a1u_34t16_297",
|
|
25
|
+
"secondary-text": "awsui_secondary-text_93a1u_34t16_304"
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/copy-to-clipboard/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,OAAkB,EAClB,uBAA+B,EAC/B,GAAG,SAAS,EACb,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/copy-to-clipboard/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,OAAkB,EAClB,uBAA+B,EAC/B,QAAe,EACf,GAAG,SAAS,EACb,EAAE,oBAAoB,eAetB"}
|
|
@@ -6,12 +6,12 @@ import useBaseComponent from '../internal/hooks/use-base-component';
|
|
|
6
6
|
import { applyDisplayName } from '../internal/utils/apply-display-name';
|
|
7
7
|
import { getExternalProps } from '../internal/utils/external-props';
|
|
8
8
|
import InternalCopyToClipboard from './internal';
|
|
9
|
-
export default function CopyToClipboard({ variant = 'button', popoverRenderWithPortal = false, ...restProps }) {
|
|
9
|
+
export default function CopyToClipboard({ variant = 'button', popoverRenderWithPortal = false, wrapText = true, ...restProps }) {
|
|
10
10
|
const baseProps = useBaseComponent('CopyToClipboard', {
|
|
11
11
|
props: { variant },
|
|
12
12
|
});
|
|
13
13
|
const filteredProps = getExternalProps(restProps);
|
|
14
|
-
return (React.createElement(InternalCopyToClipboard, { variant: variant, popoverRenderWithPortal: popoverRenderWithPortal, ...baseProps, ...filteredProps }));
|
|
14
|
+
return (React.createElement(InternalCopyToClipboard, { variant: variant, popoverRenderWithPortal: popoverRenderWithPortal, wrapText: wrapText, ...baseProps, ...filteredProps }));
|
|
15
15
|
}
|
|
16
16
|
applyDisplayName(CopyToClipboard, 'CopyToClipboard');
|
|
17
17
|
//# sourceMappingURL=index.js.map
|