@cloudscape-design/components 3.0.27 → 3.0.30

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 (313) hide show
  1. package/alert/internal.d.ts.map +1 -1
  2. package/alert/internal.js +3 -4
  3. package/alert/internal.js.map +1 -1
  4. package/app-layout/index.js +1 -1
  5. package/app-layout/index.js.map +1 -1
  6. package/app-layout/visual-refresh/styles.css.js +59 -59
  7. package/app-layout/visual-refresh/styles.scoped.css +146 -146
  8. package/app-layout/visual-refresh/styles.selectors.js +59 -59
  9. package/autosuggest/controller.d.ts +1 -4
  10. package/autosuggest/controller.d.ts.map +1 -1
  11. package/autosuggest/controller.js +1 -45
  12. package/autosuggest/controller.js.map +1 -1
  13. package/autosuggest/internal.d.ts.map +1 -1
  14. package/autosuggest/internal.js +16 -23
  15. package/autosuggest/internal.js.map +1 -1
  16. package/autosuggest/options-controller.d.ts +22 -0
  17. package/autosuggest/options-controller.d.ts.map +1 -0
  18. package/autosuggest/options-controller.js +63 -0
  19. package/autosuggest/options-controller.js.map +1 -0
  20. package/autosuggest/options-list.d.ts.map +1 -1
  21. package/autosuggest/options-list.js +2 -1
  22. package/autosuggest/options-list.js.map +1 -1
  23. package/breadcrumb-group/internal.d.ts.map +1 -1
  24. package/breadcrumb-group/internal.js +4 -4
  25. package/breadcrumb-group/internal.js.map +1 -1
  26. package/button-dropdown/category-elements/category-element.d.ts +1 -1
  27. package/button-dropdown/category-elements/category-element.d.ts.map +1 -1
  28. package/button-dropdown/category-elements/category-element.js +2 -2
  29. package/button-dropdown/category-elements/category-element.js.map +1 -1
  30. package/button-dropdown/category-elements/expandable-category-element.d.ts +1 -1
  31. package/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  32. package/button-dropdown/category-elements/expandable-category-element.js +4 -2
  33. package/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  34. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts +1 -1
  35. package/button-dropdown/category-elements/mobile-expandable-category-element.d.ts.map +1 -1
  36. package/button-dropdown/category-elements/mobile-expandable-category-element.js +4 -2
  37. package/button-dropdown/category-elements/mobile-expandable-category-element.js.map +1 -1
  38. package/button-dropdown/category-elements/styles.css.js +13 -12
  39. package/button-dropdown/category-elements/styles.scoped.css +26 -22
  40. package/button-dropdown/category-elements/styles.selectors.js +13 -12
  41. package/button-dropdown/interfaces.d.ts +3 -1
  42. package/button-dropdown/interfaces.d.ts.map +1 -1
  43. package/button-dropdown/interfaces.js.map +1 -1
  44. package/button-dropdown/internal.d.ts.map +1 -1
  45. package/button-dropdown/internal.js +6 -11
  46. package/button-dropdown/internal.js.map +1 -1
  47. package/button-dropdown/item-element/index.d.ts +1 -1
  48. package/button-dropdown/item-element/index.d.ts.map +1 -1
  49. package/button-dropdown/item-element/index.js +2 -1
  50. package/button-dropdown/item-element/index.js.map +1 -1
  51. package/button-dropdown/item-element/styles.css.js +14 -13
  52. package/button-dropdown/item-element/styles.scoped.css +21 -17
  53. package/button-dropdown/item-element/styles.selectors.js +14 -13
  54. package/button-dropdown/items-list.d.ts +1 -1
  55. package/button-dropdown/items-list.d.ts.map +1 -1
  56. package/button-dropdown/items-list.js +4 -4
  57. package/button-dropdown/items-list.js.map +1 -1
  58. package/button-dropdown/utils/use-button-dropdown.d.ts +2 -2
  59. package/button-dropdown/utils/use-button-dropdown.d.ts.map +1 -1
  60. package/button-dropdown/utils/use-button-dropdown.js +7 -5
  61. package/button-dropdown/utils/use-button-dropdown.js.map +1 -1
  62. package/button-dropdown/utils/use-highlighted-menu.d.ts +1 -0
  63. package/button-dropdown/utils/use-highlighted-menu.d.ts.map +1 -1
  64. package/button-dropdown/utils/use-highlighted-menu.js +11 -3
  65. package/button-dropdown/utils/use-highlighted-menu.js.map +1 -1
  66. package/cards/index.js +1 -1
  67. package/cards/index.js.map +1 -1
  68. package/checkbox/styles.css.js +3 -3
  69. package/checkbox/styles.scoped.css +6 -6
  70. package/checkbox/styles.selectors.js +3 -3
  71. package/code-editor/index.d.ts.map +1 -1
  72. package/code-editor/index.js +2 -3
  73. package/code-editor/index.js.map +1 -1
  74. package/container/internal.js +1 -1
  75. package/container/internal.js.map +1 -1
  76. package/container/use-sticky-header.js +1 -1
  77. package/container/use-sticky-header.js.map +1 -1
  78. package/date-picker/calendar/index.d.ts.map +1 -1
  79. package/date-picker/calendar/index.js +2 -1
  80. package/date-picker/calendar/index.js.map +1 -1
  81. package/date-picker/calendar/utils/memoized-date.d.ts +2 -0
  82. package/date-picker/calendar/utils/memoized-date.d.ts.map +1 -0
  83. package/date-picker/calendar/utils/memoized-date.js +13 -0
  84. package/date-picker/calendar/utils/memoized-date.js.map +1 -0
  85. package/date-picker/embedded.js +1 -1
  86. package/date-picker/embedded.js.map +1 -1
  87. package/date-picker/index.js +1 -1
  88. package/date-picker/index.js.map +1 -1
  89. package/date-picker/use-date-picker.d.ts.map +1 -1
  90. package/date-picker/use-date-picker.js +1 -1
  91. package/date-picker/use-date-picker.js.map +1 -1
  92. package/date-range-picker/calendar/grids/day/index.js +1 -1
  93. package/date-range-picker/calendar/grids/day/index.js.map +1 -1
  94. package/date-range-picker/calendar/index.d.ts.map +1 -1
  95. package/date-range-picker/calendar/index.js +3 -3
  96. package/date-range-picker/calendar/index.js.map +1 -1
  97. package/date-range-picker/dropdown.d.ts +1 -0
  98. package/date-range-picker/dropdown.d.ts.map +1 -1
  99. package/date-range-picker/dropdown.js +18 -30
  100. package/date-range-picker/dropdown.js.map +1 -1
  101. package/date-range-picker/embedded.d.ts +7 -0
  102. package/date-range-picker/embedded.d.ts.map +1 -0
  103. package/date-range-picker/embedded.js +46 -0
  104. package/date-range-picker/embedded.js.map +1 -0
  105. package/date-range-picker/index.d.ts.map +1 -1
  106. package/date-range-picker/index.js +5 -18
  107. package/date-range-picker/index.js.map +1 -1
  108. package/date-range-picker/interfaces.d.ts +46 -44
  109. package/date-range-picker/interfaces.d.ts.map +1 -1
  110. package/date-range-picker/interfaces.js.map +1 -1
  111. package/date-range-picker/time-offset.d.ts +0 -7
  112. package/date-range-picker/time-offset.d.ts.map +1 -1
  113. package/date-range-picker/time-offset.js +4 -60
  114. package/date-range-picker/time-offset.js.map +1 -1
  115. package/date-range-picker/use-date-range-picker.d.ts +29 -0
  116. package/date-range-picker/use-date-range-picker.d.ts.map +1 -0
  117. package/date-range-picker/use-date-range-picker.js +58 -0
  118. package/date-range-picker/use-date-range-picker.js.map +1 -0
  119. package/flashbar/index.js +1 -1
  120. package/flashbar/index.js.map +1 -1
  121. package/form-field/internal.d.ts.map +1 -1
  122. package/form-field/internal.js +3 -6
  123. package/form-field/internal.js.map +1 -1
  124. package/header/internal.d.ts.map +1 -1
  125. package/header/internal.js +3 -6
  126. package/header/internal.js.map +1 -1
  127. package/icon/icons.js +1 -1
  128. package/icon/interfaces.d.ts +1 -1
  129. package/icon/interfaces.d.ts.map +1 -1
  130. package/icon/interfaces.js.map +1 -1
  131. package/icon/internal.js +1 -1
  132. package/icon/internal.js.map +1 -1
  133. package/input/styles.css.js +13 -13
  134. package/input/styles.scoped.css +35 -37
  135. package/input/styles.selectors.js +13 -13
  136. package/internal/components/abstract-switch/index.d.ts.map +1 -1
  137. package/internal/components/abstract-switch/index.js +5 -5
  138. package/internal/components/abstract-switch/index.js.map +1 -1
  139. package/internal/components/abstract-switch/styles.css.js +11 -11
  140. package/internal/components/abstract-switch/styles.scoped.css +20 -13
  141. package/internal/components/abstract-switch/styles.selectors.js +11 -11
  142. package/internal/components/checkbox-icon/index.d.ts.map +1 -1
  143. package/internal/components/checkbox-icon/index.js +3 -4
  144. package/internal/components/checkbox-icon/index.js.map +1 -1
  145. package/internal/components/content-layout/index.d.ts.map +1 -1
  146. package/internal/components/content-layout/index.js +3 -4
  147. package/internal/components/content-layout/index.js.map +1 -1
  148. package/internal/components/date-input/index.d.ts.map +1 -1
  149. package/internal/components/date-input/index.js +3 -2
  150. package/internal/components/date-input/index.js.map +1 -1
  151. package/internal/components/dropdown/index.js +1 -1
  152. package/internal/components/dropdown/index.js.map +1 -1
  153. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  154. package/internal/components/masked-input/utils/mask-format.js +2 -1
  155. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  156. package/internal/components/masked-input/utils/strings.d.ts +0 -1
  157. package/internal/components/masked-input/utils/strings.d.ts.map +1 -1
  158. package/internal/components/masked-input/utils/strings.js +0 -6
  159. package/internal/components/masked-input/utils/strings.js.map +1 -1
  160. package/internal/environment.js +1 -1
  161. package/internal/hooks/use-mutation-observer/index.d.ts +5 -0
  162. package/internal/hooks/use-mutation-observer/index.d.ts.map +1 -1
  163. package/internal/hooks/use-mutation-observer/index.js +5 -0
  164. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  165. package/internal/hooks/use-portal-mode-classes/index.js +1 -1
  166. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  167. package/internal/hooks/use-singleton-handler/index.d.ts +2 -1
  168. package/internal/hooks/use-singleton-handler/index.d.ts.map +1 -1
  169. package/internal/hooks/use-singleton-handler/index.js.map +1 -1
  170. package/internal/hooks/use-visual-mode/index.d.ts +1 -1
  171. package/internal/hooks/use-visual-mode/index.d.ts.map +1 -1
  172. package/internal/hooks/use-visual-mode/index.js +16 -11
  173. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  174. package/internal/utils/date-time/display-format.d.ts +9 -0
  175. package/internal/utils/date-time/display-format.d.ts.map +1 -0
  176. package/internal/utils/date-time/display-format.js +15 -0
  177. package/internal/utils/date-time/display-format.js.map +1 -0
  178. package/internal/utils/date-time/format-date.d.ts +7 -0
  179. package/internal/utils/date-time/format-date.d.ts.map +1 -0
  180. package/internal/utils/date-time/format-date.js +15 -0
  181. package/internal/utils/date-time/format-date.js.map +1 -0
  182. package/internal/utils/date-time/format-time.d.ts +5 -0
  183. package/internal/utils/date-time/format-time.d.ts.map +1 -0
  184. package/internal/utils/date-time/format-time.js +13 -0
  185. package/internal/utils/date-time/format-time.js.map +1 -0
  186. package/internal/utils/date-time/format-timezone-offset.d.ts +2 -0
  187. package/internal/utils/date-time/format-timezone-offset.d.ts.map +1 -0
  188. package/internal/utils/date-time/format-timezone-offset.js +11 -0
  189. package/internal/utils/date-time/format-timezone-offset.js.map +1 -0
  190. package/internal/utils/date-time/get-browser-timezone-offset.d.ts +7 -0
  191. package/internal/utils/date-time/get-browser-timezone-offset.d.ts.map +1 -0
  192. package/internal/utils/date-time/get-browser-timezone-offset.js +11 -0
  193. package/internal/utils/date-time/get-browser-timezone-offset.js.map +1 -0
  194. package/internal/utils/date-time/index.d.ts +11 -0
  195. package/internal/utils/date-time/index.d.ts.map +1 -0
  196. package/internal/utils/date-time/index.js +13 -0
  197. package/internal/utils/date-time/index.js.map +1 -0
  198. package/internal/utils/date-time/is-iso-date-only.d.ts +5 -0
  199. package/internal/utils/date-time/is-iso-date-only.d.ts.map +1 -0
  200. package/internal/utils/date-time/is-iso-date-only.js +10 -0
  201. package/internal/utils/date-time/is-iso-date-only.js.map +1 -0
  202. package/internal/utils/date-time/join-date-time.d.ts +2 -0
  203. package/internal/utils/date-time/join-date-time.d.ts.map +1 -0
  204. package/internal/utils/date-time/join-date-time.js +6 -0
  205. package/internal/utils/date-time/join-date-time.js.map +1 -0
  206. package/internal/utils/date-time/parse-date.d.ts +8 -0
  207. package/internal/utils/date-time/parse-date.d.ts.map +1 -0
  208. package/internal/utils/date-time/parse-date.js +16 -0
  209. package/internal/utils/date-time/parse-date.js.map +1 -0
  210. package/internal/utils/date-time/parse-timezone-offset.d.ts +5 -0
  211. package/internal/utils/date-time/parse-timezone-offset.d.ts.map +1 -0
  212. package/internal/utils/date-time/parse-timezone-offset.js +20 -0
  213. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -0
  214. package/internal/utils/date-time/shift-timezone-offset.d.ts +12 -0
  215. package/internal/utils/date-time/shift-timezone-offset.d.ts.map +1 -0
  216. package/internal/utils/date-time/shift-timezone-offset.js +27 -0
  217. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -0
  218. package/internal/utils/strings/index.d.ts +3 -0
  219. package/internal/utils/strings/index.d.ts.map +1 -0
  220. package/internal/utils/strings/index.js +5 -0
  221. package/internal/utils/strings/index.js.map +1 -0
  222. package/internal/utils/strings/join-strings.d.ts +5 -0
  223. package/internal/utils/strings/join-strings.d.ts.map +1 -0
  224. package/internal/utils/{strings.js → strings/join-strings.js} +7 -6
  225. package/internal/utils/strings/join-strings.js.map +1 -0
  226. package/internal/utils/strings/pad-left-zeros.d.ts +5 -0
  227. package/internal/utils/strings/pad-left-zeros.d.ts.map +1 -0
  228. package/internal/utils/strings/pad-left-zeros.js +12 -0
  229. package/internal/utils/strings/pad-left-zeros.js.map +1 -0
  230. package/link/internal.js +3 -3
  231. package/link/internal.js.map +1 -1
  232. package/link/styles.css.js +19 -18
  233. package/link/styles.scoped.css +73 -69
  234. package/link/styles.selectors.js +19 -18
  235. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  236. package/mixed-line-bar-chart/bar-series.js +3 -4
  237. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  238. package/mixed-line-bar-chart/chart-container.js +1 -1
  239. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  240. package/mixed-line-bar-chart/interfaces.d.ts +5 -4
  241. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  242. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  243. package/modal/internal.js +1 -1
  244. package/modal/internal.js.map +1 -1
  245. package/package.json +1 -1
  246. package/pie-chart/pie-chart.d.ts.map +1 -1
  247. package/pie-chart/pie-chart.js +2 -2
  248. package/pie-chart/pie-chart.js.map +1 -1
  249. package/pie-chart/segments.d.ts +1 -2
  250. package/pie-chart/segments.d.ts.map +1 -1
  251. package/pie-chart/segments.js +2 -2
  252. package/pie-chart/segments.js.map +1 -1
  253. package/popover/container.js +1 -1
  254. package/popover/container.js.map +1 -1
  255. package/popover/styles.css.js +48 -48
  256. package/popover/styles.scoped.css +65 -60
  257. package/popover/styles.selectors.js +48 -48
  258. package/property-filter/index.d.ts.map +1 -1
  259. package/property-filter/index.js +10 -2
  260. package/property-filter/index.js.map +1 -1
  261. package/radio-group/radio-button.d.ts.map +1 -1
  262. package/radio-group/radio-button.js +3 -4
  263. package/radio-group/radio-button.js.map +1 -1
  264. package/radio-group/styles.css.js +9 -9
  265. package/radio-group/styles.scoped.css +16 -16
  266. package/radio-group/styles.selectors.js +9 -9
  267. package/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
  268. package/s3-resource-selector/s3-modal/index.js +2 -3
  269. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  270. package/split-panel/index.d.ts.map +1 -1
  271. package/split-panel/index.js +2 -2
  272. package/split-panel/index.js.map +1 -1
  273. package/table/internal.js +1 -1
  274. package/table/internal.js.map +1 -1
  275. package/table/sticky-scrollbar.js +1 -1
  276. package/table/sticky-scrollbar.js.map +1 -1
  277. package/table/styles.css.js +32 -32
  278. package/table/styles.scoped.css +40 -43
  279. package/table/styles.selectors.js +32 -32
  280. package/tabs/styles.css.js +21 -21
  281. package/tabs/styles.scoped.css +40 -43
  282. package/tabs/styles.selectors.js +21 -21
  283. package/tabs/tab-header-bar.js +1 -1
  284. package/tabs/tab-header-bar.js.map +1 -1
  285. package/textarea/styles.css.js +4 -4
  286. package/textarea/styles.scoped.css +13 -14
  287. package/textarea/styles.selectors.js +4 -4
  288. package/toggle/internal.d.ts.map +1 -1
  289. package/toggle/internal.js +3 -1
  290. package/toggle/internal.js.map +1 -1
  291. package/toggle/styles.css.js +8 -8
  292. package/toggle/styles.scoped.css +15 -14
  293. package/toggle/styles.selectors.js +8 -8
  294. package/tutorial-panel/components/tutorial-detail-view/index.d.ts.map +1 -1
  295. package/tutorial-panel/components/tutorial-detail-view/index.js +3 -4
  296. package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  297. package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  298. package/tutorial-panel/components/tutorial-list/index.js +5 -7
  299. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  300. package/wizard/index.d.ts.map +1 -1
  301. package/wizard/index.js +2 -3
  302. package/wizard/index.js.map +1 -1
  303. package/date-picker/calendar/utils/date.d.ts +0 -10
  304. package/date-picker/calendar/utils/date.d.ts.map +0 -1
  305. package/date-picker/calendar/utils/date.js +0 -50
  306. package/date-picker/calendar/utils/date.js.map +0 -1
  307. package/internal/components/date-input/utils/date.d.ts +0 -5
  308. package/internal/components/date-input/utils/date.d.ts.map +0 -1
  309. package/internal/components/date-input/utils/date.js +0 -11
  310. package/internal/components/date-input/utils/date.js.map +0 -1
  311. package/internal/utils/strings.d.ts +0 -2
  312. package/internal/utils/strings.d.ts.map +0 -1
  313. package/internal/utils/strings.js.map +0 -1
