@cloudscape-design/components 3.0.1043 → 3.0.1045

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 (58) hide show
  1. package/button-dropdown/internal.d.ts.map +1 -1
  2. package/button-dropdown/internal.js +2 -2
  3. package/button-dropdown/internal.js.map +1 -1
  4. package/flashbar/collapsible-flashbar.d.ts.map +1 -1
  5. package/flashbar/collapsible-flashbar.js +23 -10
  6. package/flashbar/collapsible-flashbar.js.map +1 -1
  7. package/flashbar/common.d.ts +3 -0
  8. package/flashbar/common.d.ts.map +1 -1
  9. package/flashbar/common.js +50 -1
  10. package/flashbar/common.js.map +1 -1
  11. package/flashbar/flash.d.ts +3 -0
  12. package/flashbar/flash.d.ts.map +1 -1
  13. package/flashbar/flash.js +40 -18
  14. package/flashbar/flash.js.map +1 -1
  15. package/flashbar/non-collapsible-flashbar.d.ts.map +1 -1
  16. package/flashbar/non-collapsible-flashbar.js +14 -2
  17. package/flashbar/non-collapsible-flashbar.js.map +1 -1
  18. package/internal/base-component/styles.scoped.css +1 -1
  19. package/internal/components/button-trigger/styles.css.js +13 -13
  20. package/internal/components/button-trigger/styles.scoped.css +36 -31
  21. package/internal/components/button-trigger/styles.selectors.js +13 -13
  22. package/internal/environment.js +2 -2
  23. package/internal/environment.json +2 -2
  24. package/internal/manifest.json +1 -1
  25. package/package.json +1 -2
  26. package/test-utils/dom/top-navigation/1.0-beta/index.d.ts +0 -28
  27. package/test-utils/dom/top-navigation/1.0-beta/index.js +0 -72
  28. package/test-utils/dom/top-navigation/1.0-beta/index.js.map +0 -1
  29. package/test-utils/selectors/top-navigation/1.0-beta/index.d.ts +0 -28
  30. package/test-utils/selectors/top-navigation/1.0-beta/index.js +0 -72
  31. package/test-utils/selectors/top-navigation/1.0-beta/index.js.map +0 -1
  32. package/top-navigation/1.0-beta/index.d.ts +0 -12
  33. package/top-navigation/1.0-beta/index.d.ts.map +0 -1
  34. package/top-navigation/1.0-beta/index.js +0 -19
  35. package/top-navigation/1.0-beta/index.js.map +0 -1
  36. package/top-navigation/1.0-beta/interfaces.d.ts +0 -102
  37. package/top-navigation/1.0-beta/interfaces.d.ts.map +0 -1
  38. package/top-navigation/1.0-beta/interfaces.js +0 -2
  39. package/top-navigation/1.0-beta/interfaces.js.map +0 -1
  40. package/top-navigation/1.0-beta/internal.d.ts +0 -13
  41. package/top-navigation/1.0-beta/internal.d.ts.map +0 -1
  42. package/top-navigation/1.0-beta/internal.js +0 -93
  43. package/top-navigation/1.0-beta/internal.js.map +0 -1
  44. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts +0 -20
  45. package/top-navigation/1.0-beta/parts/overflow-menu.d.ts.map +0 -1
  46. package/top-navigation/1.0-beta/parts/overflow-menu.js +0 -54
  47. package/top-navigation/1.0-beta/parts/overflow-menu.js.map +0 -1
  48. package/top-navigation/1.0-beta/parts/utility.d.ts +0 -14
  49. package/top-navigation/1.0-beta/parts/utility.d.ts.map +0 -1
  50. package/top-navigation/1.0-beta/parts/utility.js +0 -56
  51. package/top-navigation/1.0-beta/parts/utility.js.map +0 -1
  52. package/top-navigation/1.0-beta/styles.css.js +0 -28
  53. package/top-navigation/1.0-beta/styles.scoped.css +0 -360
  54. package/top-navigation/1.0-beta/styles.selectors.js +0 -29
  55. package/top-navigation/1.0-beta/use-top-navigation.d.ts +0 -29
  56. package/top-navigation/1.0-beta/use-top-navigation.d.ts.map +0 -1
  57. package/top-navigation/1.0-beta/use-top-navigation.js +0 -154
  58. package/top-navigation/1.0-beta/use-top-navigation.js.map +0 -1
package/flashbar/flash.js CHANGED
@@ -31,19 +31,43 @@ const ICON_TYPES = {
31
31
  };
32
32
  const useDiscoveredAction = createUseDiscoveredAction(awsuiPluginsInternal.flashbar.onActionRegistered);
33
33
  const useDiscoveredContent = createUseDiscoveredContent('flash', awsuiPluginsInternal.flashContent);
