@cloudscape-design/components 3.0.738 → 3.0.740

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 (144) hide show
  1. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  2. package/autosuggest/autosuggest-option.js +1 -1
  3. package/autosuggest/autosuggest-option.js.map +1 -1
  4. package/autosuggest/options-controller.d.ts.map +1 -1
  5. package/autosuggest/options-controller.js.map +1 -1
  6. package/button-dropdown/interfaces.d.ts +5 -0
  7. package/button-dropdown/interfaces.d.ts.map +1 -1
  8. package/button-dropdown/interfaces.js.map +1 -1
  9. package/button-dropdown/internal.d.ts.map +1 -1
  10. package/button-dropdown/internal.js +4 -4
  11. package/button-dropdown/internal.js.map +1 -1
  12. package/expandable-section/expandable-section-header.d.ts.map +1 -1
  13. package/expandable-section/expandable-section-header.js +6 -3
  14. package/expandable-section/expandable-section-header.js.map +1 -1
  15. package/expandable-section/interfaces.d.ts +2 -1
  16. package/expandable-section/interfaces.d.ts.map +1 -1
  17. package/expandable-section/interfaces.js.map +1 -1
  18. package/expandable-section/styles.css.js +34 -32
  19. package/expandable-section/styles.scoped.css +68 -67
  20. package/expandable-section/styles.selectors.js +34 -32
  21. package/expandable-section/utils.d.ts +1 -0
  22. package/expandable-section/utils.d.ts.map +1 -1
  23. package/expandable-section/utils.js +7 -3
  24. package/expandable-section/utils.js.map +1 -1
  25. package/i18n/messages/all.all.js +1 -1
  26. package/i18n/messages/all.all.json +1 -1
  27. package/i18n/messages/all.ar.js +1 -1
  28. package/i18n/messages/all.ar.json +1 -1
  29. package/i18n/messages/all.de.js +1 -1
  30. package/i18n/messages/all.de.json +1 -1
  31. package/i18n/messages/all.en-GB.js +1 -1
  32. package/i18n/messages/all.en-GB.json +1 -1
  33. package/i18n/messages/all.es.js +1 -1
  34. package/i18n/messages/all.es.json +1 -1
  35. package/i18n/messages/all.fr.js +1 -1
  36. package/i18n/messages/all.fr.json +1 -1
  37. package/i18n/messages/all.id.js +1 -1
  38. package/i18n/messages/all.id.json +1 -1
  39. package/i18n/messages/all.it.js +1 -1
  40. package/i18n/messages/all.it.json +1 -1
  41. package/i18n/messages/all.ja.js +1 -1
  42. package/i18n/messages/all.ja.json +1 -1
  43. package/i18n/messages/all.ko.js +1 -1
  44. package/i18n/messages/all.ko.json +1 -1
  45. package/i18n/messages/all.pt-BR.js +1 -1
  46. package/i18n/messages/all.pt-BR.json +1 -1
  47. package/i18n/messages/all.tr.js +1 -1
  48. package/i18n/messages/all.tr.json +1 -1
  49. package/i18n/messages/all.zh-CN.js +1 -1
  50. package/i18n/messages/all.zh-CN.json +1 -1
  51. package/i18n/messages/all.zh-TW.js +1 -1
  52. package/i18n/messages/all.zh-TW.json +1 -1
  53. package/internal/components/option/analytics-metadata/styles.css.js +6 -0
  54. package/internal/components/option/analytics-metadata/styles.scoped.css +7 -0
  55. package/internal/components/option/analytics-metadata/styles.selectors.js +7 -0
  56. package/internal/components/option/option-parts.d.ts.map +1 -1
  57. package/internal/components/option/option-parts.js +2 -1
  58. package/internal/components/option/option-parts.js.map +1 -1
  59. package/internal/components/selectable-item/analytics-metadata/interfaces.d.ts +11 -0
  60. package/internal/components/selectable-item/analytics-metadata/interfaces.d.ts.map +1 -0
  61. package/internal/components/selectable-item/analytics-metadata/interfaces.js +2 -0
  62. package/internal/components/selectable-item/analytics-metadata/interfaces.js.map +1 -0
  63. package/internal/components/selectable-item/analytics-metadata/styles.css.js +7 -0
  64. package/internal/components/selectable-item/analytics-metadata/styles.scoped.css +8 -0
  65. package/internal/components/selectable-item/analytics-metadata/styles.selectors.js +8 -0
  66. package/internal/components/selectable-item/analytics-metadata/utils.d.ts +4 -0
  67. package/internal/components/selectable-item/analytics-metadata/utils.d.ts.map +1 -0
  68. package/internal/components/selectable-item/analytics-metadata/utils.js +39 -0
  69. package/internal/components/selectable-item/analytics-metadata/utils.js.map +1 -0
  70. package/internal/components/selectable-item/index.d.ts +2 -26
  71. package/internal/components/selectable-item/index.d.ts.map +1 -1
  72. package/internal/components/selectable-item/index.js +9 -3
  73. package/internal/components/selectable-item/index.js.map +1 -1
  74. package/internal/components/selectable-item/interfaces.d.ts +35 -0
  75. package/internal/components/selectable-item/interfaces.d.ts.map +1 -0
  76. package/internal/components/selectable-item/interfaces.js +4 -0
  77. package/internal/components/selectable-item/interfaces.js.map +1 -0
  78. package/internal/components/token-list/analytics-metadata/interfaces.d.ts +9 -0
  79. package/internal/components/token-list/analytics-metadata/interfaces.d.ts.map +1 -0
  80. package/internal/components/token-list/analytics-metadata/interfaces.js +2 -0
  81. package/internal/components/token-list/analytics-metadata/interfaces.js.map +1 -0
  82. package/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  83. package/internal/components/token-list/token-limit-toggle.js +9 -1
  84. package/internal/components/token-list/token-limit-toggle.js.map +1 -1
  85. package/internal/environment.js +1 -1
  86. package/internal/environment.json +1 -1
  87. package/internal/manifest.json +1 -1
  88. package/package.json +1 -1
  89. package/property-filter/controller.d.ts +4 -3
  90. package/property-filter/controller.d.ts.map +1 -1
  91. package/property-filter/controller.js +27 -11
  92. package/property-filter/controller.js.map +1 -1
  93. package/property-filter/i18n-utils.d.ts +4 -24
  94. package/property-filter/i18n-utils.d.ts.map +1 -1
  95. package/property-filter/i18n-utils.js +12 -6
  96. package/property-filter/i18n-utils.js.map +1 -1
  97. package/property-filter/interfaces.d.ts +25 -8
  98. package/property-filter/interfaces.d.ts.map +1 -1
  99. package/property-filter/interfaces.js.map +1 -1
  100. package/property-filter/internal.d.ts +3 -4
  101. package/property-filter/internal.d.ts.map +1 -1
  102. package/property-filter/internal.js +20 -13
  103. package/property-filter/internal.js.map +1 -1
  104. package/property-filter/styles.css.js +38 -38
  105. package/property-filter/styles.scoped.css +46 -38
  106. package/property-filter/styles.selectors.js +38 -38
  107. package/property-filter/token-editor.d.ts +4 -3
  108. package/property-filter/token-editor.d.ts.map +1 -1
  109. package/property-filter/token-editor.js +15 -13
  110. package/property-filter/token-editor.js.map +1 -1
  111. package/property-filter/token.d.ts +3 -3
  112. package/property-filter/token.d.ts.map +1 -1
  113. package/property-filter/token.js +46 -19
  114. package/property-filter/token.js.map +1 -1
  115. package/property-filter/utils.d.ts +12 -0
  116. package/property-filter/utils.d.ts.map +1 -1
  117. package/property-filter/utils.js +22 -0
  118. package/property-filter/utils.js.map +1 -1
  119. package/select/parts/item.d.ts.map +1 -1
  120. package/select/parts/item.js +1 -1
  121. package/select/parts/item.js.map +1 -1
  122. package/select/parts/multiselect-item.d.ts.map +1 -1
  123. package/select/parts/multiselect-item.js +1 -1
  124. package/select/parts/multiselect-item.js.map +1 -1
  125. package/test-utils/dom/property-filter/index.d.ts +17 -15
  126. package/test-utils/dom/property-filter/index.js +34 -39
  127. package/test-utils/dom/property-filter/index.js.map +1 -1
  128. package/test-utils/selectors/property-filter/index.d.ts +17 -15
  129. package/test-utils/selectors/property-filter/index.js +36 -39
  130. package/test-utils/selectors/property-filter/index.js.map +1 -1
  131. package/test-utils/tsconfig.tsbuildinfo +1 -1
  132. package/token-group/analytics-metadata/interfaces.d.ts +18 -0
  133. package/token-group/analytics-metadata/interfaces.d.ts.map +1 -0
  134. package/token-group/analytics-metadata/interfaces.js +2 -0
  135. package/token-group/analytics-metadata/interfaces.js.map +1 -0
  136. package/token-group/dismiss-button.d.ts.map +1 -1
  137. package/token-group/dismiss-button.js +9 -2
  138. package/token-group/dismiss-button.js.map +1 -1
  139. package/token-group/index.d.ts.map +1 -1
  140. package/token-group/index.js +9 -1
  141. package/token-group/index.js.map +1 -1
  142. package/token-group/internal.d.ts.map +1 -1
  143. package/token-group/internal.js +5 -2
  144. package/token-group/internal.js.map +1 -1
