@itwin/core-react 4.0.0-dev.8 → 4.0.0-dev.9

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 (590) hide show
  1. package/CHANGELOG.md +1 -93
  2. package/lib/cjs/core-react/UiCore.d.ts +1 -1
  3. package/lib/cjs/core-react/UiCore.js +1 -1
  4. package/lib/cjs/core-react/UiCore.js.map +1 -1
  5. package/lib/cjs/core-react/_typography.scss +7 -8
  6. package/lib/cjs/core-react/autosuggest/AutoSuggest.scss +2 -3
  7. package/lib/cjs/core-react/badge/BetaBadge.d.ts +0 -1
  8. package/lib/cjs/core-react/badge/BetaBadge.d.ts.map +1 -1
  9. package/lib/cjs/core-react/badge/BetaBadge.js +0 -1
  10. package/lib/cjs/core-react/badge/BetaBadge.js.map +1 -1
  11. package/lib/cjs/core-react/button/button.scss +31 -42
  12. package/lib/cjs/core-react/button/variables.scss +10 -7
  13. package/lib/cjs/core-react/checkbox/checkbox.scss +11 -16
  14. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts +4 -1
  15. package/lib/cjs/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  16. package/lib/cjs/core-react/checklistbox/CheckListBox.js.map +1 -1
  17. package/lib/cjs/core-react/classes.scss +0 -4
  18. package/lib/cjs/core-react/colorthemes.scss +42 -10
  19. package/lib/cjs/core-react/colorvariables.scss +53 -15
  20. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts +2 -0
  21. package/lib/cjs/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  22. package/lib/cjs/core-react/contextmenu/ContextMenu.js.map +1 -1
  23. package/lib/cjs/core-react/contextmenu/ContextMenu.scss +7 -8
  24. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js +1 -1
  25. package/lib/cjs/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  26. package/lib/cjs/core-react/dialog/Dialog.scss +4 -5
  27. package/lib/cjs/core-react/expandable/ExpandableList.d.ts +2 -0
  28. package/lib/cjs/core-react/expandable/ExpandableList.d.ts.map +1 -1
  29. package/lib/cjs/core-react/expandable/ExpandableList.js.map +1 -1
  30. package/lib/cjs/core-react/expandable/list.scss +7 -17
  31. package/lib/cjs/core-react/hocs/withTimeout.js.map +1 -1
  32. package/lib/cjs/core-react/icons/IconComponent.d.ts +1 -1
  33. package/lib/cjs/core-react/icons/IconComponent.d.ts.map +1 -1
  34. package/lib/cjs/core-react/icons/IconComponent.js +1 -7
  35. package/lib/cjs/core-react/icons/IconComponent.js.map +1 -1
  36. package/lib/cjs/core-react/icons/SvgPath.d.ts +1 -1
  37. package/lib/cjs/core-react/icons/SvgPath.d.ts.map +1 -1
  38. package/lib/cjs/core-react/icons/SvgPath.js +2 -2
  39. package/lib/cjs/core-react/icons/SvgPath.js.map +1 -1
  40. package/lib/{esm/core-react/icons/SvgSprite.scss → cjs/core-react/icons/SvgPath.scss} +1 -1
  41. package/lib/cjs/core-react/imagecheckbox/ImageCheckBox.scss +4 -5
  42. package/lib/cjs/core-react/index.scss +0 -4
  43. package/lib/cjs/core-react/inputs/Input.d.ts +2 -4
  44. package/lib/cjs/core-react/inputs/Input.d.ts.map +1 -1
  45. package/lib/cjs/core-react/inputs/Input.js +1 -2
  46. package/lib/cjs/core-react/inputs/Input.js.map +1 -1
  47. package/lib/cjs/core-react/inputs/InputLabel.d.ts +2 -0
  48. package/lib/cjs/core-react/inputs/InputLabel.d.ts.map +1 -1
  49. package/lib/cjs/core-react/inputs/InputLabel.js.map +1 -1
  50. package/lib/cjs/core-react/inputs/classes.scss +0 -2
  51. package/lib/cjs/core-react/inputs/index.scss +1 -3
  52. package/lib/cjs/core-react/inputs/input-label.scss +90 -0
  53. package/lib/cjs/core-react/inputs/input.scss +36 -38
  54. package/lib/cjs/core-react/inputs/variables.scss +20 -15
  55. package/lib/cjs/core-react/listbox/Listbox.scss +3 -3
  56. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts +1 -2
  57. package/lib/cjs/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  58. package/lib/cjs/core-react/loading/LoadingSpinner.js +1 -16
  59. package/lib/cjs/core-react/loading/LoadingSpinner.js.map +1 -1
  60. package/lib/cjs/core-react/loading/LoadingSpinner.scss +4 -5
  61. package/lib/cjs/core-react/messagebox/MessageBox.d.ts +4 -0
  62. package/lib/cjs/core-react/messagebox/MessageBox.d.ts.map +1 -1
  63. package/lib/cjs/core-react/messagebox/MessageBox.js.map +1 -1
  64. package/lib/cjs/core-react/popup/Popup.d.ts +2 -0
  65. package/lib/cjs/core-react/popup/Popup.d.ts.map +1 -1
  66. package/lib/cjs/core-react/popup/Popup.js.map +1 -1
  67. package/lib/cjs/core-react/popup/Popup.scss +123 -123
  68. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts +4 -0
  69. package/lib/cjs/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  70. package/lib/cjs/core-react/radialmenu/RadialMenu.js.map +1 -1
  71. package/lib/cjs/core-react/radialmenu/RadialMenu.scss +1 -2
  72. package/lib/cjs/core-react/searchbox/SearchBox.scss +2 -4
  73. package/lib/cjs/core-react/settings/SettingsContainer.js +1 -1
  74. package/lib/cjs/core-react/settings/SettingsContainer.js.map +1 -1
  75. package/lib/cjs/core-react/settings/SettingsContainer.scss +8 -7
  76. package/lib/cjs/core-react/style/baseline.scss +6 -8
  77. package/lib/cjs/core-react/style/data-viz.scss +11 -14
  78. package/lib/cjs/core-react/style/itwinui-overrides.scss +0 -1
  79. package/lib/cjs/core-react/style/mixins.scss +0 -1
  80. package/lib/cjs/core-react/style/opacity.scss +9 -10
  81. package/lib/cjs/core-react/style/space.scss +9 -13
  82. package/lib/cjs/core-react/style/speed.scss +3 -4
  83. package/lib/cjs/core-react/style/typography.scss +26 -25
  84. package/lib/cjs/core-react/style/variables.scss +4 -5
  85. package/lib/cjs/core-react/tabs/Tabs.d.ts +1 -1
  86. package/lib/cjs/core-react/tabs/Tabs.js.map +1 -1
  87. package/lib/cjs/core-react/tabs/classes.scss +0 -1
  88. package/lib/cjs/core-react/tabs/index.scss +0 -1
  89. package/lib/cjs/core-react/tabs/tabs.scss +38 -49
  90. package/lib/cjs/core-react/tabs/vertical.scss +17 -23
  91. package/lib/cjs/core-react/text/classes.scss +0 -8
  92. package/lib/cjs/core-react/text/index.scss +0 -8
  93. package/lib/cjs/core-react/text/mixins.scss +8 -46
  94. package/lib/cjs/core-react/tree/Node.scss +5 -5
  95. package/lib/cjs/core-react.d.ts +1 -41
  96. package/lib/cjs/core-react.d.ts.map +1 -1
  97. package/lib/cjs/core-react.js +1 -41
  98. package/lib/cjs/core-react.js.map +1 -1
  99. package/lib/esm/core-react/UiCore.d.ts +1 -1
  100. package/lib/esm/core-react/UiCore.js +1 -1
  101. package/lib/esm/core-react/UiCore.js.map +1 -1
  102. package/lib/esm/core-react/_typography.scss +7 -8
  103. package/lib/esm/core-react/autosuggest/AutoSuggest.scss +2 -3
  104. package/lib/esm/core-react/badge/BetaBadge.d.ts +0 -1
  105. package/lib/esm/core-react/badge/BetaBadge.d.ts.map +1 -1
  106. package/lib/esm/core-react/badge/BetaBadge.js +0 -1
  107. package/lib/esm/core-react/badge/BetaBadge.js.map +1 -1
  108. package/lib/esm/core-react/button/button.scss +31 -42
  109. package/lib/esm/core-react/button/variables.scss +10 -7
  110. package/lib/esm/core-react/checkbox/checkbox.scss +11 -16
  111. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts +4 -1
  112. package/lib/esm/core-react/checklistbox/CheckListBox.d.ts.map +1 -1
  113. package/lib/esm/core-react/checklistbox/CheckListBox.js.map +1 -1
  114. package/lib/esm/core-react/classes.scss +0 -4
  115. package/lib/esm/core-react/colorthemes.scss +42 -10
  116. package/lib/esm/core-react/colorvariables.scss +53 -15
  117. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts +2 -0
  118. package/lib/esm/core-react/contextmenu/ContextMenu.d.ts.map +1 -1
  119. package/lib/esm/core-react/contextmenu/ContextMenu.js.map +1 -1
  120. package/lib/esm/core-react/contextmenu/ContextMenu.scss +7 -8
  121. package/lib/esm/core-react/contextmenu/ContextSubMenu.js +2 -2
  122. package/lib/esm/core-react/contextmenu/ContextSubMenu.js.map +1 -1
  123. package/lib/esm/core-react/dialog/Dialog.scss +4 -5
  124. package/lib/esm/core-react/expandable/ExpandableList.d.ts +2 -0
  125. package/lib/esm/core-react/expandable/ExpandableList.d.ts.map +1 -1
  126. package/lib/esm/core-react/expandable/ExpandableList.js.map +1 -1
  127. package/lib/esm/core-react/expandable/list.scss +7 -17
  128. package/lib/esm/core-react/hocs/withTimeout.js.map +1 -1
  129. package/lib/esm/core-react/icons/IconComponent.d.ts +1 -1
  130. package/lib/esm/core-react/icons/IconComponent.d.ts.map +1 -1
  131. package/lib/esm/core-react/icons/IconComponent.js +1 -7
  132. package/lib/esm/core-react/icons/IconComponent.js.map +1 -1
  133. package/lib/esm/core-react/icons/SvgPath.d.ts +1 -1
  134. package/lib/esm/core-react/icons/SvgPath.d.ts.map +1 -1
  135. package/lib/esm/core-react/icons/SvgPath.js +2 -2
  136. package/lib/esm/core-react/icons/SvgPath.js.map +1 -1
  137. package/lib/{cjs/core-react/icons/SvgSprite.scss → esm/core-react/icons/SvgPath.scss} +1 -1
  138. package/lib/esm/core-react/imagecheckbox/ImageCheckBox.scss +4 -5
  139. package/lib/esm/core-react/index.scss +0 -4
  140. package/lib/esm/core-react/inputs/Input.d.ts +2 -4
  141. package/lib/esm/core-react/inputs/Input.d.ts.map +1 -1
  142. package/lib/esm/core-react/inputs/Input.js +1 -2
  143. package/lib/esm/core-react/inputs/Input.js.map +1 -1
  144. package/lib/esm/core-react/inputs/InputLabel.d.ts +2 -0
  145. package/lib/esm/core-react/inputs/InputLabel.d.ts.map +1 -1
  146. package/lib/esm/core-react/inputs/InputLabel.js.map +1 -1
  147. package/lib/esm/core-react/inputs/classes.scss +0 -2
  148. package/lib/esm/core-react/inputs/index.scss +1 -3
  149. package/lib/esm/core-react/inputs/input-label.scss +90 -0
  150. package/lib/esm/core-react/inputs/input.scss +36 -38
  151. package/lib/esm/core-react/inputs/variables.scss +20 -15
  152. package/lib/esm/core-react/listbox/Listbox.scss +3 -3
  153. package/lib/esm/core-react/loading/LoadingSpinner.d.ts +1 -2
  154. package/lib/esm/core-react/loading/LoadingSpinner.d.ts.map +1 -1
  155. package/lib/esm/core-react/loading/LoadingSpinner.js +1 -16
  156. package/lib/esm/core-react/loading/LoadingSpinner.js.map +1 -1
  157. package/lib/esm/core-react/loading/LoadingSpinner.scss +4 -5
  158. package/lib/esm/core-react/messagebox/MessageBox.d.ts +4 -0
  159. package/lib/esm/core-react/messagebox/MessageBox.d.ts.map +1 -1
  160. package/lib/esm/core-react/messagebox/MessageBox.js.map +1 -1
  161. package/lib/esm/core-react/popup/Popup.d.ts +2 -0
  162. package/lib/esm/core-react/popup/Popup.d.ts.map +1 -1
  163. package/lib/esm/core-react/popup/Popup.js.map +1 -1
  164. package/lib/esm/core-react/popup/Popup.scss +123 -123
  165. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts +4 -0
  166. package/lib/esm/core-react/radialmenu/RadialMenu.d.ts.map +1 -1
  167. package/lib/esm/core-react/radialmenu/RadialMenu.js.map +1 -1
  168. package/lib/esm/core-react/radialmenu/RadialMenu.scss +1 -2
  169. package/lib/esm/core-react/searchbox/SearchBox.scss +2 -4
  170. package/lib/esm/core-react/settings/SettingsContainer.js +1 -1
  171. package/lib/esm/core-react/settings/SettingsContainer.js.map +1 -1
  172. package/lib/esm/core-react/settings/SettingsContainer.scss +8 -7
  173. package/lib/esm/core-react/style/baseline.scss +6 -8
  174. package/lib/esm/core-react/style/data-viz.scss +11 -14
  175. package/lib/esm/core-react/style/itwinui-overrides.scss +0 -1
  176. package/lib/esm/core-react/style/mixins.scss +0 -1
  177. package/lib/esm/core-react/style/opacity.scss +9 -10
  178. package/lib/esm/core-react/style/space.scss +9 -13
  179. package/lib/esm/core-react/style/speed.scss +3 -4
  180. package/lib/esm/core-react/style/typography.scss +26 -25
  181. package/lib/esm/core-react/style/variables.scss +4 -5
  182. package/lib/esm/core-react/tabs/Tabs.d.ts +1 -1
  183. package/lib/esm/core-react/tabs/Tabs.js.map +1 -1
  184. package/lib/esm/core-react/tabs/classes.scss +0 -1
  185. package/lib/esm/core-react/tabs/index.scss +0 -1
  186. package/lib/esm/core-react/tabs/tabs.scss +38 -49
  187. package/lib/esm/core-react/tabs/vertical.scss +17 -23
  188. package/lib/esm/core-react/text/classes.scss +0 -8
  189. package/lib/esm/core-react/text/index.scss +0 -8
  190. package/lib/esm/core-react/text/mixins.scss +8 -46
  191. package/lib/esm/core-react/tree/Node.scss +5 -5
  192. package/lib/esm/core-react.d.ts +1 -41
  193. package/lib/esm/core-react.d.ts.map +1 -1
  194. package/lib/esm/core-react.js +1 -41
  195. package/lib/esm/core-react.js.map +1 -1
  196. package/package.json +23 -21
  197. package/lib/cjs/core-react/badge/BetaBadge.scss +0 -9
  198. package/lib/cjs/core-react/button/Button.d.ts +0 -48
  199. package/lib/cjs/core-react/button/Button.d.ts.map +0 -1
  200. package/lib/cjs/core-react/button/Button.js +0 -86
  201. package/lib/cjs/core-react/button/Button.js.map +0 -1
  202. package/lib/cjs/core-react/checkbox/Checkbox.d.ts +0 -57
  203. package/lib/cjs/core-react/checkbox/Checkbox.d.ts.map +0 -1
  204. package/lib/cjs/core-react/checkbox/Checkbox.js +0 -65
  205. package/lib/cjs/core-react/checkbox/Checkbox.js.map +0 -1
  206. package/lib/cjs/core-react/dialog/DialogButtonDef.d.ts +0 -47
  207. package/lib/cjs/core-react/dialog/DialogButtonDef.d.ts.map +0 -1
  208. package/lib/cjs/core-react/dialog/DialogButtonDef.js +0 -38
  209. package/lib/cjs/core-react/dialog/DialogButtonDef.js.map +0 -1
  210. package/lib/cjs/core-react/expandable/ExpandableBlock.d.ts +0 -34
  211. package/lib/cjs/core-react/expandable/ExpandableBlock.d.ts.map +0 -1
  212. package/lib/cjs/core-react/expandable/ExpandableBlock.js +0 -36
  213. package/lib/cjs/core-react/expandable/ExpandableBlock.js.map +0 -1
  214. package/lib/cjs/core-react/expandable/ExpandableBlock.scss +0 -145
  215. package/lib/cjs/core-react/form/Field.d.ts +0 -20
  216. package/lib/cjs/core-react/form/Field.d.ts.map +0 -1
  217. package/lib/cjs/core-react/form/Field.js +0 -45
  218. package/lib/cjs/core-react/form/Field.js.map +0 -1
  219. package/lib/cjs/core-react/form/Form.d.ts +0 -132
  220. package/lib/cjs/core-react/form/Form.d.ts.map +0 -1
  221. package/lib/cjs/core-react/form/Form.js +0 -132
  222. package/lib/cjs/core-react/form/Form.js.map +0 -1
  223. package/lib/cjs/core-react/form/Form.scss +0 -78
  224. package/lib/cjs/core-react/icons/SvgSprite.d.ts +0 -21
  225. package/lib/cjs/core-react/icons/SvgSprite.d.ts.map +0 -1
  226. package/lib/cjs/core-react/icons/SvgSprite.js +0 -27
  227. package/lib/cjs/core-react/icons/SvgSprite.js.map +0 -1
  228. package/lib/cjs/core-react/inputs/LabeledInput.d.ts +0 -18
  229. package/lib/cjs/core-react/inputs/LabeledInput.d.ts.map +0 -1
  230. package/lib/cjs/core-react/inputs/LabeledInput.js +0 -34
  231. package/lib/cjs/core-react/inputs/LabeledInput.js.map +0 -1
  232. package/lib/cjs/core-react/inputs/LabeledTextarea.d.ts +0 -18
  233. package/lib/cjs/core-react/inputs/LabeledTextarea.d.ts.map +0 -1
  234. package/lib/cjs/core-react/inputs/LabeledTextarea.js +0 -32
  235. package/lib/cjs/core-react/inputs/LabeledTextarea.js.map +0 -1
  236. package/lib/cjs/core-react/inputs/Textarea.d.ts +0 -23
  237. package/lib/cjs/core-react/inputs/Textarea.d.ts.map +0 -1
  238. package/lib/cjs/core-react/inputs/Textarea.js +0 -36
  239. package/lib/cjs/core-react/inputs/Textarea.js.map +0 -1
  240. package/lib/cjs/core-react/inputs/labeled-input.scss +0 -103
  241. package/lib/cjs/core-react/inputs/labeled-textarea.scss +0 -77
  242. package/lib/cjs/core-react/inputs/textarea.scss +0 -55
  243. package/lib/cjs/core-react/loading/Spinner.d.ts +0 -38
  244. package/lib/cjs/core-react/loading/Spinner.d.ts.map +0 -1
  245. package/lib/cjs/core-react/loading/Spinner.js +0 -61
  246. package/lib/cjs/core-react/loading/Spinner.js.map +0 -1
  247. package/lib/cjs/core-react/loading/Spinner.scss +0 -26
  248. package/lib/cjs/core-react/messagebox/MessageSeverity.d.ts +0 -16
  249. package/lib/cjs/core-react/messagebox/MessageSeverity.d.ts.map +0 -1
  250. package/lib/cjs/core-react/messagebox/MessageSeverity.js +0 -24
  251. package/lib/cjs/core-react/messagebox/MessageSeverity.js.map +0 -1
  252. package/lib/cjs/core-react/progress-indicators/ProgressBar.d.ts +0 -29
  253. package/lib/cjs/core-react/progress-indicators/ProgressBar.d.ts.map +0 -1
  254. package/lib/cjs/core-react/progress-indicators/ProgressBar.js +0 -48
  255. package/lib/cjs/core-react/progress-indicators/ProgressBar.js.map +0 -1
  256. package/lib/cjs/core-react/progress-indicators/ProgressSpinner.d.ts +0 -49
  257. package/lib/cjs/core-react/progress-indicators/ProgressSpinner.d.ts.map +0 -1
  258. package/lib/cjs/core-react/progress-indicators/ProgressSpinner.js +0 -74
  259. package/lib/cjs/core-react/progress-indicators/ProgressSpinner.js.map +0 -1
  260. package/lib/cjs/core-react/progress-indicators/classes.scss +0 -33
  261. package/lib/cjs/core-react/progress-indicators/index.scss +0 -6
  262. package/lib/cjs/core-react/progress-indicators/progress-bar.scss +0 -91
  263. package/lib/cjs/core-react/progress-indicators/progress-spinner.scss +0 -132
  264. package/lib/cjs/core-react/radio/Radio.d.ts +0 -20
  265. package/lib/cjs/core-react/radio/Radio.d.ts.map +0 -1
  266. package/lib/cjs/core-react/radio/Radio.js +0 -28
  267. package/lib/cjs/core-react/radio/Radio.js.map +0 -1
  268. package/lib/cjs/core-react/radio/classes.scss +0 -7
  269. package/lib/cjs/core-react/radio/index.scss +0 -8
  270. package/lib/cjs/core-react/radio/radio.scss +0 -89
  271. package/lib/cjs/core-react/select/LabeledSelect.d.ts +0 -20
  272. package/lib/cjs/core-react/select/LabeledSelect.d.ts.map +0 -1
  273. package/lib/cjs/core-react/select/LabeledSelect.js +0 -34
  274. package/lib/cjs/core-react/select/LabeledSelect.js.map +0 -1
  275. package/lib/cjs/core-react/select/LabeledThemedSelect.d.ts +0 -16
  276. package/lib/cjs/core-react/select/LabeledThemedSelect.d.ts.map +0 -1
  277. package/lib/cjs/core-react/select/LabeledThemedSelect.js +0 -31
  278. package/lib/cjs/core-react/select/LabeledThemedSelect.js.map +0 -1
  279. package/lib/cjs/core-react/select/Select.d.ts +0 -53
  280. package/lib/cjs/core-react/select/Select.d.ts.map +0 -1
  281. package/lib/cjs/core-react/select/Select.js +0 -60
  282. package/lib/cjs/core-react/select/Select.js.map +0 -1
  283. package/lib/cjs/core-react/select/ThemedSelect.d.ts +0 -104
  284. package/lib/cjs/core-react/select/ThemedSelect.d.ts.map +0 -1
  285. package/lib/cjs/core-react/select/ThemedSelect.js +0 -57
  286. package/lib/cjs/core-react/select/ThemedSelect.js.map +0 -1
  287. package/lib/cjs/core-react/select/classes.scss +0 -9
  288. package/lib/cjs/core-react/select/index.scss +0 -10
  289. package/lib/cjs/core-react/select/labeled-select.scss +0 -72
  290. package/lib/cjs/core-react/select/labeled-themed-select.scss +0 -77
  291. package/lib/cjs/core-react/select/modalHelper.d.ts +0 -5
  292. package/lib/cjs/core-react/select/modalHelper.d.ts.map +0 -1
  293. package/lib/cjs/core-react/select/modalHelper.js +0 -21
  294. package/lib/cjs/core-react/select/modalHelper.js.map +0 -1
  295. package/lib/cjs/core-react/select/select.scss +0 -74
  296. package/lib/cjs/core-react/select/themed-select.scss +0 -159
  297. package/lib/cjs/core-react/slider/Slider.d.ts +0 -80
  298. package/lib/cjs/core-react/slider/Slider.d.ts.map +0 -1
  299. package/lib/cjs/core-react/slider/Slider.js +0 -91
  300. package/lib/cjs/core-react/slider/Slider.js.map +0 -1
  301. package/lib/cjs/core-react/slider/Slider.scss +0 -96
  302. package/lib/cjs/core-react/splitbutton/SplitButton.d.ts +0 -62
  303. package/lib/cjs/core-react/splitbutton/SplitButton.d.ts.map +0 -1
  304. package/lib/cjs/core-react/splitbutton/SplitButton.js +0 -104
  305. package/lib/cjs/core-react/splitbutton/SplitButton.js.map +0 -1
  306. package/lib/cjs/core-react/splitbutton/SplitButton.scss +0 -137
  307. package/lib/cjs/core-react/tabs/HorizontalTabs.d.ts +0 -11
  308. package/lib/cjs/core-react/tabs/HorizontalTabs.d.ts.map +0 -1
  309. package/lib/cjs/core-react/tabs/HorizontalTabs.js +0 -22
  310. package/lib/cjs/core-react/tabs/HorizontalTabs.js.map +0 -1
  311. package/lib/cjs/core-react/tabs/horizontal.scss +0 -77
  312. package/lib/cjs/core-react/text/Headline.d.ts +0 -11
  313. package/lib/cjs/core-react/text/Headline.d.ts.map +0 -1
  314. package/lib/cjs/core-react/text/Headline.js +0 -21
  315. package/lib/cjs/core-react/text/Headline.js.map +0 -1
  316. package/lib/cjs/core-react/text/LeadingText.d.ts +0 -11
  317. package/lib/cjs/core-react/text/LeadingText.d.ts.map +0 -1
  318. package/lib/cjs/core-react/text/LeadingText.js +0 -21
  319. package/lib/cjs/core-react/text/LeadingText.js.map +0 -1
  320. package/lib/cjs/core-react/text/LeadingText2.d.ts +0 -11
  321. package/lib/cjs/core-react/text/LeadingText2.d.ts.map +0 -1
  322. package/lib/cjs/core-react/text/LeadingText2.js +0 -21
  323. package/lib/cjs/core-react/text/LeadingText2.js.map +0 -1
  324. package/lib/cjs/core-react/text/SmallText.d.ts +0 -11
  325. package/lib/cjs/core-react/text/SmallText.d.ts.map +0 -1
  326. package/lib/cjs/core-react/text/SmallText.js +0 -21
  327. package/lib/cjs/core-react/text/SmallText.js.map +0 -1
  328. package/lib/cjs/core-react/text/Subheading.d.ts +0 -11
  329. package/lib/cjs/core-react/text/Subheading.d.ts.map +0 -1
  330. package/lib/cjs/core-react/text/Subheading.js +0 -21
  331. package/lib/cjs/core-react/text/Subheading.js.map +0 -1
  332. package/lib/cjs/core-react/text/Subheading2.d.ts +0 -11
  333. package/lib/cjs/core-react/text/Subheading2.d.ts.map +0 -1
  334. package/lib/cjs/core-react/text/Subheading2.js +0 -21
  335. package/lib/cjs/core-react/text/Subheading2.js.map +0 -1
  336. package/lib/cjs/core-react/text/Title.d.ts +0 -11
  337. package/lib/cjs/core-react/text/Title.d.ts.map +0 -1
  338. package/lib/cjs/core-react/text/Title.js +0 -21
  339. package/lib/cjs/core-react/text/Title.js.map +0 -1
  340. package/lib/cjs/core-react/text/Title2.d.ts +0 -11
  341. package/lib/cjs/core-react/text/Title2.d.ts.map +0 -1
  342. package/lib/cjs/core-react/text/Title2.js +0 -21
  343. package/lib/cjs/core-react/text/Title2.js.map +0 -1
  344. package/lib/cjs/core-react/text/headline.scss +0 -10
  345. package/lib/cjs/core-react/text/leading-2.scss +0 -11
  346. package/lib/cjs/core-react/text/leading.scss +0 -10
  347. package/lib/cjs/core-react/text/small.scss +0 -10
  348. package/lib/cjs/core-react/text/subheading-2.scss +0 -11
  349. package/lib/cjs/core-react/text/subheading.scss +0 -11
  350. package/lib/cjs/core-react/text/title-2.scss +0 -11
  351. package/lib/cjs/core-react/text/title.scss +0 -10
  352. package/lib/cjs/core-react/tiles/FeaturedTile.d.ts +0 -11
  353. package/lib/cjs/core-react/tiles/FeaturedTile.d.ts.map +0 -1
  354. package/lib/cjs/core-react/tiles/FeaturedTile.js +0 -21
  355. package/lib/cjs/core-react/tiles/FeaturedTile.js.map +0 -1
  356. package/lib/cjs/core-react/tiles/MinimalFeaturedTile.d.ts +0 -11
  357. package/lib/cjs/core-react/tiles/MinimalFeaturedTile.d.ts.map +0 -1
  358. package/lib/cjs/core-react/tiles/MinimalFeaturedTile.js +0 -21
  359. package/lib/cjs/core-react/tiles/MinimalFeaturedTile.js.map +0 -1
  360. package/lib/cjs/core-react/tiles/MinimalTile.d.ts +0 -11
  361. package/lib/cjs/core-react/tiles/MinimalTile.d.ts.map +0 -1
  362. package/lib/cjs/core-react/tiles/MinimalTile.js +0 -21
  363. package/lib/cjs/core-react/tiles/MinimalTile.js.map +0 -1
  364. package/lib/cjs/core-react/tiles/Tile.d.ts +0 -32
  365. package/lib/cjs/core-react/tiles/Tile.d.ts.map +0 -1
  366. package/lib/cjs/core-react/tiles/Tile.js +0 -40
  367. package/lib/cjs/core-react/tiles/Tile.js.map +0 -1
  368. package/lib/cjs/core-react/tiles/classes.scss +0 -7
  369. package/lib/cjs/core-react/tiles/index.scss +0 -5
  370. package/lib/cjs/core-react/tiles/tile.scss +0 -134
  371. package/lib/cjs/core-react/toggle/LabeledToggle.d.ts +0 -26
  372. package/lib/cjs/core-react/toggle/LabeledToggle.d.ts.map +0 -1
  373. package/lib/cjs/core-react/toggle/LabeledToggle.js +0 -29
  374. package/lib/cjs/core-react/toggle/LabeledToggle.js.map +0 -1
  375. package/lib/cjs/core-react/toggle/LabeledToggle.scss +0 -21
  376. package/lib/cjs/core-react/toggle/Toggle.d.ts +0 -52
  377. package/lib/cjs/core-react/toggle/Toggle.d.ts.map +0 -1
  378. package/lib/cjs/core-react/toggle/Toggle.js +0 -105
  379. package/lib/cjs/core-react/toggle/Toggle.js.map +0 -1
  380. package/lib/cjs/core-react/toggle/Toggle.scss +0 -135
  381. package/lib/cjs/core-react/tooltip/Tooltip.d.ts +0 -34
  382. package/lib/cjs/core-react/tooltip/Tooltip.d.ts.map +0 -1
  383. package/lib/cjs/core-react/tooltip/Tooltip.js +0 -57
  384. package/lib/cjs/core-react/tooltip/Tooltip.js.map +0 -1
  385. package/lib/cjs/core-react/tooltip/Tooltip.scss +0 -18
  386. package/lib/cjs/core-react/utils/PointProps.d.ts +0 -12
  387. package/lib/cjs/core-react/utils/PointProps.d.ts.map +0 -1
  388. package/lib/cjs/core-react/utils/PointProps.js +0 -10
  389. package/lib/cjs/core-react/utils/PointProps.js.map +0 -1
  390. package/lib/cjs/core-react/utils/UiEvent.d.ts +0 -10
  391. package/lib/cjs/core-react/utils/UiEvent.d.ts.map +0 -1
  392. package/lib/cjs/core-react/utils/UiEvent.js +0 -18
  393. package/lib/cjs/core-react/utils/UiEvent.js.map +0 -1
  394. package/lib/esm/core-react/badge/BetaBadge.scss +0 -9
  395. package/lib/esm/core-react/button/Button.d.ts +0 -48
  396. package/lib/esm/core-react/button/Button.d.ts.map +0 -1
  397. package/lib/esm/core-react/button/Button.js +0 -81
  398. package/lib/esm/core-react/button/Button.js.map +0 -1
  399. package/lib/esm/core-react/checkbox/Checkbox.d.ts +0 -57
  400. package/lib/esm/core-react/checkbox/Checkbox.d.ts.map +0 -1
  401. package/lib/esm/core-react/checkbox/Checkbox.js +0 -61
  402. package/lib/esm/core-react/checkbox/Checkbox.js.map +0 -1
  403. package/lib/esm/core-react/dialog/DialogButtonDef.d.ts +0 -47
  404. package/lib/esm/core-react/dialog/DialogButtonDef.d.ts.map +0 -1
  405. package/lib/esm/core-react/dialog/DialogButtonDef.js +0 -35
  406. package/lib/esm/core-react/dialog/DialogButtonDef.js.map +0 -1
  407. package/lib/esm/core-react/expandable/ExpandableBlock.d.ts +0 -34
  408. package/lib/esm/core-react/expandable/ExpandableBlock.d.ts.map +0 -1
  409. package/lib/esm/core-react/expandable/ExpandableBlock.js +0 -32
  410. package/lib/esm/core-react/expandable/ExpandableBlock.js.map +0 -1
  411. package/lib/esm/core-react/expandable/ExpandableBlock.scss +0 -145
  412. package/lib/esm/core-react/form/Field.d.ts +0 -20
  413. package/lib/esm/core-react/form/Field.d.ts.map +0 -1
  414. package/lib/esm/core-react/form/Field.js +0 -41
  415. package/lib/esm/core-react/form/Field.js.map +0 -1
  416. package/lib/esm/core-react/form/Form.d.ts +0 -132
  417. package/lib/esm/core-react/form/Form.d.ts.map +0 -1
  418. package/lib/esm/core-react/form/Form.js +0 -128
  419. package/lib/esm/core-react/form/Form.js.map +0 -1
  420. package/lib/esm/core-react/form/Form.scss +0 -78
  421. package/lib/esm/core-react/icons/SvgSprite.d.ts +0 -21
  422. package/lib/esm/core-react/icons/SvgSprite.d.ts.map +0 -1
  423. package/lib/esm/core-react/icons/SvgSprite.js +0 -23
  424. package/lib/esm/core-react/icons/SvgSprite.js.map +0 -1
  425. package/lib/esm/core-react/inputs/LabeledInput.d.ts +0 -18
  426. package/lib/esm/core-react/inputs/LabeledInput.d.ts.map +0 -1
  427. package/lib/esm/core-react/inputs/LabeledInput.js +0 -30
  428. package/lib/esm/core-react/inputs/LabeledInput.js.map +0 -1
  429. package/lib/esm/core-react/inputs/LabeledTextarea.d.ts +0 -18
  430. package/lib/esm/core-react/inputs/LabeledTextarea.d.ts.map +0 -1
  431. package/lib/esm/core-react/inputs/LabeledTextarea.js +0 -28
  432. package/lib/esm/core-react/inputs/LabeledTextarea.js.map +0 -1
  433. package/lib/esm/core-react/inputs/Textarea.d.ts +0 -23
  434. package/lib/esm/core-react/inputs/Textarea.d.ts.map +0 -1
  435. package/lib/esm/core-react/inputs/Textarea.js +0 -33
  436. package/lib/esm/core-react/inputs/Textarea.js.map +0 -1
  437. package/lib/esm/core-react/inputs/labeled-input.scss +0 -103
  438. package/lib/esm/core-react/inputs/labeled-textarea.scss +0 -77
  439. package/lib/esm/core-react/inputs/textarea.scss +0 -55
  440. package/lib/esm/core-react/loading/Spinner.d.ts +0 -38
  441. package/lib/esm/core-react/loading/Spinner.d.ts.map +0 -1
  442. package/lib/esm/core-react/loading/Spinner.js +0 -57
  443. package/lib/esm/core-react/loading/Spinner.js.map +0 -1
  444. package/lib/esm/core-react/loading/Spinner.scss +0 -26
  445. package/lib/esm/core-react/messagebox/MessageSeverity.d.ts +0 -16
  446. package/lib/esm/core-react/messagebox/MessageSeverity.d.ts.map +0 -1
  447. package/lib/esm/core-react/messagebox/MessageSeverity.js +0 -21
  448. package/lib/esm/core-react/messagebox/MessageSeverity.js.map +0 -1
  449. package/lib/esm/core-react/progress-indicators/ProgressBar.d.ts +0 -29
  450. package/lib/esm/core-react/progress-indicators/ProgressBar.d.ts.map +0 -1
  451. package/lib/esm/core-react/progress-indicators/ProgressBar.js +0 -44
  452. package/lib/esm/core-react/progress-indicators/ProgressBar.js.map +0 -1
  453. package/lib/esm/core-react/progress-indicators/ProgressSpinner.d.ts +0 -49
  454. package/lib/esm/core-react/progress-indicators/ProgressSpinner.d.ts.map +0 -1
  455. package/lib/esm/core-react/progress-indicators/ProgressSpinner.js +0 -70
  456. package/lib/esm/core-react/progress-indicators/ProgressSpinner.js.map +0 -1
  457. package/lib/esm/core-react/progress-indicators/classes.scss +0 -33
  458. package/lib/esm/core-react/progress-indicators/index.scss +0 -6
  459. package/lib/esm/core-react/progress-indicators/progress-bar.scss +0 -91
  460. package/lib/esm/core-react/progress-indicators/progress-spinner.scss +0 -132
  461. package/lib/esm/core-react/radio/Radio.d.ts +0 -20
  462. package/lib/esm/core-react/radio/Radio.d.ts.map +0 -1
  463. package/lib/esm/core-react/radio/Radio.js +0 -24
  464. package/lib/esm/core-react/radio/Radio.js.map +0 -1
  465. package/lib/esm/core-react/radio/classes.scss +0 -7
  466. package/lib/esm/core-react/radio/index.scss +0 -8
  467. package/lib/esm/core-react/radio/radio.scss +0 -89
  468. package/lib/esm/core-react/select/LabeledSelect.d.ts +0 -20
  469. package/lib/esm/core-react/select/LabeledSelect.d.ts.map +0 -1
  470. package/lib/esm/core-react/select/LabeledSelect.js +0 -30
  471. package/lib/esm/core-react/select/LabeledSelect.js.map +0 -1
  472. package/lib/esm/core-react/select/LabeledThemedSelect.d.ts +0 -16
  473. package/lib/esm/core-react/select/LabeledThemedSelect.d.ts.map +0 -1
  474. package/lib/esm/core-react/select/LabeledThemedSelect.js +0 -27
  475. package/lib/esm/core-react/select/LabeledThemedSelect.js.map +0 -1
  476. package/lib/esm/core-react/select/Select.d.ts +0 -53
  477. package/lib/esm/core-react/select/Select.d.ts.map +0 -1
  478. package/lib/esm/core-react/select/Select.js +0 -57
  479. package/lib/esm/core-react/select/Select.js.map +0 -1
  480. package/lib/esm/core-react/select/ThemedSelect.d.ts +0 -104
  481. package/lib/esm/core-react/select/ThemedSelect.d.ts.map +0 -1
  482. package/lib/esm/core-react/select/ThemedSelect.js +0 -53
  483. package/lib/esm/core-react/select/ThemedSelect.js.map +0 -1
  484. package/lib/esm/core-react/select/classes.scss +0 -9
  485. package/lib/esm/core-react/select/index.scss +0 -10
  486. package/lib/esm/core-react/select/labeled-select.scss +0 -72
  487. package/lib/esm/core-react/select/labeled-themed-select.scss +0 -77
  488. package/lib/esm/core-react/select/modalHelper.d.ts +0 -5
  489. package/lib/esm/core-react/select/modalHelper.d.ts.map +0 -1
  490. package/lib/esm/core-react/select/modalHelper.js +0 -17
  491. package/lib/esm/core-react/select/modalHelper.js.map +0 -1
  492. package/lib/esm/core-react/select/select.scss +0 -74
  493. package/lib/esm/core-react/select/themed-select.scss +0 -159
  494. package/lib/esm/core-react/slider/Slider.d.ts +0 -80
  495. package/lib/esm/core-react/slider/Slider.d.ts.map +0 -1
  496. package/lib/esm/core-react/slider/Slider.js +0 -87
  497. package/lib/esm/core-react/slider/Slider.js.map +0 -1
  498. package/lib/esm/core-react/slider/Slider.scss +0 -96
  499. package/lib/esm/core-react/splitbutton/SplitButton.d.ts +0 -62
  500. package/lib/esm/core-react/splitbutton/SplitButton.d.ts.map +0 -1
  501. package/lib/esm/core-react/splitbutton/SplitButton.js +0 -100
  502. package/lib/esm/core-react/splitbutton/SplitButton.js.map +0 -1
  503. package/lib/esm/core-react/splitbutton/SplitButton.scss +0 -137
  504. package/lib/esm/core-react/tabs/HorizontalTabs.d.ts +0 -11
  505. package/lib/esm/core-react/tabs/HorizontalTabs.d.ts.map +0 -1
  506. package/lib/esm/core-react/tabs/HorizontalTabs.js +0 -18
  507. package/lib/esm/core-react/tabs/HorizontalTabs.js.map +0 -1
  508. package/lib/esm/core-react/tabs/horizontal.scss +0 -77
  509. package/lib/esm/core-react/text/Headline.d.ts +0 -11
  510. package/lib/esm/core-react/text/Headline.d.ts.map +0 -1
  511. package/lib/esm/core-react/text/Headline.js +0 -17
  512. package/lib/esm/core-react/text/Headline.js.map +0 -1
  513. package/lib/esm/core-react/text/LeadingText.d.ts +0 -11
  514. package/lib/esm/core-react/text/LeadingText.d.ts.map +0 -1
  515. package/lib/esm/core-react/text/LeadingText.js +0 -17
  516. package/lib/esm/core-react/text/LeadingText.js.map +0 -1
  517. package/lib/esm/core-react/text/LeadingText2.d.ts +0 -11
  518. package/lib/esm/core-react/text/LeadingText2.d.ts.map +0 -1
  519. package/lib/esm/core-react/text/LeadingText2.js +0 -17
  520. package/lib/esm/core-react/text/LeadingText2.js.map +0 -1
  521. package/lib/esm/core-react/text/SmallText.d.ts +0 -11
  522. package/lib/esm/core-react/text/SmallText.d.ts.map +0 -1
  523. package/lib/esm/core-react/text/SmallText.js +0 -17
  524. package/lib/esm/core-react/text/SmallText.js.map +0 -1
  525. package/lib/esm/core-react/text/Subheading.d.ts +0 -11
  526. package/lib/esm/core-react/text/Subheading.d.ts.map +0 -1
  527. package/lib/esm/core-react/text/Subheading.js +0 -17
  528. package/lib/esm/core-react/text/Subheading.js.map +0 -1
  529. package/lib/esm/core-react/text/Subheading2.d.ts +0 -11
  530. package/lib/esm/core-react/text/Subheading2.d.ts.map +0 -1
  531. package/lib/esm/core-react/text/Subheading2.js +0 -17
  532. package/lib/esm/core-react/text/Subheading2.js.map +0 -1
  533. package/lib/esm/core-react/text/Title.d.ts +0 -11
  534. package/lib/esm/core-react/text/Title.d.ts.map +0 -1
  535. package/lib/esm/core-react/text/Title.js +0 -17
  536. package/lib/esm/core-react/text/Title.js.map +0 -1
  537. package/lib/esm/core-react/text/Title2.d.ts +0 -11
  538. package/lib/esm/core-react/text/Title2.d.ts.map +0 -1
  539. package/lib/esm/core-react/text/Title2.js +0 -17
  540. package/lib/esm/core-react/text/Title2.js.map +0 -1
  541. package/lib/esm/core-react/text/headline.scss +0 -10
  542. package/lib/esm/core-react/text/leading-2.scss +0 -11
  543. package/lib/esm/core-react/text/leading.scss +0 -10
  544. package/lib/esm/core-react/text/small.scss +0 -10
  545. package/lib/esm/core-react/text/subheading-2.scss +0 -11
  546. package/lib/esm/core-react/text/subheading.scss +0 -11
  547. package/lib/esm/core-react/text/title-2.scss +0 -11
  548. package/lib/esm/core-react/text/title.scss +0 -10
  549. package/lib/esm/core-react/tiles/FeaturedTile.d.ts +0 -11
  550. package/lib/esm/core-react/tiles/FeaturedTile.d.ts.map +0 -1
  551. package/lib/esm/core-react/tiles/FeaturedTile.js +0 -17
  552. package/lib/esm/core-react/tiles/FeaturedTile.js.map +0 -1
  553. package/lib/esm/core-react/tiles/MinimalFeaturedTile.d.ts +0 -11
  554. package/lib/esm/core-react/tiles/MinimalFeaturedTile.d.ts.map +0 -1
  555. package/lib/esm/core-react/tiles/MinimalFeaturedTile.js +0 -17
  556. package/lib/esm/core-react/tiles/MinimalFeaturedTile.js.map +0 -1
  557. package/lib/esm/core-react/tiles/MinimalTile.d.ts +0 -11
  558. package/lib/esm/core-react/tiles/MinimalTile.d.ts.map +0 -1
  559. package/lib/esm/core-react/tiles/MinimalTile.js +0 -17
  560. package/lib/esm/core-react/tiles/MinimalTile.js.map +0 -1
  561. package/lib/esm/core-react/tiles/Tile.d.ts +0 -32
  562. package/lib/esm/core-react/tiles/Tile.d.ts.map +0 -1
  563. package/lib/esm/core-react/tiles/Tile.js +0 -36
  564. package/lib/esm/core-react/tiles/Tile.js.map +0 -1
  565. package/lib/esm/core-react/tiles/classes.scss +0 -7
  566. package/lib/esm/core-react/tiles/index.scss +0 -5
  567. package/lib/esm/core-react/tiles/tile.scss +0 -134
  568. package/lib/esm/core-react/toggle/LabeledToggle.d.ts +0 -26
  569. package/lib/esm/core-react/toggle/LabeledToggle.d.ts.map +0 -1
  570. package/lib/esm/core-react/toggle/LabeledToggle.js +0 -25
  571. package/lib/esm/core-react/toggle/LabeledToggle.js.map +0 -1
  572. package/lib/esm/core-react/toggle/LabeledToggle.scss +0 -21
  573. package/lib/esm/core-react/toggle/Toggle.d.ts +0 -52
  574. package/lib/esm/core-react/toggle/Toggle.d.ts.map +0 -1
  575. package/lib/esm/core-react/toggle/Toggle.js +0 -102
  576. package/lib/esm/core-react/toggle/Toggle.js.map +0 -1
  577. package/lib/esm/core-react/toggle/Toggle.scss +0 -135
  578. package/lib/esm/core-react/tooltip/Tooltip.d.ts +0 -34
  579. package/lib/esm/core-react/tooltip/Tooltip.d.ts.map +0 -1
  580. package/lib/esm/core-react/tooltip/Tooltip.js +0 -52
  581. package/lib/esm/core-react/tooltip/Tooltip.js.map +0 -1
  582. package/lib/esm/core-react/tooltip/Tooltip.scss +0 -18
  583. package/lib/esm/core-react/utils/PointProps.d.ts +0 -12
  584. package/lib/esm/core-react/utils/PointProps.d.ts.map +0 -1
  585. package/lib/esm/core-react/utils/PointProps.js +0 -9
  586. package/lib/esm/core-react/utils/PointProps.js.map +0 -1
  587. package/lib/esm/core-react/utils/UiEvent.d.ts +0 -10
  588. package/lib/esm/core-react/utils/UiEvent.d.ts.map +0 -1
  589. package/lib/esm/core-react/utils/UiEvent.js +0 -14
  590. package/lib/esm/core-react/utils/UiEvent.js.map +0 -1