34
- function dismissButton(dismissLabel, onDismiss, style, type) {
35
- return (React.createElement("div", Object.assign({ className: styles['dismiss-button-wrapper'] }, getAnalyticsMetadataAttribute({
36
- action: 'dismiss',
37
- })),
38
- React.createElement(InternalButton, { onClick: onDismiss, className: styles['dismiss-button'], variant: "flashbar-icon", iconName: "close", formAction: "none", ariaLabel: dismissLabel, style: getDismissButtonStyles(style, type) })));
34
+ function dismissButton(dismissLabel, onDismiss, style, type, ref, id, onDismissed) {
35
+ return (React.createElement("div", Object.assign({ className: styles['dismiss-button-wrapper'] }, getAnalyticsMetadataAttribute({ action: 'dismiss' })),
36
+ React.createElement(InternalButton, { ref: ref, onClick: event => {
37
+ if (onDismiss) {
38
+ onDismiss(event);
39
+ }
40
+ if (onDismissed) {
41
+ onDismissed(id);
42
+ }
43
+ }, className: styles['dismiss-button'], variant: "flashbar-icon", iconName: "close", formAction: "none", ariaLabel: dismissLabel, style: getDismissButtonStyles(style, type) })));
39
44
  }
45
+ export const focusFlashFocusableArea = (flash) => {
46
+ if (!flash) {
47
+ return;
48
+ }
49
+ const dismissButton = flash.querySelector(`.${styles['dismiss-button']}`);
50
+ const focusContainer = flash.querySelector(`.${styles['flash-focus-container']}`);
51
+ if (dismissButton) {
52
+ dismissButton.focus();
53
+ }
54
+ else if (focusContainer) {
55
+ focusContainer.focus();
56
+ }
57
+ };
40
58
  export const focusFlashById = throttle((element, itemId) => {
41
- var _a;
42
- const selector = `[data-itemid="${CSS.escape(itemId)}"] .${styles['flash-focus-container']}`;
43
- (_a = element === null || element === void 0 ? void 0 : element.querySelector(selector)) === null || _a === void 0 ? void 0 : _a.focus();
59
+ if (!element) {
60
+ return;
61
+ }
62
+ const flashElement = element.querySelector(`[data-itemid="${CSS.escape(itemId)}"]`);
63
+ if (!flashElement) {
64
+ return;
65
+ }
66
+ const focusContainer = flashElement.querySelector(`.${styles['flash-focus-container']}`);
67
+ focusContainer === null || focusContainer === void 0 ? void 0 : focusContainer.focus();
44
68
  }, FOCUS_THROTTLE_DELAY, { trailing: false });
45
69
  export const Flash = React.forwardRef((_a, ref) => {
46
- var { id, header, content, dismissible, dismissLabel, loading, action, buttonText, onButtonClick, onDismiss, className, transitionState, ariaRole, i18nStrings, type = 'info', analyticsMetadata, style } = _a, props = __rest(_a, ["id", "header", "content", "dismissible", "dismissLabel", "loading", "action", "buttonText", "onButtonClick", "onDismiss", "className", "transitionState", "ariaRole", "i18nStrings", "type", "analyticsMetadata", "style"]);
70
+ var { id, header, content, dismissible, dismissLabel, loading, action, buttonText, onButtonClick, onDismiss, className, transitionState, ariaRole, i18nStrings, type = 'info', analyticsMetadata, style, rootRef, onDismissed } = _a, props = __rest(_a, ["id", "header", "content", "dismissible", "dismissLabel", "loading", "action", "buttonText", "onButtonClick", "onDismiss", "className", "transitionState", "ariaRole", "i18nStrings", "type", "analyticsMetadata", "style", "rootRef", "onDismissed"]);
47
71
  if (isDevelopment) {
48
72
  if (buttonText && !onButtonClick) {
49
73
  warnOnce('Flashbar', `You provided a \`buttonText\` prop without an \`onButtonClick\` handler. This will render a non-interactive action button.`);
@@ -54,11 +78,13 @@ export const Flash = React.forwardRef((_a, ref) => {
54
78
  }
55
79
  const [containerWidth, containerMeasureRef] = useContainerWidth();
56
80
  const elementRef = useComponentMetadata('Flash', PACKAGE_VERSION, analyticsMetadata);
57
- const mergedRef = useMergeRefs(ref, elementRef, containerMeasureRef);
81
+ // Merge all refs including the rootRef if provided
82
+ const mergedRef = useMergeRefs(ref, rootRef, elementRef, containerMeasureRef);
58
83
  const flashIconId = useUniqueId('flash-icon');
59
84
  const flashMessageId = useUniqueId('flash-message');
60
85
  const headerRefObject = useRef(null);
61
86
  const contentRefObject = useRef(null);
87
+ const dismissButtonRefObject = useRef(null);
62
88
  const { discoveredActions, headerRef: headerRefAction, contentRef: contentRefAction } = useDiscoveredAction(type);
63
89
  const { initialHidden, headerReplacementType, contentReplacementType, headerRef: headerRefContent, contentRef: contentRefContent, replacementHeaderRef, replacementContentRef, } = useDiscoveredContent({ type, header, children: content });
64
90
  const headerRef = useMergeRefs(headerRefAction, headerRefContent, headerRefObject);
@@ -69,9 +95,7 @@ export const Flash = React.forwardRef((_a, ref) => {
69
95
  const icon = loading ? (React.createElement("span", { role: "img", "aria-label": statusIconAriaLabel },
70
96
  React.createElement(InternalSpinner, null))) : (React.createElement(InternalIcon, { name: iconType, ariaLabel: statusIconAriaLabel }));
71
97
  const effectiveType = loading ? 'info' : type;
72
- const analyticsAttributes = {
73
- [DATA_ATTR_ANALYTICS_FLASHBAR]: effectiveType,
74
- };
98
+ const analyticsAttributes = { [DATA_ATTR_ANALYTICS_FLASHBAR]: effectiveType };
75
99
  if (analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.suppressFlowMetricEvents) {
76
100
  analyticsAttributes[DATA_ATTR_ANALYTICS_SUPPRESS_FLOW_EVENTS] = 'true';
77
101
  }
@@ -94,11 +118,9 @@ export const Flash = React.forwardRef((_a, ref) => {
94
118
  React.createElement("div", { className: clsx(styles['header-replacement'], headerReplacementType !== 'replaced' && styles.hidden), ref: replacementHeaderRef }),
95
119
  React.createElement("div", { className: clsx(styles['flash-content'], contentReplacementType !== 'original' ? styles.hidden : analyticsSelectors['flash-header']), ref: contentRef }, content),
96
120
  React.createElement("div", { className: clsx(styles['content-replacement'], contentReplacementType !== 'replaced' && styles.hidden), ref: replacementContentRef }))),
97
- React.createElement(ActionsWrapper, { className: styles['action-button-wrapper'], testUtilClasses: {
98
- actionSlot: styles['action-slot'],
99
- actionButton: styles['action-button'],
100
- }, action: action, discoveredActions: discoveredActions, buttonText: buttonText, onButtonClick: onButtonClick, containerWidth: containerWidth, wrappedClass: styles['action-wrapped'] })),
101
- dismissible && dismissButton(dismissLabel, onDismiss, style, effectiveType),
121
+ React.createElement(ActionsWrapper, { className: styles['action-button-wrapper'], testUtilClasses: { actionSlot: styles['action-slot'], actionButton: styles['action-button'] }, action: action, discoveredActions: discoveredActions, buttonText: buttonText, onButtonClick: onButtonClick, containerWidth: containerWidth, wrappedClass: styles['action-wrapped'] })),
122
+ dismissible &&
123
+ dismissButton(dismissLabel, onDismiss, style, effectiveType, dismissButtonRefObject, id, onDismissed),
102
124
  ariaRole === 'status' && (React.createElement(InternalLiveRegion, { sources: [statusIconAriaLabel, headerRefObject, contentRefObject] }))));
103
125
  });
104
126
  //# sourceMappingURL=flash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flash.js","sourceRoot":"","sources":["../../../src/flashbar/flash.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 } from 'react';\nimport clsx from 'clsx';\n\nimport {\n useComponentMetadata,\n useMergeRefs,\n useUniqueId,\n warnOnce,\n} from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\nimport { AnalyticsMetadata } from '@cloudscape-design/component-toolkit/internal/base-component/metrics/interfaces';\n\nimport { ActionsWrapper } from '../alert/actions-wrapper';\nimport { InternalButton } from '../button/internal';\nimport InternalIcon from '../icon/internal';\nimport {\n DATA_ATTR_ANALYTICS_FLASHBAR,\n DATA_ATTR_ANALYTICS_SUPPRESS_FLOW_EVENTS,\n} from '../internal/analytics/selectors';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\nimport { PACKAGE_VERSION } from '../internal/environment';\nimport { isDevelopment } from '../internal/is-development';\nimport { awsuiPluginsInternal } from '../internal/plugins/api';\nimport { createUseDiscoveredAction, createUseDiscoveredContent } from '../internal/plugins/helpers';\nimport { throttle } from '../internal/utils/throttle';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport InternalLiveRegion from '../live-region/internal';\nimport InternalSpinner from '../spinner/internal';\nimport { GeneratedAnalyticsMetadataFlashbarDismiss } from './analytics-metadata/interfaces';\nimport { FlashbarProps } from './interfaces';\nimport { getDismissButtonStyles, getFlashStyles } from './style';\nimport { FOCUS_THROTTLE_DELAY } from './utils';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst ICON_TYPES = {\n success: 'status-positive',\n warning: 'status-warning',\n info: 'status-info',\n error: 'status-negative',\n 'in-progress': 'status-in-progress',\n} as const;\n\nconst useDiscoveredAction = createUseDiscoveredAction(awsuiPluginsInternal.flashbar.onActionRegistered);\nconst useDiscoveredContent = createUseDiscoveredContent('flash', awsuiPluginsInternal.flashContent);\n\nfunction dismissButton(\n dismissLabel: FlashbarProps.MessageDefinition['dismissLabel'],\n onDismiss: FlashbarProps.MessageDefinition['onDismiss'],\n style?: FlashbarProps.Style,\n type?: string\n) {\n return (\n <div\n className={styles['dismiss-button-wrapper']}\n {...getAnalyticsMetadataAttribute({\n action: 'dismiss',\n } as Partial<GeneratedAnalyticsMetadataFlashbarDismiss>)}\n >\n <InternalButton\n onClick={onDismiss}\n className={styles['dismiss-button']}\n variant=\"flashbar-icon\"\n iconName=\"close\"\n formAction=\"none\"\n ariaLabel={dismissLabel}\n style={getDismissButtonStyles(style, type)}\n />\n </div>\n );\n}\n\nexport const focusFlashById = throttle(\n (element: HTMLElement | null, itemId: string) => {\n const selector = `[data-itemid=\"${CSS.escape(itemId)}\"] .${styles['flash-focus-container']}`;\n element?.querySelector<HTMLElement>(selector)?.focus();\n },\n FOCUS_THROTTLE_DELAY,\n { trailing: false }\n);\n\ninterface FlashProps extends FlashbarProps.MessageDefinition {\n className: string;\n transitionState?: string;\n i18nStrings?: FlashbarProps.I18nStrings;\n style?: FlashbarProps.Style;\n}\n\nexport const Flash = React.forwardRef(\n (\n {\n id,\n header,\n content,\n dismissible,\n dismissLabel,\n loading,\n action,\n buttonText,\n onButtonClick,\n onDismiss,\n className,\n transitionState,\n ariaRole,\n i18nStrings,\n type = 'info',\n analyticsMetadata,\n style,\n ...props\n }: FlashProps,\n ref: React.Ref<HTMLDivElement>\n ) => {\n if (isDevelopment) {\n if (buttonText && !onButtonClick) {\n warnOnce(\n 'Flashbar',\n `You provided a \\`buttonText\\` prop without an \\`onButtonClick\\` handler. This will render a non-interactive action button.`\n );\n }\n\n if (dismissible && !onDismiss) {\n warnOnce(\n 'Flashbar',\n `You have set the \\`dismissible\\` prop without an \\`onDismiss\\` handler. This will render a non-interactive dismiss button.`\n );\n }\n }\n\n const [containerWidth, containerMeasureRef] = useContainerWidth();\n\n const elementRef = useComponentMetadata('Flash', PACKAGE_VERSION, analyticsMetadata as AnalyticsMetadata);\n\n const mergedRef = useMergeRefs(ref, elementRef, containerMeasureRef);\n const flashIconId = useUniqueId('flash-icon');\n const flashMessageId = useUniqueId('flash-message');\n\n const headerRefObject = useRef<HTMLDivElement>(null);\n const contentRefObject = useRef<HTMLDivElement>(null);\n const { discoveredActions, headerRef: headerRefAction, contentRef: contentRefAction } = useDiscoveredAction(type);\n const {\n initialHidden,\n headerReplacementType,\n contentReplacementType,\n headerRef: headerRefContent,\n contentRef: contentRefContent,\n replacementHeaderRef,\n replacementContentRef,\n } = useDiscoveredContent({ type, header, children: content });\n\n const headerRef = useMergeRefs(headerRefAction, headerRefContent, headerRefObject);\n const contentRef = useMergeRefs(contentRefAction, contentRefContent, contentRefObject);\n\n const statusIconAriaLabel =\n props.statusIconAriaLabel ||\n i18nStrings?.[`${loading || type === 'in-progress' ? 'inProgress' : type}IconAriaLabel`];\n\n const iconType = ICON_TYPES[type];\n const icon = loading ? (\n <span role=\"img\" aria-label={statusIconAriaLabel}>\n <InternalSpinner />\n </span>\n ) : (\n <InternalIcon name={iconType} ariaLabel={statusIconAriaLabel} />\n );\n\n const effectiveType = loading ? 'info' : type;\n\n const analyticsAttributes: Record<string, string> = {\n [DATA_ATTR_ANALYTICS_FLASHBAR]: effectiveType,\n };\n\n if (analyticsMetadata?.suppressFlowMetricEvents) {\n analyticsAttributes[DATA_ATTR_ANALYTICS_SUPPRESS_FLOW_EVENTS] = 'true';\n }\n\n return (\n // We're not using \"polite\" or \"assertive\" here, just turning default behavior off.\n // eslint-disable-next-line @cloudscape-design/components/prefer-live-region\n <div\n ref={mergedRef}\n role={ariaRole}\n aria-live={ariaRole ? 'off' : undefined}\n data-itemid={id}\n className={clsx(\n styles.flash,\n styles[`flash-type-${effectiveType}`],\n className,\n transitionState && {\n [styles.enter]: transitionState === 'enter',\n [styles.entering]: transitionState === 'entering',\n [styles.entered]: transitionState === 'entered',\n [styles.exit]: transitionState === 'exit',\n [styles.exiting]: transitionState === 'exiting',\n [styles.exited]: transitionState === 'exited',\n },\n getVisualContextClassname(type === 'warning' && !loading ? 'flashbar-warning' : 'flashbar'),\n initialHidden && styles['initial-hidden']\n )}\n style={getFlashStyles(style, effectiveType)}\n {...analyticsAttributes}\n >\n <div className={styles['flash-body']}>\n <div\n className={styles['flash-focus-container']}\n tabIndex={-1}\n role=\"group\"\n aria-labelledby={`${flashIconId} ${flashMessageId}`}\n >\n <div className={clsx(styles['flash-icon'], styles['flash-text'])} id={flashIconId}>\n {icon}\n </div>\n <div className={clsx(styles['flash-message'], styles['flash-text'])} id={flashMessageId}>\n <div\n className={clsx(\n styles['flash-header'],\n headerReplacementType !== 'original' ? styles.hidden : analyticsSelectors['flash-header']\n )}\n ref={headerRef}\n >\n {header}\n </div>\n <div\n className={clsx(styles['header-replacement'], headerReplacementType !== 'replaced' && styles.hidden)}\n ref={replacementHeaderRef}\n ></div>\n <div\n className={clsx(\n styles['flash-content'],\n contentReplacementType !== 'original' ? styles.hidden : analyticsSelectors['flash-header']\n )}\n ref={contentRef}\n >\n {content}\n </div>\n <div\n className={clsx(styles['content-replacement'], contentReplacementType !== 'replaced' && styles.hidden)}\n ref={replacementContentRef}\n ></div>\n </div>\n </div>\n <ActionsWrapper\n className={styles['action-button-wrapper']}\n testUtilClasses={{\n actionSlot: styles['action-slot'],\n actionButton: styles['action-button'],\n }}\n action={action}\n discoveredActions={discoveredActions}\n buttonText={buttonText}\n onButtonClick={onButtonClick}\n containerWidth={containerWidth}\n wrappedClass={styles['action-wrapped']}\n />\n </div>\n {dismissible && dismissButton(dismissLabel, onDismiss, style, effectiveType)}\n {ariaRole === 'status' && (\n <InternalLiveRegion sources={[statusIconAriaLabel, headerRefObject, contentRefObject]} />\n )}\n </div>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"flash.js","sourceRoot":"","sources":["../../../src/flashbar/flash.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAGjH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,4BAA4B,EAC5B,wCAAwC,GACzC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,iBAAiB,MAAM,uCAAuC,CAAC;AACtE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AACzD,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,iBAAiB;IACxB,aAAa,EAAE,oBAAoB;CAC3B,CAAC;AAEX,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AACxG,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC;AAEpG,SAAS,aAAa,CACpB,YAA6D,EAC7D,SAAuD,EACvD,KAA2B,EAC3B,IAAa,EACb,GAAgC,EAChC,EAAW,EACX,WAAmC;IAEnC,OAAO,CACL,2CACE,SAAS,EAAE,MAAM,CAAC,wBAAwB,CAAC,IACvC,6BAA6B,CAAC,EAAE,MAAM,EAAE,SAAS,EAAwD,CAAC;QAE9G,oBAAC,cAAc,IACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,KAAK,CAAC,EAAE;gBACf,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,KAAK,CAAC,CAAC;iBAClB;gBACD,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,EAAE,CAAC,CAAC;iBACjB;YACH,CAAC,EACD,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACnC,OAAO,EAAC,eAAe,EACvB,QAAQ,EAAC,OAAO,EAChB,UAAU,EAAC,MAAM,EACjB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,GAC1C,CACE,CACP,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAyB,EAAE,EAAE;IACnE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO;KACR;IACD,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAElF,IAAI,aAAa,EAAE;QAChB,aAA6B,CAAC,KAAK,EAAE,CAAC;KACxC;SAAM,IAAI,cAAc,EAAE;QACxB,cAA8B,CAAC,KAAK,EAAE,CAAC;KACzC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CACpC,CAAC,OAA2B,EAAE,MAAc,EAAE,EAAE;IAC9C,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;KACR;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAc,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjG,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO;KACR;IAED,MAAM,cAAc,GAAG,YAAY,CAAC,aAAa,CAAc,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAEtG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,EACD,oBAAoB,EACpB,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAC;AAWF,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CACnC,CACE,EAqBa,EACb,GAA8B,EAC9B,EAAE;QAvBF,EACE,EAAE,EACF,MAAM,EACN,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,EACP,MAAM,EACN,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,eAAe,EACf,QAAQ,EACR,WAAW,EACX,IAAI,GAAG,MAAM,EACb,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,WAAW,OAEA,EADR,KAAK,cApBV,sPAqBC,CADS;IAIV,IAAI,aAAa,EAAE;QACjB,IAAI,UAAU,IAAI,CAAC,aAAa,EAAE;YAChC,QAAQ,CACN,UAAU,EACV,4HAA4H,CAC7H,CAAC;SACH;QAED,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE;YAC7B,QAAQ,CACN,UAAU,EACV,4HAA4H,CAC7H,CAAC;SACH;KACF;IAED,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC,GAAG,iBAAiB,EAAE,CAAC;IAElE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAsC,CAAC,CAAC;IAE1G,mDAAmD;IACnD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAEpD,MAAM,eAAe,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACrD,MAAM,gBAAgB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACtD,MAAM,sBAAsB,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC7D,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClH,MAAM,EACJ,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,iBAAiB,EAC7B,oBAAoB,EACpB,qBAAqB,GACtB,GAAG,oBAAoB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,YAAY,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,YAAY,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAEvF,MAAM,mBAAmB,GACvB,KAAK,CAAC,mBAAmB;SACzB,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,GAAG,OAAO,IAAI,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAA,CAAC;IAE3F,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CACrB,8BAAM,IAAI,EAAC,KAAK,gBAAa,mBAAmB;QAC9C,oBAAC,eAAe,OAAG,CACd,CACR,CAAC,CAAC,CAAC,CACF,oBAAC,YAAY,IAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,mBAAmB,GAAI,CACjE,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9C,MAAM,mBAAmB,GAA2B,EAAE,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,CAAC;IAEtG,IAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,wBAAwB,EAAE;QAC/C,mBAAmB,CAAC,wCAAwC,CAAC,GAAG,MAAM,CAAC;KACxE;IAED,OAAO;IACL,mFAAmF;IACnF,4EAA4E;IAC5E,2CACE,GAAG,EAAE,SAAS,EACd,IAAI,EAAE,QAAQ,eACH,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,iBAC1B,EAAE,EACf,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,cAAc,aAAa,EAAE,CAAC,EACrC,SAAS,EACT,eAAe,IAAI;YACjB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,eAAe,KAAK,OAAO;YAC3C,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,eAAe,KAAK,UAAU;YACjD,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,SAAS;YAC/C,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,eAAe,KAAK,MAAM;YACzC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,eAAe,KAAK,SAAS;YAC/C,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,QAAQ;SAC9C,EACD,yBAAyB,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC,EAC3F,aAAa,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAC1C,EACD,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,IACvC,mBAAmB;QAEvB,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YAClC,6BACE,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAC1C,QAAQ,EAAE,CAAC,CAAC,EACZ,IAAI,EAAC,OAAO,qBACK,GAAG,WAAW,IAAI,cAAc,EAAE;gBAEnD,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,IAC9E,IAAI,CACD;gBACN,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,cAAc;oBACrF,6BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,cAAc,CAAC,EACtB,qBAAqB,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAC1F,EACD,GAAG,EAAE,SAAS,IAEb,MAAM,CACH;oBACN,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,EACpG,GAAG,EAAE,oBAAoB,GACpB;oBACP,6BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,eAAe,CAAC,EACvB,sBAAsB,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAC3F,EACD,GAAG,EAAE,UAAU,IAEd,OAAO,CACJ;oBACN,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,sBAAsB,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,EACtG,GAAG,EAAE,qBAAqB,GACrB,CACH,CACF;YACN,oBAAC,cAAc,IACb,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAC1C,eAAe,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAC7F,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC,GACtC,CACE;QACL,WAAW;YACV,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,WAAW,CAAC;QACtG,QAAQ,KAAK,QAAQ,IAAI,CACxB,oBAAC,kBAAkB,IAAC,OAAO,EAAE,CAAC,mBAAmB,EAAE,eAAe,EAAE,gBAAgB,CAAC,GAAI,CAC1F,CACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport {\n useComponentMetadata,\n useMergeRefs,\n useUniqueId,\n warnOnce,\n} from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\nimport { AnalyticsMetadata } from '@cloudscape-design/component-toolkit/internal/base-component/metrics/interfaces';\n\nimport { ActionsWrapper } from '../alert/actions-wrapper';\nimport { ButtonProps } from '../button/interfaces';\nimport { InternalButton } from '../button/internal';\nimport InternalIcon from '../icon/internal';\nimport {\n DATA_ATTR_ANALYTICS_FLASHBAR,\n DATA_ATTR_ANALYTICS_SUPPRESS_FLOW_EVENTS,\n} from '../internal/analytics/selectors';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\nimport { PACKAGE_VERSION } from '../internal/environment';\nimport { isDevelopment } from '../internal/is-development';\nimport { awsuiPluginsInternal } from '../internal/plugins/api';\nimport { createUseDiscoveredAction, createUseDiscoveredContent } from '../internal/plugins/helpers';\nimport { throttle } from '../internal/utils/throttle';\nimport useContainerWidth from '../internal/utils/use-container-width';\nimport InternalLiveRegion from '../live-region/internal';\nimport InternalSpinner from '../spinner/internal';\nimport { GeneratedAnalyticsMetadataFlashbarDismiss } from './analytics-metadata/interfaces';\nimport { FlashbarProps } from './interfaces';\nimport { getDismissButtonStyles, getFlashStyles } from './style';\nimport { FOCUS_THROTTLE_DELAY } from './utils';\n\nimport analyticsSelectors from './analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nconst ICON_TYPES = {\n success: 'status-positive',\n warning: 'status-warning',\n info: 'status-info',\n error: 'status-negative',\n 'in-progress': 'status-in-progress',\n} as const;\n\nconst useDiscoveredAction = createUseDiscoveredAction(awsuiPluginsInternal.flashbar.onActionRegistered);\nconst useDiscoveredContent = createUseDiscoveredContent('flash', awsuiPluginsInternal.flashContent);\n\nfunction dismissButton(\n dismissLabel: FlashbarProps.MessageDefinition['dismissLabel'],\n onDismiss: FlashbarProps.MessageDefinition['onDismiss'],\n style?: FlashbarProps.Style,\n type?: string,\n ref?: React.Ref<ButtonProps.Ref>,\n id?: string,\n onDismissed?: (id?: string) => void\n) {\n return (\n <div\n className={styles['dismiss-button-wrapper']}\n {...getAnalyticsMetadataAttribute({ action: 'dismiss' } as Partial<GeneratedAnalyticsMetadataFlashbarDismiss>)}\n >\n <InternalButton\n ref={ref}\n onClick={event => {\n if (onDismiss) {\n onDismiss(event);\n }\n if (onDismissed) {\n onDismissed(id);\n }\n }}\n className={styles['dismiss-button']}\n variant=\"flashbar-icon\"\n iconName=\"close\"\n formAction=\"none\"\n ariaLabel={dismissLabel}\n style={getDismissButtonStyles(style, type)}\n />\n </div>\n );\n}\nexport const focusFlashFocusableArea = (flash: HTMLElement | null) => {\n if (!flash) {\n return;\n }\n const dismissButton = flash.querySelector(`.${styles['dismiss-button']}`);\n const focusContainer = flash.querySelector(`.${styles['flash-focus-container']}`);\n\n if (dismissButton) {\n (dismissButton as HTMLElement).focus();\n } else if (focusContainer) {\n (focusContainer as HTMLElement).focus();\n }\n};\n\nexport const focusFlashById = throttle(\n (element: HTMLElement | null, itemId: string) => {\n if (!element) {\n return;\n }\n\n const flashElement = element.querySelector<HTMLElement>(`[data-itemid=\"${CSS.escape(itemId)}\"]`);\n if (!flashElement) {\n return;\n }\n\n const focusContainer = flashElement.querySelector<HTMLElement>(`.${styles['flash-focus-container']}`);\n\n focusContainer?.focus();\n },\n FOCUS_THROTTLE_DELAY,\n { trailing: false }\n);\n\ninterface FlashProps extends FlashbarProps.MessageDefinition {\n className: string;\n transitionState?: string;\n i18nStrings?: FlashbarProps.I18nStrings;\n style?: FlashbarProps.Style;\n rootRef?: React.Ref<HTMLDivElement>;\n onDismissed?: (id?: string) => void;\n}\n\nexport const Flash = React.forwardRef(\n (\n {\n id,\n header,\n content,\n dismissible,\n dismissLabel,\n loading,\n action,\n buttonText,\n onButtonClick,\n onDismiss,\n className,\n transitionState,\n ariaRole,\n i18nStrings,\n type = 'info',\n analyticsMetadata,\n style,\n rootRef,\n onDismissed,\n ...props\n }: FlashProps,\n ref: React.Ref<HTMLDivElement>\n ) => {\n if (isDevelopment) {\n if (buttonText && !onButtonClick) {\n warnOnce(\n 'Flashbar',\n `You provided a \\`buttonText\\` prop without an \\`onButtonClick\\` handler. This will render a non-interactive action button.`\n );\n }\n\n if (dismissible && !onDismiss) {\n warnOnce(\n 'Flashbar',\n `You have set the \\`dismissible\\` prop without an \\`onDismiss\\` handler. This will render a non-interactive dismiss button.`\n );\n }\n }\n\n const [containerWidth, containerMeasureRef] = useContainerWidth();\n\n const elementRef = useComponentMetadata('Flash', PACKAGE_VERSION, analyticsMetadata as AnalyticsMetadata);\n\n // Merge all refs including the rootRef if provided\n const mergedRef = useMergeRefs(ref, rootRef, elementRef, containerMeasureRef);\n const flashIconId = useUniqueId('flash-icon');\n const flashMessageId = useUniqueId('flash-message');\n\n const headerRefObject = useRef<HTMLDivElement>(null);\n const contentRefObject = useRef<HTMLDivElement>(null);\n const dismissButtonRefObject = useRef<ButtonProps.Ref>(null);\n const { discoveredActions, headerRef: headerRefAction, contentRef: contentRefAction } = useDiscoveredAction(type);\n const {\n initialHidden,\n headerReplacementType,\n contentReplacementType,\n headerRef: headerRefContent,\n contentRef: contentRefContent,\n replacementHeaderRef,\n replacementContentRef,\n } = useDiscoveredContent({ type, header, children: content });\n\n const headerRef = useMergeRefs(headerRefAction, headerRefContent, headerRefObject);\n const contentRef = useMergeRefs(contentRefAction, contentRefContent, contentRefObject);\n\n const statusIconAriaLabel =\n props.statusIconAriaLabel ||\n i18nStrings?.[`${loading || type === 'in-progress' ? 'inProgress' : type}IconAriaLabel`];\n\n const iconType = ICON_TYPES[type];\n const icon = loading ? (\n <span role=\"img\" aria-label={statusIconAriaLabel}>\n <InternalSpinner />\n </span>\n ) : (\n <InternalIcon name={iconType} ariaLabel={statusIconAriaLabel} />\n );\n\n const effectiveType = loading ? 'info' : type;\n\n const analyticsAttributes: Record<string, string> = { [DATA_ATTR_ANALYTICS_FLASHBAR]: effectiveType };\n\n if (analyticsMetadata?.suppressFlowMetricEvents) {\n analyticsAttributes[DATA_ATTR_ANALYTICS_SUPPRESS_FLOW_EVENTS] = 'true';\n }\n\n return (\n // We're not using \"polite\" or \"assertive\" here, just turning default behavior off.\n // eslint-disable-next-line @cloudscape-design/components/prefer-live-region\n <div\n ref={mergedRef}\n role={ariaRole}\n aria-live={ariaRole ? 'off' : undefined}\n data-itemid={id}\n className={clsx(\n styles.flash,\n styles[`flash-type-${effectiveType}`],\n className,\n transitionState && {\n [styles.enter]: transitionState === 'enter',\n [styles.entering]: transitionState === 'entering',\n [styles.entered]: transitionState === 'entered',\n [styles.exit]: transitionState === 'exit',\n [styles.exiting]: transitionState === 'exiting',\n [styles.exited]: transitionState === 'exited',\n },\n getVisualContextClassname(type === 'warning' && !loading ? 'flashbar-warning' : 'flashbar'),\n initialHidden && styles['initial-hidden']\n )}\n style={getFlashStyles(style, effectiveType)}\n {...analyticsAttributes}\n >\n <div className={styles['flash-body']}>\n <div\n className={styles['flash-focus-container']}\n tabIndex={-1}\n role=\"group\"\n aria-labelledby={`${flashIconId} ${flashMessageId}`}\n >\n <div className={clsx(styles['flash-icon'], styles['flash-text'])} id={flashIconId}>\n {icon}\n </div>\n <div className={clsx(styles['flash-message'], styles['flash-text'])} id={flashMessageId}>\n <div\n className={clsx(\n styles['flash-header'],\n headerReplacementType !== 'original' ? styles.hidden : analyticsSelectors['flash-header']\n )}\n ref={headerRef}\n >\n {header}\n </div>\n <div\n className={clsx(styles['header-replacement'], headerReplacementType !== 'replaced' && styles.hidden)}\n ref={replacementHeaderRef}\n ></div>\n <div\n className={clsx(\n styles['flash-content'],\n contentReplacementType !== 'original' ? styles.hidden : analyticsSelectors['flash-header']\n )}\n ref={contentRef}\n >\n {content}\n </div>\n <div\n className={clsx(styles['content-replacement'], contentReplacementType !== 'replaced' && styles.hidden)}\n ref={replacementContentRef}\n ></div>\n </div>\n </div>\n <ActionsWrapper\n className={styles['action-button-wrapper']}\n testUtilClasses={{ actionSlot: styles['action-slot'], actionButton: styles['action-button'] }}\n action={action}\n discoveredActions={discoveredActions}\n buttonText={buttonText}\n onButtonClick={onButtonClick}\n containerWidth={containerWidth}\n wrappedClass={styles['action-wrapped']}\n />\n </div>\n {dismissible &&\n dismissButton(dismissLabel, onDismiss, style, effectiveType, dismissButtonRefObject, id, onDismissed)}\n {ariaRole === 'status' && (\n <InternalLiveRegion sources={[statusIconAriaLabel, headerRefObject, contentRefObject]} />\n )}\n </div>\n );\n }\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"non-collapsible-flashbar.d.ts","sourceRoot":"","sources":["../../../src/flashbar/non-collapsible-flashbar.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,aAAa,eAgHxG"}
1
+ {"version":3,"file":"non-collapsible-flashbar.d.ts","sourceRoot":"","sources":["../../../src/flashbar/non-collapsible-flashbar.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,aAAa,eAgIxG"}
@@ -14,7 +14,7 @@ import { Flash } from './flash';
14
14
  import styles from './styles.css.js';
15
15
  export default function NonCollapsibleFlashbar(_a) {
16
16
  var { items, i18nStrings, style } = _a, restProps = __rest(_a, ["items", "i18nStrings", "style"]);
17
- const { allItemsHaveId, baseProps, isReducedMotion, isVisualRefresh, mergedRef } = useFlashbar(Object.assign({ items }, restProps));
17
+ const { allItemsHaveId, baseProps, isReducedMotion, isVisualRefresh, mergedRef, flashRefs, handleFlashDismissed } = useFlashbar(Object.assign({ items }, restProps));
18
18
  const i18n = useInternalI18n('flashbar');
19
19
  const ariaLabel = i18n('i18nStrings.ariaLabel', i18nStrings === null || i18nStrings === void 0 ? void 0 : i18nStrings.ariaLabel);
20
20
  const iconAriaLabels = {
@@ -67,8 +67,20 @@ export default function NonCollapsibleFlashbar(_a) {
67
67
  * by the stacking, motion, and non-motion item group render functions.
68
68
  */
69
69
  function renderItem(item, key, transitionRootElement, transitionState) {
70
- return (React.createElement(Flash, Object.assign({ className: clsx(animateFlash && styles['flash-with-motion'], isVisualRefresh && styles['flash-refresh']), key: key, ref: transitionRootElement, transitionState: transitionState, i18nStrings: iconAriaLabels, style: style }, item)));
70
+ return (React.createElement(Flash, Object.assign({ className: clsx(animateFlash && styles['flash-with-motion'], isVisualRefresh && styles['flash-refresh']), key: key, ref: el => {
71
+ flashRefs.current[key] = el;
72
+ // If there's a transition root element ref, update it too
73
+ if (transitionRootElement && typeof transitionRootElement === 'function') {
74
+ transitionRootElement(el);
75
+ }
76
+ else if (transitionRootElement &&
77
+ typeof transitionRootElement === 'object' &&
78
+ 'current' in transitionRootElement) {
79
+ transitionRootElement.current = el;
80
+ }
81
+ }, transitionState: transitionState, i18nStrings: iconAriaLabels, style: style, onDismissed: handleFlashDismissed }, item)));
71
82
  }
83
+ // The handleFlashDismissed function is now provided by the useFlashbar hook
72
84
  return (React.createElement("div", Object.assign({}, baseProps, { className: clsx(baseProps.className, styles.flashbar), ref: mergedRef }),
73
85
  renderFlatItemsWithTransitions(),
74
86
  renderFlatItemsWithoutTransitions()));
@@ -1 +1 @@
1
- {"version":3,"file":"non-collapsible-flashbar.js","sourceRoot":"","sources":["../../../src/flashbar/non-collapsible-flashbar.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAA0D;QAA1D,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,OAA+B,EAA1B,SAAS,cAAzC,iCAA2C,CAAF;IACtF,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,WAAW,iBAC5F,KAAK,IACF,SAAS,EACZ,CAAC;IAEH,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG;QACrB,kBAAkB,EAAE,IAAI,CAAC,gCAAgC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,CAAC;QAC3F,uBAAuB,EAAE,IAAI,CAAC,qCAAqC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,CAAC;QAC1G,iBAAiB,EAAE,IAAI,CAAC,+BAA+B,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC;QACxF,oBAAoB,EAAE,IAAI,CAAC,kCAAkC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,oBAAoB,CAAC;QACjG,oBAAoB,EAAE,IAAI,CAAC,kCAAkC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,oBAAoB,CAAC;KAClG,CAAC;IAEF;;;;OAIG;IACH,MAAM,cAAc,GAAG,eAAe,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc,CAAC;IAE9E,MAAM,YAAY,GAAG,CAAC,eAAe,IAAI,eAAe,CAAC;IAEzD;;;OAGG;IACH,SAAS,8BAA8B;QACrC,IAAI,cAAc,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO;SACR;QAED,OAAO;QACL,uFAAuF;QAEvF,oBAAC,eAAe,IAAC,SAAS,EAAC,IAAI,EAAC,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,gBAAc,SAAS,IACnF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAAC,OAAA,CAC1B,oBAAC,UAAU,IACT,qBAAqB,EAAE,EAAE,QAAQ,EAAE,8BAA8B,EAAE,EACnE,GAAG,EAAE,MAAA,IAAI,CAAC,EAAE,mCAAI,KAAK,EACrB,EAAE,EAAE,IAAI,IAEP,CAAC,KAAa,EAAE,qBAA4D,EAAE,EAAE;;gBAAC,OAAA,CAChF,4BAAI,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,IACrC,UAAU,CAAC,IAAI,EAAE,MAAA,IAAI,CAAC,EAAE,mCAAI,KAAK,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAC9D,CACN,CAAA;aAAA,CACU,CACd,CAAA;SAAA,CAAC,CACc,CACnB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,iCAAiC;QACxC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO;SACR;QAED,OAAO,CACL,0CACE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,gBACnB,SAAS,IACjB,6BAA6B,CAAC,8BAA8B,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAErF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;YAAC,OAAA,CAC1B,0CACE,GAAG,EAAE,MAAA,IAAI,CAAC,EAAE,mCAAI,KAAK,EACrB,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAChC,6BAA6B,CAAC,wBAAwB,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAEnG,UAAU,CAAC,IAAI,EAAE,MAAA,IAAI,CAAC,EAAE,mCAAI,KAAK,CAAC,CAChC,CACN,CAAA;SAAA,CAAC,CACC,CACN,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,UAAU,CACjB,IAAqC,EACrC,GAAoB,EACpB,qBAA6D,EAC7D,eAAoC;QAEpC,OAAO,CACL,oBAAC,KAAK,kBACJ,SAAS,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,mBAAmB,CAAC,EAAE,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,EACxG,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,qBAAqB,EAC1B,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,cAAc,EAC3B,KAAK,EAAE,KAAK,IACR,IAAI,EACR,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,6CAAS,SAAS,IAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS;QACtF,8BAA8B,EAAE;QAChC,iCAAiC,EAAE,CAChC,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../i18n/context';\nimport { Transition } from '../internal/components/transition';\nimport { getComponentsAnalyticsMetadata, getItemAnalyticsMetadata } from './analytics-metadata/utils';\nimport { useFlashbar } from './common';\nimport { TIMEOUT_FOR_ENTERING_ANIMATION } from './constant';\nimport { Flash } from './flash';\nimport { FlashbarProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\nexport default function NonCollapsibleFlashbar({ items, i18nStrings, style, ...restProps }: FlashbarProps) {\n const { allItemsHaveId, baseProps, isReducedMotion, isVisualRefresh, mergedRef } = useFlashbar({\n items,\n ...restProps,\n });\n\n const i18n = useInternalI18n('flashbar');\n const ariaLabel = i18n('i18nStrings.ariaLabel', i18nStrings?.ariaLabel);\n const iconAriaLabels = {\n errorIconAriaLabel: i18n('i18nStrings.errorIconAriaLabel', i18nStrings?.errorIconAriaLabel),\n inProgressIconAriaLabel: i18n('i18nStrings.inProgressIconAriaLabel', i18nStrings?.inProgressIconAriaLabel),\n infoIconAriaLabel: i18n('i18nStrings.infoIconAriaLabel', i18nStrings?.infoIconAriaLabel),\n successIconAriaLabel: i18n('i18nStrings.successIconAriaLabel', i18nStrings?.successIconAriaLabel),\n warningIconAriaLabel: i18n('i18nStrings.warningIconAriaLabel', i18nStrings?.warningIconAriaLabel),\n };\n\n /**\n * All the flash items should have ids so we can identify which DOM element is being\n * removed from the DOM to animate it. Motion will be disabled if any of the provided\n * flash messages does not contain an `id`.\n */\n const motionDisabled = isReducedMotion || !isVisualRefresh || !allItemsHaveId;\n\n const animateFlash = !isReducedMotion && isVisualRefresh;\n\n /**\n * If the flashbar is flat and motion is `enabled` then the adding and removing of items\n * from the flashbar will render with visual transitions.\n */\n function renderFlatItemsWithTransitions() {\n if (motionDisabled || !items) {\n return;\n }\n\n return (\n // This is a proxy for <ul>, so we're not applying a class to another actual component.\n\n <TransitionGroup component=\"ul\" className={styles['flash-list']} aria-label={ariaLabel}>\n {items.map((item, index) => (\n <Transition\n transitionChangeDelay={{ entering: TIMEOUT_FOR_ENTERING_ANIMATION }}\n key={item.id ?? index}\n in={true}\n >\n {(state: string, transitionRootElement: React.Ref<HTMLDivElement> | undefined) => (\n <li className={styles['flash-list-item']}>\n {renderItem(item, item.id ?? index, transitionRootElement, state)}\n </li>\n )}\n </Transition>\n ))}\n </TransitionGroup>\n );\n }\n\n /**\n * If the flashbar is flat and motion is `disabled` then the adding and removing of items\n * from the flashbar will render without visual transitions.\n */\n function renderFlatItemsWithoutTransitions() {\n if (!motionDisabled || !items) {\n return;\n }\n\n return (\n <ul\n className={styles['flash-list']}\n aria-label={ariaLabel}\n {...getAnalyticsMetadataAttribute(getComponentsAnalyticsMetadata(items.length, false))}\n >\n {items.map((item, index) => (\n <li\n key={item.id ?? index}\n className={styles['flash-list-item']}\n {...getAnalyticsMetadataAttribute(getItemAnalyticsMetadata(index + 1, item.type || 'info', item.id))}\n >\n {renderItem(item, item.id ?? index)}\n </li>\n ))}\n </ul>\n );\n }\n\n /**\n * This is a shared render function for a single flashbar item to be used\n * by the stacking, motion, and non-motion item group render functions.\n */\n function renderItem(\n item: FlashbarProps.MessageDefinition,\n key: string | number,\n transitionRootElement?: React.Ref<HTMLDivElement> | undefined,\n transitionState?: string | undefined\n ) {\n return (\n <Flash\n className={clsx(animateFlash && styles['flash-with-motion'], isVisualRefresh && styles['flash-refresh'])}\n key={key}\n ref={transitionRootElement}\n transitionState={transitionState}\n i18nStrings={iconAriaLabels}\n style={style}\n {...item}\n />\n );\n }\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.flashbar)} ref={mergedRef}>\n {renderFlatItemsWithTransitions()}\n {renderFlatItemsWithoutTransitions()}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"non-collapsible-flashbar.js","sourceRoot":"","sources":["../../../src/flashbar/non-collapsible-flashbar.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 { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../i18n/context';\nimport { Transition } from '../internal/components/transition';\nimport { getComponentsAnalyticsMetadata, getItemAnalyticsMetadata } from './analytics-metadata/utils';\nimport { useFlashbar } from './common';\nimport { TIMEOUT_FOR_ENTERING_ANIMATION } from './constant';\nimport { Flash } from './flash';\nimport { FlashbarProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\nexport default function NonCollapsibleFlashbar({ items, i18nStrings, style, ...restProps }: FlashbarProps) {\n const { allItemsHaveId, baseProps, isReducedMotion, isVisualRefresh, mergedRef, flashRefs, handleFlashDismissed } =\n useFlashbar({\n items,\n ...restProps,\n });\n\n const i18n = useInternalI18n('flashbar');\n const ariaLabel = i18n('i18nStrings.ariaLabel', i18nStrings?.ariaLabel);\n const iconAriaLabels = {\n errorIconAriaLabel: i18n('i18nStrings.errorIconAriaLabel', i18nStrings?.errorIconAriaLabel),\n inProgressIconAriaLabel: i18n('i18nStrings.inProgressIconAriaLabel', i18nStrings?.inProgressIconAriaLabel),\n infoIconAriaLabel: i18n('i18nStrings.infoIconAriaLabel', i18nStrings?.infoIconAriaLabel),\n successIconAriaLabel: i18n('i18nStrings.successIconAriaLabel', i18nStrings?.successIconAriaLabel),\n warningIconAriaLabel: i18n('i18nStrings.warningIconAriaLabel', i18nStrings?.warningIconAriaLabel),\n };\n\n /**\n * All the flash items should have ids so we can identify which DOM element is being\n * removed from the DOM to animate it. Motion will be disabled if any of the provided\n * flash messages does not contain an `id`.\n */\n const motionDisabled = isReducedMotion || !isVisualRefresh || !allItemsHaveId;\n\n const animateFlash = !isReducedMotion && isVisualRefresh;\n\n /**\n * If the flashbar is flat and motion is `enabled` then the adding and removing of items\n * from the flashbar will render with visual transitions.\n */\n function renderFlatItemsWithTransitions() {\n if (motionDisabled || !items) {\n return;\n }\n\n return (\n // This is a proxy for <ul>, so we're not applying a class to another actual component.\n\n <TransitionGroup component=\"ul\" className={styles['flash-list']} aria-label={ariaLabel}>\n {items.map((item, index) => (\n <Transition\n transitionChangeDelay={{ entering: TIMEOUT_FOR_ENTERING_ANIMATION }}\n key={item.id ?? index}\n in={true}\n >\n {(state: string, transitionRootElement: React.Ref<HTMLDivElement> | undefined) => (\n <li className={styles['flash-list-item']}>\n {renderItem(item, item.id ?? index, transitionRootElement, state)}\n </li>\n )}\n </Transition>\n ))}\n </TransitionGroup>\n );\n }\n\n /**\n * If the flashbar is flat and motion is `disabled` then the adding and removing of items\n * from the flashbar will render without visual transitions.\n */\n function renderFlatItemsWithoutTransitions() {\n if (!motionDisabled || !items) {\n return;\n }\n\n return (\n <ul\n className={styles['flash-list']}\n aria-label={ariaLabel}\n {...getAnalyticsMetadataAttribute(getComponentsAnalyticsMetadata(items.length, false))}\n >\n {items.map((item, index) => (\n <li\n key={item.id ?? index}\n className={styles['flash-list-item']}\n {...getAnalyticsMetadataAttribute(getItemAnalyticsMetadata(index + 1, item.type || 'info', item.id))}\n >\n {renderItem(item, item.id ?? index)}\n </li>\n ))}\n </ul>\n );\n }\n\n /**\n * This is a shared render function for a single flashbar item to be used\n * by the stacking, motion, and non-motion item group render functions.\n */\n function renderItem(\n item: FlashbarProps.MessageDefinition,\n key: string | number,\n transitionRootElement?: React.Ref<HTMLDivElement> | undefined,\n transitionState?: string | undefined\n ) {\n return (\n <Flash\n className={clsx(animateFlash && styles['flash-with-motion'], isVisualRefresh && styles['flash-refresh'])}\n key={key}\n ref={el => {\n flashRefs.current[key] = el;\n // If there's a transition root element ref, update it too\n if (transitionRootElement && typeof transitionRootElement === 'function') {\n transitionRootElement(el);\n } else if (\n transitionRootElement &&\n typeof transitionRootElement === 'object' &&\n 'current' in transitionRootElement\n ) {\n (transitionRootElement as React.MutableRefObject<HTMLDivElement | null>).current = el;\n }\n }}\n transitionState={transitionState}\n i18nStrings={iconAriaLabels}\n style={style}\n onDismissed={handleFlashDismissed}\n {...item}\n />\n );\n }\n\n // The handleFlashDismissed function is now provided by the useFlashbar hook\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.flashbar)} ref={mergedRef}>\n {renderFlatItemsWithTransitions()}\n {renderFlatItemsWithoutTransitions()}\n </div>\n );\n}\n"]}
@@ -2039,5 +2039,5 @@
2039
2039
  }
2040
2040
  }
2041
2041
  :root {
2042
- --awsui-version-info-311693cb: true;
2042
+ --awsui-version-info-09609917: true;
2043
2043
  }
@@ -1,18 +1,18 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "button-trigger": "awsui_button-trigger_18eso_1qoem_161",
5
- "arrow": "awsui_arrow_18eso_1qoem_161",
6
- "in-filtering-token-root": "awsui_in-filtering-token-root_18eso_1qoem_221",
7
- "in-filtering-token-nested": "awsui_in-filtering-token-nested_18eso_1qoem_221",
8
- "has-caret": "awsui_has-caret_18eso_1qoem_257",
9
- "placeholder": "awsui_placeholder_18eso_1qoem_260",
10
- "pressed": "awsui_pressed_18eso_1qoem_273",
11
- "disabled": "awsui_disabled_18eso_1qoem_276",
12
- "in-filtering-token": "awsui_in-filtering-token_18eso_1qoem_221",
13
- "readonly": "awsui_readonly_18eso_1qoem_292",
14
- "invalid": "awsui_invalid_18eso_1qoem_314",
15
- "warning": "awsui_warning_18eso_1qoem_323",
16
- "inline-tokens": "awsui_inline-tokens_18eso_1qoem_332"
4
+ "button-trigger": "awsui_button-trigger_18eso_1g60k_161",
5
+ "arrow": "awsui_arrow_18eso_1g60k_161",
6
+ "in-filtering-token-root": "awsui_in-filtering-token-root_18eso_1g60k_221",
7
+ "in-filtering-token-nested": "awsui_in-filtering-token-nested_18eso_1g60k_221",
8
+ "has-caret": "awsui_has-caret_18eso_1g60k_257",
9
+ "placeholder": "awsui_placeholder_18eso_1g60k_260",
10
+ "pressed": "awsui_pressed_18eso_1g60k_273",
11
+ "disabled": "awsui_disabled_18eso_1g60k_276",
12
+ "in-filtering-token": "awsui_in-filtering-token_18eso_1g60k_221",
13
+ "readonly": "awsui_readonly_18eso_1g60k_297",
14
+ "invalid": "awsui_invalid_18eso_1g60k_319",
15
+ "warning": "awsui_warning_18eso_1g60k_328",
16
+ "inline-tokens": "awsui_inline-tokens_18eso_1g60k_337"
17
17
  };
18
18
 
@@ -158,21 +158,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
158
158
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
159
159
  SPDX-License-Identifier: Apache-2.0
160
160
  */
161
- .awsui_button-trigger_18eso_1qoem_161 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
161
+ .awsui_button-trigger_18eso_1g60k_161 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
162
162
  transition: transform var(--motion-duration-rotate-180-cxi9g7, 135ms) var(--motion-easing-rotate-180-7a58rc, cubic-bezier(0.165, 0.84, 0.44, 1));
163
163
  }
164
164
  @media (prefers-reduced-motion: reduce) {
165
- .awsui_button-trigger_18eso_1qoem_161 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
165
+ .awsui_button-trigger_18eso_1g60k_161 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
166
166
  animation: none;
167
167
  transition: none;
168
168
  }
169
169
  }
170
- .awsui-motion-disabled .awsui_button-trigger_18eso_1qoem_161 > .awsui_arrow_18eso_1qoem_161:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_1qoem_161 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
170
+ .awsui-motion-disabled .awsui_button-trigger_18eso_1g60k_161 > .awsui_arrow_18eso_1g60k_161:not(#\9), .awsui-mode-entering .awsui_button-trigger_18eso_1g60k_161 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
171
171
  animation: none;
172
172
  transition: none;
173
173
  }
174
174
 
175
- .awsui_button-trigger_18eso_1qoem_161:not(#\9) {
175
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9) {
176
176
  border-collapse: separate;
177
177
  border-spacing: 0;
178
178
  box-sizing: border-box;
@@ -218,7 +218,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
218
218
  border-inline: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-default-317xk5, #8c8c94);
219
219
  min-block-size: var(--size-vertical-input-p1d7xx, 32px);
220
220
  }
221
- .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-root_18eso_1qoem_221:not(#\9), .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-nested_18eso_1qoem_221:not(#\9) {
221
+ .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-root_18eso_1g60k_221:not(#\9), .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-nested_18eso_1g60k_221:not(#\9) {
222
222
  padding-block: 0px;
223
223
  padding-inline: var(--space-field-horizontal-0aq2ch, 12px);
224
224
  border-block-width: var(--border-width-token-2ukdpu, 2px);
@@ -229,14 +229,14 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
229
229
  block-size: 100%;
230
230
  min-block-size: unset;
231
231
  }
232
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-root_18eso_1qoem_221:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-nested_18eso_1qoem_221:not(#\9):focus {
232
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-root_18eso_1g60k_221:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-nested_18eso_1g60k_221:not(#\9):focus {
233
233
  position: relative;
234
234
  }
235
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-root_18eso_1qoem_221:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-nested_18eso_1qoem_221:not(#\9):focus {
235
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-root_18eso_1g60k_221:not(#\9):focus, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-nested_18eso_1g60k_221:not(#\9):focus {
236
236
  outline: 2px dotted transparent;
237
237
  outline-offset: calc(var(--space-filtering-token-operation-select-focus-outline-gutter-jacx1t, -5px) - 1px);
238
238
  }
239
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-root_18eso_1qoem_221:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-nested_18eso_1qoem_221:not(#\9):focus::before {
239
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-root_18eso_1g60k_221:not(#\9):focus::before, body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-nested_18eso_1g60k_221:not(#\9):focus::before {
240
240
  content: " ";
241
241
  display: block;
242
242
  position: absolute;
@@ -250,55 +250,60 @@ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161.awsui_
250
250
  border-end-end-radius: var(--border-radius-control-default-focus-ring-1uabki, 4px);
251
251
  box-shadow: 0 0 0 2px var(--color-border-item-focused-uk47pl, #006ce0);
252
252
  }
253
- .awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token-nested_18eso_1qoem_221:not(#\9) {
253
+ .awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token-nested_18eso_1g60k_221:not(#\9) {
254
254
  border-start-start-radius: calc(var(--border-radius-input-7q0str, 8px) / 2);
255
255
  border-end-start-radius: calc(var(--border-radius-input-7q0str, 8px) / 2);
256
256
  }
257
- .awsui_button-trigger_18eso_1qoem_161.awsui_has-caret_18eso_1qoem_257:not(#\9) {
257
+ .awsui_button-trigger_18eso_1g60k_161.awsui_has-caret_18eso_1g60k_257:not(#\9) {
258
258
  padding-inline-end: var(--space-field-icon-offset-ikwzwx, 36px);
259
259
  }
260
- .awsui_button-trigger_18eso_1qoem_161 > .awsui_placeholder_18eso_1qoem_260:not(#\9) {
260
+ .awsui_button-trigger_18eso_1g60k_161 > .awsui_placeholder_18eso_1g60k_260:not(#\9) {
261
261
  color: var(--color-text-input-placeholder-dclg8u, #656871);
262
262
  font-style: italic;
263
263
  }
264
- .awsui_button-trigger_18eso_1qoem_161 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
264
+ .awsui_button-trigger_18eso_1g60k_161 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
265
265
  position: absolute;
266
266
  inset-inline-end: var(--space-field-horizontal-0aq2ch, 12px);
267
267
  inset-block-start: calc(50% - var(--line-height-body-m-2mh3ke, 20px) / 2);
268
268
  color: var(--color-text-button-inline-icon-default-f8xgpk, #006ce0);
269
269
  }
270
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):hover > .awsui_arrow_18eso_1qoem_161 {
270
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):hover > .awsui_arrow_18eso_1g60k_161 {
271
271
  color: var(--color-text-button-inline-icon-hover-c08r6g, #002b66);
272
272
  }
273
- .awsui_button-trigger_18eso_1qoem_161.awsui_pressed_18eso_1qoem_273 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
273
+ .awsui_button-trigger_18eso_1g60k_161.awsui_pressed_18eso_1g60k_273 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
274
274
  transform: rotate(-180deg);
275
275
  }
276
- .awsui_button-trigger_18eso_1qoem_161.awsui_disabled_18eso_1qoem_276:not(#\9) {
276
+ .awsui_button-trigger_18eso_1g60k_161.awsui_disabled_18eso_1g60k_276:not(#\9) {
277
277
  background-color: var(--color-background-input-disabled-dihaja, #ebebf0);
278
- border-block: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
279
- border-inline: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
278
+ border-block: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
279
+ border-inline: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
280
280
  color: var(--color-text-input-disabled-wh1f3y, #b4b4bb);
281
281
  cursor: auto;
282
282
  }
283
- .awsui_button-trigger_18eso_1qoem_161.awsui_disabled_18eso_1qoem_276 > .awsui_arrow_18eso_1qoem_161:not(#\9) {
283
+ .awsui_button-trigger_18eso_1g60k_161.awsui_disabled_18eso_1g60k_276 > .awsui_arrow_18eso_1g60k_161:not(#\9) {
284
284
  color: var(--color-text-button-inline-icon-disabled-82hho0, #b4b4bb);
285
285
  }
286
- .awsui_button-trigger_18eso_1qoem_161.awsui_disabled_18eso_1qoem_276.awsui_in-filtering-token_18eso_1qoem_221:not(#\9) {
286
+ .awsui_button-trigger_18eso_1g60k_161.awsui_disabled_18eso_1g60k_276.awsui_in-filtering-token_18eso_1g60k_221:not(#\9) {
287
+ background-color: var(--color-background-input-disabled-dihaja, #ebebf0);
288
+ border-block: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
289
+ border-inline: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
290
+ color: var(--color-text-input-disabled-wh1f3y, #b4b4bb);
291
+ cursor: auto;
287
292
  border-color: var(--color-border-control-disabled-uj7t08, #dedee3);
288
293
  }
289
- .awsui_button-trigger_18eso_1qoem_161.awsui_disabled_18eso_1qoem_276 > .awsui_placeholder_18eso_1qoem_260:not(#\9) {
294
+ .awsui_button-trigger_18eso_1g60k_161.awsui_disabled_18eso_1g60k_276 > .awsui_placeholder_18eso_1g60k_260:not(#\9) {
290
295
  color: var(--color-text-input-placeholder-disabled-wg87og, #b4b4bb);
291
296
  }
292
- .awsui_button-trigger_18eso_1qoem_161.awsui_readonly_18eso_1qoem_292:not(#\9):not(.awsui_button-trigger_18eso_1qoem_161.awsui_disabled_18eso_1qoem_276):not(.awsui_button-trigger_18eso_1qoem_161.awsui_in-filtering-token_18eso_1qoem_221) {
297
+ .awsui_button-trigger_18eso_1g60k_161.awsui_readonly_18eso_1g60k_297:not(#\9):not(.awsui_button-trigger_18eso_1g60k_161.awsui_disabled_18eso_1g60k_276):not(.awsui_button-trigger_18eso_1g60k_161.awsui_in-filtering-token_18eso_1g60k_221) {
293
298
  background-color: var(--color-background-input-default-ifz5bb, #ffffff);
294
- border-block: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
295
- border-inline: var(--border-width-token-2ukdpu, 2px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
299
+ border-block: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
300
+ border-inline: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-disabled-zgnzvk, #ebebf0);
296
301
  }
297
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):focus {
302
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):focus {
298
303
  outline: none;
299
304
  text-decoration: none;
300
305
  }
301
- body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221):focus {
306
+ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221):focus {
302
307
  outline: 2px dotted transparent;
303
308
  border-block: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-focused-4z0pgn, #006ce0);
304
309
  border-inline: var(--border-width-field-2xc78x, 1px) solid var(--color-border-input-focused-4z0pgn, #006ce0);
@@ -308,27 +313,27 @@ body[data-awsui-focus-visible=true] .awsui_button-trigger_18eso_1qoem_161:not(#\
308
313
  border-end-end-radius: var(--border-radius-input-7q0str, 8px);
309
314
  box-shadow: 0 0 0 var(--border-control-focus-ring-shadow-spread-9mjajk, 1px) var(--color-border-item-focused-uk47pl, #006ce0);
310
315
  }
311
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221):invalid {
316
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221):invalid {
312
317
  box-shadow: none;
313
318
  }
314
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_invalid_18eso_1qoem_314, .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_invalid_18eso_1qoem_314:focus {
319
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_invalid_18eso_1g60k_319, .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_invalid_18eso_1g60k_319:focus {
315
320
  color: var(--color-text-status-error-ksqavh, #db0000);
316
321
  border-color: var(--color-text-status-error-ksqavh, #db0000);
317
322
  padding-inline-start: calc(var(--space-field-horizontal-0aq2ch, 12px) - (var(--border-invalid-width-3xd6e1, 8px) - var(--border-width-field-2xc78x, 1px)));
318
323
  border-inline-start-width: var(--border-invalid-width-3xd6e1, 8px);
319
324
  }
320
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_invalid_18eso_1qoem_314:focus, .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_invalid_18eso_1qoem_314:focus:focus {
325
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_invalid_18eso_1g60k_319:focus, .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_invalid_18eso_1g60k_319:focus:focus {
321
326
  box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-9jjf96, 2px) var(--color-border-item-focused-uk47pl, #006ce0);
322
327
  }
323
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_warning_18eso_1qoem_323, .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_warning_18eso_1qoem_323:focus {
328
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_warning_18eso_1g60k_328, .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_warning_18eso_1g60k_328:focus {
324
329
  color: var(--color-text-status-warning-6meo06, #855900);
325
330
  border-color: var(--color-text-status-warning-6meo06, #855900);
326
331
  padding-inline-start: calc(var(--space-field-horizontal-0aq2ch, 12px) - (var(--border-invalid-width-3xd6e1, 8px) - var(--border-width-field-2xc78x, 1px)));
327
332
  border-inline-start-width: var(--border-invalid-width-3xd6e1, 8px);
328
333
  }
329
- .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_warning_18eso_1qoem_323:focus, .awsui_button-trigger_18eso_1qoem_161:not(#\9):not(.awsui_in-filtering-token_18eso_1qoem_221).awsui_warning_18eso_1qoem_323:focus:focus {
334
+ .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_warning_18eso_1g60k_328:focus, .awsui_button-trigger_18eso_1g60k_161:not(#\9):not(.awsui_in-filtering-token_18eso_1g60k_221).awsui_warning_18eso_1g60k_328:focus:focus {
330
335
  box-shadow: 0 0 0 var(--border-control-invalid-focus-ring-shadow-spread-9jjf96, 2px) var(--color-border-item-focused-uk47pl, #006ce0);
331
336
  }
332
- .awsui_button-trigger_18eso_1qoem_161.awsui_inline-tokens_18eso_1qoem_332:not(#\9) {
337
+ .awsui_button-trigger_18eso_1g60k_161.awsui_inline-tokens_18eso_1g60k_337:not(#\9) {
333
338
  padding-block: 0;
334
339
  }
@@ -2,18 +2,18 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "button-trigger": "awsui_button-trigger_18eso_1qoem_161",
6
- "arrow": "awsui_arrow_18eso_1qoem_161",
7
- "in-filtering-token-root": "awsui_in-filtering-token-root_18eso_1qoem_221",
8
- "in-filtering-token-nested": "awsui_in-filtering-token-nested_18eso_1qoem_221",
9
- "has-caret": "awsui_has-caret_18eso_1qoem_257",
10
- "placeholder": "awsui_placeholder_18eso_1qoem_260",
11
- "pressed": "awsui_pressed_18eso_1qoem_273",
12
- "disabled": "awsui_disabled_18eso_1qoem_276",
13
- "in-filtering-token": "awsui_in-filtering-token_18eso_1qoem_221",
14
- "readonly": "awsui_readonly_18eso_1qoem_292",
15
- "invalid": "awsui_invalid_18eso_1qoem_314",
16
- "warning": "awsui_warning_18eso_1qoem_323",
17
- "inline-tokens": "awsui_inline-tokens_18eso_1qoem_332"
5
+ "button-trigger": "awsui_button-trigger_18eso_1g60k_161",
6
+ "arrow": "awsui_arrow_18eso_1g60k_161",
7
+ "in-filtering-token-root": "awsui_in-filtering-token-root_18eso_1g60k_221",
8
+ "in-filtering-token-nested": "awsui_in-filtering-token-nested_18eso_1g60k_221",
9
+ "has-caret": "awsui_has-caret_18eso_1g60k_257",
10
+ "placeholder": "awsui_placeholder_18eso_1g60k_260",
11
+ "pressed": "awsui_pressed_18eso_1g60k_273",
12
+ "disabled": "awsui_disabled_18eso_1g60k_276",
13
+ "in-filtering-token": "awsui_in-filtering-token_18eso_1g60k_221",
14
+ "readonly": "awsui_readonly_18eso_1g60k_297",
15
+ "invalid": "awsui_invalid_18eso_1g60k_319",
16
+ "warning": "awsui_warning_18eso_1g60k_328",
17
+ "inline-tokens": "awsui_inline-tokens_18eso_1g60k_337"
18
18
  };
19
19
 
@@ -1,6 +1,6 @@
1
1
  export var PACKAGE_SOURCE = "components";
2
- export var PACKAGE_VERSION = "3.0.0 (311693cb)";
3
- export var GIT_SHA = "311693cb";
2
+ export var PACKAGE_VERSION = "3.0.0 (09609917)";
3
+ export var GIT_SHA = "09609917";
4
4
  export var THEME = "open-source-visual-refresh";
5
5
  export var SYSTEM = "console";
6
6
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "components",
3
- "PACKAGE_VERSION": "3.0.0 (311693cb)",
4
- "GIT_SHA": "311693cb",
3
+ "PACKAGE_VERSION": "3.0.0 (09609917)",
4
+ "GIT_SHA": "09609917",
5
5
  "THEME": "open-source-visual-refresh",
6
6
  "SYSTEM": "console",
7
7
  "ALWAYS_VISUAL_REFRESH": true
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "311693cbe5ea9d8c6983c1beec432d6bee51bfc2"
2
+ "commit": "09609917579843d09a60938cb419d39b676fd628"
3
3
  }
package/package.json CHANGED
@@ -111,7 +111,6 @@
111
111
  "./tree-view": "./tree-view/index.js",
112
112
  "./tutorial-panel": "./tutorial-panel/index.js",
113
113
  "./wizard": "./wizard/index.js",
114
- "./top-navigation/1.0-beta": "./top-navigation/1.0-beta/index.js",
115
114
  "./i18n": "./i18n/index.js",
116
115
  "./i18n/messages/all.all": "./i18n/messages/all.all.js",
117
116
  "./i18n/messages/all.all.json": "./i18n/messages/all.all.json",
@@ -151,7 +150,7 @@
151
150
  "./internal/base-component/index.js",
152
151
  "./internal/base-component/styles.css.js"
153
152
  ],
154
- "version": "3.0.1043",
153
+ "version": "3.0.1045",
155
154
  "repository": {
156
155
  "type": "git",
157
156
  "url": "https://github.com/cloudscape-design/components.git"
@@ -1,28 +0,0 @@
1
- import { ComponentWrapper, ElementWrapper } from '@cloudscape-design/test-utils-core/dom';
2
- import ButtonWrapper from '../../button';
3
- import ButtonDropdownWrapper from '../../button-dropdown';
4
- import LinkWrapper from '../../link';
5
- export default class TopNavigationWrapper extends ComponentWrapper {
6
- static rootSelector: string;
7
- findIdentityLink(): ElementWrapper;
8
- findLogo(): ElementWrapper | null;
9
- findTitle(): ElementWrapper | null;
10
- findSearch(): ElementWrapper | null;
11
- findUtilities(): Array<TopNavigationUtilityWrapper>;
12
- findUtility(index: number): TopNavigationUtilityWrapper | null;
13
- findSearchButton(): ElementWrapper | null;
14
- findOverflowMenuButtonDropdown(): MenuDropdownWrapper | null;
15
- }
16
- export declare class MenuDropdownWrapper extends ButtonDropdownWrapper {
17
- findNativeButton(): ElementWrapper<HTMLButtonElement>;
18
- }
19
- export declare class TopNavigationUtilityWrapper extends ComponentWrapper {
20
- findButtonLinkType(): LinkWrapper | null;
21
- findPrimaryButtonType(): ButtonWrapper | null;
22
- findMenuDropdownType(): TopNavigationMenuDropdownWrapper | null;
23
- }
24
- export declare class TopNavigationMenuDropdownWrapper extends ButtonDropdownWrapper {
25
- findNativeButton(): ElementWrapper<HTMLButtonElement>;
26
- findTitle(): ElementWrapper | null;
27
- findDescription(): ElementWrapper | null;
28
- }