@cloudscape-design/components-themeable 3.0.1279 → 3.0.1281

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 (138) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/action-card/constants.scss +43 -0
  3. package/lib/internal/scss/action-card/mixins.scss +69 -0
  4. package/lib/internal/scss/action-card/motion.scss +31 -0
  5. package/lib/internal/scss/action-card/styles.scss +229 -0
  6. package/lib/internal/scss/action-card/test-classes/styles.scss +13 -0
  7. package/lib/internal/scss/drawer/styles.scss +10 -1
  8. package/lib/internal/scss/internal/components/structured-item/styles.scss +1 -0
  9. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  10. package/lib/internal/scss/item-card/styles.scss +2 -2
  11. package/lib/internal/scss/table/body-cell/styles.scss +1 -1
  12. package/lib/internal/scss/table/styles.scss +1 -1
  13. package/lib/internal/scss/tiles/styles.scss +2 -1
  14. package/lib/internal/template/action-card/index.d.ts +6 -0
  15. package/lib/internal/template/action-card/index.d.ts.map +1 -0
  16. package/lib/internal/template/action-card/index.js +30 -0
  17. package/lib/internal/template/action-card/index.js.map +1 -0
  18. package/lib/internal/template/action-card/interfaces.d.ts +81 -0
  19. package/lib/internal/template/action-card/interfaces.d.ts.map +1 -0
  20. package/lib/internal/template/action-card/interfaces.js +2 -0
  21. package/lib/internal/template/action-card/interfaces.js.map +1 -0
  22. package/lib/internal/template/action-card/internal.d.ts +7 -0
  23. package/lib/internal/template/action-card/internal.d.ts.map +1 -0
  24. package/lib/internal/template/action-card/internal.js +74 -0
  25. package/lib/internal/template/action-card/internal.js.map +1 -0
  26. package/lib/internal/template/action-card/styles.css.js +22 -0
  27. package/lib/internal/template/action-card/styles.scoped.css +580 -0
  28. package/lib/internal/template/action-card/styles.selectors.js +23 -0
  29. package/lib/internal/template/action-card/test-classes/styles.css.js +11 -0
  30. package/lib/internal/template/action-card/test-classes/styles.scoped.css +12 -0
  31. package/lib/internal/template/action-card/test-classes/styles.selectors.js +12 -0
  32. package/lib/internal/template/date-range-picker/index.d.ts.map +1 -1
  33. package/lib/internal/template/date-range-picker/index.js +7 -6
  34. package/lib/internal/template/date-range-picker/index.js.map +1 -1
  35. package/lib/internal/template/date-range-picker/interfaces.d.ts +8 -0
  36. package/lib/internal/template/date-range-picker/interfaces.d.ts.map +1 -1
  37. package/lib/internal/template/date-range-picker/interfaces.js.map +1 -1
  38. package/lib/internal/template/drawer/implementation.d.ts +3 -3
  39. package/lib/internal/template/drawer/implementation.d.ts.map +1 -1
  40. package/lib/internal/template/drawer/implementation.js +5 -2
  41. package/lib/internal/template/drawer/implementation.js.map +1 -1
  42. package/lib/internal/template/drawer/index.d.ts +2 -1
  43. package/lib/internal/template/drawer/index.d.ts.map +1 -1
  44. package/lib/internal/template/drawer/index.js +16 -4
  45. package/lib/internal/template/drawer/index.js.map +1 -1
  46. package/lib/internal/template/drawer/interfaces.d.ts +72 -7
  47. package/lib/internal/template/drawer/interfaces.d.ts.map +1 -1
  48. package/lib/internal/template/drawer/interfaces.js +2 -0
  49. package/lib/internal/template/drawer/interfaces.js.map +1 -1
  50. package/lib/internal/template/drawer/next.d.ts +5 -0
  51. package/lib/internal/template/drawer/next.d.ts.map +1 -0
  52. package/lib/internal/template/drawer/next.js +31 -0
  53. package/lib/internal/template/drawer/next.js.map +1 -0
  54. package/lib/internal/template/drawer/styles.css.js +16 -12
  55. package/lib/internal/template/drawer/styles.scoped.css +23 -17
  56. package/lib/internal/template/drawer/styles.selectors.js +16 -12
  57. package/lib/internal/template/drawer/utils.d.ts +9 -0
  58. package/lib/internal/template/drawer/utils.d.ts.map +1 -0
  59. package/lib/internal/template/drawer/utils.js +74 -0
  60. package/lib/internal/template/drawer/utils.js.map +1 -0
  61. package/lib/internal/template/i18n/dynamic.d.ts +1 -1
  62. package/lib/internal/template/i18n/testing.js +1 -1
  63. package/lib/internal/template/i18n/testing.js.map +1 -1
  64. package/lib/internal/template/index.d.ts +1 -0
  65. package/lib/internal/template/index.d.ts.map +1 -1
  66. package/lib/internal/template/index.js +1 -0
  67. package/lib/internal/template/index.js.map +1 -1
  68. package/lib/internal/template/internal/base-component/styles.scoped.css +143 -5
  69. package/lib/internal/template/internal/components/drag-handle/button.d.ts +1 -1
  70. package/lib/internal/template/internal/components/drag-handle/index.d.ts +1 -1
  71. package/lib/internal/template/internal/components/structured-item/styles.css.js +7 -7
  72. package/lib/internal/template/internal/components/structured-item/styles.scoped.css +9 -8
  73. package/lib/internal/template/internal/components/structured-item/styles.selectors.js +7 -7
  74. package/lib/internal/template/internal/environment.js +2 -2
  75. package/lib/internal/template/internal/environment.json +2 -2
  76. package/lib/internal/template/internal/generated/styles/tokens.d.ts +28 -1
  77. package/lib/internal/template/internal/generated/styles/tokens.js +28 -1
  78. package/lib/internal/template/internal/generated/theming/index.cjs +533 -4
  79. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +36 -0
  80. package/lib/internal/template/internal/generated/theming/index.d.ts +36 -0
  81. package/lib/internal/template/internal/generated/theming/index.js +533 -4
  82. package/lib/internal/template/item-card/styles.css.js +14 -14
  83. package/lib/internal/template/item-card/styles.scoped.css +52 -52
  84. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  85. package/lib/internal/template/package.json +1 -0
  86. package/lib/internal/template/select/parts/filter.d.ts +1 -1
  87. package/lib/internal/template/table/body-cell/styles.css.js +48 -48
  88. package/lib/internal/template/table/body-cell/styles.scoped.css +379 -379
  89. package/lib/internal/template/table/body-cell/styles.selectors.js +48 -48
  90. package/lib/internal/template/table/styles.css.js +34 -34
  91. package/lib/internal/template/table/styles.scoped.css +42 -42
  92. package/lib/internal/template/table/styles.selectors.js +34 -34
  93. package/lib/internal/template/test-utils/dom/action-card/index.d.ts +29 -0
  94. package/lib/internal/template/test-utils/dom/action-card/index.js +64 -0
  95. package/lib/internal/template/test-utils/dom/action-card/index.js.map +1 -0
  96. package/lib/internal/template/test-utils/dom/autosuggest/index.js +16 -17
  97. package/lib/internal/template/test-utils/dom/autosuggest/index.js.map +1 -1
  98. package/lib/internal/template/test-utils/dom/button-dropdown/index.js +1 -2
  99. package/lib/internal/template/test-utils/dom/button-dropdown/index.js.map +1 -1
  100. package/lib/internal/template/test-utils/dom/dropdown/index.d.ts +0 -1
  101. package/lib/internal/template/test-utils/dom/dropdown/index.js +0 -2
  102. package/lib/internal/template/test-utils/dom/dropdown/index.js.map +1 -1
  103. package/lib/internal/template/test-utils/dom/index.d.ts +28 -0
  104. package/lib/internal/template/test-utils/dom/index.js +21 -2
  105. package/lib/internal/template/test-utils/dom/index.js.map +1 -1
  106. package/lib/internal/template/test-utils/dom/internal/autosuggest-input.js +1 -2
  107. package/lib/internal/template/test-utils/dom/internal/autosuggest-input.js.map +1 -1
  108. package/lib/internal/template/test-utils/dom/internal/dropdown-host.js +17 -18
  109. package/lib/internal/template/test-utils/dom/internal/dropdown-host.js.map +1 -1
  110. package/lib/internal/template/test-utils/dom/internal/dropdown.js +1 -2
  111. package/lib/internal/template/test-utils/dom/internal/dropdown.js.map +1 -1
  112. package/lib/internal/template/test-utils/selectors/action-card/index.d.ts +20 -0
  113. package/lib/internal/template/test-utils/selectors/action-card/index.js +36 -0
  114. package/lib/internal/template/test-utils/selectors/action-card/index.js.map +1 -0
  115. package/lib/internal/template/test-utils/selectors/autosuggest/index.js +16 -17
  116. package/lib/internal/template/test-utils/selectors/autosuggest/index.js.map +1 -1
  117. package/lib/internal/template/test-utils/selectors/button-dropdown/index.js +1 -2
  118. package/lib/internal/template/test-utils/selectors/button-dropdown/index.js.map +1 -1
  119. package/lib/internal/template/test-utils/selectors/dropdown/index.d.ts +0 -1
  120. package/lib/internal/template/test-utils/selectors/dropdown/index.js +0 -2
  121. package/lib/internal/template/test-utils/selectors/dropdown/index.js.map +1 -1
  122. package/lib/internal/template/test-utils/selectors/index.d.ts +18 -0
  123. package/lib/internal/template/test-utils/selectors/index.js +16 -2
  124. package/lib/internal/template/test-utils/selectors/index.js.map +1 -1
  125. package/lib/internal/template/test-utils/selectors/internal/autosuggest-input.js +1 -2
  126. package/lib/internal/template/test-utils/selectors/internal/autosuggest-input.js.map +1 -1
  127. package/lib/internal/template/test-utils/selectors/internal/dropdown-host.js +17 -18
  128. package/lib/internal/template/test-utils/selectors/internal/dropdown-host.js.map +1 -1
  129. package/lib/internal/template/test-utils/selectors/internal/dropdown.js +1 -2
  130. package/lib/internal/template/test-utils/selectors/internal/dropdown.js.map +1 -1
  131. package/lib/internal/template/tiles/styles.css.js +30 -30
  132. package/lib/internal/template/tiles/styles.scoped.css +73 -73
  133. package/lib/internal/template/tiles/styles.selectors.js +30 -30
  134. package/package.json +1 -1
  135. package/lib/internal/scss/internal/components/dropdown/styles.scss +0 -12
  136. package/lib/internal/template/internal/components/dropdown/styles.css.js +0 -7
  137. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +0 -11
  138. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +0 -8
