@cloudscape-design/components-themeable 3.0.961 → 3.0.963

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 (599) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/button/styles.scss +2 -2
  3. package/lib/internal/scss/button-dropdown/category-elements/styles.scss +3 -1
  4. package/lib/internal/scss/button-dropdown/item-element/styles.scss +4 -2
  5. package/lib/internal/scss/button-dropdown/styles.scss +4 -4
  6. package/lib/internal/scss/code-editor/styles.scss +4 -4
  7. package/lib/internal/scss/drawer/styles.scss +2 -3
  8. package/lib/internal/scss/flashbar/styles.scss +1 -1
  9. package/lib/internal/scss/input/styles.scss +4 -4
  10. package/lib/internal/scss/internal/components/button-trigger/styles.scss +6 -4
  11. package/lib/internal/scss/internal/components/chart-popover/styles.scss +13 -7
  12. package/lib/internal/scss/internal/components/chart-popover/test-classes/styles.scss +10 -0
  13. package/lib/internal/scss/internal/components/chart-series-details/styles.scss +0 -4
  14. package/lib/internal/scss/internal/components/checkbox-icon/styles.scss +1 -1
  15. package/lib/internal/scss/internal/components/selectable-item/styles.scss +3 -1
  16. package/lib/internal/scss/internal/components/token-list/styles.scss +2 -2
  17. package/lib/internal/scss/internal/styles/forms/constants.scss +1 -2
  18. package/lib/internal/scss/internal/styles/forms/mixins.scss +24 -10
  19. package/lib/internal/scss/pagination/styles.scss +2 -2
  20. package/lib/internal/scss/popover/body.scss +5 -0
  21. package/lib/internal/scss/popover/styles.scss +8 -0
  22. package/lib/internal/scss/prompt-input/styles.scss +2 -2
  23. package/lib/internal/scss/property-filter/filtering-token/styles.scss +4 -4
  24. package/lib/internal/scss/property-filter/styles.scss +1 -1
  25. package/lib/internal/scss/segmented-control/styles.scss +4 -2
  26. package/lib/internal/scss/select/parts/styles.scss +4 -4
  27. package/lib/internal/scss/table/body-cell/styles.scss +3 -0
  28. package/lib/internal/scss/textarea/styles.scss +2 -2
  29. package/lib/internal/scss/tiles/styles.scss +9 -6
  30. package/lib/internal/scss/token-group/mixins.scss +2 -2
  31. package/lib/internal/scss/tutorial-panel/components/tutorial-list/styles.scss +2 -2
  32. package/lib/internal/template/alert/actions-wrapper/styles.css.js +1 -1
  33. package/lib/internal/template/alert/actions-wrapper/styles.scoped.css +3 -3
  34. package/lib/internal/template/alert/actions-wrapper/styles.selectors.js +1 -1
  35. package/lib/internal/template/alert/styles.css.js +27 -27
  36. package/lib/internal/template/alert/styles.scoped.css +90 -90
  37. package/lib/internal/template/alert/styles.selectors.js +27 -27
  38. package/lib/internal/template/anchor-navigation/styles.css.js +8 -8
  39. package/lib/internal/template/anchor-navigation/styles.scoped.css +60 -60
  40. package/lib/internal/template/anchor-navigation/styles.selectors.js +8 -8
  41. package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
  42. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +52 -52
  43. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
  44. package/lib/internal/template/app-layout/content-wrapper/styles.css.js +3 -3
  45. package/lib/internal/template/app-layout/content-wrapper/styles.scoped.css +10 -10
  46. package/lib/internal/template/app-layout/content-wrapper/styles.selectors.js +3 -3
  47. package/lib/internal/template/app-layout/drawer/styles.css.js +14 -14
  48. package/lib/internal/template/app-layout/drawer/styles.scoped.css +34 -34
  49. package/lib/internal/template/app-layout/drawer/styles.selectors.js +14 -14
  50. package/lib/internal/template/app-layout/mobile-toolbar/styles.css.js +8 -8
  51. package/lib/internal/template/app-layout/mobile-toolbar/styles.scoped.css +18 -18
  52. package/lib/internal/template/app-layout/mobile-toolbar/styles.selectors.js +8 -8
  53. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  54. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  55. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  56. package/lib/internal/template/app-layout/resize/styles.css.js +5 -5
  57. package/lib/internal/template/app-layout/resize/styles.scoped.css +14 -14
  58. package/lib/internal/template/app-layout/resize/styles.selectors.js +5 -5
  59. package/lib/internal/template/app-layout/styles.css.js +12 -12
  60. package/lib/internal/template/app-layout/styles.scoped.css +21 -21
  61. package/lib/internal/template/app-layout/styles.selectors.js +12 -12
  62. package/lib/internal/template/app-layout/toggles/styles.css.js +2 -2
  63. package/lib/internal/template/app-layout/toggles/styles.scoped.css +20 -20
  64. package/lib/internal/template/app-layout/toggles/styles.selectors.js +2 -2
  65. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  66. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +263 -263
  67. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +10 -10
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +15 -15
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +10 -10
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +4 -4
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +7 -7
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +4 -4
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.css.js +3 -3
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.scoped.css +5 -5
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/notifications/styles.selectors.js +3 -3
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.d.ts.map +1 -1
  78. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js +23 -21
  79. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/index.js.map +1 -1
  80. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +19 -19
  81. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +52 -52
  82. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +19 -19
  83. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +13 -13
  84. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +29 -29
  85. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +13 -13
  86. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.css.js +7 -7
  87. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.scoped.css +38 -38
  88. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/styles.selectors.js +7 -7
  89. package/lib/internal/template/area-chart/elements/area-chart-filter.d.ts.map +1 -1
  90. package/lib/internal/template/area-chart/elements/area-chart-filter.js +6 -1
  91. package/lib/internal/template/area-chart/elements/area-chart-filter.js.map +1 -1
  92. package/lib/internal/template/area-chart/elements/area-chart-legend.d.ts.map +1 -1
  93. package/lib/internal/template/area-chart/elements/area-chart-legend.js +2 -1
  94. package/lib/internal/template/area-chart/elements/area-chart-legend.js.map +1 -1
  95. package/lib/internal/template/area-chart/elements/chart-popover.d.ts.map +1 -1
  96. package/lib/internal/template/area-chart/elements/chart-popover.js +2 -4
  97. package/lib/internal/template/area-chart/elements/chart-popover.js.map +1 -1
  98. package/lib/internal/template/area-chart/styles.css.js +6 -6
  99. package/lib/internal/template/area-chart/styles.scoped.css +16 -16
  100. package/lib/internal/template/area-chart/styles.selectors.js +6 -6
  101. package/lib/internal/template/attribute-editor/index.d.ts.map +1 -1
  102. package/lib/internal/template/attribute-editor/index.js +13 -3
  103. package/lib/internal/template/attribute-editor/index.js.map +1 -1
  104. package/lib/internal/template/attribute-editor/internal.d.ts.map +1 -1
  105. package/lib/internal/template/attribute-editor/internal.js +1 -1
  106. package/lib/internal/template/attribute-editor/internal.js.map +1 -1
  107. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  108. package/lib/internal/template/attribute-editor/styles.scoped.css +44 -44
  109. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  110. package/lib/internal/template/badge/styles.css.js +10 -10
  111. package/lib/internal/template/badge/styles.scoped.css +38 -38
  112. package/lib/internal/template/badge/styles.selectors.js +10 -10
  113. package/lib/internal/template/box/styles.css.js +191 -191
  114. package/lib/internal/template/box/styles.scoped.css +445 -445
  115. package/lib/internal/template/box/styles.selectors.js +191 -191
  116. package/lib/internal/template/breadcrumb-group/analytics-metadata/interfaces.d.ts +12 -0
  117. package/lib/internal/template/breadcrumb-group/analytics-metadata/interfaces.d.ts.map +1 -1
  118. package/lib/internal/template/breadcrumb-group/analytics-metadata/interfaces.js.map +1 -1
  119. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  120. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +39 -39
  121. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  122. package/lib/internal/template/breadcrumb-group/styles.css.js +14 -14
  123. package/lib/internal/template/breadcrumb-group/styles.scoped.css +54 -54
  124. package/lib/internal/template/breadcrumb-group/styles.selectors.js +14 -14
  125. package/lib/internal/template/button/styles.css.js +22 -22
  126. package/lib/internal/template/button/styles.scoped.css +196 -196
  127. package/lib/internal/template/button/styles.selectors.js +22 -22
  128. package/lib/internal/template/button-dropdown/analytics-metadata/interfaces.d.ts +8 -1
  129. package/lib/internal/template/button-dropdown/analytics-metadata/interfaces.d.ts.map +1 -1
  130. package/lib/internal/template/button-dropdown/analytics-metadata/interfaces.js.map +1 -1
  131. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.d.ts.map +1 -1
  132. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js +4 -2
  133. package/lib/internal/template/button-dropdown/category-elements/expandable-category-element.js.map +1 -1
  134. package/lib/internal/template/button-dropdown/category-elements/styles.css.js +15 -14
  135. package/lib/internal/template/button-dropdown/category-elements/styles.scoped.css +53 -51
  136. package/lib/internal/template/button-dropdown/category-elements/styles.selectors.js +15 -14
  137. package/lib/internal/template/button-dropdown/internal.d.ts.map +1 -1
  138. package/lib/internal/template/button-dropdown/internal.js +1 -2
  139. package/lib/internal/template/button-dropdown/internal.js.map +1 -1
  140. package/lib/internal/template/button-dropdown/item-element/index.d.ts.map +1 -1
  141. package/lib/internal/template/button-dropdown/item-element/index.js +3 -0
  142. package/lib/internal/template/button-dropdown/item-element/index.js.map +1 -1
  143. package/lib/internal/template/button-dropdown/item-element/styles.css.js +16 -15
  144. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +60 -58
  145. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +16 -15
  146. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.css.js +5 -5
  147. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.scoped.css +10 -10
  148. package/lib/internal/template/button-dropdown/mobile-expandable-group/styles.selectors.js +5 -5
  149. package/lib/internal/template/button-dropdown/styles.css.js +21 -21
  150. package/lib/internal/template/button-dropdown/styles.scoped.css +43 -43
  151. package/lib/internal/template/button-dropdown/styles.selectors.js +21 -21
  152. package/lib/internal/template/button-group/styles.css.js +4 -4
  153. package/lib/internal/template/button-group/styles.scoped.css +12 -12
  154. package/lib/internal/template/button-group/styles.selectors.js +4 -4
  155. package/lib/internal/template/calendar/styles.css.js +21 -21
  156. package/lib/internal/template/calendar/styles.scoped.css +128 -128
  157. package/lib/internal/template/calendar/styles.selectors.js +21 -21
  158. package/lib/internal/template/cards/styles.css.js +39 -39
  159. package/lib/internal/template/cards/styles.scoped.css +112 -112
  160. package/lib/internal/template/cards/styles.selectors.js +39 -39
  161. package/lib/internal/template/checkbox/styles.css.js +3 -3
  162. package/lib/internal/template/checkbox/styles.scoped.css +19 -19
  163. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  164. package/lib/internal/template/code-editor/resizable-box/styles.css.js +4 -4
  165. package/lib/internal/template/code-editor/resizable-box/styles.scoped.css +9 -9
  166. package/lib/internal/template/code-editor/resizable-box/styles.selectors.js +4 -4
  167. package/lib/internal/template/code-editor/styles.css.js +33 -33
  168. package/lib/internal/template/code-editor/styles.scoped.css +304 -304
  169. package/lib/internal/template/code-editor/styles.selectors.js +33 -33
  170. package/lib/internal/template/collection-preferences/content-display/styles.css.js +11 -11
  171. package/lib/internal/template/collection-preferences/content-display/styles.scoped.css +34 -34
  172. package/lib/internal/template/collection-preferences/content-display/styles.selectors.js +11 -11
  173. package/lib/internal/template/collection-preferences/styles.css.js +38 -38
  174. package/lib/internal/template/collection-preferences/styles.scoped.css +75 -75
  175. package/lib/internal/template/collection-preferences/styles.selectors.js +38 -38
  176. package/lib/internal/template/column-layout/flexible-column-layout/styles.css.js +5 -5
  177. package/lib/internal/template/column-layout/flexible-column-layout/styles.scoped.css +13 -13
  178. package/lib/internal/template/column-layout/flexible-column-layout/styles.selectors.js +5 -5
  179. package/lib/internal/template/column-layout/styles.css.js +13 -13
  180. package/lib/internal/template/column-layout/styles.scoped.css +58 -58
  181. package/lib/internal/template/column-layout/styles.selectors.js +13 -13
  182. package/lib/internal/template/container/styles.css.js +33 -33
  183. package/lib/internal/template/container/styles.scoped.css +127 -127
  184. package/lib/internal/template/container/styles.selectors.js +33 -33
  185. package/lib/internal/template/content-layout/styles.css.js +14 -14
  186. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  187. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  188. package/lib/internal/template/copy-to-clipboard/styles.css.js +3 -3
  189. package/lib/internal/template/copy-to-clipboard/styles.scoped.css +4 -4
  190. package/lib/internal/template/copy-to-clipboard/styles.selectors.js +3 -3
  191. package/lib/internal/template/date-picker/styles.css.js +7 -7
  192. package/lib/internal/template/date-picker/styles.scoped.css +19 -19
  193. package/lib/internal/template/date-picker/styles.selectors.js +7 -7
  194. package/lib/internal/template/date-range-picker/calendar/grids/styles.css.js +30 -30
  195. package/lib/internal/template/date-range-picker/calendar/grids/styles.scoped.css +124 -124
  196. package/lib/internal/template/date-range-picker/calendar/grids/styles.selectors.js +30 -30
  197. package/lib/internal/template/date-range-picker/relative-range/styles.css.js +6 -6
  198. package/lib/internal/template/date-range-picker/relative-range/styles.scoped.css +13 -13
  199. package/lib/internal/template/date-range-picker/relative-range/styles.selectors.js +6 -6
  200. package/lib/internal/template/date-range-picker/styles.css.js +23 -23
  201. package/lib/internal/template/date-range-picker/styles.scoped.css +69 -69
  202. package/lib/internal/template/date-range-picker/styles.selectors.js +23 -23
  203. package/lib/internal/template/drawer/implementation.d.ts +1 -1
  204. package/lib/internal/template/drawer/implementation.d.ts.map +1 -1
  205. package/lib/internal/template/drawer/implementation.js +2 -2
  206. package/lib/internal/template/drawer/implementation.js.map +1 -1
  207. package/lib/internal/template/drawer/interfaces.d.ts +4 -0
  208. package/lib/internal/template/drawer/interfaces.d.ts.map +1 -1
  209. package/lib/internal/template/drawer/interfaces.js.map +1 -1
  210. package/lib/internal/template/drawer/styles.css.js +5 -5
  211. package/lib/internal/template/drawer/styles.scoped.css +32 -33
  212. package/lib/internal/template/drawer/styles.selectors.js +5 -5
  213. package/lib/internal/template/expandable-section/analytics-metadata/interfaces.d.ts +7 -2
  214. package/lib/internal/template/expandable-section/analytics-metadata/interfaces.d.ts.map +1 -1
  215. package/lib/internal/template/expandable-section/analytics-metadata/interfaces.js.map +1 -1
  216. package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
  217. package/lib/internal/template/expandable-section/expandable-section-header.js +1 -2
  218. package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
  219. package/lib/internal/template/expandable-section/internal.d.ts +1 -2
  220. package/lib/internal/template/expandable-section/internal.d.ts.map +1 -1
  221. package/lib/internal/template/expandable-section/internal.js +2 -1
  222. package/lib/internal/template/expandable-section/internal.js.map +1 -1
  223. package/lib/internal/template/expandable-section/styles.css.js +34 -34
  224. package/lib/internal/template/expandable-section/styles.scoped.css +127 -127
  225. package/lib/internal/template/expandable-section/styles.selectors.js +34 -34
  226. package/lib/internal/template/file-dropzone/styles.css.js +3 -3
  227. package/lib/internal/template/file-dropzone/styles.scoped.css +19 -19
  228. package/lib/internal/template/file-dropzone/styles.selectors.js +3 -3
  229. package/lib/internal/template/file-input/styles.css.js +6 -6
  230. package/lib/internal/template/file-input/styles.scoped.css +29 -29
  231. package/lib/internal/template/file-input/styles.selectors.js +6 -6
  232. package/lib/internal/template/file-token-group/styles.css.js +22 -22
  233. package/lib/internal/template/file-token-group/styles.scoped.css +69 -69
  234. package/lib/internal/template/file-token-group/styles.selectors.js +22 -22
  235. package/lib/internal/template/file-upload/styles.css.js +2 -2
  236. package/lib/internal/template/file-upload/styles.scoped.css +4 -4
  237. package/lib/internal/template/file-upload/styles.selectors.js +2 -2
  238. package/lib/internal/template/flashbar/analytics-metadata/interfaces.d.ts +12 -1
  239. package/lib/internal/template/flashbar/analytics-metadata/interfaces.d.ts.map +1 -1
  240. package/lib/internal/template/flashbar/analytics-metadata/interfaces.js.map +1 -1
  241. package/lib/internal/template/flashbar/collapsible-flashbar.d.ts.map +1 -1
  242. package/lib/internal/template/flashbar/collapsible-flashbar.js +1 -2
  243. package/lib/internal/template/flashbar/collapsible-flashbar.js.map +1 -1
  244. package/lib/internal/template/flashbar/styles.css.js +50 -50
  245. package/lib/internal/template/flashbar/styles.scoped.css +253 -253
  246. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  247. package/lib/internal/template/form/styles.css.js +8 -8
  248. package/lib/internal/template/form/styles.scoped.css +20 -20
  249. package/lib/internal/template/form/styles.selectors.js +8 -8
  250. package/lib/internal/template/form-field/styles.css.js +24 -24
  251. package/lib/internal/template/form-field/styles.scoped.css +67 -67
  252. package/lib/internal/template/form-field/styles.selectors.js +24 -24
  253. package/lib/internal/template/grid/styles.css.js +53 -53
  254. package/lib/internal/template/grid/styles.scoped.css +62 -62
  255. package/lib/internal/template/grid/styles.selectors.js +53 -53
  256. package/lib/internal/template/header/styles.css.js +34 -34
  257. package/lib/internal/template/header/styles.scoped.css +126 -126
  258. package/lib/internal/template/header/styles.selectors.js +34 -34
  259. package/lib/internal/template/help-panel/styles.css.js +6 -6
  260. package/lib/internal/template/help-panel/styles.scoped.css +172 -172
  261. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  262. package/lib/internal/template/hotspot/styles.css.js +7 -7
  263. package/lib/internal/template/hotspot/styles.scoped.css +10 -10
  264. package/lib/internal/template/hotspot/styles.selectors.js +7 -7
  265. package/lib/internal/template/icon/styles.css.js +39 -39
  266. package/lib/internal/template/icon/styles.scoped.css +125 -125
  267. package/lib/internal/template/icon/styles.selectors.js +39 -39
  268. package/lib/internal/template/input/styles.css.js +13 -13
  269. package/lib/internal/template/input/styles.scoped.css +95 -95
  270. package/lib/internal/template/input/styles.selectors.js +13 -13
  271. package/lib/internal/template/internal/base-component/styles.scoped.css +3620 -3593
  272. package/lib/internal/template/internal/components/abstract-switch/styles.css.js +13 -13
  273. package/lib/internal/template/internal/components/abstract-switch/styles.scoped.css +28 -28
  274. package/lib/internal/template/internal/components/abstract-switch/styles.selectors.js +13 -13
  275. package/lib/internal/template/internal/components/button-trigger/styles.css.js +13 -13
  276. package/lib/internal/template/internal/components/button-trigger/styles.scoped.css +91 -89
  277. package/lib/internal/template/internal/components/button-trigger/styles.selectors.js +13 -13
  278. package/lib/internal/template/internal/components/cartesian-chart/styles.css.js +28 -28
  279. package/lib/internal/template/internal/components/cartesian-chart/styles.scoped.css +43 -43
  280. package/lib/internal/template/internal/components/cartesian-chart/styles.selectors.js +28 -28
  281. package/lib/internal/template/internal/components/chart-filter/index.d.ts +2 -4
  282. package/lib/internal/template/internal/components/chart-filter/index.d.ts.map +1 -1
  283. package/lib/internal/template/internal/components/chart-filter/index.js +1 -3
  284. package/lib/internal/template/internal/components/chart-filter/index.js.map +1 -1
  285. package/lib/internal/template/internal/components/chart-filter/styles.css.js +3 -3
  286. package/lib/internal/template/internal/components/chart-filter/styles.scoped.css +7 -7
  287. package/lib/internal/template/internal/components/chart-filter/styles.selectors.js +3 -3
  288. package/lib/internal/template/internal/components/chart-legend/index.d.ts +1 -3
  289. package/lib/internal/template/internal/components/chart-legend/index.d.ts.map +1 -1
  290. package/lib/internal/template/internal/components/chart-legend/index.js +1 -2
  291. package/lib/internal/template/internal/components/chart-legend/index.js.map +1 -1
  292. package/lib/internal/template/internal/components/chart-legend/styles.css.js +6 -6
  293. package/lib/internal/template/internal/components/chart-legend/styles.scoped.css +25 -25
  294. package/lib/internal/template/internal/components/chart-legend/styles.selectors.js +6 -6
  295. package/lib/internal/template/internal/components/chart-plot/styles.css.js +5 -5
  296. package/lib/internal/template/internal/components/chart-plot/styles.scoped.css +6 -6
  297. package/lib/internal/template/internal/components/chart-plot/styles.selectors.js +5 -5
  298. package/lib/internal/template/internal/components/chart-popover/index.d.ts +6 -2
  299. package/lib/internal/template/internal/components/chart-popover/index.d.ts.map +1 -1
  300. package/lib/internal/template/internal/components/chart-popover/index.js +7 -5
  301. package/lib/internal/template/internal/components/chart-popover/index.js.map +1 -1
  302. package/lib/internal/template/internal/components/chart-popover/styles.css.js +3 -3
  303. package/lib/internal/template/internal/components/chart-popover/styles.scoped.css +17 -13
  304. package/lib/internal/template/internal/components/chart-popover/styles.selectors.js +3 -3
  305. package/lib/internal/template/internal/components/chart-popover/test-classes/styles.css.js +8 -0
  306. package/lib/internal/template/internal/components/chart-popover/test-classes/styles.scoped.css +9 -0
  307. package/lib/internal/template/internal/components/{chart-popover-footer → chart-popover/test-classes}/styles.selectors.js +3 -1
  308. package/lib/internal/template/internal/components/chart-series-details/index.js +3 -3
  309. package/lib/internal/template/internal/components/chart-series-details/index.js.map +1 -1
  310. package/lib/internal/template/internal/components/chart-series-details/series-details-text.d.ts +1 -0
  311. package/lib/internal/template/internal/components/chart-series-details/series-details-text.d.ts.map +1 -1
  312. package/lib/internal/template/internal/components/chart-series-details/series-details-text.js +2 -3
  313. package/lib/internal/template/internal/components/chart-series-details/series-details-text.js.map +1 -1
  314. package/lib/internal/template/internal/components/chart-series-details/styles.css.js +19 -20
  315. package/lib/internal/template/internal/components/chart-series-details/styles.scoped.css +55 -59
  316. package/lib/internal/template/internal/components/chart-series-details/styles.selectors.js +19 -20
  317. package/lib/internal/template/internal/components/chart-series-marker/styles.css.js +5 -5
  318. package/lib/internal/template/internal/components/chart-series-marker/styles.scoped.css +14 -14
  319. package/lib/internal/template/internal/components/chart-series-marker/styles.selectors.js +5 -5
  320. package/lib/internal/template/internal/components/chart-status-container/styles.css.js +2 -2
  321. package/lib/internal/template/internal/components/chart-status-container/styles.scoped.css +3 -3
  322. package/lib/internal/template/internal/components/chart-status-container/styles.selectors.js +2 -2
  323. package/lib/internal/template/internal/components/chart-wrapper/styles.css.js +9 -9
  324. package/lib/internal/template/internal/components/chart-wrapper/styles.scoped.css +15 -15
  325. package/lib/internal/template/internal/components/chart-wrapper/styles.selectors.js +9 -9
  326. package/lib/internal/template/internal/components/checkbox-icon/index.js +3 -3
  327. package/lib/internal/template/internal/components/checkbox-icon/index.js.map +1 -1
  328. package/lib/internal/template/internal/components/checkbox-icon/styles.css.js +9 -9
  329. package/lib/internal/template/internal/components/checkbox-icon/styles.scoped.css +20 -20
  330. package/lib/internal/template/internal/components/checkbox-icon/styles.selectors.js +9 -9
  331. package/lib/internal/template/internal/components/drag-handle/styles.css.js +12 -12
  332. package/lib/internal/template/internal/components/drag-handle/styles.scoped.css +31 -31
  333. package/lib/internal/template/internal/components/drag-handle/styles.selectors.js +12 -12
  334. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +27 -27
  335. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +106 -106
  336. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +27 -27
  337. package/lib/internal/template/internal/components/dropdown/styles.css.js +20 -20
  338. package/lib/internal/template/internal/components/dropdown/styles.scoped.css +60 -60
  339. package/lib/internal/template/internal/components/dropdown/styles.selectors.js +20 -20
  340. package/lib/internal/template/internal/components/dropdown-footer/styles.css.js +3 -3
  341. package/lib/internal/template/internal/components/dropdown-footer/styles.scoped.css +9 -9
  342. package/lib/internal/template/internal/components/dropdown-footer/styles.selectors.js +3 -3
  343. package/lib/internal/template/internal/components/dropdown-status/styles.css.js +2 -2
  344. package/lib/internal/template/internal/components/dropdown-status/styles.scoped.css +10 -10
  345. package/lib/internal/template/internal/components/dropdown-status/styles.selectors.js +2 -2
  346. package/lib/internal/template/internal/components/menu-dropdown/styles.css.js +7 -7
  347. package/lib/internal/template/internal/components/menu-dropdown/styles.scoped.css +34 -34
  348. package/lib/internal/template/internal/components/menu-dropdown/styles.selectors.js +7 -7
  349. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  350. package/lib/internal/template/internal/components/option/styles.scoped.css +47 -47
  351. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  352. package/lib/internal/template/internal/components/options-list/styles.css.js +3 -3
  353. package/lib/internal/template/internal/components/options-list/styles.scoped.css +11 -11
  354. package/lib/internal/template/internal/components/options-list/styles.selectors.js +3 -3
  355. package/lib/internal/template/internal/components/panel-resize-handle/styles.css.js +5 -5
  356. package/lib/internal/template/internal/components/panel-resize-handle/styles.scoped.css +17 -17
  357. package/lib/internal/template/internal/components/panel-resize-handle/styles.selectors.js +5 -5
  358. package/lib/internal/template/internal/components/selectable-item/index.d.ts.map +1 -1
  359. package/lib/internal/template/internal/components/selectable-item/index.js +3 -0
  360. package/lib/internal/template/internal/components/selectable-item/index.js.map +1 -1
  361. package/lib/internal/template/internal/components/selectable-item/styles.css.js +21 -20
  362. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +99 -97
  363. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +21 -20
  364. package/lib/internal/template/internal/components/sortable-area/styles.css.js +8 -8
  365. package/lib/internal/template/internal/components/sortable-area/styles.scoped.css +52 -52
  366. package/lib/internal/template/internal/components/sortable-area/styles.selectors.js +8 -8
  367. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  368. package/lib/internal/template/internal/components/token-list/styles.scoped.css +48 -48
  369. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  370. package/lib/internal/template/internal/do-not-use/chart-filter.d.ts +4 -0
  371. package/lib/internal/template/internal/do-not-use/chart-filter.d.ts.map +1 -0
  372. package/lib/internal/template/internal/do-not-use/chart-filter.js +5 -0
  373. package/lib/internal/template/internal/do-not-use/chart-filter.js.map +1 -0
  374. package/lib/internal/template/internal/do-not-use/chart-tooltip.d.ts +4 -0
  375. package/lib/internal/template/internal/do-not-use/chart-tooltip.d.ts.map +1 -0
  376. package/lib/internal/template/internal/do-not-use/chart-tooltip.js +5 -0
  377. package/lib/internal/template/internal/do-not-use/chart-tooltip.js.map +1 -0
  378. package/lib/internal/template/internal/do-not-use/expandable-section.d.ts +4 -0
  379. package/lib/internal/template/internal/do-not-use/expandable-section.d.ts.map +1 -0
  380. package/lib/internal/template/internal/do-not-use/expandable-section.js +5 -0
  381. package/lib/internal/template/internal/do-not-use/expandable-section.js.map +1 -0
  382. package/lib/internal/template/internal/do-not-use/i18n.d.ts +2 -0
  383. package/lib/internal/template/internal/do-not-use/i18n.d.ts.map +1 -0
  384. package/lib/internal/template/internal/do-not-use/i18n.js +4 -0
  385. package/lib/internal/template/internal/do-not-use/i18n.js.map +1 -0
  386. package/lib/internal/template/internal/do-not-use/tooltip.d.ts +4 -0
  387. package/lib/internal/template/internal/do-not-use/tooltip.d.ts.map +1 -0
  388. package/lib/internal/template/internal/do-not-use/tooltip.js +5 -0
  389. package/lib/internal/template/internal/do-not-use/tooltip.js.map +1 -0
  390. package/lib/internal/template/internal/environment.js +1 -1
  391. package/lib/internal/template/internal/environment.json +1 -1
  392. package/lib/internal/template/internal/generated/styles/tokens.d.ts +2 -0
  393. package/lib/internal/template/internal/generated/styles/tokens.js +755 -753
  394. package/lib/internal/template/internal/generated/theming/index.cjs +817 -773
  395. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +255 -0
  396. package/lib/internal/template/internal/generated/theming/index.d.ts +255 -0
  397. package/lib/internal/template/internal/generated/theming/index.js +817 -773
  398. package/lib/internal/template/internal/tooltip-do-not-use/index.d.ts.map +1 -1
  399. package/lib/internal/template/internal/tooltip-do-not-use/index.js.map +1 -1
  400. package/lib/internal/template/key-value-pairs/styles.css.js +8 -8
  401. package/lib/internal/template/key-value-pairs/styles.scoped.css +27 -27
  402. package/lib/internal/template/key-value-pairs/styles.selectors.js +8 -8
  403. package/lib/internal/template/link/styles.css.js +20 -20
  404. package/lib/internal/template/link/styles.scoped.css +150 -150
  405. package/lib/internal/template/link/styles.selectors.js +20 -20
  406. package/lib/internal/template/mixed-line-bar-chart/chart-legend.d.ts.map +1 -1
  407. package/lib/internal/template/mixed-line-bar-chart/chart-legend.js +2 -2
  408. package/lib/internal/template/mixed-line-bar-chart/chart-legend.js.map +1 -1
  409. package/lib/internal/template/mixed-line-bar-chart/chart-popover.d.ts.map +1 -1
  410. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js +2 -4
  411. package/lib/internal/template/mixed-line-bar-chart/chart-popover.js.map +1 -1
  412. package/lib/internal/template/mixed-line-bar-chart/internal.d.ts.map +1 -1
  413. package/lib/internal/template/mixed-line-bar-chart/internal.js +2 -2
  414. package/lib/internal/template/mixed-line-bar-chart/internal.js.map +1 -1
  415. package/lib/internal/template/mixed-line-bar-chart/styles.css.js +11 -11
  416. package/lib/internal/template/mixed-line-bar-chart/styles.scoped.css +22 -22
  417. package/lib/internal/template/mixed-line-bar-chart/styles.selectors.js +11 -11
  418. package/lib/internal/template/modal/styles.css.js +23 -23
  419. package/lib/internal/template/modal/styles.scoped.css +77 -77
  420. package/lib/internal/template/modal/styles.selectors.js +23 -23
  421. package/lib/internal/template/multiselect/styles.css.js +3 -3
  422. package/lib/internal/template/multiselect/styles.scoped.css +12 -12
  423. package/lib/internal/template/multiselect/styles.selectors.js +3 -3
  424. package/lib/internal/template/package.json +7 -0
  425. package/lib/internal/template/pagination/styles.css.js +9 -9
  426. package/lib/internal/template/pagination/styles.scoped.css +53 -53
  427. package/lib/internal/template/pagination/styles.selectors.js +9 -9
  428. package/lib/internal/template/pie-chart/index.d.ts.map +1 -1
  429. package/lib/internal/template/pie-chart/index.js +2 -2
  430. package/lib/internal/template/pie-chart/index.js.map +1 -1
  431. package/lib/internal/template/pie-chart/pie-chart.d.ts.map +1 -1
  432. package/lib/internal/template/pie-chart/pie-chart.js +1 -4
  433. package/lib/internal/template/pie-chart/pie-chart.js.map +1 -1
  434. package/lib/internal/template/pie-chart/styles.css.js +27 -27
  435. package/lib/internal/template/pie-chart/styles.scoped.css +72 -72
  436. package/lib/internal/template/pie-chart/styles.selectors.js +27 -27
  437. package/lib/internal/template/popover/body.d.ts +1 -1
  438. package/lib/internal/template/popover/body.d.ts.map +1 -1
  439. package/lib/internal/template/popover/body.js +1 -1
  440. package/lib/internal/template/popover/body.js.map +1 -1
  441. package/lib/internal/template/popover/container.d.ts +5 -2
  442. package/lib/internal/template/popover/container.d.ts.map +1 -1
  443. package/lib/internal/template/popover/container.js +15 -5
  444. package/lib/internal/template/popover/container.js.map +1 -1
  445. package/lib/internal/template/popover/styles.css.js +56 -54
  446. package/lib/internal/template/popover/styles.scoped.css +152 -140
  447. package/lib/internal/template/popover/styles.selectors.js +56 -54
  448. package/lib/internal/template/popover/use-popover-position.d.ts +3 -2
  449. package/lib/internal/template/popover/use-popover-position.d.ts.map +1 -1
  450. package/lib/internal/template/popover/use-popover-position.js +12 -6
  451. package/lib/internal/template/popover/use-popover-position.js.map +1 -1
  452. package/lib/internal/template/popover/utils/positions.d.ts +2 -1
  453. package/lib/internal/template/popover/utils/positions.d.ts.map +1 -1
  454. package/lib/internal/template/popover/utils/positions.js +10 -4
  455. package/lib/internal/template/popover/utils/positions.js.map +1 -1
  456. package/lib/internal/template/progress-bar/styles.css.js +19 -19
  457. package/lib/internal/template/progress-bar/styles.scoped.css +56 -56
  458. package/lib/internal/template/progress-bar/styles.selectors.js +19 -19
  459. package/lib/internal/template/prompt-input/styles.css.js +15 -15
  460. package/lib/internal/template/prompt-input/styles.scoped.css +149 -149
  461. package/lib/internal/template/prompt-input/styles.selectors.js +15 -15
  462. package/lib/internal/template/property-filter/filtering-token/styles.css.js +18 -18
  463. package/lib/internal/template/property-filter/filtering-token/styles.scoped.css +83 -83
  464. package/lib/internal/template/property-filter/filtering-token/styles.selectors.js +18 -18
  465. package/lib/internal/template/property-filter/styles.css.js +39 -39
  466. package/lib/internal/template/property-filter/styles.scoped.css +102 -102
  467. package/lib/internal/template/property-filter/styles.selectors.js +39 -39
  468. package/lib/internal/template/radio-group/radio-button.d.ts.map +1 -1
  469. package/lib/internal/template/radio-group/radio-button.js +1 -3
  470. package/lib/internal/template/radio-group/radio-button.js.map +1 -1
  471. package/lib/internal/template/radio-group/styles.css.js +10 -10
  472. package/lib/internal/template/radio-group/styles.scoped.css +43 -43
  473. package/lib/internal/template/radio-group/styles.selectors.js +10 -10
  474. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.css.js +7 -7
  475. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.scoped.css +14 -14
  476. package/lib/internal/template/s3-resource-selector/s3-in-context/styles.selectors.js +7 -7
  477. package/lib/internal/template/s3-resource-selector/s3-modal/styles.css.js +3 -3
  478. package/lib/internal/template/s3-resource-selector/s3-modal/styles.scoped.css +7 -7
  479. package/lib/internal/template/s3-resource-selector/s3-modal/styles.selectors.js +3 -3
  480. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  481. package/lib/internal/template/segmented-control/styles.scoped.css +98 -96
  482. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  483. package/lib/internal/template/select/parts/styles.css.js +20 -20
  484. package/lib/internal/template/select/parts/styles.scoped.css +57 -57
  485. package/lib/internal/template/select/parts/styles.selectors.js +20 -20
  486. package/lib/internal/template/select/styles.css.js +1 -1
  487. package/lib/internal/template/select/styles.scoped.css +5 -5
  488. package/lib/internal/template/select/styles.selectors.js +1 -1
  489. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.d.ts +3 -0
  490. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.d.ts.map +1 -1
  491. package/lib/internal/template/side-navigation/analytics-metadata/interfaces.js.map +1 -1
  492. package/lib/internal/template/side-navigation/styles.css.js +30 -30
  493. package/lib/internal/template/side-navigation/styles.scoped.css +106 -106
  494. package/lib/internal/template/side-navigation/styles.selectors.js +30 -30
  495. package/lib/internal/template/slider/styles.css.js +26 -26
  496. package/lib/internal/template/slider/styles.scoped.css +198 -198
  497. package/lib/internal/template/slider/styles.selectors.js +26 -26
  498. package/lib/internal/template/space-between/styles.css.js +23 -23
  499. package/lib/internal/template/space-between/styles.scoped.css +40 -40
  500. package/lib/internal/template/space-between/styles.selectors.js +23 -23
  501. package/lib/internal/template/spinner/styles.css.js +13 -13
  502. package/lib/internal/template/spinner/styles.scoped.css +36 -36
  503. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  504. package/lib/internal/template/split-panel/icons/styles.css.js +22 -22
  505. package/lib/internal/template/split-panel/icons/styles.scoped.css +47 -47
  506. package/lib/internal/template/split-panel/icons/styles.selectors.js +22 -22
  507. package/lib/internal/template/split-panel/styles.css.js +27 -27
  508. package/lib/internal/template/split-panel/styles.scoped.css +85 -85
  509. package/lib/internal/template/split-panel/styles.selectors.js +27 -27
  510. package/lib/internal/template/status-indicator/styles.css.js +23 -23
  511. package/lib/internal/template/status-indicator/styles.scoped.css +48 -48
  512. package/lib/internal/template/status-indicator/styles.selectors.js +23 -23
  513. package/lib/internal/template/steps/styles.css.js +6 -6
  514. package/lib/internal/template/steps/styles.scoped.css +18 -18
  515. package/lib/internal/template/steps/styles.selectors.js +6 -6
  516. package/lib/internal/template/table/body-cell/styles.css.js +46 -46
  517. package/lib/internal/template/table/body-cell/styles.scoped.css +881 -878
  518. package/lib/internal/template/table/body-cell/styles.selectors.js +46 -46
  519. package/lib/internal/template/table/expandable-rows/styles.css.js +3 -3
  520. package/lib/internal/template/table/expandable-rows/styles.scoped.css +33 -33
  521. package/lib/internal/template/table/expandable-rows/styles.selectors.js +3 -3
  522. package/lib/internal/template/table/header-cell/styles.css.js +28 -28
  523. package/lib/internal/template/table/header-cell/styles.scoped.css +198 -198
  524. package/lib/internal/template/table/header-cell/styles.selectors.js +28 -28
  525. package/lib/internal/template/table/resizer/styles.css.js +8 -8
  526. package/lib/internal/template/table/resizer/styles.scoped.css +39 -39
  527. package/lib/internal/template/table/resizer/styles.selectors.js +8 -8
  528. package/lib/internal/template/table/selection/styles.css.js +4 -4
  529. package/lib/internal/template/table/selection/styles.scoped.css +6 -6
  530. package/lib/internal/template/table/selection/styles.selectors.js +4 -4
  531. package/lib/internal/template/table/sticky-scrollbar/styles.css.js +6 -6
  532. package/lib/internal/template/table/sticky-scrollbar/styles.scoped.css +12 -12
  533. package/lib/internal/template/table/sticky-scrollbar/styles.selectors.js +6 -6
  534. package/lib/internal/template/table/styles.css.js +34 -34
  535. package/lib/internal/template/table/styles.scoped.css +88 -88
  536. package/lib/internal/template/table/styles.selectors.js +34 -34
  537. package/lib/internal/template/tabs/styles.css.js +30 -30
  538. package/lib/internal/template/tabs/styles.scoped.css +123 -123
  539. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  540. package/lib/internal/template/tag-editor/index.d.ts.map +1 -1
  541. package/lib/internal/template/tag-editor/index.js +1 -1
  542. package/lib/internal/template/tag-editor/index.js.map +1 -1
  543. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  544. package/lib/internal/template/tag-editor/styles.scoped.css +27 -27
  545. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  546. package/lib/internal/template/test-utils/dom/internal/chart-tooltip.d.ts +9 -0
  547. package/lib/internal/template/test-utils/dom/internal/chart-tooltip.js +26 -0
  548. package/lib/internal/template/test-utils/dom/internal/chart-tooltip.js.map +1 -0
  549. package/lib/internal/template/test-utils/selectors/internal/chart-tooltip.d.ts +9 -0
  550. package/lib/internal/template/test-utils/selectors/internal/chart-tooltip.js +26 -0
  551. package/lib/internal/template/test-utils/selectors/internal/chart-tooltip.js.map +1 -0
  552. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  553. package/lib/internal/template/text-content/styles.css.js +1 -1
  554. package/lib/internal/template/text-content/styles.scoped.css +123 -123
  555. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  556. package/lib/internal/template/text-filter/styles.css.js +3 -3
  557. package/lib/internal/template/text-filter/styles.scoped.css +10 -10
  558. package/lib/internal/template/text-filter/styles.selectors.js +3 -3
  559. package/lib/internal/template/textarea/styles.css.js +5 -5
  560. package/lib/internal/template/textarea/styles.scoped.css +58 -58
  561. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  562. package/lib/internal/template/tiles/styles.css.js +30 -30
  563. package/lib/internal/template/tiles/styles.scoped.css +152 -149
  564. package/lib/internal/template/tiles/styles.selectors.js +30 -30
  565. package/lib/internal/template/toggle/styles.css.js +10 -10
  566. package/lib/internal/template/toggle/styles.scoped.css +36 -36
  567. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  568. package/lib/internal/template/toggle-button/styles.css.js +3 -3
  569. package/lib/internal/template/toggle-button/styles.scoped.css +6 -6
  570. package/lib/internal/template/toggle-button/styles.selectors.js +3 -3
  571. package/lib/internal/template/token-group/styles.css.js +8 -8
  572. package/lib/internal/template/token-group/styles.scoped.css +52 -52
  573. package/lib/internal/template/token-group/styles.selectors.js +8 -8
  574. package/lib/internal/template/top-navigation/1.0-beta/styles.css.js +23 -23
  575. package/lib/internal/template/top-navigation/1.0-beta/styles.scoped.css +78 -78
  576. package/lib/internal/template/top-navigation/1.0-beta/styles.selectors.js +23 -23
  577. package/lib/internal/template/top-navigation/styles.css.js +47 -47
  578. package/lib/internal/template/top-navigation/styles.scoped.css +158 -158
  579. package/lib/internal/template/top-navigation/styles.selectors.js +47 -47
  580. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.css.js +20 -20
  581. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.scoped.css +43 -43
  582. package/lib/internal/template/tutorial-panel/components/tutorial-detail-view/styles.selectors.js +20 -20
  583. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.css.js +18 -18
  584. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.scoped.css +59 -59
  585. package/lib/internal/template/tutorial-panel/components/tutorial-list/styles.selectors.js +18 -18
  586. package/lib/internal/template/tutorial-panel/styles.css.js +1 -1
  587. package/lib/internal/template/tutorial-panel/styles.scoped.css +7 -7
  588. package/lib/internal/template/tutorial-panel/styles.selectors.js +1 -1
  589. package/lib/internal/template/wizard/styles.css.js +30 -30
  590. package/lib/internal/template/wizard/styles.scoped.css +118 -118
  591. package/lib/internal/template/wizard/styles.selectors.js +30 -30
  592. package/package.json +1 -1
  593. package/lib/internal/scss/internal/components/chart-popover-footer/styles.scss +0 -17
  594. package/lib/internal/template/internal/components/chart-popover-footer/index.d.ts +0 -5
  595. package/lib/internal/template/internal/components/chart-popover-footer/index.d.ts.map +0 -1
  596. package/lib/internal/template/internal/components/chart-popover-footer/index.js +0 -8
  597. package/lib/internal/template/internal/components/chart-popover-footer/index.js.map +0 -1
  598. package/lib/internal/template/internal/components/chart-popover-footer/styles.css.js +0 -6
  599. package/lib/internal/template/internal/components/chart-popover-footer/styles.scoped.css +0 -19
