@cloudscape-design/components-themeable 3.0.250 → 3.0.252

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 (266) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/button/styles.scss +5 -3
  3. package/lib/internal/scss/internal/hooks/focus-visible/index.scss +2 -1
  4. package/lib/internal/scss/table/body-cell/styles.scss +14 -12
  5. package/lib/internal/scss/table/header-cell/styles.scss +2 -1
  6. package/lib/internal/scss/table/resizer/styles.scss +2 -1
  7. package/lib/internal/template/annotation-context/annotation/annotation-trigger.d.ts.map +1 -1
  8. package/lib/internal/template/annotation-context/annotation/annotation-trigger.js +1 -3
  9. package/lib/internal/template/annotation-context/annotation/annotation-trigger.js.map +1 -1
  10. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  11. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +29 -29
  12. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  13. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +61 -61
  14. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +151 -151
  15. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +61 -61
  16. package/lib/internal/template/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
  17. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +2 -4
  18. package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
  19. package/lib/internal/template/breadcrumb-group/item/item.d.ts.map +1 -1
  20. package/lib/internal/template/breadcrumb-group/item/item.js +2 -5
  21. package/lib/internal/template/breadcrumb-group/item/item.js.map +1 -1
  22. package/lib/internal/template/breadcrumb-group/item/styles.css.js +9 -9
  23. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +17 -17
  24. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +9 -9
  25. package/lib/internal/template/button/internal.d.ts.map +1 -1
  26. package/lib/internal/template/button/internal.js +2 -3
  27. package/lib/internal/template/button/internal.js.map +1 -1
  28. package/lib/internal/template/button/styles.css.js +19 -18
  29. package/lib/internal/template/button/styles.scoped.css +136 -136
  30. package/lib/internal/template/button/styles.selectors.js +19 -18
  31. package/lib/internal/template/calendar/grid/index.d.ts.map +1 -1
  32. package/lib/internal/template/calendar/grid/index.js +2 -4
  33. package/lib/internal/template/calendar/grid/index.js.map +1 -1
  34. package/lib/internal/template/calendar/styles.css.js +18 -18
  35. package/lib/internal/template/calendar/styles.scoped.css +38 -38
  36. package/lib/internal/template/calendar/styles.selectors.js +18 -18
  37. package/lib/internal/template/code-editor/styles.css.js +32 -32
  38. package/lib/internal/template/code-editor/styles.scoped.css +157 -157
  39. package/lib/internal/template/code-editor/styles.selectors.js +32 -32
  40. package/lib/internal/template/code-editor/tab-button.d.ts.map +1 -1
  41. package/lib/internal/template/code-editor/tab-button.js +2 -4
  42. package/lib/internal/template/code-editor/tab-button.js.map +1 -1
  43. package/lib/internal/template/date-picker/index.d.ts.map +1 -1
  44. package/lib/internal/template/date-picker/index.js +1 -3
  45. package/lib/internal/template/date-picker/index.js.map +1 -1
  46. package/lib/internal/template/date-picker/styles.css.js +7 -7
  47. package/lib/internal/template/date-picker/styles.scoped.css +9 -9
  48. package/lib/internal/template/date-picker/styles.selectors.js +7 -7
  49. package/lib/internal/template/date-range-picker/calendar/grids/grid.d.ts.map +1 -1
  50. package/lib/internal/template/date-range-picker/calendar/grids/grid.js +1 -3
  51. package/lib/internal/template/date-range-picker/calendar/grids/grid.js.map +1 -1
  52. package/lib/internal/template/date-range-picker/calendar/grids/index.d.ts.map +1 -1
  53. package/lib/internal/template/date-range-picker/calendar/grids/index.js +1 -3
  54. package/lib/internal/template/date-range-picker/calendar/grids/index.js.map +1 -1
  55. package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +25 -25
  56. package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +42 -42
  57. package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +25 -25
  58. package/lib/internal/template/date-range-picker/dropdown.d.ts.map +1 -1
  59. package/lib/internal/template/date-range-picker/dropdown.js +1 -3
  60. package/lib/internal/template/date-range-picker/dropdown.js.map +1 -1
  61. package/lib/internal/template/date-range-picker/styles.css.js +38 -38
  62. package/lib/internal/template/date-range-picker/styles.scoped.css +45 -45
  63. package/lib/internal/template/date-range-picker/styles.selectors.js +38 -38
  64. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  65. package/lib/internal/template/expandable-section/expandable-section-header.js +8 -11
  66. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  67. package/lib/internal/template/expandable-section/styles.css.js +23 -23
  68. package/lib/internal/template/expandable-section/styles.scoped.css +44 -44
  69. package/lib/internal/template/expandable-section/styles.selectors.js +23 -23
  70. package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
  71. package/lib/internal/template/flashbar/collapsible-flashbar.js +1 -3
  72. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  73. package/lib/internal/template/flashbar/flash.d.ts.map +1 -1
  74. package/lib/internal/template/flashbar/flash.js +1 -3
  75. package/lib/internal/template/flashbar/flash.js.map +1 -1
  76. package/lib/internal/template/flashbar/styles.css.js +45 -45
  77. package/lib/internal/template/flashbar/styles.scoped.css +144 -144
  78. package/lib/internal/template/flashbar/styles.selectors.js +45 -45
  79. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  80. package/lib/internal/template/internal/components/abstract-switch/index.js +8 -4
  81. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  82. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -13
  83. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +19 -19
  84. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -13
  85. package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
  86. package/lib/internal/template/internal/components/button-trigger/index.js +1 -3
  87. package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
  88. package/lib/internal/template/internal/components/button-trigger/styles.css.js +9 -9
  89. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +23 -23
  90. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +9 -9
  91. package/lib/internal/template/internal/components/chart-legend/index.d.ts.map +1 -1
  92. package/lib/internal/template/internal/components/chart-legend/index.js +2 -4
  93. package/lib/internal/template/internal/components/chart-legend/index.js.map +1 -1
  94. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  95. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +15 -15
  96. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  97. package/lib/internal/template/internal/components/chart-plot/focus-outline.d.ts.map +1 -1
  98. package/lib/internal/template/internal/components/chart-plot/focus-outline.js +25 -3
  99. package/lib/internal/template/internal/components/chart-plot/focus-outline.js.map +1 -1
  100. package/lib/internal/template/internal/components/filtering-token/index.d.ts +2 -1
  101. package/lib/internal/template/internal/components/filtering-token/index.d.ts.map +1 -1
  102. package/lib/internal/template/internal/components/filtering-token/index.js +3 -5
  103. package/lib/internal/template/internal/components/filtering-token/index.js.map +1 -1
  104. package/lib/internal/template/internal/components/filtering-token/styles.css.js +7 -7
  105. package/lib/internal/template/internal/components/filtering-token/styles.scoped.css +13 -13
  106. package/lib/internal/template/internal/components/filtering-token/styles.selectors.js +7 -7
  107. package/lib/internal/template/internal/components/menu-dropdown/index.d.ts.map +1 -1
  108. package/lib/internal/template/internal/components/menu-dropdown/index.js +2 -4
  109. package/lib/internal/template/internal/components/menu-dropdown/index.js.map +1 -1
  110. package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
  111. package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +13 -13
  112. package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
  113. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.d.ts +0 -2
  114. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.d.ts.map +1 -1
  115. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js +2 -3
  116. package/lib/internal/template/internal/components/options-list/utils/use-keyboard.js.map +1 -1
  117. package/lib/internal/template/internal/components/token-list/index.d.ts +1 -1
  118. package/lib/internal/template/internal/components/token-list/index.d.ts.map +1 -1
  119. package/lib/internal/template/internal/components/token-list/index.js +3 -3
  120. package/lib/internal/template/internal/components/token-list/index.js.map +1 -1
  121. package/lib/internal/template/internal/components/token-list/interfaces.d.ts +0 -1
  122. package/lib/internal/template/internal/components/token-list/interfaces.d.ts.map +1 -1
  123. package/lib/internal/template/internal/components/token-list/interfaces.js.map +1 -1
  124. package/lib/internal/template/internal/components/token-list/styles.css.js +9 -9
  125. package/lib/internal/template/internal/components/token-list/styles.scoped.css +20 -20
  126. package/lib/internal/template/internal/components/token-list/styles.selectors.js +9 -9
  127. package/lib/internal/template/internal/components/token-list/token-focus-controller.js +1 -1
  128. package/lib/internal/template/internal/components/token-list/token-focus-controller.js.map +1 -1
  129. package/lib/internal/template/internal/components/token-list/token-limit-toggle.d.ts.map +1 -1
  130. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js +1 -3
  131. package/lib/internal/template/internal/components/token-list/token-limit-toggle.js.map +1 -1
  132. package/lib/internal/template/internal/environment.js +1 -1
  133. package/lib/internal/template/internal/hooks/focus-visible/index.d.ts +2 -5
  134. package/lib/internal/template/internal/hooks/focus-visible/index.d.ts.map +1 -1
  135. package/lib/internal/template/internal/hooks/focus-visible/index.js +42 -22
  136. package/lib/internal/template/internal/hooks/focus-visible/index.js.map +1 -1
  137. package/lib/internal/template/internal/hooks/use-base-component/index.d.ts.map +1 -1
  138. package/lib/internal/template/internal/hooks/use-base-component/index.js +2 -0
  139. package/lib/internal/template/internal/hooks/use-base-component/index.js.map +1 -1
  140. package/lib/internal/template/link/internal.d.ts.map +1 -1
  141. package/lib/internal/template/link/internal.js +1 -3
  142. package/lib/internal/template/link/internal.js.map +1 -1
  143. package/lib/internal/template/link/styles.css.js +20 -20
  144. package/lib/internal/template/link/styles.scoped.css +71 -71
  145. package/lib/internal/template/link/styles.selectors.js +20 -20
  146. package/lib/internal/template/pagination/internal.d.ts.map +1 -1
  147. package/lib/internal/template/pagination/internal.js +1 -3
  148. package/lib/internal/template/pagination/internal.js.map +1 -1
  149. package/lib/internal/template/pagination/styles.css.js +9 -9
  150. package/lib/internal/template/pagination/styles.scoped.css +23 -23
  151. package/lib/internal/template/pagination/styles.selectors.js +9 -9
  152. package/lib/internal/template/popover/internal.d.ts.map +1 -1
  153. package/lib/internal/template/popover/internal.js +1 -3
  154. package/lib/internal/template/popover/internal.js.map +1 -1
  155. package/lib/internal/template/popover/styles.css.js +50 -50
  156. package/lib/internal/template/popover/styles.scoped.css +63 -63
  157. package/lib/internal/template/popover/styles.selectors.js +50 -50
  158. package/lib/internal/template/property-filter/index.d.ts.map +1 -1
  159. package/lib/internal/template/property-filter/index.js +2 -2
  160. package/lib/internal/template/property-filter/index.js.map +1 -1
  161. package/lib/internal/template/property-filter/token.d.ts.map +1 -1
  162. package/lib/internal/template/property-filter/token.js +1 -1
  163. package/lib/internal/template/property-filter/token.js.map +1 -1
  164. package/lib/internal/template/segmented-control/segment.d.ts.map +1 -1
  165. package/lib/internal/template/segmented-control/segment.js +1 -3
  166. package/lib/internal/template/segmented-control/segment.js.map +1 -1
  167. package/lib/internal/template/segmented-control/styles.css.js +14 -14
  168. package/lib/internal/template/segmented-control/styles.scoped.css +33 -33
  169. package/lib/internal/template/segmented-control/styles.selectors.js +14 -14
  170. package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
  171. package/lib/internal/template/select/utils/use-select.js +0 -3
  172. package/lib/internal/template/select/utils/use-select.js.map +1 -1
  173. package/lib/internal/template/side-navigation/internal.d.ts.map +1 -1
  174. package/lib/internal/template/side-navigation/internal.js +2 -5
  175. package/lib/internal/template/side-navigation/internal.js.map +1 -1
  176. package/lib/internal/template/side-navigation/styles.css.js +27 -27
  177. package/lib/internal/template/side-navigation/styles.scoped.css +37 -37
  178. package/lib/internal/template/side-navigation/styles.selectors.js +27 -27
  179. package/lib/internal/template/split-panel/index.d.ts.map +1 -1
  180. package/lib/internal/template/split-panel/index.js +1 -3
  181. package/lib/internal/template/split-panel/index.js.map +1 -1
  182. package/lib/internal/template/split-panel/styles.css.js +59 -59
  183. package/lib/internal/template/split-panel/styles.scoped.css +81 -81
  184. package/lib/internal/template/split-panel/styles.selectors.js +59 -59
  185. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  186. package/lib/internal/template/table/body-cell/index.js +3 -3
  187. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  188. package/lib/internal/template/table/body-cell/styles.css.js +18 -18
  189. package/lib/internal/template/table/body-cell/styles.scoped.css +57 -55
  190. package/lib/internal/template/table/body-cell/styles.selectors.js +18 -18
  191. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  192. package/lib/internal/template/table/header-cell/index.js +11 -9
  193. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  194. package/lib/internal/template/table/header-cell/styles.css.js +19 -19
  195. package/lib/internal/template/table/header-cell/styles.scoped.css +32 -32
  196. package/lib/internal/template/table/header-cell/styles.selectors.js +19 -19
  197. package/lib/internal/template/table/internal.d.ts.map +1 -1
  198. package/lib/internal/template/table/internal.js +1 -3
  199. package/lib/internal/template/table/internal.js.map +1 -1
  200. package/lib/internal/template/table/resizer/styles.css.js +6 -6
  201. package/lib/internal/template/table/resizer/styles.scoped.css +11 -11
  202. package/lib/internal/template/table/resizer/styles.selectors.js +6 -6
  203. package/lib/internal/template/table/styles.css.js +33 -33
  204. package/lib/internal/template/table/styles.scoped.css +41 -41
  205. package/lib/internal/template/table/styles.selectors.js +33 -33
  206. package/lib/internal/template/tabs/index.d.ts.map +1 -1
  207. package/lib/internal/template/tabs/index.js +8 -3
  208. package/lib/internal/template/tabs/index.js.map +1 -1
  209. package/lib/internal/template/tabs/styles.css.js +21 -21
  210. package/lib/internal/template/tabs/styles.scoped.css +38 -38
  211. package/lib/internal/template/tabs/styles.selectors.js +21 -21
  212. package/lib/internal/template/tabs/tab-header-bar.d.ts.map +1 -1
  213. package/lib/internal/template/tabs/tab-header-bar.js +9 -3
  214. package/lib/internal/template/tabs/tab-header-bar.js.map +1 -1
  215. package/lib/internal/template/tag-editor/internal.d.ts.map +1 -1
  216. package/lib/internal/template/tag-editor/internal.js +2 -4
  217. package/lib/internal/template/tag-editor/internal.js.map +1 -1
  218. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  219. package/lib/internal/template/tag-editor/styles.scoped.css +10 -10
  220. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  221. package/lib/internal/template/token-group/dismiss-button.d.ts.map +1 -1
  222. package/lib/internal/template/token-group/dismiss-button.js +1 -3
  223. package/lib/internal/template/token-group/dismiss-button.js.map +1 -1
  224. package/lib/internal/template/token-group/internal.js +2 -2
  225. package/lib/internal/template/token-group/internal.js.map +1 -1
  226. package/lib/internal/template/token-group/styles.css.js +5 -5
  227. package/lib/internal/template/token-group/styles.scoped.css +12 -12
  228. package/lib/internal/template/token-group/styles.selectors.js +5 -5
  229. package/lib/internal/template/token-group/token.d.ts +3 -5
  230. package/lib/internal/template/token-group/token.d.ts.map +1 -1
  231. package/lib/internal/template/token-group/token.js +2 -2
  232. package/lib/internal/template/token-group/token.js.map +1 -1
  233. package/lib/internal/template/top-navigation/1.0-beta/internal.d.ts.map +1 -1
  234. package/lib/internal/template/top-navigation/1.0-beta/internal.js +1 -3
  235. package/lib/internal/template/top-navigation/1.0-beta/internal.js.map +1 -1
  236. package/lib/internal/template/top-navigation/1.0-beta/styles.css.js +25 -25
  237. package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +42 -42
  238. package/lib/internal/template/top-navigation/1.0-beta/styles.selectors.js +25 -25
  239. package/lib/internal/template/top-navigation/interfaces.d.ts +4 -0
  240. package/lib/internal/template/top-navigation/interfaces.d.ts.map +1 -1
  241. package/lib/internal/template/top-navigation/interfaces.js.map +1 -1
  242. package/lib/internal/template/top-navigation/internal.d.ts.map +1 -1
  243. package/lib/internal/template/top-navigation/internal.js +1 -3
  244. package/lib/internal/template/top-navigation/internal.js.map +1 -1
  245. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.d.ts.map +1 -1
  246. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js +9 -13
  247. package/lib/internal/template/top-navigation/parts/overflow-menu/menu-item.js.map +1 -1
  248. package/lib/internal/template/top-navigation/parts/utility.d.ts.map +1 -1
  249. package/lib/internal/template/top-navigation/parts/utility.js +2 -1
  250. package/lib/internal/template/top-navigation/parts/utility.js.map +1 -1
  251. package/lib/internal/template/top-navigation/styles.css.js +47 -47
  252. package/lib/internal/template/top-navigation/styles.scoped.css +66 -66
  253. package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
  254. package/lib/internal/template/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  255. package/lib/internal/template/tutorial-panel/components/tutorial-list/index.js +1 -3
  256. package/lib/internal/template/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  257. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  258. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +27 -27
  259. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  260. package/lib/internal/template/wizard/styles.css.js +32 -32
  261. package/lib/internal/template/wizard/styles.scoped.css +63 -63
  262. package/lib/internal/template/wizard/styles.selectors.js +32 -32
  263. package/lib/internal/template/wizard/wizard-form.d.ts.map +1 -1
  264. package/lib/internal/template/wizard/wizard-form.js +1 -3
  265. package/lib/internal/template/wizard/wizard-form.js.map +1 -1
  266. package/package.json +1 -1
