@itwin/core-react 4.0.0-dev.17 → 4.0.0-dev.19

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 (385) hide show
  1. package/CHANGELOG.md +29 -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.js.map +1 -1
  10. package/lib/cjs/core-react/autosuggest/AutoSuggest.scss +79 -79
  11. package/lib/cjs/core-react/badge/Badge.js.map +1 -1
  12. package/lib/cjs/core-react/badge/Badge.scss +13 -13
  13. package/lib/cjs/core-react/badge/BadgeUtilities.js.map +1 -1
  14. package/lib/cjs/core-react/badge/BetaBadge.js.map +1 -1
  15. package/lib/cjs/core-react/badge/NewBadge.js.map +1 -1
  16. package/lib/cjs/core-react/badge/NewBadge.scss +9 -9
  17. package/lib/cjs/core-react/base/Centered.js.map +1 -1
  18. package/lib/cjs/core-react/base/Div.js.map +1 -1
  19. package/lib/cjs/core-react/base/DivWithOutsideClick.js.map +1 -1
  20. package/lib/cjs/core-react/base/FillCentered.js.map +1 -1
  21. package/lib/cjs/core-react/base/FlexWrapContainer.js.map +1 -1
  22. package/lib/cjs/core-react/base/Gap.js.map +1 -1
  23. package/lib/cjs/core-react/base/PointerEvents.js.map +1 -1
  24. package/lib/cjs/core-react/base/ScrollView.js.map +1 -1
  25. package/lib/cjs/core-react/base/base.scss +42 -42
  26. package/lib/cjs/core-react/base/classes.scss +13 -13
  27. package/lib/cjs/core-react/base/index.scss +5 -5
  28. package/lib/cjs/core-react/button/UnderlinedButton.js.map +1 -1
  29. package/lib/cjs/core-react/button/UnderlinedButton.scss +32 -32
  30. package/lib/cjs/core-react/checklistbox/CheckListBox.js.map +1 -1
  31. package/lib/cjs/core-react/checklistbox/CheckListBox.scss +21 -21
  32. package/lib/cjs/core-react/classes.scss +11 -11
  33. package/lib/cjs/core-react/colorthemes.scss +61 -61
  34. package/lib/cjs/core-react/colorvariables.scss +131 -131
  35. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  36. package/lib/cjs/core-react/contextmenu/ContextMenu.scss +236 -236
  37. package/lib/cjs/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  38. package/lib/cjs/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  39. package/lib/cjs/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  40. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  41. package/lib/cjs/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  42. package/lib/cjs/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  43. package/lib/cjs/core-react/contextmenu/TildeFinder.js.map +1 -1
  44. package/lib/cjs/core-react/dialog/Dialog.js.map +1 -1
  45. package/lib/cjs/core-react/dialog/Dialog.scss +245 -245
  46. package/lib/cjs/core-react/dialog/GlobalDialog.js.map +1 -1
  47. package/lib/cjs/core-react/elementseparator/ElementSeparator.js.map +1 -1
  48. package/lib/cjs/core-react/elementseparator/ElementSeparator.scss +85 -85
  49. package/lib/cjs/core-react/enums/Alignment.js.map +1 -1
  50. package/lib/cjs/core-react/enums/CheckBoxState.js.map +1 -1
  51. package/lib/cjs/core-react/enums/Orientation.js.map +1 -1
  52. package/lib/cjs/core-react/enums/SortDirection.js.map +1 -1
  53. package/lib/cjs/core-react/enums/TimeFormat.js.map +1 -1
  54. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  55. package/lib/cjs/core-react/expandable/ExpandableList.scss +8 -8
  56. package/lib/cjs/core-react/expandable/classes.scss +7 -7
  57. package/lib/cjs/core-react/expandable/index.scss +5 -5
  58. package/lib/cjs/core-react/expandable/list.scss +35 -35
  59. package/lib/cjs/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  60. package/lib/cjs/core-react/focustrap/FocusTrap.js.map +1 -1
  61. package/lib/cjs/core-react/hocs/withIsPressed.js.map +1 -1
  62. package/lib/cjs/core-react/hocs/withOnOutsideClick.js.map +1 -1
  63. package/lib/cjs/core-react/hocs/withTimeout.js.map +1 -1
  64. package/lib/cjs/core-react/icons/ConditionalIconItem.js.map +1 -1
  65. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  66. package/lib/cjs/core-react/icons/IconComponent.scss +20 -20
  67. package/lib/cjs/core-react/icons/SvgPath.js.map +1 -1
  68. package/lib/cjs/core-react/icons/SvgPath.scss +15 -15
  69. package/lib/cjs/core-react/icons/WebFontIcon.js.map +1 -1
  70. package/lib/cjs/core-react/icons/WebFontIcon.scss +17 -17
  71. package/lib/cjs/core-react/icons/classes.scss +10 -10
  72. package/lib/cjs/core-react/icons/index.scss +6 -6
  73. package/lib/cjs/core-react/icons/mixins.scss +25 -25
  74. package/lib/cjs/core-react/icons/variables.scss +12 -12
  75. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  76. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  77. package/lib/cjs/core-react/index.scss +21 -21
  78. package/lib/cjs/core-react/inputs/Input.js.map +1 -1
  79. package/lib/cjs/core-react/inputs/InputLabel.js.map +1 -1
  80. package/lib/cjs/core-react/inputs/InputStatus.js.map +1 -1
  81. package/lib/cjs/core-react/inputs/LabeledComponentProps.js.map +1 -1
  82. package/lib/cjs/core-react/inputs/classes.scss +8 -8
  83. package/lib/cjs/core-react/inputs/iconinput/IconInput.js.map +1 -1
  84. package/lib/cjs/core-react/inputs/iconinput/IconInput.scss +35 -35
  85. package/lib/cjs/core-react/inputs/index.scss +9 -9
  86. package/lib/cjs/core-react/inputs/input-label.scss +90 -90
  87. package/lib/cjs/core-react/inputs/input.scss +58 -58
  88. package/lib/cjs/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  89. package/lib/cjs/core-react/inputs/numberinput/NumberInput.scss +88 -88
  90. package/lib/cjs/core-react/inputs/variables.scss +38 -38
  91. package/lib/cjs/core-react/layout-variables.scss +17 -17
  92. package/lib/cjs/core-react/listbox/Listbox.js.map +1 -1
  93. package/lib/cjs/core-react/listbox/Listbox.scss +54 -54
  94. package/lib/cjs/core-react/loading/LoadingBar.js.map +1 -1
  95. package/lib/cjs/core-react/loading/LoadingBar.scss +29 -29
  96. package/lib/cjs/core-react/loading/LoadingPrompt.js.map +1 -1
  97. package/lib/cjs/core-react/loading/LoadingPrompt.scss +33 -33
  98. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  99. package/lib/cjs/core-react/loading/LoadingSpinner.scss +26 -26
  100. package/lib/cjs/core-react/loading/LoadingStatus.js.map +1 -1
  101. package/lib/cjs/core-react/loading/LoadingStatus.scss +20 -20
  102. package/lib/cjs/core-react/loading/index.scss +5 -5
  103. package/lib/cjs/core-react/loading/mixins.scss +57 -57
  104. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  105. package/lib/cjs/core-react/messagebox/MessageBox.scss +56 -56
  106. package/lib/cjs/core-react/notification/MessageRenderer.js.map +1 -1
  107. package/lib/cjs/core-react/notification/MessageType.js.map +1 -1
  108. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  109. package/lib/cjs/core-react/popup/Popup.scss +240 -240
  110. package/lib/cjs/core-react/radialmenu/Annulus.js.map +1 -1
  111. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  112. package/lib/cjs/core-react/radialmenu/RadialMenu.scss +55 -55
  113. package/lib/cjs/core-react/searchbox/SearchBox.js.map +1 -1
  114. package/lib/cjs/core-react/searchbox/SearchBox.scss +47 -47
  115. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  116. package/lib/cjs/core-react/settings/SettingsContainer.scss +68 -68
  117. package/lib/cjs/core-react/settings/SettingsManager.js.map +1 -1
  118. package/lib/cjs/core-react/style/baseline.scss +11 -11
  119. package/lib/cjs/core-react/style/breakpoints.scss +41 -41
  120. package/lib/cjs/core-react/style/colors.scss +77 -77
  121. package/lib/cjs/core-react/style/index.scss +10 -10
  122. package/lib/cjs/core-react/style/mixins.scss +27 -27
  123. package/lib/cjs/core-react/style/opacity.scss +16 -16
  124. package/lib/cjs/core-react/style/themecolors.scss +123 -123
  125. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  126. package/lib/cjs/core-react/tabs/VerticalTabs.js.map +1 -1
  127. package/lib/cjs/core-react/tabs/classes.scss +7 -7
  128. package/lib/cjs/core-react/tabs/index.scss +5 -5
  129. package/lib/cjs/core-react/tabs/tabs.scss +96 -96
  130. package/lib/cjs/core-react/tabs/vertical.scss +51 -51
  131. package/lib/cjs/core-react/text/BlockText.js.map +1 -1
  132. package/lib/cjs/core-react/text/BodyText.js.map +1 -1
  133. package/lib/cjs/core-react/text/DisabledText.js.map +1 -1
  134. package/lib/cjs/core-react/text/FilteredText.js.map +1 -1
  135. package/lib/cjs/core-react/text/FilteredText.scss +10 -10
  136. package/lib/cjs/core-react/text/MutedText.js.map +1 -1
  137. package/lib/cjs/core-react/text/StyledText.js.map +1 -1
  138. package/lib/cjs/core-react/text/TextProps.js.map +1 -1
  139. package/lib/cjs/core-react/text/block.scss +15 -15
  140. package/lib/cjs/core-react/text/body.scss +13 -13
  141. package/lib/cjs/core-react/text/classes.scss +10 -10
  142. package/lib/cjs/core-react/text/disabled.scss +10 -10
  143. package/lib/cjs/core-react/text/index.scss +10 -10
  144. package/lib/cjs/core-react/text/mixins.scss +24 -24
  145. package/lib/cjs/core-react/text/muted.scss +10 -10
  146. package/lib/cjs/core-react/tree/Branch.js.map +1 -1
  147. package/lib/cjs/core-react/tree/Branch.scss +12 -12
  148. package/lib/cjs/core-react/tree/ExpansionToggle.js.map +1 -1
  149. package/lib/cjs/core-react/tree/ExpansionToggle.scss +32 -32
  150. package/lib/cjs/core-react/tree/Node.js.map +1 -1
  151. package/lib/cjs/core-react/tree/Node.scss +68 -68
  152. package/lib/cjs/core-react/tree/Placeholder.js.map +1 -1
  153. package/lib/cjs/core-react/tree/Placeholder.scss +17 -17
  154. package/lib/cjs/core-react/tree/Tree.js.map +1 -1
  155. package/lib/cjs/core-react/tree/Tree.scss +21 -21
  156. package/lib/cjs/core-react/uistate/LocalStateStorage.js.map +1 -1
  157. package/lib/cjs/core-react/uistate/UiStateEntry.js.map +1 -1
  158. package/lib/cjs/core-react/uistate/UiStateStorage.js.map +1 -1
  159. package/lib/cjs/core-react/utils/IconHelper.js.map +1 -1
  160. package/lib/cjs/core-react/utils/IconWebComponent.js.map +1 -1
  161. package/lib/cjs/core-react/utils/Point.js.map +1 -1
  162. package/lib/cjs/core-react/utils/Props.js.map +1 -1
  163. package/lib/cjs/core-react/utils/Rectangle.js.map +1 -1
  164. package/lib/cjs/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  165. package/lib/cjs/core-react/utils/Size.js.map +1 -1
  166. package/lib/cjs/core-react/utils/Timer.js.map +1 -1
  167. package/lib/cjs/core-react/utils/UiGeometry.js.map +1 -1
  168. package/lib/cjs/core-react/utils/flattenChildren.js.map +1 -1
  169. package/lib/cjs/core-react/utils/getBestBWContrastColor.js.map +1 -1
  170. package/lib/cjs/core-react/utils/getCssVariable.js.map +1 -1
  171. package/lib/cjs/core-react/utils/getDisplayName.js.map +1 -1
  172. package/lib/cjs/core-react/utils/getUserColor.js.map +1 -1
  173. package/lib/cjs/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  174. package/lib/cjs/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  175. package/lib/cjs/core-react/utils/hooks/useDisposable.js.map +1 -1
  176. package/lib/cjs/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  177. package/lib/cjs/core-react/utils/hooks/useEventListener.js.map +1 -1
  178. package/lib/cjs/core-react/utils/hooks/useInterval.js.map +1 -1
  179. package/lib/cjs/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  180. package/lib/cjs/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  181. package/lib/cjs/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  182. package/lib/cjs/core-react/utils/hooks/useRefEffect.js.map +1 -1
  183. package/lib/cjs/core-react/utils/hooks/useRefState.js.map +1 -1
  184. package/lib/cjs/core-react/utils/hooks/useRefs.js.map +1 -1
  185. package/lib/cjs/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  186. package/lib/cjs/core-react/utils/hooks/useTargeted.js.map +1 -1
  187. package/lib/cjs/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  188. package/lib/cjs/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  189. package/lib/cjs/core-react/utils/isPromiseLike.js.map +1 -1
  190. package/lib/cjs/core-react/utils/shallowDiffers.js.map +1 -1
  191. package/lib/cjs/core-react/utils/typeUtils.js.map +1 -1
  192. package/lib/cjs/core-react.js.map +1 -1
  193. package/lib/esm/core-react/UiCore.js.map +1 -1
  194. package/lib/esm/core-react/_geometry.scss +70 -70
  195. package/lib/esm/core-react/_helpers.scss +51 -51
  196. package/lib/esm/core-react/_math.scss +13 -13
  197. package/lib/esm/core-react/_scrollbar.scss +51 -51
  198. package/lib/esm/core-react/_typography.scss +44 -44
  199. package/lib/esm/core-react/_z-index.scss +65 -65
  200. package/lib/esm/core-react/autosuggest/AutoSuggest.js.map +1 -1
  201. package/lib/esm/core-react/autosuggest/AutoSuggest.scss +79 -79
  202. package/lib/esm/core-react/badge/Badge.js.map +1 -1
  203. package/lib/esm/core-react/badge/Badge.scss +13 -13
  204. package/lib/esm/core-react/badge/BadgeUtilities.js.map +1 -1
  205. package/lib/esm/core-react/badge/BetaBadge.js.map +1 -1
  206. package/lib/esm/core-react/badge/NewBadge.js.map +1 -1
  207. package/lib/esm/core-react/badge/NewBadge.scss +9 -9
  208. package/lib/esm/core-react/base/Centered.js.map +1 -1
  209. package/lib/esm/core-react/base/Div.js.map +1 -1
  210. package/lib/esm/core-react/base/DivWithOutsideClick.js.map +1 -1
  211. package/lib/esm/core-react/base/FillCentered.js.map +1 -1
  212. package/lib/esm/core-react/base/FlexWrapContainer.js.map +1 -1
  213. package/lib/esm/core-react/base/Gap.js.map +1 -1
  214. package/lib/esm/core-react/base/PointerEvents.js.map +1 -1
  215. package/lib/esm/core-react/base/ScrollView.js.map +1 -1
  216. package/lib/esm/core-react/base/base.scss +42 -42
  217. package/lib/esm/core-react/base/classes.scss +13 -13
  218. package/lib/esm/core-react/base/index.scss +5 -5
  219. package/lib/esm/core-react/button/UnderlinedButton.js.map +1 -1
  220. package/lib/esm/core-react/button/UnderlinedButton.scss +32 -32
  221. package/lib/esm/core-react/checklistbox/CheckListBox.js.map +1 -1
  222. package/lib/esm/core-react/checklistbox/CheckListBox.scss +21 -21
  223. package/lib/esm/core-react/classes.scss +11 -11
  224. package/lib/esm/core-react/colorthemes.scss +61 -61
  225. package/lib/esm/core-react/colorvariables.scss +131 -131
  226. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  227. package/lib/esm/core-react/contextmenu/ContextMenu.scss +236 -236
  228. package/lib/esm/core-react/contextmenu/ContextMenuDirection.js.map +1 -1
  229. package/lib/esm/core-react/contextmenu/ContextMenuDivider.js.map +1 -1
  230. package/lib/esm/core-react/contextmenu/ContextMenuItem.js.map +1 -1
  231. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  232. package/lib/esm/core-react/contextmenu/GlobalContextMenu.js.map +1 -1
  233. package/lib/esm/core-react/contextmenu/PopupContextMenu.js.map +1 -1
  234. package/lib/esm/core-react/contextmenu/TildeFinder.js.map +1 -1
  235. package/lib/esm/core-react/dialog/Dialog.js.map +1 -1
  236. package/lib/esm/core-react/dialog/Dialog.scss +245 -245
  237. package/lib/esm/core-react/dialog/GlobalDialog.js.map +1 -1
  238. package/lib/esm/core-react/elementseparator/ElementSeparator.js.map +1 -1
  239. package/lib/esm/core-react/elementseparator/ElementSeparator.scss +85 -85
  240. package/lib/esm/core-react/enums/Alignment.js.map +1 -1
  241. package/lib/esm/core-react/enums/CheckBoxState.js.map +1 -1
  242. package/lib/esm/core-react/enums/Orientation.js.map +1 -1
  243. package/lib/esm/core-react/enums/SortDirection.js.map +1 -1
  244. package/lib/esm/core-react/enums/TimeFormat.js.map +1 -1
  245. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  246. package/lib/esm/core-react/expandable/ExpandableList.scss +8 -8
  247. package/lib/esm/core-react/expandable/classes.scss +7 -7
  248. package/lib/esm/core-react/expandable/index.scss +5 -5
  249. package/lib/esm/core-react/expandable/list.scss +35 -35
  250. package/lib/esm/core-react/focus/ItemKeyboardNavigator.js.map +1 -1
  251. package/lib/esm/core-react/focustrap/FocusTrap.js.map +1 -1
  252. package/lib/esm/core-react/hocs/withIsPressed.js.map +1 -1
  253. package/lib/esm/core-react/hocs/withOnOutsideClick.js.map +1 -1
  254. package/lib/esm/core-react/hocs/withTimeout.js.map +1 -1
  255. package/lib/esm/core-react/icons/ConditionalIconItem.js.map +1 -1
  256. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  257. package/lib/esm/core-react/icons/IconComponent.scss +20 -20
  258. package/lib/esm/core-react/icons/SvgPath.js.map +1 -1
  259. package/lib/esm/core-react/icons/SvgPath.scss +15 -15
  260. package/lib/esm/core-react/icons/WebFontIcon.js.map +1 -1
  261. package/lib/esm/core-react/icons/WebFontIcon.scss +17 -17
  262. package/lib/esm/core-react/icons/classes.scss +10 -10
  263. package/lib/esm/core-react/icons/index.scss +6 -6
  264. package/lib/esm/core-react/icons/mixins.scss +25 -25
  265. package/lib/esm/core-react/icons/variables.scss +12 -12
  266. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.js.map +1 -1
  267. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.scss +54 -54
  268. package/lib/esm/core-react/index.scss +21 -21
  269. package/lib/esm/core-react/inputs/Input.js.map +1 -1
  270. package/lib/esm/core-react/inputs/InputLabel.js.map +1 -1
  271. package/lib/esm/core-react/inputs/InputStatus.js.map +1 -1
  272. package/lib/esm/core-react/inputs/LabeledComponentProps.js.map +1 -1
  273. package/lib/esm/core-react/inputs/classes.scss +8 -8
  274. package/lib/esm/core-react/inputs/iconinput/IconInput.js.map +1 -1
  275. package/lib/esm/core-react/inputs/iconinput/IconInput.scss +35 -35
  276. package/lib/esm/core-react/inputs/index.scss +9 -9
  277. package/lib/esm/core-react/inputs/input-label.scss +90 -90
  278. package/lib/esm/core-react/inputs/input.scss +58 -58
  279. package/lib/esm/core-react/inputs/numberinput/NumberInput.js.map +1 -1
  280. package/lib/esm/core-react/inputs/numberinput/NumberInput.scss +88 -88
  281. package/lib/esm/core-react/inputs/variables.scss +38 -38
  282. package/lib/esm/core-react/layout-variables.scss +17 -17
  283. package/lib/esm/core-react/listbox/Listbox.js.map +1 -1
  284. package/lib/esm/core-react/listbox/Listbox.scss +54 -54
  285. package/lib/esm/core-react/loading/LoadingBar.js.map +1 -1
  286. package/lib/esm/core-react/loading/LoadingBar.scss +29 -29
  287. package/lib/esm/core-react/loading/LoadingPrompt.js.map +1 -1
  288. package/lib/esm/core-react/loading/LoadingPrompt.scss +33 -33
  289. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  290. package/lib/esm/core-react/loading/LoadingSpinner.scss +26 -26
  291. package/lib/esm/core-react/loading/LoadingStatus.js.map +1 -1
  292. package/lib/esm/core-react/loading/LoadingStatus.scss +20 -20
  293. package/lib/esm/core-react/loading/index.scss +5 -5
  294. package/lib/esm/core-react/loading/mixins.scss +57 -57
  295. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  296. package/lib/esm/core-react/messagebox/MessageBox.scss +56 -56
  297. package/lib/esm/core-react/notification/MessageRenderer.js.map +1 -1
  298. package/lib/esm/core-react/notification/MessageType.js.map +1 -1
  299. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  300. package/lib/esm/core-react/popup/Popup.scss +240 -240
  301. package/lib/esm/core-react/radialmenu/Annulus.js.map +1 -1
  302. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  303. package/lib/esm/core-react/radialmenu/RadialMenu.scss +55 -55
  304. package/lib/esm/core-react/searchbox/SearchBox.js.map +1 -1
  305. package/lib/esm/core-react/searchbox/SearchBox.scss +47 -47
  306. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  307. package/lib/esm/core-react/settings/SettingsContainer.scss +68 -68
  308. package/lib/esm/core-react/settings/SettingsManager.js.map +1 -1
  309. package/lib/esm/core-react/style/baseline.scss +11 -11
  310. package/lib/esm/core-react/style/breakpoints.scss +41 -41
  311. package/lib/esm/core-react/style/colors.scss +77 -77
  312. package/lib/esm/core-react/style/index.scss +10 -10
  313. package/lib/esm/core-react/style/mixins.scss +27 -27
  314. package/lib/esm/core-react/style/opacity.scss +16 -16
  315. package/lib/esm/core-react/style/themecolors.scss +123 -123
  316. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  317. package/lib/esm/core-react/tabs/VerticalTabs.js.map +1 -1
  318. package/lib/esm/core-react/tabs/classes.scss +7 -7
  319. package/lib/esm/core-react/tabs/index.scss +5 -5
  320. package/lib/esm/core-react/tabs/tabs.scss +96 -96
  321. package/lib/esm/core-react/tabs/vertical.scss +51 -51
  322. package/lib/esm/core-react/text/BlockText.js.map +1 -1
  323. package/lib/esm/core-react/text/BodyText.js.map +1 -1
  324. package/lib/esm/core-react/text/DisabledText.js.map +1 -1
  325. package/lib/esm/core-react/text/FilteredText.js.map +1 -1
  326. package/lib/esm/core-react/text/FilteredText.scss +10 -10
  327. package/lib/esm/core-react/text/MutedText.js.map +1 -1
  328. package/lib/esm/core-react/text/StyledText.js.map +1 -1
  329. package/lib/esm/core-react/text/TextProps.js.map +1 -1
  330. package/lib/esm/core-react/text/block.scss +15 -15
  331. package/lib/esm/core-react/text/body.scss +13 -13
  332. package/lib/esm/core-react/text/classes.scss +10 -10
  333. package/lib/esm/core-react/text/disabled.scss +10 -10
  334. package/lib/esm/core-react/text/index.scss +10 -10
  335. package/lib/esm/core-react/text/mixins.scss +24 -24
  336. package/lib/esm/core-react/text/muted.scss +10 -10
  337. package/lib/esm/core-react/tree/Branch.js.map +1 -1
  338. package/lib/esm/core-react/tree/Branch.scss +12 -12
  339. package/lib/esm/core-react/tree/ExpansionToggle.js.map +1 -1
  340. package/lib/esm/core-react/tree/ExpansionToggle.scss +32 -32
  341. package/lib/esm/core-react/tree/Node.js.map +1 -1
  342. package/lib/esm/core-react/tree/Node.scss +68 -68
  343. package/lib/esm/core-react/tree/Placeholder.js.map +1 -1
  344. package/lib/esm/core-react/tree/Placeholder.scss +17 -17
  345. package/lib/esm/core-react/tree/Tree.js.map +1 -1
  346. package/lib/esm/core-react/tree/Tree.scss +21 -21
  347. package/lib/esm/core-react/uistate/LocalStateStorage.js.map +1 -1
  348. package/lib/esm/core-react/uistate/UiStateEntry.js.map +1 -1
  349. package/lib/esm/core-react/uistate/UiStateStorage.js.map +1 -1
  350. package/lib/esm/core-react/utils/IconHelper.js.map +1 -1
  351. package/lib/esm/core-react/utils/IconWebComponent.js.map +1 -1
  352. package/lib/esm/core-react/utils/Point.js.map +1 -1
  353. package/lib/esm/core-react/utils/Props.js.map +1 -1
  354. package/lib/esm/core-react/utils/Rectangle.js.map +1 -1
  355. package/lib/esm/core-react/utils/ScrollPositionMaintainer.js.map +1 -1
  356. package/lib/esm/core-react/utils/Size.js.map +1 -1
  357. package/lib/esm/core-react/utils/Timer.js.map +1 -1
  358. package/lib/esm/core-react/utils/UiGeometry.js.map +1 -1
  359. package/lib/esm/core-react/utils/flattenChildren.js.map +1 -1
  360. package/lib/esm/core-react/utils/getBestBWContrastColor.js.map +1 -1
  361. package/lib/esm/core-react/utils/getCssVariable.js.map +1 -1
  362. package/lib/esm/core-react/utils/getDisplayName.js.map +1 -1
  363. package/lib/esm/core-react/utils/getUserColor.js.map +1 -1
  364. package/lib/esm/core-react/utils/hooks/ResizeObserverPolyfill.js.map +1 -1
  365. package/lib/esm/core-react/utils/hooks/useCrossOriginPopup.js.map +1 -1
  366. package/lib/esm/core-react/utils/hooks/useDisposable.js.map +1 -1
  367. package/lib/esm/core-react/utils/hooks/useEffectSkipFirst.js.map +1 -1
  368. package/lib/esm/core-react/utils/hooks/useEventListener.js.map +1 -1
  369. package/lib/esm/core-react/utils/hooks/useInterval.js.map +1 -1
  370. package/lib/esm/core-react/utils/hooks/useLifecycleLogging.js.map +1 -1
  371. package/lib/esm/core-react/utils/hooks/useOnOutsideClick.js.map +1 -1
  372. package/lib/esm/core-react/utils/hooks/useProximityToMouse.js.map +1 -1
  373. package/lib/esm/core-react/utils/hooks/useRefEffect.js.map +1 -1
  374. package/lib/esm/core-react/utils/hooks/useRefState.js.map +1 -1
  375. package/lib/esm/core-react/utils/hooks/useRefs.js.map +1 -1
  376. package/lib/esm/core-react/utils/hooks/useResizeObserver.js.map +1 -1
  377. package/lib/esm/core-react/utils/hooks/useTargeted.js.map +1 -1
  378. package/lib/esm/core-react/utils/hooks/useThrottledFn.js.map +1 -1
  379. package/lib/esm/core-react/utils/hooks/useWidgetOpacityContext.js.map +1 -1
  380. package/lib/esm/core-react/utils/isPromiseLike.js.map +1 -1
  381. package/lib/esm/core-react/utils/shallowDiffers.js.map +1 -1
  382. package/lib/esm/core-react/utils/typeUtils.js.map +1 -1
  383. package/lib/esm/core-react.js.map +1 -1
  384. package/lib/public/locales/en/UiCore.json +30 -30
  385. package/package.json +1 -1