@@ -4,191 +4,191 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  @import "../inputs/variables";
6
6
  @import "../z-index";
7
- @import "~@itwin/itwinui-css/scss/style/elevation";
8
7
 
9
8
  .core-popup {
10
- top: 0;
11
- left: 0;
12
- display: block;
13
- box-sizing: border-box;
14
- position: absolute;
15
- border-radius: 4px;
16
- border: 1px solid $buic-background-panel-stroke;
17
- background: $buic-background-panel;
18
- color: $buic-text-color;
19
- animation-duration: .2s;
20
- animation-timing-function: ease;
21
- animation-fill-mode: forwards;
22
- cursor: default;
23
-
24
- @include uicore-z-index(dialog-popup);
25
-
26
- &.core-popup-animation-none {
27
- animation-duration: 0s;
28
- }
29
-
30
- &.core-popup-hidden {
31
- display: none;
32
- }
33
-
34
- &.core-animation-ended {
35
- animation-name: none;
36
- }
37
- }
38
-
39
- .core-popup.arrow::after, .core-popup.arrow::before {
40
- border: solid transparent;
41
- content: " ";
42
- height: 0;
43
- width: 0;
44
- position: absolute;
45
- pointer-events: none;
46
- color: $buic-background-panel;
9
+ top: 0;
10
+ left: 0;
11
+ display: block;
12
+ box-sizing: border-box;
13
+ position: absolute;
14
+ border-radius: var(--iui-border-radius-1);
15
+ border: 1px solid $buic-background-panel-stroke;
16
+ background: $buic-background-panel;
17
+ color: $buic-text-color;
18
+ animation-duration: 0.2s;
19
+ animation-timing-function: ease;
20
+ animation-fill-mode: forwards;
21
+ cursor: default;
22
+
23
+ @include uicore-z-index(dialog-popup);
24
+
25
+ &.core-popup-animation-none {
26
+ animation-duration: 0s;
27
+ }
28
+
29
+ &.core-popup-hidden {
30
+ display: none;
31
+ }
32
+
33
+ &.core-animation-ended {
34
+ animation-name: none;
35
+ }
36
+ }
37
+
38
+ .core-popup.arrow::after,
39
+ .core-popup.arrow::before {
40
+ border: solid transparent;
41
+ content: " ";
42
+ height: 0;
43
+ width: 0;
44
+ position: absolute;
45
+ pointer-events: none;
46
+ color: $buic-background-panel;
47
47
  }