@@ -19,7 +19,6 @@ import { checkSafeUrl } from '../internal/utils/check-safe-url';
19
19
  var InternalButtonDropdown = React.forwardRef(function (_a, ref) {
20
20
  var items = _a.items, _b = _a.variant, variant = _b === void 0 ? 'normal' : _b, _c = _a.loading, loading = _c === void 0 ? false : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, _e = _a.expandableGroups, expandableGroups = _e === void 0 ? false : _e, children = _a.children, onItemClick = _a.onItemClick, onItemFollow = _a.onItemFollow, customTriggerBuilder = _a.customTriggerBuilder, expandToViewport = _a.expandToViewport, ariaLabel = _a.ariaLabel, title = _a.title, description = _a.description, preferCenter = _a.preferCenter, __internalRootRef = _a.__internalRootRef, props = __rest(_a, ["items", "variant", "loading", "disabled", "expandableGroups", "children", "onItemClick", "onItemFollow", "customTriggerBuilder", "expandToViewport", "ariaLabel", "title", "description", "preferCenter", "__internalRootRef"]);
21
21
  var isInRestrictedView = useMobile();
22
- var usingMouse = useRef(true);
23
22
  var dropdownId = useUniqueId('dropdown');
24
23
  for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
25
24
  var item = items_1[_i];
@@ -30,19 +29,15 @@ var InternalButtonDropdown = React.forwardRef(function (_a, ref) {
30
29
  onItemClick: onItemClick,
31
30
  onItemFollow: onItemFollow,
32
31
  hasExpandableGroups: expandableGroups,
33
- isInRestrictedView: isInRestrictedView,
34
- usingMouse: usingMouse
35
- }), isOpen = _f.isOpen, targetItem = _f.targetItem, isHighlighted = _f.isHighlighted, isExpanded = _f.isExpanded, highlightItem = _f.highlightItem, onKeyDown = _f.onKeyDown, onKeyUp = _f.onKeyUp, onItemActivate = _f.onItemActivate, onGroupToggle = _f.onGroupToggle, toggleDropdown = _f.toggleDropdown;
32
+ isInRestrictedView: isInRestrictedView
33
+ }), isOpen = _f.isOpen, targetItem = _f.targetItem, isHighlighted = _f.isHighlighted, isKeyboardHighlight = _f.isKeyboardHighlight, isExpanded = _f.isExpanded, highlightItem = _f.highlightItem, onKeyDown = _f.onKeyDown, onKeyUp = _f.onKeyUp, onItemActivate = _f.onItemActivate, onGroupToggle = _f.onGroupToggle, toggleDropdown = _f.toggleDropdown, setIsUsingMouse = _f.setIsUsingMouse;
36
34
  var handleMouseEvent = function () {
37
- usingMouse.current = true;
35
+ setIsUsingMouse(true);
38
36
  };