@@ -0,0 +1,18 @@
1
+ import { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
2
+ import { GeneratedAnalyticsMetadataTokenListShowMore } from '../../internal/components/token-list/analytics-metadata/interfaces';
3
+ export interface GeneratedAnalyticsMetadataTokenGroupDismiss {
4
+ action: 'dismiss';
5
+ detail: {
6
+ label: LabelIdentifier;
7
+ position?: string;
8
+ };
9
+ }
10
+ export type GeneratedAnalyticsMetadataTokenGroupExpand = GeneratedAnalyticsMetadataTokenListShowMore;
11
+ export interface GeneratedAnalyticsMetadataTokenGroupComponent {
12
+ name: 'awsui.TokenGroup';
13
+ label: string;
14
+ properties: {
15
+ itemsCount: string;
16
+ };
17
+ }
18
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/token-group/analytics-metadata/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AAEnG,OAAO,EAAE,2CAA2C,EAAE,MAAM,oEAAoE,CAAC;AAEjI,MAAM,WAAW,2CAA2C;IAC1D,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE;QACN,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,0CAA0C,GAAG,2CAA2C,CAAC;AAErG,MAAM,WAAW,6CAA6C;IAC5D,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE;QACV,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/token-group/analytics-metadata/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { LabelIdentifier } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { GeneratedAnalyticsMetadataTokenListShowMore } from '../../internal/components/token-list/analytics-metadata/interfaces';\n\nexport interface GeneratedAnalyticsMetadataTokenGroupDismiss {\n action: 'dismiss';\n detail: {\n label: LabelIdentifier;\n position?: string;\n };\n}\n\nexport type GeneratedAnalyticsMetadataTokenGroupExpand = GeneratedAnalyticsMetadataTokenListShowMore;\n\nexport interface GeneratedAnalyticsMetadataTokenGroupComponent {\n name: 'awsui.TokenGroup';\n label: string;\n properties: {\n itemsCount: string;\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"dismiss-button.d.ts","sourceRoot":"","sources":["../../../src/token-group/dismiss-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAM/C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;AAED,wBAAyC"}
1
+ {"version":3,"file":"dismiss-button.d.ts","sourceRoot":"","sources":["../../../src/token-group/dismiss-button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAS/C,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;AAED,wBAAyC"}
@@ -1,16 +1,23 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import React, { forwardRef } from 'react';
4
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
4
5
  import InternalIcon from '../icon/internal';
5
6
  import styles from './styles.css.js';
6
7
  export default forwardRef(DismissButton);
7
8
  function DismissButton({ disabled, dismissLabel, onDismiss, readOnly }, ref) {
8
- return (React.createElement("button", { ref: ref, type: "button", className: styles['dismiss-button'], "aria-disabled": disabled || readOnly ? true : undefined, onClick: () => {
9
+ const analyticsMetadata = {
10
+ action: 'dismiss',
11
+ detail: {
12
+ label: { root: 'self' },
13
+ },
14
+ };
15
+ return (React.createElement("button", Object.assign({ ref: ref, type: "button", className: styles['dismiss-button'], "aria-disabled": disabled || readOnly ? true : undefined, onClick: () => {
9
16
  if (disabled || readOnly || !onDismiss) {
10
17
  return;
11
18
  }
12
19
  onDismiss();
13
- }, "aria-label": dismissLabel },
20
+ }, "aria-label": dismissLabel }, (disabled || readOnly ? {} : getAnalyticsMetadataAttribute(analyticsMetadata))),
14
21
  React.createElement(InternalIcon, { name: "close" })));
15
22
  }
16
23
  //# sourceMappingURL=dismiss-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dismiss-button.js","sourceRoot":"","sources":["../../../src/token-group/dismiss-button.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAO,MAAM,OAAO,CAAC;AAE/C,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAE5C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AASrC,eAAe,UAAU,CAAC,aAAa,CAAC,CAAC;AAEzC,SAAS,aAAa,CACpB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB,EACnE,GAA2B;IAE3B,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,mBACpB,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE;gBACtC,OAAO;aACR;YAED,SAAS,EAAE,CAAC;QACd,CAAC,gBACW,YAAY;QAExB,oBAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,CACtB,CACV,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, Ref } from 'react';\n\nimport InternalIcon from '../icon/internal';\n\nimport styles from './styles.css.js';\n\ninterface DismissButtonProps {\n disabled?: boolean;\n readOnly?: boolean;\n onDismiss?: () => void;\n dismissLabel?: string;\n}\n\nexport default forwardRef(DismissButton);\n\nfunction DismissButton(\n { disabled, dismissLabel, onDismiss, readOnly }: DismissButtonProps,\n ref: Ref<HTMLButtonElement>\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={styles['dismiss-button']}\n aria-disabled={disabled || readOnly ? true : undefined}\n onClick={() => {\n if (disabled || readOnly || !onDismiss) {\n return;\n }\n\n onDismiss();\n }}\n aria-label={dismissLabel}\n >\n <InternalIcon name=\"close\" />\n </button>\n );\n}\n"]}
1
+ {"version":3,"file":"dismiss-button.js","sourceRoot":"","sources":["../../../src/token-group/dismiss-button.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,UAAU,EAAO,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAG5C,OAAO,MAAM,MAAM,iBAAiB,CAAC;AASrC,eAAe,UAAU,CAAC,aAAa,CAAC,CAAC;AAEzC,SAAS,aAAa,CACpB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAsB,EACnE,GAA2B;IAE3B,MAAM,iBAAiB,GAAgD;QACrE,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB;KACF,CAAC;IACF,OAAO,CACL,8CACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,mBACpB,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EACtD,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,SAAS,EAAE;gBACtC,OAAO;aACR;YAED,SAAS,EAAE,CAAC;QACd,CAAC,gBACW,YAAY,IACpB,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;QAElF,oBAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,CACtB,CACV,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { forwardRef, Ref } from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalIcon from '../icon/internal';\nimport { GeneratedAnalyticsMetadataTokenGroupDismiss } from './analytics-metadata/interfaces';\n\nimport styles from './styles.css.js';\n\ninterface DismissButtonProps {\n disabled?: boolean;\n readOnly?: boolean;\n onDismiss?: () => void;\n dismissLabel?: string;\n}\n\nexport default forwardRef(DismissButton);\n\nfunction DismissButton(\n { disabled, dismissLabel, onDismiss, readOnly }: DismissButtonProps,\n ref: Ref<HTMLButtonElement>\n) {\n const analyticsMetadata: GeneratedAnalyticsMetadataTokenGroupDismiss = {\n action: 'dismiss',\n detail: {\n label: { root: 'self' },\n },\n };\n return (\n <button\n ref={ref}\n type=\"button\"\n className={styles['dismiss-button']}\n aria-disabled={disabled || readOnly ? true : undefined}\n onClick={() => {\n if (disabled || readOnly || !onDismiss) {\n return;\n }\n\n onDismiss();\n }}\n aria-label={dismissLabel}\n {...(disabled || readOnly ? {} : getAnalyticsMetadataAttribute(analyticsMetadata))}\n >\n <InternalIcon name=\"close\" />\n </button>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/token-group/index.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAU,EAAE,SAAwB,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,eAKrG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/token-group/index.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,KAAU,EAAE,SAAwB,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,eAsBrG"}
@@ -2,6 +2,7 @@ import { __rest } from "tslib";
2
2
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React from 'react';
5
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
5
6
  import useBaseComponent from '../internal/hooks/use-base-component';
6
7
  import { applyDisplayName } from '../internal/utils/apply-display-name';
7
8
  import InternalTokenGroup from './internal';
@@ -10,7 +11,14 @@ export default function TokenGroup(_a) {
10
11
  const baseComponentProps = useBaseComponent('TokenGroup', {
11
12
  props: { alignment, disableOuterPadding: props.disableOuterPadding, limit: props.limit },
12
13
  });
13
- return React.createElement(InternalTokenGroup, Object.assign({ items: items, alignment: alignment }, props, baseComponentProps));
14
+ const componentAnalyticsMetadata = {
15
+ name: 'awsui.TokenGroup',
16
+ label: 'invalid',
17
+ properties: {
18
+ itemsCount: `${items.length}`,
19
+ },
20
+ };
21
+ return (React.createElement(InternalTokenGroup, Object.assign({ items: items, alignment: alignment }, props, baseComponentProps, getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata }))));
14
22
  }
15
23
  applyDisplayName(TokenGroup, 'TokenGroup');
16
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/token-group/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,kBAAkB,MAAM,YAAY,CAAC;AAI5C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAmE;QAAnE,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,YAAY,OAA6B,EAAxB,KAAK,cAAhD,sBAAkD,CAAF;IACjF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,EAAE;QACxD,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;KACzF,CAAC,CAAC;IACH,OAAO,oBAAC,kBAAkB,kBAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,IAAM,KAAK,EAAM,kBAAkB,EAAI,CAAC;AACvG,CAAC;AAED,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { TokenGroupProps } from './interfaces';\nimport InternalTokenGroup from './internal';\n\nexport { TokenGroupProps };\n\nexport default function TokenGroup({ items = [], alignment = 'horizontal', ...props }: TokenGroupProps) {\n const baseComponentProps = useBaseComponent('TokenGroup', {\n props: { alignment, disableOuterPadding: props.disableOuterPadding, limit: props.limit },\n });\n return <InternalTokenGroup items={items} alignment={alignment} {...props} {...baseComponentProps} />;\n}\n\napplyDisplayName(TokenGroup, 'TokenGroup');\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/token-group/index.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,kBAAkB,MAAM,YAAY,CAAC;AAI5C,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAmE;QAAnE,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,YAAY,OAA6B,EAAxB,KAAK,cAAhD,sBAAkD,CAAF;IACjF,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,YAAY,EAAE;QACxD,KAAK,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;KACzF,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAAkD;QAChF,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE;YACV,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE;SAC9B;KACF,CAAC;IAEF,OAAO,CACL,oBAAC,kBAAkB,kBACjB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,IAChB,KAAK,EACL,kBAAkB,EAClB,6BAA6B,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,EAC5E,CACH,CAAC;AACJ,CAAC;AAED,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTokenGroupComponent } from './analytics-metadata/interfaces';\nimport { TokenGroupProps } from './interfaces';\nimport InternalTokenGroup from './internal';\n\nexport { TokenGroupProps };\n\nexport default function TokenGroup({ items = [], alignment = 'horizontal', ...props }: TokenGroupProps) {\n const baseComponentProps = useBaseComponent('TokenGroup', {\n props: { alignment, disableOuterPadding: props.disableOuterPadding, limit: props.limit },\n });\n\n const componentAnalyticsMetadata: GeneratedAnalyticsMetadataTokenGroupComponent = {\n name: 'awsui.TokenGroup',\n label: 'invalid',\n properties: {\n itemsCount: `${items.length}`,\n },\n };\n\n return (\n <InternalTokenGroup\n items={items}\n alignment={alignment}\n {...props}\n {...baseComponentProps}\n {...getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata })}\n />\n );\n}\n\napplyDisplayName(TokenGroup, 'TokenGroup');\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/token-group/internal.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAGlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAM/C,KAAK,uBAAuB,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,0BAA0B,CAAC;AAEjH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,SAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,QAAQ,EACR,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,uBAAuB,eAyDzB"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/token-group/internal.tsx"],"names":[],"mappings":";AAYA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAGlF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAM/C,KAAK,uBAAuB,GAAG,YAAY,CAAC,eAAe,EAAE,OAAO,GAAG,WAAW,CAAC,GAAG,0BAA0B,CAAC;AAEjH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,SAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,QAAQ,EACR,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,uBAAuB,eA4DzB"}
@@ -3,6 +3,7 @@ import { __rest } from "tslib";
3
3
  // SPDX-License-Identifier: Apache-2.0