@@ -2,59 +2,61 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "arrow": "awsui_arrow_xjuzf_1q42r_289",
6
- "arrow-outer": "awsui_arrow-outer_xjuzf_1q42r_293",
7
- "arrow-inner": "awsui_arrow-inner_xjuzf_1q42r_293",
8
- "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_1q42r_335",
9
- "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_1q42r_335",
10
- "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_1q42r_338",
11
- "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_1q42r_338",
12
- "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_1q42r_341",
13
- "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_1q42r_341",
14
- "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_1q42r_341",
15
- "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_1q42r_341",
16
- "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_1q42r_344",
17
- "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_1q42r_344",
18
- "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_1q42r_344",
19
- "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_1q42r_344",
20
- "body": "awsui_body_xjuzf_1q42r_492",
21
- "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_1q42r_528",
22
- "has-dismiss": "awsui_has-dismiss_xjuzf_1q42r_532",
23
- "dismiss": "awsui_dismiss_xjuzf_1q42r_537",
24
- "dismiss-control": "awsui_dismiss-control_xjuzf_1q42r_545",
25
- "header-row": "awsui_header-row_xjuzf_1q42r_549",
26
- "header": "awsui_header_xjuzf_1q42r_549",
27
- "content": "awsui_content_xjuzf_1q42r_574",
28
- "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_1q42r_582",
29
- "container": "awsui_container_xjuzf_1q42r_730",
30
- "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_1q42r_741",
31
- "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_1q42r_741",
32
- "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_1q42r_741",
33
- "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_1q42r_746",
34
- "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_1q42r_746",
35
- "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_1q42r_746",
36
- "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_1q42r_751",
37
- "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_1q42r_751",
38
- "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_1q42r_756",
39
- "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_1q42r_756",
40
- "container-body": "awsui_container-body_xjuzf_1q42r_762",
41
- "container-body-variant-annotation": "awsui_container-body-variant-annotation_xjuzf_1q42r_802",
42
- "container-body-size-small": "awsui_container-body-size-small_xjuzf_1q42r_807",
43
- "fixed-width": "awsui_fixed-width_xjuzf_1q42r_810",
44
- "container-body-size-medium": "awsui_container-body-size-medium_xjuzf_1q42r_814",
45
- "container-body-size-large": "awsui_container-body-size-large_xjuzf_1q42r_821",
46
- "container-arrow": "awsui_container-arrow_xjuzf_1q42r_741",
47
- "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_1q42r_871",
48
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_1q42r_1",
49
- "refresh": "awsui_refresh_xjuzf_1q42r_1065",
50
- "root": "awsui_root_xjuzf_1q42r_1087",
51
- "no-wrap": "awsui_no-wrap_xjuzf_1q42r_1119",
52
- "root-filtering-token": "awsui_root-filtering-token_xjuzf_1q42r_1123",
53
- "trigger": "awsui_trigger_xjuzf_1q42r_1127",
54
- "overflow-ellipsis": "awsui_overflow-ellipsis_xjuzf_1q42r_1134",
55
- "trigger-type-text-inline": "awsui_trigger-type-text-inline_xjuzf_1q42r_1142",
56
- "trigger-type-text": "awsui_trigger-type-text_xjuzf_1q42r_1142",
57
- "trigger-type-filtering-token": "awsui_trigger-type-filtering-token_xjuzf_1q42r_1210",
58
- "popover-inline-content": "awsui_popover-inline-content_xjuzf_1q42r_1214"
5
+ "arrow": "awsui_arrow_xjuzf_j256c_289",
6
+ "arrow-outer": "awsui_arrow-outer_xjuzf_j256c_293",
7
+ "arrow-inner": "awsui_arrow-inner_xjuzf_j256c_293",
8
+ "arrow-position-right-top": "awsui_arrow-position-right-top_xjuzf_j256c_335",
9
+ "arrow-position-right-bottom": "awsui_arrow-position-right-bottom_xjuzf_j256c_335",
10
+ "arrow-position-left-top": "awsui_arrow-position-left-top_xjuzf_j256c_338",
11
+ "arrow-position-left-bottom": "awsui_arrow-position-left-bottom_xjuzf_j256c_338",
12
+ "arrow-position-top-center": "awsui_arrow-position-top-center_xjuzf_j256c_341",
13
+ "arrow-position-top-right": "awsui_arrow-position-top-right_xjuzf_j256c_341",
14
+ "arrow-position-top-left": "awsui_arrow-position-top-left_xjuzf_j256c_341",
15
+ "arrow-position-top-responsive": "awsui_arrow-position-top-responsive_xjuzf_j256c_341",
16
+ "arrow-position-bottom-center": "awsui_arrow-position-bottom-center_xjuzf_j256c_344",
17
+ "arrow-position-bottom-right": "awsui_arrow-position-bottom-right_xjuzf_j256c_344",
18
+ "arrow-position-bottom-left": "awsui_arrow-position-bottom-left_xjuzf_j256c_344",
19
+ "arrow-position-bottom-responsive": "awsui_arrow-position-bottom-responsive_xjuzf_j256c_344",
20
+ "body": "awsui_body_xjuzf_j256c_492",
21
+ "body-overflow-visible": "awsui_body-overflow-visible_xjuzf_j256c_528",
22
+ "body-variant-chart": "awsui_body-variant-chart_xjuzf_j256c_531",
23
+ "has-dismiss": "awsui_has-dismiss_xjuzf_j256c_536",
24
+ "dismiss": "awsui_dismiss_xjuzf_j256c_541",
25
+ "dismiss-control": "awsui_dismiss-control_xjuzf_j256c_549",
26
+ "header-row": "awsui_header-row_xjuzf_j256c_553",
27
+ "header": "awsui_header_xjuzf_j256c_553",
28
+ "content": "awsui_content_xjuzf_j256c_578",
29
+ "content-overflow-visible": "awsui_content-overflow-visible_xjuzf_j256c_586",
30
+ "container": "awsui_container_xjuzf_j256c_734",
31
+ "container-arrow-position-bottom-left": "awsui_container-arrow-position-bottom-left_xjuzf_j256c_745",
32
+ "container-arrow-position-bottom-center": "awsui_container-arrow-position-bottom-center_xjuzf_j256c_745",
33
+ "container-arrow-position-bottom-right": "awsui_container-arrow-position-bottom-right_xjuzf_j256c_745",
34
+ "container-arrow-position-top-left": "awsui_container-arrow-position-top-left_xjuzf_j256c_750",
35
+ "container-arrow-position-top-center": "awsui_container-arrow-position-top-center_xjuzf_j256c_750",
36
+ "container-arrow-position-top-right": "awsui_container-arrow-position-top-right_xjuzf_j256c_750",
37
+ "container-arrow-position-right-top": "awsui_container-arrow-position-right-top_xjuzf_j256c_755",
38
+ "container-arrow-position-right-bottom": "awsui_container-arrow-position-right-bottom_xjuzf_j256c_755",
39
+ "container-arrow-position-left-top": "awsui_container-arrow-position-left-top_xjuzf_j256c_760",
40
+ "container-arrow-position-left-bottom": "awsui_container-arrow-position-left-bottom_xjuzf_j256c_760",
41
+ "container-body": "awsui_container-body_xjuzf_j256c_766",
42
+ "container-body-variant-annotation": "awsui_container-body-variant-annotation_xjuzf_j256c_806",
43
+ "container-body-size-small": "awsui_container-body-size-small_xjuzf_j256c_811",
44
+ "fixed-width": "awsui_fixed-width_xjuzf_j256c_814",
45
+ "container-body-size-medium": "awsui_container-body-size-medium_xjuzf_j256c_818",
46
+ "container-body-size-large": "awsui_container-body-size-large_xjuzf_j256c_825",
47
+ "container-arrow": "awsui_container-arrow_xjuzf_j256c_745",
48
+ "container-arrow-position-top-responsive": "awsui_container-arrow-position-top-responsive_xjuzf_j256c_875",
49
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_xjuzf_j256c_1",
50
+ "refresh": "awsui_refresh_xjuzf_j256c_1069",
51
+ "root": "awsui_root_xjuzf_j256c_1091",
52
+ "no-wrap": "awsui_no-wrap_xjuzf_j256c_1123",
53
+ "root-filtering-token": "awsui_root-filtering-token_xjuzf_j256c_1127",
54
+ "trigger": "awsui_trigger_xjuzf_j256c_1131",
55
+ "overflow-ellipsis": "awsui_overflow-ellipsis_xjuzf_j256c_1138",
56
+ "trigger-type-text-inline": "awsui_trigger-type-text-inline_xjuzf_j256c_1146",
57
+ "trigger-type-text": "awsui_trigger-type-text_xjuzf_j256c_1146",
58
+ "trigger-type-filtering-token": "awsui_trigger-type-filtering-token_xjuzf_j256c_1214",
59
+ "popover-inline-content": "awsui_popover-inline-content_xjuzf_j256c_1218",
60
+ "hover-area": "awsui_hover-area_xjuzf_j256c_1222"
59
61
  };
