@itwin/core-react 4.1.0-dev.0 → 4.1.0-dev.1

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 (685) hide show
  1. package/CHANGELOG.md +32 -7
  2. package/lib/cjs/core-react/UiCore.js.map +1 -1
  3. package/lib/cjs/core-react/_geometry.scss +70 -70
  4. package/lib/cjs/core-react/_helpers.scss +51 -51
  5. package/lib/cjs/core-react/_math.scss +13 -13
  6. package/lib/cjs/core-react/_scrollbar.scss +51 -51
  7. package/lib/cjs/core-react/_typography.scss +44 -44
  8. package/lib/cjs/core-react/_z-index.scss +65 -65
  9. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts +1 -1
  10. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  11. package/lib/cjs/core-react/autosuggest/AutoSuggest.js.map +1 -1
  12. package/lib/cjs/core-react/autosuggest/AutoSuggest.scss +79 -79
  13. package/lib/cjs/core-react/badge/Badge.d.ts +1 -1
  14. package/lib/cjs/core-react/badge/Badge.d.ts.map +1 -1
  15. package/lib/cjs/core-react/badge/Badge.js.map +1 -1
  16. package/lib/cjs/core-react/badge/Badge.scss +13 -13
  17. package/lib/cjs/core-react/badge/BadgeUtilities.js.map +1 -1
  18. package/lib/cjs/core-react/badge/BetaBadge.d.ts +1 -1
  19. package/lib/cjs/core-react/badge/BetaBadge.d.ts.map +1 -1
  20. package/lib/cjs/core-react/badge/BetaBadge.js.map +1 -1
  21. package/lib/cjs/core-react/badge/NewBadge.d.ts +1 -1
  22. package/lib/cjs/core-react/badge/NewBadge.d.ts.map +1 -1
  23. package/lib/cjs/core-react/badge/NewBadge.js.map +1 -1
  24. package/lib/cjs/core-react/badge/NewBadge.scss +9 -9
  25. package/lib/cjs/core-react/base/Centered.d.ts +1 -1
  26. package/lib/cjs/core-react/base/Centered.d.ts.map +1 -1
  27. package/lib/cjs/core-react/base/Centered.js.map +1 -1
  28. package/lib/cjs/core-react/base/Div.d.ts +1 -1
  29. package/lib/cjs/core-react/base/Div.d.ts.map +1 -1
  30. package/lib/cjs/core-react/base/Div.js.map +1 -1
  31. package/lib/cjs/core-react/base/DivWithOutsideClick.d.ts +1 -1
  32. package/lib/cjs/core-react/base/DivWithOutsideClick.d.ts.map +1 -1
  33. package/lib/cjs/core-react/base/DivWithOutsideClick.js.map +1 -1
  34. package/lib/cjs/core-react/base/FillCentered.d.ts +1 -1
  35. package/lib/cjs/core-react/base/FillCentered.d.ts.map +1 -1
  36. package/lib/cjs/core-react/base/FillCentered.js.map +1 -1
  37. package/lib/cjs/core-react/base/FlexWrapContainer.d.ts +1 -1
  38. package/lib/cjs/core-react/base/FlexWrapContainer.d.ts.map +1 -1
  39. package/lib/cjs/core-react/base/FlexWrapContainer.js.map +1 -1
  40. package/lib/cjs/core-react/base/Gap.d.ts +1 -1
  41. package/lib/cjs/core-react/base/Gap.d.ts.map +1 -1
  42. package/lib/cjs/core-react/base/Gap.js +1 -1
  43. package/lib/cjs/core-react/base/Gap.js.map +1 -1
  44. package/lib/cjs/core-react/base/PointerEvents.js.map +1 -1
  45. package/lib/cjs/core-react/base/ScrollView.d.ts +1 -1
  46. package/lib/cjs/core-react/base/ScrollView.d.ts.map +1 -1
  47. package/lib/cjs/core-react/base/ScrollView.js.map +1 -1
  48. package/lib/cjs/core-react/base/base.scss +42 -42
  49. package/lib/cjs/core-react/base/classes.scss +13 -13
  50. package/lib/cjs/core-react/base/index.scss +5 -5
  51. package/lib/cjs/core-react/button/UnderlinedButton.js.map +1 -1
  52. package/lib/cjs/core-react/button/UnderlinedButton.scss +32 -32
  53. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts +1 -1
  54. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  55. package/lib/cjs/core-react/checklistbox/CheckListBox.js.map +1 -1
  56. package/lib/cjs/core-react/checklistbox/CheckListBox.scss +21 -21
  57. package/lib/cjs/core-react/classes.scss +11 -11
  58. package/lib/cjs/core-react/colorthemes.scss +61 -61
  59. package/lib/cjs/core-react/colorvariables.scss +131 -131
  60. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts +1 -1
  61. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  62. package/lib/cjs/core-react/contextmenu/ContextMenu.js +2 -1
  63. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  64. package/lib/cjs/core-react/contextmenu/ContextMenu.scss +236 -236
  65. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  66. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.d.ts +1 -1
  67. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.d.ts.map +1 -1
  68. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  69. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts +5 -4
  70. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  71. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  72. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts +3 -3
  73. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  74. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  75. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.d.ts +1 -1
  76. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  77. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js +5 -3
  78. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  79. package/lib/cjs/core-react/contextmenu/PopupContextMenu.d.ts +1 -1
  80. package/lib/cjs/core-react/contextmenu/PopupContextMenu.d.ts.map +1 -1
  81. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  82. package/lib/cjs/core-react/contextmenu/TildeFinder.js.map +1 -1
  83. package/lib/cjs/core-react/dialog/Dialog.d.ts +3 -3
  84. package/lib/cjs/core-react/dialog/Dialog.d.ts.map +1 -1
  85. package/lib/cjs/core-react/dialog/Dialog.js +2 -1
  86. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  87. package/lib/cjs/core-react/dialog/Dialog.scss +245 -245
  88. package/lib/cjs/core-react/dialog/GlobalDialog.d.ts +1 -1
  89. package/lib/cjs/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  90. package/lib/cjs/core-react/dialog/GlobalDialog.js +2 -1
  91. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  92. package/lib/cjs/core-react/elementseparator/ElementSeparator.d.ts +1 -1
  93. package/lib/cjs/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  94. package/lib/cjs/core-react/elementseparator/ElementSeparator.js +2 -2
  95. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  96. package/lib/cjs/core-react/elementseparator/ElementSeparator.scss +85 -85
  97. package/lib/cjs/core-react/enums/Alignment.js.map +1 -1
  98. package/lib/cjs/core-react/enums/CheckBoxState.js.map +1 -1
  99. package/lib/cjs/core-react/enums/Orientation.js.map +1 -1
  100. package/lib/cjs/core-react/enums/SortDirection.js.map +1 -1
  101. package/lib/cjs/core-react/enums/TimeFormat.js.map +1 -1
  102. package/lib/cjs/core-react/expandable/ExpandableList.d.ts +1 -1
  103. package/lib/cjs/core-react/expandable/ExpandableList.d.ts.map +1 -1
  104. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  105. package/lib/cjs/core-react/expandable/ExpandableList.scss +8 -8
  106. package/lib/cjs/core-react/expandable/classes.scss +7 -7
  107. package/lib/cjs/core-react/expandable/index.scss +5 -5
  108. package/lib/cjs/core-react/expandable/list.scss +35 -35
  109. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  110. package/lib/cjs/core-react/focustrap/FocusTrap.js.map +1 -1
  111. package/lib/cjs/core-react/hocs/withIsPressed.js.map +1 -1
  112. package/lib/cjs/core-react/hocs/withOnOutsideClick.js +2 -1
  113. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  114. package/lib/cjs/core-react/hocs/withTimeout.js.map +1 -1
  115. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts +1 -1
  116. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  117. package/lib/cjs/core-react/icons/ConditionalIconItem.js.map +1 -1
  118. package/lib/cjs/core-react/icons/IconComponent.d.ts +2 -2
  119. package/lib/cjs/core-react/icons/IconComponent.d.ts.map +1 -1
  120. package/lib/cjs/core-react/icons/IconComponent.js +1 -1
  121. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  122. package/lib/cjs/core-react/icons/IconComponent.scss +20 -20
  123. package/lib/cjs/core-react/icons/SvgPath.d.ts +1 -1
  124. package/lib/cjs/core-react/icons/SvgPath.d.ts.map +1 -1
  125. package/lib/cjs/core-react/icons/SvgPath.js.map +1 -1
  126. package/lib/cjs/core-react/icons/SvgPath.scss +15 -15
  127. package/lib/cjs/core-react/icons/WebFontIcon.d.ts +1 -1
  128. package/lib/cjs/core-react/icons/WebFontIcon.d.ts.map +1 -1
  129. package/lib/cjs/core-react/icons/WebFontIcon.js.map +1 -1
  130. package/lib/cjs/core-react/icons/WebFontIcon.scss +17 -17
  131. package/lib/cjs/core-react/icons/classes.scss +10 -10
  132. package/lib/cjs/core-react/icons/index.scss +6 -6
  133. package/lib/cjs/core-react/icons/mixins.scss +25 -25
  134. package/lib/cjs/core-react/icons/variables.scss +12 -12
  135. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.d.ts +1 -1
  136. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  137. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  138. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  139. package/lib/cjs/core-react/index.scss +21 -21
  140. package/lib/cjs/core-react/inputs/Input.d.ts +1 -1
  141. package/lib/cjs/core-react/inputs/Input.d.ts.map +1 -1
  142. package/lib/cjs/core-react/inputs/Input.js.map +1 -1
  143. package/lib/cjs/core-react/inputs/InputLabel.d.ts +2 -2
  144. package/lib/cjs/core-react/inputs/InputLabel.d.ts.map +1 -1
  145. package/lib/cjs/core-react/inputs/InputLabel.js.map +1 -1
  146. package/lib/cjs/core-react/inputs/InputStatus.js.map +1 -1
  147. package/lib/cjs/core-react/inputs/LabeledComponentProps.d.ts +2 -2
  148. package/lib/cjs/core-react/inputs/LabeledComponentProps.d.ts.map +1 -1
  149. package/lib/cjs/core-react/inputs/LabeledComponentProps.js.map +1 -1
  150. package/lib/cjs/core-react/inputs/classes.scss +8 -8
  151. package/lib/cjs/core-react/inputs/iconinput/IconInput.d.ts +1 -1
  152. package/lib/cjs/core-react/inputs/iconinput/IconInput.d.ts.map +1 -1
  153. package/lib/cjs/core-react/inputs/iconinput/IconInput.js.map +1 -1
  154. package/lib/cjs/core-react/inputs/iconinput/IconInput.scss +35 -35
  155. package/lib/cjs/core-react/inputs/index.scss +9 -9
  156. package/lib/cjs/core-react/inputs/input-label.scss +90 -90
  157. package/lib/cjs/core-react/inputs/input.scss +58 -58
  158. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts +1 -1
  159. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  160. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  161. package/lib/cjs/core-react/inputs/numberinput/NumberInput.scss +88 -88
  162. package/lib/cjs/core-react/inputs/variables.scss +38 -38
  163. package/lib/cjs/core-react/layout-variables.scss +17 -17
  164. package/lib/cjs/core-react/listbox/Listbox.js +3 -2
  165. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  166. package/lib/cjs/core-react/listbox/Listbox.scss +54 -54
  167. package/lib/cjs/core-react/loading/LoadingBar.d.ts +1 -1
  168. package/lib/cjs/core-react/loading/LoadingBar.d.ts.map +1 -1
  169. package/lib/cjs/core-react/loading/LoadingBar.js.map +1 -1
  170. package/lib/cjs/core-react/loading/LoadingBar.scss +29 -29
  171. package/lib/cjs/core-react/loading/LoadingPrompt.d.ts +1 -1
  172. package/lib/cjs/core-react/loading/LoadingPrompt.d.ts.map +1 -1
  173. package/lib/cjs/core-react/loading/LoadingPrompt.js.map +1 -1
  174. package/lib/cjs/core-react/loading/LoadingPrompt.scss +33 -33
  175. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts +1 -1
  176. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  177. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  178. package/lib/cjs/core-react/loading/LoadingSpinner.scss +26 -26
  179. package/lib/cjs/core-react/loading/LoadingStatus.d.ts +1 -1
  180. package/lib/cjs/core-react/loading/LoadingStatus.d.ts.map +1 -1
  181. package/lib/cjs/core-react/loading/LoadingStatus.js.map +1 -1
  182. package/lib/cjs/core-react/loading/LoadingStatus.scss +20 -20
  183. package/lib/cjs/core-react/loading/index.scss +5 -5
  184. package/lib/cjs/core-react/loading/mixins.scss +57 -57
  185. package/lib/cjs/core-react/messagebox/MessageBox.d.ts +4 -3
  186. package/lib/cjs/core-react/messagebox/MessageBox.d.ts.map +1 -1
  187. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  188. package/lib/cjs/core-react/messagebox/MessageBox.scss +56 -56
  189. package/lib/cjs/core-react/notification/MessageRenderer.d.ts +2 -2
  190. package/lib/cjs/core-react/notification/MessageRenderer.d.ts.map +1 -1
  191. package/lib/cjs/core-react/notification/MessageRenderer.js +1 -1
  192. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  193. package/lib/cjs/core-react/notification/MessageType.d.ts +1 -1
  194. package/lib/cjs/core-react/notification/MessageType.d.ts.map +1 -1
  195. package/lib/cjs/core-react/notification/MessageType.js.map +1 -1
  196. package/lib/cjs/core-react/popup/Popup.d.ts +1 -1
  197. package/lib/cjs/core-react/popup/Popup.d.ts.map +1 -1
  198. package/lib/cjs/core-react/popup/Popup.js +8 -4
  199. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  200. package/lib/cjs/core-react/popup/Popup.scss +240 -240
  201. package/lib/cjs/core-react/radialmenu/Annulus.js.map +1 -1
  202. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts +2 -2
  203. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  204. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  205. package/lib/cjs/core-react/radialmenu/RadialMenu.scss +55 -55
  206. package/lib/cjs/core-react/searchbox/SearchBox.d.ts +1 -1
  207. package/lib/cjs/core-react/searchbox/SearchBox.d.ts.map +1 -1
  208. package/lib/cjs/core-react/searchbox/SearchBox.js.map +1 -1
  209. package/lib/cjs/core-react/searchbox/SearchBox.scss +47 -47
  210. package/lib/cjs/core-react/settings/SettingsContainer.d.ts +1 -1
  211. package/lib/cjs/core-react/settings/SettingsContainer.d.ts.map +1 -1
  212. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  213. package/lib/cjs/core-react/settings/SettingsContainer.scss +68 -68
  214. package/lib/cjs/core-react/settings/SettingsManager.d.ts +1 -1
  215. package/lib/cjs/core-react/settings/SettingsManager.d.ts.map +1 -1
  216. package/lib/cjs/core-react/settings/SettingsManager.js.map +1 -1
  217. package/lib/cjs/core-react/style/baseline.scss +11 -11
  218. package/lib/cjs/core-react/style/breakpoints.scss +41 -41
  219. package/lib/cjs/core-react/style/colors.scss +77 -77
  220. package/lib/cjs/core-react/style/index.scss +10 -10
  221. package/lib/cjs/core-react/style/mixins.scss +27 -27
  222. package/lib/cjs/core-react/style/opacity.scss +16 -16
  223. package/lib/cjs/core-react/style/themecolors.scss +123 -123
  224. package/lib/cjs/core-react/tabs/Tabs.d.ts +1 -1
  225. package/lib/cjs/core-react/tabs/Tabs.d.ts.map +1 -1
  226. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  227. package/lib/cjs/core-react/tabs/VerticalTabs.d.ts +1 -1
  228. package/lib/cjs/core-react/tabs/VerticalTabs.d.ts.map +1 -1
  229. package/lib/cjs/core-react/tabs/VerticalTabs.js.map +1 -1
  230. package/lib/cjs/core-react/tabs/classes.scss +7 -7
  231. package/lib/cjs/core-react/tabs/index.scss +5 -5
  232. package/lib/cjs/core-react/tabs/tabs.scss +96 -96
  233. package/lib/cjs/core-react/tabs/vertical.scss +51 -51
  234. package/lib/cjs/core-react/text/BlockText.d.ts +1 -1
  235. package/lib/cjs/core-react/text/BlockText.d.ts.map +1 -1
  236. package/lib/cjs/core-react/text/BlockText.js.map +1 -1
  237. package/lib/cjs/core-react/text/BodyText.d.ts +1 -1
  238. package/lib/cjs/core-react/text/BodyText.d.ts.map +1 -1
  239. package/lib/cjs/core-react/text/BodyText.js.map +1 -1
  240. package/lib/cjs/core-react/text/DisabledText.d.ts +1 -1
  241. package/lib/cjs/core-react/text/DisabledText.d.ts.map +1 -1
  242. package/lib/cjs/core-react/text/DisabledText.js.map +1 -1
  243. package/lib/cjs/core-react/text/FilteredText.d.ts +2 -2
  244. package/lib/cjs/core-react/text/FilteredText.d.ts.map +1 -1
  245. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  246. package/lib/cjs/core-react/text/FilteredText.scss +10 -10
  247. package/lib/cjs/core-react/text/MutedText.d.ts +1 -1
  248. package/lib/cjs/core-react/text/MutedText.d.ts.map +1 -1
  249. package/lib/cjs/core-react/text/MutedText.js.map +1 -1
  250. package/lib/cjs/core-react/text/StyledText.d.ts +1 -1
  251. package/lib/cjs/core-react/text/StyledText.d.ts.map +1 -1
  252. package/lib/cjs/core-react/text/StyledText.js.map +1 -1
  253. package/lib/cjs/core-react/text/TextProps.d.ts +2 -2
  254. package/lib/cjs/core-react/text/TextProps.d.ts.map +1 -1
  255. package/lib/cjs/core-react/text/TextProps.js.map +1 -1
  256. package/lib/cjs/core-react/text/block.scss +15 -15
  257. package/lib/cjs/core-react/text/body.scss +13 -13
  258. package/lib/cjs/core-react/text/classes.scss +10 -10
  259. package/lib/cjs/core-react/text/disabled.scss +10 -10
  260. package/lib/cjs/core-react/text/index.scss +10 -10
  261. package/lib/cjs/core-react/text/mixins.scss +24 -24
  262. package/lib/cjs/core-react/text/muted.scss +10 -10
  263. package/lib/cjs/core-react/tree/Branch.d.ts +1 -1
  264. package/lib/cjs/core-react/tree/Branch.d.ts.map +1 -1
  265. package/lib/cjs/core-react/tree/Branch.js.map +1 -1
  266. package/lib/cjs/core-react/tree/Branch.scss +12 -12
  267. package/lib/cjs/core-react/tree/ExpansionToggle.d.ts +1 -1
  268. package/lib/cjs/core-react/tree/ExpansionToggle.d.ts.map +1 -1
  269. package/lib/cjs/core-react/tree/ExpansionToggle.js.map +1 -1
  270. package/lib/cjs/core-react/tree/ExpansionToggle.scss +32 -32
  271. package/lib/cjs/core-react/tree/Node.d.ts +3 -3
  272. package/lib/cjs/core-react/tree/Node.d.ts.map +1 -1
  273. package/lib/cjs/core-react/tree/Node.js +2 -1
  274. package/lib/cjs/core-react/tree/Node.js.map +1 -1
  275. package/lib/cjs/core-react/tree/Node.scss +68 -68
  276. package/lib/cjs/core-react/tree/Placeholder.d.ts +1 -1
  277. package/lib/cjs/core-react/tree/Placeholder.d.ts.map +1 -1
  278. package/lib/cjs/core-react/tree/Placeholder.js.map +1 -1
  279. package/lib/cjs/core-react/tree/Placeholder.scss +17 -17
  280. package/lib/cjs/core-react/tree/Tree.d.ts +1 -1
  281. package/lib/cjs/core-react/tree/Tree.d.ts.map +1 -1
  282. package/lib/cjs/core-react/tree/Tree.js.map +1 -1
  283. package/lib/cjs/core-react/tree/Tree.scss +21 -21
  284. package/lib/cjs/core-react/uistate/LocalStateStorage.d.ts +1 -1
  285. package/lib/cjs/core-react/uistate/LocalStateStorage.d.ts.map +1 -1
  286. package/lib/cjs/core-react/uistate/LocalStateStorage.js.map +1 -1
  287. package/lib/cjs/core-react/uistate/UiStateEntry.d.ts +1 -1
  288. package/lib/cjs/core-react/uistate/UiStateEntry.d.ts.map +1 -1
  289. package/lib/cjs/core-react/uistate/UiStateEntry.js.map +1 -1
  290. package/lib/cjs/core-react/uistate/UiStateStorage.js.map +1 -1
  291. package/lib/cjs/core-react/utils/IconHelper.d.ts +1 -1
  292. package/lib/cjs/core-react/utils/IconHelper.d.ts.map +1 -1
  293. package/lib/cjs/core-react/utils/IconHelper.js.map +1 -1
  294. package/lib/cjs/core-react/utils/IconWebComponent.js +1 -1
  295. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  296. package/lib/cjs/core-react/utils/Point.d.ts +1 -1
  297. package/lib/cjs/core-react/utils/Point.d.ts.map +1 -1
  298. package/lib/cjs/core-react/utils/Point.js.map +1 -1
  299. package/lib/cjs/core-react/utils/Props.d.ts +2 -2
  300. package/lib/cjs/core-react/utils/Props.d.ts.map +1 -1
  301. package/lib/cjs/core-react/utils/Props.js.map +1 -1
  302. package/lib/cjs/core-react/utils/Rectangle.d.ts +3 -2
  303. package/lib/cjs/core-react/utils/Rectangle.d.ts.map +1 -1
  304. package/lib/cjs/core-react/utils/Rectangle.js.map +1 -1
  305. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.d.ts +1 -1
  306. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  307. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  308. package/lib/cjs/core-react/utils/Size.js.map +1 -1
  309. package/lib/cjs/core-react/utils/Timer.js.map +1 -1
  310. package/lib/cjs/core-react/utils/UiGeometry.js.map +1 -1
  311. package/lib/cjs/core-react/utils/flattenChildren.js.map +1 -1
  312. package/lib/cjs/core-react/utils/getBestBWContrastColor.js.map +1 -1
  313. package/lib/cjs/core-react/utils/getCssVariable.js +1 -1
  314. package/lib/cjs/core-react/utils/getCssVariable.js.map +1 -1
  315. package/lib/cjs/core-react/utils/getDisplayName.d.ts +1 -1
  316. package/lib/cjs/core-react/utils/getDisplayName.d.ts.map +1 -1
  317. package/lib/cjs/core-react/utils/getDisplayName.js.map +1 -1
  318. package/lib/cjs/core-react/utils/getUserColor.js.map +1 -1
  319. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  320. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js +2 -1
  321. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  322. package/lib/cjs/core-react/utils/hooks/useDisposable.d.ts +1 -1
  323. package/lib/cjs/core-react/utils/hooks/useDisposable.d.ts.map +1 -1
  324. package/lib/cjs/core-react/utils/hooks/useDisposable.js.map +1 -1
  325. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  326. package/lib/cjs/core-react/utils/hooks/useEventListener.js.map +1 -1
  327. package/lib/cjs/core-react/utils/hooks/useInterval.js.map +1 -1
  328. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  329. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  330. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  331. package/lib/cjs/core-react/utils/hooks/useRefEffect.js.map +1 -1
  332. package/lib/cjs/core-react/utils/hooks/useRefState.js.map +1 -1
  333. package/lib/cjs/core-react/utils/hooks/useRefs.js.map +1 -1
  334. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js +13 -8
  335. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  336. package/lib/cjs/core-react/utils/hooks/useTargeted.js.map +1 -1
  337. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  338. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  339. package/lib/cjs/core-react/utils/isPromiseLike.js.map +1 -1
  340. package/lib/cjs/core-react/utils/shallowDiffers.js.map +1 -1
  341. package/lib/cjs/core-react/utils/typeUtils.js.map +1 -1
  342. package/lib/cjs/core-react.js.map +1 -1
  343. package/lib/esm/core-react/UiCore.js.map +1 -1
  344. package/lib/esm/core-react/_geometry.scss +70 -70
  345. package/lib/esm/core-react/_helpers.scss +51 -51
  346. package/lib/esm/core-react/_math.scss +13 -13
  347. package/lib/esm/core-react/_scrollbar.scss +51 -51
  348. package/lib/esm/core-react/_typography.scss +44 -44
  349. package/lib/esm/core-react/_z-index.scss +65 -65
  350. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts +1 -1
  351. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  352. package/lib/esm/core-react/autosuggest/AutoSuggest.js.map +1 -1
  353. package/lib/esm/core-react/autosuggest/AutoSuggest.scss +79 -79
  354. package/lib/esm/core-react/badge/Badge.d.ts +1 -1
  355. package/lib/esm/core-react/badge/Badge.d.ts.map +1 -1
  356. package/lib/esm/core-react/badge/Badge.js.map +1 -1
  357. package/lib/esm/core-react/badge/Badge.scss +13 -13
  358. package/lib/esm/core-react/badge/BadgeUtilities.js.map +1 -1
  359. package/lib/esm/core-react/badge/BetaBadge.d.ts +1 -1
  360. package/lib/esm/core-react/badge/BetaBadge.d.ts.map +1 -1
  361. package/lib/esm/core-react/badge/BetaBadge.js.map +1 -1
  362. package/lib/esm/core-react/badge/NewBadge.d.ts +1 -1
  363. package/lib/esm/core-react/badge/NewBadge.d.ts.map +1 -1
  364. package/lib/esm/core-react/badge/NewBadge.js.map +1 -1
  365. package/lib/esm/core-react/badge/NewBadge.scss +9 -9
  366. package/lib/esm/core-react/base/Centered.d.ts +1 -1
  367. package/lib/esm/core-react/base/Centered.d.ts.map +1 -1
  368. package/lib/esm/core-react/base/Centered.js.map +1 -1
  369. package/lib/esm/core-react/base/Div.d.ts +1 -1
  370. package/lib/esm/core-react/base/Div.d.ts.map +1 -1
  371. package/lib/esm/core-react/base/Div.js.map +1 -1
  372. package/lib/esm/core-react/base/DivWithOutsideClick.d.ts +1 -1
  373. package/lib/esm/core-react/base/DivWithOutsideClick.d.ts.map +1 -1
  374. package/lib/esm/core-react/base/DivWithOutsideClick.js.map +1 -1
  375. package/lib/esm/core-react/base/FillCentered.d.ts +1 -1
  376. package/lib/esm/core-react/base/FillCentered.d.ts.map +1 -1
  377. package/lib/esm/core-react/base/FillCentered.js.map +1 -1
  378. package/lib/esm/core-react/base/FlexWrapContainer.d.ts +1 -1
  379. package/lib/esm/core-react/base/FlexWrapContainer.d.ts.map +1 -1
  380. package/lib/esm/core-react/base/FlexWrapContainer.js.map +1 -1
  381. package/lib/esm/core-react/base/Gap.d.ts +1 -1
  382. package/lib/esm/core-react/base/Gap.d.ts.map +1 -1
  383. package/lib/esm/core-react/base/Gap.js +1 -1
  384. package/lib/esm/core-react/base/Gap.js.map +1 -1
  385. package/lib/esm/core-react/base/PointerEvents.js.map +1 -1
  386. package/lib/esm/core-react/base/ScrollView.d.ts +1 -1
  387. package/lib/esm/core-react/base/ScrollView.d.ts.map +1 -1
  388. package/lib/esm/core-react/base/ScrollView.js.map +1 -1
  389. package/lib/esm/core-react/base/base.scss +42 -42
  390. package/lib/esm/core-react/base/classes.scss +13 -13
  391. package/lib/esm/core-react/base/index.scss +5 -5
  392. package/lib/esm/core-react/button/UnderlinedButton.js.map +1 -1
  393. package/lib/esm/core-react/button/UnderlinedButton.scss +32 -32
  394. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts +1 -1
  395. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  396. package/lib/esm/core-react/checklistbox/CheckListBox.js.map +1 -1
  397. package/lib/esm/core-react/checklistbox/CheckListBox.scss +21 -21
  398. package/lib/esm/core-react/classes.scss +11 -11
  399. package/lib/esm/core-react/colorthemes.scss +61 -61
  400. package/lib/esm/core-react/colorvariables.scss +131 -131
  401. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts +1 -1
  402. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  403. package/lib/esm/core-react/contextmenu/ContextMenu.js +2 -1
  404. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  405. package/lib/esm/core-react/contextmenu/ContextMenu.scss +236 -236
  406. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  407. package/lib/esm/core-react/contextmenu/ContextMenuDivider.d.ts +1 -1
  408. package/lib/esm/core-react/contextmenu/ContextMenuDivider.d.ts.map +1 -1
  409. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  410. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts +5 -4
  411. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts.map +1 -1
  412. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  413. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts +3 -3
  414. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  415. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  416. package/lib/esm/core-react/contextmenu/GlobalContextMenu.d.ts +1 -1
  417. package/lib/esm/core-react/contextmenu/GlobalContextMenu.d.ts.map +1 -1
  418. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js +5 -3
  419. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  420. package/lib/esm/core-react/contextmenu/PopupContextMenu.d.ts +1 -1
  421. package/lib/esm/core-react/contextmenu/PopupContextMenu.d.ts.map +1 -1
  422. package/lib/esm/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  423. package/lib/esm/core-react/contextmenu/TildeFinder.js.map +1 -1
  424. package/lib/esm/core-react/dialog/Dialog.d.ts +3 -3
  425. package/lib/esm/core-react/dialog/Dialog.d.ts.map +1 -1
  426. package/lib/esm/core-react/dialog/Dialog.js +2 -1
  427. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  428. package/lib/esm/core-react/dialog/Dialog.scss +245 -245
  429. package/lib/esm/core-react/dialog/GlobalDialog.d.ts +1 -1
  430. package/lib/esm/core-react/dialog/GlobalDialog.d.ts.map +1 -1
  431. package/lib/esm/core-react/dialog/GlobalDialog.js +2 -1
  432. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  433. package/lib/esm/core-react/elementseparator/ElementSeparator.d.ts +1 -1
  434. package/lib/esm/core-react/elementseparator/ElementSeparator.d.ts.map +1 -1
  435. package/lib/esm/core-react/elementseparator/ElementSeparator.js +2 -2
  436. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  437. package/lib/esm/core-react/elementseparator/ElementSeparator.scss +85 -85
  438. package/lib/esm/core-react/enums/Alignment.js.map +1 -1
  439. package/lib/esm/core-react/enums/CheckBoxState.js.map +1 -1
  440. package/lib/esm/core-react/enums/Orientation.js.map +1 -1
  441. package/lib/esm/core-react/enums/SortDirection.js.map +1 -1
  442. package/lib/esm/core-react/enums/TimeFormat.js.map +1 -1
  443. package/lib/esm/core-react/expandable/ExpandableList.d.ts +1 -1
  444. package/lib/esm/core-react/expandable/ExpandableList.d.ts.map +1 -1
  445. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  446. package/lib/esm/core-react/expandable/ExpandableList.scss +8 -8
  447. package/lib/esm/core-react/expandable/classes.scss +7 -7
  448. package/lib/esm/core-react/expandable/index.scss +5 -5
  449. package/lib/esm/core-react/expandable/list.scss +35 -35
  450. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  451. package/lib/esm/core-react/focustrap/FocusTrap.js.map +1 -1
  452. package/lib/esm/core-react/hocs/withIsPressed.js.map +1 -1
  453. package/lib/esm/core-react/hocs/withOnOutsideClick.js +2 -1
  454. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  455. package/lib/esm/core-react/hocs/withTimeout.js.map +1 -1
  456. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts +1 -1
  457. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts.map +1 -1
  458. package/lib/esm/core-react/icons/ConditionalIconItem.js.map +1 -1
  459. package/lib/esm/core-react/icons/IconComponent.d.ts +2 -2
  460. package/lib/esm/core-react/icons/IconComponent.d.ts.map +1 -1
  461. package/lib/esm/core-react/icons/IconComponent.js +1 -1
  462. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  463. package/lib/esm/core-react/icons/IconComponent.scss +20 -20
  464. package/lib/esm/core-react/icons/SvgPath.d.ts +1 -1
  465. package/lib/esm/core-react/icons/SvgPath.d.ts.map +1 -1
  466. package/lib/esm/core-react/icons/SvgPath.js.map +1 -1
  467. package/lib/esm/core-react/icons/SvgPath.scss +15 -15
  468. package/lib/esm/core-react/icons/WebFontIcon.d.ts +1 -1
  469. package/lib/esm/core-react/icons/WebFontIcon.d.ts.map +1 -1
  470. package/lib/esm/core-react/icons/WebFontIcon.js.map +1 -1
  471. package/lib/esm/core-react/icons/WebFontIcon.scss +17 -17
  472. package/lib/esm/core-react/icons/classes.scss +10 -10
  473. package/lib/esm/core-react/icons/index.scss +6 -6
  474. package/lib/esm/core-react/icons/mixins.scss +25 -25
  475. package/lib/esm/core-react/icons/variables.scss +12 -12
  476. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.d.ts +1 -1
  477. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.d.ts.map +1 -1
  478. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  479. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  480. package/lib/esm/core-react/index.scss +21 -21
  481. package/lib/esm/core-react/inputs/Input.d.ts +1 -1
  482. package/lib/esm/core-react/inputs/Input.d.ts.map +1 -1
  483. package/lib/esm/core-react/inputs/Input.js.map +1 -1
  484. package/lib/esm/core-react/inputs/InputLabel.d.ts +2 -2
  485. package/lib/esm/core-react/inputs/InputLabel.d.ts.map +1 -1
  486. package/lib/esm/core-react/inputs/InputLabel.js.map +1 -1
  487. package/lib/esm/core-react/inputs/InputStatus.js.map +1 -1
  488. package/lib/esm/core-react/inputs/LabeledComponentProps.d.ts +2 -2
  489. package/lib/esm/core-react/inputs/LabeledComponentProps.d.ts.map +1 -1
  490. package/lib/esm/core-react/inputs/LabeledComponentProps.js.map +1 -1
  491. package/lib/esm/core-react/inputs/classes.scss +8 -8
  492. package/lib/esm/core-react/inputs/iconinput/IconInput.d.ts +1 -1
  493. package/lib/esm/core-react/inputs/iconinput/IconInput.d.ts.map +1 -1
  494. package/lib/esm/core-react/inputs/iconinput/IconInput.js.map +1 -1
  495. package/lib/esm/core-react/inputs/iconinput/IconInput.scss +35 -35
  496. package/lib/esm/core-react/inputs/index.scss +9 -9
  497. package/lib/esm/core-react/inputs/input-label.scss +90 -90
  498. package/lib/esm/core-react/inputs/input.scss +58 -58
  499. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts +1 -1
  500. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  501. package/lib/esm/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  502. package/lib/esm/core-react/inputs/numberinput/NumberInput.scss +88 -88
  503. package/lib/esm/core-react/inputs/variables.scss +38 -38
  504. package/lib/esm/core-react/layout-variables.scss +17 -17
  505. package/lib/esm/core-react/listbox/Listbox.js +3 -2
  506. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  507. package/lib/esm/core-react/listbox/Listbox.scss +54 -54
  508. package/lib/esm/core-react/loading/LoadingBar.d.ts +1 -1
  509. package/lib/esm/core-react/loading/LoadingBar.d.ts.map +1 -1
  510. package/lib/esm/core-react/loading/LoadingBar.js.map +1 -1
  511. package/lib/esm/core-react/loading/LoadingBar.scss +29 -29
  512. package/lib/esm/core-react/loading/LoadingPrompt.d.ts +1 -1
  513. package/lib/esm/core-react/loading/LoadingPrompt.d.ts.map +1 -1
  514. package/lib/esm/core-react/loading/LoadingPrompt.js.map +1 -1
  515. package/lib/esm/core-react/loading/LoadingPrompt.scss +33 -33
  516. package/lib/esm/core-react/loading/LoadingSpinner.d.ts +1 -1
  517. package/lib/esm/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  518. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  519. package/lib/esm/core-react/loading/LoadingSpinner.scss +26 -26
  520. package/lib/esm/core-react/loading/LoadingStatus.d.ts +1 -1
  521. package/lib/esm/core-react/loading/LoadingStatus.d.ts.map +1 -1
  522. package/lib/esm/core-react/loading/LoadingStatus.js.map +1 -1
  523. package/lib/esm/core-react/loading/LoadingStatus.scss +20 -20
  524. package/lib/esm/core-react/loading/index.scss +5 -5
  525. package/lib/esm/core-react/loading/mixins.scss +57 -57
  526. package/lib/esm/core-react/messagebox/MessageBox.d.ts +4 -3
  527. package/lib/esm/core-react/messagebox/MessageBox.d.ts.map +1 -1
  528. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  529. package/lib/esm/core-react/messagebox/MessageBox.scss +56 -56
  530. package/lib/esm/core-react/notification/MessageRenderer.d.ts +2 -2
  531. package/lib/esm/core-react/notification/MessageRenderer.d.ts.map +1 -1
  532. package/lib/esm/core-react/notification/MessageRenderer.js +1 -1
  533. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  534. package/lib/esm/core-react/notification/MessageType.d.ts +1 -1
  535. package/lib/esm/core-react/notification/MessageType.d.ts.map +1 -1
  536. package/lib/esm/core-react/notification/MessageType.js.map +1 -1
  537. package/lib/esm/core-react/popup/Popup.d.ts +1 -1
  538. package/lib/esm/core-react/popup/Popup.d.ts.map +1 -1
  539. package/lib/esm/core-react/popup/Popup.js +8 -4
  540. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  541. package/lib/esm/core-react/popup/Popup.scss +240 -240
  542. package/lib/esm/core-react/radialmenu/Annulus.js.map +1 -1
  543. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts +2 -2
  544. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  545. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  546. package/lib/esm/core-react/radialmenu/RadialMenu.scss +55 -55
  547. package/lib/esm/core-react/searchbox/SearchBox.d.ts +1 -1
  548. package/lib/esm/core-react/searchbox/SearchBox.d.ts.map +1 -1
  549. package/lib/esm/core-react/searchbox/SearchBox.js.map +1 -1
  550. package/lib/esm/core-react/searchbox/SearchBox.scss +47 -47
  551. package/lib/esm/core-react/settings/SettingsContainer.d.ts +1 -1
  552. package/lib/esm/core-react/settings/SettingsContainer.d.ts.map +1 -1
  553. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  554. package/lib/esm/core-react/settings/SettingsContainer.scss +68 -68
  555. package/lib/esm/core-react/settings/SettingsManager.d.ts +1 -1
  556. package/lib/esm/core-react/settings/SettingsManager.d.ts.map +1 -1
  557. package/lib/esm/core-react/settings/SettingsManager.js.map +1 -1
  558. package/lib/esm/core-react/style/baseline.scss +11 -11
  559. package/lib/esm/core-react/style/breakpoints.scss +41 -41
  560. package/lib/esm/core-react/style/colors.scss +77 -77
  561. package/lib/esm/core-react/style/index.scss +10 -10
  562. package/lib/esm/core-react/style/mixins.scss +27 -27
  563. package/lib/esm/core-react/style/opacity.scss +16 -16
  564. package/lib/esm/core-react/style/themecolors.scss +123 -123
  565. package/lib/esm/core-react/tabs/Tabs.d.ts +1 -1
  566. package/lib/esm/core-react/tabs/Tabs.d.ts.map +1 -1
  567. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  568. package/lib/esm/core-react/tabs/VerticalTabs.d.ts +1 -1
  569. package/lib/esm/core-react/tabs/VerticalTabs.d.ts.map +1 -1
  570. package/lib/esm/core-react/tabs/VerticalTabs.js.map +1 -1
  571. package/lib/esm/core-react/tabs/classes.scss +7 -7
  572. package/lib/esm/core-react/tabs/index.scss +5 -5
  573. package/lib/esm/core-react/tabs/tabs.scss +96 -96
  574. package/lib/esm/core-react/tabs/vertical.scss +51 -51
  575. package/lib/esm/core-react/text/BlockText.d.ts +1 -1
  576. package/lib/esm/core-react/text/BlockText.d.ts.map +1 -1
  577. package/lib/esm/core-react/text/BlockText.js.map +1 -1
  578. package/lib/esm/core-react/text/BodyText.d.ts +1 -1
  579. package/lib/esm/core-react/text/BodyText.d.ts.map +1 -1
  580. package/lib/esm/core-react/text/BodyText.js.map +1 -1
  581. package/lib/esm/core-react/text/DisabledText.d.ts +1 -1
  582. package/lib/esm/core-react/text/DisabledText.d.ts.map +1 -1
  583. package/lib/esm/core-react/text/DisabledText.js.map +1 -1
  584. package/lib/esm/core-react/text/FilteredText.d.ts +2 -2
  585. package/lib/esm/core-react/text/FilteredText.d.ts.map +1 -1
  586. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  587. package/lib/esm/core-react/text/FilteredText.scss +10 -10
  588. package/lib/esm/core-react/text/MutedText.d.ts +1 -1
  589. package/lib/esm/core-react/text/MutedText.d.ts.map +1 -1
  590. package/lib/esm/core-react/text/MutedText.js.map +1 -1
  591. package/lib/esm/core-react/text/StyledText.d.ts +1 -1
  592. package/lib/esm/core-react/text/StyledText.d.ts.map +1 -1
  593. package/lib/esm/core-react/text/StyledText.js.map +1 -1
  594. package/lib/esm/core-react/text/TextProps.d.ts +2 -2
  595. package/lib/esm/core-react/text/TextProps.d.ts.map +1 -1
  596. package/lib/esm/core-react/text/TextProps.js.map +1 -1
  597. package/lib/esm/core-react/text/block.scss +15 -15
  598. package/lib/esm/core-react/text/body.scss +13 -13
  599. package/lib/esm/core-react/text/classes.scss +10 -10
  600. package/lib/esm/core-react/text/disabled.scss +10 -10
  601. package/lib/esm/core-react/text/index.scss +10 -10
  602. package/lib/esm/core-react/text/mixins.scss +24 -24
  603. package/lib/esm/core-react/text/muted.scss +10 -10
  604. package/lib/esm/core-react/tree/Branch.d.ts +1 -1
  605. package/lib/esm/core-react/tree/Branch.d.ts.map +1 -1
  606. package/lib/esm/core-react/tree/Branch.js.map +1 -1
  607. package/lib/esm/core-react/tree/Branch.scss +12 -12
  608. package/lib/esm/core-react/tree/ExpansionToggle.d.ts +1 -1
  609. package/lib/esm/core-react/tree/ExpansionToggle.d.ts.map +1 -1
  610. package/lib/esm/core-react/tree/ExpansionToggle.js.map +1 -1
  611. package/lib/esm/core-react/tree/ExpansionToggle.scss +32 -32
  612. package/lib/esm/core-react/tree/Node.d.ts +3 -3
  613. package/lib/esm/core-react/tree/Node.d.ts.map +1 -1
  614. package/lib/esm/core-react/tree/Node.js +2 -1
  615. package/lib/esm/core-react/tree/Node.js.map +1 -1
  616. package/lib/esm/core-react/tree/Node.scss +68 -68
  617. package/lib/esm/core-react/tree/Placeholder.d.ts +1 -1
  618. package/lib/esm/core-react/tree/Placeholder.d.ts.map +1 -1
  619. package/lib/esm/core-react/tree/Placeholder.js.map +1 -1
  620. package/lib/esm/core-react/tree/Placeholder.scss +17 -17
  621. package/lib/esm/core-react/tree/Tree.d.ts +1 -1
  622. package/lib/esm/core-react/tree/Tree.d.ts.map +1 -1
  623. package/lib/esm/core-react/tree/Tree.js.map +1 -1
  624. package/lib/esm/core-react/tree/Tree.scss +21 -21
  625. package/lib/esm/core-react/uistate/LocalStateStorage.d.ts +1 -1
  626. package/lib/esm/core-react/uistate/LocalStateStorage.d.ts.map +1 -1
  627. package/lib/esm/core-react/uistate/LocalStateStorage.js.map +1 -1
  628. package/lib/esm/core-react/uistate/UiStateEntry.d.ts +1 -1
  629. package/lib/esm/core-react/uistate/UiStateEntry.d.ts.map +1 -1
  630. package/lib/esm/core-react/uistate/UiStateEntry.js.map +1 -1
  631. package/lib/esm/core-react/uistate/UiStateStorage.js.map +1 -1
  632. package/lib/esm/core-react/utils/IconHelper.d.ts +1 -1
  633. package/lib/esm/core-react/utils/IconHelper.d.ts.map +1 -1
  634. package/lib/esm/core-react/utils/IconHelper.js.map +1 -1
  635. package/lib/esm/core-react/utils/IconWebComponent.js +1 -1
  636. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  637. package/lib/esm/core-react/utils/Point.d.ts +1 -1
  638. package/lib/esm/core-react/utils/Point.d.ts.map +1 -1
  639. package/lib/esm/core-react/utils/Point.js.map +1 -1
  640. package/lib/esm/core-react/utils/Props.d.ts +2 -2
  641. package/lib/esm/core-react/utils/Props.d.ts.map +1 -1
  642. package/lib/esm/core-react/utils/Props.js.map +1 -1
  643. package/lib/esm/core-react/utils/Rectangle.d.ts +3 -2
  644. package/lib/esm/core-react/utils/Rectangle.d.ts.map +1 -1
  645. package/lib/esm/core-react/utils/Rectangle.js.map +1 -1
  646. package/lib/esm/core-react/utils/ScrollPositionMaintainer.d.ts +1 -1
  647. package/lib/esm/core-react/utils/ScrollPositionMaintainer.d.ts.map +1 -1
  648. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  649. package/lib/esm/core-react/utils/Size.js.map +1 -1
  650. package/lib/esm/core-react/utils/Timer.js.map +1 -1
  651. package/lib/esm/core-react/utils/UiGeometry.js.map +1 -1
  652. package/lib/esm/core-react/utils/flattenChildren.js.map +1 -1
  653. package/lib/esm/core-react/utils/getBestBWContrastColor.js.map +1 -1
  654. package/lib/esm/core-react/utils/getCssVariable.js +1 -1
  655. package/lib/esm/core-react/utils/getCssVariable.js.map +1 -1
  656. package/lib/esm/core-react/utils/getDisplayName.d.ts +1 -1
  657. package/lib/esm/core-react/utils/getDisplayName.d.ts.map +1 -1
  658. package/lib/esm/core-react/utils/getDisplayName.js.map +1 -1
  659. package/lib/esm/core-react/utils/getUserColor.js.map +1 -1
  660. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  661. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js +2 -1
  662. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  663. package/lib/esm/core-react/utils/hooks/useDisposable.d.ts +1 -1
  664. package/lib/esm/core-react/utils/hooks/useDisposable.d.ts.map +1 -1
  665. package/lib/esm/core-react/utils/hooks/useDisposable.js.map +1 -1
  666. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  667. package/lib/esm/core-react/utils/hooks/useEventListener.js.map +1 -1
  668. package/lib/esm/core-react/utils/hooks/useInterval.js.map +1 -1
  669. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  670. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  671. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  672. package/lib/esm/core-react/utils/hooks/useRefEffect.js.map +1 -1
  673. package/lib/esm/core-react/utils/hooks/useRefState.js.map +1 -1
  674. package/lib/esm/core-react/utils/hooks/useRefs.js.map +1 -1
  675. package/lib/esm/core-react/utils/hooks/useResizeObserver.js +13 -8
  676. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  677. package/lib/esm/core-react/utils/hooks/useTargeted.js.map +1 -1
  678. package/lib/esm/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  679. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  680. package/lib/esm/core-react/utils/isPromiseLike.js.map +1 -1
  681. package/lib/esm/core-react/utils/shallowDiffers.js.map +1 -1
  682. package/lib/esm/core-react/utils/typeUtils.js.map +1 -1
  683. package/lib/esm/core-react.js.map +1 -1
  684. package/lib/public/locales/en/UiCore.json +30 -30
  685. package/package.json +9 -4