4
4
  import React, { useState } from 'react';
5
5
  import clsx from 'clsx';
6
+ import { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';
6
7
  import { getBaseProps } from '../internal/base-component';
7
8
  import Option from '../internal/components/option';
8
9
  import TokenList from '../internal/components/token-list';
@@ -28,10 +29,12 @@ export default function InternalTokenGroup(_a) {
28
29
  const hasItems = items.length > 0;
29
30
  const mergedRef = useMergeRefs(__internalRootRef, tokenListRef);
30
31
  return (React.createElement("div", Object.assign({}, baseProps, { className: clsx(baseProps.className, styles.root, hasItems && styles['has-items'], disableOuterPadding && styles['no-padding']), ref: mergedRef }),
31
- React.createElement(TokenList, { alignment: alignment, items: items, limit: limit, renderItem: (item, itemIndex) => (React.createElement(Token, { ariaLabel: item.label, dismissLabel: item.dismissLabel, onDismiss: () => {
32
+ React.createElement(TokenList, { alignment: alignment, items: items, limit: limit, renderItem: (item, itemIndex) => (React.createElement(Token, Object.assign({ ariaLabel: item.label, dismissLabel: item.dismissLabel, onDismiss: () => {
32
33
  fireNonCancelableEvent(onDismiss, { itemIndex });
33
34
  setNextFocusIndex(itemIndex);
34
- }, disabled: item.disabled, readOnly: readOnly },
35
+ }, disabled: item.disabled, readOnly: readOnly }, (item.disabled || readOnly
36
+ ? {}
37
+ : getAnalyticsMetadataAttribute({ detail: { position: `${itemIndex + 1}` } }))),
35
38
  React.createElement(Option, { option: item, isGenericGroup: false }))), i18nStrings: i18nStrings, limitShowFewerAriaLabel: limitShowFewerAriaLabel, limitShowMoreAriaLabel: limitShowMoreAriaLabel, onExpandedClick: isExpanded => {
36
39
  if (isExpanded && limit) {
37
40
  setNextFocusIndex(limit);
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/token-group/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getBaseProps } from '../internal/base-component';\nimport Option from '../internal/components/option';\nimport TokenList from '../internal/components/token-list';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useListFocusController } from '../internal/hooks/use-list-focus-controller';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { SomeRequired } from '../internal/types';\nimport { TokenGroupProps } from './interfaces';\nimport { Token } from './token';\n\nimport tokenListStyles from '../internal/components/token-list/styles.css.js';\nimport styles from './styles.css.js';\n\ntype InternalTokenGroupProps = SomeRequired<TokenGroupProps, 'items' | 'alignment'> & InternalBaseComponentProps;\n\nexport default function InternalTokenGroup({\n alignment,\n items,\n onDismiss,\n limit,\n i18nStrings,\n disableOuterPadding,\n limitShowFewerAriaLabel,\n limitShowMoreAriaLabel,\n readOnly,\n __internalRootRef,\n ...props\n}: InternalTokenGroupProps) {\n checkControlled('TokenGroup', 'items', items, 'onDismiss', onDismiss);\n\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const onFocusMoved = () => setNextFocusIndex(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved,\n listItemSelector: `.${tokenListStyles['list-item']}`,\n showMoreSelector: `.${tokenListStyles.toggle}`,\n });\n\n const baseProps = getBaseProps(props);\n const hasItems = items.length > 0;\n const mergedRef = useMergeRefs(__internalRootRef, tokenListRef);\n return (\n <div\n {...baseProps}\n className={clsx(\n baseProps.className,\n styles.root,\n hasItems && styles['has-items'],\n disableOuterPadding && styles['no-padding']\n )}\n ref={mergedRef}\n >\n <TokenList\n alignment={alignment}\n items={items}\n limit={limit}\n renderItem={(item, itemIndex) => (\n <Token\n ariaLabel={item.label}\n dismissLabel={item.dismissLabel}\n onDismiss={() => {\n fireNonCancelableEvent(onDismiss, { itemIndex });\n setNextFocusIndex(itemIndex);\n }}\n disabled={item.disabled}\n readOnly={readOnly}\n >\n <Option option={item} isGenericGroup={false} />\n </Token>\n )}\n i18nStrings={i18nStrings}\n limitShowFewerAriaLabel={limitShowFewerAriaLabel}\n limitShowMoreAriaLabel={limitShowMoreAriaLabel}\n onExpandedClick={isExpanded => {\n if (isExpanded && limit) {\n setNextFocusIndex(limit);\n } else {\n setNextFocusIndex(null);\n }\n }}\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/token-group/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { getBaseProps } from '../internal/base-component';\nimport Option from '../internal/components/option';\nimport TokenList from '../internal/components/token-list';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport checkControlled from '../internal/hooks/check-controlled';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useListFocusController } from '../internal/hooks/use-list-focus-controller';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { SomeRequired } from '../internal/types';\nimport { TokenGroupProps } from './interfaces';\nimport { Token } from './token';\n\nimport tokenListStyles from '../internal/components/token-list/styles.css.js';\nimport styles from './styles.css.js';\n\ntype InternalTokenGroupProps = SomeRequired<TokenGroupProps, 'items' | 'alignment'> & InternalBaseComponentProps;\n\nexport default function InternalTokenGroup({\n alignment,\n items,\n onDismiss,\n limit,\n i18nStrings,\n disableOuterPadding,\n limitShowFewerAriaLabel,\n limitShowMoreAriaLabel,\n readOnly,\n __internalRootRef,\n ...props\n}: InternalTokenGroupProps) {\n checkControlled('TokenGroup', 'items', items, 'onDismiss', onDismiss);\n\n const [nextFocusIndex, setNextFocusIndex] = useState<null | number>(null);\n const onFocusMoved = () => setNextFocusIndex(null);\n const tokenListRef = useListFocusController({\n nextFocusIndex,\n onFocusMoved,\n listItemSelector: `.${tokenListStyles['list-item']}`,\n showMoreSelector: `.${tokenListStyles.toggle}`,\n });\n\n const baseProps = getBaseProps(props);\n const hasItems = items.length > 0;\n const mergedRef = useMergeRefs(__internalRootRef, tokenListRef);\n return (\n <div\n {...baseProps}\n className={clsx(\n baseProps.className,\n styles.root,\n hasItems && styles['has-items'],\n disableOuterPadding && styles['no-padding']\n )}\n ref={mergedRef}\n >\n <TokenList\n alignment={alignment}\n items={items}\n limit={limit}\n renderItem={(item, itemIndex) => (\n <Token\n ariaLabel={item.label}\n dismissLabel={item.dismissLabel}\n onDismiss={() => {\n fireNonCancelableEvent(onDismiss, { itemIndex });\n setNextFocusIndex(itemIndex);\n }}\n disabled={item.disabled}\n readOnly={readOnly}\n {...(item.disabled || readOnly\n ? {}\n : getAnalyticsMetadataAttribute({ detail: { position: `${itemIndex + 1}` } }))}\n >\n <Option option={item} isGenericGroup={false} />\n </Token>\n )}\n i18nStrings={i18nStrings}\n limitShowFewerAriaLabel={limitShowFewerAriaLabel}\n limitShowMoreAriaLabel={limitShowMoreAriaLabel}\n onExpandedClick={isExpanded => {\n if (isExpanded && limit) {\n setNextFocusIndex(limit);\n } else {\n setNextFocusIndex(null);\n }\n }}\n />\n </div>\n );\n}\n"]}