@itwin/core-react 4.0.0-dev.12 → 4.0.0-dev.14

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 (616) hide show
  1. package/CHANGELOG.md +116 -1
  2. package/ContributeGuidelines.md +17 -14
  3. package/README.md +2 -2
  4. package/lib/cjs/core-react/UiCore.d.ts +40 -40
  5. package/lib/cjs/core-react/UiCore.js +85 -85
  6. package/lib/cjs/core-react/UiCore.js.map +1 -1
  7. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts +96 -96
  8. package/lib/cjs/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  9. package/lib/cjs/core-react/autosuggest/AutoSuggest.js +174 -174
  10. package/lib/cjs/core-react/autosuggest/AutoSuggest.scss +1 -2
  11. package/lib/cjs/core-react/badge/Badge.d.ts +18 -18
  12. package/lib/cjs/core-react/badge/Badge.js +26 -26
  13. package/lib/cjs/core-react/badge/BadgeUtilities.d.ts +12 -12
  14. package/lib/cjs/core-react/badge/BadgeUtilities.js +38 -38
  15. package/lib/cjs/core-react/badge/BetaBadge.d.ts +9 -9
  16. package/lib/cjs/core-react/badge/BetaBadge.js +22 -22
  17. package/lib/cjs/core-react/badge/NewBadge.d.ts +10 -10
  18. package/lib/cjs/core-react/badge/NewBadge.js +23 -23
  19. package/lib/cjs/core-react/base/Centered.d.ts +10 -10
  20. package/lib/cjs/core-react/base/Centered.js +20 -20
  21. package/lib/cjs/core-react/base/Div.d.ts +16 -16
  22. package/lib/cjs/core-react/base/Div.js +20 -20
  23. package/lib/cjs/core-react/base/DivWithOutsideClick.d.ts +79 -79
  24. package/lib/cjs/core-react/base/DivWithOutsideClick.js +16 -16
  25. package/lib/cjs/core-react/base/FillCentered.d.ts +10 -10
  26. package/lib/cjs/core-react/base/FillCentered.js +20 -20
  27. package/lib/cjs/core-react/base/FlexWrapContainer.d.ts +11 -11
  28. package/lib/cjs/core-react/base/FlexWrapContainer.js +21 -21
  29. package/lib/cjs/core-react/base/Gap.d.ts +15 -15
  30. package/lib/cjs/core-react/base/Gap.js +20 -20
  31. package/lib/cjs/core-react/base/Gap.js.map +1 -1
  32. package/lib/cjs/core-react/base/PointerEvents.d.ts +7 -7
  33. package/lib/cjs/core-react/base/PointerEvents.js +17 -17
  34. package/lib/cjs/core-react/base/ScrollView.d.ts +11 -11
  35. package/lib/cjs/core-react/base/ScrollView.js +21 -21
  36. package/lib/cjs/core-react/button/UnderlinedButton.d.ts +24 -24
  37. package/lib/cjs/core-react/button/UnderlinedButton.js +35 -35
  38. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts +40 -40
  39. package/lib/cjs/core-react/checklistbox/CheckListBox.js +42 -42
  40. package/lib/cjs/core-react/checklistbox/CheckListBox.scss +0 -1
  41. package/lib/cjs/core-react/classes.scss +0 -2
  42. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts +93 -93
  43. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  44. package/lib/cjs/core-react/contextmenu/ContextMenu.js +363 -364
  45. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  46. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.d.ts +18 -18
  47. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js +26 -26
  48. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.d.ts +12 -12
  49. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js +23 -23
  50. package/lib/cjs/core-react/contextmenu/ContextMenuItem.d.ts +61 -61
  51. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js +108 -108
  52. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  53. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts +51 -51
  54. package/lib/cjs/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  55. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js +162 -162
  56. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  57. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.d.ts +34 -34
  58. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js +61 -63
  59. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  60. package/lib/cjs/core-react/contextmenu/PopupContextMenu.d.ts +53 -53
  61. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js +55 -55
  62. package/lib/cjs/core-react/contextmenu/TildeFinder.d.ts +18 -18
  63. package/lib/cjs/core-react/contextmenu/TildeFinder.js +70 -70
  64. package/lib/cjs/core-react/contextmenu/TildeFinder.js.map +1 -1
  65. package/lib/cjs/core-react/dialog/Dialog.d.ts +132 -132
  66. package/lib/cjs/core-react/dialog/Dialog.js +374 -375
  67. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  68. package/lib/cjs/core-react/dialog/GlobalDialog.d.ts +28 -28
  69. package/lib/cjs/core-react/dialog/GlobalDialog.js +52 -53
  70. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  71. package/lib/cjs/core-react/elementseparator/ElementSeparator.d.ts +41 -41
  72. package/lib/cjs/core-react/elementseparator/ElementSeparator.js +163 -163
  73. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  74. package/lib/cjs/core-react/enums/Alignment.d.ts +22 -22
  75. package/lib/cjs/core-react/enums/Alignment.js +31 -31
  76. package/lib/cjs/core-react/enums/CheckBoxState.d.ts +20 -20
  77. package/lib/cjs/core-react/enums/CheckBoxState.js +19 -19
  78. package/lib/cjs/core-react/enums/Orientation.d.ts +11 -11
  79. package/lib/cjs/core-react/enums/Orientation.js +19 -19
  80. package/lib/cjs/core-react/enums/SortDirection.d.ts +12 -12
  81. package/lib/cjs/core-react/enums/SortDirection.js +20 -20
  82. package/lib/cjs/core-react/enums/TimeFormat.d.ts +14 -14
  83. package/lib/cjs/core-react/enums/TimeFormat.js +22 -22
  84. package/lib/cjs/core-react/expandable/ExpandableList.d.ts +37 -37
  85. package/lib/cjs/core-react/expandable/ExpandableList.js +57 -57
  86. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  87. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.d.ts +53 -53
  88. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  89. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js +150 -150
  90. package/lib/cjs/core-react/focustrap/FocusTrap.d.ts +28 -28
  91. package/lib/cjs/core-react/focustrap/FocusTrap.js +196 -196
  92. package/lib/cjs/core-react/hocs/withIsPressed.d.ts +77 -77
  93. package/lib/cjs/core-react/hocs/withIsPressed.js +46 -46
  94. package/lib/cjs/core-react/hocs/withOnOutsideClick.d.ts +103 -103
  95. package/lib/cjs/core-react/hocs/withOnOutsideClick.js +114 -115
  96. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  97. package/lib/cjs/core-react/hocs/withTimeout.d.ts +74 -74
  98. package/lib/cjs/core-react/hocs/withTimeout.js +46 -46
  99. package/lib/cjs/core-react/icons/ConditionalIconItem.d.ts +26 -26
  100. package/lib/cjs/core-react/icons/ConditionalIconItem.js +64 -64
  101. package/lib/cjs/core-react/icons/IconComponent.d.ts +25 -25
  102. package/lib/cjs/core-react/icons/IconComponent.d.ts.map +1 -1
  103. package/lib/cjs/core-react/icons/IconComponent.js +48 -48
  104. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  105. package/lib/cjs/core-react/icons/SvgPath.d.ts +23 -23
  106. package/lib/cjs/core-react/icons/SvgPath.js +27 -27
  107. package/lib/cjs/core-react/icons/WebFontIcon.d.ts +25 -25
  108. package/lib/cjs/core-react/icons/WebFontIcon.js +21 -21
  109. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.d.ts +42 -42
  110. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js +56 -56
  111. package/lib/cjs/core-react/index.scss +0 -2
  112. package/lib/cjs/core-react/inputs/Input.d.ts +20 -20
  113. package/lib/cjs/core-react/inputs/Input.js +45 -45
  114. package/lib/cjs/core-react/inputs/InputLabel.d.ts +20 -20
  115. package/lib/cjs/core-react/inputs/InputLabel.js +41 -41
  116. package/lib/cjs/core-react/inputs/InputStatus.d.ts +11 -11
  117. package/lib/cjs/core-react/inputs/InputStatus.js +19 -19
  118. package/lib/cjs/core-react/inputs/LabeledComponentProps.d.ts +33 -33
  119. package/lib/cjs/core-react/inputs/LabeledComponentProps.js +9 -9
  120. package/lib/cjs/core-react/inputs/iconinput/IconInput.d.ts +23 -23
  121. package/lib/cjs/core-react/inputs/iconinput/IconInput.js +29 -29
  122. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts +50 -50
  123. package/lib/cjs/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  124. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js +153 -153
  125. package/lib/cjs/core-react/listbox/Listbox.d.ts +55 -55
  126. package/lib/cjs/core-react/listbox/Listbox.d.ts.map +1 -1
  127. package/lib/cjs/core-react/listbox/Listbox.js +221 -222
  128. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  129. package/lib/cjs/core-react/loading/LoadingBar.d.ts +29 -29
  130. package/lib/cjs/core-react/loading/LoadingBar.js +40 -40
  131. package/lib/cjs/core-react/loading/LoadingBar.js.map +1 -1
  132. package/lib/cjs/core-react/loading/LoadingPrompt.d.ts +39 -39
  133. package/lib/cjs/core-react/loading/LoadingPrompt.js +44 -44
  134. package/lib/cjs/core-react/loading/LoadingPrompt.js.map +1 -1
  135. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts +32 -32
  136. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  137. package/lib/cjs/core-react/loading/LoadingSpinner.js +30 -30
  138. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  139. package/lib/cjs/core-react/loading/LoadingStatus.d.ts +24 -24
  140. package/lib/cjs/core-react/loading/LoadingStatus.js +37 -37
  141. package/lib/cjs/core-react/loading/LoadingStatus.js.map +1 -1
  142. package/lib/cjs/core-react/messagebox/MessageBox.d.ts +80 -80
  143. package/lib/cjs/core-react/messagebox/MessageBox.js +114 -114
  144. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  145. package/lib/cjs/core-react/notification/MessageRenderer.d.ts +19 -19
  146. package/lib/cjs/core-react/notification/MessageRenderer.js +81 -81
  147. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  148. package/lib/cjs/core-react/notification/MessageType.d.ts +22 -22
  149. package/lib/cjs/core-react/notification/MessageType.d.ts.map +1 -1
  150. package/lib/cjs/core-react/notification/MessageType.js +24 -24
  151. package/lib/cjs/core-react/popup/Popup.d.ts +111 -111
  152. package/lib/cjs/core-react/popup/Popup.js +418 -422
  153. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  154. package/lib/cjs/core-react/radialmenu/Annulus.d.ts +54 -54
  155. package/lib/cjs/core-react/radialmenu/Annulus.js +82 -82
  156. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts +97 -97
  157. package/lib/cjs/core-react/radialmenu/RadialMenu.js +179 -179
  158. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  159. package/lib/cjs/core-react/searchbox/SearchBox.d.ts +52 -52
  160. package/lib/cjs/core-react/searchbox/SearchBox.js +111 -111
  161. package/lib/cjs/core-react/searchbox/SearchBox.scss +2 -3
  162. package/lib/cjs/core-react/settings/SettingsContainer.d.ts +30 -30
  163. package/lib/cjs/core-react/settings/SettingsContainer.js +121 -121
  164. package/lib/cjs/core-react/settings/SettingsManager.d.ts +132 -132
  165. package/lib/cjs/core-react/settings/SettingsManager.js +122 -122
  166. package/lib/cjs/core-react/style/index.scss +0 -7
  167. package/lib/cjs/core-react/tabs/Tabs.d.ts +71 -71
  168. package/lib/cjs/core-react/tabs/Tabs.js +125 -125
  169. package/lib/cjs/core-react/tabs/VerticalTabs.d.ts +9 -9
  170. package/lib/cjs/core-react/tabs/VerticalTabs.js +20 -20
  171. package/lib/cjs/core-react/text/BlockText.d.ts +9 -9
  172. package/lib/cjs/core-react/text/BlockText.js +20 -20
  173. package/lib/cjs/core-react/text/BodyText.d.ts +10 -10
  174. package/lib/cjs/core-react/text/BodyText.js +21 -21
  175. package/lib/cjs/core-react/text/BodyText.js.map +1 -1
  176. package/lib/cjs/core-react/text/DisabledText.d.ts +6 -6
  177. package/lib/cjs/core-react/text/DisabledText.js +20 -20
  178. package/lib/cjs/core-react/text/FilteredText.d.ts +24 -24
  179. package/lib/cjs/core-react/text/FilteredText.js +40 -40
  180. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  181. package/lib/cjs/core-react/text/MutedText.d.ts +10 -10
  182. package/lib/cjs/core-react/text/MutedText.js +21 -21
  183. package/lib/cjs/core-react/text/MutedText.js.map +1 -1
  184. package/lib/cjs/core-react/text/StyledText.d.ts +17 -17
  185. package/lib/cjs/core-react/text/StyledText.js +21 -21
  186. package/lib/cjs/core-react/text/StyledText.js.map +1 -1
  187. package/lib/cjs/core-react/text/TextProps.d.ts +10 -10
  188. package/lib/cjs/core-react/text/TextProps.js +9 -9
  189. package/lib/cjs/core-react/tree/Branch.d.ts +19 -19
  190. package/lib/cjs/core-react/tree/Branch.js +23 -23
  191. package/lib/cjs/core-react/tree/ExpansionToggle.d.ts +20 -20
  192. package/lib/cjs/core-react/tree/ExpansionToggle.js +30 -30
  193. package/lib/cjs/core-react/tree/Node.d.ts +79 -79
  194. package/lib/cjs/core-react/tree/Node.d.ts.map +1 -1
  195. package/lib/cjs/core-react/tree/Node.js +87 -88
  196. package/lib/cjs/core-react/tree/Node.js.map +1 -1
  197. package/lib/cjs/core-react/tree/Node.scss +0 -15
  198. package/lib/cjs/core-react/tree/Placeholder.d.ts +22 -22
  199. package/lib/cjs/core-react/tree/Placeholder.js +31 -31
  200. package/lib/cjs/core-react/tree/Tree.d.ts +28 -28
  201. package/lib/cjs/core-react/tree/Tree.js +100 -100
  202. package/lib/cjs/core-react/uistate/LocalStateStorage.d.ts +16 -16
  203. package/lib/cjs/core-react/uistate/LocalStateStorage.js +49 -49
  204. package/lib/cjs/core-react/uistate/UiStateEntry.d.ts +30 -30
  205. package/lib/cjs/core-react/uistate/UiStateEntry.js +59 -59
  206. package/lib/cjs/core-react/uistate/UiStateStorage.d.ts +28 -28
  207. package/lib/cjs/core-react/uistate/UiStateStorage.js +21 -21
  208. package/lib/cjs/core-react/utils/IconHelper.d.ts +23 -23
  209. package/lib/cjs/core-react/utils/IconHelper.js +62 -62
  210. package/lib/cjs/core-react/utils/IconWebComponent.d.ts +10 -10
  211. package/lib/cjs/core-react/utils/IconWebComponent.js +72 -72
  212. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  213. package/lib/cjs/core-react/utils/Point.d.ts +37 -37
  214. package/lib/cjs/core-react/utils/Point.js +73 -73
  215. package/lib/cjs/core-react/utils/Point.js.map +1 -1
  216. package/lib/cjs/core-react/utils/Props.d.ts +38 -38
  217. package/lib/cjs/core-react/utils/Props.d.ts.map +1 -1
  218. package/lib/cjs/core-react/utils/Props.js +9 -9
  219. package/lib/cjs/core-react/utils/Rectangle.d.ts +144 -144
  220. package/lib/cjs/core-react/utils/Rectangle.js +270 -270
  221. package/lib/cjs/core-react/utils/Rectangle.js.map +1 -1
  222. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.d.ts +23 -23
  223. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js +36 -36
  224. package/lib/cjs/core-react/utils/Size.d.ts +23 -23
  225. package/lib/cjs/core-react/utils/Size.js +32 -32
  226. package/lib/cjs/core-react/utils/Size.js.map +1 -1
  227. package/lib/cjs/core-react/utils/Timer.d.ts +35 -35
  228. package/lib/cjs/core-react/utils/Timer.d.ts.map +1 -1
  229. package/lib/cjs/core-react/utils/Timer.js +64 -64
  230. package/lib/cjs/core-react/utils/UiGeometry.d.ts +20 -20
  231. package/lib/cjs/core-react/utils/UiGeometry.js +28 -28
  232. package/lib/cjs/core-react/utils/flattenChildren.d.ts +8 -8
  233. package/lib/cjs/core-react/utils/flattenChildren.js +27 -27
  234. package/lib/cjs/core-react/utils/getBestBWContrastColor.d.ts +7 -7
  235. package/lib/cjs/core-react/utils/getBestBWContrastColor.js +22 -22
  236. package/lib/cjs/core-react/utils/getBestBWContrastColor.js.map +1 -1
  237. package/lib/cjs/core-react/utils/getCssVariable.d.ts +11 -11
  238. package/lib/cjs/core-react/utils/getCssVariable.js +31 -31
  239. package/lib/cjs/core-react/utils/getCssVariable.js.map +1 -1
  240. package/lib/cjs/core-react/utils/getDisplayName.d.ts +8 -8
  241. package/lib/cjs/core-react/utils/getDisplayName.js +21 -21
  242. package/lib/cjs/core-react/utils/getUserColor.d.ts +7 -7
  243. package/lib/cjs/core-react/utils/getUserColor.js +38 -38
  244. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.d.ts +4 -4
  245. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  246. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js +19 -19
  247. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.d.ts +7 -7
  248. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js +88 -89
  249. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  250. package/lib/cjs/core-react/utils/hooks/useDisposable.d.ts +17 -17
  251. package/lib/cjs/core-react/utils/hooks/useDisposable.js +38 -38
  252. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.d.ts +8 -8
  253. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js +26 -26
  254. package/lib/cjs/core-react/utils/hooks/useEventListener.d.ts +11 -11
  255. package/lib/cjs/core-react/utils/hooks/useEventListener.js +43 -43
  256. package/lib/cjs/core-react/utils/hooks/useInterval.d.ts +5 -5
  257. package/lib/cjs/core-react/utils/hooks/useInterval.js +36 -36
  258. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.d.ts +5 -5
  259. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js +64 -64
  260. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.d.ts +12 -12
  261. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.d.ts.map +1 -1
  262. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js +92 -92
  263. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.d.ts +55 -55
  264. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js +114 -114
  265. package/lib/cjs/core-react/utils/hooks/useRefEffect.d.ts +7 -7
  266. package/lib/cjs/core-react/utils/hooks/useRefEffect.js +23 -23
  267. package/lib/cjs/core-react/utils/hooks/useRefState.d.ts +21 -21
  268. package/lib/cjs/core-react/utils/hooks/useRefState.js +35 -35
  269. package/lib/cjs/core-react/utils/hooks/useRefs.d.ts +12 -12
  270. package/lib/cjs/core-react/utils/hooks/useRefs.js +53 -53
  271. package/lib/cjs/core-react/utils/hooks/useResizeObserver.d.ts +39 -39
  272. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js +203 -208
  273. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  274. package/lib/cjs/core-react/utils/hooks/useTargeted.d.ts +8 -8
  275. package/lib/cjs/core-react/utils/hooks/useTargeted.js +28 -28
  276. package/lib/cjs/core-react/utils/hooks/useThrottledFn.d.ts +15 -15
  277. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js +25 -25
  278. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.d.ts +20 -20
  279. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js +27 -27
  280. package/lib/cjs/core-react/utils/isPromiseLike.d.ts +7 -7
  281. package/lib/cjs/core-react/utils/isPromiseLike.js +17 -17
  282. package/lib/cjs/core-react/utils/shallowDiffers.d.ts +11 -11
  283. package/lib/cjs/core-react/utils/shallowDiffers.js +29 -29
  284. package/lib/cjs/core-react/utils/typeUtils.d.ts +7 -7
  285. package/lib/cjs/core-react/utils/typeUtils.d.ts.map +1 -1
  286. package/lib/cjs/core-react/utils/typeUtils.js +9 -9
  287. package/lib/cjs/core-react.d.ts +236 -236
  288. package/lib/cjs/core-react.js +263 -259
  289. package/lib/cjs/core-react.js.map +1 -1
  290. package/lib/esm/core-react/UiCore.d.ts +40 -40
  291. package/lib/esm/core-react/UiCore.js +82 -81
  292. package/lib/esm/core-react/UiCore.js.map +1 -1
  293. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts +96 -96
  294. package/lib/esm/core-react/autosuggest/AutoSuggest.d.ts.map +1 -1
  295. package/lib/esm/core-react/autosuggest/AutoSuggest.js +170 -170
  296. package/lib/esm/core-react/autosuggest/AutoSuggest.scss +1 -2
  297. package/lib/esm/core-react/badge/Badge.d.ts +18 -18
  298. package/lib/esm/core-react/badge/Badge.js +22 -22
  299. package/lib/esm/core-react/badge/BadgeUtilities.d.ts +12 -12
  300. package/lib/esm/core-react/badge/BadgeUtilities.js +34 -34
  301. package/lib/esm/core-react/badge/BetaBadge.d.ts +9 -9
  302. package/lib/esm/core-react/badge/BetaBadge.js +18 -18
  303. package/lib/esm/core-react/badge/NewBadge.d.ts +10 -10
  304. package/lib/esm/core-react/badge/NewBadge.js +19 -19
  305. package/lib/esm/core-react/base/Centered.d.ts +10 -10
  306. package/lib/esm/core-react/base/Centered.js +16 -16
  307. package/lib/esm/core-react/base/Div.d.ts +16 -16
  308. package/lib/esm/core-react/base/Div.js +16 -16
  309. package/lib/esm/core-react/base/DivWithOutsideClick.d.ts +79 -79
  310. package/lib/esm/core-react/base/DivWithOutsideClick.js +13 -13
  311. package/lib/esm/core-react/base/FillCentered.d.ts +10 -10
  312. package/lib/esm/core-react/base/FillCentered.js +16 -16
  313. package/lib/esm/core-react/base/FlexWrapContainer.d.ts +11 -11
  314. package/lib/esm/core-react/base/FlexWrapContainer.js +17 -17
  315. package/lib/esm/core-react/base/Gap.d.ts +15 -15
  316. package/lib/esm/core-react/base/Gap.js +16 -16
  317. package/lib/esm/core-react/base/Gap.js.map +1 -1
  318. package/lib/esm/core-react/base/PointerEvents.d.ts +7 -7
  319. package/lib/esm/core-react/base/PointerEvents.js +13 -13
  320. package/lib/esm/core-react/base/ScrollView.d.ts +11 -11
  321. package/lib/esm/core-react/base/ScrollView.js +17 -17
  322. package/lib/esm/core-react/button/UnderlinedButton.d.ts +24 -24
  323. package/lib/esm/core-react/button/UnderlinedButton.js +31 -31
  324. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts +40 -40
  325. package/lib/esm/core-react/checklistbox/CheckListBox.js +36 -36
  326. package/lib/esm/core-react/checklistbox/CheckListBox.scss +0 -1
  327. package/lib/esm/core-react/classes.scss +0 -2
  328. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts +93 -93
  329. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  330. package/lib/esm/core-react/contextmenu/ContextMenu.js +360 -360
  331. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  332. package/lib/esm/core-react/contextmenu/ContextMenuDirection.d.ts +18 -18
  333. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js +23 -23
  334. package/lib/esm/core-react/contextmenu/ContextMenuDivider.d.ts +12 -12
  335. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js +19 -19
  336. package/lib/esm/core-react/contextmenu/ContextMenuItem.d.ts +61 -61
  337. package/lib/esm/core-react/contextmenu/ContextMenuItem.js +105 -104
  338. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  339. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts +51 -51
  340. package/lib/esm/core-react/contextmenu/ContextSubMenu.d.ts.map +1 -1
  341. package/lib/esm/core-react/contextmenu/ContextSubMenu.js +159 -158
  342. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  343. package/lib/esm/core-react/contextmenu/GlobalContextMenu.d.ts +34 -34
  344. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js +57 -59
  345. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  346. package/lib/esm/core-react/contextmenu/PopupContextMenu.d.ts +53 -53
  347. package/lib/esm/core-react/contextmenu/PopupContextMenu.js +51 -51
  348. package/lib/esm/core-react/contextmenu/TildeFinder.d.ts +18 -18
  349. package/lib/esm/core-react/contextmenu/TildeFinder.js +67 -66
  350. package/lib/esm/core-react/contextmenu/TildeFinder.js.map +1 -1
  351. package/lib/esm/core-react/dialog/Dialog.d.ts +132 -132
  352. package/lib/esm/core-react/dialog/Dialog.js +371 -371
  353. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  354. package/lib/esm/core-react/dialog/GlobalDialog.d.ts +28 -28
  355. package/lib/esm/core-react/dialog/GlobalDialog.js +48 -49
  356. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  357. package/lib/esm/core-react/elementseparator/ElementSeparator.d.ts +41 -41
  358. package/lib/esm/core-react/elementseparator/ElementSeparator.js +159 -159
  359. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  360. package/lib/esm/core-react/enums/Alignment.d.ts +22 -22
  361. package/lib/esm/core-react/enums/Alignment.js +28 -28
  362. package/lib/esm/core-react/enums/CheckBoxState.d.ts +20 -20
  363. package/lib/esm/core-react/enums/CheckBoxState.js +16 -16
  364. package/lib/esm/core-react/enums/Orientation.d.ts +11 -11
  365. package/lib/esm/core-react/enums/Orientation.js +16 -16
  366. package/lib/esm/core-react/enums/SortDirection.d.ts +12 -12
  367. package/lib/esm/core-react/enums/SortDirection.js +17 -17
  368. package/lib/esm/core-react/enums/TimeFormat.d.ts +14 -14
  369. package/lib/esm/core-react/enums/TimeFormat.js +19 -19
  370. package/lib/esm/core-react/expandable/ExpandableList.d.ts +37 -37
  371. package/lib/esm/core-react/expandable/ExpandableList.js +54 -53
  372. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  373. package/lib/esm/core-react/focus/ItemKeyboardNavigator.d.ts +53 -53
  374. package/lib/esm/core-react/focus/ItemKeyboardNavigator.d.ts.map +1 -1
  375. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js +145 -145
  376. package/lib/esm/core-react/focustrap/FocusTrap.d.ts +28 -28
  377. package/lib/esm/core-react/focustrap/FocusTrap.js +191 -191
  378. package/lib/esm/core-react/hocs/withIsPressed.d.ts +77 -77
  379. package/lib/esm/core-react/hocs/withIsPressed.js +42 -42
  380. package/lib/esm/core-react/hocs/withOnOutsideClick.d.ts +103 -103
  381. package/lib/esm/core-react/hocs/withOnOutsideClick.js +110 -111
  382. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  383. package/lib/esm/core-react/hocs/withTimeout.d.ts +74 -74
  384. package/lib/esm/core-react/hocs/withTimeout.js +42 -42
  385. package/lib/esm/core-react/icons/ConditionalIconItem.d.ts +26 -26
  386. package/lib/esm/core-react/icons/ConditionalIconItem.js +60 -60
  387. package/lib/esm/core-react/icons/IconComponent.d.ts +25 -25
  388. package/lib/esm/core-react/icons/IconComponent.d.ts.map +1 -1
  389. package/lib/esm/core-react/icons/IconComponent.js +44 -44
  390. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  391. package/lib/esm/core-react/icons/SvgPath.d.ts +23 -23
  392. package/lib/esm/core-react/icons/SvgPath.js +23 -23
  393. package/lib/esm/core-react/icons/WebFontIcon.d.ts +25 -25
  394. package/lib/esm/core-react/icons/WebFontIcon.js +17 -17
  395. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.d.ts +42 -42
  396. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js +52 -52
  397. package/lib/esm/core-react/index.scss +0 -2
  398. package/lib/esm/core-react/inputs/Input.d.ts +20 -20
  399. package/lib/esm/core-react/inputs/Input.js +42 -42
  400. package/lib/esm/core-react/inputs/InputLabel.d.ts +20 -20
  401. package/lib/esm/core-react/inputs/InputLabel.js +37 -37
  402. package/lib/esm/core-react/inputs/InputStatus.d.ts +11 -11
  403. package/lib/esm/core-react/inputs/InputStatus.js +16 -16
  404. package/lib/esm/core-react/inputs/LabeledComponentProps.d.ts +33 -33
  405. package/lib/esm/core-react/inputs/LabeledComponentProps.js +8 -8
  406. package/lib/esm/core-react/inputs/iconinput/IconInput.d.ts +23 -23
  407. package/lib/esm/core-react/inputs/iconinput/IconInput.js +26 -26
  408. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts +50 -50
  409. package/lib/esm/core-react/inputs/numberinput/NumberInput.d.ts.map +1 -1
  410. package/lib/esm/core-react/inputs/numberinput/NumberInput.js +150 -150
  411. package/lib/esm/core-react/listbox/Listbox.d.ts +55 -55
  412. package/lib/esm/core-react/listbox/Listbox.d.ts.map +1 -1
  413. package/lib/esm/core-react/listbox/Listbox.js +216 -217
  414. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  415. package/lib/esm/core-react/loading/LoadingBar.d.ts +29 -29
  416. package/lib/esm/core-react/loading/LoadingBar.js +36 -35
  417. package/lib/esm/core-react/loading/LoadingBar.js.map +1 -1
  418. package/lib/esm/core-react/loading/LoadingPrompt.d.ts +39 -39
  419. package/lib/esm/core-react/loading/LoadingPrompt.js +41 -40
  420. package/lib/esm/core-react/loading/LoadingPrompt.js.map +1 -1
  421. package/lib/esm/core-react/loading/LoadingSpinner.d.ts +32 -32
  422. package/lib/esm/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  423. package/lib/esm/core-react/loading/LoadingSpinner.js +27 -26
  424. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  425. package/lib/esm/core-react/loading/LoadingStatus.d.ts +24 -24
  426. package/lib/esm/core-react/loading/LoadingStatus.js +34 -33
  427. package/lib/esm/core-react/loading/LoadingStatus.js.map +1 -1
  428. package/lib/esm/core-react/messagebox/MessageBox.d.ts +80 -80
  429. package/lib/esm/core-react/messagebox/MessageBox.js +110 -109
  430. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  431. package/lib/esm/core-react/notification/MessageRenderer.d.ts +19 -19
  432. package/lib/esm/core-react/notification/MessageRenderer.js +77 -77
  433. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  434. package/lib/esm/core-react/notification/MessageType.d.ts +22 -22
  435. package/lib/esm/core-react/notification/MessageType.d.ts.map +1 -1
  436. package/lib/esm/core-react/notification/MessageType.js +19 -19
  437. package/lib/esm/core-react/popup/Popup.d.ts +111 -111
  438. package/lib/esm/core-react/popup/Popup.js +415 -418
  439. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  440. package/lib/esm/core-react/radialmenu/Annulus.d.ts +54 -54
  441. package/lib/esm/core-react/radialmenu/Annulus.js +75 -75
  442. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts +97 -97
  443. package/lib/esm/core-react/radialmenu/RadialMenu.js +175 -174
  444. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  445. package/lib/esm/core-react/searchbox/SearchBox.d.ts +52 -52
  446. package/lib/esm/core-react/searchbox/SearchBox.js +107 -107
  447. package/lib/esm/core-react/searchbox/SearchBox.scss +2 -3
  448. package/lib/esm/core-react/settings/SettingsContainer.d.ts +30 -30
  449. package/lib/esm/core-react/settings/SettingsContainer.js +115 -115
  450. package/lib/esm/core-react/settings/SettingsManager.d.ts +132 -132
  451. package/lib/esm/core-react/settings/SettingsManager.js +113 -113
  452. package/lib/esm/core-react/style/index.scss +0 -7
  453. package/lib/esm/core-react/tabs/Tabs.d.ts +71 -71
  454. package/lib/esm/core-react/tabs/Tabs.js +121 -121
  455. package/lib/esm/core-react/tabs/VerticalTabs.d.ts +9 -9
  456. package/lib/esm/core-react/tabs/VerticalTabs.js +16 -16
  457. package/lib/esm/core-react/text/BlockText.d.ts +9 -9
  458. package/lib/esm/core-react/text/BlockText.js +16 -16
  459. package/lib/esm/core-react/text/BodyText.d.ts +10 -10
  460. package/lib/esm/core-react/text/BodyText.js +17 -17
  461. package/lib/esm/core-react/text/BodyText.js.map +1 -1
  462. package/lib/esm/core-react/text/DisabledText.d.ts +6 -6
  463. package/lib/esm/core-react/text/DisabledText.js +16 -16
  464. package/lib/esm/core-react/text/FilteredText.d.ts +24 -24
  465. package/lib/esm/core-react/text/FilteredText.js +36 -36
  466. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  467. package/lib/esm/core-react/text/MutedText.d.ts +10 -10
  468. package/lib/esm/core-react/text/MutedText.js +17 -17
  469. package/lib/esm/core-react/text/MutedText.js.map +1 -1
  470. package/lib/esm/core-react/text/StyledText.d.ts +17 -17
  471. package/lib/esm/core-react/text/StyledText.js +17 -17
  472. package/lib/esm/core-react/text/StyledText.js.map +1 -1
  473. package/lib/esm/core-react/text/TextProps.d.ts +10 -10
  474. package/lib/esm/core-react/text/TextProps.js +8 -8
  475. package/lib/esm/core-react/tree/Branch.d.ts +19 -19
  476. package/lib/esm/core-react/tree/Branch.js +19 -19
  477. package/lib/esm/core-react/tree/ExpansionToggle.d.ts +20 -20
  478. package/lib/esm/core-react/tree/ExpansionToggle.js +26 -26
  479. package/lib/esm/core-react/tree/Node.d.ts +79 -79
  480. package/lib/esm/core-react/tree/Node.d.ts.map +1 -1
  481. package/lib/esm/core-react/tree/Node.js +83 -84
  482. package/lib/esm/core-react/tree/Node.js.map +1 -1
  483. package/lib/esm/core-react/tree/Node.scss +0 -15
  484. package/lib/esm/core-react/tree/Placeholder.d.ts +22 -22
  485. package/lib/esm/core-react/tree/Placeholder.js +27 -27
  486. package/lib/esm/core-react/tree/Tree.d.ts +28 -28
  487. package/lib/esm/core-react/tree/Tree.js +96 -96
  488. package/lib/esm/core-react/uistate/LocalStateStorage.d.ts +16 -16
  489. package/lib/esm/core-react/uistate/LocalStateStorage.js +45 -45
  490. package/lib/esm/core-react/uistate/UiStateEntry.d.ts +30 -30
  491. package/lib/esm/core-react/uistate/UiStateEntry.js +55 -55
  492. package/lib/esm/core-react/uistate/UiStateStorage.d.ts +28 -28
  493. package/lib/esm/core-react/uistate/UiStateStorage.js +18 -18
  494. package/lib/esm/core-react/utils/IconHelper.d.ts +23 -23
  495. package/lib/esm/core-react/utils/IconHelper.js +58 -58
  496. package/lib/esm/core-react/utils/IconWebComponent.d.ts +10 -10
  497. package/lib/esm/core-react/utils/IconWebComponent.js +68 -68
  498. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  499. package/lib/esm/core-react/utils/Point.d.ts +37 -37
  500. package/lib/esm/core-react/utils/Point.js +69 -69
  501. package/lib/esm/core-react/utils/Point.js.map +1 -1
  502. package/lib/esm/core-react/utils/Props.d.ts +38 -38
  503. package/lib/esm/core-react/utils/Props.d.ts.map +1 -1
  504. package/lib/esm/core-react/utils/Props.js +8 -8
  505. package/lib/esm/core-react/utils/Rectangle.d.ts +144 -144
  506. package/lib/esm/core-react/utils/Rectangle.js +266 -266
  507. package/lib/esm/core-react/utils/Rectangle.js.map +1 -1
  508. package/lib/esm/core-react/utils/ScrollPositionMaintainer.d.ts +23 -23
  509. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js +32 -32
  510. package/lib/esm/core-react/utils/Size.d.ts +23 -23
  511. package/lib/esm/core-react/utils/Size.js +28 -28
  512. package/lib/esm/core-react/utils/Size.js.map +1 -1
  513. package/lib/esm/core-react/utils/Timer.d.ts +35 -35
  514. package/lib/esm/core-react/utils/Timer.d.ts.map +1 -1
  515. package/lib/esm/core-react/utils/Timer.js +60 -60
  516. package/lib/esm/core-react/utils/UiGeometry.d.ts +20 -20
  517. package/lib/esm/core-react/utils/UiGeometry.js +24 -24
  518. package/lib/esm/core-react/utils/flattenChildren.d.ts +8 -8
  519. package/lib/esm/core-react/utils/flattenChildren.js +23 -23
  520. package/lib/esm/core-react/utils/getBestBWContrastColor.d.ts +7 -7
  521. package/lib/esm/core-react/utils/getBestBWContrastColor.js +18 -18
  522. package/lib/esm/core-react/utils/getBestBWContrastColor.js.map +1 -1
  523. package/lib/esm/core-react/utils/getCssVariable.d.ts +11 -11
  524. package/lib/esm/core-react/utils/getCssVariable.js +26 -26
  525. package/lib/esm/core-react/utils/getCssVariable.js.map +1 -1
  526. package/lib/esm/core-react/utils/getDisplayName.d.ts +8 -8
  527. package/lib/esm/core-react/utils/getDisplayName.js +17 -17
  528. package/lib/esm/core-react/utils/getUserColor.d.ts +7 -7
  529. package/lib/esm/core-react/utils/getUserColor.js +34 -34
  530. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.d.ts +4 -4
  531. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.d.ts.map +1 -1
  532. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js +16 -16
  533. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.d.ts +7 -7
  534. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js +84 -85
  535. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  536. package/lib/esm/core-react/utils/hooks/useDisposable.d.ts +17 -17
  537. package/lib/esm/core-react/utils/hooks/useDisposable.js +33 -33
  538. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.d.ts +8 -8
  539. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js +22 -22
  540. package/lib/esm/core-react/utils/hooks/useEventListener.d.ts +11 -11
  541. package/lib/esm/core-react/utils/hooks/useEventListener.js +39 -39
  542. package/lib/esm/core-react/utils/hooks/useInterval.d.ts +5 -5
  543. package/lib/esm/core-react/utils/hooks/useInterval.js +32 -32
  544. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.d.ts +5 -5
  545. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js +60 -60
  546. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.d.ts +12 -12
  547. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.d.ts.map +1 -1
  548. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js +88 -88
  549. package/lib/esm/core-react/utils/hooks/useProximityToMouse.d.ts +55 -55
  550. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js +102 -102
  551. package/lib/esm/core-react/utils/hooks/useRefEffect.d.ts +7 -7
  552. package/lib/esm/core-react/utils/hooks/useRefEffect.js +19 -19
  553. package/lib/esm/core-react/utils/hooks/useRefState.d.ts +21 -21
  554. package/lib/esm/core-react/utils/hooks/useRefState.js +31 -31
  555. package/lib/esm/core-react/utils/hooks/useRefs.d.ts +12 -12
  556. package/lib/esm/core-react/utils/hooks/useRefs.js +48 -48
  557. package/lib/esm/core-react/utils/hooks/useResizeObserver.d.ts +39 -39
  558. package/lib/esm/core-react/utils/hooks/useResizeObserver.js +196 -201
  559. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  560. package/lib/esm/core-react/utils/hooks/useTargeted.d.ts +8 -8
  561. package/lib/esm/core-react/utils/hooks/useTargeted.js +24 -24
  562. package/lib/esm/core-react/utils/hooks/useThrottledFn.d.ts +15 -15
  563. package/lib/esm/core-react/utils/hooks/useThrottledFn.js +21 -21
  564. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.d.ts +20 -20
  565. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js +23 -23
  566. package/lib/esm/core-react/utils/isPromiseLike.d.ts +7 -7
  567. package/lib/esm/core-react/utils/isPromiseLike.js +13 -13
  568. package/lib/esm/core-react/utils/shallowDiffers.d.ts +11 -11
  569. package/lib/esm/core-react/utils/shallowDiffers.js +25 -25
  570. package/lib/esm/core-react/utils/typeUtils.d.ts +7 -7
  571. package/lib/esm/core-react/utils/typeUtils.d.ts.map +1 -1
  572. package/lib/esm/core-react/utils/typeUtils.js +8 -8
  573. package/lib/esm/core-react.d.ts +236 -236
  574. package/lib/esm/core-react.js +241 -241
  575. package/package.json +15 -13
  576. package/ThirdPartyNotices.md +0 -28
  577. package/lib/cjs/core-react/button/blue-large.scss +0 -12
  578. package/lib/cjs/core-react/button/blue.scss +0 -17
  579. package/lib/cjs/core-react/button/button.scss +0 -70
  580. package/lib/cjs/core-react/button/classes.scss +0 -14
  581. package/lib/cjs/core-react/button/disabled-large.scss +0 -12
  582. package/lib/cjs/core-react/button/disabled.scss +0 -17
  583. package/lib/cjs/core-react/button/hollow-large.scss +0 -13
  584. package/lib/cjs/core-react/button/hollow.scss +0 -30
  585. package/lib/cjs/core-react/button/index.scss +0 -14
  586. package/lib/cjs/core-react/button/primary-large.scss +0 -12
  587. package/lib/cjs/core-react/button/primary.scss +0 -17
  588. package/lib/cjs/core-react/button/variables.scss +0 -22
  589. package/lib/cjs/core-react/checkbox/checkbox.scss +0 -124
  590. package/lib/cjs/core-react/checkbox/classes.scss +0 -8
  591. package/lib/cjs/core-react/checkbox/index.scss +0 -8
  592. package/lib/cjs/core-react/style/data-viz.scss +0 -20
  593. package/lib/cjs/core-react/style/space.scss +0 -13
  594. package/lib/cjs/core-react/style/speed.scss +0 -9
  595. package/lib/cjs/core-react/style/typography.scss +0 -39
  596. package/lib/cjs/core-react/style/variables.scss +0 -9
  597. package/lib/esm/core-react/button/blue-large.scss +0 -12
  598. package/lib/esm/core-react/button/blue.scss +0 -17
  599. package/lib/esm/core-react/button/button.scss +0 -70
  600. package/lib/esm/core-react/button/classes.scss +0 -14
  601. package/lib/esm/core-react/button/disabled-large.scss +0 -12
  602. package/lib/esm/core-react/button/disabled.scss +0 -17
  603. package/lib/esm/core-react/button/hollow-large.scss +0 -13
  604. package/lib/esm/core-react/button/hollow.scss +0 -30
  605. package/lib/esm/core-react/button/index.scss +0 -14
  606. package/lib/esm/core-react/button/primary-large.scss +0 -12
  607. package/lib/esm/core-react/button/primary.scss +0 -17
  608. package/lib/esm/core-react/button/variables.scss +0 -22
  609. package/lib/esm/core-react/checkbox/checkbox.scss +0 -124
  610. package/lib/esm/core-react/checkbox/classes.scss +0 -8
  611. package/lib/esm/core-react/checkbox/index.scss +0 -8
  612. package/lib/esm/core-react/style/data-viz.scss +0 -20
  613. package/lib/esm/core-react/style/space.scss +0 -13
  614. package/lib/esm/core-react/style/speed.scss +0 -9
  615. package/lib/esm/core-react/style/typography.scss +0 -39
  616. package/lib/esm/core-react/style/variables.scss +0 -9
