@cloudscape-design/components-themeable 3.0.1382 → 3.0.1384

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 (221) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/container/styles.scss +5 -4
  3. package/lib/internal/scss/input/styles.scss +4 -0
  4. package/lib/internal/scss/internal/components/button-trigger/styles.scss +4 -0
  5. package/lib/internal/scss/internal/components/control-group/styles.scss +53 -0
  6. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +176 -175
  7. package/lib/internal/scss/internal/styles/forms/mixins.scss +58 -17
  8. package/lib/internal/scss/modal/styles.scss +6 -0
  9. package/lib/internal/scss/prompt-input/styles.scss +4 -0
  10. package/lib/internal/scss/segmented-control/segment.scss +5 -0
  11. package/lib/internal/scss/segmented-control/styles.scss +29 -4
  12. package/lib/internal/scss/side-navigation/styles.scss +13 -6
  13. package/lib/internal/scss/steps/styles.scss +1 -1
  14. package/lib/internal/template/alert/styles.css.js +27 -27
  15. package/lib/internal/template/alert/styles.scoped.css +50 -50
  16. package/lib/internal/template/alert/styles.selectors.js +27 -27
  17. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  18. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
  19. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  20. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  21. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  22. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  23. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  24. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +258 -258
  25. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  26. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  27. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +89 -89
  28. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  29. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -6
  30. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +13 -13
  31. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -6
  32. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -30
  33. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +68 -68
  34. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -30
  35. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  36. package/lib/internal/template/attribute-editor/styles.scoped.css +28 -28
  37. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  38. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  39. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +28 -28
  40. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  41. package/lib/internal/template/button/styles.css.js +23 -23
  42. package/lib/internal/template/button/styles.scoped.css +261 -261
  43. package/lib/internal/template/button/styles.selectors.js +23 -23
  44. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  45. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  46. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  47. package/lib/internal/template/cards/styles.css.js +39 -39
  48. package/lib/internal/template/cards/styles.scoped.css +41 -41
  49. package/lib/internal/template/cards/styles.selectors.js +39 -39
  50. package/lib/internal/template/checkbox/styles.css.js +3 -3
  51. package/lib/internal/template/checkbox/styles.scoped.css +10 -10
  52. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  53. package/lib/internal/template/container/style.d.ts +1 -15
  54. package/lib/internal/template/container/style.d.ts.map +1 -1
  55. package/lib/internal/template/container/style.js +6 -2
  56. package/lib/internal/template/container/style.js.map +1 -1
  57. package/lib/internal/template/container/styles.css.js +34 -34
  58. package/lib/internal/template/container/styles.scoped.css +87 -87
  59. package/lib/internal/template/container/styles.selectors.js +34 -34
  60. package/lib/internal/template/content-layout/styles.css.js +14 -14
  61. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  62. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  63. package/lib/internal/template/dropdown/styles.css.js +20 -20
  64. package/lib/internal/template/dropdown/styles.scoped.css +49 -49
  65. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  66. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  67. package/lib/internal/template/expandable-section/expandable-section-header.js +1 -1
  68. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  69. package/lib/internal/template/expandable-section/interfaces.d.ts +4 -4
  70. package/lib/internal/template/expandable-section/interfaces.js.map +1 -1
  71. package/lib/internal/template/file-token-group/styles.css.js +23 -23
  72. package/lib/internal/template/file-token-group/styles.scoped.css +36 -36
  73. package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
  74. package/lib/internal/template/flashbar/styles.css.js +50 -50
  75. package/lib/internal/template/flashbar/styles.scoped.css +184 -184
  76. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  77. package/lib/internal/template/help-panel/styles.css.js +6 -6
  78. package/lib/internal/template/help-panel/styles.scoped.css +72 -72
  79. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  80. package/lib/internal/template/input/internal.d.ts.map +1 -1
  81. package/lib/internal/template/input/internal.js +10 -4
  82. package/lib/internal/template/input/internal.js.map +1 -1
  83. package/lib/internal/template/input/styles.css.js +36 -29
  84. package/lib/internal/template/input/styles.scoped.css +168 -137
  85. package/lib/internal/template/input/styles.selectors.js +36 -29
  86. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  87. package/lib/internal/template/internal/components/autosuggest-input/index.d.ts.map +1 -1
  88. package/lib/internal/template/internal/components/autosuggest-input/index.js +4 -1
  89. package/lib/internal/template/internal/components/autosuggest-input/index.js.map +1 -1
  90. package/lib/internal/template/internal/components/button-trigger/index.d.ts +2 -0
  91. package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
  92. package/lib/internal/template/internal/components/button-trigger/index.js +3 -2
  93. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  94. package/lib/internal/template/internal/components/button-trigger/styles.css.js +21 -14
  95. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +63 -33
  96. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +21 -14
  97. package/lib/internal/template/internal/components/control-group/grouped-control-styles.d.ts +10 -0
  98. package/lib/internal/template/internal/components/control-group/grouped-control-styles.d.ts.map +1 -0
  99. package/lib/internal/template/internal/components/control-group/grouped-control-styles.js +14 -0
  100. package/lib/internal/template/internal/components/control-group/grouped-control-styles.js.map +1 -0
  101. package/lib/internal/template/internal/components/control-group/index.d.ts +9 -0
  102. package/lib/internal/template/internal/components/control-group/index.d.ts.map +1 -0
  103. package/lib/internal/template/internal/components/control-group/index.js +20 -0
  104. package/lib/internal/template/internal/components/control-group/index.js.map +1 -0
  105. package/lib/internal/template/internal/components/control-group/styles.css.js +13 -0
  106. package/lib/internal/template/internal/components/control-group/styles.scoped.css +63 -0
  107. package/lib/internal/template/internal/components/control-group/styles.selectors.js +14 -0
  108. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  109. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  110. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  111. package/lib/internal/template/internal/components/focus-lock/index.d.ts +6 -0
  112. package/lib/internal/template/internal/components/focus-lock/index.d.ts.map +1 -1
  113. package/lib/internal/template/internal/components/focus-lock/index.js +8 -3
  114. package/lib/internal/template/internal/components/focus-lock/index.js.map +1 -1
  115. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  116. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  117. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  118. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  119. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +17 -17
  120. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  121. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  122. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
  123. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  124. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  125. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  126. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  127. package/lib/internal/template/internal/context/control-group-context.d.ts +30 -0
  128. package/lib/internal/template/internal/context/control-group-context.d.ts.map +1 -0
  129. package/lib/internal/template/internal/context/control-group-context.js +24 -0
  130. package/lib/internal/template/internal/context/control-group-context.js.map +1 -0
  131. package/lib/internal/template/internal/environment.js +2 -2
  132. package/lib/internal/template/internal/environment.json +2 -2
  133. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  134. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  135. package/lib/internal/template/internal/generated/custom-css-properties/index.js +175 -174
  136. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  137. package/lib/internal/template/item-card/styles.css.js +14 -14
  138. package/lib/internal/template/item-card/styles.scoped.css +63 -63
  139. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  140. package/lib/internal/template/link/styles.css.js +21 -21
  141. package/lib/internal/template/link/styles.scoped.css +104 -104
  142. package/lib/internal/template/link/styles.selectors.js +21 -21
  143. package/lib/internal/template/modal/index.d.ts +1 -1
  144. package/lib/internal/template/modal/index.d.ts.map +1 -1
  145. package/lib/internal/template/modal/index.js +6 -5
  146. package/lib/internal/template/modal/index.js.map +1 -1
  147. package/lib/internal/template/modal/interfaces.d.ts +7 -0
  148. package/lib/internal/template/modal/interfaces.d.ts.map +1 -1
  149. package/lib/internal/template/modal/interfaces.js.map +1 -1
  150. package/lib/internal/template/modal/internal.js +23 -6
  151. package/lib/internal/template/modal/internal.js.map +1 -1
  152. package/lib/internal/template/modal/styles.css.js +32 -31
  153. package/lib/internal/template/modal/styles.scoped.css +51 -48
  154. package/lib/internal/template/modal/styles.selectors.js +32 -31
  155. package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
  156. package/lib/internal/template/multiselect/internal.js +17 -10
  157. package/lib/internal/template/multiselect/internal.js.map +1 -1
  158. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  159. package/lib/internal/template/progress-bar/styles.scoped.css +58 -58
  160. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  161. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  162. package/lib/internal/template/prompt-input/styles.scoped.css +109 -109
  163. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  164. package/lib/internal/template/segmented-control/internal-segmented-control.d.ts +6 -1
  165. package/lib/internal/template/segmented-control/internal-segmented-control.d.ts.map +1 -1
  166. package/lib/internal/template/segmented-control/internal-segmented-control.js +8 -3
  167. package/lib/internal/template/segmented-control/internal-segmented-control.js.map +1 -1
  168. package/lib/internal/template/segmented-control/internal.d.ts.map +1 -1
  169. package/lib/internal/template/segmented-control/internal.js +5 -2
  170. package/lib/internal/template/segmented-control/internal.js.map +1 -1
  171. package/lib/internal/template/segmented-control/segment.d.ts +1 -0
  172. package/lib/internal/template/segmented-control/segment.d.ts.map +1 -1
  173. package/lib/internal/template/segmented-control/segment.js +2 -2
  174. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  175. package/lib/internal/template/segmented-control/styles.css.js +26 -16
  176. package/lib/internal/template/segmented-control/styles.scoped.css +106 -46
  177. package/lib/internal/template/segmented-control/styles.selectors.js +26 -16
  178. package/lib/internal/template/select/internal.d.ts.map +1 -1
  179. package/lib/internal/template/select/internal.js +11 -8
  180. package/lib/internal/template/select/internal.js.map +1 -1
  181. package/lib/internal/template/select/parts/styles.css.js +21 -21
  182. package/lib/internal/template/select/parts/styles.scoped.css +24 -24
  183. package/lib/internal/template/select/parts/styles.selectors.js +21 -21
  184. package/lib/internal/template/select/parts/trigger.d.ts +2 -0
  185. package/lib/internal/template/select/parts/trigger.d.ts.map +1 -1
  186. package/lib/internal/template/select/parts/trigger.js +2 -2
  187. package/lib/internal/template/select/parts/trigger.js.map +1 -1
  188. package/lib/internal/template/side-navigation/styles.css.js +64 -64
  189. package/lib/internal/template/side-navigation/styles.scoped.css +119 -114
  190. package/lib/internal/template/side-navigation/styles.selectors.js +64 -64
  191. package/lib/internal/template/slider/styles.css.js +26 -26
  192. package/lib/internal/template/slider/styles.scoped.css +165 -165
  193. package/lib/internal/template/slider/styles.selectors.js +26 -26
  194. package/lib/internal/template/spinner/styles.css.js +14 -14
  195. package/lib/internal/template/spinner/styles.scoped.css +40 -40
  196. package/lib/internal/template/spinner/styles.selectors.js +14 -14
  197. package/lib/internal/template/steps/styles.css.js +17 -17
  198. package/lib/internal/template/steps/styles.scoped.css +35 -35
  199. package/lib/internal/template/steps/styles.selectors.js +17 -17
  200. package/lib/internal/template/table/styles.css.js +37 -37
  201. package/lib/internal/template/table/styles.scoped.css +46 -46
  202. package/lib/internal/template/table/styles.selectors.js +37 -37
  203. package/lib/internal/template/tabs/styles.css.js +30 -30
  204. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  205. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  206. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  207. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  208. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  209. package/lib/internal/template/text-content/styles.css.js +1 -1
  210. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  211. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  212. package/lib/internal/template/textarea/styles.css.js +9 -9
  213. package/lib/internal/template/textarea/styles.scoped.css +51 -55
  214. package/lib/internal/template/textarea/styles.selectors.js +9 -9
  215. package/lib/internal/template/toggle/styles.css.js +10 -10
  216. package/lib/internal/template/toggle/styles.scoped.css +22 -22
  217. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  218. package/lib/internal/template/token/styles.css.js +14 -14
  219. package/lib/internal/template/token/styles.scoped.css +46 -46
  220. package/lib/internal/template/token/styles.selectors.js +14 -14
  221. package/package.json +1 -1