@@ -1,56 +1,56 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- @import "../icons/variables";
6
- @import "../style/colors";
7
- @import "../style/baseline";
8
-
9
- .core-message-box-container {
10
- display: flex;
11
- color: var(--iui-color-text);
12
-
13
- .core-message-box-icon {
14
- flex: 0 0;
15
- font-size: $uicore-icons-medium;
16
- padding: 0 $uicore-unbordered-padding $uicore-unbordered-padding
17
- $uicore-unbordered-padding;
18
- margin-top: 10px;
19
- }
20
-
21
- .core-message-box-content {
22
- display: flex;
23
- align-items: center;
24
- flex: 1 1;
25
-
26
- a {
27
- // iTwinUI anchor link style
28
- color: var(--iui-color-text-accent);
29
- -webkit-tap-highlight-color: hsl(
30
- var(--iui-color-accent-hsl) / var(--iui-opacity-6)
31
- );
32
- border-radius: var(--iui-border-radius-1);
33
- cursor: pointer;
34
- text-decoration: none;
35
- }
36
- }
37
- }
38
-
39
- .core-message-box-success {
40
- color: var(--iui-color-text-positive);
41
- }
42
- .core-message-box-information,
43
- .core-message-box-question {
44
- color: var(--iui-color-text-informational);
45
- }
46
- .core-message-box-warning {
47
- color: var(--iui-color-text-warning);
48
- }
49
- .core-message-box-error,
50
- .core-message-box-fatal {
51
- color: var(--iui-color-text-negative);
52
- }
53
-
54
- .notifymessage-icon {
55
- margin-right: 6px;
56
- }
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @import "../icons/variables";
6
+ @import "../style/colors";
7
+ @import "../style/baseline";
8
+
9
+ .core-message-box-container {
10
+ display: flex;
11
+ color: var(--iui-color-text);
12
+
13
+ .core-message-box-icon {
14
+ flex: 0 0;
15
+ font-size: $uicore-icons-medium;
16
+ padding: 0 $uicore-unbordered-padding $uicore-unbordered-padding
17
+ $uicore-unbordered-padding;
18
+ margin-top: 10px;
19
+ }
20
+
21
+ .core-message-box-content {
22
+ display: flex;
23
+ align-items: center;
24
+ flex: 1 1;
25
+
26
+ a {
27
+ // iTwinUI anchor link style
28
+ color: var(--iui-color-text-accent);
29
+ -webkit-tap-highlight-color: hsl(
30
+ var(--iui-color-accent-hsl) / var(--iui-opacity-6)
31
+ );
32
+ border-radius: var(--iui-border-radius-1);
33
+ cursor: pointer;
34
+ text-decoration: none;
35
+ }
36
+ }
37
+ }
38
+
39
+ .core-message-box-success {
40
+ color: var(--iui-color-text-positive);
41
+ }
42
+ .core-message-box-information,
43
+ .core-message-box-question {
44
+ color: var(--iui-color-text-informational);
45
+ }
46
+ .core-message-box-warning {
47
+ color: var(--iui-color-text-warning);
48
+ }
49
+ .core-message-box-error,
50
+ .core-message-box-fatal {
51
+ color: var(--iui-color-text-negative);
52
+ }
53
+
54
+ .notifymessage-icon {
55
+ margin-right: 6px;
56
+ }
@@ -2,8 +2,8 @@
2
2
  * @module Notification