48
48
 
49
49
  .core-popup.core-popup-bottom-left.arrow::after,
50
50
  .core-popup.core-popup-bottom-left.arrow::before {
51
- bottom: 100%;
52
- left: 25%;
51
+ bottom: 100%;
52
+ left: 25%;
53
53
  }
54
54
 
55
55
  .core-popup.core-popup-bottom-right.arrow::after,
56
56
  .core-popup.core-popup-bottom-right.arrow::before {
57
- bottom: 100%;
58
- left: 75%;
57
+ bottom: 100%;
58
+ left: 75%;
59
59
  }
60
60
 
61
61
  .core-popup.core-popup-bottom.arrow::after,
62
62
  .core-popup.core-popup-bottom.arrow::before {
63
- bottom: 100%;
64
- left: 50%;
63
+ bottom: 100%;
64
+ left: 50%;
65
65
  }
66
66
 
67
67
  .core-popup.core-popup-top.arrow::after,
68
68
  .core-popup.core-popup-top.arrow::before {
69
- top: 100%;
70
- left: 50%;
69
+ top: 100%;
70
+ left: 50%;
71
71
  }
72
72
 
73
73
  .core-popup.core-popup-top-left.arrow::after,
74
74
  .core-popup.core-popup-top-left.arrow::before {
75
- top: 100%;
76
- left: 25%;
75
+ top: 100%;
76
+ left: 25%;
77
77
  }
