@cloudscape-design/components 3.0.28 → 3.0.31

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 (279) hide show
  1. package/app-layout/visual-refresh/styles.css.js +59 -59
  2. package/app-layout/visual-refresh/styles.scoped.css +146 -146
  3. package/app-layout/visual-refresh/styles.selectors.js +59 -59
  4. package/autosuggest/autosuggest-option.d.ts +1 -0
  5. package/autosuggest/autosuggest-option.d.ts.map +1 -1
  6. package/autosuggest/autosuggest-option.js +2 -2
  7. package/autosuggest/autosuggest-option.js.map +1 -1
  8. package/autosuggest/controller.d.ts +2 -5
  9. package/autosuggest/controller.d.ts.map +1 -1
  10. package/autosuggest/controller.js +5 -49
  11. package/autosuggest/controller.js.map +1 -1
  12. package/autosuggest/internal.d.ts.map +1 -1
  13. package/autosuggest/internal.js +19 -25
  14. package/autosuggest/internal.js.map +1 -1
  15. package/autosuggest/options-controller.d.ts +25 -0
  16. package/autosuggest/options-controller.d.ts.map +1 -0
  17. package/autosuggest/options-controller.js +64 -0
  18. package/autosuggest/options-controller.js.map +1 -0
  19. package/autosuggest/options-list.d.ts +3 -2
  20. package/autosuggest/options-list.d.ts.map +1 -1
  21. package/autosuggest/options-list.js +8 -7
  22. package/autosuggest/options-list.js.map +1 -1
  23. package/autosuggest/plain-list.d.ts +2 -2
  24. package/autosuggest/plain-list.d.ts.map +1 -1
  25. package/autosuggest/plain-list.js +4 -4
  26. package/autosuggest/plain-list.js.map +1 -1
  27. package/autosuggest/virtual-list.d.ts +1 -1
  28. package/autosuggest/virtual-list.d.ts.map +1 -1
  29. package/autosuggest/virtual-list.js +4 -4
  30. package/autosuggest/virtual-list.js.map +1 -1
  31. package/breadcrumb-group/internal.d.ts.map +1 -1
  32. package/breadcrumb-group/internal.js +4 -4
  33. package/breadcrumb-group/internal.js.map +1 -1
  34. package/button-dropdown/category-elements/category-element.d.ts +1 -1
  35. package/button-dropdown/category-elements/category-element.d.ts.map +1 -1
  36. package/button-dropdown/category-elements/category-element.js +2 -2
  37. package/button-dropdown/category-elements/category-element.js.map +1 -1
  38. package/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
  39. package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  40. package/button-dropdown/category-elements/expandable-category-element.js +4 -2
  41. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  42. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
  43. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  44. package/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
  45. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  46. package/button-dropdown/category-elements/styles.css.js +13 -12
  47. package/button-dropdown/category-elements/styles.scoped.css +26 -22
  48. package/button-dropdown/category-elements/styles.selectors.js +13 -12
  49. package/button-dropdown/interfaces.d.ts +3 -1
  50. package/button-dropdown/interfaces.d.ts.map +1 -1
  51. package/button-dropdown/interfaces.js.map +1 -1
  52. package/button-dropdown/internal.d.ts.map +1 -1
  53. package/button-dropdown/internal.js +6 -11
  54. package/button-dropdown/internal.js.map +1 -1
  55. package/button-dropdown/item-element/index.d.ts +1 -1
  56. package/button-dropdown/item-element/index.d.ts.map +1 -1
  57. package/button-dropdown/item-element/index.js +2 -1
  58. package/button-dropdown/item-element/index.js.map +1 -1
  59. package/button-dropdown/item-element/styles.css.js +14 -13
  60. package/button-dropdown/item-element/styles.scoped.css +21 -17
  61. package/button-dropdown/item-element/styles.selectors.js +14 -13
  62. package/button-dropdown/items-list.d.ts +1 -1
  63. package/button-dropdown/items-list.d.ts.map +1 -1
  64. package/button-dropdown/items-list.js +4 -4
  65. package/button-dropdown/items-list.js.map +1 -1
  66. package/button-dropdown/utils/use-button-dropdown.d.ts +2 -2
  67. package/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  68. package/button-dropdown/utils/use-button-dropdown.js +7 -5
  69. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  70. package/button-dropdown/utils/use-highlighted-menu.d.ts +1 -0
  71. package/button-dropdown/utils/use-highlighted-menu.d.ts.map +1 -1
  72. package/button-dropdown/utils/use-highlighted-menu.js +11 -3
  73. package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  74. package/checkbox/styles.css.js +3 -3
  75. package/checkbox/styles.scoped.css +6 -6
  76. package/checkbox/styles.selectors.js +3 -3
  77. package/date-picker/calendar/index.d.ts.map +1 -1
  78. package/date-picker/calendar/index.js +2 -1
  79. package/date-picker/calendar/index.js.map +1 -1
  80. package/date-picker/calendar/utils/memoized-date.d.ts +2 -0
  81. package/date-picker/calendar/utils/memoized-date.d.ts.map +1 -0
  82. package/date-picker/calendar/utils/memoized-date.js +13 -0
  83. package/date-picker/calendar/utils/memoized-date.js.map +1 -0
  84. package/date-picker/embedded.js +1 -1
  85. package/date-picker/embedded.js.map +1 -1
  86. package/date-picker/index.js +1 -1
  87. package/date-picker/index.js.map +1 -1
  88. package/date-picker/use-date-picker.d.ts.map +1 -1
  89. package/date-picker/use-date-picker.js +1 -1
  90. package/date-picker/use-date-picker.js.map +1 -1
  91. package/date-range-picker/calendar/grids/day/index.js +1 -1
  92. package/date-range-picker/calendar/grids/day/index.js.map +1 -1
  93. package/date-range-picker/calendar/index.d.ts.map +1 -1
  94. package/date-range-picker/calendar/index.js +3 -3
  95. package/date-range-picker/calendar/index.js.map +1 -1
  96. package/date-range-picker/dropdown.d.ts +1 -0
  97. package/date-range-picker/dropdown.d.ts.map +1 -1
  98. package/date-range-picker/dropdown.js +18 -30
  99. package/date-range-picker/dropdown.js.map +1 -1
  100. package/date-range-picker/embedded.d.ts +7 -0
  101. package/date-range-picker/embedded.d.ts.map +1 -0
  102. package/date-range-picker/embedded.js +46 -0
  103. package/date-range-picker/embedded.js.map +1 -0
  104. package/date-range-picker/index.d.ts.map +1 -1
  105. package/date-range-picker/index.js +5 -18
  106. package/date-range-picker/index.js.map +1 -1
  107. package/date-range-picker/interfaces.d.ts +46 -44
  108. package/date-range-picker/interfaces.d.ts.map +1 -1
  109. package/date-range-picker/interfaces.js.map +1 -1
  110. package/date-range-picker/time-offset.d.ts +0 -7
  111. package/date-range-picker/time-offset.d.ts.map +1 -1
  112. package/date-range-picker/time-offset.js +4 -60
  113. package/date-range-picker/time-offset.js.map +1 -1
  114. package/date-range-picker/use-date-range-picker.d.ts +29 -0
  115. package/date-range-picker/use-date-range-picker.d.ts.map +1 -0
  116. package/date-range-picker/use-date-range-picker.js +58 -0
  117. package/date-range-picker/use-date-range-picker.js.map +1 -0
  118. package/icon/icons.js +1 -1
  119. package/icon/interfaces.d.ts +1 -1
  120. package/icon/interfaces.d.ts.map +1 -1
  121. package/icon/interfaces.js.map +1 -1
  122. package/input/styles.css.js +13 -13
  123. package/input/styles.scoped.css +35 -37
  124. package/input/styles.selectors.js +13 -13
  125. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  126. package/internal/components/abstract-switch/index.js +5 -5
  127. package/internal/components/abstract-switch/index.js.map +1 -1
  128. package/internal/components/abstract-switch/styles.css.js +11 -11
  129. package/internal/components/abstract-switch/styles.scoped.css +20 -13
  130. package/internal/components/abstract-switch/styles.selectors.js +11 -11
  131. package/internal/components/date-input/index.d.ts.map +1 -1
  132. package/internal/components/date-input/index.js +3 -2
  133. package/internal/components/date-input/index.js.map +1 -1
  134. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  135. package/internal/components/masked-input/utils/mask-format.js +2 -1
  136. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  137. package/internal/components/masked-input/utils/strings.d.ts +0 -1
  138. package/internal/components/masked-input/utils/strings.d.ts.map +1 -1
  139. package/internal/components/masked-input/utils/strings.js +0 -6
  140. package/internal/components/masked-input/utils/strings.js.map +1 -1
  141. package/internal/components/options-list/utils/use-highlight-option.d.ts +7 -2
  142. package/internal/components/options-list/utils/use-highlight-option.d.ts.map +1 -1
  143. package/internal/components/options-list/utils/use-highlight-option.js +10 -3
  144. package/internal/components/options-list/utils/use-highlight-option.js.map +1 -1
  145. package/internal/components/selectable-item/index.d.ts +1 -1
  146. package/internal/components/selectable-item/index.d.ts.map +1 -1
  147. package/internal/components/selectable-item/index.js +2 -2
  148. package/internal/components/selectable-item/index.js.map +1 -1
  149. package/internal/components/selectable-item/styles.css.js +16 -16
  150. package/internal/components/selectable-item/styles.scoped.css +29 -30
  151. package/internal/components/selectable-item/styles.selectors.js +16 -16
  152. package/internal/environment.js +1 -1
  153. package/internal/utils/date-time/display-format.d.ts +9 -0
  154. package/internal/utils/date-time/display-format.d.ts.map +1 -0
  155. package/internal/utils/date-time/display-format.js +15 -0
  156. package/internal/utils/date-time/display-format.js.map +1 -0
  157. package/internal/utils/date-time/format-date.d.ts +7 -0
  158. package/internal/utils/date-time/format-date.d.ts.map +1 -0
  159. package/internal/utils/date-time/format-date.js +15 -0
  160. package/internal/utils/date-time/format-date.js.map +1 -0
  161. package/internal/utils/date-time/format-time.d.ts +5 -0
  162. package/internal/utils/date-time/format-time.d.ts.map +1 -0
  163. package/internal/utils/date-time/format-time.js +13 -0
  164. package/internal/utils/date-time/format-time.js.map +1 -0
  165. package/internal/utils/date-time/format-timezone-offset.d.ts +2 -0
  166. package/internal/utils/date-time/format-timezone-offset.d.ts.map +1 -0
  167. package/internal/utils/date-time/format-timezone-offset.js +11 -0
  168. package/internal/utils/date-time/format-timezone-offset.js.map +1 -0
  169. package/internal/utils/date-time/get-browser-timezone-offset.d.ts +7 -0
  170. package/internal/utils/date-time/get-browser-timezone-offset.d.ts.map +1 -0
  171. package/internal/utils/date-time/get-browser-timezone-offset.js +11 -0
  172. package/internal/utils/date-time/get-browser-timezone-offset.js.map +1 -0
  173. package/internal/utils/date-time/index.d.ts +11 -0
  174. package/internal/utils/date-time/index.d.ts.map +1 -0
  175. package/internal/utils/date-time/index.js +13 -0
  176. package/internal/utils/date-time/index.js.map +1 -0
  177. package/internal/utils/date-time/is-iso-date-only.d.ts +5 -0
  178. package/internal/utils/date-time/is-iso-date-only.d.ts.map +1 -0
  179. package/internal/utils/date-time/is-iso-date-only.js +10 -0
  180. package/internal/utils/date-time/is-iso-date-only.js.map +1 -0
  181. package/internal/utils/date-time/join-date-time.d.ts +2 -0
  182. package/internal/utils/date-time/join-date-time.d.ts.map +1 -0
  183. package/internal/utils/date-time/join-date-time.js +6 -0
  184. package/internal/utils/date-time/join-date-time.js.map +1 -0
  185. package/internal/utils/date-time/parse-date.d.ts +8 -0
  186. package/internal/utils/date-time/parse-date.d.ts.map +1 -0
  187. package/internal/utils/date-time/parse-date.js +16 -0
  188. package/internal/utils/date-time/parse-date.js.map +1 -0
  189. package/internal/utils/date-time/parse-timezone-offset.d.ts +5 -0
  190. package/internal/utils/date-time/parse-timezone-offset.d.ts.map +1 -0
  191. package/internal/utils/date-time/parse-timezone-offset.js +20 -0
  192. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -0
  193. package/internal/utils/date-time/shift-timezone-offset.d.ts +12 -0
  194. package/internal/utils/date-time/shift-timezone-offset.d.ts.map +1 -0
  195. package/internal/utils/date-time/shift-timezone-offset.js +27 -0
  196. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -0
  197. package/internal/utils/strings/index.d.ts +3 -0
  198. package/internal/utils/strings/index.d.ts.map +1 -0
  199. package/internal/utils/strings/index.js +5 -0
  200. package/internal/utils/strings/index.js.map +1 -0
  201. package/internal/utils/strings/join-strings.d.ts +5 -0
  202. package/internal/utils/strings/join-strings.d.ts.map +1 -0
  203. package/internal/utils/{strings.js → strings/join-strings.js} +7 -6
  204. package/internal/utils/strings/join-strings.js.map +1 -0
  205. package/internal/utils/strings/pad-left-zeros.d.ts +5 -0
  206. package/internal/utils/strings/pad-left-zeros.d.ts.map +1 -0
  207. package/internal/utils/strings/pad-left-zeros.js +12 -0
  208. package/internal/utils/strings/pad-left-zeros.js.map +1 -0
  209. package/multiselect/internal.d.ts.map +1 -1
  210. package/multiselect/internal.js +2 -2
  211. package/multiselect/internal.js.map +1 -1
  212. package/package.json +1 -1
  213. package/popover/styles.css.js +48 -48
  214. package/popover/styles.scoped.css +65 -60
  215. package/popover/styles.selectors.js +48 -48
  216. package/radio-group/styles.css.js +9 -9
  217. package/radio-group/styles.scoped.css +16 -16
  218. package/radio-group/styles.selectors.js +9 -9
  219. package/select/internal.d.ts.map +1 -1
  220. package/select/internal.js +2 -2
  221. package/select/internal.js.map +1 -1
  222. package/select/parts/item.d.ts +1 -1
  223. package/select/parts/item.d.ts.map +1 -1
  224. package/select/parts/item.js +6 -3
  225. package/select/parts/item.js.map +1 -1
  226. package/select/parts/multiselect-item.d.ts +1 -1
  227. package/select/parts/multiselect-item.d.ts.map +1 -1
  228. package/select/parts/multiselect-item.js +2 -2
  229. package/select/parts/multiselect-item.js.map +1 -1
  230. package/select/parts/plain-list.d.ts +1 -1
  231. package/select/parts/plain-list.d.ts.map +1 -1
  232. package/select/parts/plain-list.js +4 -4
  233. package/select/parts/plain-list.js.map +1 -1
  234. package/select/parts/styles.css.js +8 -7
  235. package/select/parts/styles.scoped.css +12 -7
  236. package/select/parts/styles.selectors.js +8 -7
  237. package/select/parts/virtual-list.js +4 -4
  238. package/select/parts/virtual-list.js.map +1 -1
  239. package/select/utils/get-item-props.d.ts +1 -2
  240. package/select/utils/get-item-props.d.ts.map +1 -1
  241. package/select/utils/get-item-props.js +3 -3
  242. package/select/utils/get-item-props.js.map +1 -1
  243. package/select/utils/render-options.d.ts +2 -2
  244. package/select/utils/render-options.d.ts.map +1 -1
  245. package/select/utils/render-options.js +2 -3
  246. package/select/utils/render-options.js.map +1 -1
  247. package/select/utils/use-select.d.ts +1 -0
  248. package/select/utils/use-select.d.ts.map +1 -1
  249. package/select/utils/use-select.js +2 -1
  250. package/select/utils/use-select.js.map +1 -1
  251. package/split-panel/index.d.ts.map +1 -1
  252. package/split-panel/index.js +2 -2
  253. package/split-panel/index.js.map +1 -1
  254. package/table/styles.css.js +32 -32
  255. package/table/styles.scoped.css +40 -43
  256. package/table/styles.selectors.js +32 -32
  257. package/tabs/styles.css.js +21 -21
  258. package/tabs/styles.scoped.css +40 -43
  259. package/tabs/styles.selectors.js +21 -21
  260. package/textarea/styles.css.js +4 -4
  261. package/textarea/styles.scoped.css +13 -14
  262. package/textarea/styles.selectors.js +4 -4
  263. package/toggle/internal.d.ts.map +1 -1
  264. package/toggle/internal.js +3 -1
  265. package/toggle/internal.js.map +1 -1
  266. package/toggle/styles.css.js +8 -8
  267. package/toggle/styles.scoped.css +15 -14
  268. package/toggle/styles.selectors.js +8 -8
  269. package/date-picker/calendar/utils/date.d.ts +0 -10
  270. package/date-picker/calendar/utils/date.d.ts.map +0 -1
  271. package/date-picker/calendar/utils/date.js +0 -50
  272. package/date-picker/calendar/utils/date.js.map +0 -1
  273. package/internal/components/date-input/utils/date.d.ts +0 -5
  274. package/internal/components/date-input/utils/date.d.ts.map +0 -1
  275. package/internal/components/date-input/utils/date.js +0 -11
  276. package/internal/components/date-input/utils/date.js.map +0 -1
  277. package/internal/utils/strings.d.ts +0 -2
  278. package/internal/utils/strings.d.ts.map +0 -1
  279. package/internal/utils/strings.js.map +0 -1
