@cloudscape-design/components-themeable 3.0.1094 → 3.0.1096

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 (86) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/button/styles.scss +4 -0
  3. package/lib/internal/scss/button/test-classes/styles.scss +4 -4
  4. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  5. package/lib/internal/template/button/icon-helper.d.ts.map +1 -1
  6. package/lib/internal/template/button/icon-helper.js +1 -2
  7. package/lib/internal/template/button/icon-helper.js.map +1 -1
  8. package/lib/internal/template/button/internal.d.ts +0 -2
  9. package/lib/internal/template/button/internal.d.ts.map +1 -1
  10. package/lib/internal/template/button/internal.js +2 -3
  11. package/lib/internal/template/button/internal.js.map +1 -1
  12. package/lib/internal/template/button/styles.css.js +22 -21
  13. package/lib/internal/template/button/styles.scoped.css +72 -68
  14. package/lib/internal/template/button/styles.selectors.js +22 -21
  15. package/lib/internal/template/button/test-classes/styles.css.js +2 -5
  16. package/lib/internal/template/button/test-classes/styles.scoped.css +5 -5
  17. package/lib/internal/template/button/test-classes/styles.selectors.js +2 -5
  18. package/lib/internal/template/calendar/grid/index.js +1 -1
  19. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  20. package/lib/internal/template/input/index.d.ts.map +1 -1
  21. package/lib/internal/template/input/index.js +3 -2
  22. package/lib/internal/template/input/index.js.map +1 -1
  23. package/lib/internal/template/input/interfaces.d.ts +16 -0
  24. package/lib/internal/template/input/interfaces.d.ts.map +1 -1
  25. package/lib/internal/template/input/interfaces.js.map +1 -1
  26. package/lib/internal/template/input/internal.d.ts +2 -1
  27. package/lib/internal/template/input/internal.d.ts.map +1 -1
  28. package/lib/internal/template/input/internal.js +24 -9
  29. package/lib/internal/template/input/internal.js.map +1 -1
  30. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  31. package/lib/internal/template/internal/components/autosuggest-input/index.d.ts.map +1 -1
  32. package/lib/internal/template/internal/components/autosuggest-input/index.js +3 -2
  33. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  34. package/lib/internal/template/internal/components/masked-input/index.d.ts.map +1 -1
  35. package/lib/internal/template/internal/components/masked-input/index.js +4 -3
  36. package/lib/internal/template/internal/components/masked-input/index.js.map +1 -1
  37. package/lib/internal/template/internal/environment.js +2 -2
  38. package/lib/internal/template/internal/environment.json +2 -2
  39. package/lib/internal/template/internal/hooks/{use-effect-on-update.d.ts → use-effect-on-update/index.d.ts} +1 -1
  40. package/lib/internal/template/internal/hooks/use-effect-on-update/index.d.ts.map +1 -0
  41. package/lib/internal/template/internal/hooks/use-effect-on-update/index.js +37 -0
  42. package/lib/internal/template/internal/hooks/use-effect-on-update/index.js.map +1 -0
  43. package/lib/internal/template/internal/utils/with-native-attributes.d.ts +3 -1
  44. package/lib/internal/template/internal/utils/with-native-attributes.d.ts.map +1 -1
  45. package/lib/internal/template/internal/utils/with-native-attributes.js +10 -7
  46. package/lib/internal/template/internal/utils/with-native-attributes.js.map +1 -1
  47. package/lib/internal/template/prompt-input/interfaces.d.ts +16 -1
  48. package/lib/internal/template/prompt-input/interfaces.d.ts.map +1 -1
  49. package/lib/internal/template/prompt-input/interfaces.js.map +1 -1
  50. package/lib/internal/template/prompt-input/internal.d.ts.map +1 -1
  51. package/lib/internal/template/prompt-input/internal.js +3 -2
  52. package/lib/internal/template/prompt-input/internal.js.map +1 -1
  53. package/lib/internal/template/select/parts/filter.d.ts +1 -1
  54. package/lib/internal/template/select/parts/filter.d.ts.map +1 -1
  55. package/lib/internal/template/select/parts/filter.js +1 -1
  56. package/lib/internal/template/select/parts/filter.js.map +1 -1
  57. package/lib/internal/template/select/utils/use-select.js +1 -1
  58. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  59. package/lib/internal/template/test-utils/dom/button/index.js +5 -4
  60. package/lib/internal/template/test-utils/dom/button/index.js.map +1 -1
  61. package/lib/internal/template/test-utils/dom/toggle-button/index.js +4 -3
  62. package/lib/internal/template/test-utils/dom/toggle-button/index.js.map +1 -1
  63. package/lib/internal/template/test-utils/selectors/button/index.js +5 -4
  64. package/lib/internal/template/test-utils/selectors/button/index.js.map +1 -1
  65. package/lib/internal/template/test-utils/selectors/toggle-button/index.js +2 -2
  66. package/lib/internal/template/test-utils/selectors/toggle-button/index.js.map +1 -1
  67. package/lib/internal/template/textarea/index.d.ts.map +1 -1
  68. package/lib/internal/template/textarea/index.js +3 -2
  69. package/lib/internal/template/textarea/index.js.map +1 -1
  70. package/lib/internal/template/textarea/interfaces.d.ts +17 -1
  71. package/lib/internal/template/textarea/interfaces.d.ts.map +1 -1
  72. package/lib/internal/template/textarea/interfaces.js.map +1 -1
  73. package/lib/internal/template/toggle-button/internal.d.ts.map +1 -1
  74. package/lib/internal/template/toggle-button/internal.js +2 -3
  75. package/lib/internal/template/toggle-button/internal.js.map +1 -1
  76. package/lib/internal/template/wizard/wizard-form.d.ts.map +1 -1
  77. package/lib/internal/template/wizard/wizard-form.js +1 -3
  78. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  79. package/package.json +1 -1
  80. package/lib/internal/scss/toggle-button/test-classes/styles.scss +0 -9
  81. package/lib/internal/template/internal/hooks/use-effect-on-update.d.ts.map +0 -1
  82. package/lib/internal/template/internal/hooks/use-effect-on-update.js +0 -18
  83. package/lib/internal/template/internal/hooks/use-effect-on-update.js.map +0 -1
  84. package/lib/internal/template/toggle-button/test-classes/styles.css.js +0 -7
  85. package/lib/internal/template/toggle-button/test-classes/styles.scoped.css +0 -8
  86. package/lib/internal/template/toggle-button/test-classes/styles.selectors.js +0 -8
@@ -3,17 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
4
  // SPDX-License-Identifier: Apache-2.0
5
5
  const selectors_1 = require("@cloudscape-design/test-utils-core/selectors");
6
- const styles_selectors_js_1 = require("../../../button/test-classes/styles.selectors.js");
7
- const styles_selectors_js_2 = require("../../../spinner/styles.selectors.js");
6
+ const styles_selectors_js_1 = require("../../../button/styles.selectors.js");
7
+ const styles_selectors_js_2 = require("../../../button/test-classes/styles.selectors.js");
8
+ const styles_selectors_js_3 = require("../../../spinner/styles.selectors.js");
8
9
  class ButtonWrapper extends selectors_1.ComponentWrapper {
9
10
  findLoadingIndicator() {
10
- return this.find(`.${styles_selectors_js_1.default['icon-left']}.${styles_selectors_js_2.default.root}`);
11
+ return this.find(`.${styles_selectors_js_1.default['icon-left']}.${styles_selectors_js_3.default.root}`);
11
12
  }
12
13
  findTextRegion() {
13
14
  return this.find(`.${styles_selectors_js_1.default.content}`);
14
15
  }
15
16
  findDisabledReason() {
16
- return (0, selectors_1.createWrapper)().find(`.${styles_selectors_js_1.default['disabled-reason-tooltip']}`);
17
+ return (0, selectors_1.createWrapper)().find(`.${styles_selectors_js_2.default['disabled-reason-tooltip']}`);
17
18
  }
18
19
  }