60
62
 
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { InternalPosition, Offset, PopoverProps } from './interfaces';
3
- export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trackRef, contentRef, allowScrollToFit, allowVerticalOverflow, preferredPosition, renderWithPortal, keepPosition, hideOnOverscroll, }: {
3
+ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, getTrack, contentRef, allowScrollToFit, allowVerticalOverflow, preferredPosition, renderWithPortal, keepPosition, hideOnOverscroll, minVisibleBlockSize, }: {
4
4
  popoverRef: React.RefObject<HTMLDivElement | null>;
5
5
  bodyRef: React.RefObject<HTMLDivElement | null>;
6
6
  arrowRef: React.RefObject<HTMLDivElement | null>;
7
- trackRef: React.RefObject<HTMLElement | SVGElement | null>;
7
+ getTrack: () => null | HTMLElement | SVGElement;
8
8
  contentRef: React.RefObject<HTMLDivElement | null>;
9
9
  allowScrollToFit?: boolean;
10
10
  allowVerticalOverflow?: boolean;
@@ -12,6 +12,7 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
12
12
  renderWithPortal?: boolean;
13
13
  keepPosition?: boolean;
14
14
  hideOnOverscroll?: boolean;
15
+ minVisibleBlockSize?: number;
15
16
  }): {
16
17
  updatePositionHandler: (onContentResize?: any) => void;
17
18
  popoverStyle: Partial<Offset>;
@@ -1 +1 @@
1
- {"version":3,"file":"use-popover-position.d.ts","sourceRoot":"","sources":["../../../src/popover/use-popover-position.ts"],"names":[],"mappings":"AAGA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAW7D,OAAO,EAAe,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAQ,MAAM,cAAc,CAAC;AAGzF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GACjB,EAAE;IACD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;IAC3D,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;;;;qDAOyC,IAAI;;EAqK7C"}
1
+ {"version":3,"file":"use-popover-position.d.ts","sourceRoot":"","sources":["../../../src/popover/use-popover-position.ts"],"names":[],"mappings":"AAGA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAW7D,OAAO,EAAe,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAQ,MAAM,cAAc,CAAC;AAGzF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,UAAU,EACV,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,GACpB,EAAE;IACD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;IACzC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;;;;qDAOyC,IAAI;;EA2K7C"}
@@ -6,7 +6,7 @@ import { getLogicalBoundingClientRect } from '@cloudscape-design/component-toolk
6
6
  import { findUpUntilMultiple, isContainingBlock } from '../internal/utils/dom';
7
7
  import { calculateScroll, getFirstScrollableParent, scrollRectangleIntoView, } from '../internal/utils/scrollable-containers';
8
8
  import { calculatePosition, getDimensions, getOffsetDimensions, isCenterOutside } from './utils/positions';
9
- export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trackRef, contentRef, allowScrollToFit, allowVerticalOverflow, preferredPosition, renderWithPortal, keepPosition, hideOnOverscroll, }) {
9
+ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, getTrack, contentRef, allowScrollToFit, allowVerticalOverflow, preferredPosition, renderWithPortal, keepPosition, hideOnOverscroll, minVisibleBlockSize, }) {
10
10
  const previousInternalPositionRef = useRef(null);
11
11
  const [popoverStyle, setPopoverStyle] = useState({});
12
12
  const [internalPosition, setInternalPosition] = useState(null);
@@ -16,7 +16,8 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
16
16
  const scrollableContainerRectRef = useRef(null);
17
17
  const updatePositionHandler = useCallback((onContentResize = false) => {
18
18
  var _a;
19
- if (!trackRef.current || !popoverRef.current || !bodyRef.current || !contentRef.current || !arrowRef.current) {
19
+ const track = getTrack();
20
+ if (!track || !popoverRef.current || !bodyRef.current || !contentRef.current || !arrowRef.current) {
20
21
  return;
21
22
  }
22
23
  // Get important elements
@@ -24,7 +25,6 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
24
25
  const body = bodyRef.current;
25
26
  const arrow = arrowRef.current;
26
27
  const document = popover.ownerDocument;
27
- const track = trackRef.current;
28
28
  // If the popover body isn't being rendered for whatever reason (e.g. "display: none" or JSDOM),
29
29
  // or track does not belong to the document - bail on calculating dimensions.
30
30
  const { offsetWidth, offsetHeight } = getOffsetDimensions(popover);
@@ -80,6 +80,7 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
80
80
  viewport: viewportRect,
81
81
  renderWithPortal,
82
82
  allowVerticalOverflow,
83
+ minVisibleBlockSize,
83
84
  });
84
85
  // Get the position of the popover relative to the containing block.
85
86
  const popoverOffset = toRelativePosition(rect, containingBlockRect);
@@ -109,13 +110,17 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
109
110
  const scrollableParent = getFirstScrollableParent(popover);
110
111
  scrollRectangleIntoView(rect, scrollableParent);
111
112
  }
112
- if (hideOnOverscroll && trackRef.current instanceof HTMLElement) {
113
- const scrollableContainer = getFirstScrollableParent(trackRef.current);
113
+ if (hideOnOverscroll && track instanceof HTMLElement) {
114
+ const scrollableContainer = getFirstScrollableParent(track);
114
115
  if (scrollableContainer) {
115
116
  scrollableContainerRectRef.current = getLogicalBoundingClientRect(scrollableContainer);
116
117
  }
117
118
  }
118
119
  positionHandlerRef.current = () => {
120
+ const track = getTrack();
121
+ if (!track) {
122
+ return;
123
+ }
119
124
  const trackRect = getLogicalBoundingClientRect(track);
120
125
  const newTrackOffset = toRelativePosition(trackRect, containingBlock ? getLogicalBoundingClientRect(containingBlock) : viewportRect);
121
126
  setPopoverStyle({
@@ -130,7 +135,7 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
130
135
  }
131
136
  };
132
137
  }, [
133
- trackRef,
138
+ getTrack,
134
139
  popoverRef,
135
140
  bodyRef,
136
141
  contentRef,
@@ -141,6 +146,7 @@ export default function usePopoverPosition({ popoverRef, bodyRef, arrowRef, trac
141
146
  allowVerticalOverflow,
142
147
  allowScrollToFit,
143
148
  hideOnOverscroll,
149
+ minVisibleBlockSize,
144
150
  ]);
145
151
  return { updatePositionHandler, popoverStyle, internalPosition, positionHandlerRef, isOverscrolling };
146
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-popover-position.js","sourceRoot":"","sources":["../../../src/popover/use-popover-position.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\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { nodeContains } from '@cloudscape-design/component-toolkit/dom';\nimport { getLogicalBoundingClientRect } from '@cloudscape-design/component-toolkit/internal';\n\nimport { findUpUntilMultiple, isContainingBlock } from '../internal/utils/dom';\nimport {\n calculateScroll,\n getFirstScrollableParent,\n scrollRectangleIntoView,\n} from '../internal/utils/scrollable-containers';\nimport { BoundingBox, InternalPosition, Offset, PopoverProps, Rect } from './interfaces';\nimport { calculatePosition, getDimensions, getOffsetDimensions, isCenterOutside } from './utils/positions';\n\nexport default function usePopoverPosition({\n popoverRef,\n bodyRef,\n arrowRef,\n trackRef,\n contentRef,\n allowScrollToFit,\n allowVerticalOverflow,\n preferredPosition,\n renderWithPortal,\n keepPosition,\n hideOnOverscroll,\n}: {\n popoverRef: React.RefObject<HTMLDivElement | null>;\n bodyRef: React.RefObject<HTMLDivElement | null>;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n trackRef: React.RefObject<HTMLElement | SVGElement | null>;\n contentRef: React.RefObject<HTMLDivElement | null>;\n allowScrollToFit?: boolean;\n allowVerticalOverflow?: boolean;\n preferredPosition: PopoverProps.Position;\n renderWithPortal?: boolean;\n keepPosition?: boolean;\n hideOnOverscroll?: boolean;\n}) {\n const previousInternalPositionRef = useRef<InternalPosition | null>(null);\n const [popoverStyle, setPopoverStyle] = useState<Partial<Offset>>({});\n const [internalPosition, setInternalPosition] = useState<InternalPosition | null>(null);\n const [isOverscrolling, setIsOverscrolling] = useState(false);\n\n // Store the handler in a ref so that it can still be replaced from outside of the listener closure.\n const positionHandlerRef = useRef<() => void>(() => {});\n\n const scrollableContainerRectRef = useRef<Rect | null>(null);\n\n const updatePositionHandler = useCallback(\n (onContentResize = false) => {\n if (!trackRef.current || !popoverRef.current || !bodyRef.current || !contentRef.current || !arrowRef.current) {\n return;\n }\n\n // Get important elements\n const popover = popoverRef.current;\n const body = bodyRef.current;\n const arrow = arrowRef.current;\n const document = popover.ownerDocument;\n const track = trackRef.current;\n\n // If the popover body isn't being rendered for whatever reason (e.g. \"display: none\" or JSDOM),\n // or track does not belong to the document - bail on calculating dimensions.\n const { offsetWidth, offsetHeight } = getOffsetDimensions(popover);\n if (offsetWidth === 0 || offsetHeight === 0 || !nodeContains(document.body, track)) {\n return;\n }\n\n // Imperatively move body off-screen to give it room to expand.\n // Not doing this in React because this recalculation should happen\n // in the span of a single frame without rerendering anything.\n const prevInsetBlockStart = popover.style.insetBlockStart;\n const prevInsetInlineStart = popover.style.insetInlineStart;\n\n popover.style.insetBlockStart = '0';\n popover.style.insetInlineStart = '0';\n // Imperatively remove body styles that can remain from the previous computation.\n body.style.maxBlockSize = '';\n body.style.overflowX = '';\n body.style.overflowY = '';\n\n // Get rects representing key elements\n // Use getComputedStyle for arrowRect to avoid modifications made by transform\n const viewportRect = getViewportRect(document.defaultView!);\n const trackRect = getLogicalBoundingClientRect(track);\n const arrowRect = getDimensions(arrow);\n const { containingBlock, boundary } = findUpUntilMultiple({\n startElement: popover,\n tests: {\n containingBlock: isContainingBlock,\n boundary: (element: HTMLElement) => isContainingBlock(element) || isBoundary(element),\n },\n });\n\n // Rectangle for the containing block, which provides the reference frame for the popover coordinates.\n const containingBlockRect = containingBlock ? getLogicalBoundingClientRect(containingBlock) : viewportRect;\n\n // Rectangle outside of which the popover should not be positioned, because it would be clipped.\n const boundaryRect = boundary ? getLogicalBoundingClientRect(boundary) : getDocumentRect(document);\n\n const bodyBorderWidth = getBorderWidth(body);\n const contentRect = getLogicalBoundingClientRect(contentRef.current);\n const contentBoundingBox = {\n inlineSize: contentRect.inlineSize + 2 * bodyBorderWidth,\n blockSize: contentRect.blockSize + 2 * bodyBorderWidth,\n };\n\n // When keepPosition is true and the recalculation was triggered by a resize of the popover content,\n // we maintain the previously defined internal position,\n // but we still call calculatePosition to know if the popover should be scrollable.\n const shouldKeepPosition = keepPosition && onContentResize && !!previousInternalPositionRef.current;\n const fixedInternalPosition = (shouldKeepPosition && previousInternalPositionRef.current) ?? undefined;\n\n // Calculate the arrow direction and viewport-relative position of the popover.\n const {\n scrollable,\n internalPosition: newInternalPosition,\n rect,\n } = calculatePosition({\n preferredPosition,\n fixedInternalPosition,\n trigger: trackRect,\n arrow: arrowRect,\n body: contentBoundingBox,\n container: boundaryRect,\n viewport: viewportRect,\n renderWithPortal,\n allowVerticalOverflow,\n });\n\n // Get the position of the popover relative to the containing block.\n const popoverOffset = toRelativePosition(rect, containingBlockRect);\n\n // Cache the distance between the trigger and the popover (which stays the same as you scroll),\n // and use that to recalculate the new popover position.\n const trackRelativeOffset = toRelativePosition(popoverOffset, toRelativePosition(trackRect, containingBlockRect));\n\n // Bring back the container to its original position to prevent any flashing.\n popover.style.insetBlockStart = prevInsetBlockStart;\n popover.style.insetInlineStart = prevInsetInlineStart;\n\n // Allow popover body to scroll if can't fit the popover into the container/viewport otherwise.\n if (scrollable) {\n body.style.maxBlockSize = rect.blockSize + 'px';\n body.style.overflowX = 'hidden';\n body.style.overflowY = 'auto';\n }\n\n // Remember the internal position in case we want to keep it later.\n previousInternalPositionRef.current = newInternalPosition;\n setInternalPosition(newInternalPosition);\n\n const shouldScroll = allowScrollToFit && !shouldKeepPosition;\n\n // Position the popover\n const insetBlockStart = shouldScroll\n ? popoverOffset.insetBlockStart + calculateScroll(rect)\n : popoverOffset.insetBlockStart;\n setPopoverStyle({ insetBlockStart, insetInlineStart: popoverOffset.insetInlineStart });\n\n // Scroll if necessary\n if (shouldScroll) {\n const scrollableParent = getFirstScrollableParent(popover);\n scrollRectangleIntoView(rect, scrollableParent);\n }\n\n if (hideOnOverscroll && trackRef.current instanceof HTMLElement) {\n const scrollableContainer = getFirstScrollableParent(trackRef.current);\n if (scrollableContainer) {\n scrollableContainerRectRef.current = getLogicalBoundingClientRect(scrollableContainer);\n }\n }\n\n positionHandlerRef.current = () => {\n const trackRect = getLogicalBoundingClientRect(track);\n\n const newTrackOffset = toRelativePosition(\n trackRect,\n containingBlock ? getLogicalBoundingClientRect(containingBlock) : viewportRect\n );\n\n setPopoverStyle({\n insetBlockStart: newTrackOffset.insetBlockStart + trackRelativeOffset.insetBlockStart,\n insetInlineStart: newTrackOffset.insetInlineStart + trackRelativeOffset.insetInlineStart,\n });\n\n if (hideOnOverscroll && scrollableContainerRectRef.current) {\n // Assuming the arrow tip is at the vertical center of the popover trigger.\n // This is good enough for disabled reason tooltip in select and multiselect.\n // Can be further refined to take the exact arrow position into account if hideOnOverscroll is to be used in other cases.\n setIsOverscrolling(isCenterOutside(trackRect, scrollableContainerRectRef.current));\n }\n };\n },\n [\n trackRef,\n popoverRef,\n bodyRef,\n contentRef,\n arrowRef,\n keepPosition,\n preferredPosition,\n renderWithPortal,\n allowVerticalOverflow,\n allowScrollToFit,\n hideOnOverscroll,\n ]\n );\n return { updatePositionHandler, popoverStyle, internalPosition, positionHandlerRef, isOverscrolling };\n}\n\nfunction getBorderWidth(element: HTMLElement) {\n return parseInt(getComputedStyle(element).borderWidth) || 0;\n}\n\n/**\n * Convert a viewport-relative offset to an element-relative offset.\n */\nfunction toRelativePosition(element: Offset, parent: Offset): Offset {\n return {\n insetBlockStart: element.insetBlockStart - parent.insetBlockStart,\n insetInlineStart: element.insetInlineStart - parent.insetInlineStart,\n };\n}\n\n/**\n * Get a BoundingBox that represents the visible viewport.\n */\nfunction getViewportRect(window: Window): BoundingBox {\n return {\n insetBlockStart: 0,\n insetInlineStart: 0,\n inlineSize: window.visualViewport?.width ?? window.innerWidth,\n blockSize: window.visualViewport?.height ?? window.innerHeight,\n };\n}\n\nfunction getDocumentRect(document: Document): BoundingBox {\n const { insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(document.documentElement);\n\n return {\n insetBlockStart,\n insetInlineStart,\n inlineSize: document.documentElement.scrollWidth,\n blockSize: document.documentElement.scrollHeight,\n };\n}\n\nfunction isBoundary(element: HTMLElement) {\n const computedStyle = getComputedStyle(element);\n return !!computedStyle.clipPath && computedStyle.clipPath !== 'none';\n}\n"]}
1
+ {"version":3,"file":"use-popover-position.js","sourceRoot":"","sources":["../../../src/popover/use-popover-position.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\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { nodeContains } from '@cloudscape-design/component-toolkit/dom';\nimport { getLogicalBoundingClientRect } from '@cloudscape-design/component-toolkit/internal';\n\nimport { findUpUntilMultiple, isContainingBlock } from '../internal/utils/dom';\nimport {\n calculateScroll,\n getFirstScrollableParent,\n scrollRectangleIntoView,\n} from '../internal/utils/scrollable-containers';\nimport { BoundingBox, InternalPosition, Offset, PopoverProps, Rect } from './interfaces';\nimport { calculatePosition, getDimensions, getOffsetDimensions, isCenterOutside } from './utils/positions';\n\nexport default function usePopoverPosition({\n popoverRef,\n bodyRef,\n arrowRef,\n getTrack,\n contentRef,\n allowScrollToFit,\n allowVerticalOverflow,\n preferredPosition,\n renderWithPortal,\n keepPosition,\n hideOnOverscroll,\n minVisibleBlockSize,\n}: {\n popoverRef: React.RefObject<HTMLDivElement | null>;\n bodyRef: React.RefObject<HTMLDivElement | null>;\n arrowRef: React.RefObject<HTMLDivElement | null>;\n getTrack: () => null | HTMLElement | SVGElement;\n contentRef: React.RefObject<HTMLDivElement | null>;\n allowScrollToFit?: boolean;\n allowVerticalOverflow?: boolean;\n preferredPosition: PopoverProps.Position;\n renderWithPortal?: boolean;\n keepPosition?: boolean;\n hideOnOverscroll?: boolean;\n minVisibleBlockSize?: number;\n}) {\n const previousInternalPositionRef = useRef<InternalPosition | null>(null);\n const [popoverStyle, setPopoverStyle] = useState<Partial<Offset>>({});\n const [internalPosition, setInternalPosition] = useState<InternalPosition | null>(null);\n const [isOverscrolling, setIsOverscrolling] = useState(false);\n\n // Store the handler in a ref so that it can still be replaced from outside of the listener closure.\n const positionHandlerRef = useRef<() => void>(() => {});\n\n const scrollableContainerRectRef = useRef<Rect | null>(null);\n\n const updatePositionHandler = useCallback(\n (onContentResize = false) => {\n const track = getTrack();\n if (!track || !popoverRef.current || !bodyRef.current || !contentRef.current || !arrowRef.current) {\n return;\n }\n\n // Get important elements\n const popover = popoverRef.current;\n const body = bodyRef.current;\n const arrow = arrowRef.current;\n const document = popover.ownerDocument;\n\n // If the popover body isn't being rendered for whatever reason (e.g. \"display: none\" or JSDOM),\n // or track does not belong to the document - bail on calculating dimensions.\n const { offsetWidth, offsetHeight } = getOffsetDimensions(popover);\n if (offsetWidth === 0 || offsetHeight === 0 || !nodeContains(document.body, track)) {\n return;\n }\n\n // Imperatively move body off-screen to give it room to expand.\n // Not doing this in React because this recalculation should happen\n // in the span of a single frame without rerendering anything.\n const prevInsetBlockStart = popover.style.insetBlockStart;\n const prevInsetInlineStart = popover.style.insetInlineStart;\n\n popover.style.insetBlockStart = '0';\n popover.style.insetInlineStart = '0';\n // Imperatively remove body styles that can remain from the previous computation.\n body.style.maxBlockSize = '';\n body.style.overflowX = '';\n body.style.overflowY = '';\n\n // Get rects representing key elements\n // Use getComputedStyle for arrowRect to avoid modifications made by transform\n const viewportRect = getViewportRect(document.defaultView!);\n const trackRect = getLogicalBoundingClientRect(track);\n const arrowRect = getDimensions(arrow);\n const { containingBlock, boundary } = findUpUntilMultiple({\n startElement: popover,\n tests: {\n containingBlock: isContainingBlock,\n boundary: (element: HTMLElement) => isContainingBlock(element) || isBoundary(element),\n },\n });\n\n // Rectangle for the containing block, which provides the reference frame for the popover coordinates.\n const containingBlockRect = containingBlock ? getLogicalBoundingClientRect(containingBlock) : viewportRect;\n\n // Rectangle outside of which the popover should not be positioned, because it would be clipped.\n const boundaryRect = boundary ? getLogicalBoundingClientRect(boundary) : getDocumentRect(document);\n\n const bodyBorderWidth = getBorderWidth(body);\n const contentRect = getLogicalBoundingClientRect(contentRef.current);\n const contentBoundingBox = {\n inlineSize: contentRect.inlineSize + 2 * bodyBorderWidth,\n blockSize: contentRect.blockSize + 2 * bodyBorderWidth,\n };\n\n // When keepPosition is true and the recalculation was triggered by a resize of the popover content,\n // we maintain the previously defined internal position,\n // but we still call calculatePosition to know if the popover should be scrollable.\n const shouldKeepPosition = keepPosition && onContentResize && !!previousInternalPositionRef.current;\n const fixedInternalPosition = (shouldKeepPosition && previousInternalPositionRef.current) ?? undefined;\n\n // Calculate the arrow direction and viewport-relative position of the popover.\n const {\n scrollable,\n internalPosition: newInternalPosition,\n rect,\n } = calculatePosition({\n preferredPosition,\n fixedInternalPosition,\n trigger: trackRect,\n arrow: arrowRect,\n body: contentBoundingBox,\n container: boundaryRect,\n viewport: viewportRect,\n renderWithPortal,\n allowVerticalOverflow,\n minVisibleBlockSize,\n });\n\n // Get the position of the popover relative to the containing block.\n const popoverOffset = toRelativePosition(rect, containingBlockRect);\n\n // Cache the distance between the trigger and the popover (which stays the same as you scroll),\n // and use that to recalculate the new popover position.\n const trackRelativeOffset = toRelativePosition(popoverOffset, toRelativePosition(trackRect, containingBlockRect));\n\n // Bring back the container to its original position to prevent any flashing.\n popover.style.insetBlockStart = prevInsetBlockStart;\n popover.style.insetInlineStart = prevInsetInlineStart;\n\n // Allow popover body to scroll if can't fit the popover into the container/viewport otherwise.\n if (scrollable) {\n body.style.maxBlockSize = rect.blockSize + 'px';\n body.style.overflowX = 'hidden';\n body.style.overflowY = 'auto';\n }\n\n // Remember the internal position in case we want to keep it later.\n previousInternalPositionRef.current = newInternalPosition;\n setInternalPosition(newInternalPosition);\n\n const shouldScroll = allowScrollToFit && !shouldKeepPosition;\n\n // Position the popover\n const insetBlockStart = shouldScroll\n ? popoverOffset.insetBlockStart + calculateScroll(rect)\n : popoverOffset.insetBlockStart;\n setPopoverStyle({ insetBlockStart, insetInlineStart: popoverOffset.insetInlineStart });\n\n // Scroll if necessary\n if (shouldScroll) {\n const scrollableParent = getFirstScrollableParent(popover);\n scrollRectangleIntoView(rect, scrollableParent);\n }\n\n if (hideOnOverscroll && track instanceof HTMLElement) {\n const scrollableContainer = getFirstScrollableParent(track);\n if (scrollableContainer) {\n scrollableContainerRectRef.current = getLogicalBoundingClientRect(scrollableContainer);\n }\n }\n\n positionHandlerRef.current = () => {\n const track = getTrack();\n if (!track) {\n return;\n }\n const trackRect = getLogicalBoundingClientRect(track);\n\n const newTrackOffset = toRelativePosition(\n trackRect,\n containingBlock ? getLogicalBoundingClientRect(containingBlock) : viewportRect\n );\n\n setPopoverStyle({\n insetBlockStart: newTrackOffset.insetBlockStart + trackRelativeOffset.insetBlockStart,\n insetInlineStart: newTrackOffset.insetInlineStart + trackRelativeOffset.insetInlineStart,\n });\n\n if (hideOnOverscroll && scrollableContainerRectRef.current) {\n // Assuming the arrow tip is at the vertical center of the popover trigger.\n // This is good enough for disabled reason tooltip in select and multiselect.\n // Can be further refined to take the exact arrow position into account if hideOnOverscroll is to be used in other cases.\n setIsOverscrolling(isCenterOutside(trackRect, scrollableContainerRectRef.current));\n }\n };\n },\n [\n getTrack,\n popoverRef,\n bodyRef,\n contentRef,\n arrowRef,\n keepPosition,\n preferredPosition,\n renderWithPortal,\n allowVerticalOverflow,\n allowScrollToFit,\n hideOnOverscroll,\n minVisibleBlockSize,\n ]\n );\n return { updatePositionHandler, popoverStyle, internalPosition, positionHandlerRef, isOverscrolling };\n}\n\nfunction getBorderWidth(element: HTMLElement) {\n return parseInt(getComputedStyle(element).borderWidth) || 0;\n}\n\n/**\n * Convert a viewport-relative offset to an element-relative offset.\n */\nfunction toRelativePosition(element: Offset, parent: Offset): Offset {\n return {\n insetBlockStart: element.insetBlockStart - parent.insetBlockStart,\n insetInlineStart: element.insetInlineStart - parent.insetInlineStart,\n };\n}\n\n/**\n * Get a BoundingBox that represents the visible viewport.\n */\nfunction getViewportRect(window: Window): BoundingBox {\n return {\n insetBlockStart: 0,\n insetInlineStart: 0,\n inlineSize: window.visualViewport?.width ?? window.innerWidth,\n blockSize: window.visualViewport?.height ?? window.innerHeight,\n };\n}\n\nfunction getDocumentRect(document: Document): BoundingBox {\n const { insetBlockStart, insetInlineStart } = getLogicalBoundingClientRect(document.documentElement);\n\n return {\n insetBlockStart,\n insetInlineStart,\n inlineSize: document.documentElement.scrollWidth,\n blockSize: document.documentElement.scrollHeight,\n };\n}\n\nfunction isBoundary(element: HTMLElement) {\n const computedStyle = getComputedStyle(element);\n return !!computedStyle.clipPath && computedStyle.clipPath !== 'none';\n}\n"]}
@@ -12,7 +12,7 @@ export declare function intersectRectangles(rectangles: BoundingBox[]): number |
12
12
  /**
13
13
  * A functions that returns the correct popover position based on screen dimensions.
14
14
  */
15
- export declare function calculatePosition({ preferredPosition, fixedInternalPosition, trigger, arrow, body, container, viewport, renderWithPortal, allowVerticalOverflow, }: {
15
+ export declare function calculatePosition({ preferredPosition, fixedInternalPosition, trigger, arrow, body, container, viewport, renderWithPortal, allowVerticalOverflow, minVisibleBlockSize, }: {
16
16
  preferredPosition: PopoverProps.Position;
17
17
  fixedInternalPosition?: InternalPosition;
18
18
  trigger: BoundingBox;
@@ -22,6 +22,7 @@ export declare function calculatePosition({ preferredPosition, fixedInternalPosi
22
22
  viewport: BoundingBox;
23
23
  renderWithPortal?: boolean;
24
24
  allowVerticalOverflow?: boolean;
25
+ minVisibleBlockSize?: number;
25
26
  }): CalculatedPosition;
26
27
  export declare function getOffsetDimensions(element: HTMLElement): {
27
28
  offsetHeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../../src/popover/utils/positions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9F,UAAU,kBAAkB;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,IAAI,EAAE,WAAW,CAAC;CACnB;AAUD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAiD9E,CAAC;AAqJF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAG5E;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EAER,gBAAgB,EAChB,qBAAqB,GACtB,EAAE;IACD,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;IACzC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,WAAW,CAAC;IAEtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,kBAAkB,CAoDrB;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW;;;EAEvD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW;;;EAMjD;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,WAKxD"}
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../../src/popover/utils/positions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9F,UAAU,kBAAkB;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,IAAI,EAAE,WAAW,CAAC;CACnB;AAUD,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAiD9E,CAAC;AAqJF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,IAAI,CAG5E;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,iBAAiB,EACjB,qBAAqB,EACrB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EAER,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,EAAE;IACD,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC;IACzC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,WAAW,CAAC;IAEtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,kBAAkB,CA0DrB;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW;;;EAEvD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW;;;EAMjD;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,WAKxD"}
@@ -191,7 +191,7 @@ export function intersectRectangles(rectangles) {
191
191
  */
192
192
  export function calculatePosition({ preferredPosition, fixedInternalPosition, trigger, arrow, body, container, viewport,
193
193
  // the popover is only bound by the viewport if it is rendered in a portal
194
- renderWithPortal, allowVerticalOverflow, }) {
194
+ renderWithPortal, allowVerticalOverflow, minVisibleBlockSize, }) {
195
195
  let bestOption = null;
196
196
  // If a fixed internal position is passed, only consider this one.
197
197
  const preferredInternalPositions = fixedInternalPosition
@@ -203,9 +203,15 @@ renderWithPortal, allowVerticalOverflow, }) {
203
203
  const visibleArea = renderWithPortal
204
204
  ? getIntersection([rect, viewport])
205
205
  : getIntersection([rect, viewport, container]);
206
- const fitsWithoutOverflow = visibleArea && visibleArea.inlineSize === body.inlineSize && visibleArea.blockSize === body.blockSize;
207
- if (fitsWithoutOverflow) {
208
- return { internalPosition, rect };
206
+ // When min visible block size is set, the popover is considered fitting the container if the available space
207
+ // is the same or larger than min allowed, even if it means the scrollbar is needed.
208
+ const fitsBlockSize = minVisibleBlockSize === undefined
209
+ ? visibleArea && visibleArea.blockSize === body.blockSize
210
+ : visibleArea && visibleArea.blockSize >= Math.min(body.blockSize, minVisibleBlockSize);
211
+ const fitsInlineSize = visibleArea && visibleArea.inlineSize === body.inlineSize;
212
+ if (fitsBlockSize && fitsInlineSize) {
213
+ const scrollable = visibleArea && visibleArea.blockSize < body.blockSize;
214
+ return { internalPosition, rect: scrollable ? fitIntoContainer(rect, viewport) : rect, scrollable };
209
215
  }
210
216
  const newOption = { rect, internalPosition, visibleArea };
211
217
  bestOption = getBestOption(newOption, bestOption);
@@ -1 +1 @@
1
- {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../../../src/popover/utils/positions.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 { BoundingBox, Dimensions, InternalPosition, PopoverProps, Rect } from '../interfaces';\n\n// A structure describing how the popover should be positioned\ninterface CalculatedPosition {\n scrollable?: boolean;\n internalPosition: InternalPosition;\n rect: BoundingBox;\n}\n\ninterface ElementGroup {\n body: Dimensions;\n trigger: BoundingBox;\n arrow: Dimensions;\n}\n\nconst ARROW_OFFSET = 12;\n\nexport const PRIORITY_MAPPING: Record<PopoverProps.Position, InternalPosition[]> = {\n top: [\n 'top-center',\n 'top-right',\n 'top-left',\n 'bottom-center',\n 'bottom-right',\n 'bottom-left',\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n ],\n bottom: [\n 'bottom-center',\n 'bottom-right',\n 'bottom-left',\n 'top-center',\n 'top-right',\n 'top-left',\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n ],\n left: [\n 'left-top',\n 'left-bottom',\n 'right-top',\n 'right-bottom',\n 'bottom-center',\n 'top-center',\n 'bottom-left',\n 'top-left',\n 'bottom-right',\n 'top-right',\n ],\n right: [\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n 'bottom-center',\n 'top-center',\n 'bottom-right',\n 'top-right',\n 'bottom-left',\n 'top-left',\n ],\n};\n\nconst RECTANGLE_CALCULATIONS: Record<InternalPosition, (r: ElementGroup) => BoundingBox> = {\n 'top-center': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - body.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'top-right': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - ARROW_OFFSET - arrow.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'top-left': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart:\n trigger.insetInlineStart + trigger.inlineSize / 2 + ARROW_OFFSET + arrow.inlineSize / 2 - body.inlineSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-center': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - body.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-right': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - ARROW_OFFSET - arrow.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-left': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart:\n trigger.insetInlineStart + trigger.inlineSize / 2 + ARROW_OFFSET + arrow.inlineSize / 2 - body.inlineSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'right-top': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize / 2 - ARROW_OFFSET - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize + arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'right-bottom': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart:\n trigger.insetBlockStart + trigger.blockSize / 2 - body.blockSize + ARROW_OFFSET + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize + arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'left-top': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize / 2 - ARROW_OFFSET - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart - body.inlineSize - arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'left-bottom': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart:\n trigger.insetBlockStart + trigger.blockSize / 2 - body.blockSize + ARROW_OFFSET + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart - body.inlineSize - arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n};\n\nfunction fitIntoContainer(inner: BoundingBox, outer: BoundingBox): BoundingBox {\n let { insetInlineStart, inlineSize, insetBlockStart, blockSize } = inner;\n\n // Adjust left boundary.\n if (insetInlineStart < outer.insetInlineStart) {\n inlineSize = insetInlineStart + inlineSize - outer.insetInlineStart;\n insetInlineStart = outer.insetInlineStart;\n }\n // Adjust right boundary.\n else if (insetInlineStart + inlineSize > outer.insetInlineStart + outer.inlineSize) {\n inlineSize = outer.insetInlineStart + outer.inlineSize - insetInlineStart;\n }\n // Adjust top boundary.\n if (insetBlockStart < outer.insetBlockStart) {\n blockSize = insetBlockStart + blockSize - outer.insetBlockStart;\n insetBlockStart = outer.insetBlockStart;\n }\n // Adjust bottom boundary.\n else if (insetBlockStart + blockSize > outer.insetBlockStart + outer.blockSize) {\n blockSize = outer.insetBlockStart + outer.blockSize - insetBlockStart;\n }\n\n return { insetInlineStart, inlineSize, insetBlockStart, blockSize };\n}\n\nfunction getTallestRect(rect1: BoundingBox, rect2: BoundingBox): BoundingBox {\n return rect1.blockSize >= rect2.blockSize ? rect1 : rect2;\n}\n\nfunction getIntersection(rectangles: BoundingBox[]): BoundingBox | null {\n let boundingBox: BoundingBox | null = null;\n for (const currentRect of rectangles) {\n if (!boundingBox) {\n boundingBox = currentRect;\n continue;\n }\n const insetInlineStart = Math.max(boundingBox.insetInlineStart, currentRect.insetInlineStart);\n const insetBlockStart = Math.max(boundingBox.insetBlockStart, currentRect.insetBlockStart);\n const insetInlineEnd = Math.min(\n boundingBox.insetInlineStart + boundingBox.inlineSize,\n currentRect.insetInlineStart + currentRect.inlineSize\n );\n const insetBlockEnd = Math.min(\n boundingBox.insetBlockStart + boundingBox.blockSize,\n currentRect.insetBlockStart + currentRect.blockSize\n );\n\n if (insetInlineEnd < insetInlineStart || insetBlockEnd < insetBlockStart) {\n return null;\n }\n boundingBox = {\n insetInlineStart,\n insetBlockStart,\n inlineSize: insetInlineEnd - insetInlineStart,\n blockSize: insetBlockEnd - insetBlockStart,\n };\n }\n return boundingBox;\n}\n\n/**\n * Returns the area of the intersection of passed in rectangles or a null, if there is no intersection\n */\nexport function intersectRectangles(rectangles: BoundingBox[]): number | null {\n const boundingBox: BoundingBox | null = getIntersection(rectangles);\n return boundingBox && boundingBox.blockSize * boundingBox.inlineSize;\n}\n\ntype CandidatePosition = CalculatedPosition & { visibleArea: BoundingBox | null };\n\n/**\n * A functions that returns the correct popover position based on screen dimensions.\n */\nexport function calculatePosition({\n preferredPosition,\n fixedInternalPosition,\n trigger,\n arrow,\n body,\n container,\n viewport,\n // the popover is only bound by the viewport if it is rendered in a portal\n renderWithPortal,\n allowVerticalOverflow,\n}: {\n preferredPosition: PopoverProps.Position;\n fixedInternalPosition?: InternalPosition;\n trigger: BoundingBox;\n arrow: Dimensions;\n body: Dimensions;\n container: BoundingBox;\n viewport: BoundingBox;\n // the popover is only bound by the viewport if it is rendered in a portal\n renderWithPortal?: boolean;\n allowVerticalOverflow?: boolean;\n}): CalculatedPosition {\n let bestOption: CandidatePosition | null = null;\n\n // If a fixed internal position is passed, only consider this one.\n const preferredInternalPositions = fixedInternalPosition\n ? [fixedInternalPosition]\n : PRIORITY_MAPPING[preferredPosition];\n\n // Attempt to position the popover based on the priority list for this position.\n for (const internalPosition of preferredInternalPositions) {\n const rect = RECTANGLE_CALCULATIONS[internalPosition]({ body, trigger, arrow });\n const visibleArea = renderWithPortal\n ? getIntersection([rect, viewport])\n : getIntersection([rect, viewport, container]);\n\n const fitsWithoutOverflow =\n visibleArea && visibleArea.inlineSize === body.inlineSize && visibleArea.blockSize === body.blockSize;\n\n if (fitsWithoutOverflow) {\n return { internalPosition, rect };\n }\n\n const newOption = { rect, internalPosition, visibleArea };\n bestOption = getBestOption(newOption, bestOption);\n }\n\n // Use best possible placement.\n const internalPosition = bestOption?.internalPosition || 'right-top';\n // Get default rect for that placement.\n const rect = RECTANGLE_CALCULATIONS[internalPosition]({ body, trigger, arrow });\n\n // Get largest possible rect that fits into the viewport or container.\n\n // We allow the popover to overflow the viewport if allowVerticalOverflow is true _and_ the popover will be anchored to the top or the bottom.\n // If it is anchored to the right or left, we consider that it should have enough vertical space so that applying scroll to it is a better option.\n const tallestBoundingContainer = getTallestRect(viewport, container);\n const boundingContainer =\n allowVerticalOverflow && isTopOrBottom(internalPosition)\n ? {\n insetBlockStart: tallestBoundingContainer.insetBlockStart,\n blockSize: tallestBoundingContainer.blockSize,\n insetInlineStart: viewport.insetInlineStart,\n inlineSize: viewport.inlineSize,\n }\n : viewport;\n\n const optimizedRect = fitIntoContainer(rect, boundingContainer);\n\n // If largest possible rect is shorter than original - set body scroll.\n const scrollable = optimizedRect.blockSize < rect.blockSize;\n\n return { internalPosition, rect: optimizedRect, scrollable };\n}\n\nfunction getBestOption(option1: CandidatePosition, option2: CandidatePosition | null) {\n // Within calculatePosition, the only case where option2 will not be defined will be in the first call.\n // The only case where the visibleArea of an option will be null is when the popover is totally outside of the viewport.\n if (!option2?.visibleArea) {\n return option1;\n }\n if (!option1.visibleArea) {\n return option2;\n }\n // Only if none of the two options overflows horizontally, choose the best based on the visible height.\n if (option1.visibleArea.inlineSize === option2.visibleArea.inlineSize) {\n return option1.visibleArea.blockSize > option2.visibleArea.blockSize ? option1 : option2;\n }\n // Otherwise, choose the option that is less cut off horizontally.\n return option1.visibleArea.inlineSize > option2.visibleArea.inlineSize ? option1 : option2;\n}\n\nexport function getOffsetDimensions(element: HTMLElement) {\n return { offsetHeight: element.offsetHeight, offsetWidth: element.offsetWidth };\n}\n\nexport function getDimensions(element: HTMLElement) {\n const computedStyle = getComputedStyle(element);\n return {\n inlineSize: parseFloat(computedStyle.inlineSize),\n blockSize: parseFloat(computedStyle.blockSize),\n };\n}\n\nfunction isTopOrBottom(internalPosition: InternalPosition) {\n return ['top', 'bottom'].includes(internalPosition.split('-')[0]);\n}\n\nexport function isCenterOutside(child: Rect, parent: Rect) {\n const childCenter = child.insetBlockStart + child.blockSize / 2;\n const overflowsBlockStart = childCenter < parent.insetBlockStart;\n const overflowsBlockEnd = childCenter > parent.insetBlockEnd;\n return overflowsBlockStart || overflowsBlockEnd;\n}\n"]}
1
+ {"version":3,"file":"positions.js","sourceRoot":"","sources":["../../../../src/popover/utils/positions.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 { BoundingBox, Dimensions, InternalPosition, PopoverProps, Rect } from '../interfaces';\n\n// A structure describing how the popover should be positioned\ninterface CalculatedPosition {\n scrollable?: boolean;\n internalPosition: InternalPosition;\n rect: BoundingBox;\n}\n\ninterface ElementGroup {\n body: Dimensions;\n trigger: BoundingBox;\n arrow: Dimensions;\n}\n\nconst ARROW_OFFSET = 12;\n\nexport const PRIORITY_MAPPING: Record<PopoverProps.Position, InternalPosition[]> = {\n top: [\n 'top-center',\n 'top-right',\n 'top-left',\n 'bottom-center',\n 'bottom-right',\n 'bottom-left',\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n ],\n bottom: [\n 'bottom-center',\n 'bottom-right',\n 'bottom-left',\n 'top-center',\n 'top-right',\n 'top-left',\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n ],\n left: [\n 'left-top',\n 'left-bottom',\n 'right-top',\n 'right-bottom',\n 'bottom-center',\n 'top-center',\n 'bottom-left',\n 'top-left',\n 'bottom-right',\n 'top-right',\n ],\n right: [\n 'right-top',\n 'right-bottom',\n 'left-top',\n 'left-bottom',\n 'bottom-center',\n 'top-center',\n 'bottom-right',\n 'top-right',\n 'bottom-left',\n 'top-left',\n ],\n};\n\nconst RECTANGLE_CALCULATIONS: Record<InternalPosition, (r: ElementGroup) => BoundingBox> = {\n 'top-center': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - body.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'top-right': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - ARROW_OFFSET - arrow.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'top-left': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart - body.blockSize - arrow.blockSize,\n insetInlineStart:\n trigger.insetInlineStart + trigger.inlineSize / 2 + ARROW_OFFSET + arrow.inlineSize / 2 - body.inlineSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-center': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - body.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-right': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize / 2 - ARROW_OFFSET - arrow.inlineSize / 2,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'bottom-left': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize + arrow.blockSize,\n insetInlineStart:\n trigger.insetInlineStart + trigger.inlineSize / 2 + ARROW_OFFSET + arrow.inlineSize / 2 - body.inlineSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'right-top': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize / 2 - ARROW_OFFSET - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize + arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'right-bottom': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart:\n trigger.insetBlockStart + trigger.blockSize / 2 - body.blockSize + ARROW_OFFSET + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart + trigger.inlineSize + arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'left-top': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart: trigger.insetBlockStart + trigger.blockSize / 2 - ARROW_OFFSET - arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart - body.inlineSize - arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n 'left-bottom': ({ body, trigger, arrow }) => {\n return {\n insetBlockStart:\n trigger.insetBlockStart + trigger.blockSize / 2 - body.blockSize + ARROW_OFFSET + arrow.blockSize,\n insetInlineStart: trigger.insetInlineStart - body.inlineSize - arrow.blockSize,\n inlineSize: body.inlineSize,\n blockSize: body.blockSize,\n };\n },\n};\n\nfunction fitIntoContainer(inner: BoundingBox, outer: BoundingBox): BoundingBox {\n let { insetInlineStart, inlineSize, insetBlockStart, blockSize } = inner;\n\n // Adjust left boundary.\n if (insetInlineStart < outer.insetInlineStart) {\n inlineSize = insetInlineStart + inlineSize - outer.insetInlineStart;\n insetInlineStart = outer.insetInlineStart;\n }\n // Adjust right boundary.\n else if (insetInlineStart + inlineSize > outer.insetInlineStart + outer.inlineSize) {\n inlineSize = outer.insetInlineStart + outer.inlineSize - insetInlineStart;\n }\n // Adjust top boundary.\n if (insetBlockStart < outer.insetBlockStart) {\n blockSize = insetBlockStart + blockSize - outer.insetBlockStart;\n insetBlockStart = outer.insetBlockStart;\n }\n // Adjust bottom boundary.\n else if (insetBlockStart + blockSize > outer.insetBlockStart + outer.blockSize) {\n blockSize = outer.insetBlockStart + outer.blockSize - insetBlockStart;\n }\n\n return { insetInlineStart, inlineSize, insetBlockStart, blockSize };\n}\n\nfunction getTallestRect(rect1: BoundingBox, rect2: BoundingBox): BoundingBox {\n return rect1.blockSize >= rect2.blockSize ? rect1 : rect2;\n}\n\nfunction getIntersection(rectangles: BoundingBox[]): BoundingBox | null {\n let boundingBox: BoundingBox | null = null;\n for (const currentRect of rectangles) {\n if (!boundingBox) {\n boundingBox = currentRect;\n continue;\n }\n const insetInlineStart = Math.max(boundingBox.insetInlineStart, currentRect.insetInlineStart);\n const insetBlockStart = Math.max(boundingBox.insetBlockStart, currentRect.insetBlockStart);\n const insetInlineEnd = Math.min(\n boundingBox.insetInlineStart + boundingBox.inlineSize,\n currentRect.insetInlineStart + currentRect.inlineSize\n );\n const insetBlockEnd = Math.min(\n boundingBox.insetBlockStart + boundingBox.blockSize,\n currentRect.insetBlockStart + currentRect.blockSize\n );\n\n if (insetInlineEnd < insetInlineStart || insetBlockEnd < insetBlockStart) {\n return null;\n }\n boundingBox = {\n insetInlineStart,\n insetBlockStart,\n inlineSize: insetInlineEnd - insetInlineStart,\n blockSize: insetBlockEnd - insetBlockStart,\n };\n }\n return boundingBox;\n}\n\n/**\n * Returns the area of the intersection of passed in rectangles or a null, if there is no intersection\n */\nexport function intersectRectangles(rectangles: BoundingBox[]): number | null {\n const boundingBox: BoundingBox | null = getIntersection(rectangles);\n return boundingBox && boundingBox.blockSize * boundingBox.inlineSize;\n}\n\ntype CandidatePosition = CalculatedPosition & { visibleArea: BoundingBox | null };\n\n/**\n * A functions that returns the correct popover position based on screen dimensions.\n */\nexport function calculatePosition({\n preferredPosition,\n fixedInternalPosition,\n trigger,\n arrow,\n body,\n container,\n viewport,\n // the popover is only bound by the viewport if it is rendered in a portal\n renderWithPortal,\n allowVerticalOverflow,\n minVisibleBlockSize,\n}: {\n preferredPosition: PopoverProps.Position;\n fixedInternalPosition?: InternalPosition;\n trigger: BoundingBox;\n arrow: Dimensions;\n body: Dimensions;\n container: BoundingBox;\n viewport: BoundingBox;\n // the popover is only bound by the viewport if it is rendered in a portal\n renderWithPortal?: boolean;\n allowVerticalOverflow?: boolean;\n minVisibleBlockSize?: number;\n}): CalculatedPosition {\n let bestOption: CandidatePosition | null = null;\n\n // If a fixed internal position is passed, only consider this one.\n const preferredInternalPositions = fixedInternalPosition\n ? [fixedInternalPosition]\n : PRIORITY_MAPPING[preferredPosition];\n\n // Attempt to position the popover based on the priority list for this position.\n for (const internalPosition of preferredInternalPositions) {\n const rect = RECTANGLE_CALCULATIONS[internalPosition]({ body, trigger, arrow });\n const visibleArea = renderWithPortal\n ? getIntersection([rect, viewport])\n : getIntersection([rect, viewport, container]);\n\n // When min visible block size is set, the popover is considered fitting the container if the available space\n // is the same or larger than min allowed, even if it means the scrollbar is needed.\n const fitsBlockSize =\n minVisibleBlockSize === undefined\n ? visibleArea && visibleArea.blockSize === body.blockSize\n : visibleArea && visibleArea.blockSize >= Math.min(body.blockSize, minVisibleBlockSize);\n const fitsInlineSize = visibleArea && visibleArea.inlineSize === body.inlineSize;\n\n if (fitsBlockSize && fitsInlineSize) {\n const scrollable = visibleArea && visibleArea.blockSize < body.blockSize;\n return { internalPosition, rect: scrollable ? fitIntoContainer(rect, viewport) : rect, scrollable };\n }\n\n const newOption = { rect, internalPosition, visibleArea };\n bestOption = getBestOption(newOption, bestOption);\n }\n\n // Use best possible placement.\n const internalPosition = bestOption?.internalPosition || 'right-top';\n // Get default rect for that placement.\n const rect = RECTANGLE_CALCULATIONS[internalPosition]({ body, trigger, arrow });\n\n // Get largest possible rect that fits into the viewport or container.\n\n // We allow the popover to overflow the viewport if allowVerticalOverflow is true _and_ the popover will be anchored to the top or the bottom.\n // If it is anchored to the right or left, we consider that it should have enough vertical space so that applying scroll to it is a better option.\n const tallestBoundingContainer = getTallestRect(viewport, container);\n const boundingContainer =\n allowVerticalOverflow && isTopOrBottom(internalPosition)\n ? {\n insetBlockStart: tallestBoundingContainer.insetBlockStart,\n blockSize: tallestBoundingContainer.blockSize,\n insetInlineStart: viewport.insetInlineStart,\n inlineSize: viewport.inlineSize,\n }\n : viewport;\n\n const optimizedRect = fitIntoContainer(rect, boundingContainer);\n\n // If largest possible rect is shorter than original - set body scroll.\n const scrollable = optimizedRect.blockSize < rect.blockSize;\n\n return { internalPosition, rect: optimizedRect, scrollable };\n}\n\nfunction getBestOption(option1: CandidatePosition, option2: CandidatePosition | null) {\n // Within calculatePosition, the only case where option2 will not be defined will be in the first call.\n // The only case where the visibleArea of an option will be null is when the popover is totally outside of the viewport.\n if (!option2?.visibleArea) {\n return option1;\n }\n if (!option1.visibleArea) {\n return option2;\n }\n // Only if none of the two options overflows horizontally, choose the best based on the visible height.\n if (option1.visibleArea.inlineSize === option2.visibleArea.inlineSize) {\n return option1.visibleArea.blockSize > option2.visibleArea.blockSize ? option1 : option2;\n }\n // Otherwise, choose the option that is less cut off horizontally.\n return option1.visibleArea.inlineSize > option2.visibleArea.inlineSize ? option1 : option2;\n}\n\nexport function getOffsetDimensions(element: HTMLElement) {\n return { offsetHeight: element.offsetHeight, offsetWidth: element.offsetWidth };\n}\n\nexport function getDimensions(element: HTMLElement) {\n const computedStyle = getComputedStyle(element);\n return {\n inlineSize: parseFloat(computedStyle.inlineSize),\n blockSize: parseFloat(computedStyle.blockSize),\n };\n}\n\nfunction isTopOrBottom(internalPosition: InternalPosition) {\n return ['top', 'bottom'].includes(internalPosition.split('-')[0]);\n}\n\nexport function isCenterOutside(child: Rect, parent: Rect) {\n const childCenter = child.insetBlockStart + child.blockSize / 2;\n const overflowsBlockStart = childCenter < parent.insetBlockStart;\n const overflowsBlockEnd = childCenter > parent.insetBlockEnd;\n return overflowsBlockStart || overflowsBlockEnd;\n}\n"]}
@@ -1,24 +1,24 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "progress": "awsui_progress_11huc_l3r1y_361",
5
- "result-state": "awsui_result-state_11huc_l3r1y_375",
6
- "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_11huc_l3r1y_1",
7
- "root": "awsui_root_11huc_l3r1y_397",
8
- "with-result-button": "awsui_with-result-button_11huc_l3r1y_429",
9
- "result-text": "awsui_result-text_11huc_l3r1y_433",
10
- "result-container-error": "awsui_result-container-error_11huc_l3r1y_437",
11
- "result-container-success": "awsui_result-container-success_11huc_l3r1y_437",
12
- "result-button": "awsui_result-button_11huc_l3r1y_441",
13
- "word-wrap": "awsui_word-wrap_11huc_l3r1y_447",
14
- "label-flash": "awsui_label-flash_11huc_l3r1y_452",
15
- "label-key-value": "awsui_label-key-value_11huc_l3r1y_456",
16
- "flash": "awsui_flash_11huc_l3r1y_464",
17
- "progress-container": "awsui_progress-container_11huc_l3r1y_468",
18
- "percentage-container": "awsui_percentage-container_11huc_l3r1y_475",
19
- "percentage": "awsui_percentage_11huc_l3r1y_475",
20
- "complete": "awsui_complete_11huc_l3r1y_521",
21
- "progress-in-flash": "awsui_progress-in-flash_11huc_l3r1y_534",
22
- "additional-info": "awsui_additional-info_11huc_l3r1y_547"
4
+ "progress": "awsui_progress_11huc_110cx_361",
5
+ "result-state": "awsui_result-state_11huc_110cx_375",
6
+ "awsui-motion-fade-in": "awsui_awsui-motion-fade-in_11huc_110cx_1",
7
+ "root": "awsui_root_11huc_110cx_397",
8
+ "with-result-button": "awsui_with-result-button_11huc_110cx_429",
9
+ "result-text": "awsui_result-text_11huc_110cx_433",
10
+ "result-container-error": "awsui_result-container-error_11huc_110cx_437",
11
+ "result-container-success": "awsui_result-container-success_11huc_110cx_437",
12
+ "result-button": "awsui_result-button_11huc_110cx_441",
13
+ "word-wrap": "awsui_word-wrap_11huc_110cx_447",
14
+ "label-flash": "awsui_label-flash_11huc_110cx_452",
15
+ "label-key-value": "awsui_label-key-value_11huc_110cx_456",
16
+ "flash": "awsui_flash_11huc_110cx_464",
17
+ "progress-container": "awsui_progress-container_11huc_110cx_468",
18
+ "percentage-container": "awsui_percentage-container_11huc_110cx_475",
19
+ "percentage": "awsui_percentage_11huc_110cx_475",
20
+ "complete": "awsui_complete_11huc_110cx_521",
21
+ "progress-in-flash": "awsui_progress-in-flash_11huc_110cx_534",
22
+ "additional-info": "awsui_additional-info_11huc_110cx_547"
23
23
  };
24
24