@@ -28,7 +28,7 @@ export function useSelect(_a) {
28
28
  }
29
29
  return selectedValuesSet;
30
30
  }, new Set());
31
- var _c = useHighlightedOption(options), highlightedOption = _c.highlightedOption, highlightedIndex = _c.highlightedIndex, moveHighlight = _c.moveHighlight, resetHighlight = _c.resetHighlight, setHighlightedIndex = _c.setHighlightedIndex, highlightOption = _c.highlightOption, goHome = _c.goHome, goEnd = _c.goEnd;
31
+ var _c = useHighlightedOption({ options: options, isKeyboard: isKeyboard }), highlightedOption = _c.highlightedOption, highlightedIndex = _c.highlightedIndex, highlightedType = _c.highlightedType, moveHighlight = _c.moveHighlight, resetHighlight = _c.resetHighlight, setHighlightedIndex = _c.setHighlightedIndex, highlightOption = _c.highlightOption, goHome = _c.goHome, goEnd = _c.goEnd;
32
32
  var _d = useOpenState({
33
33
  onOpen: function () { return fireLoadItems(''); },
34
34
  onClose: function () {
@@ -224,6 +224,7 @@ export function useSelect(_a) {
224
224
  isOpen: isOpen,
225
225
  highlightedOption: highlightedOption,
226
226
  highlightedIndex: highlightedIndex,
227
+ highlightedType: highlightedType,
227
228
  getTriggerProps: getTriggerProps,
228
229
  getMenuProps: getMenuProps,
229
230
  getFilterProps: getFilterProps,
@@ -1 +1 @@
1
- {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.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, { RefObject } from 'react';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isInteractive, isGroupInteractive, isGroup } from '../../internal/components/option/utils/filter-options';\nimport { useEffect, useRef, MutableRefObject } from 'react';\nimport { createHighlightedOptionHook } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useIds, getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { connectOptionsByValue } from './connect-options';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { BaseKeyDetail } from '../../internal/events';\nimport { CancelableEventHandler, fireCancelableEvent, NonCancelableEventHandler } from '../../internal/events/index';\nimport { containsOrEqual } from '../../internal/utils/dom';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n onBlur?: CancelableEventHandler;\n onFocus?: CancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n}\n\nexport interface SelectTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n onMouseDown?: (event: CustomEvent) => void;\n onKeyDown?: (event: CustomEvent<BaseKeyDetail>) => void;\n ariaLabelledby?: string;\n onFocus: NonCancelableEventHandler;\n onBlur: NonCancelableEventHandler<{ relatedTarget: Node | null }>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n const useHighlightedOption = createHighlightedOptionHook({ isHighlightable: isHighlightable });\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none';\n const activeRef = hasFilter ? filterRef : menuRef;\n const isKeyboard = useRef<boolean>(false);\n const isSelectingUsingSpace = useRef<boolean>(false);\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const {\n highlightedOption,\n highlightedIndex,\n moveHighlight,\n resetHighlight,\n setHighlightedIndex,\n highlightOption,\n goHome,\n goEnd,\n } = useHighlightedOption(options);\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown } = useOpenState({\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlight();\n setFilteringValue('');\n },\n });\n\n const focused: MutableRefObject<boolean> = useRef<boolean>(false);\n const handleFocus = () => {\n if (!focused.current) {\n fireCancelableEvent(onFocus, {});\n focused.current = true;\n }\n };\n const handleBlur = ({ detail }: { detail: { relatedTarget: Node | null } }) => {\n const { relatedTarget } = detail;\n const nextFocusedIsTrigger = relatedTarget ? containsOrEqual(triggerRef.current, relatedTarget) : false;\n const nextFocusedInsideDropdown = relatedTarget\n ? containsOrEqual(menuRef.current, relatedTarget) || containsOrEqual(filterRef.current, relatedTarget)\n : false;\n const nextFocusedInsideComponent = nextFocusedIsTrigger || nextFocusedInsideDropdown;\n const focusingOut = focused.current && !nextFocusedInsideComponent;\n\n if (nextFocusedIsTrigger || focusingOut) {\n closeDropdown();\n }\n if (focusingOut) {\n fireCancelableEvent(onBlur, {});\n focused.current = false;\n }\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const { selectedOptionId, menuId } = useIds({ hasSelectedOption });\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const selectOption = (option?: DropdownOption) => {\n isSelectingUsingSpace.current = false;\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n updateSelectedOption(optionToSelect.option);\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n moveHighlight,\n selectOption,\n goHome,\n goEnd,\n closeDropdown: () => {\n triggerRef.current?.focus();\n closeDropdown();\n },\n isKeyboard,\n isSelectingUsingSpace,\n preventNativeSpace: !hasFilter,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({ openDropdown, goHome, isKeyboard });\n\n const getTriggerProps = (disabled = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: handleFocus,\n onBlur: handleBlur,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n if (hasSelectedOption) {\n triggerProps.ariaLabelledby = selectedOptionId;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n __onBlurWithDetail: handleBlur,\n onFocus: handleFocus,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlight();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseUp: itemIndex => {\n isKeyboard.current = false;\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n isKeyboard.current = false;\n if (itemIndex > -1) {\n setHighlightedIndex(itemIndex);\n }\n },\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.onBlur = handleBlur;\n menuProps.onFocus = handleFocus;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate,\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component\n if (isOpen && !prevOpen && hasSelectedOption) {\n setHighlightedIndex(options.indexOf(__selectedOptions[0]));\n }\n }, [isOpen, __selectedOptions, hasSelectedOption, setHighlightedIndex, options, prevOpen]);\n\n useEffect(() => {\n if (isOpen) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n getTriggerProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n isKeyboard,\n highlightOption,\n selectOption,\n announceSelected,\n };\n}\n"]}
1
+ {"version":3,"file":"use-select.js","sourceRoot":"","sources":["../../../../src/select/utils/use-select.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, { RefObject } from 'react';\nimport { DropdownOption, OptionDefinition, OptionGroup } from '../../internal/components/option/interfaces';\nimport { isInteractive, isGroupInteractive, isGroup } from '../../internal/components/option/utils/filter-options';\nimport { useEffect, useRef, MutableRefObject } from 'react';\nimport { createHighlightedOptionHook } from '../../internal/components/options-list/utils/use-highlight-option';\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { useMenuKeyboard, useTriggerKeyboard } from '../../internal/components/options-list/utils/use-keyboard';\nimport { useIds, getOptionId } from '../../internal/components/options-list/utils/use-ids';\nimport { connectOptionsByValue } from './connect-options';\nimport useForwardFocus from '../../internal/hooks/forward-focus';\nimport { OptionsListProps } from '../../internal/components/options-list';\nimport { FilterProps } from '../parts/filter';\nimport { ItemProps } from '../parts/item';\nimport { usePrevious } from '../../internal/hooks/use-previous';\nimport { BaseKeyDetail } from '../../internal/events';\nimport { CancelableEventHandler, fireCancelableEvent, NonCancelableEventHandler } from '../../internal/events/index';\nimport { containsOrEqual } from '../../internal/utils/dom';\n\nexport type MenuProps = Omit<OptionsListProps, 'children'> & { ref: React.RefObject<HTMLUListElement> };\nexport type GetOptionProps = (option: DropdownOption, index: number) => ItemProps;\n\ninterface UseSelectProps {\n selectedOptions: ReadonlyArray<OptionDefinition>;\n updateSelectedOption: (option: OptionDefinition) => void;\n options: ReadonlyArray<DropdownOption>;\n filteringType: string;\n keepOpen?: boolean;\n onBlur?: CancelableEventHandler;\n onFocus?: CancelableEventHandler;\n externalRef: React.Ref<any>;\n fireLoadItems: (filteringText: string) => void;\n setFilteringValue: (filteringText: string) => void;\n useInteractiveGroups?: boolean;\n}\n\nexport interface SelectTriggerProps {\n ref: RefObject<HTMLButtonElement>;\n onMouseDown?: (event: CustomEvent) => void;\n onKeyDown?: (event: CustomEvent<BaseKeyDetail>) => void;\n ariaLabelledby?: string;\n onFocus: NonCancelableEventHandler;\n onBlur: NonCancelableEventHandler<{ relatedTarget: Node | null }>;\n}\n\nexport function useSelect({\n selectedOptions,\n updateSelectedOption,\n options,\n filteringType,\n onBlur,\n onFocus,\n externalRef,\n keepOpen,\n fireLoadItems,\n setFilteringValue,\n useInteractiveGroups = false,\n}: UseSelectProps) {\n const interactivityCheck = useInteractiveGroups ? isGroupInteractive : isInteractive;\n\n const isHighlightable = (option?: DropdownOption) => !!option && (useInteractiveGroups || option.type !== 'parent');\n const useHighlightedOption = createHighlightedOptionHook({ isHighlightable: isHighlightable });\n\n const filterRef = useRef<HTMLInputElement>(null);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuRef = useRef<HTMLUListElement>(null);\n const hasFilter = filteringType !== 'none';\n const activeRef = hasFilter ? filterRef : menuRef;\n const isKeyboard = useRef<boolean>(false);\n const isSelectingUsingSpace = useRef<boolean>(false);\n const __selectedOptions = connectOptionsByValue(options, selectedOptions);\n const __selectedValuesSet = selectedOptions.reduce((selectedValuesSet: Set<string>, item: OptionDefinition) => {\n if (item.value) {\n selectedValuesSet.add(item.value);\n }\n return selectedValuesSet;\n }, new Set<string>());\n const {\n highlightedOption,\n highlightedIndex,\n highlightedType,\n moveHighlight,\n resetHighlight,\n setHighlightedIndex,\n highlightOption,\n goHome,\n goEnd,\n } = useHighlightedOption({ options, isKeyboard });\n\n const { isOpen, openDropdown, closeDropdown, toggleDropdown } = useOpenState({\n onOpen: () => fireLoadItems(''),\n onClose: () => {\n resetHighlight();\n setFilteringValue('');\n },\n });\n\n const focused: MutableRefObject<boolean> = useRef<boolean>(false);\n const handleFocus = () => {\n if (!focused.current) {\n fireCancelableEvent(onFocus, {});\n focused.current = true;\n }\n };\n const handleBlur = ({ detail }: { detail: { relatedTarget: Node | null } }) => {\n const { relatedTarget } = detail;\n const nextFocusedIsTrigger = relatedTarget ? containsOrEqual(triggerRef.current, relatedTarget) : false;\n const nextFocusedInsideDropdown = relatedTarget\n ? containsOrEqual(menuRef.current, relatedTarget) || containsOrEqual(filterRef.current, relatedTarget)\n : false;\n const nextFocusedInsideComponent = nextFocusedIsTrigger || nextFocusedInsideDropdown;\n const focusingOut = focused.current && !nextFocusedInsideComponent;\n\n if (nextFocusedIsTrigger || focusingOut) {\n closeDropdown();\n }\n if (focusingOut) {\n fireCancelableEvent(onBlur, {});\n focused.current = false;\n }\n };\n\n const hasSelectedOption = __selectedOptions.length > 0;\n const { selectedOptionId, menuId } = useIds({ hasSelectedOption });\n const highlightedOptionId = getOptionId(menuId, highlightedIndex);\n\n const selectOption = (option?: DropdownOption) => {\n isSelectingUsingSpace.current = false;\n const optionToSelect = option || highlightedOption;\n if (!optionToSelect || !interactivityCheck(optionToSelect)) {\n return;\n }\n updateSelectedOption(optionToSelect.option);\n if (!keepOpen) {\n triggerRef.current?.focus();\n closeDropdown();\n }\n };\n\n const activeKeyDownHandler = useMenuKeyboard({\n moveHighlight,\n selectOption,\n goHome,\n goEnd,\n closeDropdown: () => {\n triggerRef.current?.focus();\n closeDropdown();\n },\n isKeyboard,\n isSelectingUsingSpace,\n preventNativeSpace: !hasFilter,\n });\n\n const triggerKeyDownHandler = useTriggerKeyboard({ openDropdown, goHome, isKeyboard });\n\n const getTriggerProps = (disabled = false) => {\n const triggerProps: SelectTriggerProps = {\n ref: triggerRef,\n onFocus: handleFocus,\n onBlur: handleBlur,\n };\n if (!disabled) {\n triggerProps.onMouseDown = (event: CustomEvent) => {\n event.preventDefault(); // prevent current focus from blurring as it immediately closes the dropdown\n if (isOpen) {\n triggerRef.current?.focus();\n }\n toggleDropdown();\n };\n triggerProps.onKeyDown = triggerKeyDownHandler;\n }\n if (hasSelectedOption) {\n triggerProps.ariaLabelledby = selectedOptionId;\n }\n return triggerProps;\n };\n\n const getFilterProps = (): Partial<FilterProps> => {\n if (!hasFilter) {\n return {};\n }\n\n return {\n ref: filterRef,\n onKeyDown: activeKeyDownHandler,\n __onBlurWithDetail: handleBlur,\n onFocus: handleFocus,\n onChange: event => {\n setFilteringValue(event.detail.value);\n resetHighlight();\n },\n __onDelayedInput: event => {\n fireLoadItems(event.detail.value);\n },\n __nativeAttributes: {\n 'aria-activedescendant': highlightedOptionId,\n ['aria-owns']: menuId,\n ['aria-controls']: menuId,\n },\n };\n };\n\n const getMenuProps = () => {\n const menuProps: MenuProps = {\n id: menuId,\n ref: menuRef,\n open: isOpen,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onMouseUp: itemIndex => {\n isKeyboard.current = false;\n if (itemIndex > -1) {\n selectOption(options[itemIndex]);\n }\n },\n onMouseMove: itemIndex => {\n isKeyboard.current = false;\n if (itemIndex > -1) {\n setHighlightedIndex(itemIndex);\n }\n },\n };\n if (!hasFilter) {\n menuProps.onKeyDown = activeKeyDownHandler;\n menuProps.onBlur = handleBlur;\n menuProps.onFocus = handleFocus;\n menuProps.nativeAttributes = {\n 'aria-activedescendant': highlightedOptionId,\n };\n }\n return menuProps;\n };\n const getGroupState = (option: OptionGroup) => {\n const totalSelected = option.options.filter(item => !!item.value && __selectedValuesSet.has(item.value)).length;\n const hasSelected = totalSelected > 0;\n const allSelected = totalSelected === option.options.length;\n return {\n selected: hasSelected && allSelected,\n indeterminate: hasSelected && !allSelected,\n };\n };\n\n const getOptionProps = (option: DropdownOption, index: number) => {\n const highlighted = option === highlightedOption;\n const groupState = isGroup(option.option) ? getGroupState(option.option) : undefined;\n const selected = __selectedOptions.indexOf(option) > -1 || !!groupState?.selected;\n const nextOption = options[index + 1]?.option;\n const isNextSelected =\n !!nextOption && isGroup(nextOption)\n ? getGroupState(nextOption).selected\n : __selectedOptions.indexOf(options[index + 1]) > -1;\n\n const optionProps: any = {\n key: index,\n option,\n highlighted,\n selected,\n isNextSelected,\n indeterminate: !!groupState?.indeterminate,\n ['data-mouse-target']: isHighlightable(option) ? index : -1,\n id: getOptionId(menuId, index),\n };\n\n return optionProps;\n };\n\n const prevOpen = usePrevious<boolean>(isOpen);\n useEffect(() => {\n // highlight the first selected option, when opening the Select component\n if (isOpen && !prevOpen && hasSelectedOption) {\n setHighlightedIndex(options.indexOf(__selectedOptions[0]));\n }\n }, [isOpen, __selectedOptions, hasSelectedOption, setHighlightedIndex, options, prevOpen]);\n\n useEffect(() => {\n if (isOpen) {\n // dropdown-fit calculations ensure that the dropdown will fit inside the current\n // viewport, so prevent the browser from trying to scroll it into view (e.g. if\n // scroll-padding-top is set on a parent)\n activeRef.current?.focus({ preventScroll: true });\n }\n }, [isOpen, activeRef]);\n\n useForwardFocus(externalRef, triggerRef as React.RefObject<HTMLElement>);\n const highlightedGroupSelected =\n !!highlightedOption && isGroup(highlightedOption.option) && getGroupState(highlightedOption.option).selected;\n const announceSelected =\n !!highlightedOption && (__selectedOptions.indexOf(highlightedOption) > -1 || highlightedGroupSelected);\n\n return {\n isOpen,\n highlightedOption,\n highlightedIndex,\n highlightedType,\n getTriggerProps,\n getMenuProps,\n getFilterProps,\n getOptionProps,\n isKeyboard,\n highlightOption,\n selectOption,\n announceSelected,\n };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/split-panel/index.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAejE,OAAO,EAAE,eAAe,EAAE,CAAC;AA8L3B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,qBAA6B,EAC7B,WAAW,EACX,GAAG,SAAS,EACb,EAAE,eAAe,eA4RjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/split-panel/index.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAejE,OAAO,EAAE,eAAe,EAAE,CAAC;AA+L3B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,qBAA6B,EAC7B,WAAW,EACX,GAAG,SAAS,EACb,EAAE,eAAe,eA8RjB"}
@@ -37,7 +37,7 @@ var TransitionContentSide = function (_a) {
37
37
  _c)), onClick: function () { return !isOpen && onToggle(); } },
38
38
  isOpen ? (React.createElement("div", { className: styles['slider-wrapper-side'] },
39
39
  React.createElement("div", __assign({ role: "slider", tabIndex: 0, "aria-label": i18nStrings.resizeHandleAriaLabel, "aria-valuemax": 100, "aria-valuemin": 0, "aria-valuenow": relativeSize, className: clsx(styles.slider, styles['slider-side']), onKeyDown: onKeyDown, onMouseDown: onSliderMouseDown }, focusVisible),
40
- React.createElement(ResizeHandler, { className: clsx(styles['slider-icon'], styles['slider-icon-side']) })))) : (React.createElement(InternalButton, { className: clsx(styles['open-button'], styles['open-button-side']), iconName: "angle-left", variant: "icon", formAction: "none", ariaLabel: i18nStrings.openButtonAriaLabel, ref: isRefresh ? null : toggleRef })),
40
+ React.createElement(ResizeHandler, { className: clsx(styles['slider-icon'], styles['slider-icon-side']) })))) : (React.createElement(InternalButton, { className: clsx(styles['open-button'], styles['open-button-side']), iconName: "angle-left", variant: "icon", formAction: "none", ariaLabel: i18nStrings.openButtonAriaLabel, ariaExpanded: isOpen, ref: isRefresh ? null : toggleRef })),
41
41
  React.createElement("div", { className: styles['content-side'], "aria-hidden": !isOpen },
42
42
  React.createElement("div", { className: clsx(styles['pane-header-wrapper-side']) }, paneHeader),
43
43
  React.createElement("hr", { className: styles['header-divider'] }),
@@ -150,7 +150,7 @@ export default function SplitPanel(_a) {
150
150
  !hidePreferencesButton && isOpen && (React.createElement(React.Fragment, null,
151
151
  React.createElement(InternalButton, { className: styles['preferences-button'], iconName: "settings", variant: "icon", onClick: function () { return setPreferencesOpen(true); }, formAction: "none", ariaLabel: i18nStrings.preferencesTitle, ref: preferencesRef }),
152
152
  React.createElement("span", { className: styles.divider }))),
153
- isOpen ? (React.createElement(InternalButton, { className: styles['close-button'], iconName: isRefresh && position === 'side' ? 'angle-right' : isRefresh ? 'angle-down' : 'close', variant: "icon", onClick: onToggle, formAction: "none", ariaLabel: i18nStrings.closeButtonAriaLabel, ref: closeRef })) : position === 'side' ? null : (React.createElement(InternalButton, { className: styles['open-button'], iconName: "angle-up", variant: "icon", formAction: "none", ariaLabel: i18nStrings.openButtonAriaLabel, ref: toggleRef })))));
153
+ isOpen ? (React.createElement(InternalButton, { className: styles['close-button'], iconName: isRefresh && position === 'side' ? 'angle-right' : isRefresh ? 'angle-down' : 'close', variant: "icon", onClick: onToggle, formAction: "none", ariaLabel: i18nStrings.closeButtonAriaLabel, ref: closeRef, ariaExpanded: isOpen })) : position === 'side' ? null : (React.createElement(InternalButton, { className: styles['open-button'], iconName: "angle-up", variant: "icon", formAction: "none", ariaLabel: i18nStrings.openButtonAriaLabel, ref: toggleRef, ariaExpanded: isOpen })))));
154
154
  /*
155
155
  This effect forces the browser to recalculate the layout
156
156
  whenever the split panel might have moved.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/split-panel/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState, useEffect, useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps, BaseComponentProps } from '../internal/base-component';\nimport { useSplitPanelContext } from '../internal/context/split-panel-context';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\n\nimport { SplitPanelProps, SizeControlProps } from './interfaces';\nimport ResizeHandler from './icons/resize-handler';\nimport PreferencesModal from './preferences-modal';\nimport { useMouseEvents } from './utils/use-mouse-events';\nimport { useKeyboardEvents } from './utils/use-keyboard-events';\n\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { getLimitedValue } from './utils/size-utils';\nimport { Transition, TransitionStatus } from '../internal/components/transition';\nimport { ButtonProps } from '../button/interfaces';\nimport { useEffectOnUpdate } from '../internal/hooks/use-effect-on-update';\n\nexport { SplitPanelProps };\n\nconst MIN_HEIGHT = 160;\nconst MIN_WIDTH = 280;\ninterface TransitionContentProps {\n baseProps: BaseComponentProps;\n isOpen?: boolean;\n splitPanelRef?: React.Ref<any>;\n bottomOffset: number;\n cappedSize: number;\n isRefresh: boolean;\n onToggle: () => void;\n i18nStrings: SplitPanelProps.I18nStrings;\n relativeSize: number;\n onKeyDown: (event: React.KeyboardEvent<Element>) => void;\n onSliderMouseDown: () => void;\n focusVisible: { 'data-awsui-focus-visible': true } | { 'data-awsui-focus-visible'?: undefined };\n paneHeader: JSX.Element;\n wrappedChildren: JSX.Element;\n}\n\ninterface TransitionContentSideProps extends TransitionContentProps {\n topOffset: number;\n toggleRef: React.RefObject<ButtonProps.Ref>;\n}\n\nconst TransitionContentSide = ({\n baseProps,\n isOpen,\n splitPanelRef,\n topOffset,\n bottomOffset,\n cappedSize,\n isRefresh,\n onToggle,\n i18nStrings,\n relativeSize,\n onKeyDown,\n onSliderMouseDown,\n focusVisible,\n toggleRef,\n paneHeader,\n wrappedChildren,\n}: TransitionContentSideProps) => {\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.drawer, styles.root, styles['position-side'], {\n [styles['drawer-closed']]: !isOpen,\n })}\n ref={splitPanelRef}\n >\n <aside\n style={{\n top: topOffset,\n bottom: bottomOffset,\n width: isOpen ? cappedSize : undefined,\n maxWidth: isRefresh ? '100%' : undefined,\n }}\n className={clsx(styles['drawer-content-side'], {\n [styles.refresh]: isRefresh,\n })}\n onClick={() => !isOpen && onToggle()}\n >\n {isOpen ? (\n <div className={styles['slider-wrapper-side']}>\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={i18nStrings.resizeHandleAriaLabel}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(styles.slider, styles['slider-side'])}\n onKeyDown={onKeyDown}\n onMouseDown={onSliderMouseDown}\n {...focusVisible}\n >\n <ResizeHandler className={clsx(styles['slider-icon'], styles['slider-icon-side'])} />\n </div>\n </div>\n ) : (\n <InternalButton\n className={clsx(styles['open-button'], styles['open-button-side'])}\n iconName=\"angle-left\"\n variant=\"icon\"\n formAction=\"none\"\n ariaLabel={i18nStrings.openButtonAriaLabel}\n ref={isRefresh ? null : toggleRef}\n />\n )}\n <div className={styles['content-side']} aria-hidden={!isOpen}>\n <div className={clsx(styles['pane-header-wrapper-side'])}>{paneHeader}</div>\n <hr className={styles['header-divider']} />\n <div className={clsx(styles['pane-content-wrapper-side'])}>{wrappedChildren}</div>\n </div>\n </aside>\n </div>\n );\n};\n\ninterface TransitionContentBottomProps extends TransitionContentProps {\n isMobile: boolean;\n disableContentPaddings?: boolean;\n state: TransitionStatus;\n leftOffset: number;\n rightOffset: number;\n transitioningElementRef: React.Ref<any>;\n centeredMaxWidthClasses: string;\n splitPanelHeaderRef?: React.Ref<any>;\n appLayoutMaxWidth: React.CSSProperties | undefined;\n}\n\nconst TransitionContentBottom = ({\n baseProps,\n isOpen,\n splitPanelRef,\n bottomOffset,\n cappedSize,\n isRefresh,\n onToggle,\n i18nStrings,\n relativeSize,\n onKeyDown,\n onSliderMouseDown,\n focusVisible,\n paneHeader,\n wrappedChildren,\n isMobile,\n disableContentPaddings,\n state,\n leftOffset,\n rightOffset,\n transitioningElementRef,\n centeredMaxWidthClasses,\n splitPanelHeaderRef,\n appLayoutMaxWidth,\n}: TransitionContentBottomProps) => {\n const transitionContentBottomRef = useMergeRefs(splitPanelRef || null, transitioningElementRef);\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.root, styles.drawer, styles['position-bottom'], {\n [styles['drawer-closed']]: !isOpen,\n [styles['drawer-mobile']]: isMobile,\n [styles['drawer-disable-content-paddings']]: disableContentPaddings,\n [styles.animating]: isRefresh && (state === 'entering' || state === 'exiting'),\n [styles.refresh]: isRefresh,\n })}\n onClick={() => !isOpen && onToggle()}\n style={{\n bottom: bottomOffset,\n left: leftOffset,\n right: rightOffset,\n height: isOpen ? cappedSize : undefined,\n }}\n ref={transitionContentBottomRef}\n >\n {isOpen && (\n <div className={styles['slider-wrapper-bottom']}>\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={i18nStrings.resizeHandleAriaLabel}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(styles.slider, styles['slider-bottom'])}\n onKeyDown={onKeyDown}\n onMouseDown={onSliderMouseDown}\n {...focusVisible}\n >\n <ResizeHandler className={clsx(styles['slider-icon'], styles['slider-icon-bottom'])} />\n </div>\n </div>\n )}\n <div className={styles['drawer-content-bottom']}>\n <div className={clsx(styles['pane-header-wrapper-bottom'], centeredMaxWidthClasses)} ref={splitPanelHeaderRef}>\n {paneHeader}\n </div>\n <div className={clsx(styles['content-bottom'], centeredMaxWidthClasses)} aria-hidden={!isOpen}>\n <div className={clsx({ [styles['content-bottom-max-width']]: isRefresh })} style={appLayoutMaxWidth}>\n {wrappedChildren}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default function SplitPanel({\n header,\n children,\n hidePreferencesButton = false,\n i18nStrings,\n ...restProps\n}: SplitPanelProps) {\n const { __internalRootRef } = useBaseComponent('SplitPanel');\n const {\n size,\n getMaxWidth,\n getMaxHeight,\n position,\n topOffset,\n bottomOffset,\n leftOffset,\n rightOffset,\n disableContentPaddings,\n contentWidthStyles,\n contentWrapperPaddings,\n isCopy,\n isOpen,\n isMobile,\n isRefresh,\n isForcedPosition,\n splitPanelRef,\n splitPanelHeaderRef,\n lastInteraction,\n onPreferencesChange,\n onResize,\n onToggle,\n reportSize,\n setOpenButtonAriaLabel,\n } = useSplitPanelContext();\n const baseProps = getBaseProps(restProps);\n const focusVisible = useFocusVisible();\n const [isPreferencesOpen, setPreferencesOpen] = useState<boolean>(false);\n const [relativeSize, setRelativeSize] = useState(0);\n const [maxSize, setMaxSize] = useState(size);\n const minSize = position === 'bottom' ? MIN_HEIGHT : MIN_WIDTH;\n const cappedSize = getLimitedValue(minSize, size, maxSize);\n const appLayoutMaxWidth = isRefresh && position === 'bottom' ? contentWidthStyles : undefined;\n\n useEffect(() => {\n setOpenButtonAriaLabel?.(i18nStrings.openButtonAriaLabel);\n }, [setOpenButtonAriaLabel, i18nStrings.openButtonAriaLabel]);\n\n useEffect(() => {\n // effects are called inside out in the components tree\n // wait one frame to allow app-layout to complete its calculations\n const handle = requestAnimationFrame(() => {\n const maxSize = position === 'bottom' ? getMaxHeight() : getMaxWidth();\n setRelativeSize((size / maxSize) * 100);\n setMaxSize(maxSize);\n });\n return () => cancelAnimationFrame(handle);\n }, [size, position, getMaxHeight, getMaxWidth]);\n\n useEffect(() => {\n reportSize(cappedSize);\n }, [reportSize, cappedSize]);\n\n useEffect(() => {\n const handler = () => setMaxSize(position === 'bottom' ? getMaxHeight() : getMaxWidth());\n window.addEventListener('resize', handler);\n return () => window.removeEventListener('resize', handler);\n }, [position, getMaxWidth, getMaxHeight]);\n\n const setSidePanelWidth = (width: number) => {\n const maxWidth = getMaxWidth();\n const size = getLimitedValue(MIN_WIDTH, width, maxWidth);\n\n if (isOpen && maxWidth >= MIN_WIDTH) {\n onResize({ size });\n }\n };\n\n const setBottomPanelHeight = (height: number) => {\n const maxHeight = getMaxHeight();\n const size = getLimitedValue(MIN_HEIGHT, height, maxHeight);\n\n if (isOpen && maxHeight >= MIN_HEIGHT) {\n onResize({ size });\n }\n };\n\n const splitPanelRefObject = useRef(null);\n const sizeControlProps: SizeControlProps = {\n position,\n splitPanelRef: splitPanelRefObject,\n setSidePanelWidth,\n setBottomPanelHeight,\n };\n const onSliderMouseDown = useMouseEvents(sizeControlProps);\n const onKeyDown = useKeyboardEvents(sizeControlProps);\n\n const toggleRef = useRef<ButtonProps.Ref>(null);\n const closeRef = useRef<ButtonProps.Ref>(null);\n const preferencesRef = useRef<ButtonProps.Ref>(null);\n\n useEffectOnUpdate(() => {\n switch (lastInteraction?.type) {\n case 'open':\n return closeRef.current?.focus();\n case 'close':\n return toggleRef.current?.focus();\n case 'position':\n return preferencesRef.current?.focus();\n default:\n return;\n }\n }, [lastInteraction]);\n\n const wrappedChildren = (\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop: topOffset,\n stickyOffsetBottom: bottomOffset,\n }}\n >\n {children}\n </AppLayoutContext.Provider>\n );\n\n const paneHeader = (\n <div className={styles.header} style={appLayoutMaxWidth}>\n <h2 className={styles['header-text']}>{header}</h2>\n <div className={styles['header-actions']}>\n {!hidePreferencesButton && isOpen && (\n <>\n <InternalButton\n className={styles['preferences-button']}\n iconName=\"settings\"\n variant=\"icon\"\n onClick={() => setPreferencesOpen(true)}\n formAction=\"none\"\n ariaLabel={i18nStrings.preferencesTitle}\n ref={preferencesRef}\n />\n <span className={styles.divider} />\n </>\n )}\n\n {isOpen ? (\n <InternalButton\n className={styles['close-button']}\n iconName={isRefresh && position === 'side' ? 'angle-right' : isRefresh ? 'angle-down' : 'close'}\n variant=\"icon\"\n onClick={onToggle}\n formAction=\"none\"\n ariaLabel={i18nStrings.closeButtonAriaLabel}\n ref={closeRef}\n />\n ) : position === 'side' ? null : (\n <InternalButton\n className={styles['open-button']}\n iconName=\"angle-up\"\n variant=\"icon\"\n formAction=\"none\"\n ariaLabel={i18nStrings.openButtonAriaLabel}\n ref={toggleRef}\n />\n )}\n </div>\n </div>\n );\n\n /*\n This effect forces the browser to recalculate the layout\n whenever the split panel might have moved.\n\n This is needed as a workaround for a bug in Safari, which does\n not automatically calculate the new position of the split panel\n _content_ when the split panel moves.\n */\n useLayoutEffect(() => {\n const root = __internalRootRef.current;\n\n if (root) {\n const property = 'transform';\n const temporaryValue = 'translateZ(0)';\n\n const valueBefore = root.style[property];\n root.style[property] = temporaryValue;\n\n // This line forces the browser to recalculate the layout\n void root.offsetHeight;\n\n root.style[property] = valueBefore;\n }\n }, [rightOffset, __internalRootRef]);\n\n const mergedRef = useMergeRefs(splitPanelRef, splitPanelRefObject, __internalRootRef);\n\n /**\n * The AppLayout factor moved the circular buttons out of the\n * SplitPanel and into the Tools component. This conditional\n * is still needed for the early return to prevent execution\n * of the following code.\n */\n if (isRefresh && (!isOpen || isCopy) && position === 'side') {\n return <></>;\n }\n\n const centeredMaxWidthClasses = clsx({\n [styles['pane-bottom-center-align']]: isRefresh,\n [styles['pane-bottom-content-nav-padding']]: contentWrapperPaddings?.closedNav,\n [styles['pane-bottom-content-tools-padding']]: contentWrapperPaddings?.closedTools,\n });\n\n return (\n <Transition in={isOpen ?? false}>\n {(state, transitioningElementRef) => (\n <>\n {position === 'side' && (\n <TransitionContentSide\n baseProps={baseProps}\n isOpen={isOpen}\n splitPanelRef={mergedRef}\n topOffset={topOffset}\n bottomOffset={bottomOffset}\n cappedSize={cappedSize}\n isRefresh={isRefresh}\n onToggle={onToggle}\n i18nStrings={i18nStrings}\n relativeSize={relativeSize}\n onKeyDown={onKeyDown}\n onSliderMouseDown={onSliderMouseDown}\n focusVisible={focusVisible}\n toggleRef={toggleRef}\n paneHeader={paneHeader}\n wrappedChildren={wrappedChildren}\n ></TransitionContentSide>\n )}\n\n {position === 'bottom' && (\n <TransitionContentBottom\n baseProps={baseProps}\n isOpen={isOpen}\n splitPanelRef={mergedRef}\n bottomOffset={bottomOffset}\n cappedSize={cappedSize}\n isRefresh={isRefresh}\n onToggle={onToggle}\n i18nStrings={i18nStrings}\n relativeSize={relativeSize}\n onKeyDown={onKeyDown}\n onSliderMouseDown={onSliderMouseDown}\n focusVisible={focusVisible}\n paneHeader={paneHeader}\n wrappedChildren={wrappedChildren}\n isMobile={isMobile}\n disableContentPaddings={disableContentPaddings}\n state={state}\n leftOffset={leftOffset}\n rightOffset={rightOffset}\n transitioningElementRef={transitioningElementRef}\n centeredMaxWidthClasses={centeredMaxWidthClasses}\n splitPanelHeaderRef={splitPanelHeaderRef}\n appLayoutMaxWidth={appLayoutMaxWidth}\n ></TransitionContentBottom>\n )}\n {isPreferencesOpen && (\n <PreferencesModal\n visible={true}\n preferences={{ position }}\n disabledSidePosition={position === 'bottom' && isForcedPosition}\n isRefresh={isRefresh}\n i18nStrings={{\n header: i18nStrings.preferencesTitle,\n confirm: i18nStrings.preferencesConfirm,\n cancel: i18nStrings.preferencesCancel,\n positionLabel: i18nStrings.preferencesPositionLabel,\n positionDescription: i18nStrings.preferencesPositionDescription,\n positionBottom: i18nStrings.preferencesPositionBottom,\n positionSide: i18nStrings.preferencesPositionSide,\n }}\n onConfirm={preferences => {\n onPreferencesChange({ ...preferences });\n setPreferencesOpen(false);\n }}\n onDismiss={() => {\n setPreferencesOpen(false);\n }}\n />\n )}\n </>\n )}\n </Transition>\n );\n}\n\napplyDisplayName(SplitPanel, 'SplitPanel');\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/split-panel/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState, useEffect, useLayoutEffect, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps, BaseComponentProps } from '../internal/base-component';\nimport { useSplitPanelContext } from '../internal/context/split-panel-context';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\n\nimport { SplitPanelProps, SizeControlProps } from './interfaces';\nimport ResizeHandler from './icons/resize-handler';\nimport PreferencesModal from './preferences-modal';\nimport { useMouseEvents } from './utils/use-mouse-events';\nimport { useKeyboardEvents } from './utils/use-keyboard-events';\n\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { AppLayoutContext } from '../internal/context/app-layout-context';\nimport { getLimitedValue } from './utils/size-utils';\nimport { Transition, TransitionStatus } from '../internal/components/transition';\nimport { ButtonProps } from '../button/interfaces';\nimport { useEffectOnUpdate } from '../internal/hooks/use-effect-on-update';\n\nexport { SplitPanelProps };\n\nconst MIN_HEIGHT = 160;\nconst MIN_WIDTH = 280;\ninterface TransitionContentProps {\n baseProps: BaseComponentProps;\n isOpen?: boolean;\n splitPanelRef?: React.Ref<any>;\n bottomOffset: number;\n cappedSize: number;\n isRefresh: boolean;\n onToggle: () => void;\n i18nStrings: SplitPanelProps.I18nStrings;\n relativeSize: number;\n onKeyDown: (event: React.KeyboardEvent<Element>) => void;\n onSliderMouseDown: () => void;\n focusVisible: { 'data-awsui-focus-visible': true } | { 'data-awsui-focus-visible'?: undefined };\n paneHeader: JSX.Element;\n wrappedChildren: JSX.Element;\n}\n\ninterface TransitionContentSideProps extends TransitionContentProps {\n topOffset: number;\n toggleRef: React.RefObject<ButtonProps.Ref>;\n}\n\nconst TransitionContentSide = ({\n baseProps,\n isOpen,\n splitPanelRef,\n topOffset,\n bottomOffset,\n cappedSize,\n isRefresh,\n onToggle,\n i18nStrings,\n relativeSize,\n onKeyDown,\n onSliderMouseDown,\n focusVisible,\n toggleRef,\n paneHeader,\n wrappedChildren,\n}: TransitionContentSideProps) => {\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.drawer, styles.root, styles['position-side'], {\n [styles['drawer-closed']]: !isOpen,\n })}\n ref={splitPanelRef}\n >\n <aside\n style={{\n top: topOffset,\n bottom: bottomOffset,\n width: isOpen ? cappedSize : undefined,\n maxWidth: isRefresh ? '100%' : undefined,\n }}\n className={clsx(styles['drawer-content-side'], {\n [styles.refresh]: isRefresh,\n })}\n onClick={() => !isOpen && onToggle()}\n >\n {isOpen ? (\n <div className={styles['slider-wrapper-side']}>\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={i18nStrings.resizeHandleAriaLabel}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(styles.slider, styles['slider-side'])}\n onKeyDown={onKeyDown}\n onMouseDown={onSliderMouseDown}\n {...focusVisible}\n >\n <ResizeHandler className={clsx(styles['slider-icon'], styles['slider-icon-side'])} />\n </div>\n </div>\n ) : (\n <InternalButton\n className={clsx(styles['open-button'], styles['open-button-side'])}\n iconName=\"angle-left\"\n variant=\"icon\"\n formAction=\"none\"\n ariaLabel={i18nStrings.openButtonAriaLabel}\n ariaExpanded={isOpen}\n ref={isRefresh ? null : toggleRef}\n />\n )}\n <div className={styles['content-side']} aria-hidden={!isOpen}>\n <div className={clsx(styles['pane-header-wrapper-side'])}>{paneHeader}</div>\n <hr className={styles['header-divider']} />\n <div className={clsx(styles['pane-content-wrapper-side'])}>{wrappedChildren}</div>\n </div>\n </aside>\n </div>\n );\n};\n\ninterface TransitionContentBottomProps extends TransitionContentProps {\n isMobile: boolean;\n disableContentPaddings?: boolean;\n state: TransitionStatus;\n leftOffset: number;\n rightOffset: number;\n transitioningElementRef: React.Ref<any>;\n centeredMaxWidthClasses: string;\n splitPanelHeaderRef?: React.Ref<any>;\n appLayoutMaxWidth: React.CSSProperties | undefined;\n}\n\nconst TransitionContentBottom = ({\n baseProps,\n isOpen,\n splitPanelRef,\n bottomOffset,\n cappedSize,\n isRefresh,\n onToggle,\n i18nStrings,\n relativeSize,\n onKeyDown,\n onSliderMouseDown,\n focusVisible,\n paneHeader,\n wrappedChildren,\n isMobile,\n disableContentPaddings,\n state,\n leftOffset,\n rightOffset,\n transitioningElementRef,\n centeredMaxWidthClasses,\n splitPanelHeaderRef,\n appLayoutMaxWidth,\n}: TransitionContentBottomProps) => {\n const transitionContentBottomRef = useMergeRefs(splitPanelRef || null, transitioningElementRef);\n return (\n <div\n {...baseProps}\n className={clsx(baseProps.className, styles.root, styles.drawer, styles['position-bottom'], {\n [styles['drawer-closed']]: !isOpen,\n [styles['drawer-mobile']]: isMobile,\n [styles['drawer-disable-content-paddings']]: disableContentPaddings,\n [styles.animating]: isRefresh && (state === 'entering' || state === 'exiting'),\n [styles.refresh]: isRefresh,\n })}\n onClick={() => !isOpen && onToggle()}\n style={{\n bottom: bottomOffset,\n left: leftOffset,\n right: rightOffset,\n height: isOpen ? cappedSize : undefined,\n }}\n ref={transitionContentBottomRef}\n >\n {isOpen && (\n <div className={styles['slider-wrapper-bottom']}>\n <div\n role=\"slider\"\n tabIndex={0}\n aria-label={i18nStrings.resizeHandleAriaLabel}\n aria-valuemax={100}\n aria-valuemin={0}\n aria-valuenow={relativeSize}\n className={clsx(styles.slider, styles['slider-bottom'])}\n onKeyDown={onKeyDown}\n onMouseDown={onSliderMouseDown}\n {...focusVisible}\n >\n <ResizeHandler className={clsx(styles['slider-icon'], styles['slider-icon-bottom'])} />\n </div>\n </div>\n )}\n <div className={styles['drawer-content-bottom']}>\n <div className={clsx(styles['pane-header-wrapper-bottom'], centeredMaxWidthClasses)} ref={splitPanelHeaderRef}>\n {paneHeader}\n </div>\n <div className={clsx(styles['content-bottom'], centeredMaxWidthClasses)} aria-hidden={!isOpen}>\n <div className={clsx({ [styles['content-bottom-max-width']]: isRefresh })} style={appLayoutMaxWidth}>\n {wrappedChildren}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default function SplitPanel({\n header,\n children,\n hidePreferencesButton = false,\n i18nStrings,\n ...restProps\n}: SplitPanelProps) {\n const { __internalRootRef } = useBaseComponent('SplitPanel');\n const {\n size,\n getMaxWidth,\n getMaxHeight,\n position,\n topOffset,\n bottomOffset,\n leftOffset,\n rightOffset,\n disableContentPaddings,\n contentWidthStyles,\n contentWrapperPaddings,\n isCopy,\n isOpen,\n isMobile,\n isRefresh,\n isForcedPosition,\n splitPanelRef,\n splitPanelHeaderRef,\n lastInteraction,\n onPreferencesChange,\n onResize,\n onToggle,\n reportSize,\n setOpenButtonAriaLabel,\n } = useSplitPanelContext();\n const baseProps = getBaseProps(restProps);\n const focusVisible = useFocusVisible();\n const [isPreferencesOpen, setPreferencesOpen] = useState<boolean>(false);\n const [relativeSize, setRelativeSize] = useState(0);\n const [maxSize, setMaxSize] = useState(size);\n const minSize = position === 'bottom' ? MIN_HEIGHT : MIN_WIDTH;\n const cappedSize = getLimitedValue(minSize, size, maxSize);\n const appLayoutMaxWidth = isRefresh && position === 'bottom' ? contentWidthStyles : undefined;\n\n useEffect(() => {\n setOpenButtonAriaLabel?.(i18nStrings.openButtonAriaLabel);\n }, [setOpenButtonAriaLabel, i18nStrings.openButtonAriaLabel]);\n\n useEffect(() => {\n // effects are called inside out in the components tree\n // wait one frame to allow app-layout to complete its calculations\n const handle = requestAnimationFrame(() => {\n const maxSize = position === 'bottom' ? getMaxHeight() : getMaxWidth();\n setRelativeSize((size / maxSize) * 100);\n setMaxSize(maxSize);\n });\n return () => cancelAnimationFrame(handle);\n }, [size, position, getMaxHeight, getMaxWidth]);\n\n useEffect(() => {\n reportSize(cappedSize);\n }, [reportSize, cappedSize]);\n\n useEffect(() => {\n const handler = () => setMaxSize(position === 'bottom' ? getMaxHeight() : getMaxWidth());\n window.addEventListener('resize', handler);\n return () => window.removeEventListener('resize', handler);\n }, [position, getMaxWidth, getMaxHeight]);\n\n const setSidePanelWidth = (width: number) => {\n const maxWidth = getMaxWidth();\n const size = getLimitedValue(MIN_WIDTH, width, maxWidth);\n\n if (isOpen && maxWidth >= MIN_WIDTH) {\n onResize({ size });\n }\n };\n\n const setBottomPanelHeight = (height: number) => {\n const maxHeight = getMaxHeight();\n const size = getLimitedValue(MIN_HEIGHT, height, maxHeight);\n\n if (isOpen && maxHeight >= MIN_HEIGHT) {\n onResize({ size });\n }\n };\n\n const splitPanelRefObject = useRef(null);\n const sizeControlProps: SizeControlProps = {\n position,\n splitPanelRef: splitPanelRefObject,\n setSidePanelWidth,\n setBottomPanelHeight,\n };\n const onSliderMouseDown = useMouseEvents(sizeControlProps);\n const onKeyDown = useKeyboardEvents(sizeControlProps);\n\n const toggleRef = useRef<ButtonProps.Ref>(null);\n const closeRef = useRef<ButtonProps.Ref>(null);\n const preferencesRef = useRef<ButtonProps.Ref>(null);\n\n useEffectOnUpdate(() => {\n switch (lastInteraction?.type) {\n case 'open':\n return closeRef.current?.focus();\n case 'close':\n return toggleRef.current?.focus();\n case 'position':\n return preferencesRef.current?.focus();\n default:\n return;\n }\n }, [lastInteraction]);\n\n const wrappedChildren = (\n <AppLayoutContext.Provider\n value={{\n stickyOffsetTop: topOffset,\n stickyOffsetBottom: bottomOffset,\n }}\n >\n {children}\n </AppLayoutContext.Provider>\n );\n\n const paneHeader = (\n <div className={styles.header} style={appLayoutMaxWidth}>\n <h2 className={styles['header-text']}>{header}</h2>\n <div className={styles['header-actions']}>\n {!hidePreferencesButton && isOpen && (\n <>\n <InternalButton\n className={styles['preferences-button']}\n iconName=\"settings\"\n variant=\"icon\"\n onClick={() => setPreferencesOpen(true)}\n formAction=\"none\"\n ariaLabel={i18nStrings.preferencesTitle}\n ref={preferencesRef}\n />\n <span className={styles.divider} />\n </>\n )}\n\n {isOpen ? (\n <InternalButton\n className={styles['close-button']}\n iconName={isRefresh && position === 'side' ? 'angle-right' : isRefresh ? 'angle-down' : 'close'}\n variant=\"icon\"\n onClick={onToggle}\n formAction=\"none\"\n ariaLabel={i18nStrings.closeButtonAriaLabel}\n ref={closeRef}\n ariaExpanded={isOpen}\n />\n ) : position === 'side' ? null : (\n <InternalButton\n className={styles['open-button']}\n iconName=\"angle-up\"\n variant=\"icon\"\n formAction=\"none\"\n ariaLabel={i18nStrings.openButtonAriaLabel}\n ref={toggleRef}\n ariaExpanded={isOpen}\n />\n )}\n </div>\n </div>\n );\n\n /*\n This effect forces the browser to recalculate the layout\n whenever the split panel might have moved.\n\n This is needed as a workaround for a bug in Safari, which does\n not automatically calculate the new position of the split panel\n _content_ when the split panel moves.\n */\n useLayoutEffect(() => {\n const root = __internalRootRef.current;\n\n if (root) {\n const property = 'transform';\n const temporaryValue = 'translateZ(0)';\n\n const valueBefore = root.style[property];\n root.style[property] = temporaryValue;\n\n // This line forces the browser to recalculate the layout\n void root.offsetHeight;\n\n root.style[property] = valueBefore;\n }\n }, [rightOffset, __internalRootRef]);\n\n const mergedRef = useMergeRefs(splitPanelRef, splitPanelRefObject, __internalRootRef);\n\n /**\n * The AppLayout factor moved the circular buttons out of the\n * SplitPanel and into the Tools component. This conditional\n * is still needed for the early return to prevent execution\n * of the following code.\n */\n if (isRefresh && (!isOpen || isCopy) && position === 'side') {\n return <></>;\n }\n\n const centeredMaxWidthClasses = clsx({\n [styles['pane-bottom-center-align']]: isRefresh,\n [styles['pane-bottom-content-nav-padding']]: contentWrapperPaddings?.closedNav,\n [styles['pane-bottom-content-tools-padding']]: contentWrapperPaddings?.closedTools,\n });\n\n return (\n <Transition in={isOpen ?? false}>\n {(state, transitioningElementRef) => (\n <>\n {position === 'side' && (\n <TransitionContentSide\n baseProps={baseProps}\n isOpen={isOpen}\n splitPanelRef={mergedRef}\n topOffset={topOffset}\n bottomOffset={bottomOffset}\n cappedSize={cappedSize}\n isRefresh={isRefresh}\n onToggle={onToggle}\n i18nStrings={i18nStrings}\n relativeSize={relativeSize}\n onKeyDown={onKeyDown}\n onSliderMouseDown={onSliderMouseDown}\n focusVisible={focusVisible}\n toggleRef={toggleRef}\n paneHeader={paneHeader}\n wrappedChildren={wrappedChildren}\n ></TransitionContentSide>\n )}\n\n {position === 'bottom' && (\n <TransitionContentBottom\n baseProps={baseProps}\n isOpen={isOpen}\n splitPanelRef={mergedRef}\n bottomOffset={bottomOffset}\n cappedSize={cappedSize}\n isRefresh={isRefresh}\n onToggle={onToggle}\n i18nStrings={i18nStrings}\n relativeSize={relativeSize}\n onKeyDown={onKeyDown}\n onSliderMouseDown={onSliderMouseDown}\n focusVisible={focusVisible}\n paneHeader={paneHeader}\n wrappedChildren={wrappedChildren}\n isMobile={isMobile}\n disableContentPaddings={disableContentPaddings}\n state={state}\n leftOffset={leftOffset}\n rightOffset={rightOffset}\n transitioningElementRef={transitioningElementRef}\n centeredMaxWidthClasses={centeredMaxWidthClasses}\n splitPanelHeaderRef={splitPanelHeaderRef}\n appLayoutMaxWidth={appLayoutMaxWidth}\n ></TransitionContentBottom>\n )}\n {isPreferencesOpen && (\n <PreferencesModal\n visible={true}\n preferences={{ position }}\n disabledSidePosition={position === 'bottom' && isForcedPosition}\n isRefresh={isRefresh}\n i18nStrings={{\n header: i18nStrings.preferencesTitle,\n confirm: i18nStrings.preferencesConfirm,\n cancel: i18nStrings.preferencesCancel,\n positionLabel: i18nStrings.preferencesPositionLabel,\n positionDescription: i18nStrings.preferencesPositionDescription,\n positionBottom: i18nStrings.preferencesPositionBottom,\n positionSide: i18nStrings.preferencesPositionSide,\n }}\n onConfirm={preferences => {\n onPreferencesChange({ ...preferences });\n setPreferencesOpen(false);\n }}\n onDismiss={() => {\n setPreferencesOpen(false);\n }}\n />\n )}\n </>\n )}\n </Transition>\n );\n}\n\napplyDisplayName(SplitPanel, 'SplitPanel');\n"]}
@@ -1,37 +1,37 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_wih1l_edm43_97",
5
- "tools": "awsui_tools_wih1l_edm43_106",
6
- "tools-filtering": "awsui_tools-filtering_wih1l_edm43_112",
7
- "tools-align-right": "awsui_tools-align-right_wih1l_edm43_117",
8
- "tools-pagination": "awsui_tools-pagination_wih1l_edm43_121",
9
- "tools-preferences": "awsui_tools-preferences_wih1l_edm43_121",
10
- "tools-small": "awsui_tools-small_wih1l_edm43_127",
11
- "table": "awsui_table_wih1l_edm43_133",
12
- "table-layout-fixed": "awsui_table-layout-fixed_wih1l_edm43_139",
13
- "wrapper": "awsui_wrapper_wih1l_edm43_143",
14
- "variant-stacked": "awsui_variant-stacked_wih1l_edm43_153",
15
- "variant-container": "awsui_variant-container_wih1l_edm43_153",
16
- "variant-embedded": "awsui_variant-embedded_wih1l_edm43_157",
17
- "has-header": "awsui_has-header_wih1l_edm43_160",
18
- "has-footer": "awsui_has-footer_wih1l_edm43_163",
19
- "cell-merged": "awsui_cell-merged_wih1l_edm43_173",
20
- "cell-merged-content": "awsui_cell-merged-content_wih1l_edm43_177",
21
- "empty": "awsui_empty_wih1l_edm43_192",
22
- "loading": "awsui_loading_wih1l_edm43_196",
23
- "selection-control": "awsui_selection-control_wih1l_edm43_200",
24
- "selection-control-header": "awsui_selection-control-header_wih1l_edm43_207",
25
- "sticky-scrollbar": "awsui_sticky-scrollbar_wih1l_edm43_212",
26
- "sticky-scrollbar-content": "awsui_sticky-scrollbar-content_wih1l_edm43_222",
27
- "sticky-scrollbar-visible": "awsui_sticky-scrollbar-visible_wih1l_edm43_225",
28
- "header-secondary": "awsui_header-secondary_wih1l_edm43_229",
29
- "header-controls": "awsui_header-controls_wih1l_edm43_249",
30
- "divider": "awsui_divider_wih1l_edm43_266",
31
- "footer-wrapper": "awsui_footer-wrapper_wih1l_edm43_273",
32
- "footer": "awsui_footer_wih1l_edm43_273",
33
- "thead-active": "awsui_thead-active_wih1l_edm43_282",
34
- "row": "awsui_row_wih1l_edm43_283",
35
- "row-selected": "awsui_row-selected_wih1l_edm43_284"
4
+ "root": "awsui_root_wih1l_wc5vj_97",
5
+ "tools": "awsui_tools_wih1l_wc5vj_106",
6
+ "tools-filtering": "awsui_tools-filtering_wih1l_wc5vj_112",
7
+ "tools-align-right": "awsui_tools-align-right_wih1l_wc5vj_117",
8
+ "tools-pagination": "awsui_tools-pagination_wih1l_wc5vj_121",
9
+ "tools-preferences": "awsui_tools-preferences_wih1l_wc5vj_121",
10
+ "tools-small": "awsui_tools-small_wih1l_wc5vj_127",
11
+ "table": "awsui_table_wih1l_wc5vj_133",
12
+ "table-layout-fixed": "awsui_table-layout-fixed_wih1l_wc5vj_139",
13
+ "wrapper": "awsui_wrapper_wih1l_wc5vj_143",
14
+ "variant-stacked": "awsui_variant-stacked_wih1l_wc5vj_153",
15
+ "variant-container": "awsui_variant-container_wih1l_wc5vj_153",
16
+ "variant-embedded": "awsui_variant-embedded_wih1l_wc5vj_157",
17
+ "has-header": "awsui_has-header_wih1l_wc5vj_160",
18
+ "has-footer": "awsui_has-footer_wih1l_wc5vj_163",
19
+ "cell-merged": "awsui_cell-merged_wih1l_wc5vj_173",
20
+ "cell-merged-content": "awsui_cell-merged-content_wih1l_wc5vj_177",
21
+ "empty": "awsui_empty_wih1l_wc5vj_192",
22
+ "loading": "awsui_loading_wih1l_wc5vj_196",
23
+ "selection-control": "awsui_selection-control_wih1l_wc5vj_200",
24
+ "selection-control-header": "awsui_selection-control-header_wih1l_wc5vj_207",
25
+ "sticky-scrollbar": "awsui_sticky-scrollbar_wih1l_wc5vj_212",
26
+ "sticky-scrollbar-content": "awsui_sticky-scrollbar-content_wih1l_wc5vj_222",
27
+ "sticky-scrollbar-visible": "awsui_sticky-scrollbar-visible_wih1l_wc5vj_225",
28
+ "header-secondary": "awsui_header-secondary_wih1l_wc5vj_229",
29
+ "header-controls": "awsui_header-controls_wih1l_wc5vj_246",
30
+ "divider": "awsui_divider_wih1l_wc5vj_263",
31
+ "footer-wrapper": "awsui_footer-wrapper_wih1l_wc5vj_270",
32
+ "footer": "awsui_footer_wih1l_wc5vj_270",
33
+ "thead-active": "awsui_thead-active_wih1l_wc5vj_279",
34
+ "row": "awsui_row_wih1l_wc5vj_280",
35
+ "row-selected": "awsui_row-selected_wih1l_wc5vj_281"
36
36
  };
37
37
 
@@ -94,7 +94,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
94
94
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
95
95
  SPDX-License-Identifier: Apache-2.0
96
96
  */
97
- .awsui_root_wih1l_edm43_97:not(#\9) {
97
+ .awsui_root_wih1l_wc5vj_97:not(#\9) {
98
98
  font-size: var(--font-body-m-size-sregvd, 14px);
99
99
  line-height: var(--font-body-m-line-height-i7xxvv, 22px);
100
100
  color: var(--color-text-body-default-ajf1h5, #000716);
@@ -103,44 +103,44 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
103
103
  width: 100%;
104
104
  }
105
105
 
106
- .awsui_tools_wih1l_edm43_106:not(#\9) {
106
+ .awsui_tools_wih1l_wc5vj_106:not(#\9) {
107
107
  display: flex;
108
108
  align-items: flex-start;
109
109
  flex-wrap: wrap;
110
110
  padding: var(--space-scaled-xs-6859qs, 8px) 0 var(--space-scaled-xxs-95dhkm, 4px);
111
111
  }
112
- .awsui_tools-filtering_wih1l_edm43_112:not(#\9) {
112
+ .awsui_tools-filtering_wih1l_wc5vj_112:not(#\9) {
113
113
  flex: 1 1 0%;
114
114
  max-width: 100%;
115
115
  margin-right: var(--space-l-4vl6xu, 20px);
116
116
  }
117
- .awsui_tools-align-right_wih1l_edm43_117:not(#\9) {
117
+ .awsui_tools-align-right_wih1l_wc5vj_117:not(#\9) {
118
118
  display: flex;
119
119
  margin-left: auto;
120
120
  }
121
- .awsui_tools-pagination_wih1l_edm43_121 + .awsui_tools-preferences_wih1l_edm43_121:not(#\9) {
121
+ .awsui_tools-pagination_wih1l_wc5vj_121 + .awsui_tools-preferences_wih1l_wc5vj_121:not(#\9) {
122
122
  border-left: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
123
123
  box-sizing: border-box;
124
124
  margin-left: var(--space-xs-rsr2qu, 8px);
125
125
  padding-left: var(--space-xs-rsr2qu, 8px);
126
126
  }
127
- .awsui_tools-small_wih1l_edm43_127 > .awsui_tools-filtering_wih1l_edm43_112:not(#\9) {
127
+ .awsui_tools-small_wih1l_wc5vj_127 > .awsui_tools-filtering_wih1l_wc5vj_112:not(#\9) {
128
128
  margin-right: 0;
129
129
  margin-bottom: var(--space-scaled-xs-6859qs, 8px);
130
130
  flex-basis: 100%;
131
131
  }
132
132
 
133
- .awsui_table_wih1l_edm43_133:not(#\9) {
133
+ .awsui_table_wih1l_wc5vj_133:not(#\9) {
134
134
  width: 100%;
135
135
  border-spacing: 0;
136
136
  position: relative;
137
137
  box-sizing: border-box;
138
138
  }
139
- .awsui_table-layout-fixed_wih1l_edm43_139:not(#\9) {
139
+ .awsui_table-layout-fixed_wih1l_wc5vj_139:not(#\9) {
140
140
  table-layout: fixed;
141
141
  }
142
142
 
143
- .awsui_wrapper_wih1l_edm43_143:not(#\9) {
143
+ .awsui_wrapper_wih1l_wc5vj_143:not(#\9) {
144
144
  position: relative;
145
145
  box-sizing: border-box;
146
146
  width: 100%;
@@ -150,31 +150,31 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
150
150
  border-top-right-radius: var(--border-radius-container-gh9ysk, 16px);
151
151
  border-top-left-radius: var(--border-radius-container-gh9ysk, 16px);
152
152
  }
153
- .awsui_wrapper_wih1l_edm43_143.awsui_variant-stacked_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9), .awsui_wrapper_wih1l_edm43_143.awsui_variant-container_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9) {
153
+ .awsui_wrapper_wih1l_wc5vj_143.awsui_variant-stacked_wih1l_wc5vj_153 > .awsui_table_wih1l_wc5vj_133:not(#\9), .awsui_wrapper_wih1l_wc5vj_143.awsui_variant-container_wih1l_wc5vj_153 > .awsui_table_wih1l_wc5vj_133:not(#\9) {
154
154
  padding-left: var(--space-table-horizontal-58vuca, 24px);
155
155
  padding-right: var(--space-table-horizontal-58vuca, 24px);
156
156
  }
157
- .awsui_wrapper_wih1l_edm43_143.awsui_variant-embedded_wih1l_edm43_157:not(#\9) {
157
+ .awsui_wrapper_wih1l_wc5vj_143.awsui_variant-embedded_wih1l_wc5vj_157:not(#\9) {
158
158
  padding-bottom: var(--space-table-embedded-content-bottom-7vc5vt, 0px);
159
159
  }
160
- .awsui_wrapper_wih1l_edm43_143.awsui_has-header_wih1l_edm43_160:not(#\9) {
160
+ .awsui_wrapper_wih1l_wc5vj_143.awsui_has-header_wih1l_wc5vj_160:not(#\9) {
161
161
  padding-top: 0px;
162
162
  }
163
- .awsui_wrapper_wih1l_edm43_143.awsui_has-footer_wih1l_edm43_163:not(#\9) {
163
+ .awsui_wrapper_wih1l_wc5vj_143.awsui_has-footer_wih1l_wc5vj_163:not(#\9) {
164
164
  padding-bottom: 0px;
165
165
  }
166
- .awsui_wrapper_wih1l_edm43_143[data-awsui-focus-visible=true]:not(#\9):focus {
166
+ .awsui_wrapper_wih1l_wc5vj_143[data-awsui-focus-visible=true]:not(#\9):focus {
167
167
  outline: 2px dotted transparent;
168
168
  outline-offset: 2px;
169
169
  border-radius: var(--border-radius-container-gh9ysk, 16px);
170
170
  box-shadow: 0 0 0 2px var(--color-border-item-focused-ap3b6s, #0972d3);
171
171
  }
172
172
 
173
- .awsui_cell-merged_wih1l_edm43_173:not(#\9) {
173
+ .awsui_cell-merged_wih1l_wc5vj_173:not(#\9) {
174
174
  text-align: center;
175
175
  padding: 0;
176
176
  }
177
- .awsui_cell-merged-content_wih1l_edm43_177:not(#\9) {
177
+ .awsui_cell-merged-content_wih1l_wc5vj_177:not(#\9) {
178
178
  box-sizing: border-box;
179
179
  width: 100%;
180
180
  padding: var(--space-scaled-m-pv0fmt, 16px) var(--space-l-4vl6xu, 20px) var(--space-scaled-l-t03y3z, 20px);
@@ -182,34 +182,34 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
182
182
  /* stylelint-enable plugin/no-unsupported-browser-features */
183
183
  }
184
184
  @supports (position: sticky) {
185
- .awsui_cell-merged-content_wih1l_edm43_177:not(#\9) {
185
+ .awsui_cell-merged-content_wih1l_wc5vj_177:not(#\9) {
186
186
  position: sticky;
187
187
  left: 0;
188
188
  margin: 0 calc(-2 * var(--space-table-horizontal-58vuca, 24px));
189
189
  }
190
190
  }
191
191
 
192
- .awsui_empty_wih1l_edm43_192:not(#\9) {
192
+ .awsui_empty_wih1l_wc5vj_192:not(#\9) {
193
193
  color: var(--color-text-empty-fjv325, #5f6b7a);
194
194
  }
195
195
 
196
- .awsui_loading_wih1l_edm43_196:not(#\9) {
196
+ .awsui_loading_wih1l_wc5vj_196:not(#\9) {
197
197
  /* used in test-utils */
198
198
  }
199
199
 
200
- .awsui_selection-control_wih1l_edm43_200:not(#\9) {
200
+ .awsui_selection-control_wih1l_wc5vj_200:not(#\9) {
201
201
  position: relative;
202
202
  box-sizing: border-box;
203
203
  width: 54px;
204
204
  max-width: 54px;
205
205
  min-width: 54px;
206
206
  }
207
- .awsui_selection-control_wih1l_edm43_200.awsui_selection-control-header_wih1l_edm43_207:not(#\9) {
207
+ .awsui_selection-control_wih1l_wc5vj_200.awsui_selection-control-header_wih1l_wc5vj_207:not(#\9) {
208
208
  padding: var(--space-scaled-xs-6859qs, 8px) var(--space-scaled-l-t03y3z, 20px);
209
209
  border-left: var(--border-item-width-qbbbsa, 2px) solid transparent;
210
210
  }
211
211
 
212
- .awsui_sticky-scrollbar_wih1l_edm43_212:not(#\9) {
212
+ .awsui_sticky-scrollbar_wih1l_wc5vj_212:not(#\9) {
213
213
  height: 15px;
214
214
  position: fixed;
215
215
  display: none;
@@ -219,68 +219,65 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
219
219
  bottom: 0;
220
220
  width: 100%;
221
221
  }
222
- .awsui_sticky-scrollbar-content_wih1l_edm43_222:not(#\9) {
222
+ .awsui_sticky-scrollbar-content_wih1l_wc5vj_222:not(#\9) {
223
223
  height: 15px;
224
224
  }
225
- .awsui_sticky-scrollbar-visible_wih1l_edm43_225:not(#\9) {
225
+ .awsui_sticky-scrollbar-visible_wih1l_wc5vj_225:not(#\9) {
226
226
  display: block;
227
227
  }
228
228
 
229
- .awsui_header-secondary_wih1l_edm43_229:not(#\9) {
229
+ .awsui_header-secondary_wih1l_wc5vj_229:not(#\9) {
230
230
  overflow: auto;
231
- -ms-overflow-style: none;
232
- /* Internet Explorer 10+ */
233
- scrollbar-width: none;
234
- /* Firefox */
231
+ -ms-overflow-style: none; /* Internet Explorer 10+ */
232
+ scrollbar-width: none; /* Firefox */
235
233
  box-sizing: border-box;
236
234
  width: 100%;
237
235
  border-radius: 0;
238
236
  background: var(--color-background-table-header-i1pa1g, #ffffff);
239
237
  }
240
- .awsui_header-secondary_wih1l_edm43_229.awsui_variant-stacked_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9), .awsui_header-secondary_wih1l_edm43_229.awsui_variant-container_wih1l_edm43_153 > .awsui_table_wih1l_edm43_133:not(#\9) {
238
+ .awsui_header-secondary_wih1l_wc5vj_229.awsui_variant-stacked_wih1l_wc5vj_153 > .awsui_table_wih1l_wc5vj_133:not(#\9), .awsui_header-secondary_wih1l_wc5vj_229.awsui_variant-container_wih1l_wc5vj_153 > .awsui_table_wih1l_wc5vj_133:not(#\9) {
241
239
  padding-left: var(--space-table-horizontal-58vuca, 24px);
242
240
  padding-right: var(--space-table-horizontal-58vuca, 24px);
243
241
  }
244
- .awsui_header-secondary_wih1l_edm43_229:not(#\9)::-webkit-scrollbar {
245
- display: none;
246
- /* Safari and Chrome */
242
+ .awsui_header-secondary_wih1l_wc5vj_229:not(#\9)::-webkit-scrollbar {
243
+ display: none; /* Safari and Chrome */
247
244
  }
248
245
 
249
- .awsui_header-controls_wih1l_edm43_249:not(#\9) {
246
+ .awsui_header-controls_wih1l_wc5vj_246:not(#\9) {
250
247
  padding-top: var(--space-container-header-vertical-zsjhel, 12px);
251
248
  padding-bottom: var(--space-container-header-vertical-zsjhel, 12px);
252
249
  }
253
- .awsui_header-controls_wih1l_edm43_249.awsui_variant-stacked_wih1l_edm43_153:not(#\9), .awsui_header-controls_wih1l_edm43_249.awsui_variant-container_wih1l_edm43_153:not(#\9) {
250
+ .awsui_header-controls_wih1l_wc5vj_246.awsui_variant-stacked_wih1l_wc5vj_153:not(#\9), .awsui_header-controls_wih1l_wc5vj_246.awsui_variant-container_wih1l_wc5vj_153:not(#\9) {
254
251
  padding-left: calc(var(--space-table-horizontal-58vuca, 24px) + var(--space-table-header-horizontal-et2ko8, 0px));
255
252
  padding-right: calc(var(--space-table-horizontal-58vuca, 24px) + var(--space-table-header-horizontal-et2ko8, 0px));
256
253
  }
257
- .awsui_header-controls_wih1l_edm43_249.awsui_variant-embedded_wih1l_edm43_157:not(#\9) {
254
+ .awsui_header-controls_wih1l_wc5vj_246.awsui_variant-embedded_wih1l_wc5vj_157:not(#\9) {
258
255
  padding-left: var(--space-table-header-horizontal-et2ko8, 0px);
259
256
  padding-right: var(--space-table-header-horizontal-et2ko8, 0px);
260
257
  padding-top: var(--space-table-embedded-header-top-zf07fk, 0px);
261
258
  }
262
- .awsui_header-controls_wih1l_edm43_249 + .awsui_header-secondary_wih1l_edm43_229:not(#\9) {
259
+ .awsui_header-controls_wih1l_wc5vj_246 + .awsui_header-secondary_wih1l_wc5vj_229:not(#\9) {
263
260
  border-top: var(--border-divider-list-width-hacikr, 1px) solid var(--color-border-container-divider-4ade7z, transparent);
264
261
  }
265
262
 
266
- .awsui_divider_wih1l_edm43_266:not(#\9) {
263
+ .awsui_divider_wih1l_wc5vj_263:not(#\9) {
267
264
  border: none;
268
265
  margin: 0;
269
266
  height: 0;
270
267
  border-top: var(--border-divider-section-width-4wm2it, 2px) solid var(--color-border-divider-default-7s2wjw, #e9ebed);
271
268
  }
272
269
 
273
- .awsui_footer-wrapper_wih1l_edm43_273.awsui_variant-stacked_wih1l_edm43_153:not(#\9), .awsui_footer-wrapper_wih1l_edm43_273.awsui_variant-container_wih1l_edm43_153:not(#\9) {
270
+ .awsui_footer-wrapper_wih1l_wc5vj_270.awsui_variant-stacked_wih1l_wc5vj_153:not(#\9), .awsui_footer-wrapper_wih1l_wc5vj_270.awsui_variant-container_wih1l_wc5vj_153:not(#\9) {
274
271
  padding-left: var(--space-table-horizontal-58vuca, 24px);
275
272
  padding-right: var(--space-table-horizontal-58vuca, 24px);
276
273
  }
277
274
 
278
- .awsui_footer_wih1l_edm43_273:not(#\9) {
275
+ .awsui_footer_wih1l_wc5vj_270:not(#\9) {
279
276
  padding: var(--space-scaled-s-cu1hzn, 12px) var(--space-table-footer-horizontal-8o6sk8, 0px);
280
277
  }
281
278
 
282
- .awsui_thead-active_wih1l_edm43_282:not(#\9),
283
- .awsui_row_wih1l_edm43_283:not(#\9),
284
- .awsui_row-selected_wih1l_edm43_284:not(#\9) {
279
+ .awsui_thead-active_wih1l_wc5vj_279:not(#\9),
280
+ .awsui_row_wih1l_wc5vj_280:not(#\9),
281
+ .awsui_row-selected_wih1l_wc5vj_281:not(#\9) {
285
282
  /* used in test-utils */
286
283
  }