19
20
  exports.default = ButtonWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/button/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAA+G;AAC/G,0FAAqF;AACrF,8EAAiE;AACjE,MAAqB,aAAc,SAAQ,4BAAgB;IAEzD,oBAAoB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAqB,CAAC,WAAW,CAAC,IAAI,6BAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAqB,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAA,yBAAa,GAAE,CAAC,IAAI,CAAC,IAAI,6BAAqB,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;;AAVH,gCAWC;AAVQ,0BAAY,GAAW,6BAAqB,CAAC,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/button/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAA+G;AAC/G,6EAAyD;AACzD,0FAAqF;AACrF,8EAAiE;AACjE,MAAqB,aAAc,SAAQ,4BAAgB;IAEzD,oBAAoB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,WAAW,CAAC,IAAI,6BAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAA,yBAAa,GAAE,CAAC,IAAI,CAAC,IAAI,6BAAqB,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;;AAVH,gCAWC;AAVQ,0BAAY,GAAW,6BAAM,CAAC,MAAM,CAAC"}
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  // SPDX-License-Identifier: Apache-2.0
5
5
  require("@cloudscape-design/test-utils-core/selectors");
6
6
  const button_1 = require("../button");
7
- const styles_selectors_js_1 = require("../../../toggle-button/test-classes/styles.selectors.js");
7
+ const styles_selectors_js_1 = require("../../../button/styles.selectors.js");
8
8
  class ToggleButtonWrapper extends button_1.default {
9
9
  }
10
10
  exports.default = ToggleButtonWrapper;
11
- ToggleButtonWrapper.rootSelector = styles_selectors_js_1.default.root;
11
+ ToggleButtonWrapper.rootSelector = styles_selectors_js_1.default.button;
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/toggle-button/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,wDAAsD;AACtD,sCAAsC;AACtC,iGAAiF;AACjF,MAAqB,mBAAoB,SAAQ,gBAAa;;AAA9D,sCAEC;AADQ,gCAAY,GAAW,6BAAU,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/toggle-button/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,wDAAsD;AACtD,sCAAsC;AACtC,6EAA+D;AAE/D,MAAqB,mBAAoB,SAAQ,gBAAa;;AAA9D,sCAEC;AADQ,gCAAY,GAAW,6BAAY,CAAC,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/textarea/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAa3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,QAAA,MAAM,QAAQ,yFA2Fb,CAAC;AAGF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/textarea/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAC;AAc3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,QAAA,MAAM,QAAQ,yFAmGb,CAAC;AAGF,eAAe,QAAQ,CAAC"}
@@ -12,9 +12,10 @@ import { fireKeyboardEvent, fireNonCancelableEvent } from '../internal/events';
12
12
  import useForwardFocus from '../internal/hooks/forward-focus';
13
13
  import useBaseComponent from '../internal/hooks/use-base-component';
14
14
  import { applyDisplayName } from '../internal/utils/apply-display-name';
15
+ import WithNativeAttributes from '../internal/utils/with-native-attributes';
15
16
  import styles from './styles.css.js';
16
17
  const Textarea = React.forwardRef((_a, ref) => {
17
- var { value, autoComplete = true, disabled, readOnly, disableBrowserAutocorrect, disableBrowserSpellcheck, spellcheck, onKeyDown, onKeyUp, onChange, onBlur, onFocus, ariaRequired, name, rows, placeholder, autoFocus, ariaLabel } = _a, rest = __rest(_a, ["value", "autoComplete", "disabled", "readOnly", "disableBrowserAutocorrect", "disableBrowserSpellcheck", "spellcheck", "onKeyDown", "onKeyUp", "onChange", "onBlur", "onFocus", "ariaRequired", "name", "rows", "placeholder", "autoFocus", "ariaLabel"]);
18
+ var { value, autoComplete = true, disabled, readOnly, disableBrowserAutocorrect, disableBrowserSpellcheck, spellcheck, onKeyDown, onKeyUp, onChange, onBlur, onFocus, ariaRequired, name, rows, placeholder, autoFocus, ariaLabel, nativeTextareaAttributes } = _a, rest = __rest(_a, ["value", "autoComplete", "disabled", "readOnly", "disableBrowserAutocorrect", "disableBrowserSpellcheck", "spellcheck", "onKeyDown", "onKeyUp", "onChange", "onBlur", "onFocus", "ariaRequired", "name", "rows", "placeholder", "autoFocus", "ariaLabel", "nativeTextareaAttributes"]);
18
19
  const { __internalRootRef } = useBaseComponent('Textarea', {
19
20
  props: { autoComplete, autoFocus, disableBrowserAutocorrect, disableBrowserSpellcheck, readOnly, spellcheck },
20
21
  });
@@ -64,7 +65,7 @@ const Textarea = React.forwardRef((_a, ref) => {
64
65
  },
65
66
  };
66
67
  return (React.createElement("span", Object.assign({}, baseProps, { className: clsx(styles.root, baseProps.className), ref: __internalRootRef }, getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata })),
67
- React.createElement("textarea", Object.assign({ ref: textareaRef, id: controlId }, attributes))));
68
+ React.createElement(WithNativeAttributes, Object.assign({}, attributes, { tag: "textarea", componentName: "Textarea", nativeAttributes: nativeTextareaAttributes, ref: textareaRef, id: controlId }))));
68
69
  });
69
70
  applyDisplayName(Textarea, 'Textarea');