78
78
 
79
79
  .core-popup.core-popup-top-right.arrow::after,
80
80
  .core-popup.core-popup-top-right.arrow::before {
81
- top: 100%;
82
- left: 75%;
81
+ top: 100%;
82
+ left: 75%;
83
83
  }
84
84
 
85
85
  .core-popup.core-popup-left.arrow::after,
86
86
  .core-popup.core-popup-left.arrow::before {
87
- top: 50%;
88
- left: 100%;
87
+ top: 50%;
88
+ left: 100%;
89
89
  }
90
90
 
91
91
  .core-popup.core-popup-right.arrow::after,
92
92
  .core-popup.core-popup-right.arrow::before {
93
- top: 50%;
94
- right: 100%;
93
+ top: 50%;
94
+ right: 100%;
95
95
  }
96
96
 
97
97
  .core-popup.core-popup-bottom.arrow::before,
98
98
  .core-popup.core-popup-bottom-left.arrow::before,
99
99
  .core-popup.core-popup-bottom-right.arrow::before {
100
- border-bottom-color: inherit;
101
- border-width: 9px;
102
- margin-left: -9px;
100
+ border-bottom-color: inherit;
101
+ border-width: 9px;
102
+ margin-left: -9px;
103
103
  }
104
104
 
105
105
  .core-popup.core-popup-top.arrow::before,