@@ -2,14 +2,12 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import clsx from 'clsx';
4
4
  import React, { useRef, memo } from 'react';
5
- import useFocusVisible from '../../hooks/focus-visible';
6
5
  import InternalBox from '../../../box/internal';
7
6
  import { KeyCode } from '../../keycode';
8
7
  import SeriesMarker from '../chart-series-marker';
9
8
  import styles from './styles.css.js';
10
9
  export default memo(ChartLegend);
11
10
  function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle, ariaLabel, plotContainerRef, }) {
12
- const focusVisible = useFocusVisible();
13
11
  const containerRef = useRef(null);
14
12
  const segmentsRef = useRef([]);
15
13
  const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);
@@ -71,7 +69,7 @@ function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle
71
69
  const someHighlighted = highlightedSeries !== null;
72
70
  const isHighlighted = highlightedSeries === s.datum;
73
71
  const isDimmed = someHighlighted && !isHighlighted;
74
- return (React.createElement("div", Object.assign({}, focusVisible, { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, {
72
+ return (React.createElement("div", { role: "button", key: index, "aria-pressed": isHighlighted, className: clsx(styles.marker, {
75
73
  [styles['marker--dimmed']]: isDimmed,
76
74
  [styles['marker--highlighted']]: isHighlighted,
77
75
  }), ref: elem => {
@@ -81,7 +79,7 @@ function ChartLegend({ series, onHighlightChange, highlightedSeries, legendTitle
81
79
  else {
82
80
  delete segmentsRef.current[index];
83
81
  }
84
- }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: () => handleSelection(index), onClick: () => handleSelection(index), onMouseOver: () => handleMouseOver(s.datum), onMouseLeave: handleMouseLeave }),
82
+ }, tabIndex: index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1, onFocus: () => handleSelection(index), onClick: () => handleSelection(index), onMouseOver: () => handleMouseOver(s.datum), onMouseLeave: handleMouseLeave },
85
83
  React.createElement(SeriesMarker, { color: s.color, type: s.type }),
86
84
  " ",
87
85
  s.label));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/chart-legend/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 clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const focusVisible = useFocusVisible();\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightRight = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\n }\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n {...focusVisible}\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/chart-legend/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 clsx from 'clsx';\nimport React, { useRef, memo } from 'react';\n\nimport InternalBox from '../../../box/internal';\nimport { KeyCode } from '../../keycode';\nimport SeriesMarker, { ChartSeriesMarkerType } from '../chart-series-marker';\nimport styles from './styles.css.js';\n\nexport interface ChartLegendItem<T> {\n label: string;\n color: string;\n type: ChartSeriesMarkerType;\n datum: T;\n}\n\nexport interface ChartLegendProps<T> {\n series: ReadonlyArray<ChartLegendItem<T>>;\n highlightedSeries: T | null;\n legendTitle?: string;\n ariaLabel?: string;\n plotContainerRef?: React.RefObject<HTMLDivElement>;\n onHighlightChange: (series: T | null) => void;\n}\n\nexport default memo(ChartLegend) as typeof ChartLegend;\n\nfunction ChartLegend<T>({\n series,\n onHighlightChange,\n highlightedSeries,\n legendTitle,\n ariaLabel,\n plotContainerRef,\n}: ChartLegendProps<T>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const segmentsRef = useRef<Record<number, HTMLElement>>([]);\n\n const highlightedSeriesIndex = findSeriesIndex(series, highlightedSeries);\n\n const highlightLeft = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex - 1 >= 0 ? currentIndex - 1 : series.length - 1;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const highlightRight = () => {\n const currentIndex = highlightedSeriesIndex ?? 0;\n const nextIndex = currentIndex + 1 < series.length ? currentIndex + 1 : 0;\n segmentsRef.current[nextIndex]?.focus();\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.right || event.keyCode === KeyCode.left) {\n // Preventing default fixes an issue in Safari+VO when VO additionally interprets arrow keys as its commands.\n event.preventDefault();\n\n switch (event.keyCode) {\n case KeyCode.left:\n return highlightLeft();\n\n case KeyCode.right:\n return highlightRight();\n\n default:\n return;\n }\n }\n };\n\n const handleSelection = (index: number) => {\n if (series[index].datum !== highlightedSeries) {\n onHighlightChange(series[index].datum);\n }\n };\n\n const handleBlur = (event: React.FocusEvent<Element>) => {\n // We need to check if the next element to be focused inside the plot container or not\n // so we don't clear the selected legend in case we are still focusing elements ( legend elements )\n // inside the plot container\n if (\n event.relatedTarget === null ||\n (containerRef.current &&\n !containerRef.current.contains(event.relatedTarget) &&\n !plotContainerRef?.current?.contains(event.relatedTarget))\n ) {\n onHighlightChange(null);\n }\n };\n\n const handleMouseOver = (s: T) => {\n if (s !== highlightedSeries) {\n onHighlightChange(s);\n }\n };\n\n const handleMouseLeave = () => {\n onHighlightChange(null);\n };\n\n return (\n <>\n <div\n ref={containerRef}\n role=\"toolbar\"\n aria-label={legendTitle || ariaLabel}\n className={styles.root}\n onKeyDown={handleKeyPress}\n onBlur={handleBlur}\n >\n {legendTitle && (\n <InternalBox fontWeight=\"bold\" className={styles.title}>\n {legendTitle}\n </InternalBox>\n )}\n\n <div className={styles.list}>\n {series.map((s, index) => {\n const someHighlighted = highlightedSeries !== null;\n const isHighlighted = highlightedSeries === s.datum;\n const isDimmed = someHighlighted && !isHighlighted;\n return (\n <div\n role=\"button\"\n key={index}\n aria-pressed={isHighlighted}\n className={clsx(styles.marker, {\n [styles['marker--dimmed']]: isDimmed,\n [styles['marker--highlighted']]: isHighlighted,\n })}\n ref={elem => {\n if (elem) {\n segmentsRef.current[index] = elem;\n } else {\n delete segmentsRef.current[index];\n }\n }}\n tabIndex={\n index === highlightedSeriesIndex || (highlightedSeriesIndex === undefined && index === 0) ? 0 : -1\n }\n onFocus={() => handleSelection(index)}\n onClick={() => handleSelection(index)}\n onMouseOver={() => handleMouseOver(s.datum)}\n onMouseLeave={handleMouseLeave}\n >\n <SeriesMarker color={s.color} type={s.type} /> {s.label}\n </div>\n );\n })}\n </div>\n </div>\n </>\n );\n}\n\nfunction findSeriesIndex<T>(series: ReadonlyArray<ChartLegendItem<T>>, targetSeries: null | T): undefined | number {\n for (let index = 0; index < series.length; index++) {\n if (series[index].datum === targetSeries) {\n return index;\n }\n }\n return undefined;\n}\n"]}
@@ -1,11 +1,11 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "marker": "awsui_marker_1kjc7_vd983_93",
5
- "root": "awsui_root_1kjc7_vd983_111",
6
- "title": "awsui_title_1kjc7_vd983_127",
7
- "list": "awsui_list_1kjc7_vd983_131",
8
- "marker--dimmed": "awsui_marker--dimmed_1kjc7_vd983_173",
9
- "marker--highlighted": "awsui_marker--highlighted_1kjc7_vd983_176"
4
+ "marker": "awsui_marker_1kjc7_1fxtt_93",
5
+ "root": "awsui_root_1kjc7_1fxtt_111",
6
+ "title": "awsui_title_1kjc7_1fxtt_127",
7
+ "list": "awsui_list_1kjc7_1fxtt_131",
8
+ "marker--dimmed": "awsui_marker--dimmed_1kjc7_1fxtt_173",
9
+ "marker--highlighted": "awsui_marker--highlighted_1kjc7_1fxtt_176"
10
10
  };
11
11
 
@@ -90,16 +90,16 @@ 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_marker_1kjc7_vd983_93:not(#\9) {
93
+ .awsui_marker_1kjc7_1fxtt_93:not(#\9) {
94
94
  transition: opacity var(--motion-duration-transition-quick-x85tae, 90ms) var(--motion-easing-transition-quick-lukbd8, linear);
95
95
  }
96
96
  @media (prefers-reduced-motion: reduce) {
97
- .awsui_marker_1kjc7_vd983_93:not(#\9) {
97
+ .awsui_marker_1kjc7_1fxtt_93:not(#\9) {
98
98
  animation: none;
99
99
  transition: none;
100
100
  }
101
101
  }
102
- .awsui-motion-disabled .awsui_marker_1kjc7_vd983_93:not(#\9), .awsui-mode-entering .awsui_marker_1kjc7_vd983_93:not(#\9) {
102
+ .awsui-motion-disabled .awsui_marker_1kjc7_1fxtt_93:not(#\9), .awsui-mode-entering .awsui_marker_1kjc7_1fxtt_93:not(#\9) {
103
103
  animation: none;
104
104
  transition: none;
105
105
  }
@@ -108,7 +108,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
108
108
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
109
109
  SPDX-License-Identifier: Apache-2.0
110
110
  */
111
- .awsui_root_1kjc7_vd983_111:not(#\9) {
111
+ .awsui_root_1kjc7_1fxtt_111:not(#\9) {
112
112
  /* stylelint-disable-next-line plugin/no-unsupported-browser-features */
113
113
  border-collapse: separate;
114
114
  border-spacing: 0;
@@ -146,15 +146,15 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
146
146
  -webkit-font-smoothing: auto;
147
147
  -moz-osx-font-smoothing: auto;
148
148
  }
149
- .awsui_root_1kjc7_vd983_111:not(#\9):focus {
149
+ .awsui_root_1kjc7_1fxtt_111:not(#\9):focus {
150
150
  outline: none;
151
151
  }
152
152
 
153
- .awsui_title_1kjc7_vd983_127:not(#\9) {
153
+ .awsui_title_1kjc7_1fxtt_127:not(#\9) {
154
154
  /* used in test utils */
155
155
  }
156
156
 
157
- .awsui_list_1kjc7_vd983_131:not(#\9) {
157
+ .awsui_list_1kjc7_1fxtt_131:not(#\9) {
158
158
  display: flex;
159
159
  flex-wrap: wrap;
160
160
  list-style: none;
@@ -162,7 +162,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
162
162
  padding: 0;
163
163
  }
164
164
 
165
- .awsui_marker_1kjc7_vd983_93:not(#\9) {
165
+ .awsui_marker_1kjc7_1fxtt_93:not(#\9) {
166
166
  display: inline-flex;
167
167
  align-items: flex-start;
168
168
  margin-right: var(--space-m-17eucw, 16px);
@@ -172,17 +172,17 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
172
172
  cursor: pointer;
173
173
  opacity: 1;
174
174
  }
175
- .awsui_marker_1kjc7_vd983_93:not(#\9):focus {
175
+ .awsui_marker_1kjc7_1fxtt_93:not(#\9):focus {
176
176
  outline: none;
177
177
  }
178
- .awsui_marker_1kjc7_vd983_93[data-awsui-focus-visible=true]:not(#\9):focus {
178
+ body[data-awsui-focus-visible=true] .awsui_marker_1kjc7_1fxtt_93:not(#\9):focus {
179
179
  position: relative;
180
180
  }
181
- .awsui_marker_1kjc7_vd983_93[data-awsui-focus-visible=true]:not(#\9):focus {
181
+ body[data-awsui-focus-visible=true] .awsui_marker_1kjc7_1fxtt_93:not(#\9):focus {
182
182
  outline: 2px dotted transparent;
183
183
  outline-offset: calc(2px - 1px);
184
184
  }
185
- .awsui_marker_1kjc7_vd983_93[data-awsui-focus-visible=true]:not(#\9):focus::before {
185
+ body[data-awsui-focus-visible=true] .awsui_marker_1kjc7_1fxtt_93:not(#\9):focus::before {
186
186
  content: " ";
187
187
  display: block;
188
188
  position: absolute;
@@ -193,12 +193,12 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
193
193
  border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
194
194
  box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
195
195
  }
196
- .awsui_marker_1kjc7_vd983_93:not(#\9):last-child {
196
+ .awsui_marker_1kjc7_1fxtt_93:not(#\9):last-child {
197
197
  margin-right: 0;
198
198
  }
199
- .awsui_marker_1kjc7_vd983_93.awsui_marker--dimmed_1kjc7_vd983_173:not(#\9) {
199
+ .awsui_marker_1kjc7_1fxtt_93.awsui_marker--dimmed_1kjc7_1fxtt_173:not(#\9) {
200
200
  opacity: 0.35;
201
201
  }
202
- .awsui_marker_1kjc7_vd983_93.awsui_marker--highlighted_1kjc7_vd983_176:not(#\9) {
202
+ .awsui_marker_1kjc7_1fxtt_93.awsui_marker--highlighted_1kjc7_1fxtt_176:not(#\9) {
203
203
  /* used in test utils */
204
204
  }
@@ -2,11 +2,11 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "marker": "awsui_marker_1kjc7_vd983_93",
6
- "root": "awsui_root_1kjc7_vd983_111",
7
- "title": "awsui_title_1kjc7_vd983_127",
8
- "list": "awsui_list_1kjc7_vd983_131",
9
- "marker--dimmed": "awsui_marker--dimmed_1kjc7_vd983_173",
10
- "marker--highlighted": "awsui_marker--highlighted_1kjc7_vd983_176"
5
+ "marker": "awsui_marker_1kjc7_1fxtt_93",
6
+ "root": "awsui_root_1kjc7_1fxtt_111",
7
+ "title": "awsui_title_1kjc7_1fxtt_127",
8
+ "list": "awsui_list_1kjc7_1fxtt_131",
9
+ "marker--dimmed": "awsui_marker--dimmed_1kjc7_1fxtt_173",
10
+ "marker--highlighted": "awsui_marker--highlighted_1kjc7_1fxtt_176"
11
11
  };
12
12
 
@@ -1 +1 @@
1
- {"version":3,"file":"focus-outline.d.ts","sourceRoot":"lib/default/","sources":["internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAU,EAAE,EAAE,iBAAiB,eAkB7F"}
1
+ {"version":3,"file":"focus-outline.d.ts","sourceRoot":"lib/default/","sources":["internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4BD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAU,EAAE,EAAE,iBAAiB,eAkB7F"}
@@ -1,11 +1,33 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import React, { useEffect, useRef } from 'react';
3
+ import React, { useEffect, useRef, useState } from 'react';
4
4
  import styles from './styles.css.js';
5
- import useFocusVisible from '../../hooks/focus-visible/index';
5
+ import { isModifierKey } from '../../hooks/focus-visible';
6
+ function useFocusVisibleState() {
7
+ const [focusVisible, setFocusVisible] = useState(false);
8
+ useEffect(() => {
9
+ function handleMousedown() {
10
+ return setFocusVisible(false);
11
+ }
12
+ function handleKeydown(event) {
13
+ // we do not want to highlight focused element
14
+ // when special keys are pressed
15
+ if (!isModifierKey(event)) {
16
+ setFocusVisible(true);
17
+ }
18
+ }
19
+ document.addEventListener('mousedown', handleMousedown);
20
+ document.addEventListener('keydown', handleKeydown);
21
+ return () => {
22
+ document.removeEventListener('mousedown', handleMousedown);
23
+ document.removeEventListener('keydown', handleKeydown);
24
+ };
25
+ });
26
+ return focusVisible;
27
+ }
6
28
  export default function FocusOutline({ elementKey, elementRef, offset = 0 }) {
7
29
  const ref = useRef(null);
8
- const { 'data-awsui-focus-visible': focusVisible } = useFocusVisible();
30
+ const focusVisible = useFocusVisibleState();
9
31
  useEffect(() => {
10
32
  if (!ref.current) {
11
33
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"focus-outline.js","sourceRoot":"lib/default/","sources":["internal/components/chart-plot/focus-outline.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAS9D,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAqB;IAC5F,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,0BAA0B,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE,CAAC;IAEvE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO;SACR;QAED,IAAI,YAAY,IAAI,UAAU,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE;YAChG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAC3C;aAAM;YACL,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC1B;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;IAEnD,OAAO,8BAAM,GAAG,EAAE,GAAG,iBAAc,MAAM,EAAC,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAC,GAAG,GAAG,CAAC;AAC1F,CAAC;AAED,SAAS,WAAW,CAClB,EAAkB,EAClB,QAAiE,EACjE,MAAc;IAEd,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/D,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAAC,EAAkB;IACrC,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/B,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5B,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef } from 'react';\n\nimport styles from './styles.css.js';\nimport useFocusVisible from '../../hooks/focus-visible/index';\nimport { Offset } from '../interfaces';\n\nexport interface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const { 'data-awsui-focus-visible': focusVisible } = useFocusVisible();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
1
+ {"version":3,"file":"focus-outline.js","sourceRoot":"lib/default/","sources":["internal/components/chart-plot/focus-outline.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, useState } from 'react';\n\nimport styles from './styles.css.js';\nimport { Offset } from '../interfaces';\nimport { isModifierKey } from '../../hooks/focus-visible';\n\nexport interface FocusOutlineProps {\n elementKey?: null | string | number | boolean;\n elementRef?: React.RefObject<SVGSVGElement | SVGGElement>;\n offset?: Offset;\n}\n\nfunction useFocusVisibleState() {\n const [focusVisible, setFocusVisible] = useState(false);\n useEffect(() => {\n function handleMousedown() {\n return setFocusVisible(false);\n }\n\n function handleKeydown(event: KeyboardEvent) {\n // we do not want to highlight focused element\n // when special keys are pressed\n if (!isModifierKey(event)) {\n setFocusVisible(true);\n }\n }\n\n document.addEventListener('mousedown', handleMousedown);\n document.addEventListener('keydown', handleKeydown);\n return () => {\n document.removeEventListener('mousedown', handleMousedown);\n document.removeEventListener('keydown', handleKeydown);\n };\n });\n\n return focusVisible;\n}\n\nexport default function FocusOutline({ elementKey, elementRef, offset = 0 }: FocusOutlineProps) {\n const ref = useRef<SVGRectElement>(null);\n const focusVisible = useFocusVisibleState();\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n if (focusVisible && elementKey && elementRef && elementRef.current && elementRef.current.getBBox) {\n const element = elementRef.current.getBBox();\n showOutline(ref.current, element, offset);\n } else {\n hideOutline(ref.current);\n }\n }, [focusVisible, elementKey, elementRef, offset]);\n\n return <rect ref={ref} aria-hidden=\"true\" className={styles['focus-outline']} rx=\"2\" />;\n}\n\nfunction showOutline(\n el: SVGRectElement,\n position: { x: number; y: number; width: number; height: number },\n offset: Offset\n) {\n const offsetX = typeof offset === 'number' ? offset : offset.x;\n const offsetY = typeof offset === 'number' ? offset : offset.y;\n el.setAttribute('x', (position.x - offsetX).toString());\n el.setAttribute('y', (position.y - offsetY).toString());\n el.setAttribute('width', (position.width + 2 * offsetX).toString());\n el.setAttribute('height', (position.height + 2 * offsetY).toString());\n el.style.visibility = 'visible';\n}\n\nfunction hideOutline(el: SVGRectElement) {\n el.style.visibility = 'hidden';\n el.removeAttribute('x');\n el.removeAttribute('y');\n el.removeAttribute('width');\n el.removeAttribute('height');\n}\n"]}
@@ -3,6 +3,7 @@ export declare namespace FilteringTokenProps {
3
3
  type Operation = 'and' | 'or';
4
4
  }
5
5
  export interface FilteringTokenProps {
6
+ ariaLabel?: string;
6
7
  showOperation: boolean;
7
8
  operation: FilteringTokenProps.Operation;
8
9
  andText: string;
@@ -14,5 +15,5 @@ export interface FilteringTokenProps {
14
15
  onChange: (op: FilteringTokenProps.Operation) => void;
15
16
  onDismiss: () => void;
16
17
  }
17
- export default function FilteringToken({ showOperation, operation, andText, orText, dismissAriaLabel, operatorAriaLabel, disabled, children, onChange, onDismiss, }: FilteringTokenProps): JSX.Element;
18
+ export default function FilteringToken({ ariaLabel, showOperation, operation, andText, orText, dismissAriaLabel, operatorAriaLabel, disabled, children, onChange, onDismiss, }: FilteringTokenProps): JSX.Element;
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["internal/components/filtering-token/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,QAAQ,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,mBAAmB,eAoCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["internal/components/filtering-token/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,yBAAiB,mBAAmB,CAAC;IACnC,KAAY,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,mBAAmB,CAAC,SAAS,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,QAAQ,EAAE,CAAC,EAAE,EAAE,mBAAmB,CAAC,SAAS,KAAK,IAAI,CAAC;IACtD,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,EAAE,mBAAmB,eAkCrB"}
@@ -4,18 +4,16 @@ import React from 'react';
4
4
  import clsx from 'clsx';
5
5
  import InternalSelect from '../../../select/internal';
6
6
  import InternalIcon from '../../../icon/internal';
7
- import useFocusVisible from '../../hooks/focus-visible';
8
7
  import styles from './styles.css.js';
9
- export default function FilteringToken({ showOperation, operation, andText, orText, dismissAriaLabel, operatorAriaLabel, disabled, children, onChange, onDismiss, }) {
10
- const focusVisible = useFocusVisible();
11
- return (React.createElement("div", { className: styles.root },
8
+ export default function FilteringToken({ ariaLabel, showOperation, operation, andText, orText, dismissAriaLabel, operatorAriaLabel, disabled, children, onChange, onDismiss, }) {
9
+ return (React.createElement("div", { className: styles.root, role: "group", "aria-label": ariaLabel },
12
10
  showOperation && (React.createElement(InternalSelect, { __inFilteringToken: true, className: styles.select, options: [
13
11
  { value: 'and', label: andText },
14
12
  { value: 'or', label: orText },
15
13
  ], selectedOption: { value: operation, label: operation === 'and' ? andText : orText }, onChange: e => onChange(e.detail.selectedOption.value), disabled: disabled, ariaLabel: operatorAriaLabel })),
16
14
  React.createElement("div", { className: clsx(styles.token, showOperation && styles['show-operation'], disabled && styles['token-disabled']), "aria-disabled": disabled },
17
15
  React.createElement("div", { className: styles['token-content'] }, children),
18
- React.createElement("button", Object.assign({}, focusVisible, { type: "button", className: styles['dismiss-button'], "aria-label": dismissAriaLabel, onClick: onDismiss, disabled: disabled }),
16
+ React.createElement("button", { type: "button", className: styles['dismiss-button'], "aria-label": dismissAriaLabel, onClick: onDismiss, disabled: disabled },
19
17
  React.createElement(InternalIcon, { name: "close" })))));
20
18
  }
21
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/filtering-token/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAClD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AAExD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAqBrC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACW;IACpB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACxB,aAAa,IAAI,CAChB,oBAAC,cAAc,IACb,kBAAkB,EAAE,IAAI,EACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/B,EACD,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EACnF,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAsC,CAAC,EACvF,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,iBAAiB,GAC5B,CACH;QACD,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,mBAC/F,QAAQ;YAEvB,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,IAAG,QAAQ,CAAO;YACzD,gDACM,YAAY,IAChB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,gBACvB,gBAAgB,EAC5B,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ;gBAElB,oBAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,CACtB,CACL,CACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalSelect from '../../../select/internal';\nimport InternalIcon from '../../../icon/internal';\nimport useFocusVisible from '../../hooks/focus-visible';\n\nimport styles from './styles.css.js';\n\nexport namespace FilteringTokenProps {\n export type Operation = 'and' | 'or';\n}\n\nexport interface FilteringTokenProps {\n showOperation: boolean;\n operation: FilteringTokenProps.Operation;\n andText: string;\n orText: string;\n dismissAriaLabel?: string;\n operatorAriaLabel?: string;\n disabled?: boolean;\n\n children: React.ReactNode;\n\n onChange: (op: FilteringTokenProps.Operation) => void;\n onDismiss: () => void;\n}\n\nexport default function FilteringToken({\n showOperation,\n operation,\n andText,\n orText,\n dismissAriaLabel,\n operatorAriaLabel,\n disabled,\n children,\n onChange,\n onDismiss,\n}: FilteringTokenProps) {\n const focusVisible = useFocusVisible();\n return (\n <div className={styles.root}>\n {showOperation && (\n <InternalSelect\n __inFilteringToken={true}\n className={styles.select}\n options={[\n { value: 'and', label: andText },\n { value: 'or', label: orText },\n ]}\n selectedOption={{ value: operation, label: operation === 'and' ? andText : orText }}\n onChange={e => onChange(e.detail.selectedOption.value as FilteringTokenProps.Operation)}\n disabled={disabled}\n ariaLabel={operatorAriaLabel}\n />\n )}\n <div\n className={clsx(styles.token, showOperation && styles['show-operation'], disabled && styles['token-disabled'])}\n aria-disabled={disabled}\n >\n <div className={styles['token-content']}>{children}</div>\n <button\n {...focusVisible}\n type=\"button\"\n className={styles['dismiss-button']}\n aria-label={dismissAriaLabel}\n onClick={onDismiss}\n disabled={disabled}\n >\n <InternalIcon name=\"close\" />\n </button>\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/filtering-token/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAElD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAsBrC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,SAAS,EACT,aAAa,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,GACW;IACpB,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,OAAO,gBAAa,SAAS;QAC5D,aAAa,IAAI,CAChB,oBAAC,cAAc,IACb,kBAAkB,EAAE,IAAI,EACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE;gBAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/B,EACD,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,EACnF,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAsC,CAAC,EACvF,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,iBAAiB,GAC5B,CACH;QACD,6BACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,QAAQ,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,mBAC/F,QAAQ;YAEvB,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,IAAG,QAAQ,CAAO;YACzD,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC,gBACvB,gBAAgB,EAC5B,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ;gBAElB,oBAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,CACtB,CACL,CACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\n\nimport InternalSelect from '../../../select/internal';\nimport InternalIcon from '../../../icon/internal';\n\nimport styles from './styles.css.js';\n\nexport namespace FilteringTokenProps {\n export type Operation = 'and' | 'or';\n}\n\nexport interface FilteringTokenProps {\n ariaLabel?: string;\n showOperation: boolean;\n operation: FilteringTokenProps.Operation;\n andText: string;\n orText: string;\n dismissAriaLabel?: string;\n operatorAriaLabel?: string;\n disabled?: boolean;\n\n children: React.ReactNode;\n\n onChange: (op: FilteringTokenProps.Operation) => void;\n onDismiss: () => void;\n}\n\nexport default function FilteringToken({\n ariaLabel,\n showOperation,\n operation,\n andText,\n orText,\n dismissAriaLabel,\n operatorAriaLabel,\n disabled,\n children,\n onChange,\n onDismiss,\n}: FilteringTokenProps) {\n return (\n <div className={styles.root} role=\"group\" aria-label={ariaLabel}>\n {showOperation && (\n <InternalSelect\n __inFilteringToken={true}\n className={styles.select}\n options={[\n { value: 'and', label: andText },\n { value: 'or', label: orText },\n ]}\n selectedOption={{ value: operation, label: operation === 'and' ? andText : orText }}\n onChange={e => onChange(e.detail.selectedOption.value as FilteringTokenProps.Operation)}\n disabled={disabled}\n ariaLabel={operatorAriaLabel}\n />\n )}\n <div\n className={clsx(styles.token, showOperation && styles['show-operation'], disabled && styles['token-disabled'])}\n aria-disabled={disabled}\n >\n <div className={styles['token-content']}>{children}</div>\n <button\n type=\"button\"\n className={styles['dismiss-button']}\n aria-label={dismissAriaLabel}\n onClick={onDismiss}\n disabled={disabled}\n >\n <InternalIcon name=\"close\" />\n </button>\n </div>\n </div>\n );\n}\n"]}
@@ -1,12 +1,12 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "root": "awsui_root_10m3l_l33nj_97",
5
- "token": "awsui_token_10m3l_l33nj_102",
6
- "show-operation": "awsui_show-operation_10m3l_l33nj_113",
7
- "select": "awsui_select_10m3l_l33nj_119",
8
- "token-content": "awsui_token-content_10m3l_l33nj_123",
9
- "dismiss-button": "awsui_dismiss-button_10m3l_l33nj_127",
10
- "token-disabled": "awsui_token-disabled_10m3l_l33nj_163"
4
+ "root": "awsui_root_10m3l_ceye0_97",
5
+ "token": "awsui_token_10m3l_ceye0_102",
6
+ "show-operation": "awsui_show-operation_10m3l_ceye0_113",
7
+ "select": "awsui_select_10m3l_ceye0_119",
8
+ "token-content": "awsui_token-content_10m3l_ceye0_123",
9
+ "dismiss-button": "awsui_dismiss-button_10m3l_ceye0_127",
10
+ "token-disabled": "awsui_token-disabled_10m3l_ceye0_163"
11
11
  };
12
12
 
@@ -94,12 +94,12 @@ 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_10m3l_l33nj_97:not(#\9) {
97
+ .awsui_root_10m3l_ceye0_97:not(#\9) {
98
98
  display: flex;
99
99
  align-content: stretch;
100
100
  }
101
101
 
102
- .awsui_token_10m3l_l33nj_102:not(#\9) {
102
+ .awsui_token_10m3l_ceye0_102:not(#\9) {
103
103
  border: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-pr9yuf, #00a1c9);
104
104
  display: flex;
105
105
  align-items: stretch;
@@ -110,21 +110,21 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
110
110
  box-sizing: border-box;
111
111
  }
112
112
 
113
- .awsui_show-operation_10m3l_l33nj_113:not(#\9) {
113
+ .awsui_show-operation_10m3l_ceye0_113:not(#\9) {
114
114
  border-left: none;
115
115
  border-top-left-radius: 0;
116
116
  border-bottom-left-radius: 0;
117
117
  }
118
118
 
119
- .awsui_select_10m3l_l33nj_119:not(#\9) {
119
+ .awsui_select_10m3l_ceye0_119:not(#\9) {
120
120
  /* used in test-utils */
121
121
  }
122
122
 
123
- .awsui_token-content_10m3l_l33nj_123:not(#\9) {
123
+ .awsui_token-content_10m3l_ceye0_123:not(#\9) {
124
124
  padding: var(--space-scaled-xxs-95dhkm, 4px) var(--space-field-horizontal-z3i1c8, 8px);
125
125
  }
126
126
 
127
- .awsui_dismiss-button_10m3l_l33nj_127:not(#\9) {
127
+ .awsui_dismiss-button_10m3l_ceye0_127:not(#\9) {
128
128
  width: 30px;
129
129
  margin: 0;
130
130
  border: none;
@@ -133,14 +133,14 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
133
133
  background-color: transparent;
134
134
  border-left: var(--border-field-width-y6x4sn, 1px) solid var(--color-border-item-selected-pr9yuf, #00a1c9);
135
135
  }
136
- .awsui_dismiss-button_10m3l_l33nj_127[data-awsui-focus-visible=true]:not(#\9):focus {
136
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
137
137
  position: relative;
138
138
  }
139
- .awsui_dismiss-button_10m3l_l33nj_127[data-awsui-focus-visible=true]:not(#\9):focus {
139
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
140
140
  outline: 2px dotted transparent;
141
141
  outline-offset: calc(var(--space-filtering-token-dismiss-button-focus-outline-gutter-25v038, 0px) - 1px);
142
142
  }
143
- .awsui_dismiss-button_10m3l_l33nj_127[data-awsui-focus-visible=true]:not(#\9):focus::before {
143
+ body[data-awsui-focus-visible=true] .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus::before {
144
144
  content: " ";
145
145
  display: block;
146
146
  position: absolute;
@@ -151,22 +151,22 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
151
151
  border-radius: var(--border-radius-control-default-focus-ring-hekmgc, 2px);
152
152
  box-shadow: 0 0 0 2px var(--color-border-item-focused-n5kd8g, #0073bb);
153
153
  }
154
- .awsui_dismiss-button_10m3l_l33nj_127:not(#\9):focus {
154
+ .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):focus {
155
155
  outline: none;
156
156
  text-decoration: none;
157
157
  }
158
- .awsui_dismiss-button_10m3l_l33nj_127:not(#\9):hover {
158
+ .awsui_dismiss-button_10m3l_ceye0_127:not(#\9):hover {
159
159
  cursor: pointer;
160
160
  color: var(--color-text-interactive-hover-79wpl9, #16191f);
161
161
  }
162
162
 
163
- .awsui_token-disabled_10m3l_l33nj_163:not(#\9) {
163
+ .awsui_token-disabled_10m3l_ceye0_163:not(#\9) {
164
164
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
165
165
  background-color: var(--color-background-container-content-o88wxm, #ffffff);
166
166
  color: var(--color-text-disabled-pjiy51, #aab7b8);
167
167
  pointer-events: none;
168
168
  }
169
- .awsui_token-disabled_10m3l_l33nj_163 > .awsui_dismiss-button_10m3l_l33nj_127:not(#\9) {
169
+ .awsui_token-disabled_10m3l_ceye0_163 > .awsui_dismiss-button_10m3l_ceye0_127:not(#\9) {
170
170
  color: var(--color-text-interactive-disabled-jcikk2, #aab7b8);
171
171
  border-color: var(--color-border-control-disabled-zgidl5, #d5dbdb);
172
172
  }
@@ -2,12 +2,12 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "root": "awsui_root_10m3l_l33nj_97",
6
- "token": "awsui_token_10m3l_l33nj_102",
7
- "show-operation": "awsui_show-operation_10m3l_l33nj_113",
8
- "select": "awsui_select_10m3l_l33nj_119",
9
- "token-content": "awsui_token-content_10m3l_l33nj_123",
10
- "dismiss-button": "awsui_dismiss-button_10m3l_l33nj_127",
11
- "token-disabled": "awsui_token-disabled_10m3l_l33nj_163"
5
+ "root": "awsui_root_10m3l_ceye0_97",
6
+ "token": "awsui_token_10m3l_ceye0_102",
7
+ "show-operation": "awsui_show-operation_10m3l_ceye0_113",
8
+ "select": "awsui_select_10m3l_ceye0_119",
9
+ "token-content": "awsui_token-content_10m3l_ceye0_123",
10
+ "dismiss-button": "awsui_dismiss-button_10m3l_ceye0_127",
11
+ "token-disabled": "awsui_token-disabled_10m3l_ceye0_163"
12
12
  };
13
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["internal/components/menu-dropdown/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AASrE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,eAAO,MAAM,aAAa,gFAuDzB,CAAC;AAEF,QAAA,MAAM,YAAY,+FAUf,iBAAiB,gBAgCnB,CAAC;AAGF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"lib/default/","sources":["internal/components/menu-dropdown/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAQrE,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B,eAAO,MAAM,aAAa,gFAqDzB,CAAC;AAEF,QAAA,MAAM,YAAY,+FAUf,iBAAiB,gBAgCnB,CAAC;AAGF,eAAe,YAAY,CAAC"}
@@ -5,18 +5,16 @@ import clsx from 'clsx';
5
5
  import React from 'react';
6
6
  import { getBaseProps } from '../../base-component';
7
7
  import { applyDisplayName } from '../../utils/apply-display-name';
8
- import useFocusVisible from '../../hooks/focus-visible';
9
8
  import InternalButtonDropdown from '../../../button-dropdown/internal';
10
9
  import InternalIcon from '../../../icon/internal';
11
10
  import buttonDropdownStyles from '../../../button-dropdown/styles.css.js';
12
11
  import styles from './styles.css.js';
13
12
  export const ButtonTrigger = React.forwardRef(({ iconName, iconUrl, iconAlt, iconSvg, badge, ariaLabel, offsetRight, disabled, expanded, children, onClick, }, ref) => {
14
- const focusVisible = useFocusVisible();
15
13
  const hasIcon = iconName || iconUrl || iconSvg;
16
- return (React.createElement("button", Object.assign({}, focusVisible, { ref: ref, type: "button", className: clsx(styles.button, styles[`offset-right-${offsetRight}`], { [styles.expanded]: expanded }), "aria-label": ariaLabel, "aria-expanded": !!expanded, "aria-haspopup": true, disabled: disabled, onClick: event => {
14
+ return (React.createElement("button", { ref: ref, type: "button", className: clsx(styles.button, styles[`offset-right-${offsetRight}`], { [styles.expanded]: expanded }), "aria-label": ariaLabel, "aria-expanded": !!expanded, "aria-haspopup": true, disabled: disabled, onClick: event => {
17
15
  event.preventDefault();
18
16
  onClick && onClick();
19
- } }),
17
+ } },
20
18
  hasIcon && (React.createElement(InternalIcon, { className: styles.icon, name: iconName, url: iconUrl, alt: iconAlt, svg: iconSvg, badge: badge })),
21
19
  children && React.createElement("span", { className: styles.text }, children),
22
20
  children && (React.createElement(InternalIcon, { name: "caret-down-filled", className: expanded ? buttonDropdownStyles['rotate-up'] : buttonDropdownStyles['rotate-down'] }))));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/menu-dropdown/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 clsx from 'clsx';\nimport React from 'react';\n\nimport { MenuDropdownProps, ButtonTriggerProps } from './interfaces';\nimport { getBaseProps } from '../../base-component';\nimport { applyDisplayName } from '../../utils/apply-display-name';\nimport useFocusVisible from '../../hooks/focus-visible';\nimport InternalButtonDropdown from '../../../button-dropdown/internal';\nimport InternalIcon from '../../../icon/internal';\nimport buttonDropdownStyles from '../../../button-dropdown/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { MenuDropdownProps };\n\nexport const ButtonTrigger = React.forwardRef(\n (\n {\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n disabled,\n expanded,\n children,\n onClick,\n }: ButtonTriggerProps,\n ref: React.Ref<any>\n ) => {\n const focusVisible = useFocusVisible();\n const hasIcon = iconName || iconUrl || iconSvg;\n\n return (\n <button\n {...focusVisible}\n ref={ref}\n type=\"button\"\n className={clsx(styles.button, styles[`offset-right-${offsetRight}`], { [styles.expanded]: expanded })}\n aria-label={ariaLabel}\n aria-expanded={!!expanded}\n aria-haspopup={true}\n disabled={disabled}\n onClick={event => {\n event.preventDefault();\n onClick && onClick();\n }}\n >\n {hasIcon && (\n <InternalIcon\n className={styles.icon}\n name={iconName}\n url={iconUrl}\n alt={iconAlt}\n svg={iconSvg}\n badge={badge}\n />\n )}\n {children && <span className={styles.text}>{children}</span>}\n {children && (\n <InternalIcon\n name=\"caret-down-filled\"\n className={expanded ? buttonDropdownStyles['rotate-up'] : buttonDropdownStyles['rotate-down']}\n />\n )}\n </button>\n );\n }\n);\n\nconst MenuDropdown = ({\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n children,\n ...props\n}: MenuDropdownProps) => {\n const baseProps = getBaseProps(props);\n\n const dropdownTrigger = (clickHandler: () => void, ref: React.Ref<any>, isDisabled: boolean, isExpanded: boolean) => {\n return (\n <ButtonTrigger\n ref={ref}\n disabled={isDisabled}\n expanded={isExpanded}\n iconName={iconName}\n iconUrl={iconUrl}\n iconAlt={iconAlt}\n iconSvg={iconSvg}\n badge={badge}\n ariaLabel={ariaLabel}\n offsetRight={offsetRight}\n onClick={clickHandler}\n >\n {children}\n </ButtonTrigger>\n );\n };\n\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...props}\n variant=\"navigation\"\n customTriggerBuilder={dropdownTrigger}\n preferCenter={true}\n />\n );\n};\n\napplyDisplayName(MenuDropdown, 'MenuDropdown');\nexport default MenuDropdown;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"lib/default/","sources":["internal/components/menu-dropdown/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 clsx from 'clsx';\nimport React from 'react';\n\nimport { MenuDropdownProps, ButtonTriggerProps } from './interfaces';\nimport { getBaseProps } from '../../base-component';\nimport { applyDisplayName } from '../../utils/apply-display-name';\nimport InternalButtonDropdown from '../../../button-dropdown/internal';\nimport InternalIcon from '../../../icon/internal';\nimport buttonDropdownStyles from '../../../button-dropdown/styles.css.js';\nimport styles from './styles.css.js';\n\nexport { MenuDropdownProps };\n\nexport const ButtonTrigger = React.forwardRef(\n (\n {\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n disabled,\n expanded,\n children,\n onClick,\n }: ButtonTriggerProps,\n ref: React.Ref<any>\n ) => {\n const hasIcon = iconName || iconUrl || iconSvg;\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(styles.button, styles[`offset-right-${offsetRight}`], { [styles.expanded]: expanded })}\n aria-label={ariaLabel}\n aria-expanded={!!expanded}\n aria-haspopup={true}\n disabled={disabled}\n onClick={event => {\n event.preventDefault();\n onClick && onClick();\n }}\n >\n {hasIcon && (\n <InternalIcon\n className={styles.icon}\n name={iconName}\n url={iconUrl}\n alt={iconAlt}\n svg={iconSvg}\n badge={badge}\n />\n )}\n {children && <span className={styles.text}>{children}</span>}\n {children && (\n <InternalIcon\n name=\"caret-down-filled\"\n className={expanded ? buttonDropdownStyles['rotate-up'] : buttonDropdownStyles['rotate-down']}\n />\n )}\n </button>\n );\n }\n);\n\nconst MenuDropdown = ({\n iconName,\n iconUrl,\n iconAlt,\n iconSvg,\n badge,\n ariaLabel,\n offsetRight,\n children,\n ...props\n}: MenuDropdownProps) => {\n const baseProps = getBaseProps(props);\n\n const dropdownTrigger = (clickHandler: () => void, ref: React.Ref<any>, isDisabled: boolean, isExpanded: boolean) => {\n return (\n <ButtonTrigger\n ref={ref}\n disabled={isDisabled}\n expanded={isExpanded}\n iconName={iconName}\n iconUrl={iconUrl}\n iconAlt={iconAlt}\n iconSvg={iconSvg}\n badge={badge}\n ariaLabel={ariaLabel}\n offsetRight={offsetRight}\n onClick={clickHandler}\n >\n {children}\n </ButtonTrigger>\n );\n };\n\n return (\n <InternalButtonDropdown\n {...baseProps}\n {...props}\n variant=\"navigation\"\n customTriggerBuilder={dropdownTrigger}\n preferCenter={true}\n />\n );\n};\n\napplyDisplayName(MenuDropdown, 'MenuDropdown');\nexport default MenuDropdown;\n"]}
@@ -1,12 +1,12 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "button": "awsui_button_m5h9f_6cnro_93",
5
- "expanded": "awsui_expanded_m5h9f_6cnro_127",
6
- "offset-right-none": "awsui_offset-right-none_m5h9f_6cnro_138",
7
- "offset-right-l": "awsui_offset-right-l_m5h9f_6cnro_141",
8
- "offset-right-xxl": "awsui_offset-right-xxl_m5h9f_6cnro_144",
9
- "text": "awsui_text_m5h9f_6cnro_166",
10
- "icon": "awsui_icon_m5h9f_6cnro_170"
4
+ "button": "awsui_button_m5h9f_1u666_93",
5
+ "expanded": "awsui_expanded_m5h9f_1u666_127",
6
+ "offset-right-none": "awsui_offset-right-none_m5h9f_1u666_138",
7
+ "offset-right-l": "awsui_offset-right-l_m5h9f_1u666_141",
8
+ "offset-right-xxl": "awsui_offset-right-xxl_m5h9f_1u666_144",
9
+ "text": "awsui_text_m5h9f_1u666_166",
10
+ "icon": "awsui_icon_m5h9f_1u666_170"
11
11
  };
12
12