70
71
  export default Textarea;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/textarea/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React, { Ref, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { convertAutoComplete } from '../input/utils';\nimport { getBaseProps } from '../internal/base-component';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { fireKeyboardEvent, fireNonCancelableEvent } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTextareaComponent } from './analytics-metadata/interfaces';\nimport { TextareaProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\nexport { TextareaProps };\n\nconst Textarea = React.forwardRef(\n (\n {\n value,\n autoComplete = true,\n disabled,\n readOnly,\n disableBrowserAutocorrect,\n disableBrowserSpellcheck,\n spellcheck,\n onKeyDown,\n onKeyUp,\n onChange,\n onBlur,\n onFocus,\n ariaRequired,\n name,\n rows,\n placeholder,\n autoFocus,\n ariaLabel,\n ...rest\n }: TextareaProps,\n ref: Ref<TextareaProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('Textarea', {\n props: { autoComplete, autoFocus, disableBrowserAutocorrect, disableBrowserSpellcheck, readOnly, spellcheck },\n });\n const { ariaLabelledby, ariaDescribedby, controlId, invalid, warning } = useFormFieldContext(rest);\n\n const baseProps = getBaseProps(rest);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n useForwardFocus(ref, textareaRef);\n\n const attributes: React.TextareaHTMLAttributes<HTMLTextAreaElement> = {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-required': ariaRequired ? 'true' : undefined,\n 'aria-invalid': invalid ? 'true' : undefined,\n name,\n placeholder,\n autoFocus,\n className: clsx(styles.textarea, {\n [styles['textarea-readonly']]: readOnly,\n [styles['textarea-invalid']]: invalid,\n [styles['textarea-warning']]: warning && !invalid,\n }),\n autoComplete: convertAutoComplete(autoComplete),\n spellCheck: spellcheck,\n disabled,\n readOnly: readOnly ? true : undefined,\n rows: rows || 3,\n onKeyDown: onKeyDown && (event => fireKeyboardEvent(onKeyDown, event)),\n onKeyUp: onKeyUp && (event => fireKeyboardEvent(onKeyUp, event)),\n // We set a default value on the component in order to force it into the controlled mode.\n value: value || '',\n onChange: onChange && (event => fireNonCancelableEvent(onChange, { value: event.target.value })),\n onBlur: onBlur && (() => fireNonCancelableEvent(onBlur)),\n onFocus: onFocus && (() => fireNonCancelableEvent(onFocus)),\n };\n\n if (disableBrowserAutocorrect) {\n attributes.autoCorrect = 'off';\n attributes.autoCapitalize = 'off';\n }\n\n if (disableBrowserSpellcheck) {\n attributes.spellCheck = 'false';\n }\n\n const componentAnalyticsMetadata: GeneratedAnalyticsMetadataTextareaComponent = {\n name: 'awsui.Textarea',\n label: 'textarea',\n properties: {\n value: value || '',\n },\n };\n\n return (\n <span\n {...baseProps}\n className={clsx(styles.root, baseProps.className)}\n ref={__internalRootRef}\n {...getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata })}\n >\n <textarea ref={textareaRef} id={controlId} {...attributes} />\n </span>\n );\n }\n);\n\napplyDisplayName(Textarea, 'Textarea');\nexport default Textarea;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/textarea/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;;AACb,OAAO,KAAK,EAAE,EAAO,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,oBAAoB,MAAM,0CAA0C,CAAC;AAI5E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAC/B,CACE,EAqBgB,EAChB,GAA2B,EAC3B,EAAE;QAvBF,EACE,KAAK,EACL,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,QAAQ,EACR,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,EACT,wBAAwB,OAEV,EADX,IAAI,cApBT,sRAqBC,CADQ;IAIT,MAAM,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,UAAU,EAAE;QACzD,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,QAAQ,EAAE,UAAU,EAAE;KAC9G,CAAC,CAAC;IACH,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAEnG,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,WAAW,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IACtD,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAElC,MAAM,UAAU,GAAsD;QACpE,YAAY,EAAE,SAAS;QACvB,iBAAiB,EAAE,cAAc;QACjC,kBAAkB,EAAE,eAAe;QACnC,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAClD,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC5C,IAAI;QACJ,WAAW;QACX,SAAS;QACT,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC/B,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,QAAQ;YACvC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO;YACrC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,OAAO;SAClD,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC;QAC/C,UAAU,EAAE,UAAU;QACtB,QAAQ;QACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACrC,IAAI,EAAE,IAAI,IAAI,CAAC;QACf,SAAS,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChE,yFAAyF;QACzF,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,QAAQ,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChG,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KAC5D,CAAC;IAEF,IAAI,yBAAyB,EAAE;QAC7B,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC;QAC/B,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC;KACnC;IAED,IAAI,wBAAwB,EAAE;QAC5B,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC;KACjC;IAED,MAAM,0BAA0B,GAAgD;QAC9E,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE;YACV,KAAK,EAAE,KAAK,IAAI,EAAE;SACnB;KACF,CAAC;IAEF,OAAO,CACL,8CACM,SAAS,IACb,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,EACjD,GAAG,EAAE,iBAAiB,IAClB,6BAA6B,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC;QAE5E,oBAAC,oBAAoB,oBACf,UAAU,IACd,GAAG,EAAC,UAAU,EACd,aAAa,EAAC,UAAU,EACxB,gBAAgB,EAAE,wBAAwB,EAC1C,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,SAAS,IACb,CACG,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACvC,eAAe,QAAQ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React, { Ref, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { convertAutoComplete } from '../input/utils';\nimport { getBaseProps } from '../internal/base-component';\nimport { useFormFieldContext } from '../internal/context/form-field-context';\nimport { fireKeyboardEvent, fireNonCancelableEvent } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport WithNativeAttributes from '../internal/utils/with-native-attributes';\nimport { GeneratedAnalyticsMetadataTextareaComponent } from './analytics-metadata/interfaces';\nimport { TextareaProps } from './interfaces';\n\nimport styles from './styles.css.js';\n\nexport { TextareaProps };\n\nconst Textarea = React.forwardRef(\n (\n {\n value,\n autoComplete = true,\n disabled,\n readOnly,\n disableBrowserAutocorrect,\n disableBrowserSpellcheck,\n spellcheck,\n onKeyDown,\n onKeyUp,\n onChange,\n onBlur,\n onFocus,\n ariaRequired,\n name,\n rows,\n placeholder,\n autoFocus,\n ariaLabel,\n nativeTextareaAttributes,\n ...rest\n }: TextareaProps,\n ref: Ref<TextareaProps.Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('Textarea', {\n props: { autoComplete, autoFocus, disableBrowserAutocorrect, disableBrowserSpellcheck, readOnly, spellcheck },\n });\n const { ariaLabelledby, ariaDescribedby, controlId, invalid, warning } = useFormFieldContext(rest);\n\n const baseProps = getBaseProps(rest);\n\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n useForwardFocus(ref, textareaRef);\n\n const attributes: React.TextareaHTMLAttributes<HTMLTextAreaElement> = {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-required': ariaRequired ? 'true' : undefined,\n 'aria-invalid': invalid ? 'true' : undefined,\n name,\n placeholder,\n autoFocus,\n className: clsx(styles.textarea, {\n [styles['textarea-readonly']]: readOnly,\n [styles['textarea-invalid']]: invalid,\n [styles['textarea-warning']]: warning && !invalid,\n }),\n autoComplete: convertAutoComplete(autoComplete),\n spellCheck: spellcheck,\n disabled,\n readOnly: readOnly ? true : undefined,\n rows: rows || 3,\n onKeyDown: onKeyDown && (event => fireKeyboardEvent(onKeyDown, event)),\n onKeyUp: onKeyUp && (event => fireKeyboardEvent(onKeyUp, event)),\n // We set a default value on the component in order to force it into the controlled mode.\n value: value || '',\n onChange: onChange && (event => fireNonCancelableEvent(onChange, { value: event.target.value })),\n onBlur: onBlur && (() => fireNonCancelableEvent(onBlur)),\n onFocus: onFocus && (() => fireNonCancelableEvent(onFocus)),\n };\n\n if (disableBrowserAutocorrect) {\n attributes.autoCorrect = 'off';\n attributes.autoCapitalize = 'off';\n }\n\n if (disableBrowserSpellcheck) {\n attributes.spellCheck = 'false';\n }\n\n const componentAnalyticsMetadata: GeneratedAnalyticsMetadataTextareaComponent = {\n name: 'awsui.Textarea',\n label: 'textarea',\n properties: {\n value: value || '',\n },\n };\n\n return (\n <span\n {...baseProps}\n className={clsx(styles.root, baseProps.className)}\n ref={__internalRootRef}\n {...getAnalyticsMetadataAttribute({ component: componentAnalyticsMetadata })}\n >\n <WithNativeAttributes\n {...attributes}\n tag=\"textarea\"\n componentName=\"Textarea\"\n nativeAttributes={nativeTextareaAttributes}\n ref={textareaRef}\n id={controlId}\n />\n </span>\n );\n }\n);\n\napplyDisplayName(Textarea, 'Textarea');\nexport default Textarea;\n"]}
@@ -1,8 +1,13 @@
1
+ /// <reference types="react" />
1
2
  import { BaseInputProps, InputAutoComplete, InputAutoCorrect, InputKeyEvents, InputSpellcheck } from '../input/interfaces';
2
3
  import { BaseComponentProps } from '../internal/base-component';
3
4
  import { FormFieldValidationControlProps } from '../internal/context/form-field-context';
4
5
  import { BaseKeyDetail } from '../internal/events';
5
- export interface TextareaProps extends BaseInputProps, InputKeyEvents, InputAutoCorrect, InputAutoComplete, InputSpellcheck, BaseComponentProps, FormFieldValidationControlProps {
6
+ /**
7
+ * @awsuiSystem core
8
+ */
9
+ import { NativeAttributes } from '../internal/utils/with-native-attributes';
10
+ export interface TextareaProps extends Omit<BaseInputProps, 'nativeInputAttributes'>, InputKeyEvents, InputAutoCorrect, InputAutoComplete, InputSpellcheck, BaseComponentProps, FormFieldValidationControlProps {
6
11
  /**
7
12
  * Specifies the number of lines of text to set the height to.
8
13
  */
@@ -17,6 +22,17 @@ export interface TextareaProps extends BaseInputProps, InputKeyEvents, InputAuto
17
22
  * @deprecated Use the `spellcheck` property instead.
18
23
  */
19
24
  disableBrowserSpellcheck?: boolean;
25
+ /**
26
+ * Attributes to add to the native `textarea` element.
27
+ * Some attributes will be automatically combined with internal attribute values:
28
+ * - `className` will be appended.
29
+ * - Event handlers will be chained, unless the default is prevented.
30
+ *
31
+ * We do not support using this attribute to apply custom styling.
32
+ *
33
+ * @awsuiSystem core
34
+ */
35
+ nativeTextareaAttributes?: NativeAttributes<React.TextareaHTMLAttributes<HTMLTextAreaElement>>;
20
36
  }
21
37
  export declare namespace TextareaProps {
22
38
  type KeyDetail = BaseKeyDetail;
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/textarea/interfaces.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,aACf,SAAQ,cAAc,EACpB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,+BAA+B;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,yBAAiB,aAAa,CAAC;IAC7B,KAAY,SAAS,GAAG,aAAa,CAAC;IAEtC,UAAiB,YAAY;QAC3B;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf;IACD,UAAiB,GAAG;QAClB;;WAEG;QACH,KAAK,IAAI,IAAI,CAAC;KACf;CACF"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/textarea/interfaces.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAE5E,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,cAAc,EAAE,uBAAuB,CAAC,EACnD,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,+BAA+B;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC;CAChG;AAED,yBAAiB,aAAa,CAAC;IAC7B,KAAY,SAAS,GAAG,aAAa,CAAC;IAEtC,UAAiB,YAAY;QAC3B;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;KACf;IACD,UAAiB,GAAG;QAClB;;WAEG;QACH,KAAK,IAAI,IAAI,CAAC;KACf;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/textarea/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport {\n BaseInputProps,\n InputAutoComplete,\n InputAutoCorrect,\n InputKeyEvents,\n InputSpellcheck,\n} from '../input/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { FormFieldValidationControlProps } from '../internal/context/form-field-context';\nimport { BaseKeyDetail } from '../internal/events';\n\nexport interface TextareaProps\n extends BaseInputProps,\n InputKeyEvents,\n InputAutoCorrect,\n InputAutoComplete,\n InputSpellcheck,\n BaseComponentProps,\n FormFieldValidationControlProps {\n /**\n * Specifies the number of lines of text to set the height to.\n */\n rows?: number;\n\n /**\n * Specifies whether to disable browser spellcheck feature.\n * If you set this to `true`, it disables native browser capability\n * that checks for spelling/grammar errors.\n * If you don't set it, the behavior follows the default behavior\n * of the user's browser.\n *\n * @deprecated Use the `spellcheck` property instead.\n */\n disableBrowserSpellcheck?: boolean;\n}\n\nexport namespace TextareaProps {\n export type KeyDetail = BaseKeyDetail;\n\n export interface ChangeDetail {\n /**\n * The new value of this textarea.\n */\n value: string;\n }\n export interface Ref {\n /**\n * Sets input focus on the textarea control.\n */\n focus(): void;\n }\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/textarea/interfaces.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport {\n BaseInputProps,\n InputAutoComplete,\n InputAutoCorrect,\n InputKeyEvents,\n InputSpellcheck,\n} from '../input/interfaces';\nimport { BaseComponentProps } from '../internal/base-component';\nimport { FormFieldValidationControlProps } from '../internal/context/form-field-context';\nimport { BaseKeyDetail } from '../internal/events';\n/**\n * @awsuiSystem core\n */\nimport { NativeAttributes } from '../internal/utils/with-native-attributes';\n\nexport interface TextareaProps\n extends Omit<BaseInputProps, 'nativeInputAttributes'>,\n InputKeyEvents,\n InputAutoCorrect,\n InputAutoComplete,\n InputSpellcheck,\n BaseComponentProps,\n FormFieldValidationControlProps {\n /**\n * Specifies the number of lines of text to set the height to.\n */\n rows?: number;\n\n /**\n * Specifies whether to disable browser spellcheck feature.\n * If you set this to `true`, it disables native browser capability\n * that checks for spelling/grammar errors.\n * If you don't set it, the behavior follows the default behavior\n * of the user's browser.\n *\n * @deprecated Use the `spellcheck` property instead.\n */\n disableBrowserSpellcheck?: boolean;\n\n /**\n * Attributes to add to the native `textarea` element.\n * Some attributes will be automatically combined with internal attribute values:\n * - `className` will be appended.\n * - Event handlers will be chained, unless the default is prevented.\n *\n * We do not support using this attribute to apply custom styling.\n *\n * @awsuiSystem core\n */\n nativeTextareaAttributes?: NativeAttributes<React.TextareaHTMLAttributes<HTMLTextAreaElement>>;\n}\n\nexport namespace TextareaProps {\n export type KeyDetail = BaseKeyDetail;\n\n export interface ChangeDetail {\n /**\n * The new value of this textarea.\n */\n value: string;\n }\n export interface Ref {\n /**\n * Sets input focus on the textarea control.\n */\n focus(): void;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/toggle-button/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMjD,eAAO,MAAM,oBAAoB;;+CAwDhC,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/toggle-button/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAKjD,eAAO,MAAM,oBAAoB;;+CAkDhC,CAAC"}
@@ -9,7 +9,6 @@ import { fireNonCancelableEvent } from '../internal/events';
9
9
  import { isDevelopment } from '../internal/is-development';
10
10
  import { getToggleIcon } from './util';
11
11
  import styles from './styles.css.js';
12
- import testStyles from './test-classes/styles.css.js';
13
12
  export const InternalToggleButton = React.forwardRef((_a, ref) => {
14
13
  var { pressed, iconName: defaultIconName, pressedIconName, iconSvg: defaultIconSvg, pressedIconSvg, iconUrl: defaultIconUrl, pressedIconUrl, variant, onChange, className } = _a, rest = __rest(_a, ["pressed", "iconName", "pressedIconName", "iconSvg", "pressedIconSvg", "iconUrl", "pressedIconUrl", "variant", "onChange", "className"]);
15
14
  if (isDevelopment) {
@@ -23,9 +22,9 @@ export const InternalToggleButton = React.forwardRef((_a, ref) => {
23
22
  warnOnce('ToggleButton', '`pressedIconUrl` must be provided for `pressed` state.');
24
23
  }
25
24
  }
26
- return (React.createElement(InternalButton, Object.assign({ className: clsx(className, testStyles.root, styles[`variant-${variant}`], pressed && [styles.pressed, testStyles.pressed]), variant: variant, formAction: "none", iconName: getToggleIcon(pressed, defaultIconName, pressedIconName), iconUrl: getToggleIcon(pressed, defaultIconUrl, pressedIconUrl), iconSvg: getToggleIcon(pressed, defaultIconSvg, pressedIconSvg), "aria-pressed": pressed, onClick: event => {
25
+ return (React.createElement(InternalButton, Object.assign({ className: clsx(className, styles[`variant-${variant}`], { [styles.pressed]: pressed }), variant: variant, formAction: "none", iconName: getToggleIcon(pressed, defaultIconName, pressedIconName), iconUrl: getToggleIcon(pressed, defaultIconUrl, pressedIconUrl), iconSvg: getToggleIcon(pressed, defaultIconSvg, pressedIconSvg), "aria-pressed": pressed, onClick: event => {
27
26
  event.preventDefault();
28
27
  fireNonCancelableEvent(onChange, { pressed: !pressed });
29
- } }, rest, { ref: ref, __hideFromTestUtils: true })));
28
+ } }, rest, { ref: ref })));
30
29
  });
31
30
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/toggle-button/internal.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAClD,CACE,EAY2C,EAC3C,GAAqC,EACrC,EAAE;QAdF,EACE,OAAO,EACP,QAAQ,EAAE,eAAe,EACzB,eAAe,EACf,OAAO,EAAE,cAAc,EACvB,cAAc,EACd,OAAO,EAAE,cAAc,EACvB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,OAEgC,EADtC,IAAI,cAXT,wIAYC,CADQ;IAIT,IAAI,aAAa,EAAE;QACjB,IAAI,eAAe,IAAI,CAAC,eAAe,EAAE;YACvC,QAAQ,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;SACrF;QAED,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE;YACrC,QAAQ,CAAC,cAAc,EAAE,wDAAwD,CAAC,CAAC;SACpF;QAED,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE;YACrC,QAAQ,CAAC,cAAc,EAAE,wDAAwD,CAAC,CAAC;SACpF;KACF;IAED,OAAO,CACL,oBAAC,cAAc,kBACb,SAAS,EAAE,IAAI,CACb,SAAS,EACT,UAAU,CAAC,IAAI,EACf,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAChD,EACD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAC,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,EAClE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,EAC/D,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,kBACjD,OAAO,EACrB,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,sBAAsB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC,IACG,IAAI,IACR,GAAG,EAAE,GAAG,EACR,mBAAmB,EAAE,IAAI,IACzB,CACH,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 from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalButton from '../button/internal';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { isDevelopment } from '../internal/is-development';\nimport { ToggleButtonProps } from './interfaces';\nimport { getToggleIcon } from './util';\n\nimport styles from './styles.css.js';\nimport testStyles from './test-classes/styles.css.js';\n\nexport const InternalToggleButton = React.forwardRef(\n (\n {\n pressed,\n iconName: defaultIconName,\n pressedIconName,\n iconSvg: defaultIconSvg,\n pressedIconSvg,\n iconUrl: defaultIconUrl,\n pressedIconUrl,\n variant,\n onChange,\n className,\n ...rest\n }: ToggleButtonProps & { __title?: string },\n ref: React.Ref<ToggleButtonProps.Ref>\n ) => {\n if (isDevelopment) {\n if (defaultIconName && !pressedIconName) {\n warnOnce('ToggleButton', '`pressedIconName` must be provided for `pressed` state.');\n }\n\n if (defaultIconSvg && !pressedIconSvg) {\n warnOnce('ToggleButton', '`pressedIconSvg` must be provided for `pressed` state.');\n }\n\n if (defaultIconUrl && !pressedIconUrl) {\n warnOnce('ToggleButton', '`pressedIconUrl` must be provided for `pressed` state.');\n }\n }\n\n return (\n <InternalButton\n className={clsx(\n className,\n testStyles.root,\n styles[`variant-${variant}`],\n pressed && [styles.pressed, testStyles.pressed]\n )}\n variant={variant}\n formAction=\"none\"\n iconName={getToggleIcon(pressed, defaultIconName, pressedIconName)}\n iconUrl={getToggleIcon(pressed, defaultIconUrl, pressedIconUrl)}\n iconSvg={getToggleIcon(pressed, defaultIconSvg, pressedIconSvg)}\n aria-pressed={pressed}\n onClick={event => {\n event.preventDefault();\n\n fireNonCancelableEvent(onChange, { pressed: !pressed });\n }}\n {...rest}\n ref={ref}\n __hideFromTestUtils={true}\n />\n );\n }\n);\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/toggle-button/internal.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAEzE,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAClD,CACE,EAY2C,EAC3C,GAAqC,EACrC,EAAE;QAdF,EACE,OAAO,EACP,QAAQ,EAAE,eAAe,EACzB,eAAe,EACf,OAAO,EAAE,cAAc,EACvB,cAAc,EACd,OAAO,EAAE,cAAc,EACvB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,OAEgC,EADtC,IAAI,cAXT,wIAYC,CADQ;IAIT,IAAI,aAAa,EAAE;QACjB,IAAI,eAAe,IAAI,CAAC,eAAe,EAAE;YACvC,QAAQ,CAAC,cAAc,EAAE,yDAAyD,CAAC,CAAC;SACrF;QAED,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE;YACrC,QAAQ,CAAC,cAAc,EAAE,wDAAwD,CAAC,CAAC;SACpF;QAED,IAAI,cAAc,IAAI,CAAC,cAAc,EAAE;YACrC,QAAQ,CAAC,cAAc,EAAE,wDAAwD,CAAC,CAAC;SACpF;KACF;IAED,OAAO,CACL,oBAAC,cAAc,kBACb,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,EACvF,OAAO,EAAE,OAAO,EAChB,UAAU,EAAC,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,eAAe,CAAC,EAClE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,EAC/D,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,kBACjD,OAAO,EACrB,OAAO,EAAE,KAAK,CAAC,EAAE;YACf,KAAK,CAAC,cAAc,EAAE,CAAC;YAEvB,sBAAsB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC,IACG,IAAI,IACR,GAAG,EAAE,GAAG,IACR,CACH,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 from 'react';\nimport clsx from 'clsx';\n\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalButton from '../button/internal';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { isDevelopment } from '../internal/is-development';\nimport { ToggleButtonProps } from './interfaces';\nimport { getToggleIcon } from './util';\n\nimport styles from './styles.css.js';\n\nexport const InternalToggleButton = React.forwardRef(\n (\n {\n pressed,\n iconName: defaultIconName,\n pressedIconName,\n iconSvg: defaultIconSvg,\n pressedIconSvg,\n iconUrl: defaultIconUrl,\n pressedIconUrl,\n variant,\n onChange,\n className,\n ...rest\n }: ToggleButtonProps & { __title?: string },\n ref: React.Ref<ToggleButtonProps.Ref>\n ) => {\n if (isDevelopment) {\n if (defaultIconName && !pressedIconName) {\n warnOnce('ToggleButton', '`pressedIconName` must be provided for `pressed` state.');\n }\n\n if (defaultIconSvg && !pressedIconSvg) {\n warnOnce('ToggleButton', '`pressedIconSvg` must be provided for `pressed` state.');\n }\n\n if (defaultIconUrl && !pressedIconUrl) {\n warnOnce('ToggleButton', '`pressedIconUrl` must be provided for `pressed` state.');\n }\n }\n\n return (\n <InternalButton\n className={clsx(className, styles[`variant-${variant}`], { [styles.pressed]: pressed })}\n variant={variant}\n formAction=\"none\"\n iconName={getToggleIcon(pressed, defaultIconName, pressedIconName)}\n iconUrl={getToggleIcon(pressed, defaultIconUrl, pressedIconUrl)}\n iconSvg={getToggleIcon(pressed, defaultIconSvg, pressedIconSvg)}\n aria-pressed={pressed}\n onClick={event => {\n event.preventDefault();\n\n fireNonCancelableEvent(onChange, { pressed: !pressed });\n }}\n {...rest}\n ref={ref}\n />\n );\n }\n);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"wizard-form.d.ts","sourceRoot":"","sources":["../../../src/wizard/wizard-form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAmBnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,UAAU,eAAgB,SAAQ,0BAA0B;IAC1D,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,kBAAkB,QAAwD,CAAC;AAExF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,EAAE,eAAe,eAwBrE"}
1
+ {"version":3,"file":"wizard-form.d.ts","sourceRoot":"","sources":["../../../src/wizard/wizard-form.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8C,MAAM,OAAO,CAAC;AAmBnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAM3C,UAAU,eAAgB,SAAQ,0BAA0B;IAC1D,KAAK,EAAE,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,kBAAkB,QAAwD,CAAC;AAExF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAK,EAAE,eAAe,eAsBrE"}
@@ -22,9 +22,7 @@ export default function WizardFormWithAnalytics(props) {
22
22
  const stepHeaderRef = useRef(null);
23
23
  useEffectOnUpdate(() => {
24
24
  var _a;
25
- if (stepHeaderRef && stepHeaderRef.current) {
26
- (_a = stepHeaderRef.current) === null || _a === void 0 ? void 0 : _a.focus();
27
- }
25
+ (_a = stepHeaderRef.current) === null || _a === void 0 ? void 0 : _a.focus();
28
26
  }, [props.activeStepIndex]);
29
27
  return (React.createElement(AnalyticsFunnelStep, { stepIdentifier: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.instanceIdentifier, stepErrorContext: analyticsMetadata === null || analyticsMetadata === void 0 ? void 0 : analyticsMetadata.errorContext, stepNameSelector: STEP_NAME_SELECTOR, stepNumber: props.activeStepIndex + 1 },
30
28
  React.createElement(WizardForm, Object.assign({ stepHeaderRef: stepHeaderRef, __internalRootRef: __internalRootRef }, props))));
@@ -1 +1 @@
1
- {"version":3,"file":"wizard-form.js","sourceRoot":"","sources":["../../../src/wizard/wizard-form.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAoB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAGhH,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAkC,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,sBAAsB,CAAC;AAEpD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAiBrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,oBAAoB,KAAK,oBAAoB,IAAI,CAAC;AAExF,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,KAAsB;IACpE,MAAM,iBAAiB,GAAG,yBAAyB,CACjD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAmC,CACrE,CAAC;IAEF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,EAAE,eAAe,EAAE,iBAAsC,CAAC,CAAC;IACtH,MAAM,aAAa,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE1D,iBAAiB,CAAC,GAAG,EAAE;;QACrB,IAAI,aAAa,IAAI,aAAa,CAAC,OAAO,EAAE;YAC1C,MAAA,aAAa,CAAC,OAAO,0CAAE,KAAK,EAAE,CAAC;SAChC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAE5B,OAAO,CACL,oBAAC,mBAAmB,IAClB,cAAc,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,kBAAkB,EACrD,gBAAgB,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,EACjD,gBAAgB,EAAE,kBAAkB,EACpC,UAAU,EAAE,KAAK,CAAC,eAAe,GAAG,CAAC;QAErC,oBAAC,UAAU,kBAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,IAAM,KAAK,EAAI,CACzE,CACvB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAClB,iBAAiB,EACjB,aAAa,EACb,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,cAAc,EACd,aAAa,GACgE;;IAC7E,MAAM,OAAO,GAAG,MAAM,EAAe,CAAC;IACtC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAClG,MAAM,UAAU,GAAG,eAAe,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAExE,MAAM,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;IAE9D,MAAM,cAAc,GAAG,gBAAgB,EAAE,CAAC;IAE1C,MAAM,WAAW,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAEjD,MAAM,UAAU,GAAG,WAAW,IAAI,iBAAiB,KAAK,CAAC,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GACpB,iBAAiB,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,iBAAiB;QACvD,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC;QAChF,CAAC,CAAC,SAAS,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,mBAAmB,IAAI,SAAS,EAAE;YACpC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAE9E,aAAa,CAAC,eAAe,CAAC;gBAC5B,mBAAmB;gBACnB,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,UAAU;gBAC7C,gBAAgB,EAAE,cAAc,CAAC,OAAO,CAAC,gBAAgB;gBACzD,QAAQ;gBACR,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,cAAc;gBACrD,eAAe,EAAE,MAAA,OAAO,CAAC,OAAO,0CAAE,aAAa;gBAC/C,aAAa,EAAE,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO;gBAC1D,gBAAgB;gBAChB,kBAAkB,EAAE,qBAAqB,EAAE;gBAC3C,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,gBAAgB;gBACrD,oBAAoB,EAAE,MAAA,cAAc,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,0CAAE,GAAG,CAC5E,cAAc,CAAC,OAAO,CAAC,UAAU,CAClC;gBACD,iBAAiB,EAAE,GAAG,GAAG,WAAW;aACrC,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnH,OAAO,CACL;QACE,oBAAC,gBAAgB;YACf,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC,IACrG,MAAA,WAAW,CAAC,mBAAmB,4DAAG,eAAe,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CACjE;YACN,oBAAC,cAAc,IACb,SAAS,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAC1C,OAAO,EAAC,IAAI,EACZ,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,aAAa,EAC9B,oBAAoB,EAAE,CAAC,CAAC;gBAExB,8BAAM,SAAS,EAAE,MAAM,CAAC,+BAA+B,CAAC;oBACtD,8CAAU,EAAE,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAAQ;oBACzE,UAAU,IAAI,+BAAI,MAAM,WAAW,CAAC,QAAQ,EAAE,CAAK,CAC/C,CACQ,CACA;QAEnB,oBAAC,YAAY,kBACX,iBAAiB,EAAE,GAAG,EACtB,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,EACnC,OAAO,EACL,oBAAC,aAAa,IACZ,gBAAgB,EAAE,WAAW,CAAC,YAAY,EAC1C,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EACvG,wBAAwB,EACtB,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC,CAAC,WAAW,CAAC,6BAA6B,EAEtG,kBAAkB,EAAE,WAAW,CAAC,cAAc,EAC9C,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,EACrD,YAAY,EAAE,eAAe,KAAK,CAAC,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,iBAAiB,GAClC,EAEJ,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,WAAW,EAC1B,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,IAC9C,cAAc,CAAC,OAAO,CAAC,eAAe,GAEzC,OAAO,CACK,CACd,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAsC,EAAE,eAAuB;IAC5F,IAAI,qBAAqB,GAAG,eAAe,CAAC;IAC5C,GAAG;QACD,qBAAqB,EAAE,CAAC;KACzB,QAAQ,qBAAqB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,UAAU,EAAE;IAE9F,OAAO,qBAAqB,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { MutableRefObject, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useComponentMetadata, useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { AnalyticsMetadata } from '@cloudscape-design/component-toolkit/internal/base-component/metrics/interfaces';\n\nimport InternalForm from '../form/internal';\nimport InternalHeader from '../header/internal';\nimport { FunnelMetrics } from '../internal/analytics';\nimport { AnalyticsFunnelStep } from '../internal/analytics/components/analytics-funnel';\nimport { useFunnel, useFunnelStepRef } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FUNNEL_KEY,\n FUNNEL_KEY_STEP_NAME,\n getSubStepAllSelector,\n getTextFromSelector,\n} from '../internal/analytics/selectors';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { PACKAGE_VERSION } from '../internal/environment';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useEffectOnUpdate } from '../internal/hooks/use-effect-on-update';\nimport { WizardProps } from './interfaces';\nimport WizardActions from './wizard-actions';\nimport WizardFormHeader from './wizard-form-header';\n\nimport styles from './styles.css.js';\n\ninterface WizardFormProps extends InternalBaseComponentProps {\n steps: ReadonlyArray<WizardProps.Step>;\n activeStepIndex: number;\n showCollapsedSteps: boolean;\n i18nStrings: WizardProps.I18nStrings;\n submitButtonText?: string;\n isPrimaryLoading: boolean;\n allowSkipTo: boolean;\n secondaryActions?: React.ReactNode;\n onCancelClick: () => void;\n onPreviousClick: () => void;\n onPrimaryClick: () => void;\n onSkipToClick: (stepIndex: number) => void;\n}\n\nexport const STEP_NAME_SELECTOR = `[${DATA_ATTR_FUNNEL_KEY}=\"${FUNNEL_KEY_STEP_NAME}\"]`;\n\nexport default function WizardFormWithAnalytics(props: WizardFormProps) {\n const analyticsMetadata = getAnalyticsMetadataProps(\n props.steps[props.activeStepIndex] as BasePropsWithAnalyticsMetadata\n );\n\n const __internalRootRef = useComponentMetadata('WizardForm', PACKAGE_VERSION, analyticsMetadata as AnalyticsMetadata);\n const stepHeaderRef = useRef<HTMLDivElement | null>(null);\n\n useEffectOnUpdate(() => {\n if (stepHeaderRef && stepHeaderRef.current) {\n stepHeaderRef.current?.focus();\n }\n }, [props.activeStepIndex]);\n\n return (\n <AnalyticsFunnelStep\n stepIdentifier={analyticsMetadata?.instanceIdentifier}\n stepErrorContext={analyticsMetadata?.errorContext}\n stepNameSelector={STEP_NAME_SELECTOR}\n stepNumber={props.activeStepIndex + 1}\n >\n <WizardForm stepHeaderRef={stepHeaderRef} __internalRootRef={__internalRootRef} {...props} />\n </AnalyticsFunnelStep>\n );\n}\n\nfunction WizardForm({\n __internalRootRef,\n stepHeaderRef,\n steps,\n activeStepIndex,\n showCollapsedSteps,\n i18nStrings,\n submitButtonText,\n isPrimaryLoading,\n allowSkipTo,\n secondaryActions,\n onCancelClick,\n onPreviousClick,\n onPrimaryClick,\n onSkipToClick,\n}: WizardFormProps & { stepHeaderRef: MutableRefObject<HTMLDivElement | null> }) {\n const rootRef = useRef<HTMLElement>();\n const ref = useMergeRefs(rootRef, __internalRootRef);\n const { title, info, description, content, errorText, isOptional } = steps[activeStepIndex] || {};\n const isLastStep = activeStepIndex >= steps.length - 1;\n const skipToTargetIndex = findSkipToTargetIndex(steps, activeStepIndex);\n\n const { funnelInteractionId, funnelIdentifier } = useFunnel();\n\n const funnelStepInfo = useFunnelStepRef();\n\n const errorSlotId = useUniqueId('wizard-error-');\n\n const showSkipTo = allowSkipTo && skipToTargetIndex !== -1;\n const skipToButtonText =\n skipToTargetIndex !== -1 && i18nStrings.skipToButtonLabel\n ? i18nStrings.skipToButtonLabel(steps[skipToTargetIndex], skipToTargetIndex + 1)\n : undefined;\n\n useEffect(() => {\n if (funnelInteractionId && errorText) {\n const stepName = getTextFromSelector(funnelStepInfo.current.stepNameSelector);\n\n FunnelMetrics.funnelStepError({\n funnelInteractionId,\n stepNumber: funnelStepInfo.current.stepNumber,\n stepNameSelector: funnelStepInfo.current.stepNameSelector,\n stepName,\n stepIdentifier: funnelStepInfo.current.stepIdentifier,\n currentDocument: rootRef.current?.ownerDocument,\n totalSubSteps: funnelStepInfo.current.subStepCount.current,\n funnelIdentifier,\n subStepAllSelector: getSubStepAllSelector(),\n errorContext: funnelStepInfo.current.stepErrorContext,\n subStepConfiguration: funnelStepInfo.current.subStepConfiguration.current?.get(\n funnelStepInfo.current.stepNumber\n ),\n stepErrorSelector: '#' + errorSlotId,\n });\n }\n }, [funnelInteractionId, funnelIdentifier, isLastStep, errorText, __internalRootRef, errorSlotId, funnelStepInfo]);\n\n return (\n <>\n <WizardFormHeader>\n <div className={clsx(styles['collapsed-steps'], !showCollapsedSteps && styles['collapsed-steps-hidden'])}>\n {i18nStrings.collapsedStepsLabel?.(activeStepIndex + 1, steps.length)}\n </div>\n <InternalHeader\n className={styles['form-header-component']}\n variant=\"h1\"\n description={description}\n info={info}\n __headingTagRef={stepHeaderRef}\n __headingTagTabIndex={-1}\n >\n <span className={styles['form-header-component-wrapper']}>\n <span {...{ [DATA_ATTR_FUNNEL_KEY]: FUNNEL_KEY_STEP_NAME }}>{title}</span>\n {isOptional && <i>{` - ${i18nStrings.optional}`}</i>}\n </span>\n </InternalHeader>\n </WizardFormHeader>\n\n <InternalForm\n __internalRootRef={ref}\n className={styles['form-component']}\n actions={\n <WizardActions\n cancelButtonText={i18nStrings.cancelButton}\n primaryButtonText={isLastStep ? (submitButtonText ?? i18nStrings.submitButton) : i18nStrings.nextButton}\n primaryButtonLoadingText={\n isLastStep ? i18nStrings.submitButtonLoadingAnnouncement : i18nStrings.nextButtonLoadingAnnouncement\n }\n previousButtonText={i18nStrings.previousButton}\n onCancelClick={onCancelClick}\n onPreviousClick={onPreviousClick}\n onPrimaryClick={onPrimaryClick}\n onSkipToClick={() => onSkipToClick(skipToTargetIndex)}\n showPrevious={activeStepIndex !== 0}\n isPrimaryLoading={isPrimaryLoading}\n showSkipTo={showSkipTo}\n skipToButtonText={skipToButtonText}\n isLastStep={isLastStep}\n activeStepIndex={activeStepIndex}\n skipToStepIndex={skipToTargetIndex}\n />\n }\n secondaryActions={secondaryActions}\n errorText={errorText}\n __errorSlotId={errorSlotId}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n {...funnelStepInfo.current.funnelStepProps}\n >\n {content}\n </InternalForm>\n </>\n );\n}\n\nfunction findSkipToTargetIndex(steps: ReadonlyArray<WizardProps.Step>, activeStepIndex: number): number {\n let nextRequiredStepIndex = activeStepIndex;\n do {\n nextRequiredStepIndex++;\n } while (nextRequiredStepIndex < steps.length - 1 && steps[nextRequiredStepIndex].isOptional);\n\n return nextRequiredStepIndex > activeStepIndex + 1 ? nextRequiredStepIndex : -1;\n}\n"]}
1
+ {"version":3,"file":"wizard-form.js","sourceRoot":"","sources":["../../../src/wizard/wizard-form.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport React, { MutableRefObject, useEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useComponentMetadata, useMergeRefs, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { AnalyticsMetadata } from '@cloudscape-design/component-toolkit/internal/base-component/metrics/interfaces';\n\nimport InternalForm from '../form/internal';\nimport InternalHeader from '../header/internal';\nimport { FunnelMetrics } from '../internal/analytics';\nimport { AnalyticsFunnelStep } from '../internal/analytics/components/analytics-funnel';\nimport { useFunnel, useFunnelStepRef } from '../internal/analytics/hooks/use-funnel';\nimport {\n DATA_ATTR_FUNNEL_KEY,\n FUNNEL_KEY_STEP_NAME,\n getSubStepAllSelector,\n getTextFromSelector,\n} from '../internal/analytics/selectors';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { PACKAGE_VERSION } from '../internal/environment';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useEffectOnUpdate } from '../internal/hooks/use-effect-on-update';\nimport { WizardProps } from './interfaces';\nimport WizardActions from './wizard-actions';\nimport WizardFormHeader from './wizard-form-header';\n\nimport styles from './styles.css.js';\n\ninterface WizardFormProps extends InternalBaseComponentProps {\n steps: ReadonlyArray<WizardProps.Step>;\n activeStepIndex: number;\n showCollapsedSteps: boolean;\n i18nStrings: WizardProps.I18nStrings;\n submitButtonText?: string;\n isPrimaryLoading: boolean;\n allowSkipTo: boolean;\n secondaryActions?: React.ReactNode;\n onCancelClick: () => void;\n onPreviousClick: () => void;\n onPrimaryClick: () => void;\n onSkipToClick: (stepIndex: number) => void;\n}\n\nexport const STEP_NAME_SELECTOR = `[${DATA_ATTR_FUNNEL_KEY}=\"${FUNNEL_KEY_STEP_NAME}\"]`;\n\nexport default function WizardFormWithAnalytics(props: WizardFormProps) {\n const analyticsMetadata = getAnalyticsMetadataProps(\n props.steps[props.activeStepIndex] as BasePropsWithAnalyticsMetadata\n );\n\n const __internalRootRef = useComponentMetadata('WizardForm', PACKAGE_VERSION, analyticsMetadata as AnalyticsMetadata);\n const stepHeaderRef = useRef<HTMLDivElement | null>(null);\n\n useEffectOnUpdate(() => {\n stepHeaderRef.current?.focus();\n }, [props.activeStepIndex]);\n\n return (\n <AnalyticsFunnelStep\n stepIdentifier={analyticsMetadata?.instanceIdentifier}\n stepErrorContext={analyticsMetadata?.errorContext}\n stepNameSelector={STEP_NAME_SELECTOR}\n stepNumber={props.activeStepIndex + 1}\n >\n <WizardForm stepHeaderRef={stepHeaderRef} __internalRootRef={__internalRootRef} {...props} />\n </AnalyticsFunnelStep>\n );\n}\n\nfunction WizardForm({\n __internalRootRef,\n stepHeaderRef,\n steps,\n activeStepIndex,\n showCollapsedSteps,\n i18nStrings,\n submitButtonText,\n isPrimaryLoading,\n allowSkipTo,\n secondaryActions,\n onCancelClick,\n onPreviousClick,\n onPrimaryClick,\n onSkipToClick,\n}: WizardFormProps & { stepHeaderRef: MutableRefObject<HTMLDivElement | null> }) {\n const rootRef = useRef<HTMLElement>();\n const ref = useMergeRefs(rootRef, __internalRootRef);\n const { title, info, description, content, errorText, isOptional } = steps[activeStepIndex] || {};\n const isLastStep = activeStepIndex >= steps.length - 1;\n const skipToTargetIndex = findSkipToTargetIndex(steps, activeStepIndex);\n\n const { funnelInteractionId, funnelIdentifier } = useFunnel();\n\n const funnelStepInfo = useFunnelStepRef();\n\n const errorSlotId = useUniqueId('wizard-error-');\n\n const showSkipTo = allowSkipTo && skipToTargetIndex !== -1;\n const skipToButtonText =\n skipToTargetIndex !== -1 && i18nStrings.skipToButtonLabel\n ? i18nStrings.skipToButtonLabel(steps[skipToTargetIndex], skipToTargetIndex + 1)\n : undefined;\n\n useEffect(() => {\n if (funnelInteractionId && errorText) {\n const stepName = getTextFromSelector(funnelStepInfo.current.stepNameSelector);\n\n FunnelMetrics.funnelStepError({\n funnelInteractionId,\n stepNumber: funnelStepInfo.current.stepNumber,\n stepNameSelector: funnelStepInfo.current.stepNameSelector,\n stepName,\n stepIdentifier: funnelStepInfo.current.stepIdentifier,\n currentDocument: rootRef.current?.ownerDocument,\n totalSubSteps: funnelStepInfo.current.subStepCount.current,\n funnelIdentifier,\n subStepAllSelector: getSubStepAllSelector(),\n errorContext: funnelStepInfo.current.stepErrorContext,\n subStepConfiguration: funnelStepInfo.current.subStepConfiguration.current?.get(\n funnelStepInfo.current.stepNumber\n ),\n stepErrorSelector: '#' + errorSlotId,\n });\n }\n }, [funnelInteractionId, funnelIdentifier, isLastStep, errorText, __internalRootRef, errorSlotId, funnelStepInfo]);\n\n return (\n <>\n <WizardFormHeader>\n <div className={clsx(styles['collapsed-steps'], !showCollapsedSteps && styles['collapsed-steps-hidden'])}>\n {i18nStrings.collapsedStepsLabel?.(activeStepIndex + 1, steps.length)}\n </div>\n <InternalHeader\n className={styles['form-header-component']}\n variant=\"h1\"\n description={description}\n info={info}\n __headingTagRef={stepHeaderRef}\n __headingTagTabIndex={-1}\n >\n <span className={styles['form-header-component-wrapper']}>\n <span {...{ [DATA_ATTR_FUNNEL_KEY]: FUNNEL_KEY_STEP_NAME }}>{title}</span>\n {isOptional && <i>{` - ${i18nStrings.optional}`}</i>}\n </span>\n </InternalHeader>\n </WizardFormHeader>\n\n <InternalForm\n __internalRootRef={ref}\n className={styles['form-component']}\n actions={\n <WizardActions\n cancelButtonText={i18nStrings.cancelButton}\n primaryButtonText={isLastStep ? (submitButtonText ?? i18nStrings.submitButton) : i18nStrings.nextButton}\n primaryButtonLoadingText={\n isLastStep ? i18nStrings.submitButtonLoadingAnnouncement : i18nStrings.nextButtonLoadingAnnouncement\n }\n previousButtonText={i18nStrings.previousButton}\n onCancelClick={onCancelClick}\n onPreviousClick={onPreviousClick}\n onPrimaryClick={onPrimaryClick}\n onSkipToClick={() => onSkipToClick(skipToTargetIndex)}\n showPrevious={activeStepIndex !== 0}\n isPrimaryLoading={isPrimaryLoading}\n showSkipTo={showSkipTo}\n skipToButtonText={skipToButtonText}\n isLastStep={isLastStep}\n activeStepIndex={activeStepIndex}\n skipToStepIndex={skipToTargetIndex}\n />\n }\n secondaryActions={secondaryActions}\n errorText={errorText}\n __errorSlotId={errorSlotId}\n errorIconAriaLabel={i18nStrings.errorIconAriaLabel}\n {...funnelStepInfo.current.funnelStepProps}\n >\n {content}\n </InternalForm>\n </>\n );\n}\n\nfunction findSkipToTargetIndex(steps: ReadonlyArray<WizardProps.Step>, activeStepIndex: number): number {\n let nextRequiredStepIndex = activeStepIndex;\n do {\n nextRequiredStepIndex++;\n } while (nextRequiredStepIndex < steps.length - 1 && steps[nextRequiredStepIndex].isOptional);\n\n return nextRequiredStepIndex > activeStepIndex + 1 ? nextRequiredStepIndex : -1;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudscape-design/components-themeable",
3
- "version": "3.0.1094",
3
+ "version": "3.0.1096",
4
4
  "files": [
5
5
  "lib"
6
6
  ],
@@ -1,9 +0,0 @@
1
- /*
2
- Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- SPDX-License-Identifier: Apache-2.0
4
- */
5
-
6
- .root,
7
- .pressed {
8
- /* Test classes for toggle button component */
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-effect-on-update.d.ts","sourceRoot":"","sources":["../../../../src/internal/hooks/use-effect-on-update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAqB,MAAM,OAAO,CAAC;AAG1E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,QAY/E"}
@@ -1,18 +0,0 @@
1
- // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- // SPDX-License-Identifier: Apache-2.0
3
- import { useEffect, useRef } from 'react';
4
- // useEffect, which skips the initial render
5
- export function useEffectOnUpdate(callback, deps) {
6
- const isFirstRender = useRef(true);
7
- useEffect(() => {
8
- if (isFirstRender.current) {
9
- isFirstRender.current = false;
10
- }
11
- else {
12
- return callback();
13
- }
14
- // This is a useEffect extension, will be validated at the call site
15
- // eslint-disable-next-line react-hooks/exhaustive-deps
16
- }, deps);
17
- }
18
- //# sourceMappingURL=use-effect-on-update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-effect-on-update.js","sourceRoot":"","sources":["../../../../src/internal/hooks/use-effect-on-update.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAkC,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1E,4CAA4C;AAC5C,MAAM,UAAU,iBAAiB,CAAC,QAAwB,EAAE,IAAoB;IAC9E,MAAM,aAAa,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IAE5C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAC;SAC/B;aAAM;YACL,OAAO,QAAQ,EAAE,CAAC;SACnB;QACD,oEAAoE;QACpE,uDAAuD;IACzD,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DependencyList, EffectCallback, useEffect, useRef } from 'react';\n\n// useEffect, which skips the initial render\nexport function useEffectOnUpdate(callback: EffectCallback, deps: DependencyList) {\n const isFirstRender = useRef<boolean>(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n } else {\n return callback();\n }\n // This is a useEffect extension, will be validated at the call site\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n}\n"]}
@@ -1,7 +0,0 @@
1
-
2
- import './styles.scoped.css';
3
- export default {
4
- "root": "awsui_root_1qd09_nztsi_5",
5
- "pressed": "awsui_pressed_1qd09_nztsi_6"
6
- };
7
-
@@ -1,8 +0,0 @@
1
- /*
2
- Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- SPDX-License-Identifier: Apache-2.0
4
- */
5
- .awsui_root_1qd09_nztsi_5:not(#\9),
6
- .awsui_pressed_1qd09_nztsi_6:not(#\9) {
7
- /* Test classes for toggle button component */
8
- }
@@ -1,8 +0,0 @@
1
-
2
- // es-module interop with Babel and Typescript
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- module.exports.default = {
5
- "root": "awsui_root_1qd09_nztsi_5",
6
- "pressed": "awsui_pressed_1qd09_nztsi_6"
7
- };
8
-