@@ -4,12 +4,15 @@ import React from 'react';
4
4
  import clsx from 'clsx';
5
5
  import InternalFormField from '../form-field/internal';
6
6
  import { getBaseProps } from '../internal/base-component';
7
+ import { getGroupedControlClassNames } from '../internal/components/control-group/grouped-control-styles';
8
+ import { useGroupedControlContext } from '../internal/context/control-group-context';
7
9
  import { fireNonCancelableEvent } from '../internal/events';
8
10
  import InternalSelect from '../select/internal';
9
11
  import InternalSegmentedControlComponent from './internal-segmented-control';
10
12
  import styles from './styles.css.js';
11
13
  export default function InternalSegmentedControl({ selectedId, options, label, ariaLabelledby, onChange, __internalRootRef, style, ...props }) {
12
14
  const baseProps = getBaseProps(props);
15
+ const groupedControlProps = useGroupedControlContext();
13
16
  const selectOptions = (options || []).map(option => {
14
17
  const label = option.text || option.iconAlt;
15
18
  return { ...option, label, value: option.id };
@@ -25,8 +28,8 @@ export default function InternalSegmentedControl({ selectedId, options, label, a
25
28
  onChange: event => fireNonCancelableEvent(onChange, { selectedId: event.detail.selectedOption.value }),
26
29
  };
27
30
  return (React.createElement("div", { ...baseProps, className: clsx(baseProps.className, styles.root), ref: __internalRootRef },
28
- React.createElement(InternalSegmentedControlComponent, { selectedId: selectedId, options: options, label: label, ariaLabelledby: ariaLabelledby, onChange: onChange, style: style }),
29
- React.createElement("div", { className: styles.select },
31
+ React.createElement(InternalSegmentedControlComponent, { selectedId: selectedId, options: options, label: label, ariaLabelledby: ariaLabelledby, onChange: onChange, style: style, groupedControlProps: groupedControlProps }),
32
+ React.createElement("div", { className: clsx(styles.select, ...getGroupedControlClassNames(styles, groupedControlProps)) },
30
33
  ariaLabelledby && React.createElement(InternalSelect, { ...selectProps, ariaLabelledby: ariaLabelledby }),
31
34
  !ariaLabelledby && label && (React.createElement(InternalFormField, { label: label, stretch: true },
32
35
  React.createElement(InternalSelect, { ...selectProps }))),
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/segmented-control/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,cAAuC,MAAM,oBAAoB,CAAC;AAEzE,OAAO,iCAAiC,MAAM,8BAA8B,CAAC;AAE7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,UAAU,EACV,OAAO,EACP,KAAK,EACL,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACsB;IAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACpD,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,WAAW,GAAwB;QACvC,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,qBAAqB;QACrC,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,KAAM,EAAE,CAAC;KACxG,CAAC;IAEF,OAAO,CACL,gCAAS,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB;QAC3F,oBAAC,iCAAiC,IAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,GACZ;QACF,6BAAK,SAAS,EAAE,MAAM,CAAC,MAAM;YAC1B,cAAc,IAAI,oBAAC,cAAc,OAAK,WAAW,EAAE,cAAc,EAAE,cAAc,GAAI;YACrF,CAAC,cAAc,IAAI,KAAK,IAAI,CAC3B,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI;gBAC5C,oBAAC,cAAc,OAAK,WAAW,GAAI,CACjB,CACrB;YACA,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,oBAAC,cAAc,OAAK,WAAW,GAAI,CAC7D,CACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalFormField from '../form-field/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport InternalSelect, { InternalSelectProps } from '../select/internal';\nimport { SegmentedControlProps } from './interfaces';\nimport InternalSegmentedControlComponent from './internal-segmented-control';\n\nimport styles from './styles.css.js';\n\ntype InternalSegmentedControlProps = SegmentedControlProps & InternalBaseComponentProps;\n\nexport default function InternalSegmentedControl({\n selectedId,\n options,\n label,\n ariaLabelledby,\n onChange,\n __internalRootRef,\n style,\n ...props\n}: InternalSegmentedControlProps) {\n const baseProps = getBaseProps(props);\n\n const selectOptions = (options || []).map(option => {\n const label = option.text || option.iconAlt;\n return { ...option, label, value: option.id };\n });\n\n const selectedOptions = selectOptions.filter(option => {\n return option.value === selectedId;\n });\n const currentSelectedOption = selectedOptions.length ? selectedOptions[0] : null;\n\n const selectProps: InternalSelectProps = {\n options: selectOptions,\n selectedOption: currentSelectedOption,\n triggerVariant: 'option',\n onChange: event => fireNonCancelableEvent(onChange, { selectedId: event.detail.selectedOption.value! }),\n };\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <InternalSegmentedControlComponent\n selectedId={selectedId}\n options={options}\n label={label}\n ariaLabelledby={ariaLabelledby}\n onChange={onChange}\n style={style}\n />\n <div className={styles.select}>\n {ariaLabelledby && <InternalSelect {...selectProps} ariaLabelledby={ariaLabelledby} />}\n {!ariaLabelledby && label && (\n <InternalFormField label={label} stretch={true}>\n <InternalSelect {...selectProps} />\n </InternalFormField>\n )}\n {!ariaLabelledby && !label && <InternalSelect {...selectProps} />}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/segmented-control/internal.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,6DAA6D,CAAC;AAC1G,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,cAAuC,MAAM,oBAAoB,CAAC;AAEzE,OAAO,iCAAiC,MAAM,8BAA8B,CAAC;AAE7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,UAAU,EACV,OAAO,EACP,KAAK,EACL,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACsB;IAC9B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,mBAAmB,GAAG,wBAAwB,EAAE,CAAC;IAEvD,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC;QAC5C,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACpD,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;IACrC,CAAC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,MAAM,WAAW,GAAwB;QACvC,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,qBAAqB;QACrC,cAAc,EAAE,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,KAAM,EAAE,CAAC;KACxG,CAAC;IAEF,OAAO,CACL,gCAAS,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iBAAiB;QAC3F,oBAAC,iCAAiC,IAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,mBAAmB,EAAE,mBAAmB,GACxC;QACF,6BAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,2BAA2B,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YAC7F,cAAc,IAAI,oBAAC,cAAc,OAAK,WAAW,EAAE,cAAc,EAAE,cAAc,GAAI;YACrF,CAAC,cAAc,IAAI,KAAK,IAAI,CAC3B,oBAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI;gBAC5C,oBAAC,cAAc,OAAK,WAAW,GAAI,CACjB,CACrB;YACA,CAAC,cAAc,IAAI,CAAC,KAAK,IAAI,oBAAC,cAAc,OAAK,WAAW,GAAI,CAC7D,CACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalFormField from '../form-field/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { getGroupedControlClassNames } from '../internal/components/control-group/grouped-control-styles';\nimport { useGroupedControlContext } from '../internal/context/control-group-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport InternalSelect, { InternalSelectProps } from '../select/internal';\nimport { SegmentedControlProps } from './interfaces';\nimport InternalSegmentedControlComponent from './internal-segmented-control';\n\nimport styles from './styles.css.js';\n\ntype InternalSegmentedControlProps = SegmentedControlProps & InternalBaseComponentProps;\n\nexport default function InternalSegmentedControl({\n selectedId,\n options,\n label,\n ariaLabelledby,\n onChange,\n __internalRootRef,\n style,\n ...props\n}: InternalSegmentedControlProps) {\n const baseProps = getBaseProps(props);\n const groupedControlProps = useGroupedControlContext();\n\n const selectOptions = (options || []).map(option => {\n const label = option.text || option.iconAlt;\n return { ...option, label, value: option.id };\n });\n\n const selectedOptions = selectOptions.filter(option => {\n return option.value === selectedId;\n });\n const currentSelectedOption = selectedOptions.length ? selectedOptions[0] : null;\n\n const selectProps: InternalSelectProps = {\n options: selectOptions,\n selectedOption: currentSelectedOption,\n triggerVariant: 'option',\n onChange: event => fireNonCancelableEvent(onChange, { selectedId: event.detail.selectedOption.value! }),\n };\n\n return (\n <div {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <InternalSegmentedControlComponent\n selectedId={selectedId}\n options={options}\n label={label}\n ariaLabelledby={ariaLabelledby}\n onChange={onChange}\n style={style}\n groupedControlProps={groupedControlProps}\n />\n <div className={clsx(styles.select, ...getGroupedControlClassNames(styles, groupedControlProps))}>\n {ariaLabelledby && <InternalSelect {...selectProps} ariaLabelledby={ariaLabelledby} />}\n {!ariaLabelledby && label && (\n <InternalFormField label={label} stretch={true}>\n <InternalSelect {...selectProps} />\n </InternalFormField>\n )}\n {!ariaLabelledby && !label && <InternalSelect {...selectProps} />}\n </div>\n </div>\n );\n}\n"]}
@@ -6,6 +6,7 @@ interface SegmentProps extends SegmentedControlProps.Option {
6
6
  isActive: boolean;
7
7
  tabIndex: number;
8
8
  style: SegmentedControlProps['style'];
9
+ fullWidth?: boolean;
9
10
  }
10
11
  export declare const Segment: React.ForwardRefExoticComponent<SegmentProps & React.RefAttributes<HTMLButtonElement>>;
11
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAKrD,UAAU,YAAa,SAAQ,qBAAqB,CAAC,MAAM;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,OAAO,wFAiFnB,CAAC"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAShD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAKrD,UAAU,YAAa,SAAQ,qBAAqB,CAAC,MAAM;IACzD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC9D,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,OAAO,wFAmFnB,CAAC"}
@@ -9,13 +9,13 @@ import { useVisualRefresh } from '../internal/hooks/use-visual-mode';
9
9
  import Tooltip from '../tooltip/internal.js';
10
10
  import { getSegmentedControlSegmentStyles } from './style';
11
11
  import styles from './styles.css.js';
12
- export const Segment = React.forwardRef(({ disabled, disabledReason, text, iconName, iconAlt, iconUrl, iconSvg, isActive, onClick, onKeyDown, tabIndex, id, style, }, ref) => {
12
+ export const Segment = React.forwardRef(({ disabled, disabledReason, text, iconName, iconAlt, iconUrl, iconSvg, isActive, onClick, onKeyDown, tabIndex, id, style, fullWidth, }, ref) => {
13
13
  const buttonRef = useRef(null);
14
14
  const [showTooltip, setShowTooltip] = useState(false);
15
15
  const isDisabledWithReason = disabled && !!disabledReason;
16
16
  const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);
17
17
  const isVisualRefresh = useVisualRefresh();
18
- return (React.createElement("button", { className: clsx(styles.segment, { [styles.disabled]: !!disabled }, { [styles.selected]: isActive }, { [styles.refresh]: isVisualRefresh }), ref: useMergeRefs(ref, buttonRef), onClick: onClick, onKeyDown: onKeyDown, disabled: disabled && !disabledReason, "aria-disabled": isDisabledWithReason ? 'true' : undefined, type: "button", tabIndex: tabIndex, "aria-pressed": isActive ? 'true' : 'false', "aria-label": !text ? iconAlt : undefined, onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined, onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined, ...(isDisabledWithReason ? targetProps : {}), "data-testid": id, "data-awsui-motion-trigger": "hover", "data-awsui-motion-target": "", style: getSegmentedControlSegmentStyles(style) },
18
+ return (React.createElement("button", { className: clsx(styles.segment, { [styles.disabled]: !!disabled }, { [styles.selected]: isActive }, { [styles.refresh]: isVisualRefresh }, { [styles['full-width']]: fullWidth }), ref: useMergeRefs(ref, buttonRef), onClick: onClick, onKeyDown: onKeyDown, disabled: disabled && !disabledReason, "aria-disabled": isDisabledWithReason ? 'true' : undefined, type: "button", tabIndex: tabIndex, "aria-pressed": isActive ? 'true' : 'false', "aria-label": !text ? iconAlt : undefined, onFocus: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onBlur: isDisabledWithReason ? () => setShowTooltip(false) : undefined, onMouseEnter: isDisabledWithReason ? () => setShowTooltip(true) : undefined, onMouseLeave: isDisabledWithReason ? () => setShowTooltip(false) : undefined, ...(isDisabledWithReason ? targetProps : {}), "data-testid": id, "data-awsui-motion-trigger": "hover", "data-awsui-motion-target": "", style: getSegmentedControlSegmentStyles(style) },
19
19
  (iconName || iconUrl || iconSvg) && (React.createElement(InternalIcon, { className: clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text']), name: iconName, url: iconUrl, svg: iconSvg, alt: iconAlt, variant: disabled ? 'disabled' : 'normal' })),
20
20
  React.createElement("span", null, text),
21
21
  isDisabledWithReason && (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalIcon from '../icon/internal';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport Tooltip from '../tooltip/internal.js';\nimport { SegmentedControlProps } from './interfaces';\nimport { getSegmentedControlSegmentStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface SegmentProps extends SegmentedControlProps.Option {\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n isActive: boolean;\n tabIndex: number;\n style: SegmentedControlProps['style'];\n}\n\nexport const Segment = React.forwardRef(\n (\n {\n disabled,\n disabledReason,\n text,\n iconName,\n iconAlt,\n iconUrl,\n iconSvg,\n isActive,\n onClick,\n onKeyDown,\n tabIndex,\n id,\n style,\n }: SegmentProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const buttonRef = useRef<HTMLElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n const isDisabledWithReason = disabled && !!disabledReason;\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <button\n className={clsx(\n styles.segment,\n { [styles.disabled]: !!disabled },\n { [styles.selected]: isActive },\n { [styles.refresh]: isVisualRefresh }\n )}\n ref={useMergeRefs(ref, buttonRef)}\n onClick={onClick}\n onKeyDown={onKeyDown}\n disabled={disabled && !disabledReason}\n aria-disabled={isDisabledWithReason ? 'true' : undefined}\n type=\"button\"\n tabIndex={tabIndex}\n aria-pressed={isActive ? 'true' : 'false'}\n aria-label={!text ? iconAlt : undefined}\n onFocus={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onBlur={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n onMouseEnter={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onMouseLeave={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n {...(isDisabledWithReason ? targetProps : {})}\n data-testid={id}\n data-awsui-motion-trigger=\"hover\"\n data-awsui-motion-target=\"\"\n style={getSegmentedControlSegmentStyles(style)}\n >\n {(iconName || iconUrl || iconSvg) && (\n <InternalIcon\n className={clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text'])}\n name={iconName}\n url={iconUrl}\n svg={iconSvg}\n alt={iconAlt}\n variant={disabled ? 'disabled' : 'normal'}\n />\n )}\n <span>{text}</span>\n\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip\n className={styles['disabled-reason-tooltip']}\n getTrack={() => buttonRef.current}\n content={disabledReason!}\n onEscape={() => setShowTooltip(false)}\n />\n )}\n </>\n )}\n </button>\n );\n }\n);\n"]}
1
+ {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/segmented-control/segment.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs } from '@cloudscape-design/component-toolkit/internal';\n\nimport InternalIcon from '../icon/internal';\nimport useHiddenDescription from '../internal/hooks/use-hidden-description';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport Tooltip from '../tooltip/internal.js';\nimport { SegmentedControlProps } from './interfaces';\nimport { getSegmentedControlSegmentStyles } from './style';\n\nimport styles from './styles.css.js';\n\ninterface SegmentProps extends SegmentedControlProps.Option {\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLButtonElement>) => void;\n isActive: boolean;\n tabIndex: number;\n style: SegmentedControlProps['style'];\n fullWidth?: boolean;\n}\n\nexport const Segment = React.forwardRef(\n (\n {\n disabled,\n disabledReason,\n text,\n iconName,\n iconAlt,\n iconUrl,\n iconSvg,\n isActive,\n onClick,\n onKeyDown,\n tabIndex,\n id,\n style,\n fullWidth,\n }: SegmentProps,\n ref: React.Ref<HTMLButtonElement>\n ) => {\n const buttonRef = useRef<HTMLElement>(null);\n const [showTooltip, setShowTooltip] = useState(false);\n const isDisabledWithReason = disabled && !!disabledReason;\n\n const { targetProps, descriptionEl } = useHiddenDescription(disabledReason);\n const isVisualRefresh = useVisualRefresh();\n\n return (\n <button\n className={clsx(\n styles.segment,\n { [styles.disabled]: !!disabled },\n { [styles.selected]: isActive },\n { [styles.refresh]: isVisualRefresh },\n { [styles['full-width']]: fullWidth }\n )}\n ref={useMergeRefs(ref, buttonRef)}\n onClick={onClick}\n onKeyDown={onKeyDown}\n disabled={disabled && !disabledReason}\n aria-disabled={isDisabledWithReason ? 'true' : undefined}\n type=\"button\"\n tabIndex={tabIndex}\n aria-pressed={isActive ? 'true' : 'false'}\n aria-label={!text ? iconAlt : undefined}\n onFocus={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onBlur={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n onMouseEnter={isDisabledWithReason ? () => setShowTooltip(true) : undefined}\n onMouseLeave={isDisabledWithReason ? () => setShowTooltip(false) : undefined}\n {...(isDisabledWithReason ? targetProps : {})}\n data-testid={id}\n data-awsui-motion-trigger=\"hover\"\n data-awsui-motion-target=\"\"\n style={getSegmentedControlSegmentStyles(style)}\n >\n {(iconName || iconUrl || iconSvg) && (\n <InternalIcon\n className={clsx(styles.icon, text ? styles['with-text'] : styles['with-no-text'])}\n name={iconName}\n url={iconUrl}\n svg={iconSvg}\n alt={iconAlt}\n variant={disabled ? 'disabled' : 'normal'}\n />\n )}\n <span>{text}</span>\n\n {isDisabledWithReason && (\n <>\n {descriptionEl}\n {showTooltip && (\n <Tooltip\n className={styles['disabled-reason-tooltip']}\n getTrack={() => buttonRef.current}\n content={disabledReason!}\n onEscape={() => setShowTooltip(false)}\n />\n )}\n </>\n )}\n </button>\n );\n }\n);\n"]}
@@ -1,21 +1,31 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "segment": "awsui_segment_8cbea_17mt7_17",
5
- "refresh": "awsui_refresh_8cbea_17mt7_44",
6
- "disabled": "awsui_disabled_8cbea_17mt7_50",
7
- "selected": "awsui_selected_8cbea_17mt7_107",
8
- "icon": "awsui_icon_8cbea_17mt7_117",
9
- "with-text": "awsui_with-text_8cbea_17mt7_121",
10
- "with-no-text": "awsui_with-no-text_8cbea_17mt7_127",
11
- "root": "awsui_root_8cbea_17mt7_132",
12
- "segment-part": "awsui_segment-part_8cbea_17mt7_164",
13
- "select": "awsui_select_8cbea_17mt7_107",
14
- "segment-count-2": "awsui_segment-count-2_8cbea_17mt7_199",
15
- "segment-count-3": "awsui_segment-count-3_8cbea_17mt7_203",
16
- "segment-count-4": "awsui_segment-count-4_8cbea_17mt7_207",
17
- "segment-count-5": "awsui_segment-count-5_8cbea_17mt7_211",
18
- "segment-count-6": "awsui_segment-count-6_8cbea_17mt7_215",
19
- "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_17mt7_219"
4
+ "segment": "awsui_segment_8cbea_19w97_17",
5
+ "full-width": "awsui_full-width_8cbea_19w97_44",
6
+ "refresh": "awsui_refresh_8cbea_19w97_47",
7
+ "disabled": "awsui_disabled_8cbea_19w97_53",
8
+ "selected": "awsui_selected_8cbea_19w97_110",
9
+ "icon": "awsui_icon_8cbea_19w97_120",
10
+ "with-text": "awsui_with-text_8cbea_19w97_124",
11
+ "with-no-text": "awsui_with-no-text_8cbea_19w97_130",
12
+ "root": "awsui_root_8cbea_19w97_135",
13
+ "segment-part": "awsui_segment-part_8cbea_19w97_167",
14
+ "grouped": "awsui_grouped_8cbea_19w97_188",
15
+ "grouped-only": "awsui_grouped-only_8cbea_19w97_188",
16
+ "grouped-vertical": "awsui_grouped-vertical_8cbea_19w97_192",
17
+ "grouped-horizontal-first": "awsui_grouped-horizontal-first_8cbea_19w97_203",
18
+ "grouped-horizontal-middle": "awsui_grouped-horizontal-middle_8cbea_19w97_207",
19
+ "grouped-horizontal-last": "awsui_grouped-horizontal-last_8cbea_19w97_213",
20
+ "grouped-vertical-first": "awsui_grouped-vertical-first_8cbea_19w97_217",
21
+ "grouped-vertical-middle": "awsui_grouped-vertical-middle_8cbea_19w97_221",
22
+ "grouped-vertical-last": "awsui_grouped-vertical-last_8cbea_19w97_227",
23
+ "select": "awsui_select_8cbea_19w97_110",
24
+ "segment-count-2": "awsui_segment-count-2_8cbea_19w97_244",
25
+ "segment-count-3": "awsui_segment-count-3_8cbea_19w97_251",
26
+ "segment-count-4": "awsui_segment-count-4_8cbea_19w97_258",
27
+ "segment-count-5": "awsui_segment-count-5_8cbea_19w97_265",
28
+ "segment-count-6": "awsui_segment-count-6_8cbea_19w97_272",
29
+ "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_19w97_279"
20
30
  };
21
31
 
@@ -14,7 +14,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
14
14
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
15
15
  SPDX-License-Identifier: Apache-2.0
16
16
  */
17
- .awsui_segment_8cbea_17mt7_17:not(#\9) {
17
+ .awsui_segment_8cbea_19w97_17:not(#\9) {
18
18
  font-size: var(--font-size-body-m-tq5a14, 14px);
19
19
  line-height: var(--line-height-body-m-5xw6xo, 22px);
20
20
  word-wrap: break-word;
@@ -26,8 +26,8 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
26
26
  letter-spacing: 0.25px;
27
27
  padding-block: calc(var(--space-field-vertical-77df8s, 4px) - var(--border-width-field-2365x3, 1px));
28
28
  padding-inline: calc(var(--space-button-horizontal-ojp1rq, 20px) - var(--space-static-xxs-vzto3j, 4px));
29
- background: var(--awsui-style-background-default-66120l, var(--color-background-segment-default-6rgn11, #ffffff));
30
- color: var(--awsui-style-color-default-66120l, var(--color-text-segment-default-nk7mbi, #545b64));
29
+ background: var(--awsui-style-background-default-ka4djm, var(--color-background-segment-default-6rgn11, #ffffff));
30
+ color: var(--awsui-style-color-default-ka4djm, var(--color-text-segment-default-nk7mbi, #545b64));
31
31
  overflow: visible;
32
32
  border-start-start-radius: calc(var(--border-radius-button-9k0hrl, 2px) - (var(--border-width-field-2365x3, 1px) + var(--border-width-button-lffd4t, 1px)));
33
33
  border-start-end-radius: calc(var(--border-radius-button-9k0hrl, 2px) - (var(--border-width-field-2365x3, 1px) + var(--border-width-button-lffd4t, 1px)));
@@ -39,26 +39,29 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
39
39
  align-items: center;
40
40
  border-inline: none;
41
41
  border-block: none;
42
- --awsui-style-focus-ring-box-shadow-66120l: 0 0 0 var(--awsui-style-focus-ring-border-width-66120l, 2px) var(--awsui-style-focus-ring-border-color-66120l, var(--color-border-item-focused-sewkzn, #0073bb));
42
+ --awsui-style-focus-ring-box-shadow-ka4djm: 0 0 0 var(--awsui-style-focus-ring-border-width-ka4djm, 2px) var(--awsui-style-focus-ring-border-color-ka4djm, var(--color-border-item-focused-sewkzn, #0073bb));
43
43
  }
44
- .awsui_segment_8cbea_17mt7_17:not(#\9):not(.awsui_refresh_8cbea_17mt7_44) {
44
+ .awsui_segment_8cbea_19w97_17.awsui_full-width_8cbea_19w97_44:not(#\9) {
45
+ justify-content: center;
46
+ }
47
+ .awsui_segment_8cbea_19w97_17:not(#\9):not(.awsui_refresh_8cbea_19w97_47) {
45
48
  block-size: calc(100% - var(--space-static-xxs-vzto3j, 4px) - 2 * var(--border-width-field-2365x3, 1px));
46
49
  }
47
- .awsui_segment_8cbea_17mt7_17:not(#\9):focus {
50
+ .awsui_segment_8cbea_19w97_17:not(#\9):focus {
48
51
  outline: none;
49
52
  }
50
- .awsui_segment_8cbea_17mt7_17.awsui_disabled_8cbea_17mt7_50:not(#\9) {
51
- background: var(--awsui-style-background-disabled-66120l, var(--color-background-segment-disabled-mjubn7, #ffffff));
52
- color: var(--awsui-style-color-disabled-66120l, var(--color-text-interactive-disabled-tuxgxq, #aab7b8));
53
+ .awsui_segment_8cbea_19w97_17.awsui_disabled_8cbea_19w97_53:not(#\9) {
54
+ background: var(--awsui-style-background-disabled-ka4djm, var(--color-background-segment-disabled-mjubn7, #ffffff));
55
+ color: var(--awsui-style-color-disabled-ka4djm, var(--color-text-interactive-disabled-tuxgxq, #aab7b8));
53
56
  }
54
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus {
57
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_19w97_17:not(#\9):focus {
55
58
  position: relative;
56
59
  }
57
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus {
60
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_19w97_17:not(#\9):focus {
58
61
  outline: 2px dotted transparent;
59
62
  outline-offset: calc(var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px) - 1px);
60
63
  }
61
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus::before {
64
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_19w97_17:not(#\9):focus::before {
62
65
  content: " ";
63
66
  display: block;
64
67
  position: absolute;
@@ -66,14 +69,14 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus
66
69
  inset-block-start: calc(-1 * var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px));
67
70
  inline-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px) + var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px));
68
71
  block-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px) + var(--space-segmented-control-focus-outline-gutter-sz9jgo, 3px));
69
- border-start-start-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
70
- border-start-end-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
71
- border-end-start-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
72
- border-end-end-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
73
- box-shadow: var(--awsui-style-focus-ring-box-shadow-66120l);
72
+ border-start-start-radius: var(--awsui-style-focus-ring-border-radius-ka4djm, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
73
+ border-start-end-radius: var(--awsui-style-focus-ring-border-radius-ka4djm, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
74
+ border-end-start-radius: var(--awsui-style-focus-ring-border-radius-ka4djm, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
75
+ border-end-end-radius: var(--awsui-style-focus-ring-border-radius-ka4djm, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
76
+ box-shadow: var(--awsui-style-focus-ring-box-shadow-ka4djm);
74
77
  z-index: 1;
75
78
  }
76
- .awsui_segment_8cbea_17mt7_17:not(#\9):not(:last-child)::after {
79
+ .awsui_segment_8cbea_19w97_17:not(#\9):not(:last-child)::after {
77
80
  content: "";
78
81
  position: absolute;
79
82
  inset-inline-end: calc(-1 * (var(--space-static-xxs-vzto3j, 4px) + 1px));
@@ -83,53 +86,53 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus
83
86
  background: var(--color-border-segment-divider-mq01bu, #687078);
84
87
  z-index: 1;
85
88
  }
86
- .awsui_segment_8cbea_17mt7_17:not(#\9):not(.awsui_refresh_8cbea_17mt7_44):not(:last-child)::after {
89
+ .awsui_segment_8cbea_19w97_17:not(#\9):not(.awsui_refresh_8cbea_19w97_47):not(:last-child)::after {
87
90
  inset-inline-end: calc(-1 * var(--space-static-xxs-vzto3j, 4px));
88
91
  }
89
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(1) {
92
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(1) {
90
93
  grid-column: 1;
91
94
  }
92
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(2) {
95
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(2) {
93
96
  grid-column: 2;
94
97
  }
95
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(3) {
98
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(3) {
96
99
  grid-column: 3;
97
100
  }
98
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(4) {
101
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(4) {
99
102
  grid-column: 4;
100
103
  }
101
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(5) {
104
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(5) {
102
105
  grid-column: 5;
103
106
  }
104
- .awsui_segment_8cbea_17mt7_17:not(#\9):nth-child(6) {
107
+ .awsui_segment_8cbea_19w97_17:not(#\9):nth-child(6) {
105
108
  grid-column: 6;
106
109
  }
107
- .awsui_segment_8cbea_17mt7_17.awsui_selected_8cbea_17mt7_107:not(#\9) {
108
- background: var(--awsui-style-background-active-66120l, var(--color-background-segment-active-ns5rt6, #0073bb));
109
- color: var(--awsui-style-color-active-66120l, var(--color-text-segment-active-hbbf1h, #ffffff));
110
+ .awsui_segment_8cbea_19w97_17.awsui_selected_8cbea_19w97_110:not(#\9) {
111
+ background: var(--awsui-style-background-active-ka4djm, var(--color-background-segment-active-ns5rt6, #0073bb));
112
+ color: var(--awsui-style-color-active-ka4djm, var(--color-text-segment-active-hbbf1h, #ffffff));
110
113
  }
111
- .awsui_segment_8cbea_17mt7_17:not(#\9):hover:not(.awsui_selected_8cbea_17mt7_107):not(.awsui_disabled_8cbea_17mt7_50):not(:focus) {
112
- background: var(--awsui-style-background-hover-66120l, var(--color-background-segment-hover-el4hte, #fafafa));
113
- color: var(--awsui-style-color-hover-66120l, var(--color-text-segment-hover-qq2b2e, #16191f));
114
+ .awsui_segment_8cbea_19w97_17:not(#\9):hover:not(.awsui_selected_8cbea_19w97_110):not(.awsui_disabled_8cbea_19w97_53):not(:focus) {
115
+ background: var(--awsui-style-background-hover-ka4djm, var(--color-background-segment-hover-el4hte, #fafafa));
116
+ color: var(--awsui-style-color-hover-ka4djm, var(--color-text-segment-hover-qq2b2e, #16191f));
114
117
  cursor: pointer;
115
118
  }
116
119
 
117
- .awsui_icon_8cbea_17mt7_117:not(#\9) {
120
+ .awsui_icon_8cbea_19w97_120:not(#\9) {
118
121
  /* used in test-utils */
119
122
  }
120
123
 
121
- .awsui_with-text_8cbea_17mt7_121:not(#\9) {
124
+ .awsui_with-text_8cbea_19w97_124:not(#\9) {
122
125
  position: relative;
123
126
  inset-inline-start: calc(-1 * var(--space-xxs-3o1yoq, 4px));
124
127
  margin-inline-end: var(--space-xxs-3o1yoq, 4px);
125
128
  }
126
129
 
127
- .awsui_with-no-text_8cbea_17mt7_127:not(#\9) {
130
+ .awsui_with-no-text_8cbea_19w97_130:not(#\9) {
128
131
  margin-inline: auto;
129
132
  inset-inline: 0;
130
133
  }
131
134
 
132
- .awsui_root_8cbea_17mt7_132:not(#\9) {
135
+ .awsui_root_8cbea_19w97_135:not(#\9) {
133
136
  border-collapse: separate;
134
137
  border-spacing: 0;
135
138
  box-sizing: border-box;
@@ -161,7 +164,7 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus
161
164
  -moz-osx-font-smoothing: auto;
162
165
  }
163
166
 
164
- .awsui_segment-part_8cbea_17mt7_164:not(#\9) {
167
+ .awsui_segment-part_8cbea_19w97_167:not(#\9) {
165
168
  display: inline-grid;
166
169
  border-inline: solid var(--border-width-field-2365x3, 1px) var(--color-border-segment-wrapper-ofstpm, #687078);
167
170
  border-block: solid var(--border-width-field-2365x3, 1px) var(--color-border-segment-wrapper-ofstpm, #687078);
@@ -176,46 +179,103 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_17mt7_17:not(#\9):focus
176
179
  padding-inline: calc(var(--space-static-xxs-vzto3j, 4px) - var(--border-width-field-2365x3, 1px));
177
180
  gap: calc(var(--space-static-xxs-vzto3j, 4px) * 2 + 1px);
178
181
  }
179
- .awsui_segment-part_8cbea_17mt7_164:not(#\9):not(.awsui_refresh_8cbea_17mt7_44) {
182
+ .awsui_segment-part_8cbea_19w97_167:not(#\9):not(.awsui_refresh_8cbea_19w97_47) {
180
183
  padding-inline: calc(var(--space-static-xxxs-opeihl, 2px) + var(--border-width-field-2365x3, 1px));
181
184
  padding-block: 0;
182
185
  gap: calc(var(--space-static-xxs-vzto3j, 4px) * 2 - 1px);
183
186
  }
184
187
  @media (max-width: 688px) {
185
- .awsui_segment-part_8cbea_17mt7_164:not(#\9) {
188
+ .awsui_segment-part_8cbea_19w97_167:not(#\9):not(.awsui_grouped_8cbea_19w97_188), .awsui_segment-part_8cbea_19w97_167.awsui_grouped-only_8cbea_19w97_188:not(#\9) {
186
189
  display: none;
187
190
  }
188
191
  }
192
+ .awsui_segment-part_8cbea_19w97_167.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
193
+ inline-size: 100%;
194
+ box-sizing: border-box;
195
+ }
189
196
 
190
- .awsui_select_8cbea_17mt7_107:not(#\9) {
197
+ .awsui_grouped_8cbea_19w97_188:not(#\9) {
198
+ border-start-start-radius: var(--border-radius-input-k1q34z, 2px);
199
+ border-start-end-radius: var(--border-radius-input-k1q34z, 2px);
200
+ border-end-start-radius: var(--border-radius-input-k1q34z, 2px);
201
+ border-end-end-radius: var(--border-radius-input-k1q34z, 2px);
202
+ }
203
+ .awsui_grouped-horizontal-first_8cbea_19w97_203:not(#\9) {
204
+ border-start-end-radius: 0;
205
+ border-end-end-radius: 0;
206
+ }
207
+ .awsui_grouped-horizontal-middle_8cbea_19w97_207:not(#\9) {
208
+ border-start-start-radius: 0;
209
+ border-start-end-radius: 0;
210
+ border-end-start-radius: 0;
211
+ border-end-end-radius: 0;
212
+ }
213
+ .awsui_grouped-horizontal-last_8cbea_19w97_213:not(#\9) {
214
+ border-start-start-radius: 0;
215
+ border-end-start-radius: 0;
216
+ }
217
+ .awsui_grouped-vertical-first_8cbea_19w97_217:not(#\9) {
218
+ border-end-start-radius: 0;
219
+ border-end-end-radius: 0;
220
+ }
221
+ .awsui_grouped-vertical-middle_8cbea_19w97_221:not(#\9) {
222
+ border-start-start-radius: 0;
223
+ border-start-end-radius: 0;
224
+ border-end-start-radius: 0;
225
+ border-end-end-radius: 0;
226
+ }
227
+ .awsui_grouped-vertical-last_8cbea_19w97_227:not(#\9) {
228
+ border-start-start-radius: 0;
229
+ border-start-end-radius: 0;
230
+ }
231
+ .awsui_grouped_8cbea_19w97_188.awsui_grouped-horizontal-middle_8cbea_19w97_207:not(#\9), .awsui_grouped_8cbea_19w97_188.awsui_grouped-horizontal-last_8cbea_19w97_213:not(#\9) {
232
+ border-inline-start: none;
233
+ }
234
+
235
+ .awsui_select_8cbea_19w97_110:not(#\9) {
191
236
  display: none;
192
237
  }
193
238
  @media (max-width: 688px) {
194
- .awsui_select_8cbea_17mt7_107:not(#\9) {
239
+ .awsui_select_8cbea_19w97_110:not(#\9):not(.awsui_grouped_8cbea_19w97_188), .awsui_select_8cbea_19w97_110.awsui_grouped-only_8cbea_19w97_188:not(#\9) {
195
240
  display: block;
196
241
  }
197
242
  }
198
243
 
199
- .awsui_segment-count-2_8cbea_17mt7_199:not(#\9) {
244
+ .awsui_segment-count-2_8cbea_19w97_244:not(#\9) {
200
245
  grid-template-columns: repeat(2, auto);
201
246
  }
247
+ .awsui_segment-count-2_8cbea_19w97_244.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
248
+ grid-template-columns: repeat(2, 1fr);
249
+ }
202
250
 
203
- .awsui_segment-count-3_8cbea_17mt7_203:not(#\9) {
251
+ .awsui_segment-count-3_8cbea_19w97_251:not(#\9) {
204
252
  grid-template-columns: repeat(3, auto);
205
253
  }
254
+ .awsui_segment-count-3_8cbea_19w97_251.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
255
+ grid-template-columns: repeat(3, 1fr);
256
+ }
206
257
 
207
- .awsui_segment-count-4_8cbea_17mt7_207:not(#\9) {
258
+ .awsui_segment-count-4_8cbea_19w97_258:not(#\9) {
208
259
  grid-template-columns: repeat(4, auto);
209
260
  }
261
+ .awsui_segment-count-4_8cbea_19w97_258.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
262
+ grid-template-columns: repeat(4, 1fr);
263
+ }
210
264
 
211
- .awsui_segment-count-5_8cbea_17mt7_211:not(#\9) {
265
+ .awsui_segment-count-5_8cbea_19w97_265:not(#\9) {
212
266
  grid-template-columns: repeat(5, auto);
213
267
  }
268
+ .awsui_segment-count-5_8cbea_19w97_265.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
269
+ grid-template-columns: repeat(5, 1fr);
270
+ }
214
271
 
215
- .awsui_segment-count-6_8cbea_17mt7_215:not(#\9) {
272
+ .awsui_segment-count-6_8cbea_19w97_272:not(#\9) {
216
273
  grid-template-columns: repeat(6, auto);
217
274
  }
275
+ .awsui_segment-count-6_8cbea_19w97_272.awsui_grouped_8cbea_19w97_188.awsui_grouped-vertical_8cbea_19w97_192:not(#\9) {
276
+ grid-template-columns: repeat(6, 1fr);
277
+ }
218
278
 
219
- .awsui_disabled-reason-tooltip_8cbea_17mt7_219:not(#\9) {
279
+ .awsui_disabled-reason-tooltip_8cbea_19w97_279:not(#\9) {
220
280
  /* used in test-utils or tests */
221
281
  }
@@ -2,21 +2,31 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment": "awsui_segment_8cbea_17mt7_17",
6
- "refresh": "awsui_refresh_8cbea_17mt7_44",
7
- "disabled": "awsui_disabled_8cbea_17mt7_50",
8
- "selected": "awsui_selected_8cbea_17mt7_107",
9
- "icon": "awsui_icon_8cbea_17mt7_117",
10
- "with-text": "awsui_with-text_8cbea_17mt7_121",
11
- "with-no-text": "awsui_with-no-text_8cbea_17mt7_127",
12
- "root": "awsui_root_8cbea_17mt7_132",
13
- "segment-part": "awsui_segment-part_8cbea_17mt7_164",
14
- "select": "awsui_select_8cbea_17mt7_107",
15
- "segment-count-2": "awsui_segment-count-2_8cbea_17mt7_199",
16
- "segment-count-3": "awsui_segment-count-3_8cbea_17mt7_203",
17
- "segment-count-4": "awsui_segment-count-4_8cbea_17mt7_207",
18
- "segment-count-5": "awsui_segment-count-5_8cbea_17mt7_211",
19
- "segment-count-6": "awsui_segment-count-6_8cbea_17mt7_215",
20
- "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_17mt7_219"
5
+ "segment": "awsui_segment_8cbea_19w97_17",
6
+ "full-width": "awsui_full-width_8cbea_19w97_44",
7
+ "refresh": "awsui_refresh_8cbea_19w97_47",
8
+ "disabled": "awsui_disabled_8cbea_19w97_53",
9
+ "selected": "awsui_selected_8cbea_19w97_110",
10
+ "icon": "awsui_icon_8cbea_19w97_120",
11
+ "with-text": "awsui_with-text_8cbea_19w97_124",
12
+ "with-no-text": "awsui_with-no-text_8cbea_19w97_130",
13
+ "root": "awsui_root_8cbea_19w97_135",
14
+ "segment-part": "awsui_segment-part_8cbea_19w97_167",
15
+ "grouped": "awsui_grouped_8cbea_19w97_188",
16
+ "grouped-only": "awsui_grouped-only_8cbea_19w97_188",
17
+ "grouped-vertical": "awsui_grouped-vertical_8cbea_19w97_192",
18
+ "grouped-horizontal-first": "awsui_grouped-horizontal-first_8cbea_19w97_203",
19
+ "grouped-horizontal-middle": "awsui_grouped-horizontal-middle_8cbea_19w97_207",
20
+ "grouped-horizontal-last": "awsui_grouped-horizontal-last_8cbea_19w97_213",
21
+ "grouped-vertical-first": "awsui_grouped-vertical-first_8cbea_19w97_217",
22
+ "grouped-vertical-middle": "awsui_grouped-vertical-middle_8cbea_19w97_221",
23
+ "grouped-vertical-last": "awsui_grouped-vertical-last_8cbea_19w97_227",
24
+ "select": "awsui_select_8cbea_19w97_110",
25
+ "segment-count-2": "awsui_segment-count-2_8cbea_19w97_244",
26
+ "segment-count-3": "awsui_segment-count-3_8cbea_19w97_251",
27
+ "segment-count-4": "awsui_segment-count-4_8cbea_19w97_258",
28
+ "segment-count-5": "awsui_segment-count-5_8cbea_19w97_265",
29
+ "segment-count-6": "awsui_segment-count-6_8cbea_19w97_272",
30
+ "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_19w97_279"
21
31
  };
22
32
 
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAe3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAc3C,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,0BAA0B;IAC3G,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC;AAED,QAAA,MAAM,cAAc,6FA4RnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/select/internal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAgB3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAc3C,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,0BAA0B;IAC3G,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC;AAED,QAAA,MAAM,cAAc,6FAgSnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -10,6 +10,7 @@ import { getBreakpointValue } from '../internal/breakpoints';
10
10
  import DropdownFooter from '../internal/components/dropdown-footer';
11
11
  import { useDropdownStatus } from '../internal/components/dropdown-status';
12
12
  import { prepareOptions } from '../internal/components/option/utils/prepare-options.js';
13
+ import { ResetGroupedControlContext, useGroupedControlContext } from '../internal/context/control-group-context';
13
14
  import { useFormFieldContext } from '../internal/context/form-field-context';
14
15
  import { fireNonCancelableEvent } from '../internal/events';
15
16
  import checkControlled from '../internal/hooks/check-controlled';
@@ -30,6 +31,7 @@ const InternalSelect = React.forwardRef(({ options, filteringType = 'none', filt
30
31
  var _a;
31
32
  const baseProps = getBaseProps(restProps);
32
33
  const formFieldContext = useFormFieldContext(restProps);
34
+ const groupedControlProps = useGroupedControlContext();
33
35
  const i18n = useInternalI18n('select');
34
36
  const errorIconAriaLabel = i18n('errorIconAriaLabel', restProps.errorIconAriaLabel);
35
37
  const selectedAriaLabel = i18n('selectedAriaLabel', restProps.selectedAriaLabel);
@@ -82,7 +84,7 @@ const InternalSelect = React.forwardRef(({ options, filteringType = 'none', filt
82
84
  const customDropdownHeader = renderDropdownHeader === null || renderDropdownHeader === void 0 ? void 0 : renderDropdownHeader(dropdownContentProps);
83
85
  const customDropdownFooter = renderDropdownFooter === null || renderDropdownFooter === void 0 ? void 0 : renderDropdownFooter(dropdownContentProps);
84
86
  const filter = (React.createElement(Filter, { clearAriaLabel: filteringClearAriaLabel, filteringType: filteringType, placeholder: filteringPlaceholder, ariaLabel: filteringAriaLabel, ariaRequired: ariaRequired, value: filteringValue, ...getFilterProps() }));
85
- const trigger = (React.createElement(Trigger, { renderOption: renderOption, ref: triggerRef, placeholder: placeholder, disabled: disabled, readOnly: readOnly, triggerVariant: triggerVariant, triggerProps: getTriggerProps(disabled, autoFocus), selectedOption: selectedOption, isOpen: isOpen, inFilteringToken: __inFilteringToken, inlineLabelText: inlineLabelText, ...formFieldContext, controlId: controlId, ariaLabelledby: joinStrings(formFieldContext.ariaLabelledby, selectAriaLabelId) }));
87
+ const trigger = (React.createElement(Trigger, { renderOption: renderOption, ref: triggerRef, placeholder: placeholder, disabled: disabled, readOnly: readOnly, triggerVariant: triggerVariant, triggerProps: getTriggerProps(disabled, autoFocus), selectedOption: selectedOption, isOpen: isOpen, inFilteringToken: __inFilteringToken, groupedControlProps: groupedControlProps, inlineLabelText: inlineLabelText, ...formFieldContext, controlId: controlId, ariaLabelledby: joinStrings(formFieldContext.ariaLabelledby, selectAriaLabelId) }));
86
88
  const isEmpty = !options || options.length === 0;
87
89
  const isNoMatch = filteredOptions && filteredOptions.length === 0;
88
90
  const isFiltered = filteringType !== 'none' && filteringValue.length > 0 && filteredOptions && filteredOptions.length > 0;
@@ -140,13 +142,14 @@ const InternalSelect = React.forwardRef(({ options, filteringType = 'none', filt
140
142
  const dropdownProps = getDropdownProps();
141
143
  const hasOptions = useRef(options.length > 0);
142
144
  hasOptions.current = hasOptions.current || options.length > 0;
143
- return (React.createElement("div", { ...baseProps, ref: mergedRef, className: clsx(styles.root, baseProps.className), onKeyDown: handleNativeSearch },
144
- React.createElement(Dropdown, { ...dropdownProps, ariaLabelledby: dropdownProps.ariaRole ? joinStrings(selectAriaLabelId, controlId) : undefined, ariaDescribedby: dropdownProps.ariaRole
145
- ? joinStrings(dropdownStatus.content ? footerId : undefined, dropdownAriaDescribedby)
146
- : undefined, open: isOpen, stretchTriggerHeight: !!__inFilteringToken, minWidth: getDropdownMinWidth({ expandToViewport, triggerWidth }), maxWidth: getBreakpointValue('xxs'), trigger: trigger, header: dropdownHeader, onMouseDown: handleMouseDown, footer: dropdownFooter, expandToViewport: expandToViewport,
147
- // Forces dropdown position recalculation when new options are loaded
148
- contentKey: hasOptions.current.toString(), content: React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, renderOption: renderOption, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, screenReaderContent: announcement, highlightType: highlightType }) }),
149
- React.createElement("div", { hidden: true, id: selectAriaLabelId }, ariaLabel || inlineLabelText)));
145
+ return (React.createElement(ResetGroupedControlContext, null,
146
+ React.createElement("div", { ...baseProps, ref: mergedRef, className: clsx(styles.root, baseProps.className), onKeyDown: handleNativeSearch },
147
+ React.createElement(Dropdown, { ...dropdownProps, ariaLabelledby: dropdownProps.ariaRole ? joinStrings(selectAriaLabelId, controlId) : undefined, ariaDescribedby: dropdownProps.ariaRole
148
+ ? joinStrings(dropdownStatus.content ? footerId : undefined, dropdownAriaDescribedby)
149
+ : undefined, open: isOpen, stretchTriggerHeight: !!__inFilteringToken, minWidth: getDropdownMinWidth({ expandToViewport, triggerWidth }), maxWidth: getBreakpointValue('xxs'), trigger: trigger, header: dropdownHeader, onMouseDown: handleMouseDown, footer: dropdownFooter, expandToViewport: expandToViewport,
150
+ // Forces dropdown position recalculation when new options are loaded
151
+ contentKey: hasOptions.current.toString(), content: React.createElement(ListComponent, { listBottom: !dropdownStatus.isSticky ? (React.createElement(DropdownFooter, { content: isOpen ? dropdownStatus.content : null, id: footerId })) : null, renderOption: renderOption, menuProps: menuProps, getOptionProps: getOptionProps, filteredOptions: filteredOptions, filteringValue: filteringValue, ref: scrollToIndex, hasDropdownStatus: dropdownStatus.content !== null, screenReaderContent: announcement, highlightType: highlightType }) }),
152
+ React.createElement("div", { hidden: true, id: selectAriaLabelId }, ariaLabel || inlineLabelText))));
150
153
  });
151
154
  export default InternalSelect;
152
155
  //# sourceMappingURL=internal.js.map