@@ -1,419 +1,416 @@
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
- /** @packageDocumentation
6
- * @module Popup
7
- */
8
- import "./Popup.scss";
9
- import classnames from "classnames";
10
- import * as React from "react";
11
- import * as ReactDOM from "react-dom";
12
- import { RelativePosition, SpecialKey } from "@itwin/appui-abstract";
13
- import { FocusTrap } from "../focustrap/FocusTrap";
14
- /** Popup React component displays a popup relative to an optional target element.
15
- * @public
16
- */
17
- export class Popup extends React.Component {
18
- constructor(props) {
19
- var _a, _b;
20
- super(props);
21
- this._popup = null;
22
- this._bindWindowEvents = () => {
23
- const activeWindow = this.getParentWindow();
24
- activeWindow.addEventListener("pointerdown", this._handleOutsideClick);
25
- activeWindow.addEventListener("resize", this._resize);
26
- activeWindow.addEventListener("contextmenu", this._handleContextMenu);
27
- activeWindow.addEventListener("scroll", this._hide);
28
- activeWindow.addEventListener("wheel", this._handleWheel);
29
- activeWindow.addEventListener("keydown", this._handleKeyboard);
30
- };
31
- this._unBindWindowEvents = () => {
32
- const activeWindow = this.getParentWindow();
33
- activeWindow.removeEventListener("pointerdown", this._handleOutsideClick);
34
- activeWindow.removeEventListener("resize", this._resize);
35
- activeWindow.removeEventListener("contextmenu", this._handleContextMenu);
36
- activeWindow.removeEventListener("scroll", this._hide);
37
- activeWindow.removeEventListener("wheel", this._handleWheel);
38
- activeWindow.removeEventListener("keydown", this._handleKeyboard);
39
- };
40
- this._handleWheel = (event) => {
41
- if (this._popup && this._popup.contains(event.target))
42
- return;
43
- if (this.props.onWheel)
44
- return this.props.onWheel(event);
45
- const closeOnWheel = this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;
46
- if (closeOnWheel)
47
- this._hide();
48
- };
49
- this._handleOutsideClick = (event) => {
50
- if (this._popup && this._popup.contains(event.target))
51
- return;
52
- if (this.props.isPinned)
53
- return;
54
- if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target))
55
- return;
56
- if (this.props.onOutsideClick)
57
- return this.props.onOutsideClick(event);
58
- if (this.props.target && this.props.target.contains(event.target))
59
- return;
60
- this._onClose();
61
- };
62
- this._handleContextMenu = (event) => {
63
- if (this._popup && this._popup.contains(event.target))
64
- return;
65
- if (this.props.onContextMenu)
66
- return this.props.onContextMenu(event);
67
- const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;
68
- if (closeOnContextMenu)
69
- this._hide();
70
- };
71
- this._handleKeyboard = (event) => {
72
- if (this.props.isPinned)
73
- return;
74
- if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {
75
- const closeOnEnter = this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;
76
- if (event.key === SpecialKey.Enter) {
77
- if (closeOnEnter)
78
- this._onClose(true);
79
- else
80
- this.props.onEnter && this.props.onEnter();
81
- }
82
- else {
83
- this._onClose(false);
84
- }
85
- }
86
- };
87
- this._resize = () => {
88
- if (this.props.repositionOnResize) {
89
- const position = this._toggleRelativePosition();
90
- const point = this._fitPopup(this._getPosition(position));
91
- this.setState({ left: point.x, top: point.y, position });
92
- }
93
- else {
94
- this._hide(); // legacy behavior
95
- }
96
- };
97
- this._hide = () => {
98
- if (this.props.isPinned)
99
- return;
100
- this._onClose();
101
- };
102
- this._getPosition = (position) => {
103
- const activeWindow = this.getParentWindow();
104
- const { target, offset, top, left } = this.props;
105
- const offsetArrow = (this.props.showArrow) ? 6 : 0;
106
- // absolute position
107
- if (this._isPositionAbsolute())
108
- return { x: left, y: top };
109
- // sanity check
110
- const point = { x: 0, y: 0 };
111
- if (!this._popup || !target)
112
- return point;
113
- // relative position
114
- const scrollY = activeWindow.scrollY;
115
- const scrollX = activeWindow.scrollX;
116
- const targetRect = target.getBoundingClientRect();
117
- const { popupWidth, popupHeight } = this._getPopupDimensions();
118
- switch (position) {
119
- case RelativePosition.Top:
120
- point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
121
- point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
122
- break;
123
- case RelativePosition.TopLeft:
124
- point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
125
- point.x = scrollX + targetRect.left;
126
- break;
127
- case RelativePosition.TopRight:
128
- point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
129
- point.x = scrollX + targetRect.right - popupWidth;
130
- break;
131
- case RelativePosition.Bottom:
132
- point.y = scrollY + targetRect.bottom + offset + offsetArrow;
133
- point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
134
- break;
135
- case RelativePosition.BottomLeft:
136
- point.y = scrollY + targetRect.bottom + offset + offsetArrow;
137
- point.x = scrollX + targetRect.left;
138
- break;
139
- case RelativePosition.BottomRight:
140
- point.y = scrollY + targetRect.bottom + offset + offsetArrow;
141
- point.x = scrollX + targetRect.right - popupWidth;
142
- break;
143
- case RelativePosition.Left:
144
- point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
145
- point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
146
- break;
147
- case RelativePosition.LeftTop:
148
- point.y = scrollY + targetRect.top;
149
- point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
150
- break;
151
- case RelativePosition.Right:
152
- point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
153
- point.x = scrollX + targetRect.right + offset + offsetArrow;
154
- break;
155
- case RelativePosition.RightTop:
156
- point.y = scrollY + targetRect.top;
157
- point.x = scrollX + targetRect.right + offset + offsetArrow;
158
- break;
159
- }
160
- return point;
161
- };
162
- // fit the popup within the extents of the view port
163
- this._fitPopup = (point) => {
164
- const fittedPoint = point;
165
- // istanbul ignore if
166
- if (!this._popup) {
167
- return fittedPoint;
168
- }
169
- // const popupRect = this._popup.getBoundingClientRect();
170
- const { popupWidth, popupHeight } = this._getPopupDimensions();
171
- const { innerWidth, innerHeight } = window;
172
- // istanbul ignore if
173
- if (fittedPoint.y + popupHeight > innerHeight) {
174
- fittedPoint.y = innerHeight - popupHeight;
175
- }
176
- // istanbul ignore if
177
- if (fittedPoint.x + popupWidth > innerWidth) {
178
- fittedPoint.x = innerWidth - popupWidth;
179
- }
180
- // istanbul ignore if
181
- if (fittedPoint.y < 0) {
182
- fittedPoint.y = 0;
183
- }
184
- if (fittedPoint.x < 0) {
185
- fittedPoint.x = 0;
186
- }
187
- return fittedPoint;
188
- };
189
- this._handleAnimationEnd = (event) => {
190
- if (event.target === this._popup) {
191
- this.setState({ animationEnded: true });
192
- }
193
- };
194
- const parentDocument = (_b = (_a = this.props.target) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document;
195
- this.state = {
196
- animationEnded: false,
197
- isOpen: this.props.isOpen,
198
- top: 0,
199
- left: 0,
200
- position: this.props.position,
201
- parentDocument,
202
- };
203
- }
204
- componentDidMount() {
205
- if (this.props.isOpen) {
206
- this._onShow();
207
- }
208
- }
209
- getParentWindow() {
210
- var _a;
211
- // istanbul ignore next
212
- return (_a = this.state.parentDocument.defaultView) !== null && _a !== void 0 ? _a : window;
213
- }
214
- componentDidUpdate(previousProps, prevState) {
215
- var _a, _b;
216
- if (this.state.position !== prevState.position) {
217
- this.setState({ animationEnded: false });
218
- }
219
- if (this.props.target !== previousProps.target) {
220
- // istanbul ignore next
221
- {
222
- const parentDocument = (_b = (_a = this.props.target) === null || _a === void 0 ? void 0 : _a.ownerDocument) !== null && _b !== void 0 ? _b : document;
223
- if (parentDocument !== this.state.parentDocument) {
224
- this._unBindWindowEvents();
225
- this.setState({ parentDocument });
226
- }
227
- }
228
- }
229
- if (this.props.isOpen === previousProps.isOpen) {
230
- if (this.props.isOpen) {
231
- const position = this._toggleRelativePosition();
232
- const point = this._fitPopup(this._getPosition(position));
233
- if ((Math.abs(this.state.left - point.x) < 3) &&
234
- (Math.abs(this.state.top - point.y) < 3) &&
235
- this.state.position === position)
236
- return;
237
- this.setState({
238
- left: point.x,
239
- top: point.y,
240
- position,
241
- });
242
- }
243
- return;
244
- }
245
- if (this.props.isOpen) {
246
- this._onShow();
247
- }
248
- else {
249
- this._onClose();
250
- }
251
- }
252
- componentWillUnmount() {
253
- this._unBindWindowEvents();
254
- }
255
- isInCorePopup(element) {
256
- if (element.nodeName === "DIV") {
257
- if (element.classList && element.classList.contains("core-popup"))
258
- return true;
259
- if (element.parentElement && this.isInCorePopup(element.parentElement))
260
- return true;
261
- }
262
- else {
263
- // istanbul ignore else
264
- if (element.parentElement && this.isInCorePopup(element.parentElement))
265
- return true;
266
- }
267
- return false;
268
- }
269
- _onShow() {
270
- this._bindWindowEvents();
271
- const position = this._toggleRelativePosition();
272
- const point = this._fitPopup(this._getPosition(position));
273
- this.setState({ left: point.x, top: point.y, isOpen: true, position }, () => {
274
- if (this.props.onOpen)
275
- this.props.onOpen();
276
- });
277
- }
278
- _onClose(enterKey) {
279
- if (!this.state.isOpen)
280
- return;
281
- this._unBindWindowEvents();
282
- this.setState({ isOpen: false }, () => {
283
- if (enterKey && this.props.onEnter)
284
- this.props.onEnter();
285
- if (this.props.onClose)
286
- this.props.onClose();
287
- });
288
- }
289
- _isPositionAbsolute() {
290
- return (this.props.top !== -1 && this.props.left !== -1);
291
- }
292
- _getClassNameByPosition(position) {
293
- if (!this._isPositionAbsolute()) {
294
- switch (position) {
295
- case RelativePosition.TopLeft:
296
- return "core-popup-top-left";
297
- case RelativePosition.TopRight:
298
- return "core-popup-top-right";
299
- case RelativePosition.BottomLeft:
300
- return "core-popup-bottom-left";
301
- case RelativePosition.BottomRight:
302
- return "core-popup-bottom-right";
303
- case RelativePosition.Top:
304
- return "core-popup-top";
305
- case RelativePosition.Left:
306
- return "core-popup-left";
307
- case RelativePosition.Right:
308
- return "core-popup-right";
309
- case RelativePosition.Bottom:
310
- return "core-popup-bottom";
311
- case RelativePosition.LeftTop:
312
- return "core-popup-left-top";
313
- case RelativePosition.RightTop:
314
- return "core-popup-right-top";
315
- }
316
- }
317
- return "";
318
- }
319
- _getPopupDimensions() {
320
- let popupWidth = 0;
321
- let popupHeight = 0;
322
- // istanbul ignore else
323
- if (this._popup) {
324
- const activeWindow = this.getParentWindow();
325
- const style = activeWindow.getComputedStyle(this._popup);
326
- const borderLeftWidth = parsePxString(style.borderLeftWidth);
327
- const borderRightWidth = parsePxString(style.borderRightWidth);
328
- const borderTopWidth = parsePxString(style.borderTopWidth);
329
- const borderBottomWidth = parsePxString(style.borderBottomWidth);
330
- popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;
331
- popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;
332
- }
333
- return { popupWidth, popupHeight };
334
- }
335
- _toggleRelativePosition() {
336
- const { target, position, offset } = this.props;
337
- if (!this._popup || !target)
338
- return position;
339
- // istanbul ignore if
340
- if (this._isPositionAbsolute())
341
- return position;
342
- let newPosition = position;
343
- const activeWindow = this.getParentWindow();
344
- // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)
345
- const viewportRect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };
346
- const targetRect = target.getBoundingClientRect();
347
- const { popupWidth, popupHeight } = this._getPopupDimensions();
348
- const containerStyle = activeWindow.getComputedStyle(target);
349
- const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;
350
- const bottomMargin = parseMargin(containerStyle.marginBottom);
351
- if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {
352
- if (newPosition === RelativePosition.Bottom)
353
- newPosition = RelativePosition.Top;
354
- else if (newPosition === RelativePosition.BottomLeft)
355
- newPosition = RelativePosition.TopLeft;
356
- else if (newPosition === RelativePosition.BottomRight)
357
- newPosition = RelativePosition.TopRight;
358
- }
359
- const topMargin = parseMargin(containerStyle.marginTop);
360
- if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {
361
- if (newPosition === RelativePosition.Top)
362
- newPosition = RelativePosition.Bottom;
363
- else if (newPosition === RelativePosition.TopLeft)
364
- newPosition = RelativePosition.BottomLeft;
365
- else if (newPosition === RelativePosition.TopRight)
366
- newPosition = RelativePosition.BottomRight;
367
- }
368
- const leftMargin = parseMargin(containerStyle.marginLeft);
369
- if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {
370
- if (newPosition === RelativePosition.Left)
371
- newPosition = RelativePosition.Right;
372
- else if (newPosition === RelativePosition.LeftTop)
373
- newPosition = RelativePosition.RightTop;
374
- }
375
- const rightMargin = parseMargin(containerStyle.marginRight);
376
- if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {
377
- if (newPosition === RelativePosition.Right)
378
- newPosition = RelativePosition.Left;
379
- else if (newPosition === RelativePosition.RightTop)
380
- newPosition = RelativePosition.LeftTop;
381
- }
382
- return newPosition;
383
- }
384
- render() {
385
- var _a;
386
- const animate = this.props.animate !== undefined ? this.props.animate : true;
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");
388
- const style = {
389
- top: this.state.top,
390
- left: this.state.left,
391
- ...this.props.style,
392
- };
393
- const role = this.props.role ? this.props.role : "dialog"; // accessibility property
394
- if (!this.props.isOpen && !this.props.keepContentsMounted) {
395
- return null;
396
- }
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 },
398
- React.createElement(FocusTrap, { active: !!this.props.moveFocus, initialFocusElement: this.props.focusTarget, returnFocusOnDeactivate: true }, this.props.children))),
399
- // istanbul ignore next
400
- (_a = this.state.parentDocument.body.querySelector('[data-root-container="iui-root-id"]')) !== null && _a !== void 0 ? _a : this.state.parentDocument.body);
401
- }
402
- }
403
- Popup.defaultProps = {
404
- position: RelativePosition.Bottom,
405
- showShadow: true,
406
- showArrow: false,
407
- isOpen: false,
408
- offset: 4,
409
- top: -1,
410
- left: -1,
411
- };
412
- function parsePxString(pxStr) {
413
- const parsed = parseInt(pxStr, 10);
414
- return parsed || 0;
415
- }
416
- function parseMargin(value) {
417
- return value ? /* istanbul ignore next */ parseFloat(value) : 0;
418
- }
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
+ /** @packageDocumentation
6
+ * @module Popup
7
+ */
8
+ import "./Popup.scss";
9
+ import classnames from "classnames";
10
+ import * as React from "react";
11
+ import * as ReactDOM from "react-dom";
12
+ import { RelativePosition, SpecialKey } from "@itwin/appui-abstract";
13
+ import { FocusTrap } from "../focustrap/FocusTrap";
14
+ /** Popup React component displays a popup relative to an optional target element.
15
+ * @public
16
+ */
17
+ class Popup extends React.Component {
18
+ constructor(props) {
19
+ super(props);
20
+ this._popup = null;
21
+ this._bindWindowEvents = () => {
22
+ const activeWindow = this.getParentWindow();
23
+ activeWindow.addEventListener("pointerdown", this._handleOutsideClick);
24
+ activeWindow.addEventListener("resize", this._resize);
25
+ activeWindow.addEventListener("contextmenu", this._handleContextMenu);
26
+ activeWindow.addEventListener("scroll", this._hide);
27
+ activeWindow.addEventListener("wheel", this._handleWheel);
28
+ activeWindow.addEventListener("keydown", this._handleKeyboard);
29
+ };
30
+ this._unBindWindowEvents = () => {
31
+ const activeWindow = this.getParentWindow();
32
+ activeWindow.removeEventListener("pointerdown", this._handleOutsideClick);
33
+ activeWindow.removeEventListener("resize", this._resize);
34
+ activeWindow.removeEventListener("contextmenu", this._handleContextMenu);
35
+ activeWindow.removeEventListener("scroll", this._hide);
36
+ activeWindow.removeEventListener("wheel", this._handleWheel);
37
+ activeWindow.removeEventListener("keydown", this._handleKeyboard);
38
+ };
39
+ this._handleWheel = (event) => {
40
+ if (this._popup && this._popup.contains(event.target))
41
+ return;
42
+ if (this.props.onWheel)
43
+ return this.props.onWheel(event);
44
+ const closeOnWheel = this.props.closeOnWheel !== undefined ? this.props.closeOnWheel : true;
45
+ if (closeOnWheel)
46
+ this._hide();
47
+ };
48
+ this._handleOutsideClick = (event) => {
49
+ if (this._popup && this._popup.contains(event.target))
50
+ return;
51
+ if (this.props.isPinned)
52
+ return;
53
+ if (!this.props.closeOnNestedPopupOutsideClick && this.isInCorePopup(event.target))
54
+ return;
55
+ if (this.props.onOutsideClick)
56
+ return this.props.onOutsideClick(event);
57
+ if (this.props.target && this.props.target.contains(event.target))
58
+ return;
59
+ this._onClose();
60
+ };
61
+ this._handleContextMenu = (event) => {
62
+ if (this._popup && this._popup.contains(event.target))
63
+ return;
64
+ if (this.props.onContextMenu)
65
+ return this.props.onContextMenu(event);
66
+ const closeOnContextMenu = this.props.closeOnContextMenu !== undefined ? this.props.closeOnContextMenu : true;
67
+ if (closeOnContextMenu)
68
+ this._hide();
69
+ };
70
+ this._handleKeyboard = (event) => {
71
+ if (this.props.isPinned)
72
+ return;
73
+ if (event.key === SpecialKey.Escape || event.key === SpecialKey.Enter) {
74
+ const closeOnEnter = this.props.closeOnEnter !== undefined ? this.props.closeOnEnter : true;
75
+ if (event.key === SpecialKey.Enter) {
76
+ if (closeOnEnter)
77
+ this._onClose(true);
78
+ else
79
+ this.props.onEnter && this.props.onEnter();
80
+ }
81
+ else {
82
+ this._onClose(false);
83
+ }
84
+ }
85
+ };
86
+ this._resize = () => {
87
+ if (this.props.repositionOnResize) {
88
+ const position = this._toggleRelativePosition();
89
+ const point = this._fitPopup(this._getPosition(position));
90
+ this.setState({ left: point.x, top: point.y, position });
91
+ }
92
+ else {
93
+ this._hide(); // legacy behavior
94
+ }
95
+ };
96
+ this._hide = () => {
97
+ if (this.props.isPinned)
98
+ return;
99
+ this._onClose();
100
+ };
101
+ this._getPosition = (position) => {
102
+ const activeWindow = this.getParentWindow();
103
+ const { target, offset, top, left } = this.props;
104
+ const offsetArrow = (this.props.showArrow) ? 6 : 0;
105
+ // absolute position
106
+ if (this._isPositionAbsolute())
107
+ return { x: left, y: top };
108
+ // sanity check
109
+ const point = { x: 0, y: 0 };
110
+ if (!this._popup || !target)
111
+ return point;
112
+ // relative position
113
+ const scrollY = activeWindow.scrollY;
114
+ const scrollX = activeWindow.scrollX;
115
+ const targetRect = target.getBoundingClientRect();
116
+ const { popupWidth, popupHeight } = this._getPopupDimensions();
117
+ switch (position) {
118
+ case RelativePosition.Top:
119
+ point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
120
+ point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
121
+ break;
122
+ case RelativePosition.TopLeft:
123
+ point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
124
+ point.x = scrollX + targetRect.left;
125
+ break;
126
+ case RelativePosition.TopRight:
127
+ point.y = scrollY + targetRect.top - popupHeight - offset - offsetArrow;
128
+ point.x = scrollX + targetRect.right - popupWidth;
129
+ break;
130
+ case RelativePosition.Bottom:
131
+ point.y = scrollY + targetRect.bottom + offset + offsetArrow;
132
+ point.x = scrollX + targetRect.left + (targetRect.width / 2) - (popupWidth / 2);
133
+ break;
134
+ case RelativePosition.BottomLeft:
135
+ point.y = scrollY + targetRect.bottom + offset + offsetArrow;
136
+ point.x = scrollX + targetRect.left;
137
+ break;
138
+ case RelativePosition.BottomRight:
139
+ point.y = scrollY + targetRect.bottom + offset + offsetArrow;
140
+ point.x = scrollX + targetRect.right - popupWidth;
141
+ break;
142
+ case RelativePosition.Left:
143
+ point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
144
+ point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
145
+ break;
146
+ case RelativePosition.LeftTop:
147
+ point.y = scrollY + targetRect.top;
148
+ point.x = scrollX + targetRect.left - popupWidth - offset - offsetArrow;
149
+ break;
150
+ case RelativePosition.Right:
151
+ point.y = scrollY + targetRect.top + (targetRect.height / 2) - (popupHeight / 2);
152
+ point.x = scrollX + targetRect.right + offset + offsetArrow;
153
+ break;
154
+ case RelativePosition.RightTop:
155
+ point.y = scrollY + targetRect.top;
156
+ point.x = scrollX + targetRect.right + offset + offsetArrow;
157
+ break;
158
+ }
159
+ return point;
160
+ };
161
+ // fit the popup within the extents of the view port
162
+ this._fitPopup = (point) => {
163
+ const fittedPoint = point;
164
+ // istanbul ignore if
165
+ if (!this._popup) {
166
+ return fittedPoint;
167
+ }
168
+ // const popupRect = this._popup.getBoundingClientRect();
169
+ const { popupWidth, popupHeight } = this._getPopupDimensions();
170
+ const { innerWidth, innerHeight } = window;
171
+ // istanbul ignore if
172
+ if (fittedPoint.y + popupHeight > innerHeight) {
173
+ fittedPoint.y = innerHeight - popupHeight;
174
+ }
175
+ // istanbul ignore if
176
+ if (fittedPoint.x + popupWidth > innerWidth) {
177
+ fittedPoint.x = innerWidth - popupWidth;
178
+ }
179
+ // istanbul ignore if
180
+ if (fittedPoint.y < 0) {
181
+ fittedPoint.y = 0;
182
+ }
183
+ if (fittedPoint.x < 0) {
184
+ fittedPoint.x = 0;
185
+ }
186
+ return fittedPoint;
187
+ };
188
+ this._handleAnimationEnd = (event) => {
189
+ if (event.target === this._popup) {
190
+ this.setState({ animationEnded: true });
191
+ }
192
+ };
193
+ const parentDocument = this.props.target?.ownerDocument ?? document;
194
+ this.state = {
195
+ animationEnded: false,
196
+ isOpen: this.props.isOpen,
197
+ top: 0,
198
+ left: 0,
199
+ position: this.props.position,
200
+ parentDocument,
201
+ };
202
+ }
203
+ componentDidMount() {
204
+ if (this.props.isOpen) {
205
+ this._onShow();
206
+ }
207
+ }
208
+ getParentWindow() {
209
+ // istanbul ignore next
210
+ return this.state.parentDocument.defaultView ?? window;
211
+ }
212
+ componentDidUpdate(previousProps, prevState) {
213
+ if (this.state.position !== prevState.position) {
214
+ this.setState({ animationEnded: false });
215
+ }
216
+ if (this.props.target !== previousProps.target) {
217
+ // istanbul ignore next
218
+ {
219
+ const parentDocument = this.props.target?.ownerDocument ?? document;
220
+ if (parentDocument !== this.state.parentDocument) {
221
+ this._unBindWindowEvents();
222
+ this.setState({ parentDocument });
223
+ }
224
+ }
225
+ }
226
+ if (this.props.isOpen === previousProps.isOpen) {
227
+ if (this.props.isOpen) {
228
+ const position = this._toggleRelativePosition();
229
+ const point = this._fitPopup(this._getPosition(position));
230
+ if ((Math.abs(this.state.left - point.x) < 3) &&
231
+ (Math.abs(this.state.top - point.y) < 3) &&
232
+ this.state.position === position)
233
+ return;
234
+ this.setState({
235
+ left: point.x,
236
+ top: point.y,
237
+ position,
238
+ });
239
+ }
240
+ return;
241
+ }
242
+ if (this.props.isOpen) {
243
+ this._onShow();
244
+ }
245
+ else {
246
+ this._onClose();
247
+ }
248
+ }
249
+ componentWillUnmount() {
250
+ this._unBindWindowEvents();
251
+ }
252
+ isInCorePopup(element) {
253
+ if (element.nodeName === "DIV") {
254
+ if (element.classList && element.classList.contains("core-popup"))
255
+ return true;
256
+ if (element.parentElement && this.isInCorePopup(element.parentElement))
257
+ return true;
258
+ }
259
+ else {
260
+ // istanbul ignore else
261
+ if (element.parentElement && this.isInCorePopup(element.parentElement))
262
+ return true;
263
+ }
264
+ return false;
265
+ }
266
+ _onShow() {
267
+ this._bindWindowEvents();
268
+ const position = this._toggleRelativePosition();
269
+ const point = this._fitPopup(this._getPosition(position));
270
+ this.setState({ left: point.x, top: point.y, isOpen: true, position }, () => {
271
+ if (this.props.onOpen)
272
+ this.props.onOpen();
273
+ });
274
+ }
275
+ _onClose(enterKey) {
276
+ if (!this.state.isOpen)
277
+ return;
278
+ this._unBindWindowEvents();
279
+ this.setState({ isOpen: false }, () => {
280
+ if (enterKey && this.props.onEnter)
281
+ this.props.onEnter();
282
+ if (this.props.onClose)
283
+ this.props.onClose();
284
+ });
285
+ }
286
+ _isPositionAbsolute() {
287
+ return (this.props.top !== -1 && this.props.left !== -1);
288
+ }
289
+ _getClassNameByPosition(position) {
290
+ if (!this._isPositionAbsolute()) {
291
+ switch (position) {
292
+ case RelativePosition.TopLeft:
293
+ return "core-popup-top-left";
294
+ case RelativePosition.TopRight:
295
+ return "core-popup-top-right";
296
+ case RelativePosition.BottomLeft:
297
+ return "core-popup-bottom-left";
298
+ case RelativePosition.BottomRight:
299
+ return "core-popup-bottom-right";
300
+ case RelativePosition.Top:
301
+ return "core-popup-top";
302
+ case RelativePosition.Left:
303
+ return "core-popup-left";
304
+ case RelativePosition.Right:
305
+ return "core-popup-right";
306
+ case RelativePosition.Bottom:
307
+ return "core-popup-bottom";
308
+ case RelativePosition.LeftTop:
309
+ return "core-popup-left-top";
310
+ case RelativePosition.RightTop:
311
+ return "core-popup-right-top";
312
+ }
313
+ }
314
+ return "";
315
+ }
316
+ _getPopupDimensions() {
317
+ let popupWidth = 0;
318
+ let popupHeight = 0;
319
+ // istanbul ignore else
320
+ if (this._popup) {
321
+ const activeWindow = this.getParentWindow();
322
+ const style = activeWindow.getComputedStyle(this._popup);
323
+ const borderLeftWidth = parsePxString(style.borderLeftWidth);
324
+ const borderRightWidth = parsePxString(style.borderRightWidth);
325
+ const borderTopWidth = parsePxString(style.borderTopWidth);
326
+ const borderBottomWidth = parsePxString(style.borderBottomWidth);
327
+ popupWidth = this._popup.clientWidth + borderLeftWidth + borderRightWidth;
328
+ popupHeight = this._popup.clientHeight + borderTopWidth + borderBottomWidth;
329
+ }
330
+ return { popupWidth, popupHeight };
331
+ }
332
+ _toggleRelativePosition() {
333
+ const { target, position, offset } = this.props;
334
+ if (!this._popup || !target)
335
+ return position;
336
+ // istanbul ignore if
337
+ if (this._isPositionAbsolute())
338
+ return position;
339
+ let newPosition = position;
340
+ const activeWindow = this.getParentWindow();
341
+ // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)
342
+ const viewportRect = { left: activeWindow.scrollX, top: activeWindow.scrollY, right: activeWindow.scrollX + activeWindow.innerWidth, bottom: activeWindow.scrollY + activeWindow.innerHeight };
343
+ const targetRect = target.getBoundingClientRect();
344
+ const { popupWidth, popupHeight } = this._getPopupDimensions();
345
+ const containerStyle = activeWindow.getComputedStyle(target);
346
+ const offsetArrow = this.props.showArrow ? /* istanbul ignore next */ 10 : 2;
347
+ const bottomMargin = parseMargin(containerStyle.marginBottom);
348
+ if ((targetRect.bottom + popupHeight + bottomMargin + offsetArrow + offset) > viewportRect.bottom) {
349
+ if (newPosition === RelativePosition.Bottom)
350
+ newPosition = RelativePosition.Top;
351
+ else if (newPosition === RelativePosition.BottomLeft)
352
+ newPosition = RelativePosition.TopLeft;
353
+ else if (newPosition === RelativePosition.BottomRight)
354
+ newPosition = RelativePosition.TopRight;
355
+ }
356
+ const topMargin = parseMargin(containerStyle.marginTop);
357
+ if ((targetRect.top - popupHeight - topMargin - offsetArrow - offset) < viewportRect.top) {
358
+ if (newPosition === RelativePosition.Top)
359
+ newPosition = RelativePosition.Bottom;
360
+ else if (newPosition === RelativePosition.TopLeft)
361
+ newPosition = RelativePosition.BottomLeft;
362
+ else if (newPosition === RelativePosition.TopRight)
363
+ newPosition = RelativePosition.BottomRight;
364
+ }
365
+ const leftMargin = parseMargin(containerStyle.marginLeft);
366
+ if ((targetRect.left - popupWidth - leftMargin - offsetArrow - offset) < viewportRect.left) {
367
+ if (newPosition === RelativePosition.Left)
368
+ newPosition = RelativePosition.Right;
369
+ else if (newPosition === RelativePosition.LeftTop)
370
+ newPosition = RelativePosition.RightTop;
371
+ }
372
+ const rightMargin = parseMargin(containerStyle.marginRight);
373
+ if ((targetRect.right + popupWidth + rightMargin + offsetArrow + offset) > viewportRect.right) {
374
+ if (newPosition === RelativePosition.Right)
375
+ newPosition = RelativePosition.Left;
376
+ else if (newPosition === RelativePosition.RightTop)
377
+ newPosition = RelativePosition.LeftTop;
378
+ }
379
+ return newPosition;
380
+ }
381
+ render() {
382
+ const animate = this.props.animate !== undefined ? this.props.animate : true;
383
+ 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
+ const style = {
385
+ top: this.state.top,
386
+ left: this.state.left,
387
+ ...this.props.style,
388
+ };
389
+ const role = this.props.role ? this.props.role : "dialog"; // accessibility property
390
+ if (!this.props.isOpen && !this.props.keepContentsMounted) {
391
+ return null;
392
+ }
393
+ 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
+ React.createElement(FocusTrap, { active: !!this.props.moveFocus, initialFocusElement: this.props.focusTarget, returnFocusOnDeactivate: true }, this.props.children))),
395
+ // istanbul ignore next
396
+ this.state.parentDocument.body.querySelector('[data-root-container="iui-root-id"]') ?? this.state.parentDocument.body);
397
+ }
398
+ }
399
+ Popup.defaultProps = {
400
+ position: RelativePosition.Bottom,
401
+ showShadow: true,
402
+ showArrow: false,
403
+ isOpen: false,
404
+ offset: 4,
405
+ top: -1,
406
+ left: -1,
407
+ };
408
+ export { Popup };
409
+ function parsePxString(pxStr) {
410
+ const parsed = parseInt(pxStr, 10);
411
+ return parsed || 0;
412
+ }
413
+ function parseMargin(value) {
414
+ return value ? /* istanbul ignore next */ parseFloat(value) : 0;
415
+ }
419
416
  //# sourceMappingURL=Popup.js.map