@@ -1,245 +1,245 @@
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 "../inputs/variables";
7
- @import "../style/themecolors";
8
- @import "../text/block";
9
- @import "../z-index";
10
- @import "../scrollbar";
11
-
12
- // cspell:ignore titlebar outoffocus nwse
13
-
14
- .core-dialog {
15
- font-family: var(--iui-font-sans);
16
-
17
- display: none;
18
- position: fixed;
19
-
20
- @include uicore-z-index(dialog);
21
-
22
- left: 0px;
23
- top: 0px;
24
- width: 100%;
25
- height: 100%;
26
- overflow: auto;
27
- background: rgba(0, 0, 0, 0.4);
28
-
29
- &.core-dialog-opened {
30
- display: block;
31
- }
32
-
33
- &.core-dialog-hidden {
34
- background-color: transparent;
35
- pointer-events: none;
36
-
37
- & > * {
38
- pointer-events: all;
39
- }
40
- }
41
-
42
- .core-dialog-container {
43
- position: fixed;
44
-
45
- &.core-dialog-top-left {
46
- top: 0;
47
- left: 0;
48
- }
49
-
50
- &.core-dialog-top {
51
- top: 0;
52
- left: 0;
53
- right: 0;
54
- }
55
-
56
- &.core-dialog-top-right {
57
- top: 0;
58
- right: 0;
59
- }
60
-
61
- &.core-dialog-left {
62
- left: 0;
63
- top: 50%;
64
- transform: translateY(-50%);
65
- }
66
-
67
- &.core-dialog-center {
68
- top: 50%;
69
- left: 50%;
70
- transform: translate(-50%, -50%);
71
- }
72
-
73
- &.core-dialog-right {
74
- right: 0;
75
- top: 50%;
76
- transform: translateY(-50%);
77
- }
78
-
79
- &.core-dialog-bottom-left {
80
- bottom: 0;
81
- left: 0;
82
- }
83
-
84
- &.core-dialog-bottom {
85
- bottom: 0;
86
- left: 0;
87
- right: 0;
88
- }
89
-
90
- &.core-dialog-bottom-right {
91
- bottom: 0;
92
- right: 0;
93
- }
94
-
95
- margin: auto;
96
- width: 60%;
97
- display: flex;
98
- flex-direction: column;
99
- height: fit-content;
100
-
101
- .core-dialog-area {
102
- position: relative;
103
- display: flex;
104
- flex-grow: 1;
105
- flex-direction: column;
106
- border: 1px solid var(--iui-color-border);
107
- border-radius: var(--iui-border-radius-1);
108
- background-color: var(--iui-color-background);
109
- color: var(--iui-color-text);
110
- padding: 0;
111
-
112
- > .core-dialog-head {
113
- flex-shrink: 0;
114
- align-items: center;
115
- background-color: var(--iui-color-background-backdrop);
116
- color: var(--iui-color-text);
117
- display: flex;
118
- padding: 4px;
119
-
120
- /* padding: $uicore-unbordered-padding; */
121
- &.core-dialog-movable {
122
- cursor: move;
123
- }
124
-
125
- > .core-dialog-title {
126
- flex: 1 1;
127
-
128
- padding: 0;
129
- border: none;
130
- vertical-align: baseline;
131
- font-size: var(--iui-font-size-2);
132
- font-weight: var(--iui-font-weight-normal);
133
- line-height: var(--iui-size-l);
134
-
135
- margin: 0;
136
- margin-left: 4px;
137
- }
138
-
139
- &.core-dialog-modal {
140
- background-color: var(--iui-color-background);
141
-
142
- > .core-dialog-title {
143
- margin: 0;
144
- padding: 0;
145
- border: none;
146
- vertical-align: baseline;
147
- font-size: var(--iui-font-size-3);
148
- font-weight: var(--iui-font-weight-normal);
149
- line-height: calc(1.5 * var(--iui-size-l));
150
- }
151
- }
152
-
153
- > .core-dialog-close {
154
- cursor: pointer;
155
- height: var(--iui-font-size-4);
156
- width: var(--iui-font-size-4);
157
- line-height: var(--iui-font-size-4);
158
- flex: 0 0 $uicore-icons-medium;
159
- text-align: center;
160
- color: var(--iui-color-icon);
161
- border: none;
162
- background-color: transparent;
163
-
164
- &:hover,
165
- &:focus {
166
- color: var(--iui-color-icon-hover);
167
- }
168
- &:focus {
169
- outline: 1px solid var(--iui-color-border-accent);
170
- }
171
- }
172
- }
173
-
174
- > .core-dialog-content {
175
- overflow: auto;
176
- flex: 1 1;
177
-
178
- @include uicore-text-block;
179
-
180
- padding: $uicore-unbordered-padding;
181
- margin: 0;
182
-
183
- @include uicore-touch-scrolling;
184
- @include uicore-scrollbar();
185
-
186
- &.core-dialog-content-no-inset {
187
- padding: 0;
188
- }
189
- }
190
-
191
- > .core-dialog-footer {
192
- flex-shrink: 0;
193
- padding: 0 $uicore-unbordered-padding $uicore-unbordered-padding
194
- $uicore-unbordered-padding;
195
-
196
- > .core-dialog-buttons {
197
- display: flex;
198
- justify-content: flex-end;
199
-
200
- > * {
201
- min-width: 80px;
202
-
203
- &:not(:first-child) {
204
- margin-left: $uicore-inputs-margin;
205
- }
206
- }
207
- }
208
- }
209
- }
210
-
211
- $dialog-resize-bar-width: 8px;
212
-
213
- .core-dialog-drag {
214
- position: absolute;
215
- z-index: auto;
216
- padding: 0px;
217
-
218
- &:not(.core-dialog-drag-enabled) {
219
- display: none;
220
- }
221
-
222
- &.core-dialog-drag-right {
223
- right: -$dialog-resize-bar-width * 0.5;
224
- width: $dialog-resize-bar-width;
225
- height: 100%;
226
- cursor: ew-resize;
227
- }
228
-
229
- &.core-dialog-drag-bottom-mid {
230
- bottom: -$dialog-resize-bar-width * 0.5;
231
- height: $dialog-resize-bar-width;
232
- width: 100%;
233
- cursor: ns-resize;
234
- }
235
-
236
- &.core-dialog-drag-bottom-right {
237
- right: -$dialog-resize-bar-width * 0.5;
238
- bottom: -$dialog-resize-bar-width * 0.5;
239
- height: $dialog-resize-bar-width;
240
- width: $dialog-resize-bar-width;
241
- cursor: nwse-resize;
242
- }
243
- }
244
- }
245
- }
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 "../inputs/variables";
7
+ @import "../style/themecolors";
8
+ @import "../text/block";
9
+ @import "../z-index";
10
+ @import "../scrollbar";
11
+
12
+ // cspell:ignore titlebar outoffocus nwse
13
+
14
+ .core-dialog {
15
+ font-family: var(--iui-font-sans);
16
+
17
+ display: none;
18
+ position: fixed;
19
+
20
+ @include uicore-z-index(dialog);
21
+
22
+ left: 0px;
23
+ top: 0px;
24
+ width: 100%;
25
+ height: 100%;
26
+ overflow: auto;
27
+ background: rgba(0, 0, 0, 0.4);
28
+
29
+ &.core-dialog-opened {
30
+ display: block;
31
+ }
32
+
33
+ &.core-dialog-hidden {
34
+ background-color: transparent;
35
+ pointer-events: none;
36
+
37
+ & > * {
38
+ pointer-events: all;
39
+ }
40
+ }
41
+
42
+ .core-dialog-container {
43
+ position: fixed;
44
+
45
+ &.core-dialog-top-left {
46
+ top: 0;
47
+ left: 0;
48
+ }
49
+
50
+ &.core-dialog-top {
51
+ top: 0;
52
+ left: 0;
53
+ right: 0;
54
+ }
55
+
56
+ &.core-dialog-top-right {
57
+ top: 0;
58
+ right: 0;
59
+ }
60
+
61
+ &.core-dialog-left {
62
+ left: 0;
63
+ top: 50%;
64
+ transform: translateY(-50%);
65
+ }
66
+
67
+ &.core-dialog-center {
68
+ top: 50%;
69
+ left: 50%;
70
+ transform: translate(-50%, -50%);
71
+ }
72
+
73
+ &.core-dialog-right {
74
+ right: 0;
75
+ top: 50%;
76
+ transform: translateY(-50%);
77
+ }
78
+
79
+ &.core-dialog-bottom-left {
80
+ bottom: 0;
81
+ left: 0;
82
+ }
83
+
84
+ &.core-dialog-bottom {
85
+ bottom: 0;
86
+ left: 0;
87
+ right: 0;
88
+ }
89
+
90
+ &.core-dialog-bottom-right {
91
+ bottom: 0;
92
+ right: 0;
93
+ }
94
+
95
+ margin: auto;
96
+ width: 60%;
97
+ display: flex;
98
+ flex-direction: column;
99
+ height: fit-content;
100
+
101
+ .core-dialog-area {
102
+ position: relative;
103
+ display: flex;
104
+ flex-grow: 1;
105
+ flex-direction: column;
106
+ border: 1px solid var(--iui-color-border);
107
+ border-radius: var(--iui-border-radius-1);
108
+ background-color: var(--iui-color-background);
109
+ color: var(--iui-color-text);
110
+ padding: 0;
111
+
112
+ > .core-dialog-head {
113
+ flex-shrink: 0;
114
+ align-items: center;
115
+ background-color: var(--iui-color-background-backdrop);
116
+ color: var(--iui-color-text);
117
+ display: flex;
118
+ padding: 4px;
119
+
120
+ /* padding: $uicore-unbordered-padding; */
121
+ &.core-dialog-movable {
122
+ cursor: move;
123
+ }
124
+
125
+ > .core-dialog-title {
126
+ flex: 1 1;
127
+
128
+ padding: 0;
129
+ border: none;
130
+ vertical-align: baseline;
131
+ font-size: var(--iui-font-size-2);
132
+ font-weight: var(--iui-font-weight-normal);
133
+ line-height: var(--iui-size-l);
134
+
135
+ margin: 0;
136
+ margin-left: 4px;
137
+ }
138
+
139
+ &.core-dialog-modal {
140
+ background-color: var(--iui-color-background);
141
+
142
+ > .core-dialog-title {
143
+ margin: 0;
144
+ padding: 0;
145
+ border: none;
146
+ vertical-align: baseline;
147
+ font-size: var(--iui-font-size-3);
148
+ font-weight: var(--iui-font-weight-normal);
149
+ line-height: calc(1.5 * var(--iui-size-l));
150
+ }
151
+ }
152
+
153
+ > .core-dialog-close {
154
+ cursor: pointer;
155
+ height: var(--iui-font-size-4);
156
+ width: var(--iui-font-size-4);
157
+ line-height: var(--iui-font-size-4);
158
+ flex: 0 0 $uicore-icons-medium;
159
+ text-align: center;
160
+ color: var(--iui-color-icon);
161
+ border: none;
162
+ background-color: transparent;
163
+
164
+ &:hover,
165
+ &:focus {
166
+ color: var(--iui-color-icon-hover);
167
+ }
168
+ &:focus {
169
+ outline: 1px solid var(--iui-color-border-accent);
170
+ }
171
+ }
172
+ }
173
+
174
+ > .core-dialog-content {
175
+ overflow: auto;
176
+ flex: 1 1;
177
+
178
+ @include uicore-text-block;
179
+
180
+ padding: $uicore-unbordered-padding;
181
+ margin: 0;
182
+
183
+ @include uicore-touch-scrolling;
184
+ @include uicore-scrollbar();
185
+
186
+ &.core-dialog-content-no-inset {
187
+ padding: 0;
188
+ }
189
+ }
190
+
191
+ > .core-dialog-footer {
192
+ flex-shrink: 0;
193
+ padding: 0 $uicore-unbordered-padding $uicore-unbordered-padding
194
+ $uicore-unbordered-padding;
195
+
196
+ > .core-dialog-buttons {
197
+ display: flex;
198
+ justify-content: flex-end;
199
+
200
+ > * {
201
+ min-width: 80px;
202
+
203
+ &:not(:first-child) {
204
+ margin-left: $uicore-inputs-margin;
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+
211
+ $dialog-resize-bar-width: 8px;
212
+
213
+ .core-dialog-drag {
214
+ position: absolute;
215
+ z-index: auto;
216
+ padding: 0px;
217
+
218
+ &:not(.core-dialog-drag-enabled) {
219
+ display: none;
220
+ }
221
+
222
+ &.core-dialog-drag-right {
223
+ right: -$dialog-resize-bar-width * 0.5;
224
+ width: $dialog-resize-bar-width;
225
+ height: 100%;
226
+ cursor: ew-resize;
227
+ }
228
+
229
+ &.core-dialog-drag-bottom-mid {
230
+ bottom: -$dialog-resize-bar-width * 0.5;
231
+ height: $dialog-resize-bar-width;
232
+ width: 100%;
233
+ cursor: ns-resize;
234
+ }
235
+
236
+ &.core-dialog-drag-bottom-right {
237
+ right: -$dialog-resize-bar-width * 0.5;
238
+ bottom: -$dialog-resize-bar-width * 0.5;
239
+ height: $dialog-resize-bar-width;
240
+ width: $dialog-resize-bar-width;
241
+ cursor: nwse-resize;
242
+ }
243
+ }
244
+ }
245
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalDialog.js","sourceRoot":"","sources":["../../../../src/core-react/dialog/GlobalDialog.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,sCAAsC;AACtC,qCAA+C;AAgB/C;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,SAA+C;IAOrF,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QALU,UAAK,GAAsB;YAClD,cAAc,EAAE,IAAI;SACrB,CAAC;QAMM,kBAAa,GAAG,CAAC,QAA4B,EAAE,EAAE;YACvD,MAAM,cAAc,GAAG,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC;YACvD,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7G,IAAI,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,kBAAkB,CAAmB,CAAC;gBAC7E,IAAI,CAAC,EAAE,EAAE;oBACP,EAAE,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACzC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;iBACrC;gBACD,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEhC,wDAAwD;gBACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;aACnC;QACH,CAAC,CAAC;IAlBF,CAAC;IAoBe,oBAAoB;QAClC,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,UAAU;YAChE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;IACH,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QACrG,OAAO,CACL,6BAAK,GAAG,EAAE,IAAI,CAAC,aAAa,IACzB,IAAI,CAAC,KAAK,CAAC,cAAc;YACxB,QAAQ,CAAC,YAAY,CAAC,oBAAC,eAAM,OAAK,KAAK,GAAI,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAC1E,CACP,CAAC;IACJ,CAAC;CACF;AA7CD,oCA6CC","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 Dialog\n */\n\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Dialog, DialogProps } from \"./Dialog\";\n\n/** Properties for the [[GlobalDialog]] component\n * @public\n */\nexport interface GlobalDialogProps extends DialogProps {\n identifier?: string;\n}\n\n/** State properties for the [[GlobalDialog]] component\n * @public\n */\nexport interface GlobalDialogState {\n parentDocument: Document | null;\n}\n\n/** GlobalDialog React component used to display a [[Dialog]] on the top of screen\n * @public\n */\nexport class GlobalDialog extends React.Component<GlobalDialogProps, GlobalDialogState> {\n private _container?: HTMLDivElement;\n\n public override readonly state: GlobalDialogState = {\n parentDocument: null,\n };\n\n constructor(props: GlobalDialogProps) {\n super(props);\n }\n\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\n const parentDocument = popupDiv?.ownerDocument ?? null;\n if (parentDocument) {\n this._container = parentDocument.createElement(\"div\");\n this._container.id = this.props.identifier !== undefined ? `dialog-${this.props.identifier}` : \"core-dialog\";\n let rt = parentDocument.getElementById(\"core-dialog-root\") as HTMLDivElement;\n if (!rt) {\n rt = parentDocument.createElement(\"div\");\n rt.id = \"core-dialog-root\";\n parentDocument.body.appendChild(rt);\n }\n rt.appendChild(this._container);\n\n // used to support component rendering in pop-out window\n this.setState({ parentDocument });\n }\n };\n\n public override componentWillUnmount() {\n // istanbul ignore else\n if (this._container && this._container.parentElement) { // cleanup\n this._container.parentElement.removeChild(this._container);\n }\n }\n\n public override render(): React.ReactNode {\n const { identifier, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n return (\n <div ref={this._handleRefSet}>\n {this.state.parentDocument &&\n ReactDOM.createPortal(<Dialog {...props} />, this.state.parentDocument.body)}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"GlobalDialog.js","sourceRoot":"","sources":["../../../../src/core-react/dialog/GlobalDialog.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAC/B,sCAAsC;AACtC,qCAA+C;AAgB/C;;GAEG;AACH,MAAa,YAAa,SAAQ,KAAK,CAAC,SAA+C;IAOrF,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QALU,UAAK,GAAsB;YAClD,cAAc,EAAE,IAAI;SACrB,CAAC;QAMM,kBAAa,GAAG,CAAC,QAA4B,EAAE,EAAE;YACvD,MAAM,cAAc,GAAG,QAAQ,EAAE,aAAa,IAAI,IAAI,CAAC;YACvD,IAAI,cAAc,EAAE;gBAClB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACtD,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7G,IAAI,EAAE,GAAG,cAAc,CAAC,cAAc,CAAC,kBAAkB,CAAmB,CAAC;gBAC7E,IAAI,CAAC,EAAE,EAAE;oBACP,EAAE,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBACzC,EAAE,CAAC,EAAE,GAAG,kBAAkB,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;iBACrC;gBACD,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAEhC,wDAAwD;gBACxD,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC;aACnC;QACH,CAAC,CAAC;IAlBF,CAAC;IAoBe,oBAAoB;QAClC,uBAAuB;QACvB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,UAAU;YAChE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5D;IACH,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QACrG,OAAO,CACL,6BAAK,GAAG,EAAE,IAAI,CAAC,aAAa,IACzB,IAAI,CAAC,KAAK,CAAC,cAAc;YACxB,QAAQ,CAAC,YAAY,CAAC,oBAAC,eAAM,OAAK,KAAK,GAAI,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAC1E,CACP,CAAC;IACJ,CAAC;CACF;AA7CD,oCA6CC","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 Dialog\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Dialog, DialogProps } from \"./Dialog\";\r\n\r\n/** Properties for the [[GlobalDialog]] component\r\n * @public\r\n */\r\nexport interface GlobalDialogProps extends DialogProps {\r\n identifier?: string;\r\n}\r\n\r\n/** State properties for the [[GlobalDialog]] component\r\n * @public\r\n */\r\nexport interface GlobalDialogState {\r\n parentDocument: Document | null;\r\n}\r\n\r\n/** GlobalDialog React component used to display a [[Dialog]] on the top of screen\r\n * @public\r\n */\r\nexport class GlobalDialog extends React.Component<GlobalDialogProps, GlobalDialogState> {\r\n private _container?: HTMLDivElement;\r\n\r\n public override readonly state: GlobalDialogState = {\r\n parentDocument: null,\r\n };\r\n\r\n constructor(props: GlobalDialogProps) {\r\n super(props);\r\n }\r\n\r\n private _handleRefSet = (popupDiv: HTMLElement | null) => {\r\n const parentDocument = popupDiv?.ownerDocument ?? null;\r\n if (parentDocument) {\r\n this._container = parentDocument.createElement(\"div\");\r\n this._container.id = this.props.identifier !== undefined ? `dialog-${this.props.identifier}` : \"core-dialog\";\r\n let rt = parentDocument.getElementById(\"core-dialog-root\") as HTMLDivElement;\r\n if (!rt) {\r\n rt = parentDocument.createElement(\"div\");\r\n rt.id = \"core-dialog-root\";\r\n parentDocument.body.appendChild(rt);\r\n }\r\n rt.appendChild(this._container);\r\n\r\n // used to support component rendering in pop-out window\r\n this.setState({ parentDocument });\r\n }\r\n };\r\n\r\n public override componentWillUnmount() {\r\n // istanbul ignore else\r\n if (this._container && this._container.parentElement) { // cleanup\r\n this._container.parentElement.removeChild(this._container);\r\n }\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n const { identifier, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n return (\r\n <div ref={this._handleRefSet}>\r\n {this.state.parentDocument &&\r\n ReactDOM.createPortal(<Dialog {...props} />, this.state.parentDocument.body)}\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ElementSeparator.js","sourceRoot":"","sources":["../../../../src/core-react/elementseparator/ElementSeparator.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 ElementSeparator\n */\n\nimport \"./ElementSeparator.scss\";\nimport * as React from \"react\";\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\"; // eslint-disable-line no-duplicate-imports\nimport classnames from \"classnames\";\nimport { Orientation } from \"../enums/Orientation\";\nimport { CommonProps } from \"../utils/Props\";\nimport { useThrottledFn } from \"../utils/hooks/useThrottledFn\";\nimport { UiCore } from \"../UiCore\";\n\n/**\n * Results returned by onRatioChanged callback for determining new ratio and whether the ratio was updated.\n * @public\n */\nexport interface RatioChangeResult {\n ratio: number;\n}\n\n/** Properties of [[ElementSeparator]] React component\n * @public\n */\nexport interface ElementSeparatorProps extends CommonProps {\n /** Separator orientation */\n orientation: Orientation;\n /** Ratio between left cell and right cell */\n ratio: number;\n /** Area width or height (depending on orientation) in pixels */\n movableArea?: number;\n /** Separator width or height in pixels. 30 by default */\n separatorSize?: number;\n /** Callback to ratio changed event */\n onRatioChanged?: (ratio: number) => void | RatioChangeResult;\n /** Is resize handle hovered */\n isResizeHandleHovered?: boolean;\n /** Callback to hover event change */\n onResizeHandleHoverChanged?: (isHovered: boolean) => void;\n /** Is resize handle being dragged */\n isResizeHandleBeingDragged?: boolean;\n /** Callback to drag event change */\n onResizeHandleDragChanged?: (isDragStarted: boolean) => void;\n}\n\nfunction getCurrentGlobalPosition(orientation: Orientation, e: PointerEvent | React.PointerEvent) {\n return orientation === Orientation.Horizontal ? e.clientX : e.clientY;\n}\n\nconst useConditionalCleanup = (condition: boolean, cleanup: () => void) => {\n const conditionRef = useRef(condition);\n const cleanupRef = useRef(cleanup);\n\n conditionRef.current = condition;\n cleanupRef.current = cleanup;\n\n useEffect(() => {\n return () => {\n if (conditionRef.current)\n cleanupRef.current();\n };\n }, []);\n};\n\nconst useElementSeparatorPointerHandler = ({\n onResizeHandleDragChanged,\n onResizeHandleHoverChanged,\n isResizeHandleBeingDragged,\n isResizeHandleHovered,\n movableArea,\n ratio,\n orientation,\n onRatioChanged,\n}: ElementSeparatorProps) => {\n const globalPosition = useRef(0);\n const pointerOutOfBounds = useRef(false);\n\n const [isElementDragged, setIsDragged] = useState(false);\n const [isElementHovered, setIsHovered] = useState(false);\n const isGroupDragged = isResizeHandleBeingDragged ?? isElementDragged;\n const isGroupHovered = isResizeHandleHovered ?? isElementHovered;\n\n useConditionalCleanup(isElementDragged && !!onResizeHandleDragChanged, () => onResizeHandleDragChanged!(false));\n useConditionalCleanup(isElementHovered && !!onResizeHandleHoverChanged, () => onResizeHandleHoverChanged!(false));\n\n if (isGroupHovered && pointerOutOfBounds.current)\n pointerOutOfBounds.current = false;\n\n const stopDrag = useCallback(() => {\n // istanbul ignore else\n if (isGroupDragged) {\n setIsDragged(false);\n if (onResizeHandleDragChanged)\n onResizeHandleDragChanged(false);\n }\n }, [isGroupDragged, onResizeHandleDragChanged]);\n\n const startDrag = useCallback((e: PointerEvent | React.PointerEvent) => {\n globalPosition.current = getCurrentGlobalPosition(orientation, e);\n\n // istanbul ignore else\n if (!isGroupDragged) {\n setIsDragged(true);\n if (onResizeHandleDragChanged)\n onResizeHandleDragChanged(true);\n }\n }, [isGroupDragged, orientation, onResizeHandleDragChanged]);\n\n const onPointerUp = useCallback(() => {\n stopDrag();\n }, [stopDrag]);\n\n const onThrottledPointerMove = useThrottledFn((e: PointerEvent | React.PointerEvent) => {\n if (!movableArea) {\n stopDrag();\n return;\n }\n\n const currentPosition = getCurrentGlobalPosition(orientation, e);\n const positionChange = currentPosition - globalPosition.current;\n\n // Should not need to recalculate if position on our movement axis does not change\n if (Math.abs(positionChange) < 1)\n return;\n\n const currentLocalPosition = movableArea * ratio + positionChange;\n const newRatio = currentLocalPosition / movableArea;\n\n globalPosition.current = currentPosition;\n if (pointerOutOfBounds.current || !onRatioChanged)\n return;\n\n const result = onRatioChanged(newRatio);\n if (result && result.ratio === ratio && !isGroupHovered && !pointerOutOfBounds.current)\n pointerOutOfBounds.current = true;\n }, 16, [stopDrag, isGroupHovered, ratio, movableArea, onRatioChanged, orientation]);\n\n useEffect(() => {\n return () => onThrottledPointerMove.cancel();\n }, [onThrottledPointerMove]);\n\n useLayoutEffect(() => {\n if (isElementDragged) {\n document.addEventListener(\"pointerup\", onPointerUp);\n document.addEventListener(\"pointermove\", onThrottledPointerMove);\n }\n\n return () => {\n document.removeEventListener(\"pointerup\", onPointerUp);\n document.removeEventListener(\"pointermove\", onThrottledPointerMove);\n };\n }, [isElementDragged, onPointerUp, onThrottledPointerMove]);\n\n const onPointerDown = useCallback((e: PointerEvent | React.PointerEvent) => {\n if (!isGroupDragged) {\n startDrag(e);\n } else {\n stopDrag();\n }\n }, [isGroupDragged, startDrag, stopDrag]);\n\n const onPointerOver = useCallback(() => {\n // istanbul ignore next\n if (isGroupHovered)\n return;\n\n setIsHovered(true);\n if (onResizeHandleHoverChanged)\n onResizeHandleHoverChanged(true);\n\n }, [isGroupHovered, onResizeHandleHoverChanged]);\n\n const onPointerOut = useCallback(() => {\n // istanbul ignore next\n if (!isGroupHovered)\n return;\n\n setIsHovered(false);\n if (onResizeHandleHoverChanged)\n onResizeHandleHoverChanged(false);\n\n }, [isGroupHovered, onResizeHandleHoverChanged]);\n\n return {\n isHovered: isGroupHovered,\n isDragged: isGroupDragged,\n onPointerDown,\n onPointerOver,\n onPointerOut,\n };\n};\n\nfunction getStyle(orientation: Orientation, separatorSize?: number): React.CSSProperties {\n separatorSize = separatorSize || 30;\n\n if (orientation === Orientation.Horizontal)\n return {\n width: separatorSize,\n margin: `0px ${-Math.floor(separatorSize / 2)}px`,\n };\n return {\n height: separatorSize,\n margin: `${-Math.floor(separatorSize / 2)}px 1px`,\n };\n}\n\n/** A movable button, which allows to change the ratio between left element and right element\n * @public\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const ElementSeparator = (props: ElementSeparatorProps) => {\n const label = useRef(UiCore.translate(\"elementSeparator.label\"));\n const [hasHoverHappened, setHasHoverHappened] = useState(false);\n const { isDragged, isHovered, onPointerDown, onPointerOver, onPointerOut } = useElementSeparatorPointerHandler(props);\n\n const isHoverNeeded = isHovered || isDragged;\n if (!hasHoverHappened && isHoverNeeded)\n setHasHoverHappened(isHoverNeeded);\n\n // This is done to avoid fade-out animation when first rendering.\n const unhoverClass = hasHoverHappened ? \"core-element-separator-group-unhovered\" : \"\";\n\n const classNames = classnames(\n \"core-element-separator\",\n (props.orientation === Orientation.Horizontal) ? \"core-element-separator--horizontal\" : \"core-element-separator--vertical\",\n props.className,\n isHoverNeeded ? \"core-element-separator-group-hovered\" : unhoverClass,\n );\n\n const orientation = props.orientation;\n const separatorSize = props.separatorSize;\n const style = useMemo(() => getStyle(orientation, separatorSize), [orientation, separatorSize]);\n const styles: React.CSSProperties = {\n ...style,\n ...props.style,\n };\n\n return (\n <button\n style={styles}\n className={classNames}\n onPointerDown={onPointerDown}\n onPointerOver={onPointerOver}\n onPointerOut={onPointerOut}\n aria-label={label.current}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"ElementSeparator.js","sourceRoot":"","sources":["../../../../src/core-react/elementseparator/ElementSeparator.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 ElementSeparator\r\n */\r\n\r\nimport \"./ElementSeparator.scss\";\r\nimport * as React from \"react\";\r\nimport { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from \"react\"; // eslint-disable-line no-duplicate-imports\r\nimport classnames from \"classnames\";\r\nimport { Orientation } from \"../enums/Orientation\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { useThrottledFn } from \"../utils/hooks/useThrottledFn\";\r\nimport { UiCore } from \"../UiCore\";\r\n\r\n/**\r\n * Results returned by onRatioChanged callback for determining new ratio and whether the ratio was updated.\r\n * @public\r\n */\r\nexport interface RatioChangeResult {\r\n ratio: number;\r\n}\r\n\r\n/** Properties of [[ElementSeparator]] React component\r\n * @public\r\n */\r\nexport interface ElementSeparatorProps extends CommonProps {\r\n /** Separator orientation */\r\n orientation: Orientation;\r\n /** Ratio between left cell and right cell */\r\n ratio: number;\r\n /** Area width or height (depending on orientation) in pixels */\r\n movableArea?: number;\r\n /** Separator width or height in pixels. 30 by default */\r\n separatorSize?: number;\r\n /** Callback to ratio changed event */\r\n onRatioChanged?: (ratio: number) => void | RatioChangeResult;\r\n /** Is resize handle hovered */\r\n isResizeHandleHovered?: boolean;\r\n /** Callback to hover event change */\r\n onResizeHandleHoverChanged?: (isHovered: boolean) => void;\r\n /** Is resize handle being dragged */\r\n isResizeHandleBeingDragged?: boolean;\r\n /** Callback to drag event change */\r\n onResizeHandleDragChanged?: (isDragStarted: boolean) => void;\r\n}\r\n\r\nfunction getCurrentGlobalPosition(orientation: Orientation, e: PointerEvent | React.PointerEvent) {\r\n return orientation === Orientation.Horizontal ? e.clientX : e.clientY;\r\n}\r\n\r\nconst useConditionalCleanup = (condition: boolean, cleanup: () => void) => {\r\n const conditionRef = useRef(condition);\r\n const cleanupRef = useRef(cleanup);\r\n\r\n conditionRef.current = condition;\r\n cleanupRef.current = cleanup;\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (conditionRef.current)\r\n cleanupRef.current();\r\n };\r\n }, []);\r\n};\r\n\r\nconst useElementSeparatorPointerHandler = ({\r\n onResizeHandleDragChanged,\r\n onResizeHandleHoverChanged,\r\n isResizeHandleBeingDragged,\r\n isResizeHandleHovered,\r\n movableArea,\r\n ratio,\r\n orientation,\r\n onRatioChanged,\r\n}: ElementSeparatorProps) => {\r\n const globalPosition = useRef(0);\r\n const pointerOutOfBounds = useRef(false);\r\n\r\n const [isElementDragged, setIsDragged] = useState(false);\r\n const [isElementHovered, setIsHovered] = useState(false);\r\n const isGroupDragged = isResizeHandleBeingDragged ?? isElementDragged;\r\n const isGroupHovered = isResizeHandleHovered ?? isElementHovered;\r\n\r\n useConditionalCleanup(isElementDragged && !!onResizeHandleDragChanged, () => onResizeHandleDragChanged!(false));\r\n useConditionalCleanup(isElementHovered && !!onResizeHandleHoverChanged, () => onResizeHandleHoverChanged!(false));\r\n\r\n if (isGroupHovered && pointerOutOfBounds.current)\r\n pointerOutOfBounds.current = false;\r\n\r\n const stopDrag = useCallback(() => {\r\n // istanbul ignore else\r\n if (isGroupDragged) {\r\n setIsDragged(false);\r\n if (onResizeHandleDragChanged)\r\n onResizeHandleDragChanged(false);\r\n }\r\n }, [isGroupDragged, onResizeHandleDragChanged]);\r\n\r\n const startDrag = useCallback((e: PointerEvent | React.PointerEvent) => {\r\n globalPosition.current = getCurrentGlobalPosition(orientation, e);\r\n\r\n // istanbul ignore else\r\n if (!isGroupDragged) {\r\n setIsDragged(true);\r\n if (onResizeHandleDragChanged)\r\n onResizeHandleDragChanged(true);\r\n }\r\n }, [isGroupDragged, orientation, onResizeHandleDragChanged]);\r\n\r\n const onPointerUp = useCallback(() => {\r\n stopDrag();\r\n }, [stopDrag]);\r\n\r\n const onThrottledPointerMove = useThrottledFn((e: PointerEvent | React.PointerEvent) => {\r\n if (!movableArea) {\r\n stopDrag();\r\n return;\r\n }\r\n\r\n const currentPosition = getCurrentGlobalPosition(orientation, e);\r\n const positionChange = currentPosition - globalPosition.current;\r\n\r\n // Should not need to recalculate if position on our movement axis does not change\r\n if (Math.abs(positionChange) < 1)\r\n return;\r\n\r\n const currentLocalPosition = movableArea * ratio + positionChange;\r\n const newRatio = currentLocalPosition / movableArea;\r\n\r\n globalPosition.current = currentPosition;\r\n if (pointerOutOfBounds.current || !onRatioChanged)\r\n return;\r\n\r\n const result = onRatioChanged(newRatio);\r\n if (result && result.ratio === ratio && !isGroupHovered && !pointerOutOfBounds.current)\r\n pointerOutOfBounds.current = true;\r\n }, 16, [stopDrag, isGroupHovered, ratio, movableArea, onRatioChanged, orientation]);\r\n\r\n useEffect(() => {\r\n return () => onThrottledPointerMove.cancel();\r\n }, [onThrottledPointerMove]);\r\n\r\n useLayoutEffect(() => {\r\n if (isElementDragged) {\r\n document.addEventListener(\"pointerup\", onPointerUp);\r\n document.addEventListener(\"pointermove\", onThrottledPointerMove);\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"pointerup\", onPointerUp);\r\n document.removeEventListener(\"pointermove\", onThrottledPointerMove);\r\n };\r\n }, [isElementDragged, onPointerUp, onThrottledPointerMove]);\r\n\r\n const onPointerDown = useCallback((e: PointerEvent | React.PointerEvent) => {\r\n if (!isGroupDragged) {\r\n startDrag(e);\r\n } else {\r\n stopDrag();\r\n }\r\n }, [isGroupDragged, startDrag, stopDrag]);\r\n\r\n const onPointerOver = useCallback(() => {\r\n // istanbul ignore next\r\n if (isGroupHovered)\r\n return;\r\n\r\n setIsHovered(true);\r\n if (onResizeHandleHoverChanged)\r\n onResizeHandleHoverChanged(true);\r\n\r\n }, [isGroupHovered, onResizeHandleHoverChanged]);\r\n\r\n const onPointerOut = useCallback(() => {\r\n // istanbul ignore next\r\n if (!isGroupHovered)\r\n return;\r\n\r\n setIsHovered(false);\r\n if (onResizeHandleHoverChanged)\r\n onResizeHandleHoverChanged(false);\r\n\r\n }, [isGroupHovered, onResizeHandleHoverChanged]);\r\n\r\n return {\r\n isHovered: isGroupHovered,\r\n isDragged: isGroupDragged,\r\n onPointerDown,\r\n onPointerOver,\r\n onPointerOut,\r\n };\r\n};\r\n\r\nfunction getStyle(orientation: Orientation, separatorSize?: number): React.CSSProperties {\r\n separatorSize = separatorSize || 30;\r\n\r\n if (orientation === Orientation.Horizontal)\r\n return {\r\n width: separatorSize,\r\n margin: `0px ${-Math.floor(separatorSize / 2)}px`,\r\n };\r\n return {\r\n height: separatorSize,\r\n margin: `${-Math.floor(separatorSize / 2)}px 1px`,\r\n };\r\n}\r\n\r\n/** A movable button, which allows to change the ratio between left element and right element\r\n * @public\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const ElementSeparator = (props: ElementSeparatorProps) => {\r\n const label = useRef(UiCore.translate(\"elementSeparator.label\"));\r\n const [hasHoverHappened, setHasHoverHappened] = useState(false);\r\n const { isDragged, isHovered, onPointerDown, onPointerOver, onPointerOut } = useElementSeparatorPointerHandler(props);\r\n\r\n const isHoverNeeded = isHovered || isDragged;\r\n if (!hasHoverHappened && isHoverNeeded)\r\n setHasHoverHappened(isHoverNeeded);\r\n\r\n // This is done to avoid fade-out animation when first rendering.\r\n const unhoverClass = hasHoverHappened ? \"core-element-separator-group-unhovered\" : \"\";\r\n\r\n const classNames = classnames(\r\n \"core-element-separator\",\r\n (props.orientation === Orientation.Horizontal) ? \"core-element-separator--horizontal\" : \"core-element-separator--vertical\",\r\n props.className,\r\n isHoverNeeded ? \"core-element-separator-group-hovered\" : unhoverClass,\r\n );\r\n\r\n const orientation = props.orientation;\r\n const separatorSize = props.separatorSize;\r\n const style = useMemo(() => getStyle(orientation, separatorSize), [orientation, separatorSize]);\r\n const styles: React.CSSProperties = {\r\n ...style,\r\n ...props.style,\r\n };\r\n\r\n return (\r\n <button\r\n style={styles}\r\n className={classNames}\r\n onPointerDown={onPointerDown}\r\n onPointerOver={onPointerOver}\r\n onPointerOut={onPointerOut}\r\n aria-label={label.current}\r\n />\r\n );\r\n};\r\n"]}