106
106
  .core-popup.core-popup-top-left.arrow::before,
107
107
  .core-popup.core-popup-top-right.arrow::before {
108
- border-top-color: inherit;
109
- border-width: 9px;
110
- margin-left: -9px;
108
+ border-top-color: inherit;
109
+ border-width: 9px;
110
+ margin-left: -9px;
111
111
  }
112
112
 
113
113
  .core-popup.core-popup-left.arrow::before {
114
- border-left-color: inherit;
115
- border-width: 9px;
116
- margin-top: -9px;
114
+ border-left-color: inherit;
115
+ border-width: 9px;
116
+ margin-top: -9px;
117
117
  }
118
118
 
119
119
  .core-popup.core-popup-right.arrow::before {
120
- border-right-color: inherit;
121
- border-width: 9px;
122
- margin-top: -9px;
120
+ border-right-color: inherit;
121
+ border-width: 9px;
122
+ margin-top: -9px;
123
123
  }
124
124
 
125
125
  .core-popup.core-popup-bottom.arrow::after,
126
126
  .core-popup.core-popup-bottom-left.arrow::after,
127
127
  .core-popup.core-popup-bottom-right.arrow::after {
128
- border-bottom-color: currentColor;
129
- border-width: 8px;
130
- margin-left: -8px;
128
+ border-bottom-color: currentColor;
129
+ border-width: 8px;
130
+ margin-left: -8px;
131
131
  }
132
132
 
133
133
  .core-popup.core-popup-top.arrow::after,
134
134
  .core-popup.core-popup-top-left.arrow::after,
135
135
  .core-popup.core-popup-top-right.arrow::after {
136
- border-top-color: currentColor;
137
- border-width: 8px;
138
- margin-left: -8px;
136
+ border-top-color: currentColor;
137
+ border-width: 8px;
138
+ margin-left: -8px;
139
139
  }
140
140
 
141
141
  .core-popup.core-popup-left.arrow::after {
142
- border-left-color: currentColor;
143
- border-width: 8px;
144
- margin-top: -8px;
142
+ border-left-color: currentColor;
143
+ border-width: 8px;
144
+ margin-top: -8px;
145
145
  }
146
146
 
147
147
  .core-popup.core-popup-right.arrow::after {
148
- border-right-color: currentColor;
149
- border-width: 8px;
150
- margin-top: -8px;
148
+ border-right-color: currentColor;
149
+ border-width: 8px;
150
+ margin-top: -8px;
151
151
  }
152
152
 
153
153
  .core-popup-shadow {
154
- -webkit-box-shadow: $iui-elevation-16;
155
- box-shadow: $iui-elevation-16;
156
- background-clip: padding-box;
154
+ -webkit-box-shadow: var(--iui-shadow-4);
155
+ box-shadow: var(--iui-shadow-4);
156
+ background-clip: padding-box;
157
157
  }
158
158
 
159
159
  .core-popup-top-left {
160
- transform-origin: left bottom 0px;
161
- animation-name: animate-corner;
160
+ transform-origin: left bottom 0px;
161
+ animation-name: animate-corner;
162
162
  }
163
163
 
164
164
  .core-popup-top-right {
165
- transform-origin: right bottom 0px;
166
- animation-name: animate-corner;
165
+ transform-origin: right bottom 0px;
166
+ animation-name: animate-corner;
167
167
  }
168
168
 
169
169
  .core-popup-bottom-left {
170
- transform-origin: left top 0px;
171
- animation-name: animate-corner;
170
+ transform-origin: left top 0px;
171
+ animation-name: animate-corner;
172
172
  }
173
173
 
174
174
  .core-popup-bottom-right {
175
- transform-origin: right top 0px;
176
- animation-name: animate-corner;
175
+ transform-origin: right top 0px;
176
+ animation-name: animate-corner;
177
177
  }
178
178
 
179
179
  .core-popup-left {
180
- transform-origin: right;
181
- animation-name: animate-horizontal;
180
+ transform-origin: right;
181
+ animation-name: animate-horizontal;
182
182
  }
183
183
 
184
184
  .core-popup-left-top {
185
185
  transform-origin: right top 0px;
186
186
  animation-name: animate-corner;
187
- }
187
+ }
188
188
 
189
189
  .core-popup-right {
190
- transform-origin: left;
191
- animation-name: animate-horizontal;
190
+ transform-origin: left;
191
+ animation-name: animate-horizontal;
192
192
  }
193
193
 
194
194
  .core-popup-right-top {
@@ -197,44 +197,44 @@
197
197
  }
198
198
 
199
199
  .core-popup-top {
200
- transform-origin: bottom;
201
- animation-name: animate-vertical;
202
- };
200
+ transform-origin: bottom;
201
+ animation-name: animate-vertical;
202
+ }
203
203
 
204
204
  .core-popup-bottom {
205
- transform-origin: top;
206
- animation-name: animate-vertical;
205
+ transform-origin: top;
206
+ animation-name: animate-vertical;
207
207
  }
208
208
 
209
209
  @keyframes animate-vertical {
210
- from {
211
- visibility: hidden;
212
- transform: scale(1,.5);
213
- }
214
- to {
215
- visibility: visible;
216
- transform: scale(1);
217
- }
210
+ from {
211
+ visibility: hidden;
212
+ transform: scale(1, 0.5);
213
+ }
214
+ to {
215
+ visibility: visible;
216
+ transform: scale(1);
217
+ }
218
218
  }
219
219
 
220
220
  @keyframes animate-corner {
221
- from {
222
- visibility: hidden;
223
- transform: scale(.5,.5);
224
- }
225
- to {
226
- visibility: visible;
227
- transform: scale(1,1);
228
- }
221
+ from {
222
+ visibility: hidden;
223
+ transform: scale(0.5, 0.5);
224
+ }
225
+ to {
226
+ visibility: visible;
227
+ transform: scale(1, 1);
228
+ }
229
229
  }
230
230
 
231
231
  @keyframes animate-horizontal {
232
- from {
233
- visibility: hidden;
234
- transform: scale(.5,1);
235
- }
236
- to {
237
- visibility: visible;
238
- transform: scale(1,1);
239
- }
232
+ from {
233
+ visibility: hidden;
234
+ transform: scale(0.5, 1);
235
+ }
236
+ to {
237
+ visibility: visible;
238
+ transform: scale(1, 1);
239
+ }
240
240
  }
@@ -30,6 +30,8 @@ export interface RadialMenuProps extends CommonProps {
30
30
  onBlur?: (event: any) => any;
31
31
  /** triggered onKeyUp for <Esc> key */
32
32
  onEsc?: (event: any) => any;
33
+ /** Content */
34
+ children?: React.ReactNode;
33
35
  }
34
36
  /** @internal */