@@ -0,0 +1,74 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React, { useRef } from 'react';
4
+ import clsx from 'clsx';
5
+ import { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';
6
+ import { getBaseProps } from '../internal/base-component';
7
+ import InternalStructuredItem from '../internal/components/structured-item';
8
+ import { fireCancelableEvent } from '../internal/events';
9
+ import useForwardFocus from '../internal/hooks/forward-focus';
10
+ import WithNativeAttributes from '../internal/utils/with-native-attributes';
11
+ import styles from './styles.css.js';
12
+ import testStyles from './test-classes/styles.css.js';
13
+ const InternalActionCard = React.forwardRef(({ header, description, children, onClick, ariaLabel, ariaDescribedby, disabled, disableHeaderPaddings, disableContentPaddings, icon, iconVerticalAlignment, variant, nativeButtonAttributes, __internalRootRef, ...rest }, ref) => {
14
+ const baseProps = getBaseProps(rest);
15
+ const buttonRef = useRef(null);
16
+ const rootRef = useRef(null);
17
+ const headerId = useUniqueId('action-card-header-');
18
+ const standaloneButtonId = useUniqueId('action-card-button-');
19
+ const descriptionId = useUniqueId('action-card-description-');
20
+ const bodyId = useUniqueId('action-card-body-');
21
+ useForwardFocus(ref, buttonRef);
22
+ if (!header && !ariaLabel) {
23
+ warnOnce('ActionCard', 'An accessible name is required. Provide either a `header` or an `ariaLabel` prop so the action card has a meaningful label for screen reader users.');
24
+ }
25
+ const handleButtonClick = (event) => {
26
+ if (disabled) {
27
+ return event.preventDefault();
28
+ }
29
+ fireCancelableEvent(onClick, {}, event);
30
+ };
31
+ const headerRowEmpty = !header && !description;
32
+ const iconWrapper = icon && (React.createElement("div", { className: clsx(styles.icon, testStyles.icon), "aria-hidden": "true" }, icon));
33
+ const iconInHeaderRow = icon && iconVerticalAlignment === 'top' && !!header;
34
+ const mergedRootRef = useMergeRefs(rootRef, __internalRootRef);
35
+ // Link the description element as the button's accessible description
36
+ // when the button already has a name (via header text or ariaLabel).
37
+ if (!ariaDescribedby && description && (ariaLabel || header)) {
38
+ ariaDescribedby = descriptionId;
39
+ }
40
+ const buttonProps = {
41
+ type: 'button',
42
+ className: clsx(styles['header-button'], testStyles.button, disabled && styles.disabled, variant && styles[`variant-${variant}`]),
43
+ onClick: handleButtonClick,
44
+ 'aria-describedby': ariaDescribedby,
45
+ 'aria-disabled': disabled || undefined,
46
+ };
47
+ const headerSection = !headerRowEmpty ? (React.createElement("div", { className: clsx(styles.header, disableHeaderPaddings && styles['no-padding']) },
48
+ React.createElement(InternalStructuredItem, { content: header && (React.createElement("div", { className: clsx(styles['header-inner'], testStyles.header, disabled && styles.disabled) },
49
+ React.createElement(WithNativeAttributes, { ...buttonProps, tag: "button", componentName: "ActionCard", nativeAttributes: nativeButtonAttributes, ref: buttonRef, id: headerId }, header))), secondaryContent: description && (React.createElement("div", { id: descriptionId, className: clsx(styles.description, testStyles.description, disabled && styles.disabled, header && styles['has-header']) }, description)), disablePaddings: disableHeaderPaddings }))) : null;
50
+ // When there's no header, a standalone overlay button is rendered.
51
+ // If ariaLabel is provided, it's used directly. Otherwise, derive the button's
52
+ // accessible name from the first available content: description or children.
53
+ let standaloneButtonLabelledBy;
54
+ if (!ariaLabel) {
55
+ if (description) {
56
+ standaloneButtonLabelledBy = descriptionId;
57
+ }
58
+ else if (children) {
59
+ standaloneButtonLabelledBy = bodyId;
60
+ }
61
+ }
62
+ const standaloneButton = !header ? (React.createElement(WithNativeAttributes, { ...buttonProps, tag: "button", componentName: "ActionCard", nativeAttributes: nativeButtonAttributes, ref: buttonRef, id: standaloneButtonId, className: clsx(styles['overlay-button'], testStyles.button, disabled && styles.disabled, variant && styles[`variant-${variant}`]), "aria-label": ariaLabel || undefined, "aria-labelledby": standaloneButtonLabelledBy })) : null;
63
+ const contentElement = (React.createElement("div", { className: styles['inner-card'] },
64
+ iconInHeaderRow ? (React.createElement("div", { className: styles['header-row'] },
65
+ headerSection,
66
+ iconWrapper)) : (headerSection),
67
+ children && (React.createElement("div", { className: clsx(styles.body, testStyles.body, disableContentPaddings && styles['no-padding']), id: bodyId }, children))));
68
+ return (React.createElement("div", { ...baseProps, ref: mergedRootRef, role: "group", "aria-labelledby": header ? headerId : standaloneButtonId, className: clsx(styles.root, styles[`variant-${variant}`], disabled && styles.disabled, disabled && testStyles.disabled, !!icon && styles['has-icon'], !!icon && styles['icon-align-end'], !!icon && styles[`icon-vertical-align-${iconVerticalAlignment}`], baseProps.className), "aria-disabled": disabled || undefined },
69
+ standaloneButton,
70
+ contentElement,
71
+ !iconInHeaderRow && iconWrapper));
72
+ });
73
+ export default InternalActionCard;
74
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/action-card/internal.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,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,sBAAsB,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAE9D,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAG5E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAItD,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CACzC,CACE,EACE,MAAM,EACN,WAAW,EACX,QAAQ,EACR,OAAO,EACP,SAAS,EACT,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,sBAAsB,EACtB,IAAI,EACJ,qBAAqB,EACrB,OAAO,EACP,sBAAsB,EACtB,iBAAiB,EACjB,GAAG,IAAI,EACiB,EAC1B,GAAmC,EACnC,EAAE;IACF,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;IACpD,MAAM,kBAAkB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAEhD,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEhC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,QAAQ,CACN,YAAY,EACZ,qJAAqJ,CACtJ,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,CAAC,KAA0C,EAAE,EAAE;QACvE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,cAAc,EAAE,CAAC;QAChC,CAAC;QACD,mBAAmB,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC;IAE/C,MAAM,WAAW,GAAG,IAAI,IAAI,CAC1B,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,iBAAc,MAAM,IACnE,IAAI,CACD,CACP,CAAC;IACF,MAAM,eAAe,GAAG,IAAI,IAAI,qBAAqB,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAE5E,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAE/D,sEAAsE;IACtE,qEAAqE;IACrE,IAAI,CAAC,eAAe,IAAI,WAAW,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;QAC7D,eAAe,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,QAAiB;QACvB,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,eAAe,CAAC,EACvB,UAAU,CAAC,MAAM,EACjB,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAC3B,OAAO,IAAI,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,CACxC;QACD,OAAO,EAAE,iBAAiB;QAC1B,kBAAkB,EAAE,eAAe;QACnC,eAAe,EAAE,QAAQ,IAAI,SAAS;KACvC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CACtC,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;QAChF,oBAAC,sBAAsB,IACrB,OAAO,EACL,MAAM,IAAI,CACR,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;gBAC1F,oBAAC,oBAAoB,OACf,WAAW,EACf,GAAG,EAAC,QAAQ,EACZ,aAAa,EAAC,YAAY,EAC1B,gBAAgB,EAAE,sBAAsB,EACxC,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,QAAQ,IAEX,MAAM,CACc,CACnB,CACP,EAEH,gBAAgB,EACd,WAAW,IAAI,CACb,6BACE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,WAAW,EACtB,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAC3B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAC/B,IAEA,WAAW,CACR,CACP,EAEH,eAAe,EAAE,qBAAqB,GACtC,CACE,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,mEAAmE;IACnE,+EAA+E;IAC/E,6EAA6E;IAC7E,IAAI,0BAA8C,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,WAAW,EAAE,CAAC;YAChB,0BAA0B,GAAG,aAAa,CAAC;QAC7C,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,0BAA0B,GAAG,MAAM,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CACjC,oBAAC,oBAAoB,OACf,WAAW,EACf,GAAG,EAAC,QAAQ,EACZ,aAAa,EAAC,YAAY,EAC1B,gBAAgB,EAAE,sBAAsB,EACxC,GAAG,EAAE,SAAS,EACd,EAAE,EAAE,kBAAkB,EACtB,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,gBAAgB,CAAC,EACxB,UAAU,CAAC,MAAM,EACjB,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAC3B,OAAO,IAAI,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,CACxC,gBACW,SAAS,IAAI,SAAS,qBACjB,0BAA0B,GAC3C,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,cAAc,GAAG,CACrB,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;QACjC,eAAe,CAAC,CAAC,CAAC,CACjB,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;YACjC,aAAa;YACb,WAAW,CACR,CACP,CAAC,CAAC,CAAC,CACF,aAAa,CACd;QACA,QAAQ,IAAI,CACX,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,sBAAsB,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,EAC7F,EAAE,EAAE,MAAM,IAET,QAAQ,CACL,CACP,CACG,CACP,CAAC;IAEF,OAAO,CACL,gCACM,SAAS,EACb,GAAG,EAAE,aAAa,EAClB,IAAI,EAAC,OAAO,qBACK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,EACvD,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAC5B,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAC3B,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAC/B,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,EAC5B,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAClC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,uBAAuB,qBAAqB,EAAE,CAAC,EAChE,SAAS,CAAC,SAAS,CACpB,mBACc,QAAQ,IAAI,SAAS;QAEnC,gBAAgB;QAChB,cAAc;QACd,CAAC,eAAe,IAAI,WAAW,CAC5B,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,kBAAkB,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 { useMergeRefs, useUniqueId, warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { getBaseProps } from '../internal/base-component';\nimport InternalStructuredItem from '../internal/components/structured-item';\nimport { fireCancelableEvent } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport WithNativeAttributes from '../internal/utils/with-native-attributes';\nimport { type ActionCardProps } from './interfaces';\n\nimport styles from './styles.css.js';\nimport testStyles from './test-classes/styles.css.js';\n\nexport type InternalActionCardProps = ActionCardProps & InternalBaseComponentProps;\n\nconst InternalActionCard = React.forwardRef(\n (\n {\n header,\n description,\n children,\n onClick,\n ariaLabel,\n ariaDescribedby,\n disabled,\n disableHeaderPaddings,\n disableContentPaddings,\n icon,\n iconVerticalAlignment,\n variant,\n nativeButtonAttributes,\n __internalRootRef,\n ...rest\n }: InternalActionCardProps,\n ref: React.Ref<ActionCardProps.Ref>\n ) => {\n const baseProps = getBaseProps(rest);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const headerId = useUniqueId('action-card-header-');\n const standaloneButtonId = useUniqueId('action-card-button-');\n const descriptionId = useUniqueId('action-card-description-');\n const bodyId = useUniqueId('action-card-body-');\n\n useForwardFocus(ref, buttonRef);\n\n if (!header && !ariaLabel) {\n warnOnce(\n 'ActionCard',\n 'An accessible name is required. Provide either a `header` or an `ariaLabel` prop so the action card has a meaningful label for screen reader users.'\n );\n }\n\n const handleButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled) {\n return event.preventDefault();\n }\n fireCancelableEvent(onClick, {}, event);\n };\n\n const headerRowEmpty = !header && !description;\n\n const iconWrapper = icon && (\n <div className={clsx(styles.icon, testStyles.icon)} aria-hidden=\"true\">\n {icon}\n </div>\n );\n const iconInHeaderRow = icon && iconVerticalAlignment === 'top' && !!header;\n\n const mergedRootRef = useMergeRefs(rootRef, __internalRootRef);\n\n // Link the description element as the button's accessible description\n // when the button already has a name (via header text or ariaLabel).\n if (!ariaDescribedby && description && (ariaLabel || header)) {\n ariaDescribedby = descriptionId;\n }\n\n const buttonProps = {\n type: 'button' as const,\n className: clsx(\n styles['header-button'],\n testStyles.button,\n disabled && styles.disabled,\n variant && styles[`variant-${variant}`]\n ),\n onClick: handleButtonClick,\n 'aria-describedby': ariaDescribedby,\n 'aria-disabled': disabled || undefined,\n };\n\n const headerSection = !headerRowEmpty ? (\n <div className={clsx(styles.header, disableHeaderPaddings && styles['no-padding'])}>\n <InternalStructuredItem\n content={\n header && (\n <div className={clsx(styles['header-inner'], testStyles.header, disabled && styles.disabled)}>\n <WithNativeAttributes<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>\n {...buttonProps}\n tag=\"button\"\n componentName=\"ActionCard\"\n nativeAttributes={nativeButtonAttributes}\n ref={buttonRef}\n id={headerId}\n >\n {header}\n </WithNativeAttributes>\n </div>\n )\n }\n secondaryContent={\n description && (\n <div\n id={descriptionId}\n className={clsx(\n styles.description,\n testStyles.description,\n disabled && styles.disabled,\n header && styles['has-header']\n )}\n >\n {description}\n </div>\n )\n }\n disablePaddings={disableHeaderPaddings}\n />\n </div>\n ) : null;\n\n // When there's no header, a standalone overlay button is rendered.\n // If ariaLabel is provided, it's used directly. Otherwise, derive the button's\n // accessible name from the first available content: description or children.\n let standaloneButtonLabelledBy: string | undefined;\n if (!ariaLabel) {\n if (description) {\n standaloneButtonLabelledBy = descriptionId;\n } else if (children) {\n standaloneButtonLabelledBy = bodyId;\n }\n }\n\n const standaloneButton = !header ? (\n <WithNativeAttributes<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>\n {...buttonProps}\n tag=\"button\"\n componentName=\"ActionCard\"\n nativeAttributes={nativeButtonAttributes}\n ref={buttonRef}\n id={standaloneButtonId}\n className={clsx(\n styles['overlay-button'],\n testStyles.button,\n disabled && styles.disabled,\n variant && styles[`variant-${variant}`]\n )}\n aria-label={ariaLabel || undefined}\n aria-labelledby={standaloneButtonLabelledBy}\n />\n ) : null;\n\n const contentElement = (\n <div className={styles['inner-card']}>\n {iconInHeaderRow ? (\n <div className={styles['header-row']}>\n {headerSection}\n {iconWrapper}\n </div>\n ) : (\n headerSection\n )}\n {children && (\n <div\n className={clsx(styles.body, testStyles.body, disableContentPaddings && styles['no-padding'])}\n id={bodyId}\n >\n {children}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n {...baseProps}\n ref={mergedRootRef}\n role=\"group\"\n aria-labelledby={header ? headerId : standaloneButtonId}\n className={clsx(\n styles.root,\n styles[`variant-${variant}`],\n disabled && styles.disabled,\n disabled && testStyles.disabled,\n !!icon && styles['has-icon'],\n !!icon && styles['icon-align-end'],\n !!icon && styles[`icon-vertical-align-${iconVerticalAlignment}`],\n baseProps.className\n )}\n aria-disabled={disabled || undefined}\n >\n {standaloneButton}\n {contentElement}\n {!iconInHeaderRow && iconWrapper}\n </div>\n );\n }\n);\n\nexport default InternalActionCard;\n"]}
@@ -0,0 +1,22 @@
1
+
2
+ import './styles.scoped.css';
3
+ export default {
4
+ "root": "awsui_root_16248_q1yer_161",
5
+ "icon": "awsui_icon_16248_q1yer_193",
6
+ "header-inner": "awsui_header-inner_16248_q1yer_209",
7
+ "disabled": "awsui_disabled_16248_q1yer_218",
8
+ "header": "awsui_header_16248_q1yer_209",
9
+ "body": "awsui_body_16248_q1yer_221",
10
+ "header-row": "awsui_header-row_16248_q1yer_225",
11
+ "description": "awsui_description_16248_q1yer_238",
12
+ "has-header": "awsui_has-header_16248_q1yer_244",
13
+ "header-button": "awsui_header-button_16248_q1yer_258",
14
+ "overlay-button": "awsui_overlay-button_16248_q1yer_259",
15
+ "variant-embedded": "awsui_variant-embedded_16248_q1yer_278",
16
+ "variant-default": "awsui_variant-default_16248_q1yer_290",
17
+ "inner-card": "awsui_inner-card_16248_q1yer_391",
18
+ "no-padding": "awsui_no-padding_16248_q1yer_398",
19
+ "icon-vertical-align-center": "awsui_icon-vertical-align-center_16248_q1yer_409",
20
+ "icon-align-end": "awsui_icon-align-end_16248_q1yer_543"
21
+ };
22
+