3
3
  */
4
4
  /// <reference types="react" />
5
- import { MessageType } from "./MessageType";
6
- import { ClassNameProps } from "../utils/Props";
5
+ import type { MessageType } from "./MessageType";
6
+ import type { ClassNameProps } from "../utils/Props";
7
7
  /** Properties for the [[MessageRenderer]] component
8
8
  * @public
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRenderer.d.ts","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageRenderer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,EAAiC,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,wBAAwB;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,sBAmE1D"}
1
+ {"version":3,"file":"MessageRenderer.d.ts","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageRenderer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAIrD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,wBAAwB;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,sBAmE1D"}
@@ -21,7 +21,7 @@ export function MessageRenderer(props) {
21
21
  // the esm build of dompurify has a default import but the cjs build does not
22
22
  // if there is a default export, use it (likely esm), otherwise use the namespace
23
23
  // istanbul ignore next
24
- const sanitizer = DOMPurify ?? DOMPurifyNS; // `sanitizer` is default function name for "jam3/no-sanitizer-with-danger" ESLint rule
24
+ const sanitizer = DOMPurify !== null && DOMPurify !== void 0 ? DOMPurify : DOMPurifyNS; // `sanitizer` is default function name for "jam3/no-sanitizer-with-danger" ESLint rule
25
25
  let validAnchors = false;
26
26
  let hasAnchors = false;
27
27
  // verify that the tag has proper relationships
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRenderer.js","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport DOMPurify, * as DOMPurifyNS from \"dompurify\";\r\nimport { isHTMLElement, isReactMessage, MessageType } from \"./MessageType\";\r\nimport { ClassNameProps } from \"../utils/Props\";\r\n\r\n// cSpell:ignore dompurify\r\n\r\n/** Properties for the [[MessageRenderer]] component\r\n * @public\r\n */\r\nexport interface MessageRendererProps extends ClassNameProps {\r\n /** Message to render */\r\n message: MessageType;\r\n /** Indicates whether to use a `span` or `div` element for rendering */\r\n useSpan?: boolean;\r\n}\r\n\r\n/** React component renders a string, HTMLElement or React node in a `div` or `span`\r\n * @public\r\n */\r\nexport function MessageRenderer(props: MessageRendererProps) {\r\n let messageNode = null;\r\n const OutElement = props.useSpan ? \"span\" : \"div\";\r\n\r\n if (typeof props.message === \"string\") {\r\n messageNode = <OutElement className={props.className}>{props.message}</OutElement>;\r\n } else if (isHTMLElement(props.message)) {\r\n // the esm build of dompurify has a default import but the cjs build does not\r\n // if there is a default export, use it (likely esm), otherwise use the namespace\r\n // istanbul ignore next\r\n const sanitizer = DOMPurify ?? DOMPurifyNS; // `sanitizer` is default function name for \"jam3/no-sanitizer-with-danger\" ESLint rule\r\n\r\n let validAnchors = false;\r\n let hasAnchors = false;\r\n\r\n // verify that the tag has proper relationships\r\n const isAnchorValid = (anchor: HTMLAnchorElement): boolean => {\r\n return anchor.hasAttribute(\"rel\") && (anchor.rel.includes(\"noopener\") || anchor.rel.includes(\"noreferrer\"));\r\n };\r\n\r\n // recursively check child elements for valid anchor tags\r\n const checkChildAnchors = (parent: Element) => {\r\n const children = Array.from(parent.children);\r\n for (const child of children){\r\n if (child.hasAttribute(\"target\") && (child as HTMLAnchorElement).target === \"_blank\") {\r\n hasAnchors = true;\r\n validAnchors = isAnchorValid(child as HTMLAnchorElement);\r\n if (!validAnchors) {\r\n return;\r\n }\r\n }\r\n checkChildAnchors(child);\r\n }\r\n };\r\n\r\n // check for anchor tags in the message that have target _blank also have a relationship that avoids security holes\r\n // https://web.dev/external-anchors-use-rel-noopener/\r\n // first check the message element\r\n /* istanbul ignore else */\r\n if (props.message.hasAttribute(\"target\") && (props.message as HTMLAnchorElement).target === \"_blank\") {\r\n hasAnchors = true;\r\n validAnchors = isAnchorValid(props.message as HTMLAnchorElement);\r\n } else {\r\n // if the message element is not an anchor, recursively verify it's children\r\n if (props.message.children) {\r\n checkChildAnchors(props.message);\r\n }\r\n }\r\n\r\n let sanitizedHtml;\r\n if (hasAnchors && validAnchors) {\r\n // all anchors are valid. do not remove the target attr\r\n sanitizedHtml = sanitizer.sanitize(props.message.outerHTML, {ADD_ATTR: [\"target\"]});\r\n } else {\r\n sanitizedHtml = sanitizer.sanitize(props.message.outerHTML);\r\n }\r\n\r\n // we can safely disable jam3/no-sanitizer-with-danger as we are sanitizing above\r\n // eslint-disable-next-line @typescript-eslint/naming-convention, jam3/no-sanitizer-with-danger\r\n messageNode = <OutElement className={props.className} dangerouslySetInnerHTML={{ __html: sanitizedHtml }} />;\r\n } else {\r\n /* istanbul ignore else */\r\n if (isReactMessage(props.message))\r\n messageNode = <OutElement className={props.className}>{props.message.reactNode}</OutElement>;\r\n }\r\n\r\n return messageNode;\r\n}\r\n"]}
1
+ {"version":3,"file":"MessageRenderer.js","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageRenderer.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,SAAS,EAAE,KAAK,WAAW,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAe9D;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAElD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;QACrC,WAAW,GAAG,oBAAC,UAAU,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAG,KAAK,CAAC,OAAO,CAAc,CAAC;KACpF;SAAM,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACvC,6EAA6E;QAC7E,iFAAiF;QACjF,uBAAuB;QACvB,MAAM,SAAS,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,WAAW,CAAC,CAAC,uFAAuF;QAEnI,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,+CAA+C;QAC/C,MAAM,aAAa,GAAG,CAAC,MAAyB,EAAW,EAAE;YAC3D,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9G,CAAC,CAAC;QAEF,yDAAyD;QACzD,MAAM,iBAAiB,GAAG,CAAC,MAAe,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAC;gBAC3B,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAK,KAA2B,CAAC,MAAM,KAAK,QAAQ,EAAE;oBACpF,UAAU,GAAG,IAAI,CAAC;oBAClB,YAAY,GAAG,aAAa,CAAC,KAA0B,CAAC,CAAC;oBACzD,IAAI,CAAC,YAAY,EAAE;wBACjB,OAAO;qBACR;iBACF;gBACD,iBAAiB,CAAC,KAAK,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC;QAEF,mHAAmH;QACnH,qDAAqD;QACrD,kCAAkC;QAClC,0BAA0B;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAK,KAAK,CAAC,OAA6B,CAAC,MAAM,KAAK,QAAQ,EAAE;YACpG,UAAU,GAAG,IAAI,CAAC;YAClB,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,OAA4B,CAAC,CAAC;SAClE;aAAM;YACL,4EAA4E;YAC5E,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC1B,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aAClC;SACF;QAED,IAAI,aAAa,CAAC;QAClB,IAAI,UAAU,IAAI,YAAY,EAAE;YAC9B,uDAAuD;YACvD,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;SACrF;aAAM;YACL,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAC7D;QAED,iFAAiF;QACjF,+FAA+F;QAC/F,WAAW,GAAG,oBAAC,UAAU,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAI,CAAC;KAC9G;SAAM;QACL,0BAA0B;QAC1B,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,GAAG,oBAAC,UAAU,IAAC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAc,CAAC;KAChG;IAED,OAAO,WAAW,CAAC;AACrB,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport * as React from \"react\";\nimport DOMPurify, * as DOMPurifyNS from \"dompurify\";\nimport type { MessageType } from \"./MessageType\";\nimport { isHTMLElement, isReactMessage } from \"./MessageType\";\nimport type { ClassNameProps } from \"../utils/Props\";\n\n// cSpell:ignore dompurify\n\n/** Properties for the [[MessageRenderer]] component\n * @public\n */\nexport interface MessageRendererProps extends ClassNameProps {\n /** Message to render */\n message: MessageType;\n /** Indicates whether to use a `span` or `div` element for rendering */\n useSpan?: boolean;\n}\n\n/** React component renders a string, HTMLElement or React node in a `div` or `span`\n * @public\n */\nexport function MessageRenderer(props: MessageRendererProps) {\n let messageNode = null;\n const OutElement = props.useSpan ? \"span\" : \"div\";\n\n if (typeof props.message === \"string\") {\n messageNode = <OutElement className={props.className}>{props.message}</OutElement>;\n } else if (isHTMLElement(props.message)) {\n // the esm build of dompurify has a default import but the cjs build does not\n // if there is a default export, use it (likely esm), otherwise use the namespace\n // istanbul ignore next\n const sanitizer = DOMPurify ?? DOMPurifyNS; // `sanitizer` is default function name for \"jam3/no-sanitizer-with-danger\" ESLint rule\n\n let validAnchors = false;\n let hasAnchors = false;\n\n // verify that the tag has proper relationships\n const isAnchorValid = (anchor: HTMLAnchorElement): boolean => {\n return anchor.hasAttribute(\"rel\") && (anchor.rel.includes(\"noopener\") || anchor.rel.includes(\"noreferrer\"));\n };\n\n // recursively check child elements for valid anchor tags\n const checkChildAnchors = (parent: Element) => {\n const children = Array.from(parent.children);\n for (const child of children){\n if (child.hasAttribute(\"target\") && (child as HTMLAnchorElement).target === \"_blank\") {\n hasAnchors = true;\n validAnchors = isAnchorValid(child as HTMLAnchorElement);\n if (!validAnchors) {\n return;\n }\n }\n checkChildAnchors(child);\n }\n };\n\n // check for anchor tags in the message that have target _blank also have a relationship that avoids security holes\n // https://web.dev/external-anchors-use-rel-noopener/\n // first check the message element\n /* istanbul ignore else */\n if (props.message.hasAttribute(\"target\") && (props.message as HTMLAnchorElement).target === \"_blank\") {\n hasAnchors = true;\n validAnchors = isAnchorValid(props.message as HTMLAnchorElement);\n } else {\n // if the message element is not an anchor, recursively verify it's children\n if (props.message.children) {\n checkChildAnchors(props.message);\n }\n }\n\n let sanitizedHtml;\n if (hasAnchors && validAnchors) {\n // all anchors are valid. do not remove the target attr\n sanitizedHtml = sanitizer.sanitize(props.message.outerHTML, {ADD_ATTR: [\"target\"]});\n } else {\n sanitizedHtml = sanitizer.sanitize(props.message.outerHTML);\n }\n\n // we can safely disable jam3/no-sanitizer-with-danger as we are sanitizing above\n // eslint-disable-next-line @typescript-eslint/naming-convention, jam3/no-sanitizer-with-danger\n messageNode = <OutElement className={props.className} dangerouslySetInnerHTML={{ __html: sanitizedHtml }} />;\n } else {\n /* istanbul ignore else */\n if (isReactMessage(props.message))\n messageNode = <OutElement className={props.className}>{props.message.reactNode}</OutElement>;\n }\n\n return messageNode;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /** @packageDocumentation
2
2
  * @module Notification
3
3
  */
4
- import * as React from "react";
4
+ import type * as React from "react";
5
5
  /** Describes a React based message
6
6
  * @public
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MessageType.d.ts","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageType.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,YAAa,WAAW,2BAEjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAAa,WAAW,4BAElD,CAAC"}
1
+ {"version":3,"file":"MessageType.d.ts","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageType.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,YAAY,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,YAAa,WAAW,2BAEjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAAa,WAAW,4BAElD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageType.js","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageType.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAgBH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAoB,EAA0B,EAAE;IAC5E,OAAQ,OAAuB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC1D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAoB,EAA2B,EAAE;IAC9E,OAAQ,OAAwB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC3D,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\n\r\n/** Describes a React based message\r\n * @public\r\n */\r\nexport interface ReactMessage {\r\n reactNode: React.ReactNode;\r\n}\r\n\r\n/** Types for message\r\n * @public\r\n */\r\nexport type MessageType = string | HTMLElement | ReactMessage;\r\n\r\n/** HTMLElement type guard.\r\n * @internal\r\n */\r\nexport const isHTMLElement = (message: MessageType): message is HTMLElement => {\r\n return (message as HTMLElement).outerHTML !== undefined;\r\n};\r\n\r\n/** ReactMessage type guard.\r\n * @internal\r\n */\r\nexport const isReactMessage = (message: MessageType): message is ReactMessage => {\r\n return (message as ReactMessage).reactNode !== undefined;\r\n};\r\n"]}
1
+ {"version":3,"file":"MessageType.js","sourceRoot":"","sources":["../../../../src/core-react/notification/MessageType.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAgBH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAoB,EAA0B,EAAE;IAC5E,OAAQ,OAAuB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC1D,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAoB,EAA2B,EAAE;IAC9E,OAAQ,OAAwB,CAAC,SAAS,KAAK,SAAS,CAAC;AAC3D,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notification\n */\n\nimport type * as React from \"react\";\n\n/** Describes a React based message\n * @public\n */\nexport interface ReactMessage {\n reactNode: React.ReactNode;\n}\n\n/** Types for message\n * @public\n */\nexport type MessageType = string | HTMLElement | ReactMessage;\n\n/** HTMLElement type guard.\n * @internal\n */\nexport const isHTMLElement = (message: MessageType): message is HTMLElement => {\n return (message as HTMLElement).outerHTML !== undefined;\n};\n\n/** ReactMessage type guard.\n * @internal\n */\nexport const isReactMessage = (message: MessageType): message is ReactMessage => {\n return (message as ReactMessage).reactNode !== undefined;\n};\n"]}
@@ -4,7 +4,7 @@
4
4
  import "./Popup.scss";
5
5
  import * as React from "react";
6
6
  import { RelativePosition } from "@itwin/appui-abstract";
7
- import { CommonProps } from "../utils/Props";
7
+ import type { CommonProps } from "../utils/Props";
8
8
  /** Properties for the [[Popup]] component
9
9
  * @public
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { FocusTrap } from "../focustrap/FocusTrap";
16
16
  */
17
17
  class Popup extends React.Component {
18
18
  constructor(props) {
19
+ var _a, _b;
19
20
  super(props);
20
21
  this._popup = null;
21
22
  this._bindWindowEvents = () => {
@@ -190,7 +191,7 @@ class Popup extends React.Component {
190
191
  this.setState({ animationEnded: true });
191
192
  }
192
193
  };
193
- const parentDocument = this.props.target?.ownerDocument ?? document;
194
+ const parentDocument = (_b = (_a = this.props.target) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document;
194
195
  this.state = {
195
196
  animationEnded: false,
196
197
  isOpen: this.props.isOpen,
@@ -206,17 +207,19 @@ class Popup extends React.Component {
206
207
  }
207
208
  }
208
209
  getParentWindow() {
210
+ var _a;
209
211
  // istanbul ignore next
210
- return this.state.parentDocument.defaultView ?? window;
212
+ return (_a = this.state.parentDocument.defaultView) !== null && _a !== void 0 ? _a : window;
211
213
  }
212
214
  componentDidUpdate(previousProps, prevState) {
215
+ var _a, _b;
213
216
  if (this.state.position !== prevState.position) {
214
217
  this.setState({ animationEnded: false });
215
218
  }
216
219
  if (this.props.target !== previousProps.target) {
217
220
  // istanbul ignore next
218
221
  {
219
- const parentDocument = this.props.target?.ownerDocument ?? document;
222
+ const parentDocument = (_b = (_a = this.props.target) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document;
220
223
  if (parentDocument !== this.state.parentDocument) {
221
224
  this._unBindWindowEvents();
222
225
  this.setState({ parentDocument });
@@ -379,6 +382,7 @@ class Popup extends React.Component {
379
382
  return newPosition;
380
383
  }
381
384
  render() {
385
+ var _a;
382
386
  const animate = this.props.animate !== undefined ? this.props.animate : true;
383
387
  const className = classnames("core-popup", this._getClassNameByPosition(this.state.position), this.props.showShadow && "core-popup-shadow", this.props.showArrow && "arrow", !animate && "core-popup-animation-none", this.props.className, this.state.animationEnded && "core-animation-ended", (!this.props.isOpen && this.props.keepContentsMounted) && "core-popup-hidden");
384
388
  const style = {
@@ -393,7 +397,7 @@ class Popup extends React.Component {
393
397
  return ReactDOM.createPortal((React.createElement("div", { className: className, "data-testid": "core-popup", ref: (element) => { this._popup = element; }, style: style, role: role, "aria-modal": true, tabIndex: -1, "aria-label": this.props.ariaLabel, onAnimationEnd: this._handleAnimationEnd },
394
398
  React.createElement(FocusTrap, { active: !!this.props.moveFocus, initialFocusElement: this.props.focusTarget, returnFocusOnDeactivate: true }, this.props.children))),
395
399
  // istanbul ignore next
396
- this.state.parentDocument.body.querySelector('[data-root-container="iui-root-id"]') ?? this.state.parentDocument.body);
400
+ (_a = this.state.parentDocument.body.querySelector('[data-root-container="iui-root-id"]')) !== null && _a !== void 0 ? _a : this.state.parentDocument.body);
397
401
  }
398
402
  }
399
403
  Popup.defaultProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Popup\r\n */\r\n\r\nimport \"./Popup.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { FocusTrap } from \"../focustrap/FocusTrap\";\r\nimport { CommonProps } from \"../utils/Props\";\r\n\r\n// cSpell:ignore focustrap focusable alertdialog\r\n\r\n/** @internal */\r\ninterface PopupPoint {\r\n x: number;\r\n y: number;\r\n}\r\n\r\n/** Properties for the [[Popup]] component\r\n * @public\r\n */\r\nexport interface PopupProps extends CommonProps {\r\n /** Show or hide the box shadow (defaults to true) */\r\n showShadow: boolean;\r\n /** Show or hide the arrow (defaults to false) */\r\n showArrow: boolean;\r\n /** Indicates whether the popup is shown or not (defaults to false) */\r\n isOpen: boolean;\r\n /** Direction (relative to the target) to which the popup is expanded (defaults to Bottom) */\r\n position: RelativePosition;\r\n /** Top position (absolute positioning - defaults to 0) */\r\n top: number;\r\n /** Left position (absolute positioning - defaults to 0) */\r\n left: number;\r\n /** Function called when the popup is opened */\r\n onOpen?: () => void;\r\n /** Function called when user clicks outside the popup */\r\n onOutsideClick?: (e: MouseEvent) => void;\r\n /** Function called when the popup is closed */\r\n onClose?: () => void;\r\n /** Function called when the popup is closed on Enter */\r\n onEnter?: () => void;\r\n /** Function called when the wheel is used */\r\n onWheel?: (e: WheelEvent) => void;\r\n /** Function called when the right mouse button is pressed */\r\n onContextMenu?: (e: MouseEvent) => void;\r\n /** Offset from the parent (defaults to 4) */\r\n offset: number;\r\n /** Target element to position popup */\r\n target?: HTMLElement | null;\r\n /** Role - if not specified \"dialog\" is used */\r\n role?: \"dialog\" | \"alert\" | \"alertdialog\";\r\n /** accessibility label */\r\n ariaLabel?: string;\r\n /** set focus to popup - default to not set focus */\r\n moveFocus?: boolean;\r\n /** Element to receive focus, specified by React.RefObject or CSS selector string. If undefined and moveFocus is true then focus is moved to first focusable element. */\r\n focusTarget?: React.RefObject<HTMLElement> | string;\r\n /** Indicates whether the popup is pinned. */\r\n isPinned?: boolean;\r\n /** Indicates whether to use animation for open/close (defaults to true) */\r\n animate?: boolean;\r\n /** Indicates whether to close the popup when Enter is pressed (defaults to true) */\r\n closeOnEnter?: boolean;\r\n /** Indicates whether to close the popup when the wheel is used (defaults to true) */\r\n closeOnWheel?: boolean;\r\n /** Indicates whether to close the popup when the right mouse button is pressed (defaults to true) */\r\n closeOnContextMenu?: boolean;\r\n /** If false outside click processing and closing are skipped if click occurs in another Popup component, default to false. */\r\n closeOnNestedPopupOutsideClick?: boolean;\r\n /** If true the children are mounted once and unmounted when this component is unmounted. If false the\r\n * children are unmounted each time the popup is closed. */\r\n keepContentsMounted?: boolean;\r\n\r\n /**\r\n * If true the popup will remain open and will be repositioned when window resize events occur, default to false.\r\n * @beta\r\n * */\r\n repositionOnResize?: boolean;\r\n\r\n /** Content */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** @internal */\r\ninterface PopupState {\r\n isOpen: boolean;\r\n top: number;\r\n left: number;\r\n position: RelativePosition;\r\n parentDocument: Document;\r\n animationEnded: boolean;\r\n}\r\n\r\n/** Popup React component displays a popup relative to an optional target element.\r\n * @public\r\n */\r\nexport class Popup extends React.Component<PopupProps, PopupState> {\r\n private _popup: HTMLElement | null = null;\r\n\r\n constructor(props: PopupProps) {\r\n super(props);\r\n const parentDocument = this.props.target?.ownerDocument ?? document;\r\n\r\n this.state = {\r\n animationEnded: false,\r\n isOpen: this.props.isOpen,\r\n top: 0,\r\n left: 0,\r\n position: this.props.position,\r\n parentDocument,\r\n };\r\n }\r\n\r\n public static defaultProps: Partial<PopupProps> = {\r\n position: RelativePosition.Bottom,\r\n showShadow: true,\r\n showArrow: false,\r\n isOpen: false,\r\n offset: 4,\r\n top: -1,\r\n left: -1,\r\n };\r\n\r\n public override componentDidMount() {\r\n if (this.props.isOpen) {\r\n this._onShow();\r\n }\r\n }\r\n\r\n private getParentWindow() {\r\n // istanbul ignore next\r\n return this.state.parentDocument.defaultView ?? window;\r\n }\r\n\r\n public override componentDidUpdate(previousProps: PopupProps, prevState: PopupState) {\r\n if (this.state.position !== prevState.position) {\r\n this.setState( { animationEnded: false });\r\n }\r\n\r\n if (this.props.target !== previousProps.target) {\r\n // istanbul ignore next\r\n {\r\n const parentDocument = this.props.target?.ownerDocument ?? document;\r\n if (parentDocument !== this.state.parentDocument) {\r\n this._unBindWindowEvents();\r\n this.setState({ parentDocument });\r\n }\r\n }\r\n }\r\n\r\n if (this.props.isOpen === previousProps.isOpen) {\r\n if (this.props.isOpen) {\r\n const position = this._toggleRelativePosition();\r\n const point = this._fitPopup(this._getPosition(position));\r\n if ((Math.abs(this.state.left - point.x) < 3) &&\r\n (Math.abs(this.state.top - point.y) < 3) &&\r\n this.state.position === position)\r\n return;\r\n\r\n this.setState({\r\n left: point.x,\r\n top: point.y,\r\n position,\r\n });\r\n }\r\n return;\r\n }\r\n\r\n if (this.props.isOpen) {\r\n this._onShow();\r\n } else {\r\n this._onClose();\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n this._unBindWindowEvents();\r\n }\r\n\r\n private _bindWindowEvents = () => {\r\n const activeWindow = this.getParentWindow();\r\n activeWindow.addEventListener(\"pointerdown\", this._handleOutsideClick);\r\n activeWindow.addEventListener(\"resize\", this._resize);\r\n activeWindow.addEventListener(\"contextmenu\", this._handleContextMenu);\r\n activeWindow.addEventListener(\"scroll\", this._hide);\r\n activeWindow.addEventListener(\"wheel\", this._handleWheel);\r\n activeWindow.addEventListener(\"keydown\", this._handleKeyboard);\r\n };\r\n\r\n private _unBindWindowEvents = () => {\r\n const activeWindow = this.getParentWindow();\r\n activeWindow.removeEventListener(\"pointerdown\", this._handleOutsideClick);\r\n activeWindow.removeEventListener(\"resize\", this._resize);\r\n activeWindow.removeEventListener(\"contextmenu\", this._handleContextMenu);\r\n activeWindow.removeEventListener(\"scroll\", this._hide);\r\n activeWindow.removeEventListener(\"wheel\", this._handleWheel);\r\n activeWindow.removeEventListener(\"keydown\", this._handleKeyboard);\r\n };\r\n\r\n private _handleWheel = (event: WheelEvent) => {\r\n if (this._popup && this._popup.contains(event.target as Node))\r\n return;\r\n\r\n if (this.props.onWheel)\r\n return this.props.onWheel(event);\r\n\r\n const closeOnWheel = this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;\r\n if (closeOnWheel)\r\n this._hide();\r\n };\r\n\r\n private isInCorePopup(element: HTMLElement): boolean {\r\n if (element.nodeName === \"DIV\") {\r\n if (element.classList && element.classList.contains(\"core-popup\"))\r\n return true;\r\n if (element.parentElement && this.isInCorePopup(element.parentElement))\r\n return true;\r\n } else {\r\n // istanbul ignore else\r\n if (element.parentElement && this.isInCorePopup(element.parentElement))\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private _handleOutsideClick = (event: MouseEvent): void => {\r\n if (this._popup && this._popup.contains(event.target as Node))\r\n return;\r\n\r\n if (this.props.isPinned)\r\n return;\r\n\r\n if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target as HTMLElement))\r\n return;\r\n\r\n if (this.props.onOutsideClick)\r\n return this.props.onOutsideClick(event);\r\n\r\n if (this.props.target && this.props.target.contains(event.target as Node))\r\n return;\r\n\r\n this._onClose();\r\n };\r\n\r\n private _handleContextMenu = (event: MouseEvent) => {\r\n if (this._popup && this._popup.contains(event.target as Node))\r\n return;\r\n\r\n if (this.props.onContextMenu)\r\n return this.props.onContextMenu(event);\r\n\r\n const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;\r\n if (closeOnContextMenu)\r\n this._hide();\r\n };\r\n\r\n private _handleKeyboard = (event: KeyboardEvent): void => {\r\n if (this.props.isPinned)\r\n return;\r\n\r\n if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {\r\n const closeOnEnter = this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;\r\n if (event.key === SpecialKey.Enter) {\r\n if (closeOnEnter)\r\n this._onClose(true);\r\n else\r\n this.props.onEnter && this.props.onEnter();\r\n } else {\r\n this._onClose(false);\r\n }\r\n }\r\n };\r\n\r\n private _resize = () => {\r\n if (this.props.repositionOnResize) {\r\n const position = this._toggleRelativePosition();\r\n const point = this._fitPopup(this._getPosition(position));\r\n this.setState({ left: point.x, top: point.y, position });\r\n } else {\r\n this._hide(); // legacy behavior\r\n }\r\n };\r\n\r\n private _hide = () => {\r\n if (this.props.isPinned)\r\n return;\r\n\r\n this._onClose();\r\n };\r\n\r\n private _onShow() {\r\n this._bindWindowEvents();\r\n const position = this._toggleRelativePosition();\r\n const point = this._fitPopup(this._getPosition(position));\r\n\r\n this.setState({ left: point.x, top: point.y, isOpen: true, position }, () => {\r\n if (this.props.onOpen)\r\n this.props.onOpen();\r\n });\r\n }\r\n\r\n private _onClose(enterKey?: boolean) {\r\n if (!this.state.isOpen)\r\n return;\r\n\r\n this._unBindWindowEvents();\r\n\r\n this.setState({ isOpen: false }, () => {\r\n if (enterKey && this.props.onEnter)\r\n this.props.onEnter();\r\n if (this.props.onClose)\r\n this.props.onClose();\r\n });\r\n }\r\n\r\n private _isPositionAbsolute(): boolean {\r\n return (this.props.top !== -1 && this.props.left !== -1);\r\n }\r\n\r\n private _getClassNameByPosition(position: RelativePosition): string {\r\n if (!this._isPositionAbsolute()) {\r\n switch (position) {\r\n case RelativePosition.TopLeft:\r\n return \"core-popup-top-left\";\r\n case RelativePosition.TopRight:\r\n return \"core-popup-top-right\";\r\n case RelativePosition.BottomLeft:\r\n return \"core-popup-bottom-left\";\r\n case RelativePosition.BottomRight:\r\n return \"core-popup-bottom-right\";\r\n case RelativePosition.Top:\r\n return \"core-popup-top\";\r\n case RelativePosition.Left:\r\n return \"core-popup-left\";\r\n case RelativePosition.Right:\r\n return \"core-popup-right\";\r\n case RelativePosition.Bottom:\r\n return \"core-popup-bottom\";\r\n case RelativePosition.LeftTop:\r\n return \"core-popup-left-top\";\r\n case RelativePosition.RightTop:\r\n return \"core-popup-right-top\";\r\n }\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n private _getPopupDimensions(): { popupWidth: number, popupHeight: number } {\r\n let popupWidth = 0;\r\n let popupHeight = 0;\r\n // istanbul ignore else\r\n if (this._popup) {\r\n const activeWindow = this.getParentWindow();\r\n const style = activeWindow.getComputedStyle(this._popup);\r\n const borderLeftWidth = parsePxString(style.borderLeftWidth);\r\n const borderRightWidth = parsePxString(style.borderRightWidth);\r\n const borderTopWidth = parsePxString(style.borderTopWidth);\r\n const borderBottomWidth = parsePxString(style.borderBottomWidth);\r\n popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;\r\n popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;\r\n }\r\n\r\n return { popupWidth, popupHeight };\r\n }\r\n\r\n private _getPosition = (position: RelativePosition) => {\r\n const activeWindow = this.getParentWindow();\r\n const { target, offset, top, left } = this.props;\r\n const offsetArrow = (this.props.showArrow) ? 6 : 0;\r\n\r\n // absolute position\r\n if (this._isPositionAbsolute())\r\n return { x: left, y: top };\r\n\r\n // sanity check\r\n const point = { x: 0, y: 0 };\r\n if (!this._popup || !target)\r\n return point;\r\n\r\n // relative position\r\n const scrollY = activeWindow.scrollY;\r\n const scrollX = activeWindow.scrollX;\r\n\r\n const targetRect = target.getBoundingClientRect();\r\n\r\n const { popupWidth, popupHeight } = this._getPopupDimensions();\r\n\r\n switch (position) {\r\n case RelativePosition.Top:\r\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\r\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\r\n break;\r\n\r\n case RelativePosition.TopLeft:\r\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\r\n point.x = scrollX + targetRect.left;\r\n break;\r\n\r\n case RelativePosition.TopRight:\r\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\r\n point.x = scrollX + targetRect.right - popupWidth;\r\n break;\r\n\r\n case RelativePosition.Bottom:\r\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\r\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\r\n break;\r\n\r\n case RelativePosition.BottomLeft:\r\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\r\n point.x = scrollX + targetRect.left;\r\n break;\r\n\r\n case RelativePosition.BottomRight:\r\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\r\n point.x = scrollX + targetRect.right - popupWidth;\r\n break;\r\n\r\n case RelativePosition.Left:\r\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\r\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\r\n break;\r\n\r\n case RelativePosition.LeftTop:\r\n point.y = scrollY + targetRect.top;\r\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\r\n break;\r\n\r\n case RelativePosition.Right:\r\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\r\n point.x = scrollX + targetRect.right + offset + offsetArrow;\r\n break;\r\n\r\n case RelativePosition.RightTop:\r\n point.y = scrollY + targetRect.top;\r\n point.x = scrollX + targetRect.right + offset + offsetArrow;\r\n break;\r\n }\r\n\r\n return point;\r\n };\r\n\r\n private _toggleRelativePosition(): RelativePosition {\r\n const { target, position, offset } = this.props;\r\n\r\n if (!this._popup || !target)\r\n return position;\r\n\r\n // istanbul ignore if\r\n if (this._isPositionAbsolute())\r\n return position;\r\n\r\n let newPosition = position;\r\n\r\n interface Rect {\r\n left: number;\r\n top: number;\r\n right: number;\r\n bottom: number;\r\n }\r\n\r\n const activeWindow = this.getParentWindow();\r\n\r\n // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)\r\n const viewportRect: Rect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };\r\n const targetRect = target.getBoundingClientRect();\r\n const { popupWidth, popupHeight } = this._getPopupDimensions();\r\n const containerStyle = activeWindow.getComputedStyle(target);\r\n const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;\r\n\r\n const bottomMargin = parseMargin(containerStyle.marginBottom);\r\n if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {\r\n if (newPosition === RelativePosition.Bottom)\r\n newPosition = RelativePosition.Top;\r\n else if (newPosition === RelativePosition.BottomLeft)\r\n newPosition = RelativePosition.TopLeft;\r\n else if (newPosition === RelativePosition.BottomRight)\r\n newPosition = RelativePosition.TopRight;\r\n }\r\n\r\n const topMargin = parseMargin(containerStyle.marginTop);\r\n if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {\r\n if (newPosition === RelativePosition.Top)\r\n newPosition = RelativePosition.Bottom;\r\n else if (newPosition === RelativePosition.TopLeft)\r\n newPosition = RelativePosition.BottomLeft;\r\n else if (newPosition === RelativePosition.TopRight)\r\n newPosition = RelativePosition.BottomRight;\r\n }\r\n\r\n const leftMargin = parseMargin(containerStyle.marginLeft);\r\n if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {\r\n if (newPosition === RelativePosition.Left)\r\n newPosition = RelativePosition.Right;\r\n else if (newPosition === RelativePosition.LeftTop)\r\n newPosition = RelativePosition.RightTop;\r\n }\r\n\r\n const rightMargin = parseMargin(containerStyle.marginRight);\r\n if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {\r\n if (newPosition === RelativePosition.Right)\r\n newPosition = RelativePosition.Left;\r\n else if (newPosition === RelativePosition.RightTop)\r\n newPosition = RelativePosition.LeftTop;\r\n }\r\n\r\n return newPosition;\r\n }\r\n\r\n // fit the popup within the extents of the view port\r\n private _fitPopup = (point: PopupPoint) => {\r\n const fittedPoint = point;\r\n\r\n // istanbul ignore if\r\n if (!this._popup) {\r\n return fittedPoint;\r\n }\r\n\r\n // const popupRect = this._popup.getBoundingClientRect();\r\n const { popupWidth, popupHeight } = this._getPopupDimensions();\r\n const { innerWidth, innerHeight } = window;\r\n\r\n // istanbul ignore if\r\n if (fittedPoint.y + popupHeight > innerHeight) {\r\n fittedPoint.y = innerHeight - popupHeight;\r\n }\r\n\r\n // istanbul ignore if\r\n if (fittedPoint.x + popupWidth > innerWidth) {\r\n fittedPoint.x = innerWidth - popupWidth;\r\n }\r\n\r\n // istanbul ignore if\r\n if (fittedPoint.y < 0) {\r\n fittedPoint.y = 0;\r\n }\r\n\r\n if (fittedPoint.x < 0) {\r\n fittedPoint.x = 0;\r\n }\r\n\r\n return fittedPoint;\r\n };\r\n\r\n private _handleAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\r\n if (event.target === this._popup) {\r\n this.setState({ animationEnded: true });\r\n }\r\n };\r\n\r\n public override render() {\r\n const animate = this.props.animate !== undefined ? this.props.animate : true;\r\n const className = classnames(\r\n \"core-popup\",\r\n this._getClassNameByPosition(this.state.position),\r\n this.props.showShadow && \"core-popup-shadow\",\r\n this.props.showArrow && \"arrow\",\r\n !animate && \"core-popup-animation-none\",\r\n this.props.className,\r\n this.state.animationEnded && \"core-animation-ended\",\r\n (!this.props.isOpen && this.props.keepContentsMounted) && \"core-popup-hidden\"\r\n );\r\n\r\n const style: React.CSSProperties = {\r\n top: this.state.top,\r\n left: this.state.left,\r\n ...this.props.style,\r\n };\r\n\r\n const role = this.props.role ? this.props.role : \"dialog\"; // accessibility property\r\n\r\n if (!this.props.isOpen && !this.props.keepContentsMounted) {\r\n return null;\r\n }\r\n\r\n return ReactDOM.createPortal(\r\n (\r\n <div\r\n className={className} data-testid=\"core-popup\"\r\n ref={(element) => { this._popup = element; }}\r\n style={style}\r\n role={role}\r\n aria-modal={true}\r\n tabIndex={-1}\r\n aria-label={this.props.ariaLabel}\r\n onAnimationEnd={this._handleAnimationEnd}\r\n >\r\n <FocusTrap active={!!this.props.moveFocus} initialFocusElement={this.props.focusTarget} returnFocusOnDeactivate={true}>\r\n {this.props.children}\r\n </FocusTrap>\r\n </div>\r\n ),\r\n // istanbul ignore next\r\n this.state.parentDocument.body.querySelector(\r\n '[data-root-container=\"iui-root-id\"]'\r\n ) ?? this.state.parentDocument.body\r\n );\r\n }\r\n}\r\n\r\nfunction parsePxString(pxStr: string): number {\r\n const parsed = parseInt(pxStr, 10);\r\n return parsed || 0;\r\n}\r\n\r\nfunction parseMargin(value: string) {\r\n return value ? /* istanbul ignore next */ parseFloat(value) : 0;\r\n}\r\n"]}
1
+ {"version":3,"file":"Popup.js","sourceRoot":"","sources":["../../../../src/core-react/popup/Popup.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Popup\n */\n\nimport \"./Popup.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { RelativePosition, SpecialKey } from \"@itwin/appui-abstract\";\nimport { FocusTrap } from \"../focustrap/FocusTrap\";\nimport type { CommonProps } from \"../utils/Props\";\n\n// cSpell:ignore focustrap focusable alertdialog\n\n/** @internal */\ninterface PopupPoint {\n x: number;\n y: number;\n}\n\n/** Properties for the [[Popup]] component\n * @public\n */\nexport interface PopupProps extends CommonProps {\n /** Show or hide the box shadow (defaults to true) */\n showShadow: boolean;\n /** Show or hide the arrow (defaults to false) */\n showArrow: boolean;\n /** Indicates whether the popup is shown or not (defaults to false) */\n isOpen: boolean;\n /** Direction (relative to the target) to which the popup is expanded (defaults to Bottom) */\n position: RelativePosition;\n /** Top position (absolute positioning - defaults to 0) */\n top: number;\n /** Left position (absolute positioning - defaults to 0) */\n left: number;\n /** Function called when the popup is opened */\n onOpen?: () => void;\n /** Function called when user clicks outside the popup */\n onOutsideClick?: (e: MouseEvent) => void;\n /** Function called when the popup is closed */\n onClose?: () => void;\n /** Function called when the popup is closed on Enter */\n onEnter?: () => void;\n /** Function called when the wheel is used */\n onWheel?: (e: WheelEvent) => void;\n /** Function called when the right mouse button is pressed */\n onContextMenu?: (e: MouseEvent) => void;\n /** Offset from the parent (defaults to 4) */\n offset: number;\n /** Target element to position popup */\n target?: HTMLElement | null;\n /** Role - if not specified \"dialog\" is used */\n role?: \"dialog\" | \"alert\" | \"alertdialog\";\n /** accessibility label */\n ariaLabel?: string;\n /** set focus to popup - default to not set focus */\n moveFocus?: boolean;\n /** Element to receive focus, specified by React.RefObject or CSS selector string. If undefined and moveFocus is true then focus is moved to first focusable element. */\n focusTarget?: React.RefObject<HTMLElement> | string;\n /** Indicates whether the popup is pinned. */\n isPinned?: boolean;\n /** Indicates whether to use animation for open/close (defaults to true) */\n animate?: boolean;\n /** Indicates whether to close the popup when Enter is pressed (defaults to true) */\n closeOnEnter?: boolean;\n /** Indicates whether to close the popup when the wheel is used (defaults to true) */\n closeOnWheel?: boolean;\n /** Indicates whether to close the popup when the right mouse button is pressed (defaults to true) */\n closeOnContextMenu?: boolean;\n /** If false outside click processing and closing are skipped if click occurs in another Popup component, default to false. */\n closeOnNestedPopupOutsideClick?: boolean;\n /** If true the children are mounted once and unmounted when this component is unmounted. If false the\n * children are unmounted each time the popup is closed. */\n keepContentsMounted?: boolean;\n\n /**\n * If true the popup will remain open and will be repositioned when window resize events occur, default to false.\n * @beta\n * */\n repositionOnResize?: boolean;\n\n /** Content */\n children?: React.ReactNode;\n}\n\n/** @internal */\ninterface PopupState {\n isOpen: boolean;\n top: number;\n left: number;\n position: RelativePosition;\n parentDocument: Document;\n animationEnded: boolean;\n}\n\n/** Popup React component displays a popup relative to an optional target element.\n * @public\n */\nexport class Popup extends React.Component<PopupProps, PopupState> {\n private _popup: HTMLElement | null = null;\n\n constructor(props: PopupProps) {\n super(props);\n const parentDocument = this.props.target?.ownerDocument ?? document;\n\n this.state = {\n animationEnded: false,\n isOpen: this.props.isOpen,\n top: 0,\n left: 0,\n position: this.props.position,\n parentDocument,\n };\n }\n\n public static defaultProps: Partial<PopupProps> = {\n position: RelativePosition.Bottom,\n showShadow: true,\n showArrow: false,\n isOpen: false,\n offset: 4,\n top: -1,\n left: -1,\n };\n\n public override componentDidMount() {\n if (this.props.isOpen) {\n this._onShow();\n }\n }\n\n private getParentWindow() {\n // istanbul ignore next\n return this.state.parentDocument.defaultView ?? window;\n }\n\n public override componentDidUpdate(previousProps: PopupProps, prevState: PopupState) {\n if (this.state.position !== prevState.position) {\n this.setState( { animationEnded: false });\n }\n\n if (this.props.target !== previousProps.target) {\n // istanbul ignore next\n {\n const parentDocument = this.props.target?.ownerDocument ?? document;\n if (parentDocument !== this.state.parentDocument) {\n this._unBindWindowEvents();\n this.setState({ parentDocument });\n }\n }\n }\n\n if (this.props.isOpen === previousProps.isOpen) {\n if (this.props.isOpen) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n if ((Math.abs(this.state.left - point.x) < 3) &&\n (Math.abs(this.state.top - point.y) < 3) &&\n this.state.position === position)\n return;\n\n this.setState({\n left: point.x,\n top: point.y,\n position,\n });\n }\n return;\n }\n\n if (this.props.isOpen) {\n this._onShow();\n } else {\n this._onClose();\n }\n }\n\n public override componentWillUnmount() {\n this._unBindWindowEvents();\n }\n\n private _bindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.addEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.addEventListener(\"resize\", this._resize);\n activeWindow.addEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.addEventListener(\"scroll\", this._hide);\n activeWindow.addEventListener(\"wheel\", this._handleWheel);\n activeWindow.addEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _unBindWindowEvents = () => {\n const activeWindow = this.getParentWindow();\n activeWindow.removeEventListener(\"pointerdown\", this._handleOutsideClick);\n activeWindow.removeEventListener(\"resize\", this._resize);\n activeWindow.removeEventListener(\"contextmenu\", this._handleContextMenu);\n activeWindow.removeEventListener(\"scroll\", this._hide);\n activeWindow.removeEventListener(\"wheel\", this._handleWheel);\n activeWindow.removeEventListener(\"keydown\", this._handleKeyboard);\n };\n\n private _handleWheel = (event: WheelEvent) => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.onWheel)\n return this.props.onWheel(event);\n\n const closeOnWheel = this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;\n if (closeOnWheel)\n this._hide();\n };\n\n private isInCorePopup(element: HTMLElement): boolean {\n if (element.nodeName === \"DIV\") {\n if (element.classList && element.classList.contains(\"core-popup\"))\n return true;\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n } else {\n // istanbul ignore else\n if (element.parentElement && this.isInCorePopup(element.parentElement))\n return true;\n }\n return false;\n }\n\n private _handleOutsideClick = (event: MouseEvent): void => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.isPinned)\n return;\n\n if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target as HTMLElement))\n return;\n\n if (this.props.onOutsideClick)\n return this.props.onOutsideClick(event);\n\n if (this.props.target && this.props.target.contains(event.target as Node))\n return;\n\n this._onClose();\n };\n\n private _handleContextMenu = (event: MouseEvent) => {\n if (this._popup && this._popup.contains(event.target as Node))\n return;\n\n if (this.props.onContextMenu)\n return this.props.onContextMenu(event);\n\n const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;\n if (closeOnContextMenu)\n this._hide();\n };\n\n private _handleKeyboard = (event: KeyboardEvent): void => {\n if (this.props.isPinned)\n return;\n\n if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {\n const closeOnEnter = this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;\n if (event.key === SpecialKey.Enter) {\n if (closeOnEnter)\n this._onClose(true);\n else\n this.props.onEnter && this.props.onEnter();\n } else {\n this._onClose(false);\n }\n }\n };\n\n private _resize = () => {\n if (this.props.repositionOnResize) {\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n this.setState({ left: point.x, top: point.y, position });\n } else {\n this._hide(); // legacy behavior\n }\n };\n\n private _hide = () => {\n if (this.props.isPinned)\n return;\n\n this._onClose();\n };\n\n private _onShow() {\n this._bindWindowEvents();\n const position = this._toggleRelativePosition();\n const point = this._fitPopup(this._getPosition(position));\n\n this.setState({ left: point.x, top: point.y, isOpen: true, position }, () => {\n if (this.props.onOpen)\n this.props.onOpen();\n });\n }\n\n private _onClose(enterKey?: boolean) {\n if (!this.state.isOpen)\n return;\n\n this._unBindWindowEvents();\n\n this.setState({ isOpen: false }, () => {\n if (enterKey && this.props.onEnter)\n this.props.onEnter();\n if (this.props.onClose)\n this.props.onClose();\n });\n }\n\n private _isPositionAbsolute(): boolean {\n return (this.props.top !== -1 && this.props.left !== -1);\n }\n\n private _getClassNameByPosition(position: RelativePosition): string {\n if (!this._isPositionAbsolute()) {\n switch (position) {\n case RelativePosition.TopLeft:\n return \"core-popup-top-left\";\n case RelativePosition.TopRight:\n return \"core-popup-top-right\";\n case RelativePosition.BottomLeft:\n return \"core-popup-bottom-left\";\n case RelativePosition.BottomRight:\n return \"core-popup-bottom-right\";\n case RelativePosition.Top:\n return \"core-popup-top\";\n case RelativePosition.Left:\n return \"core-popup-left\";\n case RelativePosition.Right:\n return \"core-popup-right\";\n case RelativePosition.Bottom:\n return \"core-popup-bottom\";\n case RelativePosition.LeftTop:\n return \"core-popup-left-top\";\n case RelativePosition.RightTop:\n return \"core-popup-right-top\";\n }\n }\n\n return \"\";\n }\n\n private _getPopupDimensions(): { popupWidth: number, popupHeight: number } {\n let popupWidth = 0;\n let popupHeight = 0;\n // istanbul ignore else\n if (this._popup) {\n const activeWindow = this.getParentWindow();\n const style = activeWindow.getComputedStyle(this._popup);\n const borderLeftWidth = parsePxString(style.borderLeftWidth);\n const borderRightWidth = parsePxString(style.borderRightWidth);\n const borderTopWidth = parsePxString(style.borderTopWidth);\n const borderBottomWidth = parsePxString(style.borderBottomWidth);\n popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;\n popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;\n }\n\n return { popupWidth, popupHeight };\n }\n\n private _getPosition = (position: RelativePosition) => {\n const activeWindow = this.getParentWindow();\n const { target, offset, top, left } = this.props;\n const offsetArrow = (this.props.showArrow) ? 6 : 0;\n\n // absolute position\n if (this._isPositionAbsolute())\n return { x: left, y: top };\n\n // sanity check\n const point = { x: 0, y: 0 };\n if (!this._popup || !target)\n return point;\n\n // relative position\n const scrollY = activeWindow.scrollY;\n const scrollX = activeWindow.scrollX;\n\n const targetRect = target.getBoundingClientRect();\n\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n\n switch (position) {\n case RelativePosition.Top:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\n break;\n\n case RelativePosition.TopLeft:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.TopRight:\n point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Bottom:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);\n break;\n\n case RelativePosition.BottomLeft:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.left;\n break;\n\n case RelativePosition.BottomRight:\n point.y = scrollY + targetRect.bottom + offset + offsetArrow;\n point.x = scrollX + targetRect.right - popupWidth;\n break;\n\n case RelativePosition.Left:\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.LeftTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;\n break;\n\n case RelativePosition.Right:\n point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n\n case RelativePosition.RightTop:\n point.y = scrollY + targetRect.top;\n point.x = scrollX + targetRect.right + offset + offsetArrow;\n break;\n }\n\n return point;\n };\n\n private _toggleRelativePosition(): RelativePosition {\n const { target, position, offset } = this.props;\n\n if (!this._popup || !target)\n return position;\n\n // istanbul ignore if\n if (this._isPositionAbsolute())\n return position;\n\n let newPosition = position;\n\n interface Rect {\n left: number;\n top: number;\n right: number;\n bottom: number;\n }\n\n const activeWindow = this.getParentWindow();\n\n // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)\n const viewportRect: Rect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };\n const targetRect = target.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const containerStyle = activeWindow.getComputedStyle(target);\n const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;\n\n const bottomMargin = parseMargin(containerStyle.marginBottom);\n if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {\n if (newPosition === RelativePosition.Bottom)\n newPosition = RelativePosition.Top;\n else if (newPosition === RelativePosition.BottomLeft)\n newPosition = RelativePosition.TopLeft;\n else if (newPosition === RelativePosition.BottomRight)\n newPosition = RelativePosition.TopRight;\n }\n\n const topMargin = parseMargin(containerStyle.marginTop);\n if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {\n if (newPosition === RelativePosition.Top)\n newPosition = RelativePosition.Bottom;\n else if (newPosition === RelativePosition.TopLeft)\n newPosition = RelativePosition.BottomLeft;\n else if (newPosition === RelativePosition.TopRight)\n newPosition = RelativePosition.BottomRight;\n }\n\n const leftMargin = parseMargin(containerStyle.marginLeft);\n if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {\n if (newPosition === RelativePosition.Left)\n newPosition = RelativePosition.Right;\n else if (newPosition === RelativePosition.LeftTop)\n newPosition = RelativePosition.RightTop;\n }\n\n const rightMargin = parseMargin(containerStyle.marginRight);\n if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {\n if (newPosition === RelativePosition.Right)\n newPosition = RelativePosition.Left;\n else if (newPosition === RelativePosition.RightTop)\n newPosition = RelativePosition.LeftTop;\n }\n\n return newPosition;\n }\n\n // fit the popup within the extents of the view port\n private _fitPopup = (point: PopupPoint) => {\n const fittedPoint = point;\n\n // istanbul ignore if\n if (!this._popup) {\n return fittedPoint;\n }\n\n // const popupRect = this._popup.getBoundingClientRect();\n const { popupWidth, popupHeight } = this._getPopupDimensions();\n const { innerWidth, innerHeight } = window;\n\n // istanbul ignore if\n if (fittedPoint.y + popupHeight > innerHeight) {\n fittedPoint.y = innerHeight - popupHeight;\n }\n\n // istanbul ignore if\n if (fittedPoint.x + popupWidth > innerWidth) {\n fittedPoint.x = innerWidth - popupWidth;\n }\n\n // istanbul ignore if\n if (fittedPoint.y < 0) {\n fittedPoint.y = 0;\n }\n\n if (fittedPoint.x < 0) {\n fittedPoint.x = 0;\n }\n\n return fittedPoint;\n };\n\n private _handleAnimationEnd = (event: React.AnimationEvent<HTMLDivElement>) => {\n if (event.target === this._popup) {\n this.setState({ animationEnded: true });\n }\n };\n\n public override render() {\n const animate = this.props.animate !== undefined ? this.props.animate : true;\n const className = classnames(\n \"core-popup\",\n this._getClassNameByPosition(this.state.position),\n this.props.showShadow && \"core-popup-shadow\",\n this.props.showArrow && \"arrow\",\n !animate && \"core-popup-animation-none\",\n this.props.className,\n this.state.animationEnded && \"core-animation-ended\",\n (!this.props.isOpen && this.props.keepContentsMounted) && \"core-popup-hidden\"\n );\n\n const style: React.CSSProperties = {\n top: this.state.top,\n left: this.state.left,\n ...this.props.style,\n };\n\n const role = this.props.role ? this.props.role : \"dialog\"; // accessibility property\n\n if (!this.props.isOpen && !this.props.keepContentsMounted) {\n return null;\n }\n\n return ReactDOM.createPortal(\n (\n <div\n className={className} data-testid=\"core-popup\"\n ref={(element) => { this._popup = element; }}\n style={style}\n role={role}\n aria-modal={true}\n tabIndex={-1}\n aria-label={this.props.ariaLabel}\n onAnimationEnd={this._handleAnimationEnd}\n >\n <FocusTrap active={!!this.props.moveFocus} initialFocusElement={this.props.focusTarget} returnFocusOnDeactivate={true}>\n {this.props.children}\n </FocusTrap>\n </div>\n ),\n // istanbul ignore next\n this.state.parentDocument.body.querySelector(\n '[data-root-container=\"iui-root-id\"]'\n ) ?? this.state.parentDocument.body\n );\n }\n}\n\nfunction parsePxString(pxStr: string): number {\n const parsed = parseInt(pxStr, 10);\n return parsed || 0;\n}\n\nfunction parseMargin(value: string) {\n return value ? /* istanbul ignore next */ parseFloat(value) : 0;\n}\n"]}