@cloudscape-design/components-themeable 3.0.1360 → 3.0.1361

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 (189) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/alert/styles.scss +13 -12
  3. package/lib/internal/scss/badge/styles.scss +38 -49
  4. package/lib/internal/scss/button/styles.scss +51 -51
  5. package/lib/internal/scss/cards/styles.scss +4 -0
  6. package/lib/internal/scss/container/styles.scss +2 -0
  7. package/lib/internal/scss/icon/hover-motion.scss +24 -12
  8. package/lib/internal/scss/input/styles.scss +4 -0
  9. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +175 -174
  10. package/lib/internal/scss/internal/styles/forms/mixins.scss +11 -2
  11. package/lib/internal/scss/internal/styles/style-api.scss +60 -10
  12. package/lib/internal/scss/pagination/styles.scss +3 -1
  13. package/lib/internal/scss/table/styles.scss +5 -0
  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/filter.d.ts +1 -1
  45. package/lib/internal/template/button-dropdown/filter.d.ts.map +1 -1
  46. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  47. package/lib/internal/template/button-dropdown/internal.js +9 -3
  48. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  49. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  50. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  51. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  52. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts +5 -3
  53. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  54. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js +14 -2
  55. package/lib/internal/template/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  56. package/lib/internal/template/cards/styles.css.js +39 -38
  57. package/lib/internal/template/cards/styles.scoped.css +42 -39
  58. package/lib/internal/template/cards/styles.selectors.js +39 -38
  59. package/lib/internal/template/checkbox/styles.css.js +3 -3
  60. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  61. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  62. package/lib/internal/template/container/styles.css.js +33 -33
  63. package/lib/internal/template/container/styles.scoped.css +57 -56
  64. package/lib/internal/template/container/styles.selectors.js +33 -33
  65. package/lib/internal/template/content-layout/styles.css.js +14 -14
  66. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  67. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  68. package/lib/internal/template/dropdown/styles.css.js +20 -20
  69. package/lib/internal/template/dropdown/styles.scoped.css +49 -49
  70. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  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 +192 -192
  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/index.d.ts.map +1 -1
  81. package/lib/internal/template/input/index.js +3 -2
  82. package/lib/internal/template/input/index.js.map +1 -1
  83. package/lib/internal/template/input/interfaces.d.ts +6 -0
  84. package/lib/internal/template/input/interfaces.d.ts.map +1 -1
  85. package/lib/internal/template/input/interfaces.js.map +1 -1
  86. package/lib/internal/template/input/internal.d.ts +0 -1
  87. package/lib/internal/template/input/internal.d.ts.map +1 -1
  88. package/lib/internal/template/input/internal.js +26 -12
  89. package/lib/internal/template/input/internal.js.map +1 -1
  90. package/lib/internal/template/input/styles.css.js +29 -28
  91. package/lib/internal/template/input/styles.scoped.css +134 -131
  92. package/lib/internal/template/input/styles.selectors.js +29 -28
  93. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  94. package/lib/internal/template/internal/components/drag-handle-wrapper/index.d.ts.map +1 -1
  95. package/lib/internal/template/internal/components/drag-handle-wrapper/index.js +2 -1
  96. package/lib/internal/template/internal/components/drag-handle-wrapper/index.js.map +1 -1
  97. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  98. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  99. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  100. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  101. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  102. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  103. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  104. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
  105. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  106. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  107. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
  108. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  109. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  110. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  111. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  112. package/lib/internal/template/internal/environment.js +2 -2
  113. package/lib/internal/template/internal/environment.json +2 -2
  114. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  115. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  116. package/lib/internal/template/internal/generated/custom-css-properties/index.js +174 -173
  117. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  118. package/lib/internal/template/internal/generated/styles/tokens.js +200 -200
  119. package/lib/internal/template/internal/generated/theming/index.cjs +200 -200
  120. package/lib/internal/template/internal/generated/theming/index.js +200 -200
  121. package/lib/internal/template/internal/utils/focus-visible.d.ts +15 -0
  122. package/lib/internal/template/internal/utils/focus-visible.d.ts.map +1 -0
  123. package/lib/internal/template/internal/utils/focus-visible.js +21 -0
  124. package/lib/internal/template/internal/utils/focus-visible.js.map +1 -0
  125. package/lib/internal/template/item-card/styles.css.js +14 -14
  126. package/lib/internal/template/item-card/styles.scoped.css +63 -63
  127. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  128. package/lib/internal/template/link/styles.css.js +21 -21
  129. package/lib/internal/template/link/styles.scoped.css +104 -104
  130. package/lib/internal/template/link/styles.selectors.js +21 -21
  131. package/lib/internal/template/modal/styles.css.js +31 -31
  132. package/lib/internal/template/modal/styles.scoped.css +48 -48
  133. package/lib/internal/template/modal/styles.selectors.js +31 -31
  134. package/lib/internal/template/pagination/internal.js +1 -1
  135. package/lib/internal/template/pagination/internal.js.map +1 -1
  136. package/lib/internal/template/pagination/styles.css.js +12 -12
  137. package/lib/internal/template/pagination/styles.scoped.css +31 -31
  138. package/lib/internal/template/pagination/styles.selectors.js +12 -12
  139. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  140. package/lib/internal/template/progress-bar/styles.scoped.css +58 -58
  141. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  142. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  143. package/lib/internal/template/prompt-input/styles.scoped.css +105 -105
  144. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  145. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  146. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  147. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  148. package/lib/internal/template/select/parts/filter.d.ts +1 -1
  149. package/lib/internal/template/select/parts/filter.d.ts.map +1 -1
  150. package/lib/internal/template/select/parts/styles.css.js +21 -21
  151. package/lib/internal/template/select/parts/styles.scoped.css +24 -24
  152. package/lib/internal/template/select/parts/styles.selectors.js +21 -21
  153. package/lib/internal/template/side-navigation/styles.css.js +64 -64
  154. package/lib/internal/template/side-navigation/styles.scoped.css +111 -111
  155. package/lib/internal/template/side-navigation/styles.selectors.js +64 -64
  156. package/lib/internal/template/slider/styles.css.js +26 -26
  157. package/lib/internal/template/slider/styles.scoped.css +165 -165
  158. package/lib/internal/template/slider/styles.selectors.js +26 -26
  159. package/lib/internal/template/spinner/styles.css.js +14 -14
  160. package/lib/internal/template/spinner/styles.scoped.css +40 -40
  161. package/lib/internal/template/spinner/styles.selectors.js +14 -14
  162. package/lib/internal/template/table/styles.css.js +37 -37
  163. package/lib/internal/template/table/styles.scoped.css +47 -44
  164. package/lib/internal/template/table/styles.selectors.js +37 -37
  165. package/lib/internal/template/tabs/styles.css.js +30 -30
  166. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  167. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  168. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  169. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  170. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  171. package/lib/internal/template/test-utils/dom/input/index.d.ts +1 -0
  172. package/lib/internal/template/test-utils/dom/input/index.js +3 -0
  173. package/lib/internal/template/test-utils/dom/input/index.js.map +1 -1
  174. package/lib/internal/template/test-utils/selectors/input/index.d.ts +1 -0
  175. package/lib/internal/template/test-utils/selectors/input/index.js +3 -0
  176. package/lib/internal/template/test-utils/selectors/input/index.js.map +1 -1
  177. package/lib/internal/template/text-content/styles.css.js +1 -1
  178. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  179. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  180. package/lib/internal/template/textarea/styles.css.js +9 -9
  181. package/lib/internal/template/textarea/styles.scoped.css +51 -51
  182. package/lib/internal/template/textarea/styles.selectors.js +9 -9
  183. package/lib/internal/template/toggle/styles.css.js +10 -10
  184. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  185. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  186. package/lib/internal/template/token/styles.css.js +14 -14
  187. package/lib/internal/template/token/styles.scoped.css +46 -46
  188. package/lib/internal/template/token/styles.selectors.js +14 -14
  189. package/package.json +1 -1