39
37
  var baseProps = getBaseProps(props);
40
38
  var dropdownRef = useRef(null);
41
39
  useForwardFocus(ref, dropdownRef);
42
40
  var clickHandler = function () {
43
- if (!usingMouse.current) {
44
- return;
45
- }
46
41
  if (!loading && !disabled) {
47
42
  toggleDropdown();
48
43
  if (dropdownRef.current) {
@@ -67,13 +62,13 @@ var InternalButtonDropdown = React.forwardRef(function (_a, ref) {
67
62
  iconAlign: 'right',
68
63
  __iconClass: canBeOpened && isOpen ? styles['rotate-up'] : styles['rotate-down']
69
64
  };
70
- var trigger = customTriggerBuilder ? (customTriggerBuilder(clickHandler, dropdownRef, disabled, isOpen)) : (React.createElement(InternalButton, __assign({ ref: dropdownRef }, iconProps, { variant: triggerVariant, loading: loading, disabled: disabled, onClick: function (event) {
65
+ var trigger = customTriggerBuilder ? (customTriggerBuilder(clickHandler, dropdownRef, disabled, isOpen, ariaLabel)) : (React.createElement(InternalButton, __assign({ ref: dropdownRef }, iconProps, { variant: triggerVariant, loading: loading, disabled: disabled, onClick: function (event) {
71
66
  event.preventDefault();
72
67
  clickHandler();
73
68
  }, ariaLabel: ariaLabel, "aria-haspopup": true, ariaExpanded: canBeOpened && isOpen, formAction: "none" }), children));
74
69
  var hasHeader = title || description;
75
70
  var headerId = useUniqueId('awsui-button-dropdown__header');
76
- return (React.createElement("div", __assign({}, baseProps, { onKeyDown: onKeyDown, onKeyUp: onKeyUp, onMouseDown: handleMouseEvent, className: clsx(styles['button-dropdown'], styles["variant-".concat(variant)], baseProps.className), "aria-owns": expandToViewport && isOpen ? dropdownId : undefined, ref: __internalRootRef }),
71
+ return (React.createElement("div", __assign({}, baseProps, { onKeyDown: onKeyDown, onKeyUp: onKeyUp, onMouseDown: handleMouseEvent, onMouseMove: handleMouseEvent, className: clsx(styles['button-dropdown'], styles["variant-".concat(variant)], baseProps.className), "aria-owns": expandToViewport && isOpen ? dropdownId : undefined, ref: __internalRootRef }),
77
72
  React.createElement(Dropdown, { open: canBeOpened && isOpen, stretchWidth: false, stretchTriggerHeight: variant === 'navigation', expandToViewport: expandToViewport, preferCenter: preferCenter, onDropdownClose: function () {
78
73
  toggleDropdown();
79
74
  }, trigger: trigger, dropdownId: dropdownId },
@@ -83,7 +78,7 @@ var InternalButtonDropdown = React.forwardRef(function (_a, ref) {
83
78
  description && (React.createElement(InternalBox, { fontSize: "body-s" },
84
79
  React.createElement("span", { className: styles.description }, description))))),
85
80
  React.createElement(OptionsList, { open: canBeOpened && isOpen, position: "static", role: "menu", decreaseTopMargin: true, ariaLabelledby: hasHeader ? headerId : undefined },
86
- React.createElement(ItemsList, { items: items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, hasExpandableGroups: expandableGroups, targetItem: targetItem, isHighlighted: isHighlighted, isExpanded: isExpanded, highlightItem: highlightItem, expandToViewport: expandToViewport, variant: variant })))));
81
+ React.createElement(ItemsList, { items: items, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, hasExpandableGroups: expandableGroups, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, highlightItem: highlightItem, expandToViewport: expandToViewport, variant: variant })))));
87
82
  });
88
83
  export default InternalButtonDropdown;
89
84
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button-dropdown/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport { ButtonDropdownProps, InternalButtonDropdownProps } from './interfaces';\nimport { getBaseProps } from '../internal/base-component';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport Dropdown from '../internal/components/dropdown';\nimport ItemsList from './items-list';\nimport { useButtonDropdown } from './utils/use-button-dropdown';\nimport OptionsList from '../internal/components/options-list';\nimport { InternalButton } from '../button/internal';\nimport { ButtonProps } from '../button/interfaces';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalBox from '../box/internal';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\n\nconst InternalButtonDropdown = React.forwardRef(\n (\n {\n items,\n variant = 'normal',\n loading = false,\n disabled = false,\n expandableGroups = false,\n children,\n onItemClick,\n onItemFollow,\n customTriggerBuilder,\n expandToViewport,\n ariaLabel,\n title,\n description,\n preferCenter,\n __internalRootRef,\n ...props\n }: InternalButtonDropdownProps,\n ref: React.Ref<ButtonDropdownProps.Ref>\n ) => {\n const isInRestrictedView = useMobile();\n const usingMouse = useRef(true);\n const dropdownId = useUniqueId('dropdown');\n for (const item of items) {\n checkSafeUrl('ButtonDropdown', item.href);\n }\n\n const {\n isOpen,\n targetItem,\n isHighlighted,\n isExpanded,\n highlightItem,\n onKeyDown,\n onKeyUp,\n onItemActivate,\n onGroupToggle,\n toggleDropdown,\n } = useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n hasExpandableGroups: expandableGroups,\n isInRestrictedView,\n usingMouse,\n });\n\n const handleMouseEvent = () => {\n usingMouse.current = true;\n };\n\n const baseProps = getBaseProps(props);\n\n const dropdownRef = useRef<HTMLElement>(null);\n useForwardFocus(ref, dropdownRef);\n\n const clickHandler = () => {\n if (!usingMouse.current) {\n return;\n }\n if (!loading && !disabled) {\n toggleDropdown();\n if (dropdownRef.current) {\n dropdownRef.current.focus();\n }\n }\n };\n\n const canBeOpened = !loading && !disabled;\n const wasOpen = usePrevious(isOpen);\n\n useEffect(() => {\n if (!isOpen && dropdownRef.current && wasOpen) {\n dropdownRef.current.focus();\n }\n }, [isOpen, wasOpen]);\n\n const triggerVariant = variant === 'navigation' ? undefined : variant;\n const iconProps: Partial<ButtonProps & { __iconClass?: string }> =\n variant === 'icon'\n ? {\n iconName: 'ellipsis',\n }\n : {\n iconName: 'caret-down-filled',\n iconAlign: 'right',\n __iconClass: canBeOpened && isOpen ? styles['rotate-up'] : styles['rotate-down'],\n };\n\n const trigger = customTriggerBuilder ? (\n customTriggerBuilder(clickHandler, dropdownRef, disabled, isOpen)\n ) : (\n <InternalButton\n ref={dropdownRef}\n {...iconProps}\n variant={triggerVariant}\n loading={loading}\n disabled={disabled}\n onClick={(event: Event) => {\n event.preventDefault();\n clickHandler();\n }}\n ariaLabel={ariaLabel}\n aria-haspopup={true}\n ariaExpanded={canBeOpened && isOpen}\n formAction=\"none\"\n >\n {children}\n </InternalButton>\n );\n\n const hasHeader = title || description;\n const headerId = useUniqueId('awsui-button-dropdown__header');\n\n return (\n <div\n {...baseProps}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onMouseDown={handleMouseEvent}\n className={clsx(styles['button-dropdown'], styles[`variant-${variant}`], baseProps.className)}\n aria-owns={expandToViewport && isOpen ? dropdownId : undefined}\n ref={__internalRootRef}\n >\n <Dropdown\n open={canBeOpened && isOpen}\n stretchWidth={false}\n stretchTriggerHeight={variant === 'navigation'}\n expandToViewport={expandToViewport}\n preferCenter={preferCenter}\n onDropdownClose={() => {\n toggleDropdown();\n }}\n trigger={trigger}\n dropdownId={dropdownId}\n >\n {hasHeader && (\n <div className={styles.header} id={headerId}>\n {title && (\n <InternalBox fontSize=\"heading-s\" fontWeight=\"bold\">\n <span className={styles.title}>{title}</span>\n </InternalBox>\n )}\n {description && (\n <InternalBox fontSize=\"body-s\">\n <span className={styles.description}>{description}</span>\n </InternalBox>\n )}\n </div>\n )}\n <OptionsList\n open={canBeOpened && isOpen}\n position=\"static\"\n role=\"menu\"\n decreaseTopMargin={true}\n ariaLabelledby={hasHeader ? headerId : undefined}\n >\n <ItemsList\n items={items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n hasExpandableGroups={expandableGroups}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n expandToViewport={expandToViewport}\n variant={variant}\n />\n </OptionsList>\n </Dropdown>\n </div>\n );\n }\n);\n\nexport default InternalButtonDropdown;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/button-dropdown/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport styles from './styles.css.js';\nimport { ButtonDropdownProps, InternalButtonDropdownProps } from './interfaces';\nimport { getBaseProps } from '../internal/base-component';\nimport { useUniqueId } from '../internal/hooks/use-unique-id';\nimport Dropdown from '../internal/components/dropdown';\nimport ItemsList from './items-list';\nimport { useButtonDropdown } from './utils/use-button-dropdown';\nimport OptionsList from '../internal/components/options-list';\nimport { InternalButton } from '../button/internal';\nimport { ButtonProps } from '../button/interfaces';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport InternalBox from '../box/internal';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\n\nconst InternalButtonDropdown = React.forwardRef(\n (\n {\n items,\n variant = 'normal',\n loading = false,\n disabled = false,\n expandableGroups = false,\n children,\n onItemClick,\n onItemFollow,\n customTriggerBuilder,\n expandToViewport,\n ariaLabel,\n title,\n description,\n preferCenter,\n __internalRootRef,\n ...props\n }: InternalButtonDropdownProps,\n ref: React.Ref<ButtonDropdownProps.Ref>\n ) => {\n const isInRestrictedView = useMobile();\n const dropdownId = useUniqueId('dropdown');\n for (const item of items) {\n checkSafeUrl('ButtonDropdown', item.href);\n }\n\n const {\n isOpen,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n onKeyDown,\n onKeyUp,\n onItemActivate,\n onGroupToggle,\n toggleDropdown,\n setIsUsingMouse,\n } = useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n hasExpandableGroups: expandableGroups,\n isInRestrictedView,\n });\n\n const handleMouseEvent = () => {\n setIsUsingMouse(true);\n };\n\n const baseProps = getBaseProps(props);\n\n const dropdownRef = useRef<HTMLElement>(null);\n useForwardFocus(ref, dropdownRef);\n\n const clickHandler = () => {\n if (!loading && !disabled) {\n toggleDropdown();\n if (dropdownRef.current) {\n dropdownRef.current.focus();\n }\n }\n };\n\n const canBeOpened = !loading && !disabled;\n const wasOpen = usePrevious(isOpen);\n\n useEffect(() => {\n if (!isOpen && dropdownRef.current && wasOpen) {\n dropdownRef.current.focus();\n }\n }, [isOpen, wasOpen]);\n\n const triggerVariant = variant === 'navigation' ? undefined : variant;\n const iconProps: Partial<ButtonProps & { __iconClass?: string }> =\n variant === 'icon'\n ? {\n iconName: 'ellipsis',\n }\n : {\n iconName: 'caret-down-filled',\n iconAlign: 'right',\n __iconClass: canBeOpened && isOpen ? styles['rotate-up'] : styles['rotate-down'],\n };\n\n const trigger = customTriggerBuilder ? (\n customTriggerBuilder(clickHandler, dropdownRef, disabled, isOpen, ariaLabel)\n ) : (\n <InternalButton\n ref={dropdownRef}\n {...iconProps}\n variant={triggerVariant}\n loading={loading}\n disabled={disabled}\n onClick={(event: Event) => {\n event.preventDefault();\n clickHandler();\n }}\n ariaLabel={ariaLabel}\n aria-haspopup={true}\n ariaExpanded={canBeOpened && isOpen}\n formAction=\"none\"\n >\n {children}\n </InternalButton>\n );\n\n const hasHeader = title || description;\n const headerId = useUniqueId('awsui-button-dropdown__header');\n\n return (\n <div\n {...baseProps}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onMouseDown={handleMouseEvent}\n onMouseMove={handleMouseEvent}\n className={clsx(styles['button-dropdown'], styles[`variant-${variant}`], baseProps.className)}\n aria-owns={expandToViewport && isOpen ? dropdownId : undefined}\n ref={__internalRootRef}\n >\n <Dropdown\n open={canBeOpened && isOpen}\n stretchWidth={false}\n stretchTriggerHeight={variant === 'navigation'}\n expandToViewport={expandToViewport}\n preferCenter={preferCenter}\n onDropdownClose={() => {\n toggleDropdown();\n }}\n trigger={trigger}\n dropdownId={dropdownId}\n >\n {hasHeader && (\n <div className={styles.header} id={headerId}>\n {title && (\n <InternalBox fontSize=\"heading-s\" fontWeight=\"bold\">\n <span className={styles.title}>{title}</span>\n </InternalBox>\n )}\n {description && (\n <InternalBox fontSize=\"body-s\">\n <span className={styles.description}>{description}</span>\n </InternalBox>\n )}\n </div>\n )}\n <OptionsList\n open={canBeOpened && isOpen}\n position=\"static\"\n role=\"menu\"\n decreaseTopMargin={true}\n ariaLabelledby={hasHeader ? headerId : undefined}\n >\n <ItemsList\n items={items}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n hasExpandableGroups={expandableGroups}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n expandToViewport={expandToViewport}\n variant={variant}\n />\n </OptionsList>\n </Dropdown>\n </div>\n );\n }\n);\n\nexport default InternalButtonDropdown;\n"]}
@@ -1,4 +1,4 @@
1
1
  import { ItemProps } from '../interfaces';
2
- declare const ItemElement: ({ item, disabled, onItemActivate, highlighted, highlightItem, first, last, hasCategoryHeader, variant, }: ItemProps) => JSX.Element;
2
+ declare const ItemElement: ({ item, disabled, onItemActivate, highlighted, highlightItem, first, last, hasCategoryHeader, isKeyboardHighlighted, variant, }: ItemProps) => JSX.Element;
3
3
  export default ItemElement;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAY1C,QAAA,MAAM,WAAW,6GAUd,SAAS,gBAsCX,CAAC;AAkFF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAY1C,QAAA,MAAM,WAAW,oIAWd,SAAS,gBAuCX,CAAC;AAkFF,eAAe,WAAW,CAAC"}
@@ -13,7 +13,7 @@ import { useDropdownContext } from '../../internal/components/dropdown/context';
13
13
  import { getMenuItemProps } from '../utils/menu-item';
14
14
  var ItemElement = function (_a) {
15
15
  var _b;
16
- var item = _a.item, disabled = _a.disabled, onItemActivate = _a.onItemActivate, highlighted = _a.highlighted, highlightItem = _a.highlightItem, _c = _a.first, first = _c === void 0 ? false : _c, last = _a.last, hasCategoryHeader = _a.hasCategoryHeader, _d = _a.variant, variant = _d === void 0 ? 'normal' : _d;
16
+ var item = _a.item, disabled = _a.disabled, onItemActivate = _a.onItemActivate, highlighted = _a.highlighted, highlightItem = _a.highlightItem, _c = _a.first, first = _c === void 0 ? false : _c, last = _a.last, hasCategoryHeader = _a.hasCategoryHeader, _d = _a.isKeyboardHighlighted, isKeyboardHighlighted = _d === void 0 ? false : _d, _e = _a.variant, variant = _e === void 0 ? 'normal' : _e;
17
17
  var isLink = isLinkItem(item);
18
18
  var onClick = function (event) {
19
19
  // Stop propagation to parent node and handle event exclusively in here. This ensures
@@ -36,6 +36,7 @@ var ItemElement = function (_a) {
36
36
  _b[styles.first] = first,
37
37
  _b[styles.last] = last,
38
38
  _b[styles['has-category-header']] = hasCategoryHeader,
39
+ _b[styles['is-focused']] = isKeyboardHighlighted,
39
40
  _b)), role: "presentation", "data-testid": item.id, "data-description": item.description, onClick: onClick, onMouseEnter: onHover, onTouchStart: onHover },
40
41
  React.createElement(MenuItem, { item: item, disabled: disabled, highlighted: highlighted })));
41
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/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, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport { ItemProps } from '../interfaces';\nimport { isLinkItem } from '../utils/utils';\nimport styles from './styles.css.js';\nimport Tooltip from '../tooltip';\n\nimport { ButtonDropdownProps } from '../interfaces';\nimport { getItemTarget } from '../utils/utils';\nimport useHiddenDescription from '../utils/use-hidden-description';\nimport InternalIcon, { InternalIconProps } from '../../icon/internal';\nimport { useDropdownContext } from '../../internal/components/dropdown/context';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nconst ItemElement = ({\n item,\n disabled,\n onItemActivate,\n highlighted,\n highlightItem,\n first = false,\n last,\n hasCategoryHeader,\n variant = 'normal',\n}: ItemProps) => {\n const isLink = isLinkItem(item);\n const onClick = (event: React.MouseEvent) => {\n // Stop propagation to parent node and handle event exclusively in here. This ensures\n // that no group will interfere with the default behavior of links\n event.stopPropagation();\n if (!isLink) {\n event.preventDefault();\n }\n if (!disabled) {\n onItemActivate(item, event);\n }\n };\n\n const onHover = (event: React.SyntheticEvent) => {\n event.preventDefault();\n highlightItem(item);\n };\n\n return (\n <li\n className={clsx(styles['item-element'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles.disabled]: disabled,\n [styles.first]: first,\n [styles.last]: last,\n [styles['has-category-header']]: hasCategoryHeader,\n })}\n role=\"presentation\"\n data-testid={item.id}\n data-description={item.description}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n <MenuItem item={item} disabled={disabled} highlighted={highlighted} />\n </li>\n );\n};\n\ninterface MenuItemProps {\n item: ButtonDropdownProps.Item;\n disabled: boolean;\n highlighted: boolean;\n}\n\nfunction MenuItem({ item, disabled, highlighted }: MenuItemProps) {\n const menuItemRef = useRef<HTMLSpanElement | HTMLAnchorElement>(null);\n\n useEffect(() => {\n if (highlighted && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [highlighted]);\n\n const isDisabledWithReason = disabled && item.disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const menuItemProps: React.HTMLProps<HTMLSpanElement | HTMLAnchorElement> = {\n className: styles['menu-item'],\n ref: menuItemRef,\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex: highlighted ? 0 : -1,\n ...getMenuItemProps({ disabled }),\n ...(isDisabledWithReason ? targetProps : {}),\n };\n const menuItem = isLinkItem(item) ? (\n <a\n {...(menuItemProps as React.HTMLProps<HTMLAnchorElement>)}\n href={!disabled ? item.href : undefined}\n target={getItemTarget(item)}\n rel={item.external ? 'noopener noreferrer' : undefined}\n >\n <MenuItemContent item={item} disabled={disabled} />\n </a>\n ) : (\n <span {...menuItemProps}>\n <MenuItemContent item={item} disabled={disabled} />\n </span>\n );\n\n const { position } = useDropdownContext();\n const tooltipPosition = position === 'bottom-left' || position === 'top-left' ? 'left' : 'right';\n return isDisabledWithReason ? (\n <Tooltip content={item.disabledReason} position={tooltipPosition}>\n {menuItem}\n {descriptionEl}\n </Tooltip>\n ) : (\n menuItem\n );\n}\n\nconst MenuItemContent = ({ item, disabled }: { item: ButtonDropdownProps.Item; disabled: boolean }) => {\n const hasIcon = !!(item.iconName || item.iconUrl || item.iconSvg);\n const hasExternal = isLinkItem(item) && item.external;\n return (\n <>\n {hasIcon && <MenuItemIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />}{' '}\n {item.text} {hasExternal && <ExternalIcon disabled={disabled} ariaLabel={item.externalIconAriaLabel} />}\n </>\n );\n};\n\nconst MenuItemIcon = (props: InternalIconProps) => (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n);\n\nconst ExternalIcon = ({ disabled, ariaLabel }: { disabled: boolean; ariaLabel?: string }) => {\n const icon = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"external\" />;\n return (\n <span className={styles['external-icon']} role={ariaLabel ? 'img' : undefined} aria-label={ariaLabel}>\n {icon}\n </span>\n );\n};\n\nexport default ItemElement;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/button-dropdown/item-element/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, { useEffect, useRef } from 'react';\nimport clsx from 'clsx';\nimport { ItemProps } from '../interfaces';\nimport { isLinkItem } from '../utils/utils';\nimport styles from './styles.css.js';\nimport Tooltip from '../tooltip';\n\nimport { ButtonDropdownProps } from '../interfaces';\nimport { getItemTarget } from '../utils/utils';\nimport useHiddenDescription from '../utils/use-hidden-description';\nimport InternalIcon, { InternalIconProps } from '../../icon/internal';\nimport { useDropdownContext } from '../../internal/components/dropdown/context';\nimport { getMenuItemProps } from '../utils/menu-item';\n\nconst ItemElement = ({\n item,\n disabled,\n onItemActivate,\n highlighted,\n highlightItem,\n first = false,\n last,\n hasCategoryHeader,\n isKeyboardHighlighted = false,\n variant = 'normal',\n}: ItemProps) => {\n const isLink = isLinkItem(item);\n const onClick = (event: React.MouseEvent) => {\n // Stop propagation to parent node and handle event exclusively in here. This ensures\n // that no group will interfere with the default behavior of links\n event.stopPropagation();\n if (!isLink) {\n event.preventDefault();\n }\n if (!disabled) {\n onItemActivate(item, event);\n }\n };\n\n const onHover = (event: React.SyntheticEvent) => {\n event.preventDefault();\n highlightItem(item);\n };\n\n return (\n <li\n className={clsx(styles['item-element'], styles[`variant-${variant}`], {\n [styles.highlighted]: highlighted,\n [styles.disabled]: disabled,\n [styles.first]: first,\n [styles.last]: last,\n [styles['has-category-header']]: hasCategoryHeader,\n [styles['is-focused']]: isKeyboardHighlighted,\n })}\n role=\"presentation\"\n data-testid={item.id}\n data-description={item.description}\n onClick={onClick}\n onMouseEnter={onHover}\n onTouchStart={onHover}\n >\n <MenuItem item={item} disabled={disabled} highlighted={highlighted} />\n </li>\n );\n};\n\ninterface MenuItemProps {\n item: ButtonDropdownProps.Item;\n disabled: boolean;\n highlighted: boolean;\n}\n\nfunction MenuItem({ item, disabled, highlighted }: MenuItemProps) {\n const menuItemRef = useRef<HTMLSpanElement | HTMLAnchorElement>(null);\n\n useEffect(() => {\n if (highlighted && menuItemRef.current) {\n menuItemRef.current.focus();\n }\n }, [highlighted]);\n\n const isDisabledWithReason = disabled && item.disabledReason;\n const { targetProps, descriptionEl } = useHiddenDescription(item.disabledReason);\n const menuItemProps: React.HTMLProps<HTMLSpanElement | HTMLAnchorElement> = {\n className: styles['menu-item'],\n ref: menuItemRef,\n // We are using the roving tabindex technique to manage the focus state of the dropdown.\n // The current element will always have tabindex=0 which means that it can be tabbed to,\n // while all other items have tabindex=-1 so we can focus them when necessary.\n tabIndex: highlighted ? 0 : -1,\n ...getMenuItemProps({ disabled }),\n ...(isDisabledWithReason ? targetProps : {}),\n };\n const menuItem = isLinkItem(item) ? (\n <a\n {...(menuItemProps as React.HTMLProps<HTMLAnchorElement>)}\n href={!disabled ? item.href : undefined}\n target={getItemTarget(item)}\n rel={item.external ? 'noopener noreferrer' : undefined}\n >\n <MenuItemContent item={item} disabled={disabled} />\n </a>\n ) : (\n <span {...menuItemProps}>\n <MenuItemContent item={item} disabled={disabled} />\n </span>\n );\n\n const { position } = useDropdownContext();\n const tooltipPosition = position === 'bottom-left' || position === 'top-left' ? 'left' : 'right';\n return isDisabledWithReason ? (\n <Tooltip content={item.disabledReason} position={tooltipPosition}>\n {menuItem}\n {descriptionEl}\n </Tooltip>\n ) : (\n menuItem\n );\n}\n\nconst MenuItemContent = ({ item, disabled }: { item: ButtonDropdownProps.Item; disabled: boolean }) => {\n const hasIcon = !!(item.iconName || item.iconUrl || item.iconSvg);\n const hasExternal = isLinkItem(item) && item.external;\n return (\n <>\n {hasIcon && <MenuItemIcon name={item.iconName} url={item.iconUrl} svg={item.iconSvg} alt={item.iconAlt} />}{' '}\n {item.text} {hasExternal && <ExternalIcon disabled={disabled} ariaLabel={item.externalIconAriaLabel} />}\n </>\n );\n};\n\nconst MenuItemIcon = (props: InternalIconProps) => (\n <span className={styles.icon}>\n <InternalIcon {...props} />\n </span>\n);\n\nconst ExternalIcon = ({ disabled, ariaLabel }: { disabled: boolean; ariaLabel?: string }) => {\n const icon = <InternalIcon variant={disabled ? 'disabled' : 'normal'} name=\"external\" />;\n return (\n <span className={styles['external-icon']} role={ariaLabel ? 'img' : undefined} aria-label={ariaLabel}>\n {icon}\n </span>\n );\n};\n\nexport default ItemElement;\n"]}
@@ -1,18 +1,19 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "item-element": "awsui_item-element_93a1u_1cg8g_93",
5
- "disabled": "awsui_disabled_93a1u_1cg8g_103",
6
- "last": "awsui_last_93a1u_1cg8g_110",
7
- "highlighted": "awsui_highlighted_93a1u_1cg8g_113",
8
- "variant-icon": "awsui_variant-icon_93a1u_1cg8g_117",
9
- "variant-normal": "awsui_variant-normal_93a1u_1cg8g_117",
10
- "variant-primary": "awsui_variant-primary_93a1u_1cg8g_117",
11
- "variant-navigation": "awsui_variant-navigation_93a1u_1cg8g_127",
12
- "first": "awsui_first_93a1u_1cg8g_130",
13
- "has-category-header": "awsui_has-category-header_93a1u_1cg8g_130",
14
- "menu-item": "awsui_menu-item_93a1u_1cg8g_144",
15
- "icon": "awsui_icon_93a1u_1cg8g_162",
16
- "external-icon": "awsui_external-icon_93a1u_1cg8g_167"
4
+ "item-element": "awsui_item-element_93a1u_lwral_93",
5
+ "disabled": "awsui_disabled_93a1u_lwral_103",
6
+ "last": "awsui_last_93a1u_lwral_110",
7
+ "highlighted": "awsui_highlighted_93a1u_lwral_113",
8
+ "variant-icon": "awsui_variant-icon_93a1u_lwral_117",
9
+ "variant-normal": "awsui_variant-normal_93a1u_lwral_117",
10
+ "variant-primary": "awsui_variant-primary_93a1u_lwral_117",
11
+ "is-focused": "awsui_is-focused_93a1u_lwral_127",
12
+ "variant-navigation": "awsui_variant-navigation_93a1u_lwral_131",
13
+ "first": "awsui_first_93a1u_lwral_134",
14
+ "has-category-header": "awsui_has-category-header_93a1u_lwral_134",
15
+ "menu-item": "awsui_menu-item_93a1u_lwral_148",
16
+ "icon": "awsui_icon_93a1u_lwral_166",
17
+ "external-icon": "awsui_external-icon_93a1u_lwral_171"
17
18
  };
18
19
 
@@ -90,7 +90,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
90
90
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
91
91
  SPDX-License-Identifier: Apache-2.0
92
92
  */
93
- .awsui_item-element_93a1u_1cg8g_93:not(#\9) {
93
+ .awsui_item-element_93a1u_lwral_93:not(#\9) {
94
94
  position: relative;
95
95
  z-index: 1;
96
96
  border: var(--border-item-width-qbbbsa, 2px) solid transparent;
@@ -100,48 +100,52 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
100
100
  margin-top: calc(-1 * var(--border-field-width-idlekx, 2px));
101
101
  cursor: pointer;
102
102
  }
103
- .awsui_item-element_93a1u_1cg8g_93.awsui_disabled_93a1u_1cg8g_103:not(#\9) {
103
+ .awsui_item-element_93a1u_lwral_93.awsui_disabled_93a1u_lwral_103:not(#\9) {
104
104
  cursor: default;
105
105
  color: var(--color-text-dropdown-item-disabled-varol7, #9ba7b6);
106
106
  }
107
- .awsui_item-element_93a1u_1cg8g_93:not(#\9):first-child {
107
+ .awsui_item-element_93a1u_lwral_93:not(#\9):first-child {
108
108
  margin-top: 0;
109
109
  }
110
- .awsui_item-element_93a1u_1cg8g_93.awsui_last_93a1u_1cg8g_110:not(#\9) {
110
+ .awsui_item-element_93a1u_lwral_93.awsui_last_93a1u_lwral_110:not(#\9) {
111
111
  border-bottom: var(--border-item-width-qbbbsa, 2px) solid var(--color-border-dropdown-group-0utpsr, #e9ebed);
112
112
  }
113
- .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113:not(#\9) {
113
+ .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113:not(#\9) {
114
114
  color: var(--color-text-dropdown-item-highlighted-oaabyk, #000716);
115
115
  z-index: 2;
116
116
  }
117
- .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-icon_93a1u_1cg8g_117:not(#\9), .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-normal_93a1u_1cg8g_117:not(#\9), .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-primary_93a1u_1cg8g_117:not(#\9) {
117
+ .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-icon_93a1u_lwral_117:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-normal_93a1u_lwral_117:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-primary_93a1u_lwral_117:not(#\9) {
118
118
  background-color: var(--color-background-dropdown-item-hover-mqsxkv, #f4f4f4);
119
119
  border-color: var(--color-border-dropdown-item-hover-tyzq9m, #7d8998);
120
120
  border-radius: var(--border-radius-item-u2ibpi, 8px);
121
121
  }
122
- .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-icon_93a1u_1cg8g_117.awsui_disabled_93a1u_1cg8g_103:not(#\9), .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-normal_93a1u_1cg8g_117.awsui_disabled_93a1u_1cg8g_103:not(#\9), .awsui_item-element_93a1u_1cg8g_93.awsui_highlighted_93a1u_1cg8g_113.awsui_variant-primary_93a1u_1cg8g_117.awsui_disabled_93a1u_1cg8g_103:not(#\9) {
122
+ .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-icon_93a1u_lwral_117.awsui_disabled_93a1u_lwral_103:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-normal_93a1u_lwral_117.awsui_disabled_93a1u_lwral_103:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-primary_93a1u_lwral_117.awsui_disabled_93a1u_lwral_103:not(#\9) {
123
123
  color: var(--color-text-dropdown-item-dimmed-jyqdrs, #9ba7b6);
124
124
  border-color: var(--color-border-dropdown-item-dimmed-hover-6dhy15, #7d8998);
125
125
  background-color: var(--color-background-dropdown-item-dimmed-qw48ma, transparent);
126
126
  }
127
- .awsui_item-element_93a1u_1cg8g_93.awsui_variant-navigation_93a1u_1cg8g_127.awsui_highlighted_93a1u_1cg8g_113:not(#\9) {
127
+ .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-icon_93a1u_lwral_117.awsui_is-focused_93a1u_lwral_127:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-normal_93a1u_lwral_117.awsui_is-focused_93a1u_lwral_127:not(#\9), .awsui_item-element_93a1u_lwral_93.awsui_highlighted_93a1u_lwral_113.awsui_variant-primary_93a1u_lwral_117.awsui_is-focused_93a1u_lwral_127:not(#\9) {
128
+ border-color: var(--color-border-item-focused-ap3b6s, #0972d3);
129
+ box-shadow: inset 0 0 0 var(--border-control-focus-ring-shadow-spread-srzyiu, 0px) var(--color-border-item-focused-ap3b6s, #0972d3);
130
+ }
131
+ .awsui_item-element_93a1u_lwral_93.awsui_variant-navigation_93a1u_lwral_131.awsui_highlighted_93a1u_lwral_113:not(#\9) {
128
132
  color: var(--color-text-accent-s1eqko, #0972d3);
129
133
  }
130
- .awsui_item-element_93a1u_1cg8g_93.awsui_variant-navigation_93a1u_1cg8g_127.awsui_first_93a1u_1cg8g_130:not(#\9):not(.awsui_has-category-header_93a1u_1cg8g_130) {
134
+ .awsui_item-element_93a1u_lwral_93.awsui_variant-navigation_93a1u_lwral_131.awsui_first_93a1u_lwral_134:not(#\9):not(.awsui_has-category-header_93a1u_lwral_134) {
131
135
  padding-top: var(--space-xxs-ynfts5, 4px);
132
136
  }
133
- .awsui_item-element_93a1u_1cg8g_93.awsui_variant-navigation_93a1u_1cg8g_127.awsui_last_93a1u_1cg8g_110:not(#\9) {
137
+ .awsui_item-element_93a1u_lwral_93.awsui_variant-navigation_93a1u_lwral_131.awsui_last_93a1u_lwral_110:not(#\9) {
134
138
  padding-bottom: var(--space-xxs-ynfts5, 4px);
135
139
  }
136
- .awsui_item-element_93a1u_1cg8g_93.awsui_variant-navigation_93a1u_1cg8g_127.awsui_first_93a1u_1cg8g_130.awsui_last_93a1u_1cg8g_110:not(#\9) {
140
+ .awsui_item-element_93a1u_lwral_93.awsui_variant-navigation_93a1u_lwral_131.awsui_first_93a1u_lwral_134.awsui_last_93a1u_lwral_110:not(#\9) {
137
141
  padding-bottom: var(--space-xxs-ynfts5, 4px);
138
142
  padding-top: var(--space-xxs-ynfts5, 4px);
139
143
  }
140
- .awsui_item-element_93a1u_1cg8g_93.awsui_variant-navigation_93a1u_1cg8g_127.awsui_last_93a1u_1cg8g_110:not(#\9):last-child {
144
+ .awsui_item-element_93a1u_lwral_93.awsui_variant-navigation_93a1u_lwral_131.awsui_last_93a1u_lwral_110:not(#\9):last-child {
141
145
  padding-bottom: var(--space-xxs-ynfts5, 4px);
142
146
  }
143
147
 
144
- .awsui_menu-item_93a1u_1cg8g_144:not(#\9) {
148
+ .awsui_menu-item_93a1u_lwral_148:not(#\9) {
145
149
  min-width: 0;
146
150
  -ms-word-break: break-all;
147
151
  word-break: break-word;
@@ -152,18 +156,18 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
152
156
  text-decoration: none;
153
157
  /* stylelint-disable-next-line selector-max-type */
154
158
  }
155
- .awsui_menu-item_93a1u_1cg8g_144:not(#\9):focus {
159
+ .awsui_menu-item_93a1u_lwral_148:not(#\9):focus {
156
160
  outline: none;
157
161
  }
158
- .awsui_has-category-header_93a1u_1cg8g_130 > .awsui_menu-item_93a1u_1cg8g_144:not(#\9), .awsui_has-category-header_93a1u_1cg8g_130 > span > .awsui_menu-item_93a1u_1cg8g_144:not(#\9) {
162
+ .awsui_has-category-header_93a1u_lwral_134 > .awsui_menu-item_93a1u_lwral_148:not(#\9), .awsui_has-category-header_93a1u_lwral_134 > span > .awsui_menu-item_93a1u_lwral_148:not(#\9) {
159
163
  padding-left: var(--space-xxl-2nvmf1, 32px);
160
164
  }
161
165
 
162
- .awsui_icon_93a1u_1cg8g_162:not(#\9) {
166
+ .awsui_icon_93a1u_lwral_166:not(#\9) {
163
167
  padding-right: var(--space-xs-rsr2qu, 8px);
164
168
  flex-shrink: 0;
165
169
  }
166
170
 
167
- .awsui_external-icon_93a1u_1cg8g_167:not(#\9) {
171
+ .awsui_external-icon_93a1u_lwral_171:not(#\9) {
168
172
  margin-left: var(--space-xxs-ynfts5, 4px);
169
173
  }
@@ -2,18 +2,19 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "item-element": "awsui_item-element_93a1u_1cg8g_93",
6
- "disabled": "awsui_disabled_93a1u_1cg8g_103",
7
- "last": "awsui_last_93a1u_1cg8g_110",
8
- "highlighted": "awsui_highlighted_93a1u_1cg8g_113",
9
- "variant-icon": "awsui_variant-icon_93a1u_1cg8g_117",
10
- "variant-normal": "awsui_variant-normal_93a1u_1cg8g_117",
11
- "variant-primary": "awsui_variant-primary_93a1u_1cg8g_117",
12
- "variant-navigation": "awsui_variant-navigation_93a1u_1cg8g_127",
13
- "first": "awsui_first_93a1u_1cg8g_130",
14
- "has-category-header": "awsui_has-category-header_93a1u_1cg8g_130",
15
- "menu-item": "awsui_menu-item_93a1u_1cg8g_144",
16
- "icon": "awsui_icon_93a1u_1cg8g_162",
17
- "external-icon": "awsui_external-icon_93a1u_1cg8g_167"
5
+ "item-element": "awsui_item-element_93a1u_lwral_93",
6
+ "disabled": "awsui_disabled_93a1u_lwral_103",
7
+ "last": "awsui_last_93a1u_lwral_110",
8
+ "highlighted": "awsui_highlighted_93a1u_lwral_113",
9
+ "variant-icon": "awsui_variant-icon_93a1u_lwral_117",
10
+ "variant-normal": "awsui_variant-normal_93a1u_lwral_117",
11
+ "variant-primary": "awsui_variant-primary_93a1u_lwral_117",
12
+ "is-focused": "awsui_is-focused_93a1u_lwral_127",
13
+ "variant-navigation": "awsui_variant-navigation_93a1u_lwral_131",
14
+ "first": "awsui_first_93a1u_lwral_134",
15
+ "has-category-header": "awsui_has-category-header_93a1u_lwral_134",
16
+ "menu-item": "awsui_menu-item_93a1u_lwral_148",
17
+ "icon": "awsui_icon_93a1u_lwral_166",
18
+ "external-icon": "awsui_external-icon_93a1u_lwral_171"
18
19
  };
19
20
 
@@ -1,3 +1,3 @@
1
1
  import { ItemListProps } from './interfaces';
2
- export default function ItemsList({ items, onItemActivate, onGroupToggle, targetItem, isHighlighted, isExpanded, highlightItem, categoryDisabled, hasExpandableGroups, hasCategoryHeader, expandToViewport, variant, }: ItemListProps): JSX.Element;
2
+ export default function ItemsList({ items, onItemActivate, onGroupToggle, targetItem, isHighlighted, isKeyboardHighlight, isExpanded, highlightItem, categoryDisabled, hasExpandableGroups, hasCategoryHeader, expandToViewport, variant, }: ItemListProps): JSX.Element;
3
3
  //# sourceMappingURL=items-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"items-list.d.ts","sourceRoot":"","sources":["../../../src/button-dropdown/items-list.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAwB,EACxB,mBAA2B,EAC3B,iBAAyB,EACzB,gBAAwB,EACxB,OAAkB,GACnB,EAAE,aAAa,eAqEf"}
1
+ {"version":3,"file":"items-list.d.ts","sourceRoot":"","sources":["../../../src/button-dropdown/items-list.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,gBAAwB,EACxB,mBAA2B,EAC3B,iBAAyB,EACzB,gBAAwB,EACxB,OAAkB,GACnB,EAAE,aAAa,eAyEf"}
@@ -8,17 +8,17 @@ import { isItemGroup } from './utils/utils';
8
8
  import { useMobile } from '../internal/hooks/use-mobile';
9
9
  import MobileExpandableCategoryElement from './category-elements/mobile-expandable-category-element';
10
10
  export default function ItemsList(_a) {
11
- var items = _a.items, onItemActivate = _a.onItemActivate, onGroupToggle = _a.onGroupToggle, targetItem = _a.targetItem, isHighlighted = _a.isHighlighted, isExpanded = _a.isExpanded, highlightItem = _a.highlightItem, _b = _a.categoryDisabled, categoryDisabled = _b === void 0 ? false : _b, _c = _a.hasExpandableGroups, hasExpandableGroups = _c === void 0 ? false : _c, _d = _a.hasCategoryHeader, hasCategoryHeader = _d === void 0 ? false : _d, _e = _a.expandToViewport, expandToViewport = _e === void 0 ? false : _e, _f = _a.variant, variant = _f === void 0 ? 'normal' : _f;
11
+ var items = _a.items, onItemActivate = _a.onItemActivate, onGroupToggle = _a.onGroupToggle, targetItem = _a.targetItem, isHighlighted = _a.isHighlighted, isKeyboardHighlight = _a.isKeyboardHighlight, isExpanded = _a.isExpanded, highlightItem = _a.highlightItem, _b = _a.categoryDisabled, categoryDisabled = _b === void 0 ? false : _b, _c = _a.hasExpandableGroups, hasExpandableGroups = _c === void 0 ? false : _c, _d = _a.hasCategoryHeader, hasCategoryHeader = _d === void 0 ? false : _d, _e = _a.expandToViewport, expandToViewport = _e === void 0 ? false : _e, _f = _a.variant, variant = _f === void 0 ? 'normal' : _f;
12
12
  var isMobile = useMobile();
13
13
  var elements = items.map(function (item, index) {
14
14
  var _a, _b, _c, _d;
15
15
  if (!isItemGroup(item)) {
16
- return (React.createElement(ItemElement, { key: index, item: item, onItemActivate: onItemActivate, disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : categoryDisabled, highlighted: isHighlighted(item), highlightItem: highlightItem, first: index === 0 || isItemGroup(items[index - 1]), last: index === items.length - 1 || isItemGroup(items[index + 1]), hasCategoryHeader: hasCategoryHeader, variant: variant }));
16
+ return (React.createElement(ItemElement, { key: index, item: item, onItemActivate: onItemActivate, disabled: (_a = item.disabled) !== null && _a !== void 0 ? _a : categoryDisabled, highlighted: isHighlighted(item), isKeyboardHighlighted: isKeyboardHighlight(item), highlightItem: highlightItem, first: index === 0 || isItemGroup(items[index - 1]), last: index === items.length - 1 || isItemGroup(items[index + 1]), hasCategoryHeader: hasCategoryHeader, variant: variant }));
17
17
  }
18
18
  if (hasExpandableGroups) {
19
- return item.text ? (isMobile ? (React.createElement(MobileExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_b = item.disabled) !== null && _b !== void 0 ? _b : false, variant: variant })) : (React.createElement(ExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_c = item.disabled) !== null && _c !== void 0 ? _c : false, expandToViewport: expandToViewport, variant: variant }))) : null;
19
+ return item.text ? (isMobile ? (React.createElement(MobileExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_b = item.disabled) !== null && _b !== void 0 ? _b : false, variant: variant })) : (React.createElement(ExpandableCategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_c = item.disabled) !== null && _c !== void 0 ? _c : false, expandToViewport: expandToViewport, variant: variant }))) : null;
20
20
  }
21
- return (React.createElement(CategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_d = item.disabled) !== null && _d !== void 0 ? _d : false, variant: variant }));
21
+ return (React.createElement(CategoryElement, { key: index, item: item, onItemActivate: onItemActivate, onGroupToggle: onGroupToggle, targetItem: targetItem, isHighlighted: isHighlighted, isKeyboardHighlight: isKeyboardHighlight, isExpanded: isExpanded, highlightItem: highlightItem, disabled: (_d = item.disabled) !== null && _d !== void 0 ? _d : false, variant: variant }));
22
22
  });
23
23
  return React.createElement(React.Fragment, null, elements);
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"items-list.js","sourceRoot":"","sources":["../../../src/button-dropdown/items-list.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,yBAAyB,MAAM,iDAAiD,CAAC;AACxF,OAAO,eAAe,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,+BAA+B,MAAM,wDAAwD,CAAC;AAErG,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAalB;QAZd,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,aAAa,mBAAA,EACb,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA,EACxB,2BAA2B,EAA3B,mBAAmB,mBAAG,KAAK,KAAA,EAC3B,yBAAyB,EAAzB,iBAAiB,mBAAG,KAAK,KAAA,EACzB,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA,EACxB,eAAkB,EAAlB,OAAO,mBAAG,QAAQ,KAAA;IAElB,IAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;IAE7B,IAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;;QACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACtB,OAAO,CACL,oBAAC,WAAW,IACV,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,gBAAgB,EAC3C,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,EAChC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EACnD,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EACjE,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;SACH;QACD,IAAI,mBAAmB,EAAE;YACvB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACjB,QAAQ,CAAC,CAAC,CAAC,CACT,oBAAC,+BAA+B,IAC9B,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,KAAK,EAChC,OAAO,EAAE,OAAO,GAChB,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,yBAAyB,IACxB,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,KAAK,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,OAAO,GAChB,CACH,CACF,CAAC,CAAC,CAAC,IAAI,CAAC;SACV;QACD,OAAO,CACL,oBAAC,eAAe,IACd,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,KAAK,EAChC,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,0CAAG,QAAQ,CAAI,CAAC;AACzB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport { ItemListProps } from './interfaces';\nimport ItemElement from './item-element';\nimport ExpandableCategoryElement from './category-elements/expandable-category-element';\nimport CategoryElement from './category-elements/category-element';\nimport { isItemGroup } from './utils/utils';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport MobileExpandableCategoryElement from './category-elements/mobile-expandable-category-element';\n\nexport default function ItemsList({\n items,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isExpanded,\n highlightItem,\n categoryDisabled = false,\n hasExpandableGroups = false,\n hasCategoryHeader = false,\n expandToViewport = false,\n variant = 'normal',\n}: ItemListProps) {\n const isMobile = useMobile();\n\n const elements = items.map((item, index) => {\n if (!isItemGroup(item)) {\n return (\n <ItemElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n disabled={item.disabled ?? categoryDisabled}\n highlighted={isHighlighted(item)}\n highlightItem={highlightItem}\n first={index === 0 || isItemGroup(items[index - 1])}\n last={index === items.length - 1 || isItemGroup(items[index + 1])}\n hasCategoryHeader={hasCategoryHeader}\n variant={variant}\n />\n );\n }\n if (hasExpandableGroups) {\n return item.text ? (\n isMobile ? (\n <MobileExpandableCategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n variant={variant}\n />\n ) : (\n <ExpandableCategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n expandToViewport={expandToViewport}\n variant={variant}\n />\n )\n ) : null;\n }\n return (\n <CategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n variant={variant}\n />\n );\n });\n\n return <>{elements}</>;\n}\n"]}
1
+ {"version":3,"file":"items-list.js","sourceRoot":"","sources":["../../../src/button-dropdown/items-list.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 from 'react';\nimport { ItemListProps } from './interfaces';\nimport ItemElement from './item-element';\nimport ExpandableCategoryElement from './category-elements/expandable-category-element';\nimport CategoryElement from './category-elements/category-element';\nimport { isItemGroup } from './utils/utils';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport MobileExpandableCategoryElement from './category-elements/mobile-expandable-category-element';\n\nexport default function ItemsList({\n items,\n onItemActivate,\n onGroupToggle,\n targetItem,\n isHighlighted,\n isKeyboardHighlight,\n isExpanded,\n highlightItem,\n categoryDisabled = false,\n hasExpandableGroups = false,\n hasCategoryHeader = false,\n expandToViewport = false,\n variant = 'normal',\n}: ItemListProps) {\n const isMobile = useMobile();\n\n const elements = items.map((item, index) => {\n if (!isItemGroup(item)) {\n return (\n <ItemElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n disabled={item.disabled ?? categoryDisabled}\n highlighted={isHighlighted(item)}\n isKeyboardHighlighted={isKeyboardHighlight(item)}\n highlightItem={highlightItem}\n first={index === 0 || isItemGroup(items[index - 1])}\n last={index === items.length - 1 || isItemGroup(items[index + 1])}\n hasCategoryHeader={hasCategoryHeader}\n variant={variant}\n />\n );\n }\n if (hasExpandableGroups) {\n return item.text ? (\n isMobile ? (\n <MobileExpandableCategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n variant={variant}\n />\n ) : (\n <ExpandableCategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n expandToViewport={expandToViewport}\n variant={variant}\n />\n )\n ) : null;\n }\n return (\n <CategoryElement\n key={index}\n item={item}\n onItemActivate={onItemActivate}\n onGroupToggle={onGroupToggle}\n targetItem={targetItem}\n isHighlighted={isHighlighted}\n isKeyboardHighlight={isKeyboardHighlight}\n isExpanded={isExpanded}\n highlightItem={highlightItem}\n disabled={item.disabled ?? false}\n variant={variant}\n />\n );\n });\n\n return <>{elements}</>;\n}\n"]}
@@ -5,7 +5,6 @@ interface UseButtonDropdownOptions extends ButtonDropdownSettings {
5
5
  items: ButtonDropdownProps.Items;
6
6
  onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
7
7
  onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;
8
- usingMouse: React.MutableRefObject<boolean>;
9
8
  }
10
9
  interface UseButtonDropdownApi extends HighlightProps {
11
10
  isOpen: boolean;
@@ -14,7 +13,8 @@ interface UseButtonDropdownApi extends HighlightProps {
14
13
  onItemActivate: ItemActivate;
15
14
  onGroupToggle: GroupToggle;
16
15
  toggleDropdown: () => void;
16
+ setIsUsingMouse: (isUsingMouse: boolean) => void;
17
17
  }
18
- export declare function useButtonDropdown({ items, onItemClick, onItemFollow, hasExpandableGroups, isInRestrictedView, usingMouse, }: UseButtonDropdownOptions): UseButtonDropdownApi;
18
+ export declare function useButtonDropdown({ items, onItemClick, onItemFollow, hasExpandableGroups, isInRestrictedView, }: UseButtonDropdownOptions): UseButtonDropdownApi;
19
19
  export {};
20
20
  //# 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,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EAAuB,sBAAsB,EAAoB,MAAM,uBAAuB,CAAC;AAKtG,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,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;CAC7C;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,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAA0B,EAC1B,UAAU,GACX,EAAE,wBAAwB,GAAG,oBAAoB,CAwIjD"}
1
+ {"version":3,"file":"use-button-dropdown.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-button-dropdown.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvH,OAAO,EAAuB,sBAAsB,EAAoB,MAAM,uBAAuB,CAAC;AAKtG,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;CAC7E;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,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAA0B,GAC3B,EAAE,wBAAwB,GAAG,oBAAoB,CAoJjD"}
@@ -4,12 +4,12 @@ import { KeyCode } from '../../internal/keycode';
4
4
  import { getItemTarget, isItemGroup, isLinkItem } from './utils';
5
5
  import useHighlightedMenu from './use-highlighted-menu';
6
6
  export function useButtonDropdown(_a) {
7
- var items = _a.items, onItemClick = _a.onItemClick, onItemFollow = _a.onItemFollow, hasExpandableGroups = _a.hasExpandableGroups, _b = _a.isInRestrictedView, isInRestrictedView = _b === void 0 ? false : _b, usingMouse = _a.usingMouse;
7
+ var items = _a.items, onItemClick = _a.onItemClick, onItemFollow = _a.onItemFollow, hasExpandableGroups = _a.hasExpandableGroups, _b = _a.isInRestrictedView, isInRestrictedView = _b === void 0 ? false : _b;
8
8
  var _c = useHighlightedMenu({
9
9
  items: items,
10
10
  hasExpandableGroups: hasExpandableGroups,
11
11
  isInRestrictedView: isInRestrictedView
12
- }), targetItem = _c.targetItem, isHighlighted = _c.isHighlighted, isExpanded = _c.isExpanded, highlightItem = _c.highlightItem, moveHighlight = _c.moveHighlight, expandGroup = _c.expandGroup, collapseGroup = _c.collapseGroup, reset = _c.reset;
12
+ }), targetItem = _c.targetItem, isHighlighted = _c.isHighlighted, isKeyboardHighlight = _c.isKeyboardHighlight, isExpanded = _c.isExpanded, highlightItem = _c.highlightItem, moveHighlight = _c.moveHighlight, expandGroup = _c.expandGroup, collapseGroup = _c.collapseGroup, reset = _c.reset, setIsUsingMouse = _c.setIsUsingMouse;
13
13
  var _d = useOpenState({ onClose: reset }), isOpen = _d.isOpen, closeDropdown = _d.closeDropdown, toggleDropdown = _d.toggleDropdown;
14
14
  var onGroupToggle = function (item) { return (!isExpanded(item) ? expandGroup(item) : collapseGroup()); };
15
15
  var onItemActivate = function (item, event) {
@@ -57,7 +57,7 @@ export function useButtonDropdown(_a) {
57
57
  }
58
58
  };
59
59
  var activate = function (event, isEnter) {
60
- usingMouse.current = false;
60
+ setIsUsingMouse(false);
61
61
  // if item is a link we rely on default behavior of an anchor, no need to prevent
62
62
  if (targetItem && isLinkItem(targetItem) && isEnter) {
63
63
  return;
@@ -66,6 +66,7 @@ export function useButtonDropdown(_a) {
66
66
  actOnParentDropdown(event);
67
67
  };
68
68
  var onKeyDown = function (event) {
69
+ setIsUsingMouse(false);
69
70
  switch (event.keyCode) {
70
71
  case KeyCode.down: {
71
72
  doVerticalNavigation(1);
@@ -79,7 +80,6 @@ export function useButtonDropdown(_a) {
79
80
  }
80
81
  case KeyCode.space: {
81
82
  // Prevent scrolling the list of items and highlighting the trigger
82
- usingMouse.current = false;
83
83
  event.preventDefault();
84
84
  break;
85
85
  }
@@ -123,13 +123,15 @@ export function useButtonDropdown(_a) {
123
123
  isOpen: isOpen,
124
124
  targetItem: targetItem,
125
125
  isHighlighted: isHighlighted,
126
+ isKeyboardHighlight: isKeyboardHighlight,
126
127
  isExpanded: isExpanded,
127
128
  highlightItem: highlightItem,
128
129
  onKeyDown: onKeyDown,
129
130
  onKeyUp: onKeyUp,
130
131
  onItemActivate: onItemActivate,
131
132
  onGroupToggle: onGroupToggle,
132
- toggleDropdown: toggleDropdown
133
+ toggleDropdown: toggleDropdown,
134
+ setIsUsingMouse: setIsUsingMouse
133
135
  };
134
136
  }
135
137
  //# sourceMappingURL=use-button-dropdown.js.map
@@ -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 from 'react';\n\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { ButtonDropdownProps, ButtonDropdownSettings, GroupToggle, HighlightProps, ItemActivate } from '../interfaces';\nimport { fireCancelableEvent, CancelableEventHandler, isPlainLeftClick } from '../../internal/events';\nimport { KeyCode } from '../../internal/keycode';\nimport { getItemTarget, isItemGroup, isLinkItem } from './utils';\nimport useHighlightedMenu from './use-highlighted-menu';\n\ninterface UseButtonDropdownOptions extends ButtonDropdownSettings {\n items: ButtonDropdownProps.Items;\n onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n usingMouse: React.MutableRefObject<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 toggleDropdown: () => void;\n}\n\nexport function useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n hasExpandableGroups,\n isInRestrictedView = false,\n usingMouse,\n}: UseButtonDropdownOptions): UseButtonDropdownApi {\n const { targetItem, isHighlighted, isExpanded, highlightItem, moveHighlight, expandGroup, collapseGroup, reset } =\n useHighlightedMenu({\n items,\n hasExpandableGroups,\n isInRestrictedView,\n });\n\n const { isOpen, closeDropdown, toggleDropdown } = useOpenState({ onClose: reset });\n\n const onGroupToggle: GroupToggle = item => (!isExpanded(item) ? expandGroup(item) : collapseGroup());\n\n const onItemActivate: ItemActivate = (item, event) => {\n const details = {\n id: item.id || 'undefined',\n href: item.href,\n external: item.external,\n target: getItemTarget(item),\n };\n if (onItemFollow && item.href && isPlainLeftClick(event)) {\n fireCancelableEvent(onItemFollow, details, event);\n }\n if (onItemClick) {\n fireCancelableEvent(onItemClick, details, event);\n }\n closeDropdown();\n };\n\n const doVerticalNavigation = (direction: -1 | 1) => {\n if (isOpen) {\n moveHighlight(direction);\n }\n };\n\n const openAndSelectFirst = (event: React.KeyboardEvent) => {\n toggleDropdown();\n moveHighlight(1);\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 usingMouse.current = 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 switch (event.keyCode) {\n case KeyCode.down: {\n doVerticalNavigation(1);\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n doVerticalNavigation(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.space: {\n // Prevent scrolling the list of items and highlighting the trigger\n usingMouse.current = false;\n event.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (!targetItem?.disabled) {\n activate(event, true);\n }\n break;\n }\n case KeyCode.left:\n case KeyCode.right: {\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 closeDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.tab: {\n closeDropdown();\n break;\n }\n }\n };\n const onKeyUp = (event: React.KeyboardEvent) => {\n // We need to handle activating items with Space separately because there is a bug\n // in Firefox where changing the focus during a Space keydown event it will trigger\n // unexpected click events on the new element: https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n if (event.keyCode === KeyCode.space && !targetItem?.disabled) {\n activate(event);\n }\n };\n\n return {\n isOpen,\n targetItem,\n isHighlighted,\n isExpanded,\n highlightItem,\n onKeyDown,\n onKeyUp,\n onItemActivate,\n onGroupToggle,\n toggleDropdown,\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 from 'react';\n\nimport { useOpenState } from '../../internal/components/options-list/utils/use-open-state';\nimport { ButtonDropdownProps, ButtonDropdownSettings, GroupToggle, HighlightProps, ItemActivate } from '../interfaces';\nimport { fireCancelableEvent, CancelableEventHandler, isPlainLeftClick } from '../../internal/events';\nimport { KeyCode } from '../../internal/keycode';\nimport { getItemTarget, isItemGroup, isLinkItem } from './utils';\nimport useHighlightedMenu from './use-highlighted-menu';\n\ninterface UseButtonDropdownOptions extends ButtonDropdownSettings {\n items: ButtonDropdownProps.Items;\n onItemClick?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\n onItemFollow?: CancelableEventHandler<ButtonDropdownProps.ItemClickDetails>;\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 toggleDropdown: () => void;\n setIsUsingMouse: (isUsingMouse: boolean) => void;\n}\n\nexport function useButtonDropdown({\n items,\n onItemClick,\n onItemFollow,\n hasExpandableGroups,\n isInRestrictedView = false,\n}: UseButtonDropdownOptions): UseButtonDropdownApi {\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,\n hasExpandableGroups,\n isInRestrictedView,\n });\n\n const { isOpen, closeDropdown, toggleDropdown } = useOpenState({ onClose: reset });\n\n const onGroupToggle: GroupToggle = item => (!isExpanded(item) ? expandGroup(item) : collapseGroup());\n\n const onItemActivate: ItemActivate = (item, event) => {\n const details = {\n id: item.id || 'undefined',\n href: item.href,\n external: item.external,\n target: getItemTarget(item),\n };\n if (onItemFollow && item.href && isPlainLeftClick(event)) {\n fireCancelableEvent(onItemFollow, details, event);\n }\n if (onItemClick) {\n fireCancelableEvent(onItemClick, details, event);\n }\n closeDropdown();\n };\n\n const doVerticalNavigation = (direction: -1 | 1) => {\n if (isOpen) {\n moveHighlight(direction);\n }\n };\n\n const openAndSelectFirst = (event: React.KeyboardEvent) => {\n toggleDropdown();\n moveHighlight(1);\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 doVerticalNavigation(1);\n event.preventDefault();\n break;\n }\n case KeyCode.up: {\n doVerticalNavigation(-1);\n event.preventDefault();\n break;\n }\n case KeyCode.space: {\n // Prevent scrolling the list of items and highlighting the trigger\n event.preventDefault();\n break;\n }\n case KeyCode.enter: {\n if (!targetItem?.disabled) {\n activate(event, true);\n }\n break;\n }\n case KeyCode.left:\n case KeyCode.right: {\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 closeDropdown();\n event.preventDefault();\n break;\n }\n case KeyCode.tab: {\n closeDropdown();\n break;\n }\n }\n };\n const onKeyUp = (event: React.KeyboardEvent) => {\n // We need to handle activating items with Space separately because there is a bug\n // in Firefox where changing the focus during a Space keydown event it will trigger\n // unexpected click events on the new element: https://bugzilla.mozilla.org/show_bug.cgi?id=1220143\n if (event.keyCode === KeyCode.space && !targetItem?.disabled) {\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 toggleDropdown,\n setIsUsingMouse,\n };\n}\n"]}
@@ -9,6 +9,7 @@ interface UseHighlightedMenuApi extends HighlightProps {
9
9
  expandGroup: (group?: ButtonDropdownProps.ItemGroup) => void;
10
10
  collapseGroup: () => void;
11
11
  reset: () => void;
12
+ setIsUsingMouse: (isUsingMouse: boolean) => void;
12
13
  }
13
14
  export default function useHighlightedMenu({ items, hasExpandableGroups, isInRestrictedView, }: UseHighlightedMenuOptions): UseHighlightedMenuApi;
14
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"use-highlighted-menu.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-highlighted-menu.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpE,UAAU,yBAAyB;IACjC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,qBAAsB,SAAQ,cAAc;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,SAAS,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,mBAAmB,EACnB,kBAA0B,GAC3B,EAAE,yBAAyB,GAAG,qBAAqB,CAkGnD"}
1
+ {"version":3,"file":"use-highlighted-menu.d.ts","sourceRoot":"","sources":["../../../../src/button-dropdown/utils/use-highlighted-menu.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpE,UAAU,yBAAyB;IACjC,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,UAAU,qBAAsB,SAAQ,cAAc;IACpD,aAAa,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,SAAS,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,mBAAmB,EACnB,kBAA0B,GAC3B,EAAE,yBAAyB,GAAG,qBAAqB,CA6GnD"}