35
37
  interface RadialMenuState {
@@ -70,6 +72,8 @@ export interface RadialButtonProps extends CommonProps {
70
72
  onSelect?: (e: any) => any;
71
73
  /** Whether item is highlighted */
72
74
  selected?: boolean;
75
+ /** Content */
76
+ children?: React.ReactNode;
73
77
  }
74
78
  /** @internal */
75
79
  interface RadialButtonState {
@@ -1 +1 @@
1
- {"version":3,"file":"RadialMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAQ,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAW,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,sCAAsC;IACtC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CAC7B;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC/E,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAc,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAGlD;IAEF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAIlB,MAAM,IAAI,GAAG,CAAC,OAAO;IAqDrB,iBAAiB;IASjB,oBAAoB;IAKpB,kBAAkB,CAAC,SAAS,EAAE,eAAe;IAM7D,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,oDAAoD;IAC7C,MAAM,aAIX;IAEF,OAAO,CAAC,uBAAuB,CAa7B;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAErF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAA2C;gBAE1F,KAAK,EAAE,iBAAiB;IAIpB,MAAM,IAAI,GAAG,CAAC,OAAO;IAwDrC,wCAAwC;IACjC,MAAM,aAIX;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,eAAe,CAErB;CACH"}
1
+ {"version":3,"file":"RadialMenu.d.ts","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAQ,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAW,MAAM,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,iCAAiC;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,sCAAsC;IACtC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IAC5B,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAC/E,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAc,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAGlD;IAEF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAIlB,MAAM,IAAI,GAAG,CAAC,OAAO;IAqDrB,iBAAiB;IASjB,oBAAoB;IAKpB,kBAAkB,CAAC,SAAS,EAAE,eAAe;IAM7D,OAAO,CAAC,YAAY,CAGlB;IAEF,OAAO,CAAC,YAAY,CAGlB;IAEF,oDAAoD;IAC7C,MAAM,aAIX;IAEF,OAAO,CAAC,uBAAuB,CAa7B;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,gBAAgB;IAChB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,gBAAgB;AAChB,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAErF,gBAAgB;IAChB,SAAyB,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAA2C;gBAE1F,KAAK,EAAE,iBAAiB;IAIpB,MAAM,IAAI,GAAG,CAAC,OAAO;IAwDrC,wCAAwC;IACjC,MAAM,aAIX;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,eAAe,CAErB;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadialMenu.js","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.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 RadialMenu\r\n */\r\n\r\nimport \"./RadialMenu.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { Icon, IconSpec } from \"../icons/IconComponent\";\r\nimport { Point } from \"../utils/Point\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { AnnularSector, Annulus } from \"./Annulus\";\r\n\r\n/** Properties for [[RadialMenu]]\r\n * @public\r\n */\r\nexport interface RadialMenuProps extends CommonProps {\r\n /** Whether to show RadialMenu */\r\n opened: boolean;\r\n /** Radius of inner portion of RadialMenu */\r\n innerRadius: number;\r\n /** Radius of outer portion of RadialMenu */\r\n outerRadius: number;\r\n /** Optional parameter to specify left position in viewport. */\r\n left?: number | string;\r\n /** Optional parameter to specify top position in viewport. */\r\n top?: number | string;\r\n /** Whether to rotate labels according to location on the RadialMenu, or to keep labels upright.\r\n * Default: false\r\n */\r\n labelRotate?: boolean;\r\n /** Which child RadialButton to highlight */\r\n selected?: number;\r\n /** triggered in case of onClick events anywhere other than radial menu */\r\n onBlur?: (event: any) => any;\r\n /** triggered onKeyUp for <Esc> key */\r\n onEsc?: (event: any) => any;\r\n}\r\n\r\n/** @internal */\r\ninterface RadialMenuState {\r\n sectors: AnnularSector[];\r\n}\r\n\r\n/**\r\n * A context menu arranged in a radial layout.\r\n * @public\r\n */\r\nexport class RadialMenu extends React.Component<RadialMenuProps, RadialMenuState> {\r\n private _root: HTMLDivElement | null = null;\r\n private _selectedButton: RadialButton | null = null;\r\n public static defaultProps: Partial<RadialMenuProps> = {\r\n labelRotate: false,\r\n selected: -1,\r\n };\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<RadialMenuState> = {\r\n sectors: [],\r\n };\r\n\r\n constructor(props: RadialMenuProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const width = 2 * (this.props.outerRadius + 1);\r\n let x = this.props.left, y = this.props.top;\r\n\r\n if (this.props.left && this.props.top && typeof this.props.left === \"number\" && typeof this.props.top === \"number\") {\r\n x = this.props.left;\r\n y = this.props.top;\r\n\r\n if (x < 0)\r\n x = 0;\r\n if (x > window.innerWidth - width)\r\n x = window.innerWidth - width;\r\n if (y < 0)\r\n y = 0;\r\n if (y > window.innerHeight - width)\r\n y = window.innerHeight - width;\r\n }\r\n\r\n const divStyle: React.CSSProperties = { left: x, top: y, ...this.props.style };\r\n\r\n return (\r\n <div\r\n ref={(el) => { this._root = el; }}\r\n className={classnames(\"core-radial-menu\", { opened: this.props.opened }, this.props.className)}\r\n style={divStyle}\r\n data-testid=\"core-radial-menu\"\r\n >\r\n <svg\r\n xmlns=\"http://w3.org/2000/svg\" version=\"1.1\"\r\n width={width} height={width}\r\n className={\"core-radial-menu-container\"}>\r\n {React.Children.map(this.props.children, (child, index) => {\r\n // istanbul ignore next\r\n if (!child || typeof child !== \"object\" || !(\"props\" in child))\r\n return child;\r\n\r\n const childElement = (child as React.ReactElement<any>);\r\n return React.cloneElement(childElement, {\r\n key: index,\r\n ref: (el: any) => {\r\n if (this.props.selected === index)\r\n this._selectedButton = el;\r\n },\r\n selected: index === this.props.selected,\r\n labelRotate: childElement.props.labelRotate || this.props.labelRotate,\r\n annularSector: this.state.sectors[index],\r\n });\r\n })}\r\n </svg>\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n this._generateAnnularSectors();\r\n\r\n setTimeout(() => {\r\n window.addEventListener(\"keyup\", this._handleKeyUp);\r\n window.addEventListener(\"mouseup\", this._handleClick);\r\n });\r\n }\r\n\r\n public override componentWillUnmount() {\r\n window.removeEventListener(\"keyup\", this._handleKeyUp);\r\n window.removeEventListener(\"mouseup\", this._handleClick);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: RadialMenuProps) {\r\n if (prevProps.innerRadius !== this.props.innerRadius || prevProps.outerRadius !== this.props.outerRadius) {\r\n this._generateAnnularSectors();\r\n }\r\n }\r\n\r\n private _handleKeyUp = (event: KeyboardEvent) => {\r\n if (event.key === SpecialKey.Escape && this.props.onEsc)\r\n this.props.onEsc(event);\r\n };\r\n\r\n private _handleClick = (event: MouseEvent) => {\r\n if (event.target instanceof HTMLElement && this._root && !event.target.contains(this._root) && this.props.onBlur)\r\n this.props.onBlur(event);\r\n };\r\n\r\n /** Manually call onSelect of highlighted button. */\r\n public select = () => {\r\n // istanbul ignore else\r\n if (this._selectedButton)\r\n this._selectedButton.select();\r\n };\r\n\r\n private _generateAnnularSectors = () => {\r\n const n = React.Children.count(this.props.children);\r\n const angle = 2 * Math.PI / n;\r\n const outer = this.props.outerRadius;\r\n const inner = this.props.innerRadius;\r\n\r\n const offset = - Math.PI / 8;\r\n const annulus = new Annulus(new Point(outer + 1, outer + 1), inner + 1, outer - 1);\r\n const sectors: AnnularSector[] = [];\r\n for (let i = 0; i < n; i++) {\r\n sectors.push(new AnnularSector(annulus, angle * i + offset, angle * (i + 1) + offset));\r\n }\r\n this.setState({ sectors });\r\n };\r\n}\r\n\r\n/** Properties for [[RadialButton]] component\r\n * @public\r\n */\r\nexport interface RadialButtonProps extends CommonProps {\r\n /** Whether label is rotated to radial menu. Default: Inherit */\r\n labelRotate?: boolean;\r\n /** which icon to display in on the menu button */\r\n icon?: IconSpec;\r\n /** @internal */\r\n annularSector?: AnnularSector;\r\n /** listens to any onClick event, or any select event, which can be triggered by the select() method. */\r\n onSelect?: (e: any) => any;\r\n /** Whether item is highlighted */\r\n selected?: boolean;\r\n}\r\n\r\n/** @internal */\r\ninterface RadialButtonState {\r\n hover: boolean;\r\n}\r\n\r\n/**\r\n * Button for use within a [[RadialMenu]]\r\n * @public\r\n */\r\nexport class RadialButton extends React.Component<RadialButtonProps, RadialButtonState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<RadialButtonState> = { hover: this.props.selected || false };\r\n\r\n constructor(props: RadialButtonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const sector = this.props.annularSector;\r\n let p = new Point();\r\n let size = 0;\r\n let t = \"\";\r\n let path = \"\";\r\n\r\n if (sector) {\r\n size = sector.start.p1.getDistanceTo(sector.end.p2) * 2;\r\n path = sector.path;\r\n\r\n const parent = sector.parent;\r\n const { x: cx, y: cy } = parent.center;\r\n const r = (parent.inner.radius + parent.outer.radius) / 2;\r\n const angle = (sector.startAngle + sector.endAngle) / 2;\r\n p = new Point(cx + r * Math.cos(angle), cy + r * Math.sin(angle));\r\n\r\n if (this.props.labelRotate) {\r\n let a = angle * 180 / Math.PI + 90;\r\n while (a > 180)\r\n a -= 360;\r\n while (a < -180)\r\n /* istanbul ignore next */\r\n a += 360;\r\n if (a > 90)\r\n a -= 180;\r\n if (a < -90)\r\n a += 180;\r\n t = `rotate(${a} ${p.x}, ${p.y})`;\r\n }\r\n }\r\n\r\n return (\r\n <g\r\n onMouseOver={this._handleMouseOver}\r\n onMouseOut={this._handleMouseOut}\r\n onClick={this._handleClick}>\r\n <path\r\n className={classnames(\"core-radial-menu-sector\", { selected: this.state.hover }, this.props.className)}\r\n style={this.props.style}\r\n d={path}>\r\n </path>\r\n <foreignObject transform={t} x={p.x - size / 2} y={p.y - 16} width={size} height={size} className={\"core-radial-menu-button-svg\"}>\r\n <div {...{ xmlns: \"http://www.w3.org/1999/xhtml\" }} className={\"core-radial-menu-button-container\"}>\r\n <div className=\"core-radial-menu-button-icon\">\r\n <Icon iconSpec={this.props.icon} />\r\n </div>\r\n <div className={\"core-radial-menu-button-content\"}>\r\n {this.props.children}\r\n </div>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n );\r\n }\r\n\r\n /** Manually call this.props.onSelect */\r\n public select = () => {\r\n // istanbul ignore else\r\n if (this.props.onSelect)\r\n this.props.onSelect(undefined);\r\n };\r\n\r\n private _handleClick = (event: React.MouseEvent<SVGElement>) => {\r\n // istanbul ignore else\r\n if (this.props.onSelect)\r\n this.props.onSelect(event);\r\n };\r\n\r\n private _handleMouseOver = (_event: React.MouseEvent<SVGElement>) => {\r\n this.setState({ hover: true });\r\n };\r\n\r\n private _handleMouseOut = (_event: React.MouseEvent<SVGElement>) => {\r\n this.setState({ hover: false });\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"RadialMenu.js","sourceRoot":"","sources":["../../../../src/core-react/radialmenu/RadialMenu.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 RadialMenu\r\n */\r\n\r\nimport \"./RadialMenu.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { Icon, IconSpec } from \"../icons/IconComponent\";\r\nimport { Point } from \"../utils/Point\";\r\nimport { CommonProps } from \"../utils/Props\";\r\nimport { AnnularSector, Annulus } from \"./Annulus\";\r\n\r\n/** Properties for [[RadialMenu]]\r\n * @public\r\n */\r\nexport interface RadialMenuProps extends CommonProps {\r\n /** Whether to show RadialMenu */\r\n opened: boolean;\r\n /** Radius of inner portion of RadialMenu */\r\n innerRadius: number;\r\n /** Radius of outer portion of RadialMenu */\r\n outerRadius: number;\r\n /** Optional parameter to specify left position in viewport. */\r\n left?: number | string;\r\n /** Optional parameter to specify top position in viewport. */\r\n top?: number | string;\r\n /** Whether to rotate labels according to location on the RadialMenu, or to keep labels upright.\r\n * Default: false\r\n */\r\n labelRotate?: boolean;\r\n /** Which child RadialButton to highlight */\r\n selected?: number;\r\n /** triggered in case of onClick events anywhere other than radial menu */\r\n onBlur?: (event: any) => any;\r\n /** triggered onKeyUp for <Esc> key */\r\n onEsc?: (event: any) => any;\r\n /** Content */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** @internal */\r\ninterface RadialMenuState {\r\n sectors: AnnularSector[];\r\n}\r\n\r\n/**\r\n * A context menu arranged in a radial layout.\r\n * @public\r\n */\r\nexport class RadialMenu extends React.Component<RadialMenuProps, RadialMenuState> {\r\n private _root: HTMLDivElement | null = null;\r\n private _selectedButton: RadialButton | null = null;\r\n public static defaultProps: Partial<RadialMenuProps> = {\r\n labelRotate: false,\r\n selected: -1,\r\n };\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<RadialMenuState> = {\r\n sectors: [],\r\n };\r\n\r\n constructor(props: RadialMenuProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const width = 2 * (this.props.outerRadius + 1);\r\n let x = this.props.left, y = this.props.top;\r\n\r\n if (this.props.left && this.props.top && typeof this.props.left === \"number\" && typeof this.props.top === \"number\") {\r\n x = this.props.left;\r\n y = this.props.top;\r\n\r\n if (x < 0)\r\n x = 0;\r\n if (x > window.innerWidth - width)\r\n x = window.innerWidth - width;\r\n if (y < 0)\r\n y = 0;\r\n if (y > window.innerHeight - width)\r\n y = window.innerHeight - width;\r\n }\r\n\r\n const divStyle: React.CSSProperties = { left: x, top: y, ...this.props.style };\r\n\r\n return (\r\n <div\r\n ref={(el) => { this._root = el; }}\r\n className={classnames(\"core-radial-menu\", { opened: this.props.opened }, this.props.className)}\r\n style={divStyle}\r\n data-testid=\"core-radial-menu\"\r\n >\r\n <svg\r\n xmlns=\"http://w3.org/2000/svg\" version=\"1.1\"\r\n width={width} height={width}\r\n className={\"core-radial-menu-container\"}>\r\n {React.Children.map(this.props.children, (child, index) => {\r\n // istanbul ignore next\r\n if (!child || typeof child !== \"object\" || !(\"props\" in child))\r\n return child;\r\n\r\n const childElement = (child as React.ReactElement<any>);\r\n return React.cloneElement(childElement, {\r\n key: index,\r\n ref: (el: any) => {\r\n if (this.props.selected === index)\r\n this._selectedButton = el;\r\n },\r\n selected: index === this.props.selected,\r\n labelRotate: childElement.props.labelRotate || this.props.labelRotate,\r\n annularSector: this.state.sectors[index],\r\n });\r\n })}\r\n </svg>\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n this._generateAnnularSectors();\r\n\r\n setTimeout(() => {\r\n window.addEventListener(\"keyup\", this._handleKeyUp);\r\n window.addEventListener(\"mouseup\", this._handleClick);\r\n });\r\n }\r\n\r\n public override componentWillUnmount() {\r\n window.removeEventListener(\"keyup\", this._handleKeyUp);\r\n window.removeEventListener(\"mouseup\", this._handleClick);\r\n }\r\n\r\n public override componentDidUpdate(prevProps: RadialMenuProps) {\r\n if (prevProps.innerRadius !== this.props.innerRadius || prevProps.outerRadius !== this.props.outerRadius) {\r\n this._generateAnnularSectors();\r\n }\r\n }\r\n\r\n private _handleKeyUp = (event: KeyboardEvent) => {\r\n if (event.key === SpecialKey.Escape && this.props.onEsc)\r\n this.props.onEsc(event);\r\n };\r\n\r\n private _handleClick = (event: MouseEvent) => {\r\n if (event.target instanceof HTMLElement && this._root && !event.target.contains(this._root) && this.props.onBlur)\r\n this.props.onBlur(event);\r\n };\r\n\r\n /** Manually call onSelect of highlighted button. */\r\n public select = () => {\r\n // istanbul ignore else\r\n if (this._selectedButton)\r\n this._selectedButton.select();\r\n };\r\n\r\n private _generateAnnularSectors = () => {\r\n const n = React.Children.count(this.props.children);\r\n const angle = 2 * Math.PI / n;\r\n const outer = this.props.outerRadius;\r\n const inner = this.props.innerRadius;\r\n\r\n const offset = - Math.PI / 8;\r\n const annulus = new Annulus(new Point(outer + 1, outer + 1), inner + 1, outer - 1);\r\n const sectors: AnnularSector[] = [];\r\n for (let i = 0; i < n; i++) {\r\n sectors.push(new AnnularSector(annulus, angle * i + offset, angle * (i + 1) + offset));\r\n }\r\n this.setState({ sectors });\r\n };\r\n}\r\n\r\n/** Properties for [[RadialButton]] component\r\n * @public\r\n */\r\nexport interface RadialButtonProps extends CommonProps {\r\n /** Whether label is rotated to radial menu. Default: Inherit */\r\n labelRotate?: boolean;\r\n /** which icon to display in on the menu button */\r\n icon?: IconSpec;\r\n /** @internal */\r\n annularSector?: AnnularSector;\r\n /** listens to any onClick event, or any select event, which can be triggered by the select() method. */\r\n onSelect?: (e: any) => any;\r\n /** Whether item is highlighted */\r\n selected?: boolean;\r\n /** Content */\r\n children?: React.ReactNode;\r\n}\r\n\r\n/** @internal */\r\ninterface RadialButtonState {\r\n hover: boolean;\r\n}\r\n\r\n/**\r\n * Button for use within a [[RadialMenu]]\r\n * @public\r\n */\r\nexport class RadialButton extends React.Component<RadialButtonProps, RadialButtonState> {\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<RadialButtonState> = { hover: this.props.selected || false };\r\n\r\n constructor(props: RadialButtonProps) {\r\n super(props);\r\n }\r\n\r\n public override render(): JSX.Element {\r\n const sector = this.props.annularSector;\r\n let p = new Point();\r\n let size = 0;\r\n let t = \"\";\r\n let path = \"\";\r\n\r\n if (sector) {\r\n size = sector.start.p1.getDistanceTo(sector.end.p2) * 2;\r\n path = sector.path;\r\n\r\n const parent = sector.parent;\r\n const { x: cx, y: cy } = parent.center;\r\n const r = (parent.inner.radius + parent.outer.radius) / 2;\r\n const angle = (sector.startAngle + sector.endAngle) / 2;\r\n p = new Point(cx + r * Math.cos(angle), cy + r * Math.sin(angle));\r\n\r\n if (this.props.labelRotate) {\r\n let a = angle * 180 / Math.PI + 90;\r\n while (a > 180)\r\n a -= 360;\r\n while (a < -180)\r\n /* istanbul ignore next */\r\n a += 360;\r\n if (a > 90)\r\n a -= 180;\r\n if (a < -90)\r\n a += 180;\r\n t = `rotate(${a} ${p.x}, ${p.y})`;\r\n }\r\n }\r\n\r\n return (\r\n <g\r\n onMouseOver={this._handleMouseOver}\r\n onMouseOut={this._handleMouseOut}\r\n onClick={this._handleClick}>\r\n <path\r\n className={classnames(\"core-radial-menu-sector\", { selected: this.state.hover }, this.props.className)}\r\n style={this.props.style}\r\n d={path}>\r\n </path>\r\n <foreignObject transform={t} x={p.x - size / 2} y={p.y - 16} width={size} height={size} className={\"core-radial-menu-button-svg\"}>\r\n <div {...{ xmlns: \"http://www.w3.org/1999/xhtml\" }} className={\"core-radial-menu-button-container\"}>\r\n <div className=\"core-radial-menu-button-icon\">\r\n <Icon iconSpec={this.props.icon} />\r\n </div>\r\n <div className={\"core-radial-menu-button-content\"}>\r\n {this.props.children}\r\n </div>\r\n </div>\r\n </foreignObject>\r\n </g>\r\n );\r\n }\r\n\r\n /** Manually call this.props.onSelect */\r\n public select = () => {\r\n // istanbul ignore else\r\n if (this.props.onSelect)\r\n this.props.onSelect(undefined);\r\n };\r\n\r\n private _handleClick = (event: React.MouseEvent<SVGElement>) => {\r\n // istanbul ignore else\r\n if (this.props.onSelect)\r\n this.props.onSelect(event);\r\n };\r\n\r\n private _handleMouseOver = (_event: React.MouseEvent<SVGElement>) => {\r\n this.setState({ hover: true });\r\n };\r\n\r\n private _handleMouseOut = (_event: React.MouseEvent<SVGElement>) => {\r\n this.setState({ hover: false });\r\n };\r\n}\r\n"]}
@@ -5,7 +5,6 @@
5
5
  @import "../z-index";
6
6
  @import "../style/themecolors";
7
7
  @import "../icons/variables";
8
- @import "~@itwin/itwinui-css/scss/style/typography";
9
8
 
10
9
  .core-radial-menu {
11
10
  visibility: hidden;
@@ -47,7 +46,7 @@
47
46
  .core-radial-menu-button-content {
48
47
  cursor: default;
49
48
  color: $buic-text-color;
50
- font-size: $iui-font-size-small;
49
+ font-size: var(--iui-font-size-0);
51
50
  user-select: none;
52
51
  }
53
52
  }
@@ -5,7 +5,6 @@
5
5
  @import "../style/themecolors";
6
6
  @import "../style/variables";
7
7
  @import "~@itwin/itwinui-css/scss/inputs/input";
8
- @import "~@itwin/itwinui-css/scss/style/space";
9
8
  @import "~@itwin/itwinui-css/scss/style/typography";
10
9
 
11
10
  .core-searchbox {
@@ -16,13 +15,13 @@
16
15
  //default values (height, width, font-size, color)
17
16
  height: $uicore-component-height-normal;
18
17
  width: 12em;
19
- font-size: $iui-font-size;
18
+ font-size: var(--iui-font-size-1);
20
19
  color: $buic-text-color;
21
20
 
22
21
  input {
23
22
  @include iui-input;
24
23
  min-height: $uicore-component-height-normal;
25
- padding: $iui-xxs 2em $iui-xxs 12px; //12px from design guide
24
+ padding: var(--iui-size-3xs) 2em var(--iui-size-3xs) 12px; //12px from design guide
26
25
  height: 100%;
27
26
  margin: 0;
28
27
  color: inherit;
@@ -48,6 +47,5 @@
48
47
  &:focus {
49
48
  outline: none;
50
49
  }
51
-
52
50
  }
53
51
  }
@@ -17,7 +17,7 @@ const appui_abstract_1 = require("@itwin/appui-abstract");
17
17
  const saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {
18
18
  if (dataIsDirty) {
19
19
  // prompt user to save changes passing in function and arguments to call after saving changes.
20
- ModalDialogManager.openDialog(<CustomSavePromptModalDialog customProps={customProps}
20
+ UiFramework.dialogs.modal.openDialog(<CustomSavePromptModalDialog customProps={customProps}
21
21
  onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />);
22
22
  return;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsContainer.js","sourceRoot":"","sources":["../../../../src/core-react/settings/SettingsContainer.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 Settings\r\n */\r\n\r\nimport \"./SettingsContainer.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivateSettingsTabEventArgs, ProcessSettingsContainerCloseEventArgs, ProcessSettingsTabActivationEventArgs, SettingsManager, SettingsTabEntry } from \"./SettingsManager\";\r\nimport { VerticalTabs } from \"../tabs/VerticalTabs\";\r\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\r\n\r\n/* ---------------------------------------------------------------------------------------------------\r\n// A typical implementation of a saveFunction callback\r\nconst saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n if (dataIsDirty) {\r\n // prompt user to save changes passing in function and arguments to call after saving changes.\r\n ModalDialogManager.openDialog(<CustomSavePromptModalDialog customProps={customProps}\r\n onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />);\r\n return;\r\n }\r\n afterSaveFunction(args);\r\n}, []);\r\n---------------------------------------------------------------------------------------------------------- */\r\n\r\n/** Hook to use within Settings Page component to allow saving the current page's data before the Setting Container is closed.\r\n * @public\r\n */\r\nexport function useSaveBeforeClosingSettingsContainer(settingsManager: SettingsManager, saveFunction: (closeFunc: (args: any) => void, closeFuncArgs?: any) => void) {\r\n React.useEffect (()=>{\r\n const handleProcessSettingsContainerClose = ({closeFunc, closeFuncArgs}: ProcessSettingsContainerCloseEventArgs) => {\r\n saveFunction (closeFunc, closeFuncArgs);\r\n };\r\n return settingsManager.onProcessSettingsContainerClose.addListener(handleProcessSettingsContainerClose);\r\n }, [saveFunction, settingsManager]);\r\n}\r\n\r\n/** Hook to use within Settings Page component to allow saving the current page's data before loading to the requested Setting Tab's page.\r\n * @public\r\n */\r\nexport function useSaveBeforeActivatingNewSettingsTab(settingsManager: SettingsManager, saveFunction: (tabSelectionFunc: (args: any) => void, requestedSettingsTabId?: string) => void) {\r\n React.useEffect (()=>{\r\n const handleProcessSettingsTabActivation = ({tabSelectionFunc, requestedSettingsTabId}: ProcessSettingsTabActivationEventArgs) => {\r\n saveFunction (tabSelectionFunc, requestedSettingsTabId);\r\n };\r\n return settingsManager.onProcessSettingsTabActivation.addListener(handleProcessSettingsTabActivation);\r\n }, [saveFunction, settingsManager]);\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SettingsContainerProps {\r\n tabs: SettingsTabEntry[];\r\n // sets tab to set as active tab\r\n currentSettingsTab?: SettingsTabEntry;\r\n // If plugging into a SPA and you need to modify the route, you can pass in additional logic here\r\n onSettingsTabSelected?: (tab: SettingsTabEntry) => void;\r\n // The SettingsManager that can have event handlers registered against it so pages can save its settings before the page is closed.\r\n settingsManager: SettingsManager;\r\n // if true show tab label as header above page contents.\r\n showHeader?: boolean;\r\n}\r\n\r\n/**\r\n * SettingsContainer component that displays Setting Tabs on Left and the P\r\n * Note: that SettingsContainer is not rendered if tabs array is empty\r\n * @public\r\n */\r\nexport const SettingsContainer = ({tabs, onSettingsTabSelected, currentSettingsTab, settingsManager, showHeader}: SettingsContainerProps) => {\r\n // sort the tabs based on itemPriority\r\n tabs = tabs.sort((a, b)=> a.itemPriority - b.itemPriority);\r\n\r\n const [openTab, setOpenTab] = React.useState(()=>{\r\n if (currentSettingsTab && !ConditionalBooleanValue.getValue(currentSettingsTab.isDisabled))\r\n return currentSettingsTab;\r\n else\r\n return tabs[0];\r\n });\r\n\r\n const processTabSelection = React.useCallback((tab: SettingsTabEntry) => {\r\n if (ConditionalBooleanValue.getValue(tab.isDisabled))\r\n return;\r\n onSettingsTabSelected && onSettingsTabSelected(tab);\r\n setOpenTab(tab);\r\n }, [onSettingsTabSelected]);\r\n\r\n const processTabSelectionById = React.useCallback((tabId: string) => {\r\n const tabToActivate = tabs.find((tab)=>tab.tabId === tabId);\r\n tabToActivate && processTabSelection (tabToActivate);\r\n }, [processTabSelection, tabs]);\r\n\r\n const onActivateTab = React.useCallback((tabIndex: number) => {\r\n const selectedTab = tabs[tabIndex];\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsTabActivation.emit({ requestedSettingsTabId:selectedTab.tabId, tabSelectionFunc: processTabSelectionById});\r\n else\r\n processTabSelection(selectedTab);\r\n }, [openTab, processTabSelection, processTabSelectionById, settingsManager, tabs]);\r\n\r\n React.useEffect (()=>{\r\n const handleActivateSettingsTab = ({settingsTabId}: ActivateSettingsTabEventArgs) => {\r\n const idToFind = settingsTabId.toLowerCase();\r\n let tabToActivate = tabs.find((tab)=>tab.tabId.toLowerCase() === idToFind);\r\n if (!tabToActivate)\r\n tabToActivate = tabs.find((tab)=>tab.label.toLowerCase() === idToFind);\r\n // istanbul ignore else\r\n if (tabToActivate) {\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsTabActivation.emit({ requestedSettingsTabId:tabToActivate.tabId, tabSelectionFunc: processTabSelectionById});\r\n else\r\n processTabSelection(tabToActivate);\r\n }\r\n };\r\n\r\n return settingsManager.onActivateSettingsTab.addListener(handleActivateSettingsTab);\r\n }, [openTab, processTabSelection, processTabSelectionById, settingsManager, settingsManager.onActivateSettingsTab, tabs]);\r\n\r\n React.useEffect (()=>{\r\n const handleSettingsContainerClose = ({closeFunc, closeFuncArgs}: ProcessSettingsContainerCloseEventArgs) => {\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsContainerClose.emit({ closeFunc, closeFuncArgs });\r\n else\r\n closeFunc(closeFuncArgs);\r\n };\r\n return settingsManager.onCloseSettingsContainer.addListener(handleSettingsContainerClose);\r\n }, [openTab, processTabSelection, settingsManager, settingsManager.onActivateSettingsTab, tabs]);\r\n\r\n const labels=tabs.map((tab)=> {\r\n return {label:tab.label, subLabel: tab.subLabel, icon: tab.icon,\r\n tooltip: tab.tooltip, tabId: tab.tabId, disabled: ConditionalBooleanValue.getValue(tab.isDisabled)};\r\n });\r\n const activeIndex = tabs.findIndex((tab)=>tab.tabId === openTab.tabId);\r\n return (\r\n <div className=\"core-settings-container\">\r\n <div className=\"core-settings-container-left\">\r\n <VerticalTabs labels={labels} activeIndex={activeIndex} onActivateTab={onActivateTab} />\r\n </div>\r\n <div className=\"core-settings-container-right\">\r\n {showHeader && <div className=\"core-settings-container-right-header\">\r\n <span className=\"core-settings-container-main-header\">{openTab.label}</span>\r\n {openTab.subLabel && <span className=\"core-settings-container-main-sub-header\">{openTab.subLabel}</span>}\r\n </div>}\r\n <div className=\"core-settings-container-right-contents\">\r\n {openTab.page}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"]}
1
+ {"version":3,"file":"SettingsContainer.js","sourceRoot":"","sources":["../../../../src/core-react/settings/SettingsContainer.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 Settings\r\n */\r\n\r\nimport \"./SettingsContainer.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivateSettingsTabEventArgs, ProcessSettingsContainerCloseEventArgs, ProcessSettingsTabActivationEventArgs, SettingsManager, SettingsTabEntry } from \"./SettingsManager\";\r\nimport { VerticalTabs } from \"../tabs/VerticalTabs\";\r\nimport { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\r\n\r\n/* ---------------------------------------------------------------------------------------------------\r\n// A typical implementation of a saveFunction callback\r\nconst saveChanges = React.useCallback((afterSaveFunction: (args: any) => void, args?: any) => {\r\n if (dataIsDirty) {\r\n // prompt user to save changes passing in function and arguments to call after saving changes.\r\n UiFramework.dialogs.modal.openDialog(<CustomSavePromptModalDialog customProps={customProps}\r\n onDialogCloseArgs={args} onDialogClose={afterSaveFunction} />);\r\n return;\r\n }\r\n afterSaveFunction(args);\r\n}, []);\r\n---------------------------------------------------------------------------------------------------------- */\r\n\r\n/** Hook to use within Settings Page component to allow saving the current page's data before the Setting Container is closed.\r\n * @public\r\n */\r\nexport function useSaveBeforeClosingSettingsContainer(settingsManager: SettingsManager, saveFunction: (closeFunc: (args: any) => void, closeFuncArgs?: any) => void) {\r\n React.useEffect (()=>{\r\n const handleProcessSettingsContainerClose = ({closeFunc, closeFuncArgs}: ProcessSettingsContainerCloseEventArgs) => {\r\n saveFunction (closeFunc, closeFuncArgs);\r\n };\r\n return settingsManager.onProcessSettingsContainerClose.addListener(handleProcessSettingsContainerClose);\r\n }, [saveFunction, settingsManager]);\r\n}\r\n\r\n/** Hook to use within Settings Page component to allow saving the current page's data before loading to the requested Setting Tab's page.\r\n * @public\r\n */\r\nexport function useSaveBeforeActivatingNewSettingsTab(settingsManager: SettingsManager, saveFunction: (tabSelectionFunc: (args: any) => void, requestedSettingsTabId?: string) => void) {\r\n React.useEffect (()=>{\r\n const handleProcessSettingsTabActivation = ({tabSelectionFunc, requestedSettingsTabId}: ProcessSettingsTabActivationEventArgs) => {\r\n saveFunction (tabSelectionFunc, requestedSettingsTabId);\r\n };\r\n return settingsManager.onProcessSettingsTabActivation.addListener(handleProcessSettingsTabActivation);\r\n }, [saveFunction, settingsManager]);\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SettingsContainerProps {\r\n tabs: SettingsTabEntry[];\r\n // sets tab to set as active tab\r\n currentSettingsTab?: SettingsTabEntry;\r\n // If plugging into a SPA and you need to modify the route, you can pass in additional logic here\r\n onSettingsTabSelected?: (tab: SettingsTabEntry) => void;\r\n // The SettingsManager that can have event handlers registered against it so pages can save its settings before the page is closed.\r\n settingsManager: SettingsManager;\r\n // if true show tab label as header above page contents.\r\n showHeader?: boolean;\r\n}\r\n\r\n/**\r\n * SettingsContainer component that displays Setting Tabs on Left and the P\r\n * Note: that SettingsContainer is not rendered if tabs array is empty\r\n * @public\r\n */\r\nexport const SettingsContainer = ({tabs, onSettingsTabSelected, currentSettingsTab, settingsManager, showHeader}: SettingsContainerProps) => {\r\n // sort the tabs based on itemPriority\r\n tabs = tabs.sort((a, b)=> a.itemPriority - b.itemPriority);\r\n\r\n const [openTab, setOpenTab] = React.useState(()=>{\r\n if (currentSettingsTab && !ConditionalBooleanValue.getValue(currentSettingsTab.isDisabled))\r\n return currentSettingsTab;\r\n else\r\n return tabs[0];\r\n });\r\n\r\n const processTabSelection = React.useCallback((tab: SettingsTabEntry) => {\r\n if (ConditionalBooleanValue.getValue(tab.isDisabled))\r\n return;\r\n onSettingsTabSelected && onSettingsTabSelected(tab);\r\n setOpenTab(tab);\r\n }, [onSettingsTabSelected]);\r\n\r\n const processTabSelectionById = React.useCallback((tabId: string) => {\r\n const tabToActivate = tabs.find((tab)=>tab.tabId === tabId);\r\n tabToActivate && processTabSelection (tabToActivate);\r\n }, [processTabSelection, tabs]);\r\n\r\n const onActivateTab = React.useCallback((tabIndex: number) => {\r\n const selectedTab = tabs[tabIndex];\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsTabActivation.emit({ requestedSettingsTabId:selectedTab.tabId, tabSelectionFunc: processTabSelectionById});\r\n else\r\n processTabSelection(selectedTab);\r\n }, [openTab, processTabSelection, processTabSelectionById, settingsManager, tabs]);\r\n\r\n React.useEffect (()=>{\r\n const handleActivateSettingsTab = ({settingsTabId}: ActivateSettingsTabEventArgs) => {\r\n const idToFind = settingsTabId.toLowerCase();\r\n let tabToActivate = tabs.find((tab)=>tab.tabId.toLowerCase() === idToFind);\r\n if (!tabToActivate)\r\n tabToActivate = tabs.find((tab)=>tab.label.toLowerCase() === idToFind);\r\n // istanbul ignore else\r\n if (tabToActivate) {\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsTabActivation.emit({ requestedSettingsTabId:tabToActivate.tabId, tabSelectionFunc: processTabSelectionById});\r\n else\r\n processTabSelection(tabToActivate);\r\n }\r\n };\r\n\r\n return settingsManager.onActivateSettingsTab.addListener(handleActivateSettingsTab);\r\n }, [openTab, processTabSelection, processTabSelectionById, settingsManager, settingsManager.onActivateSettingsTab, tabs]);\r\n\r\n React.useEffect (()=>{\r\n const handleSettingsContainerClose = ({closeFunc, closeFuncArgs}: ProcessSettingsContainerCloseEventArgs) => {\r\n if (openTab && openTab.pageWillHandleCloseRequest)\r\n settingsManager.onProcessSettingsContainerClose.emit({ closeFunc, closeFuncArgs });\r\n else\r\n closeFunc(closeFuncArgs);\r\n };\r\n return settingsManager.onCloseSettingsContainer.addListener(handleSettingsContainerClose);\r\n }, [openTab, processTabSelection, settingsManager, settingsManager.onActivateSettingsTab, tabs]);\r\n\r\n const labels=tabs.map((tab)=> {\r\n return {label:tab.label, subLabel: tab.subLabel, icon: tab.icon,\r\n tooltip: tab.tooltip, tabId: tab.tabId, disabled: ConditionalBooleanValue.getValue(tab.isDisabled)};\r\n });\r\n const activeIndex = tabs.findIndex((tab)=>tab.tabId === openTab.tabId);\r\n return (\r\n <div className=\"core-settings-container\">\r\n <div className=\"core-settings-container-left\">\r\n <VerticalTabs labels={labels} activeIndex={activeIndex} onActivateTab={onActivateTab} />\r\n </div>\r\n <div className=\"core-settings-container-right\">\r\n {showHeader && <div className=\"core-settings-container-right-header\">\r\n <span className=\"core-settings-container-main-header\">{openTab.label}</span>\r\n {openTab.subLabel && <span className=\"core-settings-container-main-sub-header\">{openTab.subLabel}</span>}\r\n </div>}\r\n <div className=\"core-settings-container-right-contents\">\r\n {openTab.page}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n"]}
@@ -4,7 +4,6 @@
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
 
6
6
  @import "../style/themecolors";
7
- @import "~@itwin/itwinui-css/scss/style/typography";
8
7
 
9
8
  div.core-settings-container {
10
9
  display: flex;
@@ -12,7 +11,9 @@ div.core-settings-container {
12
11
  height: 100%;
13
12
  width: 100%;
14
13
 
15
- *, *:before, *:after {
14
+ *,
15
+ *:before,
16
+ *:after {
16
17
  box-sizing: inherit;
17
18
  }
18
19
 
@@ -20,7 +21,7 @@ div.core-settings-container {
20
21
  min-width: 15em;
21
22
  height: 100%;
22
23
  overflow: auto;
23
- >.uicore-tabs-vertical {
24
+ > .uicore-tabs-vertical {
24
25
  font-size: 16px;
25
26
  }
26
27
  }
@@ -36,9 +37,9 @@ div.core-settings-container {
36
37
  .core-settings-container-right-header {
37
38
  display: flex;
38
39
  width: 100%;
39
- height: ($iui-font-size-title * 2);
40
- font-size: $iui-font-size-title;
41
- font-weight: $iui-font-weight-semibold;
40
+ height: calc(var(--iui-font-size-4) * 2);
41
+ font-size: var(--iui-font-size-4);
42
+ font-weight: var(--iui-font-weight-semibold);
42
43
  padding-left: 15px;
43
44
  align-items: center;
44
45
 
@@ -62,4 +63,4 @@ div.core-settings-container {
62
63
  overflow: auto;
63
64
  }
64
65
  }
65
- }
66
+ }