@@ -1,11 +1,13 @@
1
1
  import React from 'react';
2
- import { CancelableEventHandler } from '../../types/events';
2
+ import { CancelableEventHandler, NonCancelableCustomEvent } from '../../types/events';
3
3
  import { ButtonDropdownProps, ButtonDropdownSettings, GroupToggle, HighlightProps, ItemActivate } from '../interfaces';
4
+ type DropdownFocusLeaveEvent = NonCancelableCustomEvent<Pick<React.FocusEvent, 'target' | 'relatedTarget'>>;
4
5
  interface UseButtonDropdownOptions extends ButtonDropdownSettings {
5
6
  items: ButtonDropdownProps.Items;
6
7
  onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
7
8
  onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
8
9
  onReturnFocus: () => void;
10
+ isTriggerElement: (element: Element) => boolean;
9
11
  expandToViewport?: boolean;
10
12
  hasFiltering: boolean;
11
13
  }
@@ -15,7 +17,7 @@ interface UseButtonDropdownApi extends HighlightProps {
15
17
  onKeyUp: (event: React.KeyboardEvent) => void;
16
18
  onItemActivate: ItemActivate;
17
19
  onGroupToggle: GroupToggle;
18
- onDropdownFocusLeave: () => void;
20
+ onDropdownFocusLeave: (event: DropdownFocusLeaveEvent) => void;
19
21
  onDropdownBlur: () => void;
20
22
  toggleDropdown: (options?: {
21
23
  moveHighlightOnOpen?: boolean;
@@ -27,6 +29,6 @@ interface UseButtonDropdownApi extends HighlightProps {
27
29
  filteredItems: ButtonDropdownProps.Items;
28
30
  showExpandableGroups: boolean;
29
31
  }
30
- export declare function useButtonDropdown({ items, onItemClick, onItemFollow, onReturnFocus, hasExpandableGroups, isInRestrictedView, expandToViewport, hasFiltering, }: UseButtonDropdownOptions): UseButtonDropdownApi;
32
+ export declare function useButtonDropdown({ items, onItemClick, onItemFollow, onReturnFocus, isTriggerElement, hasExpandableGroups, isInRestrictedView, expandToViewport, hasFiltering, }: UseButtonDropdownOptions): UseButtonDropdownApi;
31
33
  export {};
32
34
  //# sourceMappingURL=use-button-dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-button-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-button-dropdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAKpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKvH,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACjC,WAAW,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC3E,YAAY,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5E,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,oBAAqB,SAAQ,cAAc;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,YAAY,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC;IAC3B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACzC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAA0B,EAC1B,gBAAwB,EACxB,YAAY,GACb,EAAE,wBAAwB,GAAG,oBAAoB,CA4PjD"}
1
+ {"version":3,"file":"use-button-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-button-dropdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKvH,KAAK,uBAAuB,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC;AAE5G,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACjC,WAAW,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC3E,YAAY,CAAC,EAAE,sBAAsB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IAC5E,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,oBAAqB,SAAQ,cAAc;IACnD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,YAAY,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC;IAC3B,oBAAoB,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC/D,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACzC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,kBAA0B,EAC1B,gBAAwB,EACxB,YAAY,GACb,EAAE,wBAAwB,GAAG,oBAAoB,CAuQjD"}
@@ -4,10 +4,12 @@ import { useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { useOpenState } from '../../internal/components/options-list/utils/use-open-state';
5
5
  import { fireCancelableEvent, isPlainLeftClick } from '../../internal/events';
6
6
  import { KeyCode } from '../../internal/keycode';
7
+ import { isElement } from '../../internal/utils/dom';
8
+ import { isKeyboardInteraction } from '../../internal/utils/focus-visible';
7
9
  import { filterItems } from './filter-items';
8
10
  import useHighlightedMenu from './use-highlighted-menu';
9
11
  import { getItemTarget, isCheckboxItem, isItemGroup, isLinkItem } from './utils';
10
- export function useButtonDropdown({ items, onItemClick, onItemFollow, onReturnFocus, hasExpandableGroups, isInRestrictedView = false, expandToViewport = false, hasFiltering, }) {
12
+ export function useButtonDropdown({ items, onItemClick, onItemFollow, onReturnFocus, isTriggerElement, hasExpandableGroups, isInRestrictedView = false, expandToViewport = false, hasFiltering, }) {
11
13
  const [filteringValue, setFilteringValue] = useState('');
12
14
  const filteredItems = useMemo(() => (hasFiltering && filteringValue ? filterItems(items, filteringValue) : items), [hasFiltering, filteringValue, items]);
13
15
  const showExpandableGroups = hasExpandableGroups && !filteringValue;
@@ -41,8 +43,18 @@ export function useButtonDropdown({ items, onItemClick, onItemFollow, onReturnFo
41
43
  }
42
44
  openStateProps.toggleDropdown();
43
45
  };
44
- const onDropdownFocusLeave = () => {
46
+ const onDropdownFocusLeave = (event) => {
45
47
  if (hasFiltering && isOpen) {
48
+ const { relatedTarget } = event.detail;
49
+ // When focus moves from the filter input to the trigger via a mouse click, the trigger's
50
+ // own click handler already closes the dropdown.
51
+ const clickedTrigger = !!relatedTarget &&
52
+ isElement(relatedTarget) &&
53
+ isTriggerElement(relatedTarget) &&
54
+ !isKeyboardInteraction(relatedTarget);
55
+ if (clickedTrigger) {
56
+ return;
57
+ }
46
58
  if (expandToViewport) {
47
59
  // When expanded to viewport the focus can't move naturally to the next element.
48
60
  // Returning the focus to the trigger instead.
@@ -1 +1 @@
1
- {"version":3,"file":"use-button-dropdown.js","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-button-dropdown.ts"],"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, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireCancelableEvent, isPlainLeftClick } from '../../internal/events';\nimport { KeyCode } from '../../internal/keycode';\nimport { CancelableEventHandler } from '../../types/events';\nimport { ButtonDropdownProps, ButtonDropdownSettings, GroupToggle, HighlightProps, ItemActivate } from '../interfaces';\nimport { filterItems } from './filter-items';\nimport useHighlightedMenu from './use-highlighted-menu';\nimport { getItemTarget, isCheckboxItem, isItemGroup, isLinkItem } from './utils';\n\ninterface UseButtonDropdownOptions extends ButtonDropdownSettings {\n items: ButtonDropdownProps.Items;\n onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onReturnFocus: () => void;\n expandToViewport?: boolean;\n hasFiltering: boolean;\n}\n\ninterface UseButtonDropdownApi extends HighlightProps {\n isOpen: boolean;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onKeyUp: (event: React.KeyboardEvent) => void;\n onItemActivate: ItemActivate;\n onGroupToggle: GroupToggle;\n onDropdownFocusLeave: () => void;\n onDropdownBlur: () => void;\n toggleDropdown: (options?: { moveHighlightOnOpen?: boolean }) => void;\n closeDropdown: () => void;\n setIsUsingMouse: (isUsingMouse: boolean) => void;\n filteringValue: string;\n setFilteringValue: (value: string) => void;\n filteredItems: ButtonDropdownProps.Items;\n showExpandableGroups: boolean;\n}\n\nexport function useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n onReturnFocus,\n hasExpandableGroups,\n isInRestrictedView = false,\n expandToViewport = false,\n hasFiltering,\n}: UseButtonDropdownOptions): UseButtonDropdownApi {\n const [filteringValue, setFilteringValue] = useState('');\n\n const filteredItems = useMemo(\n () => (hasFiltering && filteringValue ? filterItems(items, filteringValue) : items),\n [hasFiltering, filteringValue, items]\n );\n\n const showExpandableGroups = hasExpandableGroups && !filteringValue;\n\n const {\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n moveHighlight,\n expandGroup,\n collapseGroup,\n reset,\n setIsUsingMouse,\n } = useHighlightedMenu({\n items: filteredItems,\n hasExpandableGroups: showExpandableGroups,\n isInRestrictedView,\n });\n\n // If the filtering input changes, the options list also changes,\n // so the highlight isn't valid anymore.\n const prevFilteringValue = useRef(filteringValue);\n useEffect(() => {\n if (prevFilteringValue.current !== filteringValue) {\n prevFilteringValue.current = filteringValue;\n reset();\n }\n }, [filteringValue, reset]);\n\n const { isOpen, closeDropdown: closeDropdownState, ...openStateProps } = useOpenState({ onClose: reset });\n\n const closeDropdown = () => {\n setFilteringValue('');\n closeDropdownState();\n };\n\n const toggleDropdown = (options: { moveHighlightOnOpen?: boolean } = {}) => {\n const moveHighlightOnOpen = options.moveHighlightOnOpen ?? true;\n if (!isOpen && moveHighlightOnOpen && !hasFiltering) {\n moveHighlight(1);\n }\n if (isOpen) {\n setFilteringValue('');\n }\n openStateProps.toggleDropdown();\n };\n\n const onDropdownFocusLeave = () => {\n if (hasFiltering && isOpen) {\n if (expandToViewport) {\n // When expanded to viewport the focus can't move naturally to the next element.\n // Returning the focus to the trigger instead.\n onReturnFocus();\n }\n closeDropdown();\n }\n };\n\n // Close when focus leaves the entire widget (trigger and menu), for example when focus\n // moves to an app layout drawer or an element in a different frame. The filtering variant\n // keeps focus inside the dropdown content and closes via onDropdownFocusLeave instead.\n const onDropdownBlur = () => {\n if (isOpen && !hasFiltering) {\n closeDropdown();\n }\n };\n\n const onGroupToggle: GroupToggle = item => (!isExpanded(item) ? expandGroup(item) : collapseGroup());\n\n const onItemActivate: ItemActivate = (item, event) => {\n const isCheckbox = isCheckboxItem(item);\n const isLink = isLinkItem(item);\n const details = {\n id: item.id || 'undefined',\n href: isLink ? item.href : undefined,\n external: isLink ? item.external : undefined,\n target: isLink ? getItemTarget(item) : undefined,\n checked: isCheckbox ? !item.checked : undefined,\n };\n onReturnFocus();\n if (onItemFollow && isLink && isPlainLeftClick(event)) {\n fireCancelableEvent(onItemFollow, details, event);\n }\n if (onItemClick) {\n fireCancelableEvent(onItemClick, details, event);\n }\n closeDropdown();\n };\n\n const openAndSelectFirst = (event: React.KeyboardEvent) => {\n toggleDropdown();\n event.preventDefault();\n };\n\n const actOnParentDropdown = (event: React.KeyboardEvent) => {\n // if there is no highlighted item we act on the trigger by opening or closing dropdown\n if (!targetItem) {\n if (isOpen && !isInRestrictedView) {\n toggleDropdown();\n } else {\n openAndSelectFirst(event);\n }\n } else {\n if (isItemGroup(targetItem)) {\n onGroupToggle(targetItem, event);\n } else {\n onItemActivate(targetItem, event);\n }\n }\n };\n\n const activate = (event: React.KeyboardEvent, isEnter?: boolean) => {\n setIsUsingMouse(false);\n\n // if item is a link we rely on default behavior of an anchor, no need to prevent\n if (targetItem && isLinkItem(targetItem) && isEnter) {\n return;\n }\n\n event.preventDefault();\n actOnParentDropdown(event);\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n setIsUsingMouse(false);\n switch (event.keyCode) {\n case KeyCode.down: {\n if (!isOpen) {\n toggleDropdown();\n if (!hasFiltering) {\n moveHighlight(1, true);\n }\n } else {\n moveHighlight(1);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n if (!isOpen) {\n toggleDropdown();\n if (!hasFiltering) {\n moveHighlight(-1, true);\n }\n } else {\n moveHighlight(-1);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.space: {\n // Prevent scrolling the list of items and highlighting the trigger when filtering\n // isn't active. Hitting space when filtering is active should just type a space\n // character into the input, or activate the clear button.\n if (!hasFiltering && !isOpen) {\n event.preventDefault();\n }\n break;\n }\n case KeyCode.enter: {\n // While filtering, pressing Enter without a highlighted item should not select\n // any item or close the dropdown.\n if (isOpen && hasFiltering && !targetItem) {\n break;\n }\n if (!targetItem?.disabled) {\n activate(event, true);\n }\n break;\n }\n case KeyCode.left:\n case KeyCode.right: {\n // When filtering is enabled and there's text in the filter input, left/right\n // arrow keys should move the caret between the characters.\n if (hasFiltering && filteringValue) {\n break;\n }\n if (targetItem && !targetItem.disabled && isItemGroup(targetItem) && !isExpanded(targetItem)) {\n expandGroup();\n } else if (hasExpandableGroups) {\n collapseGroup();\n }\n\n event.preventDefault();\n break;\n }\n case KeyCode.escape: {\n onReturnFocus();\n closeDropdown();\n event.preventDefault();\n if (isOpen) {\n event.stopPropagation();\n }\n break;\n }\n case KeyCode.tab: {\n // In filtering mode the dropdown contains multiple focusable elements (the filter\n // input and its clear button). Tabbing between them must not close the dropdown, so\n // closing on Tab is handled by onDropdownFocusLeave instead, which only fires once\n // focus actually leaves the dropdown.\n if (hasFiltering) {\n break;\n }\n // When expanded to viewport the focus can't move naturally to the next element.\n // Returning the focus to the trigger instead.\n if (expandToViewport) {\n onReturnFocus();\n }\n closeDropdown();\n break;\n }\n }\n };\n const onKeyUp = (event: React.KeyboardEvent) => {\n // When using a roving tabindex (filtering disabled), we need to handle activating items\n // with Space separately because there is a bug in Firefox where changing the focus during\n // a Space keydown event it will trigger unexpected click events on the new element.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n if (event.keyCode === KeyCode.space && !targetItem?.disabled && !hasFiltering) {\n activate(event);\n }\n };\n\n return {\n isOpen,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n onKeyDown,\n onKeyUp,\n onItemActivate,\n onGroupToggle,\n onDropdownFocusLeave,\n onDropdownBlur,\n toggleDropdown,\n closeDropdown,\n setIsUsingMouse,\n filteringValue,\n setFilteringValue,\n filteredItems,\n showExpandableGroups,\n };\n}\n"]}
1
+ {"version":3,"file":"use-button-dropdown.js","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-button-dropdown.ts"],"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, { useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { fireCancelableEvent, isPlainLeftClick } from '../../internal/events';\nimport { KeyCode } from '../../internal/keycode';\nimport { isElement } from '../../internal/utils/dom';\nimport { isKeyboardInteraction } from '../../internal/utils/focus-visible';\nimport { CancelableEventHandler, NonCancelableCustomEvent } from '../../types/events';\nimport { ButtonDropdownProps, ButtonDropdownSettings, GroupToggle, HighlightProps, ItemActivate } from '../interfaces';\nimport { filterItems } from './filter-items';\nimport useHighlightedMenu from './use-highlighted-menu';\nimport { getItemTarget, isCheckboxItem, isItemGroup, isLinkItem } from './utils';\n\ntype DropdownFocusLeaveEvent = NonCancelableCustomEvent<Pick<React.FocusEvent, 'target' | 'relatedTarget'>>;\n\ninterface UseButtonDropdownOptions extends ButtonDropdownSettings {\n items: ButtonDropdownProps.Items;\n onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onReturnFocus: () => void;\n // Returns whether the given element is (or is inside) the dropdown trigger.\n isTriggerElement: (element: Element) => boolean;\n expandToViewport?: boolean;\n hasFiltering: boolean;\n}\n\ninterface UseButtonDropdownApi extends HighlightProps {\n isOpen: boolean;\n onKeyDown: (event: React.KeyboardEvent) => void;\n onKeyUp: (event: React.KeyboardEvent) => void;\n onItemActivate: ItemActivate;\n onGroupToggle: GroupToggle;\n onDropdownFocusLeave: (event: DropdownFocusLeaveEvent) => void;\n onDropdownBlur: () => void;\n toggleDropdown: (options?: { moveHighlightOnOpen?: boolean }) => void;\n closeDropdown: () => void;\n setIsUsingMouse: (isUsingMouse: boolean) => void;\n filteringValue: string;\n setFilteringValue: (value: string) => void;\n filteredItems: ButtonDropdownProps.Items;\n showExpandableGroups: boolean;\n}\n\nexport function useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n onReturnFocus,\n isTriggerElement,\n hasExpandableGroups,\n isInRestrictedView = false,\n expandToViewport = false,\n hasFiltering,\n}: UseButtonDropdownOptions): UseButtonDropdownApi {\n const [filteringValue, setFilteringValue] = useState('');\n\n const filteredItems = useMemo(\n () => (hasFiltering && filteringValue ? filterItems(items, filteringValue) : items),\n [hasFiltering, filteringValue, items]\n );\n\n const showExpandableGroups = hasExpandableGroups && !filteringValue;\n\n const {\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n moveHighlight,\n expandGroup,\n collapseGroup,\n reset,\n setIsUsingMouse,\n } = useHighlightedMenu({\n items: filteredItems,\n hasExpandableGroups: showExpandableGroups,\n isInRestrictedView,\n });\n\n // If the filtering input changes, the options list also changes,\n // so the highlight isn't valid anymore.\n const prevFilteringValue = useRef(filteringValue);\n useEffect(() => {\n if (prevFilteringValue.current !== filteringValue) {\n prevFilteringValue.current = filteringValue;\n reset();\n }\n }, [filteringValue, reset]);\n\n const { isOpen, closeDropdown: closeDropdownState, ...openStateProps } = useOpenState({ onClose: reset });\n\n const closeDropdown = () => {\n setFilteringValue('');\n closeDropdownState();\n };\n\n const toggleDropdown = (options: { moveHighlightOnOpen?: boolean } = {}) => {\n const moveHighlightOnOpen = options.moveHighlightOnOpen ?? true;\n if (!isOpen && moveHighlightOnOpen && !hasFiltering) {\n moveHighlight(1);\n }\n if (isOpen) {\n setFilteringValue('');\n }\n openStateProps.toggleDropdown();\n };\n\n const onDropdownFocusLeave = (event: DropdownFocusLeaveEvent) => {\n if (hasFiltering && isOpen) {\n const { relatedTarget } = event.detail;\n // When focus moves from the filter input to the trigger via a mouse click, the trigger's\n // own click handler already closes the dropdown.\n const clickedTrigger =\n !!relatedTarget &&\n isElement(relatedTarget) &&\n isTriggerElement(relatedTarget) &&\n !isKeyboardInteraction(relatedTarget);\n if (clickedTrigger) {\n return;\n }\n if (expandToViewport) {\n // When expanded to viewport the focus can't move naturally to the next element.\n // Returning the focus to the trigger instead.\n onReturnFocus();\n }\n closeDropdown();\n }\n };\n\n // Close when focus leaves the entire widget (trigger and menu), for example when focus\n // moves to an app layout drawer or an element in a different frame. The filtering variant\n // keeps focus inside the dropdown content and closes via onDropdownFocusLeave instead.\n const onDropdownBlur = () => {\n if (isOpen && !hasFiltering) {\n closeDropdown();\n }\n };\n\n const onGroupToggle: GroupToggle = item => (!isExpanded(item) ? expandGroup(item) : collapseGroup());\n\n const onItemActivate: ItemActivate = (item, event) => {\n const isCheckbox = isCheckboxItem(item);\n const isLink = isLinkItem(item);\n const details = {\n id: item.id || 'undefined',\n href: isLink ? item.href : undefined,\n external: isLink ? item.external : undefined,\n target: isLink ? getItemTarget(item) : undefined,\n checked: isCheckbox ? !item.checked : undefined,\n };\n onReturnFocus();\n if (onItemFollow && isLink && isPlainLeftClick(event)) {\n fireCancelableEvent(onItemFollow, details, event);\n }\n if (onItemClick) {\n fireCancelableEvent(onItemClick, details, event);\n }\n closeDropdown();\n };\n\n const openAndSelectFirst = (event: React.KeyboardEvent) => {\n toggleDropdown();\n event.preventDefault();\n };\n\n const actOnParentDropdown = (event: React.KeyboardEvent) => {\n // if there is no highlighted item we act on the trigger by opening or closing dropdown\n if (!targetItem) {\n if (isOpen && !isInRestrictedView) {\n toggleDropdown();\n } else {\n openAndSelectFirst(event);\n }\n } else {\n if (isItemGroup(targetItem)) {\n onGroupToggle(targetItem, event);\n } else {\n onItemActivate(targetItem, event);\n }\n }\n };\n\n const activate = (event: React.KeyboardEvent, isEnter?: boolean) => {\n setIsUsingMouse(false);\n\n // if item is a link we rely on default behavior of an anchor, no need to prevent\n if (targetItem && isLinkItem(targetItem) && isEnter) {\n return;\n }\n\n event.preventDefault();\n actOnParentDropdown(event);\n };\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n setIsUsingMouse(false);\n switch (event.keyCode) {\n case KeyCode.down: {\n if (!isOpen) {\n toggleDropdown();\n if (!hasFiltering) {\n moveHighlight(1, true);\n }\n } else {\n moveHighlight(1);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n if (!isOpen) {\n toggleDropdown();\n if (!hasFiltering) {\n moveHighlight(-1, true);\n }\n } else {\n moveHighlight(-1);\n }\n event.preventDefault();\n break;\n }\n case KeyCode.space: {\n // Prevent scrolling the list of items and highlighting the trigger when filtering\n // isn't active. Hitting space when filtering is active should just type a space\n // character into the input, or activate the clear button.\n if (!hasFiltering && !isOpen) {\n event.preventDefault();\n }\n break;\n }\n case KeyCode.enter: {\n // While filtering, pressing Enter without a highlighted item should not select\n // any item or close the dropdown.\n if (isOpen && hasFiltering && !targetItem) {\n break;\n }\n if (!targetItem?.disabled) {\n activate(event, true);\n }\n break;\n }\n case KeyCode.left:\n case KeyCode.right: {\n // When filtering is enabled and there's text in the filter input, left/right\n // arrow keys should move the caret between the characters.\n if (hasFiltering && filteringValue) {\n break;\n }\n if (targetItem && !targetItem.disabled && isItemGroup(targetItem) && !isExpanded(targetItem)) {\n expandGroup();\n } else if (hasExpandableGroups) {\n collapseGroup();\n }\n\n event.preventDefault();\n break;\n }\n case KeyCode.escape: {\n onReturnFocus();\n closeDropdown();\n event.preventDefault();\n if (isOpen) {\n event.stopPropagation();\n }\n break;\n }\n case KeyCode.tab: {\n // In filtering mode the dropdown contains multiple focusable elements (the filter\n // input and its clear button). Tabbing between them must not close the dropdown, so\n // closing on Tab is handled by onDropdownFocusLeave instead, which only fires once\n // focus actually leaves the dropdown.\n if (hasFiltering) {\n break;\n }\n // When expanded to viewport the focus can't move naturally to the next element.\n // Returning the focus to the trigger instead.\n if (expandToViewport) {\n onReturnFocus();\n }\n closeDropdown();\n break;\n }\n }\n };\n const onKeyUp = (event: React.KeyboardEvent) => {\n // When using a roving tabindex (filtering disabled), we need to handle activating items\n // with Space separately because there is a bug in Firefox where changing the focus during\n // a Space keydown event it will trigger unexpected click events on the new element.\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n if (event.keyCode === KeyCode.space && !targetItem?.disabled && !hasFiltering) {\n activate(event);\n }\n };\n\n return {\n isOpen,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n onKeyDown,\n onKeyUp,\n onItemActivate,\n onGroupToggle,\n onDropdownFocusLeave,\n onDropdownBlur,\n toggleDropdown,\n closeDropdown,\n setIsUsingMouse,\n filteringValue,\n setFilteringValue,\n filteredItems,\n showExpandableGroups,\n };\n}\n"]}
@@ -1,43 +1,44 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_p8a6i_k1rsq_9",
5
- "header-variant-full-page": "awsui_header-variant-full-page_p8a6i_k1rsq_41",
6
- "header-refresh": "awsui_header-refresh_p8a6i_k1rsq_41",
7
- "list": "awsui_list_p8a6i_k1rsq_48",
8
- "list-grid-1": "awsui_list-grid-1_p8a6i_k1rsq_59",
9
- "card": "awsui_card_p8a6i_k1rsq_59",
10
- "list-grid-2": "awsui_list-grid-2_p8a6i_k1rsq_62",
11
- "list-grid-3": "awsui_list-grid-3_p8a6i_k1rsq_65",
12
- "list-grid-4": "awsui_list-grid-4_p8a6i_k1rsq_68",
13
- "list-grid-5": "awsui_list-grid-5_p8a6i_k1rsq_71",
14
- "list-grid-6": "awsui_list-grid-6_p8a6i_k1rsq_74",
15
- "list-grid-7": "awsui_list-grid-7_p8a6i_k1rsq_77",
16
- "list-grid-8": "awsui_list-grid-8_p8a6i_k1rsq_80",
17
- "list-grid-9": "awsui_list-grid-9_p8a6i_k1rsq_83",
18
- "list-grid-10": "awsui_list-grid-10_p8a6i_k1rsq_86",
19
- "list-grid-11": "awsui_list-grid-11_p8a6i_k1rsq_89",
20
- "list-grid-12": "awsui_list-grid-12_p8a6i_k1rsq_92",
21
- "list-grid-13": "awsui_list-grid-13_p8a6i_k1rsq_95",
22
- "list-grid-14": "awsui_list-grid-14_p8a6i_k1rsq_98",
23
- "list-grid-15": "awsui_list-grid-15_p8a6i_k1rsq_101",
24
- "list-grid-16": "awsui_list-grid-16_p8a6i_k1rsq_104",
25
- "list-grid-17": "awsui_list-grid-17_p8a6i_k1rsq_107",
26
- "list-grid-18": "awsui_list-grid-18_p8a6i_k1rsq_110",
27
- "list-grid-19": "awsui_list-grid-19_p8a6i_k1rsq_113",
28
- "list-grid-20": "awsui_list-grid-20_p8a6i_k1rsq_116",
29
- "selection-control": "awsui_selection-control_p8a6i_k1rsq_120",
30
- "loading": "awsui_loading_p8a6i_k1rsq_130",
31
- "empty": "awsui_empty_p8a6i_k1rsq_131",
32
- "has-header": "awsui_has-header_p8a6i_k1rsq_138",
33
- "refresh": "awsui_refresh_p8a6i_k1rsq_141",
34
- "card-header": "awsui_card-header_p8a6i_k1rsq_157",
35
- "card-header-inner": "awsui_card-header-inner_p8a6i_k1rsq_166",
36
- "card-header-inner-selectable": "awsui_card-header-inner-selectable_p8a6i_k1rsq_169",
37
- "card-selected": "awsui_card-selected_p8a6i_k1rsq_172",
38
- "section": "awsui_section_p8a6i_k1rsq_176",
39
- "section-header": "awsui_section-header_p8a6i_k1rsq_183",
40
- "section-content": "awsui_section-content_p8a6i_k1rsq_189",
41
- "footer-pagination": "awsui_footer-pagination_p8a6i_k1rsq_201"
4
+ "root": "awsui_root_p8a6i_1ktd8_9",
5
+ "header": "awsui_header_p8a6i_1ktd8_41",
6
+ "header-variant-full-page": "awsui_header-variant-full-page_p8a6i_1ktd8_41",
7
+ "header-refresh": "awsui_header-refresh_p8a6i_1ktd8_44",
8
+ "list": "awsui_list_p8a6i_1ktd8_51",
9
+ "list-grid-1": "awsui_list-grid-1_p8a6i_1ktd8_62",
10
+ "card": "awsui_card_p8a6i_1ktd8_62",
11
+ "list-grid-2": "awsui_list-grid-2_p8a6i_1ktd8_65",
12
+ "list-grid-3": "awsui_list-grid-3_p8a6i_1ktd8_68",
13
+ "list-grid-4": "awsui_list-grid-4_p8a6i_1ktd8_71",
14
+ "list-grid-5": "awsui_list-grid-5_p8a6i_1ktd8_74",
15
+ "list-grid-6": "awsui_list-grid-6_p8a6i_1ktd8_77",
16
+ "list-grid-7": "awsui_list-grid-7_p8a6i_1ktd8_80",
17
+ "list-grid-8": "awsui_list-grid-8_p8a6i_1ktd8_83",
18
+ "list-grid-9": "awsui_list-grid-9_p8a6i_1ktd8_86",
19
+ "list-grid-10": "awsui_list-grid-10_p8a6i_1ktd8_89",
20
+ "list-grid-11": "awsui_list-grid-11_p8a6i_1ktd8_92",
21
+ "list-grid-12": "awsui_list-grid-12_p8a6i_1ktd8_95",
22
+ "list-grid-13": "awsui_list-grid-13_p8a6i_1ktd8_98",
23
+ "list-grid-14": "awsui_list-grid-14_p8a6i_1ktd8_101",
24
+ "list-grid-15": "awsui_list-grid-15_p8a6i_1ktd8_104",
25
+ "list-grid-16": "awsui_list-grid-16_p8a6i_1ktd8_107",
26
+ "list-grid-17": "awsui_list-grid-17_p8a6i_1ktd8_110",
27
+ "list-grid-18": "awsui_list-grid-18_p8a6i_1ktd8_113",
28
+ "list-grid-19": "awsui_list-grid-19_p8a6i_1ktd8_116",
29
+ "list-grid-20": "awsui_list-grid-20_p8a6i_1ktd8_119",
30
+ "selection-control": "awsui_selection-control_p8a6i_1ktd8_123",
31
+ "loading": "awsui_loading_p8a6i_1ktd8_133",
32
+ "empty": "awsui_empty_p8a6i_1ktd8_134",
33
+ "has-header": "awsui_has-header_p8a6i_1ktd8_141",
34
+ "refresh": "awsui_refresh_p8a6i_1ktd8_144",
35
+ "card-header": "awsui_card-header_p8a6i_1ktd8_160",
36
+ "card-header-inner": "awsui_card-header-inner_p8a6i_1ktd8_169",
37
+ "card-header-inner-selectable": "awsui_card-header-inner-selectable_p8a6i_1ktd8_172",
38
+ "card-selected": "awsui_card-selected_p8a6i_1ktd8_175",
39
+ "section": "awsui_section_p8a6i_1ktd8_179",
40
+ "section-header": "awsui_section-header_p8a6i_1ktd8_186",
41
+ "section-content": "awsui_section-content_p8a6i_1ktd8_192",
42
+ "footer-pagination": "awsui_footer-pagination_p8a6i_1ktd8_204"
42
43
  };
43
44
 
@@ -6,7 +6,7 @@
6
6
  /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
7
7
  /* Style used for links in slots/components that are text heavy, to help links stand out among
8
8
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
9
- .awsui_root_p8a6i_k1rsq_9:not(#\9) {
9
+ .awsui_root_p8a6i_1ktd8_9:not(#\9) {
10
10
  border-collapse: separate;
11
11
  border-spacing: 0;
12
12
  box-sizing: border-box;
@@ -38,14 +38,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
38
38
  -moz-osx-font-smoothing: auto;
39
39
  }
40
40
 
41
- .awsui_header-variant-full-page_p8a6i_k1rsq_41.awsui_header-refresh_p8a6i_k1rsq_41:not(#\9) {
41
+ .awsui_header_p8a6i_1ktd8_41:not(#\9):not(.awsui_header-variant-full-page_p8a6i_1ktd8_41) {
42
+ --awsui-inline-label-background-color-66120l: var(--color-background-container-header-irktp5, #fafafa);
43
+ }
44
+ .awsui_header-variant-full-page_p8a6i_1ktd8_41.awsui_header-refresh_p8a6i_1ktd8_44:not(#\9) {
42
45
  padding-block-start: 0;
43
46
  padding-inline-start: 0;
44
47
  padding-inline-end: 0;
45
48
  padding-block-end: calc(var(--space-container-header-bottom-9elagw, 12px) + var(--space-table-header-tools-full-page-bottom-g1a6as, 4px));
46
49
  }
47
50
 
48
- .awsui_list_p8a6i_k1rsq_48:not(#\9) {
51
+ .awsui_list_p8a6i_1ktd8_51:not(#\9) {
49
52
  display: flex;
50
53
  flex-wrap: wrap;
51
54
  box-sizing: border-box;
@@ -56,68 +59,68 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
56
59
  margin-inline-start: calc(var(--space-grid-gutter-2qs4vj, 20px) * -1);
57
60
  margin-inline-end: 0;
58
61
  }
59
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-1_p8a6i_k1rsq_59 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
62
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-1_p8a6i_1ktd8_62 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
60
63
  inline-size: 100%;
61
64
  }
62
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-2_p8a6i_k1rsq_62 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
65
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-2_p8a6i_1ktd8_65 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
63
66
  inline-size: 50%;
64
67
  }
65
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-3_p8a6i_k1rsq_65 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
68
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-3_p8a6i_1ktd8_68 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
66
69
  inline-size: 33.3333333333%;
67
70
  }
68
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-4_p8a6i_k1rsq_68 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
71
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-4_p8a6i_1ktd8_71 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
69
72
  inline-size: 25%;
70
73
  }
71
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-5_p8a6i_k1rsq_71 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
74
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-5_p8a6i_1ktd8_74 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
72
75
  inline-size: 20%;
73
76
  }
74
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-6_p8a6i_k1rsq_74 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
77
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-6_p8a6i_1ktd8_77 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
75
78
  inline-size: 16.6666666667%;
76
79
  }
77
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-7_p8a6i_k1rsq_77 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
80
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-7_p8a6i_1ktd8_80 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
78
81
  inline-size: 14.2857142857%;
79
82
  }
80
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-8_p8a6i_k1rsq_80 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
83
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-8_p8a6i_1ktd8_83 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
81
84
  inline-size: 12.5%;
82
85
  }
83
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-9_p8a6i_k1rsq_83 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
86
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-9_p8a6i_1ktd8_86 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
84
87
  inline-size: 11.1111111111%;
85
88
  }
86
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-10_p8a6i_k1rsq_86 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
89
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-10_p8a6i_1ktd8_89 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
87
90
  inline-size: 10%;
88
91
  }
89
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-11_p8a6i_k1rsq_89 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
92
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-11_p8a6i_1ktd8_92 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
90
93
  inline-size: 9.0909090909%;
91
94
  }
92
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-12_p8a6i_k1rsq_92 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
95
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-12_p8a6i_1ktd8_95 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
93
96
  inline-size: 8.3333333333%;
94
97
  }
95
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-13_p8a6i_k1rsq_95 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
98
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-13_p8a6i_1ktd8_98 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
96
99
  inline-size: 7.6923076923%;
97
100
  }
98
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-14_p8a6i_k1rsq_98 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
101
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-14_p8a6i_1ktd8_101 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
99
102
  inline-size: 7.1428571429%;
100
103
  }
101
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-15_p8a6i_k1rsq_101 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
104
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-15_p8a6i_1ktd8_104 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
102
105
  inline-size: 6.6666666667%;
103
106
  }
104
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-16_p8a6i_k1rsq_104 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
107
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-16_p8a6i_1ktd8_107 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
105
108
  inline-size: 6.25%;
106
109
  }
107
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-17_p8a6i_k1rsq_107 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
110
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-17_p8a6i_1ktd8_110 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
108
111
  inline-size: 5.8823529412%;
109
112
  }
110
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-18_p8a6i_k1rsq_110 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
113
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-18_p8a6i_1ktd8_113 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
111
114
  inline-size: 5.5555555556%;
112
115
  }
113
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-19_p8a6i_k1rsq_113 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
116
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-19_p8a6i_1ktd8_116 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
114
117
  inline-size: 5.2631578947%;
115
118
  }
116
- .awsui_list_p8a6i_k1rsq_48.awsui_list-grid-20_p8a6i_k1rsq_116 > .awsui_card_p8a6i_k1rsq_59:not(#\9) {
119
+ .awsui_list_p8a6i_1ktd8_51.awsui_list-grid-20_p8a6i_1ktd8_119 > .awsui_card_p8a6i_1ktd8_62:not(#\9) {
117
120
  inline-size: 5%;
118
121
  }
119
122
 
120
- .awsui_selection-control_p8a6i_k1rsq_120:not(#\9) {
123
+ .awsui_selection-control_p8a6i_1ktd8_123:not(#\9) {
121
124
  position: absolute;
122
125
  box-sizing: border-box;
123
126
  inline-size: calc(var(--size-control-jpgj8e, 14px) + 2 * var(--space-card-horizontal-default-2sdf3l, 20px));
@@ -127,22 +130,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
127
130
  padding-inline: var(--space-card-horizontal-default-2sdf3l, 20px);
128
131
  }
129
132
 
130
- .awsui_loading_p8a6i_k1rsq_130:not(#\9),
131
- .awsui_empty_p8a6i_k1rsq_131:not(#\9) {
133
+ .awsui_loading_p8a6i_1ktd8_133:not(#\9),
134
+ .awsui_empty_p8a6i_1ktd8_134:not(#\9) {
132
135
  overflow: hidden;
133
136
  text-align: center;
134
137
  color: var(--color-text-empty-y81uqw, #687078);
135
138
  margin-block-end: var(--space-scaled-l-33ruz6, 20px);
136
139
  }
137
140
 
138
- .awsui_has-header_p8a6i_k1rsq_138:not(#\9) {
141
+ .awsui_has-header_p8a6i_1ktd8_141:not(#\9) {
139
142
  margin-block-start: var(--space-grid-gutter-2qs4vj, 20px);
140
143
  }
141
- .awsui_has-header_p8a6i_k1rsq_138.awsui_refresh_p8a6i_k1rsq_141.awsui_header-variant-full-page_p8a6i_k1rsq_41:not(#\9) {
144
+ .awsui_has-header_p8a6i_1ktd8_141.awsui_refresh_p8a6i_1ktd8_144.awsui_header-variant-full-page_p8a6i_1ktd8_41:not(#\9) {
142
145
  margin-block-start: var(--space-scaled-s-2crg2b, 12px);
143
146
  }
144
147
 
145
- .awsui_card_p8a6i_k1rsq_59:not(#\9) {
148
+ .awsui_card_p8a6i_1ktd8_62:not(#\9) {
146
149
  overflow-wrap: break-word;
147
150
  word-wrap: break-word;
148
151
  box-sizing: border-box;
@@ -154,7 +157,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
154
157
  padding-inline-end: 0;
155
158
  list-style: none;
156
159
  }
157
- .awsui_card-header_p8a6i_k1rsq_157:not(#\9) {
160
+ .awsui_card-header_p8a6i_1ktd8_160:not(#\9) {
158
161
  font-family: var(--font-family-heading-f20kh9, "Noto Sans", "Helvetica Neue", Roboto, Arial, sans-serif);
159
162
  font-size: var(--font-size-heading-m-cqvsuv, 18px);
160
163
  line-height: var(--line-height-heading-m-d6lkzb, 22px);
@@ -163,42 +166,42 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
163
166
  -webkit-font-smoothing: var(--font-smoothing-webkit-dpz0hr, auto);
164
167
  -moz-osx-font-smoothing: var(--font-smoothing-moz-osx-kjlydy, auto);
165
168
  }
166
- .awsui_card-header-inner_p8a6i_k1rsq_166:not(#\9) {
169
+ .awsui_card-header-inner_p8a6i_1ktd8_169:not(#\9) {
167
170
  /* used in test-utils */
168
171
  }
169
- .awsui_card-header-inner-selectable_p8a6i_k1rsq_169:not(#\9) {
172
+ .awsui_card-header-inner-selectable_p8a6i_1ktd8_172:not(#\9) {
170
173
  inline-size: 90%;
171
174
  }
172
- .awsui_card-selected_p8a6i_k1rsq_172:not(#\9) {
175
+ .awsui_card-selected_p8a6i_1ktd8_175:not(#\9) {
173
176
  /* Used in test utils */
174
177
  }
175
178
 
176
- .awsui_section_p8a6i_k1rsq_176:not(#\9) {
179
+ .awsui_section_p8a6i_1ktd8_179:not(#\9) {
177
180
  display: inline-block;
178
181
  box-sizing: border-box;
179
182
  padding-block-end: var(--space-scaled-xs-pajbd1, 8px);
180
183
  padding-inline: 0;
181
184
  vertical-align: top;
182
185
  }
183
- .awsui_section-header_p8a6i_k1rsq_183:not(#\9) {
186
+ .awsui_section-header_p8a6i_1ktd8_186:not(#\9) {
184
187
  font-size: var(--font-size-body-m-tq5a14, 14px);
185
188
  line-height: var(--line-height-body-m-5xw6xo, 22px);
186
189
  font-weight: var(--font-display-label-weight-tz6zkz, 400);
187
190
  color: var(--color-text-label-g80qnu, #545b64);
188
191
  }
189
- .awsui_section-content_p8a6i_k1rsq_189:not(#\9) {
192
+ .awsui_section-content_p8a6i_1ktd8_192:not(#\9) {
190
193
  /* used in test-utils */
191
194
  }
192
195
 
193
- .awsui_section_p8a6i_k1rsq_176:not(#\9):not(:first-child) {
196
+ .awsui_section_p8a6i_1ktd8_179:not(#\9):not(:first-child) {
194
197
  padding-block-start: var(--space-xs-m9b7jf, 8px);
195
198
  }
196
199
 
197
- .awsui_section_p8a6i_k1rsq_176:not(#\9):last-child {
200
+ .awsui_section_p8a6i_1ktd8_179:not(#\9):last-child {
198
201
  padding-block-end: 0;
199
202
  }
200
203
 
201
- .awsui_footer-pagination_p8a6i_k1rsq_201:not(#\9) {
204
+ .awsui_footer-pagination_p8a6i_1ktd8_204:not(#\9) {
202
205
  display: flex;
203
206
  justify-content: flex-end;
204
207
  }
@@ -2,43 +2,44 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_p8a6i_k1rsq_9",
6
- "header-variant-full-page": "awsui_header-variant-full-page_p8a6i_k1rsq_41",
7
- "header-refresh": "awsui_header-refresh_p8a6i_k1rsq_41",
8
- "list": "awsui_list_p8a6i_k1rsq_48",
9
- "list-grid-1": "awsui_list-grid-1_p8a6i_k1rsq_59",
10
- "card": "awsui_card_p8a6i_k1rsq_59",
11
- "list-grid-2": "awsui_list-grid-2_p8a6i_k1rsq_62",
12
- "list-grid-3": "awsui_list-grid-3_p8a6i_k1rsq_65",
13
- "list-grid-4": "awsui_list-grid-4_p8a6i_k1rsq_68",
14
- "list-grid-5": "awsui_list-grid-5_p8a6i_k1rsq_71",
15
- "list-grid-6": "awsui_list-grid-6_p8a6i_k1rsq_74",
16
- "list-grid-7": "awsui_list-grid-7_p8a6i_k1rsq_77",
17
- "list-grid-8": "awsui_list-grid-8_p8a6i_k1rsq_80",
18
- "list-grid-9": "awsui_list-grid-9_p8a6i_k1rsq_83",
19
- "list-grid-10": "awsui_list-grid-10_p8a6i_k1rsq_86",
20
- "list-grid-11": "awsui_list-grid-11_p8a6i_k1rsq_89",
21
- "list-grid-12": "awsui_list-grid-12_p8a6i_k1rsq_92",
22
- "list-grid-13": "awsui_list-grid-13_p8a6i_k1rsq_95",
23
- "list-grid-14": "awsui_list-grid-14_p8a6i_k1rsq_98",
24
- "list-grid-15": "awsui_list-grid-15_p8a6i_k1rsq_101",
25
- "list-grid-16": "awsui_list-grid-16_p8a6i_k1rsq_104",
26
- "list-grid-17": "awsui_list-grid-17_p8a6i_k1rsq_107",
27
- "list-grid-18": "awsui_list-grid-18_p8a6i_k1rsq_110",
28
- "list-grid-19": "awsui_list-grid-19_p8a6i_k1rsq_113",
29
- "list-grid-20": "awsui_list-grid-20_p8a6i_k1rsq_116",
30
- "selection-control": "awsui_selection-control_p8a6i_k1rsq_120",
31
- "loading": "awsui_loading_p8a6i_k1rsq_130",
32
- "empty": "awsui_empty_p8a6i_k1rsq_131",
33
- "has-header": "awsui_has-header_p8a6i_k1rsq_138",
34
- "refresh": "awsui_refresh_p8a6i_k1rsq_141",
35
- "card-header": "awsui_card-header_p8a6i_k1rsq_157",
36
- "card-header-inner": "awsui_card-header-inner_p8a6i_k1rsq_166",
37
- "card-header-inner-selectable": "awsui_card-header-inner-selectable_p8a6i_k1rsq_169",
38
- "card-selected": "awsui_card-selected_p8a6i_k1rsq_172",
39
- "section": "awsui_section_p8a6i_k1rsq_176",
40
- "section-header": "awsui_section-header_p8a6i_k1rsq_183",
41
- "section-content": "awsui_section-content_p8a6i_k1rsq_189",
42
- "footer-pagination": "awsui_footer-pagination_p8a6i_k1rsq_201"
5
+ "root": "awsui_root_p8a6i_1ktd8_9",
6
+ "header": "awsui_header_p8a6i_1ktd8_41",
7
+ "header-variant-full-page": "awsui_header-variant-full-page_p8a6i_1ktd8_41",
8
+ "header-refresh": "awsui_header-refresh_p8a6i_1ktd8_44",
9
+ "list": "awsui_list_p8a6i_1ktd8_51",
10
+ "list-grid-1": "awsui_list-grid-1_p8a6i_1ktd8_62",
11
+ "card": "awsui_card_p8a6i_1ktd8_62",
12
+ "list-grid-2": "awsui_list-grid-2_p8a6i_1ktd8_65",
13
+ "list-grid-3": "awsui_list-grid-3_p8a6i_1ktd8_68",
14
+ "list-grid-4": "awsui_list-grid-4_p8a6i_1ktd8_71",
15
+ "list-grid-5": "awsui_list-grid-5_p8a6i_1ktd8_74",
16
+ "list-grid-6": "awsui_list-grid-6_p8a6i_1ktd8_77",
17
+ "list-grid-7": "awsui_list-grid-7_p8a6i_1ktd8_80",
18
+ "list-grid-8": "awsui_list-grid-8_p8a6i_1ktd8_83",
19
+ "list-grid-9": "awsui_list-grid-9_p8a6i_1ktd8_86",
20
+ "list-grid-10": "awsui_list-grid-10_p8a6i_1ktd8_89",
21
+ "list-grid-11": "awsui_list-grid-11_p8a6i_1ktd8_92",
22
+ "list-grid-12": "awsui_list-grid-12_p8a6i_1ktd8_95",
23
+ "list-grid-13": "awsui_list-grid-13_p8a6i_1ktd8_98",
24
+ "list-grid-14": "awsui_list-grid-14_p8a6i_1ktd8_101",
25
+ "list-grid-15": "awsui_list-grid-15_p8a6i_1ktd8_104",
26
+ "list-grid-16": "awsui_list-grid-16_p8a6i_1ktd8_107",
27
+ "list-grid-17": "awsui_list-grid-17_p8a6i_1ktd8_110",
28
+ "list-grid-18": "awsui_list-grid-18_p8a6i_1ktd8_113",
29
+ "list-grid-19": "awsui_list-grid-19_p8a6i_1ktd8_116",
30
+ "list-grid-20": "awsui_list-grid-20_p8a6i_1ktd8_119",
31
+ "selection-control": "awsui_selection-control_p8a6i_1ktd8_123",
32
+ "loading": "awsui_loading_p8a6i_1ktd8_133",
33
+ "empty": "awsui_empty_p8a6i_1ktd8_134",
34
+ "has-header": "awsui_has-header_p8a6i_1ktd8_141",
35
+ "refresh": "awsui_refresh_p8a6i_1ktd8_144",
36
+ "card-header": "awsui_card-header_p8a6i_1ktd8_160",
37
+ "card-header-inner": "awsui_card-header-inner_p8a6i_1ktd8_169",
38
+ "card-header-inner-selectable": "awsui_card-header-inner-selectable_p8a6i_1ktd8_172",
39
+ "card-selected": "awsui_card-selected_p8a6i_1ktd8_175",
40
+ "section": "awsui_section_p8a6i_1ktd8_179",
41
+ "section-header": "awsui_section-header_p8a6i_1ktd8_186",
42
+ "section-content": "awsui_section-content_p8a6i_1ktd8_192",
43
+ "footer-pagination": "awsui_footer-pagination_p8a6i_1ktd8_204"
43
44
  };
44
45
 
@@ -1,8 +1,8 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_k2y2q_1fngv_9",
5
- "checkbox-control": "awsui_checkbox-control_k2y2q_1fngv_42",
6
- "outline": "awsui_outline_k2y2q_1fngv_50"
4
+ "root": "awsui_root_k2y2q_cvwwu_9",
5
+ "checkbox-control": "awsui_checkbox-control_k2y2q_cvwwu_42",
6
+ "outline": "awsui_outline_k2y2q_cvwwu_50"
7
7
  };
8
8
 
@@ -6,7 +6,7 @@
6
6
  /* stylelint-enable @cloudscape-design/no-motion-outside-of-mixin, selector-combinator-disallowed-list, selector-pseudo-class-no-unknown, selector-class-pattern */
7
7
  /* Style used for links in slots/components that are text heavy, to help links stand out among
8
8
  surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F73#description */
9
- .awsui_root_k2y2q_1fngv_9.awsui_root_k2y2q_1fngv_9:not(#\9) {
9
+ .awsui_root_k2y2q_cvwwu_9.awsui_root_k2y2q_cvwwu_9:not(#\9) {
10
10
  border-collapse: separate;
11
11
  border-spacing: 0;
12
12
  box-sizing: border-box;
@@ -39,7 +39,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
39
39
  display: flex;
40
40
  }
41
41
 
42
- .awsui_checkbox-control_k2y2q_1fngv_42:not(#\9) {
42
+ .awsui_checkbox-control_k2y2q_cvwwu_42:not(#\9) {
43
43
  margin-block-start: calc((var(--line-height-body-m-5xw6xo, 22px) - var(--size-control-jpgj8e, 14px)) / 2);
44
44
  min-block-size: var(--size-control-jpgj8e, 14px);
45
45
  min-inline-size: var(--size-control-jpgj8e, 14px);
@@ -47,15 +47,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
47
47
  inline-size: var(--size-control-jpgj8e, 14px);
48
48
  }
49
49
 
50
- .awsui_outline_k2y2q_1fngv_50:not(#\9) {
51
- --awsui-style-focus-ring-box-shadow-esndbs: 0 0 0 var(--awsui-style-focus-ring-border-width-esndbs, 2px) var(--awsui-style-focus-ring-border-color-esndbs, var(--color-border-item-focused-sewkzn, #0073bb));
50
+ .awsui_outline_k2y2q_cvwwu_50:not(#\9) {
51
+ --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));
52
52
  position: relative;
53
53
  }
54
- .awsui_outline_k2y2q_1fngv_50:not(#\9) {
54
+ .awsui_outline_k2y2q_cvwwu_50:not(#\9) {
55
55
  outline: 2px dotted transparent;
56
56
  outline-offset: calc(2px - 1px);
57
57
  }
58
- .awsui_outline_k2y2q_1fngv_50:not(#\9)::before {
58
+ .awsui_outline_k2y2q_cvwwu_50:not(#\9)::before {
59
59
  content: " ";
60
60
  display: block;
61
61
  position: absolute;
@@ -63,9 +63,9 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
63
63
  inset-block-start: calc(-1 * 2px);
64
64
  inline-size: calc(100% + 2px + 2px);
65
65
  block-size: calc(100% + 2px + 2px);
66
- border-start-start-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
67
- border-start-end-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
68
- border-end-start-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
69
- border-end-end-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
70
- box-shadow: var(--awsui-style-focus-ring-box-shadow-esndbs);
66
+ border-start-start-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
67
+ border-start-end-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
68
+ border-end-start-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
69
+ border-end-end-radius: var(--awsui-style-focus-ring-border-radius-66120l, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
70
+ box-shadow: var(--awsui-style-focus-ring-box-shadow-66120l);
71
71
  }