@amboss/design-system 1.9.1 → 1.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/build/cjs/build-tokens/_breakpoints.json.js +7 -0
  2. package/build/cjs/build-tokens/_icon_sizes_map.json.js +5 -0
  3. package/build/cjs/build-tokens/assets/icons.json.js +76 -0
  4. package/build/cjs/build-tokens/assets/icons16.json.js +80 -0
  5. package/build/cjs/build-tokens/assets/logo.json.js +7 -0
  6. package/build/cjs/build-tokens/visualConfig.js +1464 -0
  7. package/build/cjs/src/components/Badge/Badge.js +62 -0
  8. package/build/cjs/src/components/Box/Box.js +88 -0
  9. package/build/cjs/src/components/Button/Button.js +246 -0
  10. package/build/cjs/src/components/Callout/Callout.js +86 -0
  11. package/build/cjs/src/components/Card/Card.js +68 -0
  12. package/build/cjs/src/components/Card/CardBox.js +22 -0
  13. package/build/cjs/src/components/Card/CardHeader/CardHeader.js +59 -0
  14. package/build/cjs/src/components/Collapsible/Collapsible.js +115 -0
  15. package/build/cjs/src/components/Column/Columns.js +145 -0
  16. package/build/cjs/src/components/Container/Container.js +55 -0
  17. package/build/cjs/src/components/Divider/Divider.js +67 -0
  18. package/build/cjs/src/components/DropdownMenu/DropdownMenu.js +226 -0
  19. package/build/cjs/src/components/DropdownMenu/MenuItem.js +102 -0
  20. package/build/cjs/src/components/Form/Checkbox/Checkbox.js +146 -0
  21. package/build/cjs/src/components/Form/FormErrorMessages/FormErrorMessages.js +26 -0
  22. package/build/cjs/src/components/Form/FormField/FormField.js +56 -0
  23. package/build/cjs/src/components/Form/FormFieldGroup/FormFieldGroup.js +54 -0
  24. package/build/cjs/src/components/Form/FormLabelText/FormLabelText.js +41 -0
  25. package/build/cjs/src/components/Form/Input/Input.js +181 -0
  26. package/build/cjs/src/components/Form/PasswordInput/PasswordInput.js +224 -0
  27. package/build/cjs/src/components/Form/Radio/Radio.js +137 -0
  28. package/build/cjs/src/components/Form/RadioButton/RadioButton.js +137 -0
  29. package/build/cjs/src/components/Form/Select/Select.js +287 -0
  30. package/build/cjs/src/components/Form/Textarea/Textarea.js +89 -0
  31. package/build/cjs/src/components/Form/Toggle/Toggle.js +178 -0
  32. package/build/cjs/src/components/Form/ToggleButton/ToggleButton.js +142 -0
  33. package/build/cjs/src/components/Icon/Icon.js +91 -0
  34. package/build/cjs/src/components/Inline/Inline.js +110 -0
  35. package/build/cjs/src/components/Link/Link.js +78 -0
  36. package/build/cjs/src/components/Logo/Logo.js +43 -0
  37. package/build/cjs/src/components/MediaItem/MediaItem.js +124 -0
  38. package/build/cjs/src/components/MediaViewerBar/MediaViewerBar.js +72 -0
  39. package/build/cjs/src/components/Notification/Notification.js +106 -0
  40. package/build/cjs/src/components/Patterns/ButtonGroup/ButtonGroup.js +43 -0
  41. package/build/cjs/src/components/Patterns/Modal/Modal.js +220 -0
  42. package/build/cjs/src/components/PictogramButton/PictogramButton.js +118 -0
  43. package/build/cjs/src/components/Portal/Portal.js +22 -0
  44. package/build/cjs/src/components/ProgressBar/ProgressBar.js +38 -0
  45. package/build/cjs/src/components/RoundButton/RoundButton.js +116 -0
  46. package/build/cjs/src/components/SearchResult/SearchResult.js +177 -0
  47. package/build/cjs/src/components/SegmentedProgressBar/SegmentedProgressBar.js +107 -0
  48. package/build/cjs/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +42 -0
  49. package/build/cjs/src/components/Stack/Stack.js +77 -0
  50. package/build/cjs/src/components/SubThemeProvider/SubThemeProvider.js +54 -0
  51. package/build/cjs/src/components/Tabs/Tabs.js +132 -0
  52. package/build/cjs/src/components/Typography/Header/Header.js +114 -0
  53. package/build/cjs/src/components/Typography/StyledText/StyledText.js +167 -0
  54. package/build/cjs/src/components/Typography/Text/Text.js +61 -0
  55. package/build/cjs/src/components/Typography/TextClamped/TextClamped.js +53 -0
  56. package/build/cjs/src/components/VirtualScrollList/VirtualScrollList.js +115 -0
  57. package/build/cjs/src/components/VirtualScrollList/VirtualScrollListReducer.js +131 -0
  58. package/build/cjs/src/index.js +120 -0
  59. package/build/cjs/src/shared/flattenChildren.js +33 -0
  60. package/build/cjs/src/shared/informDeprecation.js +12 -0
  61. package/build/cjs/src/shared/mediaQueries.js +68 -0
  62. package/build/cjs/src/shared/useAutoPosition.js +42 -0
  63. package/build/cjs/src/shared/useDocument.js +7 -0
  64. package/build/cjs/src/shared/useHover.js +26 -0
  65. package/build/cjs/src/shared/useKeyboard.js +43 -0
  66. package/build/cjs/src/shared/useOnEscapePress.js +52 -0
  67. package/build/cjs/src/shared/useOutsideClick.js +33 -0
  68. package/build/cjs/src/shared/useWindow.js +7 -0
  69. package/build/esm/build-tokens/_breakpoints.json.js +4 -0
  70. package/build/esm/build-tokens/_breakpoints.json.js.map +1 -0
  71. package/build/esm/build-tokens/_icon_sizes_map.json.js +4 -0
  72. package/build/esm/build-tokens/_icon_sizes_map.json.js.map +1 -0
  73. package/build/esm/build-tokens/assets/icons.json.js +4 -0
  74. package/build/esm/build-tokens/assets/icons.json.js.map +1 -0
  75. package/build/esm/build-tokens/assets/icons16.json.js +4 -0
  76. package/build/esm/build-tokens/assets/icons16.json.js.map +1 -0
  77. package/build/esm/build-tokens/assets/logo.json.js +4 -0
  78. package/build/esm/build-tokens/assets/logo.json.js.map +1 -0
  79. package/build/esm/build-tokens/visualConfig.js +1463 -0
  80. package/build/esm/build-tokens/visualConfig.js.map +1 -0
  81. package/build/esm/src/components/Badge/Badge.js +56 -0
  82. package/build/esm/src/components/Badge/Badge.js.map +1 -0
  83. package/build/esm/src/components/Box/Box.js +81 -0
  84. package/build/esm/src/components/Box/Box.js.map +1 -0
  85. package/build/esm/src/components/Button/Button.js +238 -0
  86. package/build/esm/src/components/Button/Button.js.map +1 -0
  87. package/build/esm/src/components/Callout/Callout.js +80 -0
  88. package/build/esm/src/components/Callout/Callout.js.map +1 -0
  89. package/build/esm/src/components/Card/Card.js +62 -0
  90. package/build/esm/src/components/Card/Card.js.map +1 -0
  91. package/build/esm/src/components/Card/CardBox.js +17 -0
  92. package/build/esm/src/components/Card/CardBox.js.map +1 -0
  93. package/build/esm/src/components/Card/CardHeader/CardHeader.js +52 -0
  94. package/build/esm/src/components/Card/CardHeader/CardHeader.js.map +1 -0
  95. package/build/esm/src/components/Collapsible/Collapsible.js +107 -0
  96. package/build/esm/src/components/Collapsible/Collapsible.js.map +1 -0
  97. package/build/esm/src/components/Column/Columns.js +139 -0
  98. package/build/esm/src/components/Column/Columns.js.map +1 -0
  99. package/build/esm/src/components/Container/Container.js +49 -0
  100. package/build/esm/src/components/Container/Container.js.map +1 -0
  101. package/build/esm/src/components/Divider/Divider.js +61 -0
  102. package/build/esm/src/components/Divider/Divider.js.map +1 -0
  103. package/build/esm/src/components/DropdownMenu/DropdownMenu.js +220 -0
  104. package/build/esm/src/components/DropdownMenu/DropdownMenu.js.map +1 -0
  105. package/build/esm/src/components/DropdownMenu/MenuItem.js +96 -0
  106. package/build/esm/src/components/DropdownMenu/MenuItem.js.map +1 -0
  107. package/build/esm/src/components/Form/Checkbox/Checkbox.js +139 -0
  108. package/build/esm/src/components/Form/Checkbox/Checkbox.js.map +1 -0
  109. package/build/esm/src/components/Form/FormErrorMessages/FormErrorMessages.js +21 -0
  110. package/build/esm/src/components/Form/FormErrorMessages/FormErrorMessages.js.map +1 -0
  111. package/build/esm/src/components/Form/FormField/FormField.js +50 -0
  112. package/build/esm/src/components/Form/FormField/FormField.js.map +1 -0
  113. package/build/esm/src/components/Form/FormFieldGroup/FormFieldGroup.js +48 -0
  114. package/build/esm/src/components/Form/FormFieldGroup/FormFieldGroup.js.map +1 -0
  115. package/build/esm/src/components/Form/FormLabelText/FormLabelText.js +35 -0
  116. package/build/esm/src/components/Form/FormLabelText/FormLabelText.js.map +1 -0
  117. package/build/esm/src/components/Form/Input/Input.js +174 -0
  118. package/build/esm/src/components/Form/Input/Input.js.map +1 -0
  119. package/build/esm/src/components/Form/PasswordInput/PasswordInput.js +217 -0
  120. package/build/esm/src/components/Form/PasswordInput/PasswordInput.js.map +1 -0
  121. package/build/esm/src/components/Form/Radio/Radio.js +130 -0
  122. package/build/esm/src/components/Form/Radio/Radio.js.map +1 -0
  123. package/build/esm/src/components/Form/RadioButton/RadioButton.js +130 -0
  124. package/build/esm/src/components/Form/RadioButton/RadioButton.js.map +1 -0
  125. package/build/esm/src/components/Form/Select/Select.js +281 -0
  126. package/build/esm/src/components/Form/Select/Select.js.map +1 -0
  127. package/build/esm/src/components/Form/Textarea/Textarea.js +83 -0
  128. package/build/esm/src/components/Form/Textarea/Textarea.js.map +1 -0
  129. package/build/esm/src/components/Form/Toggle/Toggle.js +171 -0
  130. package/build/esm/src/components/Form/Toggle/Toggle.js.map +1 -0
  131. package/build/esm/src/components/Form/ToggleButton/ToggleButton.js +135 -0
  132. package/build/esm/src/components/Form/ToggleButton/ToggleButton.js.map +1 -0
  133. package/build/esm/src/components/Icon/Icon.js +85 -0
  134. package/build/esm/src/components/Icon/Icon.js.map +1 -0
  135. package/build/esm/src/components/Inline/Inline.js +104 -0
  136. package/build/esm/src/components/Inline/Inline.js.map +1 -0
  137. package/build/esm/src/components/Link/Link.js +71 -0
  138. package/build/esm/src/components/Link/Link.js.map +1 -0
  139. package/build/esm/src/components/Logo/Logo.js +37 -0
  140. package/build/esm/src/components/Logo/Logo.js.map +1 -0
  141. package/build/esm/src/components/MediaItem/MediaItem.js +118 -0
  142. package/build/esm/src/components/MediaItem/MediaItem.js.map +1 -0
  143. package/build/esm/src/components/MediaViewerBar/MediaViewerBar.js +66 -0
  144. package/build/esm/src/components/MediaViewerBar/MediaViewerBar.js.map +1 -0
  145. package/build/esm/src/components/Notification/Notification.js +100 -0
  146. package/build/esm/src/components/Notification/Notification.js.map +1 -0
  147. package/build/esm/src/components/Patterns/ButtonGroup/ButtonGroup.js +38 -0
  148. package/build/esm/src/components/Patterns/ButtonGroup/ButtonGroup.js.map +1 -0
  149. package/build/esm/src/components/Patterns/Modal/Modal.js +213 -0
  150. package/build/esm/src/components/Patterns/Modal/Modal.js.map +1 -0
  151. package/build/esm/src/components/PictogramButton/PictogramButton.js +111 -0
  152. package/build/esm/src/components/PictogramButton/PictogramButton.js.map +1 -0
  153. package/build/esm/src/components/Portal/Portal.js +16 -0
  154. package/build/esm/src/components/Portal/Portal.js.map +1 -0
  155. package/build/esm/src/components/ProgressBar/ProgressBar.js +33 -0
  156. package/build/esm/src/components/ProgressBar/ProgressBar.js.map +1 -0
  157. package/build/esm/src/components/RoundButton/RoundButton.js +109 -0
  158. package/build/esm/src/components/RoundButton/RoundButton.js.map +1 -0
  159. package/build/esm/src/components/SearchResult/SearchResult.js +171 -0
  160. package/build/esm/src/components/SearchResult/SearchResult.js.map +1 -0
  161. package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBar.js +101 -0
  162. package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBar.js.map +1 -0
  163. package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js +40 -0
  164. package/build/esm/src/components/SegmentedProgressBar/SegmentedProgressBarUtil.js.map +1 -0
  165. package/build/esm/src/components/Stack/Stack.js +71 -0
  166. package/build/esm/src/components/Stack/Stack.js.map +1 -0
  167. package/build/esm/src/components/SubThemeProvider/SubThemeProvider.js +49 -0
  168. package/build/esm/src/components/SubThemeProvider/SubThemeProvider.js.map +1 -0
  169. package/build/esm/src/components/Tabs/Tabs.js +125 -0
  170. package/build/esm/src/components/Tabs/Tabs.js.map +1 -0
  171. package/build/esm/src/components/Typography/Header/Header.js +104 -0
  172. package/build/esm/src/components/Typography/Header/Header.js.map +1 -0
  173. package/build/esm/src/components/Typography/StyledText/StyledText.js +160 -0
  174. package/build/esm/src/components/Typography/StyledText/StyledText.js.map +1 -0
  175. package/build/esm/src/components/Typography/Text/Text.js +55 -0
  176. package/build/esm/src/components/Typography/Text/Text.js.map +1 -0
  177. package/build/esm/src/components/Typography/TextClamped/TextClamped.js +46 -0
  178. package/build/esm/src/components/Typography/TextClamped/TextClamped.js.map +1 -0
  179. package/build/esm/src/components/VirtualScrollList/VirtualScrollList.js +109 -0
  180. package/build/esm/src/components/VirtualScrollList/VirtualScrollList.js.map +1 -0
  181. package/build/esm/src/components/VirtualScrollList/VirtualScrollListReducer.js +130 -0
  182. package/build/esm/src/components/VirtualScrollList/VirtualScrollListReducer.js.map +1 -0
  183. package/build/esm/src/index.js +53 -0
  184. package/build/esm/src/index.js.map +1 -0
  185. package/build/esm/src/shared/flattenChildren.d.ts +11 -0
  186. package/build/esm/src/shared/flattenChildren.js +32 -0
  187. package/build/esm/src/shared/flattenChildren.js.map +1 -0
  188. package/build/esm/src/shared/informDeprecation.js +11 -0
  189. package/build/esm/src/shared/informDeprecation.js.map +1 -0
  190. package/build/esm/src/shared/mediaQueries.js +66 -0
  191. package/build/esm/src/shared/mediaQueries.js.map +1 -0
  192. package/build/esm/src/shared/useAutoPosition.js +41 -0
  193. package/build/esm/src/shared/useAutoPosition.js.map +1 -0
  194. package/build/esm/src/shared/useDocument.js +6 -0
  195. package/build/esm/src/shared/useDocument.js.map +1 -0
  196. package/build/esm/src/shared/useHover.js +25 -0
  197. package/build/esm/src/shared/useHover.js.map +1 -0
  198. package/build/esm/src/shared/useKeyboard.js +42 -0
  199. package/build/esm/src/shared/useKeyboard.js.map +1 -0
  200. package/build/esm/src/shared/useOnEscapePress.js +51 -0
  201. package/build/esm/src/shared/useOnEscapePress.js.map +1 -0
  202. package/build/esm/src/shared/useOutsideClick.js +32 -0
  203. package/build/esm/src/shared/useOutsideClick.js.map +1 -0
  204. package/build/esm/src/shared/useWindow.js +6 -0
  205. package/build/esm/src/shared/useWindow.js.map +1 -0
  206. package/package.json +27 -9
  207. package/build/build-tokens/assets/icons.json +0 -131
  208. package/build/build-tokens/assets/icons16.json +0 -142
  209. package/build/build-tokens/assets/logo.json +0 -3
  210. package/build/index.js +0 -3
  211. package/build/index.js.LICENSE.txt +0 -8
  212. package/build/index.js.map +0 -1
  213. /package/build/{build-tokens → esm/build-tokens}/_subThemeType.d.ts +0 -0
  214. /package/build/{build-tokens → esm/build-tokens}/visualConfig.d.ts +0 -0
  215. /package/build/{src → esm/src}/components/Badge/Badge.d.ts +0 -0
  216. /package/build/{src → esm/src}/components/Box/Box.d.ts +0 -0
  217. /package/build/{src → esm/src}/components/Button/Button.d.ts +0 -0
  218. /package/build/{src → esm/src}/components/Callout/Callout.d.ts +0 -0
  219. /package/build/{src → esm/src}/components/Card/Card.d.ts +0 -0
  220. /package/build/{src → esm/src}/components/Card/CardBox.d.ts +0 -0
  221. /package/build/{src → esm/src}/components/Card/CardHeader/CardHeader.d.ts +0 -0
  222. /package/build/{src → esm/src}/components/Collapsible/Collapsible.d.ts +0 -0
  223. /package/build/{src → esm/src}/components/Column/Columns.d.ts +0 -0
  224. /package/build/{src → esm/src}/components/Container/Container.d.ts +0 -0
  225. /package/build/{src → esm/src}/components/Divider/Divider.d.ts +0 -0
  226. /package/build/{src → esm/src}/components/DropdownMenu/DropdownMenu.d.ts +0 -0
  227. /package/build/{src → esm/src}/components/DropdownMenu/MenuItem.d.ts +0 -0
  228. /package/build/{src → esm/src}/components/Form/Checkbox/Checkbox.d.ts +0 -0
  229. /package/build/{src → esm/src}/components/Form/FormErrorMessages/FormErrorMessages.d.ts +0 -0
  230. /package/build/{src → esm/src}/components/Form/FormField/FormField.d.ts +0 -0
  231. /package/build/{src → esm/src}/components/Form/FormFieldGroup/FormFieldGroup.d.ts +0 -0
  232. /package/build/{src → esm/src}/components/Form/FormLabelText/FormLabelText.d.ts +0 -0
  233. /package/build/{src → esm/src}/components/Form/Input/Input.d.ts +0 -0
  234. /package/build/{src → esm/src}/components/Form/PasswordInput/PasswordInput.d.ts +0 -0
  235. /package/build/{src → esm/src}/components/Form/Radio/Radio.d.ts +0 -0
  236. /package/build/{src → esm/src}/components/Form/RadioButton/RadioButton.d.ts +0 -0
  237. /package/build/{src → esm/src}/components/Form/Select/Select.d.ts +0 -0
  238. /package/build/{src → esm/src}/components/Form/Textarea/Textarea.d.ts +0 -0
  239. /package/build/{src → esm/src}/components/Form/Toggle/Toggle.d.ts +0 -0
  240. /package/build/{src → esm/src}/components/Form/ToggleButton/ToggleButton.d.ts +0 -0
  241. /package/build/{src → esm/src}/components/Icon/Icon.d.ts +0 -0
  242. /package/build/{src → esm/src}/components/Inline/Inline.d.ts +0 -0
  243. /package/build/{src → esm/src}/components/Link/Link.d.ts +0 -0
  244. /package/build/{src → esm/src}/components/Logo/Logo.d.ts +0 -0
  245. /package/build/{src → esm/src}/components/MediaItem/MediaItem.d.ts +0 -0
  246. /package/build/{src → esm/src}/components/MediaViewerBar/MediaViewerBar.d.ts +0 -0
  247. /package/build/{src → esm/src}/components/Notification/ExpandedContent.d.ts +0 -0
  248. /package/build/{src → esm/src}/components/Notification/Notification.d.ts +0 -0
  249. /package/build/{src → esm/src}/components/Patterns/ButtonGroup/ButtonGroup.d.ts +0 -0
  250. /package/build/{src → esm/src}/components/Patterns/Modal/Modal.d.ts +0 -0
  251. /package/build/{src → esm/src}/components/PictogramButton/PictogramButton.d.ts +0 -0
  252. /package/build/{src → esm/src}/components/Portal/Portal.d.ts +0 -0
  253. /package/build/{src → esm/src}/components/ProgressBar/ProgressBar.d.ts +0 -0
  254. /package/build/{src → esm/src}/components/RoundButton/RoundButton.d.ts +0 -0
  255. /package/build/{src → esm/src}/components/SearchResult/SearchResult.d.ts +0 -0
  256. /package/build/{src → esm/src}/components/SegmentedProgressBar/SegmentedProgressBar.d.ts +0 -0
  257. /package/build/{src → esm/src}/components/SegmentedProgressBar/SegmentedProgressBarUtil.d.ts +0 -0
  258. /package/build/{src → esm/src}/components/ShadowWebComponent/ShadowWebComponent.d.ts +0 -0
  259. /package/build/{src → esm/src}/components/Stack/Stack.d.ts +0 -0
  260. /package/build/{src → esm/src}/components/SubThemeProvider/SubThemeProvider.d.ts +0 -0
  261. /package/build/{src → esm/src}/components/Tabs/Tabs.d.ts +0 -0
  262. /package/build/{src → esm/src}/components/Typography/Header/Header.d.ts +0 -0
  263. /package/build/{src → esm/src}/components/Typography/StyledText/StyledText.d.ts +0 -0
  264. /package/build/{src → esm/src}/components/Typography/Text/Text.d.ts +0 -0
  265. /package/build/{src → esm/src}/components/Typography/TextClamped/TextClamped.d.ts +0 -0
  266. /package/build/{src → esm/src}/components/VirtualScrollList/VirtualScrollList.d.ts +0 -0
  267. /package/build/{src → esm/src}/components/VirtualScrollList/VirtualScrollListReducer.d.ts +0 -0
  268. /package/build/{src → esm/src}/index.d.ts +0 -0
  269. /package/build/{src → esm/src}/shared/informDeprecation.d.ts +0 -0
  270. /package/build/{src → esm/src}/shared/mediaQueries.d.ts +0 -0
  271. /package/build/{src → esm/src}/shared/replaceDeprecated.d.ts +0 -0
  272. /package/build/{src → esm/src}/shared/useAutoPosition.d.ts +0 -0
  273. /package/build/{src → esm/src}/shared/useDocument.d.ts +0 -0
  274. /package/build/{src → esm/src}/shared/useHover.d.ts +0 -0
  275. /package/build/{src → esm/src}/shared/useKeyboard.d.ts +0 -0
  276. /package/build/{src → esm/src}/shared/useOnEscapePress.d.ts +0 -0
  277. /package/build/{src → esm/src}/shared/useOutsideClick.d.ts +0 -0
  278. /package/build/{src → esm/src}/shared/useWindow.d.ts +0 -0
  279. /package/build/{src → esm/src}/types/index.d.ts +0 -0
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var _styled = require('@emotion/styled/base');
4
+ var React = require('react');
5
+ var VirtualScrollListReducer = require('./VirtualScrollListReducer.js');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var _styled__default = /*#__PURE__*/_interopDefault(_styled);
10
+ var React__default = /*#__PURE__*/_interopDefault(React);
11
+
12
+ const StyledContainer = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
13
+ target: "ebr5g6s1"
14
+ } : {
15
+ target: "ebr5g6s1",
16
+ label: "StyledContainer"
17
+ })(_ref => {
18
+ let {
19
+ maxHeight
20
+ } = _ref;
21
+ return {
22
+ overflow: "auto",
23
+ width: "100%",
24
+ height: "100%",
25
+ maxHeight
26
+ };
27
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpcnR1YWxTY3JvbGxMaXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLd0IiLCJmaWxlIjoiVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3Qgb3ZlcnNjYW4gPSAxMDtcblxuZXhwb3J0IGZ1bmN0aW9uIFZpcnR1YWxTY3JvbGxMaXN0KHtcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBbXG4gICAge1xuICAgICAgc2Nyb2xsZWRJdGVtQ291bnQsXG4gICAgICBhbW91bnRPZkl0ZW1zSW5WaWV3LFxuICAgICAgc2Nyb2xsZWRJblB4LFxuICAgICAgbWF4Q29udGVudEhlaWdodCA9IG1heEhlaWdodCxcbiAgICAgIHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24sXG4gICAgfSxcbiAgICBkaXNwYXRjaCxcbiAgXSA9IHVzZVJlZHVjZXIoVmlydHVhbFNjcm9sbFJlZHVjZXIsIHt9KTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNldFwiLCBpdGVtSGVpZ2h0LCBtYXhIZWlnaHQsIG92ZXJzY2FuIH0pO1xuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSAwO1xuICB9LCBbaXRlbUhlaWdodCwgaXRlbUFtb3VudCwgbWF4SGVpZ2h0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInJlY29tbWVuZFNjcm9sbFBvc2l0aW9uXCIsXG4gICAgICBzY3JvbGxUb3A6IHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AsXG4gICAgICBpdGVtVG9CZUluVmlldzogaXRlbUluVmlldyxcbiAgICB9KTtcbiAgfSwgW2l0ZW1JblZpZXddKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uID09PSBudWxsKSByZXR1cm47XG5cbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbjtcbiAgfSwgW3JlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb25dKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3sgbWF4SGVpZ2h0IH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgcmVmPXt2aWV3cG9ydFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtzY3JvbGxlZEluUHh9cHhgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1N0eWxlZFNjcm9sbGFibGVDb250ZW50PlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn1cbiJdfQ== */");
28
+ const StyledScrollableContent = /*#__PURE__*/_styled__default.default("div", process.env.NODE_ENV === "production" ? {
29
+ target: "ebr5g6s0"
30
+ } : {
31
+ target: "ebr5g6s0",
32
+ label: "StyledScrollableContent"
33
+ })(_ref2 => {
34
+ let {
35
+ maxContentHeight
36
+ } = _ref2;
37
+ return {
38
+ overflow: "hidden",
39
+ boxSizing: "border-box",
40
+ height: maxContentHeight
41
+ };
42
+ }, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpcnR1YWxTY3JvbGxMaXN0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjZ0MiLCJmaWxlIjoiVmlydHVhbFNjcm9sbExpc3QudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VSZWR1Y2VyLCB1c2VMYXlvdXRFZmZlY3QsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsUmVkdWNlciB9IGZyb20gXCIuL1ZpcnR1YWxTY3JvbGxMaXN0UmVkdWNlclwiO1xuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2PFBhcnRpYWw8VmlydHVhbFNjcm9sbExpc3RQcm9wcz4+KFxuICAoeyBtYXhIZWlnaHQgfSkgPT4gKHtcbiAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgd2lkdGg6IFwiMTAwJVwiLFxuICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgbWF4SGVpZ2h0LFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgPSBzdHlsZWQuZGl2PHsgbWF4Q29udGVudEhlaWdodDogbnVtYmVyIH0+KFxuICAoeyBtYXhDb250ZW50SGVpZ2h0IH0pID0+ICh7XG4gICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgYm94U2l6aW5nOiBcImJvcmRlci1ib3hcIixcbiAgICBoZWlnaHQ6IG1heENvbnRlbnRIZWlnaHQsXG4gIH0pXG4pO1xuXG5leHBvcnQgdHlwZSBWaXJ0dWFsU2Nyb2xsTGlzdFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgbWF4SGVpZ2h0OiBudW1iZXI7XG4gIGl0ZW1IZWlnaHQ6IG51bWJlcjtcbiAgaXRlbUFtb3VudDogbnVtYmVyO1xuICBlbXB0eVN0YXRlOiAoKSA9PiBSZWFjdC5SZWFjdE5vZGU7XG4gIGl0ZW1JblZpZXc6IG51bWJlcjtcbiAgaXRlbVRlbXBsYXRlOiAoaW5kZXg6IG51bWJlcikgPT4gUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3Qgb3ZlcnNjYW4gPSAxMDtcblxuZXhwb3J0IGZ1bmN0aW9uIFZpcnR1YWxTY3JvbGxMaXN0KHtcbiAgbWF4SGVpZ2h0LFxuICBpdGVtSGVpZ2h0LFxuICBpdGVtQW1vdW50LFxuICBlbXB0eVN0YXRlID0gKCkgPT4gbnVsbCxcbiAgaXRlbUluVmlldyxcbiAgaXRlbVRlbXBsYXRlLFxuICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbn06IFZpcnR1YWxTY3JvbGxMaXN0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBzY3JvbGxhYmxlQ29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCB2aWV3cG9ydFJlZiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCBbXG4gICAge1xuICAgICAgc2Nyb2xsZWRJdGVtQ291bnQsXG4gICAgICBhbW91bnRPZkl0ZW1zSW5WaWV3LFxuICAgICAgc2Nyb2xsZWRJblB4LFxuICAgICAgbWF4Q29udGVudEhlaWdodCA9IG1heEhlaWdodCxcbiAgICAgIHJlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb24sXG4gICAgfSxcbiAgICBkaXNwYXRjaCxcbiAgXSA9IHVzZVJlZHVjZXIoVmlydHVhbFNjcm9sbFJlZHVjZXIsIHt9KTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGRpc3BhdGNoKHsgdHlwZTogXCJyZXNldFwiLCBpdGVtSGVpZ2h0LCBtYXhIZWlnaHQsIG92ZXJzY2FuIH0pO1xuICAgIHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AgPSAwO1xuICB9LCBbaXRlbUhlaWdodCwgaXRlbUFtb3VudCwgbWF4SGVpZ2h0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInJlY29tbWVuZFNjcm9sbFBvc2l0aW9uXCIsXG4gICAgICBzY3JvbGxUb3A6IHNjcm9sbGFibGVDb250YWluZXJSZWYuY3VycmVudC5zY3JvbGxUb3AsXG4gICAgICBpdGVtVG9CZUluVmlldzogaXRlbUluVmlldyxcbiAgICB9KTtcbiAgfSwgW2l0ZW1JblZpZXddKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChyZWNvbW1lbmRlZFNjcm9sbFBvc2l0aW9uID09PSBudWxsKSByZXR1cm47XG5cbiAgICBzY3JvbGxhYmxlQ29udGFpbmVyUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gcmVjb21tZW5kZWRTY3JvbGxQb3NpdGlvbjtcbiAgfSwgW3JlY29tbWVuZGVkU2Nyb2xsUG9zaXRpb25dKTtcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXZpZXdwb3J0UmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBcInVwZGF0ZVZpZXdwb3J0XCIsXG4gICAgICB2aWV3cG9ydE5vZGU6IHZpZXdwb3J0UmVmLmN1cnJlbnQsXG4gICAgICBpdGVtQW1vdW50LFxuICAgIH0pO1xuICB9LCBbaXRlbUFtb3VudCwgc2Nyb2xsZWRJdGVtQ291bnRdKTtcblxuICBjb25zdCBpdGVtQ291bnRUb0JlUmVuZGVyZWQgPSBNYXRoLm1pbihcbiAgICBNYXRoLm1heCgwLCBpdGVtQW1vdW50IC0gc2Nyb2xsZWRJdGVtQ291bnQpLFxuICAgIGFtb3VudE9mSXRlbXNJblZpZXdcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXJcbiAgICAgIHJlZj17c2Nyb2xsYWJsZUNvbnRhaW5lclJlZn1cbiAgICAgIG1heEhlaWdodD17bWF4SGVpZ2h0fVxuICAgICAgc3R5bGU9e3sgbWF4SGVpZ2h0IH19XG4gICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgb25TY3JvbGw9eyhlOiBSZWFjdC5VSUV2ZW50PEhUTUxFbGVtZW50PikgPT4ge1xuICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgdHlwZTogXCJzY3JvbGxcIixcbiAgICAgICAgICBzY3JvbGxUb3A6IGUuY3VycmVudFRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgIH0pO1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7aXRlbUFtb3VudCA9PT0gMCA/IChcbiAgICAgICAgZW1wdHlTdGF0ZSgpXG4gICAgICApIDogKFxuICAgICAgICA8U3R5bGVkU2Nyb2xsYWJsZUNvbnRlbnQgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgcmVmPXt2aWV3cG9ydFJlZn1cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZVkoJHtzY3JvbGxlZEluUHh9cHhgLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7ISFpdGVtQ291bnRUb0JlUmVuZGVyZWQgJiZcbiAgICAgICAgICAgICAgbmV3IEFycmF5KGl0ZW1Db3VudFRvQmVSZW5kZXJlZClcbiAgICAgICAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgICAgICAgIC5tYXAoKF8sIGluZGV4KSA9PiBpdGVtVGVtcGxhdGUoc2Nyb2xsZWRJdGVtQ291bnQgKyBpbmRleCkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1N0eWxlZFNjcm9sbGFibGVDb250ZW50PlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENvbnRhaW5lcj5cbiAgKTtcbn1cbiJdfQ== */");
43
+ const overscan = 10;
44
+ function VirtualScrollList(_ref3) {
45
+ let {
46
+ maxHeight,
47
+ itemHeight,
48
+ itemAmount,
49
+ emptyState = () => null,
50
+ itemInView,
51
+ itemTemplate,
52
+ "data-e2e-test-id": dataE2eTestId
53
+ } = _ref3;
54
+ const scrollableContainerRef = React.useRef(null);
55
+ const viewportRef = React.useRef(null);
56
+ const [{
57
+ scrolledItemCount,
58
+ amountOfItemsInView,
59
+ scrolledInPx,
60
+ maxContentHeight = maxHeight,
61
+ recommendedScrollPosition
62
+ }, dispatch] = React.useReducer(VirtualScrollListReducer.VirtualScrollReducer, {});
63
+ React.useLayoutEffect(() => {
64
+ dispatch({
65
+ type: "reset",
66
+ itemHeight,
67
+ maxHeight,
68
+ overscan
69
+ });
70
+ scrollableContainerRef.current.scrollTop = 0;
71
+ }, [itemHeight, itemAmount, maxHeight]);
72
+ React.useEffect(() => {
73
+ dispatch({
74
+ type: "recommendScrollPosition",
75
+ scrollTop: scrollableContainerRef.current.scrollTop,
76
+ itemToBeInView: itemInView
77
+ });
78
+ }, [itemInView]);
79
+ React.useEffect(() => {
80
+ if (recommendedScrollPosition === null) return;
81
+ scrollableContainerRef.current.scrollTop = recommendedScrollPosition;
82
+ }, [recommendedScrollPosition]);
83
+ React.useLayoutEffect(() => {
84
+ if (!viewportRef.current) return;
85
+ dispatch({
86
+ type: "updateViewport",
87
+ viewportNode: viewportRef.current,
88
+ itemAmount
89
+ });
90
+ }, [itemAmount, scrolledItemCount]);
91
+ const itemCountToBeRendered = Math.min(Math.max(0, itemAmount - scrolledItemCount), amountOfItemsInView);
92
+ return /*#__PURE__*/React__default.default.createElement(StyledContainer, {
93
+ ref: scrollableContainerRef,
94
+ maxHeight: maxHeight,
95
+ style: {
96
+ maxHeight
97
+ },
98
+ "data-e2e-test-id": dataE2eTestId,
99
+ onScroll: e => {
100
+ dispatch({
101
+ type: "scroll",
102
+ scrollTop: e.currentTarget.scrollTop
103
+ });
104
+ }
105
+ }, itemAmount === 0 ? emptyState() : /*#__PURE__*/React__default.default.createElement(StyledScrollableContent, {
106
+ maxContentHeight: maxContentHeight
107
+ }, /*#__PURE__*/React__default.default.createElement("div", {
108
+ ref: viewportRef,
109
+ style: {
110
+ transform: `translateY(${scrolledInPx}px`
111
+ }
112
+ }, !!itemCountToBeRendered && new Array(itemCountToBeRendered).fill(0).map((_, index) => itemTemplate(scrolledItemCount + index)))));
113
+ }
114
+
115
+ exports.VirtualScrollList = VirtualScrollList;
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ const findClosestOffsetIndex = (arr, val) => {
4
+ let start = 0;
5
+ let end = arr.length - 1;
6
+ let mid = Math.floor((start + end) / 2);
7
+ while (start <= end) {
8
+ mid = Math.floor((start + end) / 2);
9
+ if (arr[mid].amount === val) {
10
+ return mid;
11
+ }
12
+ if (val < arr[mid].amount) {
13
+ end = mid - 1;
14
+ } else {
15
+ start = mid + 1;
16
+ }
17
+ }
18
+ return mid;
19
+ };
20
+ const getMaxHeight = function (maxAmountOfItems, offsets) {
21
+ let lastItemHeight = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
22
+ const amountOfOffsets = Math.min(offsets.length, maxAmountOfItems);
23
+ const maxOffset = offsets[amountOfOffsets - 1]?.amount || 0;
24
+ const result = maxOffset + lastItemHeight;
25
+ return result;
26
+ };
27
+ const reduceScroll = (prevState, scrollTop) => {
28
+ const {
29
+ topOffsets,
30
+ overscan: tolerance
31
+ } = prevState;
32
+ const scrolledItemCount = Math.max(0, findClosestOffsetIndex(topOffsets, scrollTop) - tolerance / 2);
33
+ const scrolledInPx = topOffsets[scrolledItemCount]?.amount || 0;
34
+ return {
35
+ ...prevState,
36
+ scrolledItemCount,
37
+ scrolledInPx
38
+ };
39
+ };
40
+ const reduceUpdateViewport = (prevState, viewportNode, itemAmount) => {
41
+ const {
42
+ topOffsets = [],
43
+ scrolledInPx,
44
+ scrolledItemCount,
45
+ avgItemHeight,
46
+ lastItemHeight,
47
+ maxHeight,
48
+ overscan: tolerance
49
+ } = prevState;
50
+ const newTopOffsets = [...topOffsets];
51
+ let updatedLastItemHeight = lastItemHeight;
52
+ Array.from(viewportNode.children).forEach((child, i) => {
53
+ newTopOffsets[i + scrolledItemCount] = {
54
+ amount: scrolledInPx + child.offsetTop,
55
+ isInterpolated: false
56
+ };
57
+ if (i + scrolledItemCount === itemAmount - 1 && !lastItemHeight) {
58
+ updatedLastItemHeight = child.getBoundingClientRect().height;
59
+ }
60
+ });
61
+ for (let i = 0; i < itemAmount; i += 1) {
62
+ if (!newTopOffsets[i] || newTopOffsets[i].isInterpolated) {
63
+ newTopOffsets[i] = {
64
+ amount: newTopOffsets[i - 1].amount + avgItemHeight,
65
+ isInterpolated: true
66
+ };
67
+ }
68
+ }
69
+ const newAvgItemHeight = Math.max(avgItemHeight, viewportNode.getBoundingClientRect().height / (viewportNode.childElementCount || 1));
70
+ const maxContentHeight = getMaxHeight(itemAmount, newTopOffsets, updatedLastItemHeight);
71
+ return {
72
+ ...prevState,
73
+ lastItemHeight: updatedLastItemHeight,
74
+ avgItemHeight,
75
+ topOffsets: newTopOffsets,
76
+ amountOfItemsInView: Math.round(maxHeight / newAvgItemHeight) + tolerance,
77
+ maxContentHeight
78
+ };
79
+ };
80
+ const reduceReset = (prevState, itemHeight, maxHeight, overscan) => ({
81
+ ...prevState,
82
+ lastItemHeight: null,
83
+ topOffsets: [{
84
+ amount: 0,
85
+ isInterpolated: false
86
+ }],
87
+ scrolledInPx: 0,
88
+ scrolledItemCount: 0,
89
+ maxHeight,
90
+ avgItemHeight: itemHeight,
91
+ overscan
92
+ });
93
+ const reduceRecommendScrollPosition = (prevState, scrollTop, itemToBeInView) => {
94
+ const {
95
+ topOffsets,
96
+ maxHeight
97
+ } = prevState;
98
+ if (!topOffsets) return prevState;
99
+ const bottomOfTarget = topOffsets[itemToBeInView + 1]?.amount;
100
+ const topOfTarget = topOffsets[itemToBeInView]?.amount;
101
+ let recommendedScrollPosition = null;
102
+ if (topOfTarget < scrollTop) {
103
+ recommendedScrollPosition = topOfTarget;
104
+ }
105
+ if (bottomOfTarget >= scrollTop + maxHeight) {
106
+ recommendedScrollPosition = bottomOfTarget - maxHeight;
107
+ }
108
+ if (itemToBeInView === topOffsets.length - 1) {
109
+ recommendedScrollPosition = topOffsets[itemToBeInView].amount;
110
+ }
111
+ return {
112
+ ...prevState,
113
+ recommendedScrollPosition
114
+ };
115
+ };
116
+ const VirtualScrollReducer = (prevState, action) => {
117
+ switch (action.type) {
118
+ case "reset":
119
+ return reduceReset(prevState, action.itemHeight, action.maxHeight, action.overscan);
120
+ case "scroll":
121
+ return reduceScroll(prevState, action.scrollTop);
122
+ case "updateViewport":
123
+ return reduceUpdateViewport(prevState, action.viewportNode, action.itemAmount);
124
+ case "recommendScrollPosition":
125
+ return reduceRecommendScrollPosition(prevState, action.scrollTop, action.itemToBeInView);
126
+ default:
127
+ throw new Error();
128
+ }
129
+ };
130
+
131
+ exports.VirtualScrollReducer = VirtualScrollReducer;
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ var visualConfig = require('../build-tokens/visualConfig.js');
4
+ var react = require('@emotion/react');
5
+ var cache = require('@emotion/cache');
6
+ var Card = require('./components/Card/Card.js');
7
+ var CardBox = require('./components/Card/CardBox.js');
8
+ var Box = require('./components/Box/Box.js');
9
+ var Inline = require('./components/Inline/Inline.js');
10
+ var Stack = require('./components/Stack/Stack.js');
11
+ var Header = require('./components/Typography/Header/Header.js');
12
+ var Text = require('./components/Typography/Text/Text.js');
13
+ var TextClamped = require('./components/Typography/TextClamped/TextClamped.js');
14
+ var StyledText = require('./components/Typography/StyledText/StyledText.js');
15
+ var Link = require('./components/Link/Link.js');
16
+ var Icon = require('./components/Icon/Icon.js');
17
+ var Button = require('./components/Button/Button.js');
18
+ var Divider = require('./components/Divider/Divider.js');
19
+ var Columns = require('./components/Column/Columns.js');
20
+ var Tabs = require('./components/Tabs/Tabs.js');
21
+ var Badge = require('./components/Badge/Badge.js');
22
+ var SearchResult = require('./components/SearchResult/SearchResult.js');
23
+ var ToggleButton = require('./components/Form/ToggleButton/ToggleButton.js');
24
+ var DropdownMenu = require('./components/DropdownMenu/DropdownMenu.js');
25
+ var FormFieldGroup = require('./components/Form/FormFieldGroup/FormFieldGroup.js');
26
+ var Input = require('./components/Form/Input/Input.js');
27
+ var Checkbox = require('./components/Form/Checkbox/Checkbox.js');
28
+ var Toggle = require('./components/Form/Toggle/Toggle.js');
29
+ var Radio = require('./components/Form/Radio/Radio.js');
30
+ var RadioButton = require('./components/Form/RadioButton/RadioButton.js');
31
+ var Textarea = require('./components/Form/Textarea/Textarea.js');
32
+ var Select = require('./components/Form/Select/Select.js');
33
+ var SubThemeProvider = require('./components/SubThemeProvider/SubThemeProvider.js');
34
+ var PictogramButton = require('./components/PictogramButton/PictogramButton.js');
35
+ var MediaViewerBar = require('./components/MediaViewerBar/MediaViewerBar.js');
36
+ var SegmentedProgressBar = require('./components/SegmentedProgressBar/SegmentedProgressBar.js');
37
+ var ProgressBar = require('./components/ProgressBar/ProgressBar.js');
38
+ var Container = require('./components/Container/Container.js');
39
+ var PasswordInput = require('./components/Form/PasswordInput/PasswordInput.js');
40
+ var RoundButton = require('./components/RoundButton/RoundButton.js');
41
+ var Notification = require('./components/Notification/Notification.js');
42
+ var Logo = require('./components/Logo/Logo.js');
43
+ var MediaItem = require('./components/MediaItem/MediaItem.js');
44
+ var Callout = require('./components/Callout/Callout.js');
45
+ var Modal = require('./components/Patterns/Modal/Modal.js');
46
+ var ButtonGroup = require('./components/Patterns/ButtonGroup/ButtonGroup.js');
47
+ var Collapsible = require('./components/Collapsible/Collapsible.js');
48
+
49
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
50
+
51
+ var cache__default = /*#__PURE__*/_interopDefault(cache);
52
+
53
+ const {
54
+ dark,
55
+ light
56
+ } = visualConfig.ambossVisualConfiguration;
57
+
58
+ Object.defineProperty(exports, 'CacheProvider', {
59
+ enumerable: true,
60
+ get: function () { return react.CacheProvider; }
61
+ });
62
+ Object.defineProperty(exports, 'ThemeProvider', {
63
+ enumerable: true,
64
+ get: function () { return react.ThemeProvider; }
65
+ });
66
+ Object.defineProperty(exports, 'createCache', {
67
+ enumerable: true,
68
+ get: function () { return cache__default.default; }
69
+ });
70
+ exports.Card = Card.Card;
71
+ exports.CardBox = CardBox.CardBox;
72
+ exports.Box = Box.Box;
73
+ exports.Inline = Inline.Inline;
74
+ exports.Stack = Stack.Stack;
75
+ exports.H1 = Header.H1;
76
+ exports.H2 = Header.H2;
77
+ exports.H3 = Header.H3;
78
+ exports.H4 = Header.H4;
79
+ exports.H5 = Header.H5;
80
+ exports.H6 = Header.H6;
81
+ exports.Text = Text.Text;
82
+ exports.TextClamped = TextClamped.TextClamped;
83
+ exports.StyledText = StyledText.StyledText;
84
+ exports.Link = Link.Link;
85
+ exports.Icon = Icon.Icon;
86
+ exports.Button = Button.Button;
87
+ exports.Divider = Divider.Divider;
88
+ exports.Column = Columns.Column;
89
+ exports.Columns = Columns.Columns;
90
+ exports.Tabs = Tabs.Tabs;
91
+ exports.Badge = Badge.Badge;
92
+ exports.SearchResult = SearchResult.SearchResult;
93
+ exports.ToggleButton = ToggleButton.ToggleButton;
94
+ exports.DropdownMenu = DropdownMenu.DropdownMenu;
95
+ exports.FormFieldGroup = FormFieldGroup.FormFieldGroup;
96
+ exports.Input = Input.Input;
97
+ exports.Checkbox = Checkbox.Checkbox;
98
+ exports.Toggle = Toggle.Toggle;
99
+ exports.Radio = Radio.Radio;
100
+ exports.RadioButton = RadioButton.RadioButton;
101
+ exports.Textarea = Textarea.Textarea;
102
+ exports.Select = Select.Select;
103
+ exports.SubThemeProvider = SubThemeProvider.SubThemeProvider;
104
+ exports.PictogramButton = PictogramButton.PictogramButton;
105
+ exports.MediaViewerBar = MediaViewerBar.MediaViewerBar;
106
+ exports.SegmentedProgressBar = SegmentedProgressBar.SegmentedProgressBar;
107
+ exports.ProgressBar = ProgressBar.ProgressBar;
108
+ exports.Container = Container.Container;
109
+ exports.PasswordInput = PasswordInput.PasswordInput;
110
+ exports.RoundButton = RoundButton.RoundButton;
111
+ exports.Notification = Notification.Notification;
112
+ exports.Logo = Logo.Logo;
113
+ exports.MediaItem = MediaItem.MediaItem;
114
+ exports.Callout = Callout.Callout;
115
+ exports.Modal = Modal.Modal;
116
+ exports.ButtonGroup = ButtonGroup.ButtonGroup;
117
+ exports.Collapsible = Collapsible.Collapsible;
118
+ exports.CollapsibleHeader = Collapsible.CollapsibleHeader;
119
+ exports.dark = dark;
120
+ exports.light = light;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactIs = require('react-is');
5
+
6
+ /**
7
+ * Copied from https://github.com/grrowl/react-keyed-flatten-children (since ESM import doesn't work with the module)
8
+ *
9
+ * Similar to [React's built-in `Children.toArray` method](https://reactjs.org/docs/react-api.html#reactchildrentoarray),
10
+ * this utility takes children and returns them as an array for introspection or filtering.
11
+ *
12
+ * Different from `Children.toArray`, it will flatten arrays and `React.Fragment`s into a regular, one-dimensional
13
+ * array while ensuring element and fragment keys are preserved, unique, and stable between renders.
14
+ */
15
+
16
+ const flattenChildren = function (children) {
17
+ let depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
18
+ let keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
19
+ return React.Children.toArray(children).reduce((acc, node, nodeIndex) => {
20
+ if (reactIs.isFragment(node)) {
21
+ acc.push(...flattenChildren(node.props.children, depth + 1, keys.concat(String(node.key || nodeIndex))));
22
+ } else if ( /*#__PURE__*/React.isValidElement(node)) {
23
+ acc.push( /*#__PURE__*/React.cloneElement(node, {
24
+ key: keys.concat(String(node.key)).join(".")
25
+ }));
26
+ } else if (typeof node === "string" || typeof node === "number") {
27
+ acc.push(node);
28
+ }
29
+ return acc;
30
+ }, []);
31
+ };
32
+
33
+ exports.flattenChildren = flattenChildren;
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ const informDeprecation = function (property, value, location) {
4
+ let details = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
5
+ if (property === undefined) return;
6
+ if (property === value) {
7
+ // eslint-disable-next-line no-console
8
+ console.error(`value ${JSON.stringify(value)} is depricated in ${location} \n ${details}`);
9
+ }
10
+ };
11
+
12
+ exports.informDeprecation = informDeprecation;
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var _breakpoints = require('../../build-tokens/_breakpoints.json.js');
4
+
5
+ /* eslint-disable @typescript-eslint/no-explicit-any */
6
+
7
+ /*
8
+ Although, mq implementation supports any property type, the following types are specified to provide type safety. If you need support for a new type, add it here.
9
+ */
10
+
11
+ // this thing probably deserves to be a separate library, like facepaint for emotion
12
+ function getMq(breakpointRules) {
13
+ const keys = breakpointRules;
14
+ return rules => {
15
+ const res = {};
16
+ keys.forEach(key => {
17
+ res[key] = {};
18
+ });
19
+ res[`@media screen`] = {};
20
+
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ Object.entries(rules).forEach(_ref => {
23
+ let [cssProperty, [prop, map]] = _ref;
24
+ if (Array.isArray(prop)) {
25
+ const sm = prop[0];
26
+ const md = prop[1] || prop[0];
27
+ const lg = prop[2] || prop[1] || prop[0];
28
+ const [s, m, l] = keys;
29
+ res[s][cssProperty] = map[sm];
30
+ res[m][cssProperty] = map[md];
31
+ res[l][cssProperty] = map[lg];
32
+ } else {
33
+ res[`@media screen`][cssProperty] = map[prop];
34
+ }
35
+ });
36
+ return res;
37
+ };
38
+ }
39
+ const mq = getMq([`@media (max-width: ${_breakpoints.default[1].value}px)`, `@media (min-width: ${_breakpoints.default[1].value}px) and (max-width: ${_breakpoints.default[2].value}px)`, `@media (min-width: ${_breakpoints.default[2].value}px)`]);
40
+ function getMqValue(breakpointRules) {
41
+ const keys = breakpointRules;
42
+ return rules => {
43
+ const res = {};
44
+ keys.forEach(key => {
45
+ res[key] = {};
46
+ });
47
+ res[`@media screen`] = {};
48
+ Object.entries(rules).forEach(_ref2 => {
49
+ let [cssProperty, cssValues] = _ref2;
50
+ if (Array.isArray(cssValues)) {
51
+ breakpointRules.forEach((breakpoint, index) => {
52
+ let i = index;
53
+ while (!cssValues[i] && i !== 0) {
54
+ i -= 1;
55
+ }
56
+ res[breakpoint][cssProperty] = cssValues[i];
57
+ });
58
+ } else {
59
+ res[`@media screen`][cssProperty] = cssValues;
60
+ }
61
+ });
62
+ return res;
63
+ };
64
+ }
65
+ const mqValue = getMqValue([`@media (max-width: ${_breakpoints.default[1].value}px)`, `@media (min-width: ${_breakpoints.default[1].value}px) and (max-width: ${_breakpoints.default[2].value}px)`, `@media (min-width: ${_breakpoints.default[2].value}px)`]);
66
+
67
+ exports.mq = mq;
68
+ exports.mqValue = mqValue;
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var useWindow = require('./useWindow.js');
5
+ var useDocument = require('./useDocument.js');
6
+
7
+ const useAutoPosition = (anchorRef, contentRef, isActive) => {
8
+ const [verticalPosition, setVerticalPosition] = React.useState("down");
9
+ const [horizontalPosition, setHorizontalPosition] = React.useState("left");
10
+ const document = useDocument.useDocument();
11
+ const window = useWindow.useWindow();
12
+ React.useLayoutEffect(() => {
13
+ if (!contentRef) return;
14
+ if (isActive) {
15
+ const maxHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
16
+ const rect = contentRef.current.getBoundingClientRect();
17
+ const anchorHeight = anchorRef.current.getBoundingClientRect().height;
18
+ const anchorX = anchorRef.current.getBoundingClientRect().x;
19
+ const screenWidth = window.innerWidth;
20
+ const isUp = rect.top + rect.height > maxHeight;
21
+ const isDown = rect.top - anchorHeight < rect.height;
22
+ const isLeft = anchorX > screenWidth / 2;
23
+ const isRight = anchorX < screenWidth / 2;
24
+ if (isUp) {
25
+ setVerticalPosition("up");
26
+ } else if (isDown) {
27
+ setVerticalPosition("down");
28
+ }
29
+ if (isLeft) {
30
+ setHorizontalPosition("left");
31
+ } else if (isRight) {
32
+ setHorizontalPosition("right");
33
+ }
34
+ } else {
35
+ setVerticalPosition("down");
36
+ setHorizontalPosition("left");
37
+ }
38
+ }, [anchorRef, contentRef, document.documentElement.clientHeight, isActive, window.innerHeight, window.innerWidth]);
39
+ return [verticalPosition, horizontalPosition];
40
+ };
41
+
42
+ exports.useAutoPosition = useAutoPosition;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ function useDocument() {
4
+ return document;
5
+ }
6
+
7
+ exports.useDocument = useDocument;
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function useHover(ref) {
6
+ const [hovered, setHovered] = React.useState(false);
7
+ const handleMouseOver = () => setHovered(true);
8
+ const handleMouseOut = () => setHovered(false);
9
+ React.useEffect(() => {
10
+ if (!ref) return undefined;
11
+ const node = ref.current;
12
+ if (node) {
13
+ node.addEventListener("mouseover", handleMouseOver);
14
+ node.addEventListener("mouseout", handleMouseOut);
15
+ return () => {
16
+ node.removeEventListener("mouseover", handleMouseOver);
17
+ node.removeEventListener("mouseout", handleMouseOut);
18
+ };
19
+ }
20
+ return undefined;
21
+ }, [ref]);
22
+ if (!ref) return null;
23
+ return hovered;
24
+ }
25
+
26
+ exports.useHover = useHover;
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var useDocument = require('./useDocument.js');
5
+
6
+ /**
7
+ * useKeyboard handles activation of keyboard hotkeys on a given element.
8
+ * @param {Record<string, (e: KeyboardEvent) => {}} config - A map of keyboardEvent code to function.
9
+ * @param {RefObject} ref - The element which the keyboard config has to apply on.
10
+ * @param {boolean} isActive - A flag to determine when the keyboard config has to be applied.
11
+ *
12
+ * Example:
13
+ * useKeyboard({
14
+ * Escape: closeMenu,
15
+ * ArrowUp: () => { doSomething() },
16
+ * KeyB: () => { console.log("bagi") },
17
+ * }, menuRef, menuOpen)
18
+ *
19
+ * This mean that these keyboard shortcuts will be applied on menuRef when the menu is opened.
20
+ */
21
+
22
+ function useKeyboard(config, ref, isActive) {
23
+ const document = useDocument.useDocument();
24
+ const handleKeyboard = event => {
25
+ if (!isActive) return;
26
+ if (document.activeElement !== ref.current && !ref.current.contains(document.activeElement)) return;
27
+ const targetConfigKey = Object.keys(config).find(targetKeys => targetKeys.split(" ").includes(event.code));
28
+ if (!targetConfigKey) return;
29
+ event.preventDefault();
30
+ const res = config[targetConfigKey](event);
31
+ if (res === false) {
32
+ event.stopPropagation();
33
+ }
34
+ };
35
+ React.useEffect(() => {
36
+ document.addEventListener("keydown", handleKeyboard);
37
+ return () => {
38
+ document.removeEventListener("keydown", handleKeyboard);
39
+ };
40
+ });
41
+ }
42
+
43
+ exports.useKeyboard = useKeyboard;
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var useDocument = require('./useDocument.js');
5
+
6
+ const registry = {};
7
+ const handleEscape = event => {
8
+ if (!event.defaultPrevented) {
9
+ const handlers = Object.values(registry).reverse();
10
+ for (let i = 0; i < handlers.length; i += 1) {
11
+ const handler = handlers[i];
12
+ handler(event);
13
+ if (event.defaultPrevented) break;
14
+ }
15
+ }
16
+ };
17
+ const register = (id, handler) => {
18
+ registry[id] = handler;
19
+ };
20
+ const deregister = id => {
21
+ delete registry[id];
22
+ };
23
+
24
+ // For auto-incrementing unique identifiers for registered different handlers.
25
+ let handlerId = 0;
26
+ const useOnEscapePress = function (onEscape) {
27
+ let callbackDependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [onEscape];
28
+ // eslint-disable-next-line react-hooks/exhaustive-deps
29
+ const escapeCallback = React.useCallback(onEscape, callbackDependencies);
30
+ const document = useDocument.useDocument();
31
+ const handler = React.useCallback(event => {
32
+ if (event.key === "Escape") escapeCallback(event);
33
+ }, [escapeCallback]);
34
+ const id = React.useMemo(() => {
35
+ handlerId += 1;
36
+ return handlerId;
37
+ }, []);
38
+ React.useEffect(() => {
39
+ if (Object.keys(registry).length === 0) {
40
+ document.addEventListener("keydown", handleEscape);
41
+ }
42
+ register(id, handler);
43
+ return () => {
44
+ deregister(id);
45
+ if (Object.keys(registry).length === 0) {
46
+ document.removeEventListener("keydown", handleEscape);
47
+ }
48
+ };
49
+ }, [id, handler, document]);
50
+ };
51
+
52
+ exports.useOnEscapePress = useOnEscapePress;