@itwin/appui-react 4.6.3 → 4.7.0

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 (417) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +29 -14
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +28 -15
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  8. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +3 -3
  11. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  13. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  15. package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  19. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/Calculator.js +11 -12
  21. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  23. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  24. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  25. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  26. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  27. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  31. package/lib/cjs/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/childwindow/PopoutWidget.js +6 -3
  33. package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  36. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/configurableui/state.js +5 -2
  39. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  40. package/lib/cjs/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  41. package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
  42. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  43. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  44. package/lib/cjs/appui-react/content/IModelViewport.js +2 -0
  45. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +3 -3
  47. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  48. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  49. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  51. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  52. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  53. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +26 -16
  54. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +1 -1
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  58. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +1 -2
  60. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  61. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  62. package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  63. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js +42 -2
  65. package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  66. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts +9 -3
  67. package/lib/cjs/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/messages/AppNotificationManager.js +9 -3
  69. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  70. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -0
  71. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  72. package/lib/cjs/appui-react/messages/MessageManager.js +51 -6
  73. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  74. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  75. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  76. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  77. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  78. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  79. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +8 -8
  80. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  81. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts +1 -1
  82. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  83. package/lib/cjs/appui-react/pickers/ViewSelector.js +2 -3
  84. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  85. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  86. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  87. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  88. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  89. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +7 -6
  90. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  91. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  92. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +2 -2
  93. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  94. package/lib/cjs/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  95. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js +2 -2
  96. package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  97. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  98. package/lib/cjs/appui-react/popup/ToolbarPopup.js +2 -2
  99. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  100. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +47 -0
  101. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  102. package/lib/cjs/appui-react/preview/PreviewFeatures.js +95 -0
  103. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -0
  104. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  105. package/lib/cjs/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/safearea/SafeAreaContext.js +9 -2
  107. package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
  108. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  109. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +10 -10
  110. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  111. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  112. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +9 -6
  114. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  115. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -28
  116. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  117. package/lib/cjs/appui-react/statusbar/StatusBar.js +1 -69
  118. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  119. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -3
  121. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  122. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/statusfields/SectionsField.js +1 -3
  124. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  125. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts +4 -7
  126. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/statusfields/SelectionScope.js +2 -7
  128. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  129. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/statusfields/SnapMode.js +8 -10
  131. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  132. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  134. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  135. package/lib/cjs/appui-react/theme/ThemeManager.d.ts +38 -7
  136. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/theme/ThemeManager.js +52 -11
  138. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  139. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  140. package/lib/cjs/appui-react/toolbar/Toolbar.js +12 -1
  141. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  142. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  143. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  144. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  145. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  146. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -7
  147. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  148. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  149. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  150. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js +12 -4
  151. package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  152. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  153. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +1 -2
  154. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  155. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +1 -2
  157. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  158. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  159. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +2 -3
  160. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  161. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  162. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  163. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +133 -105
  164. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  165. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  166. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  167. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +80 -65
  168. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  169. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  170. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  171. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  172. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  173. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  175. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  176. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -4
  177. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/uistate/AppUiSettings.js +2 -2
  179. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  180. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  181. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  182. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +10 -1
  183. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  184. package/lib/cjs/appui-react/utils/matchesWords.d.ts +22 -0
  185. package/lib/cjs/appui-react/utils/matchesWords.d.ts.map +1 -0
  186. package/lib/cjs/appui-react/utils/matchesWords.js +103 -0
  187. package/lib/cjs/appui-react/utils/matchesWords.js.map +1 -0
  188. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/widget-panels/Frontstage.js +42 -9
  190. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  191. package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -0
  192. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  193. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  194. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +34 -12
  195. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  196. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +2 -7
  198. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  199. package/lib/cjs/appui-react/widgets/Widget.d.ts +23 -1
  200. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  202. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -0
  204. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  205. package/lib/cjs/appui-react.d.ts +1 -0
  206. package/lib/cjs/appui-react.d.ts.map +1 -1
  207. package/lib/cjs/appui-react.js +3 -0
  208. package/lib/cjs/appui-react.js.map +1 -1
  209. package/lib/esm/appui-react/UiFramework.d.ts +29 -14
  210. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  211. package/lib/esm/appui-react/UiFramework.js +29 -16
  212. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  213. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  214. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -7
  215. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  216. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  217. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +3 -3
  218. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  219. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts +8 -0
  220. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.d.ts.map +1 -1
  221. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js +8 -0
  222. package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
  223. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  224. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +3 -4
  225. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  226. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  227. package/lib/esm/appui-react/accudraw/Calculator.js +11 -12
  228. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  229. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts +9 -1
  230. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  231. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +9 -1
  232. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  233. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts +2 -2
  234. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.d.ts.map +1 -1
  235. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +16 -11
  236. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  237. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts +2 -4
  238. package/lib/esm/appui-react/childwindow/PopoutWidget.d.ts.map +1 -1
  239. package/lib/esm/appui-react/childwindow/PopoutWidget.js +6 -3
  240. package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
  241. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  242. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +3 -1
  243. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  244. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  245. package/lib/esm/appui-react/configurableui/state.js +5 -2
  246. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  247. package/lib/esm/appui-react/content/FloatingViewportContent.d.ts.map +1 -1
  248. package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
  249. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  250. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  251. package/lib/esm/appui-react/content/IModelViewport.js +2 -0
  252. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  253. package/lib/esm/appui-react/feedback/ValidationTextbox.js +3 -3
  254. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  255. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts +2 -2
  256. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.d.ts.map +1 -1
  257. package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
  258. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +6 -8
  259. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  260. package/lib/esm/appui-react/frontstage/FrontstageDef.js +27 -17
  261. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  262. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  263. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  264. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  265. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  266. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +1 -2
  267. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  268. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js +2 -2
  269. package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
  270. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.d.ts.map +1 -1
  271. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js +41 -1
  272. package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
  273. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts +9 -3
  274. package/lib/esm/appui-react/messages/AppNotificationManager.d.ts.map +1 -1
  275. package/lib/esm/appui-react/messages/AppNotificationManager.js +9 -3
  276. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  277. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -0
  278. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  279. package/lib/esm/appui-react/messages/MessageManager.js +52 -7
  280. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  281. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  282. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +1 -3
  283. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  284. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +0 -15
  285. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  286. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +9 -9
  287. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  288. package/lib/esm/appui-react/pickers/ViewSelector.d.ts +1 -1
  289. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  290. package/lib/esm/appui-react/pickers/ViewSelector.js +2 -3
  291. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  292. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  293. package/lib/esm/appui-react/popup/CardPopup.js +2 -2
  294. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  295. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  296. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +6 -5
  297. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  298. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  299. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +2 -2
  300. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  301. package/lib/esm/appui-react/popup/ToolSettingsPopup.d.ts.map +1 -1
  302. package/lib/esm/appui-react/popup/ToolSettingsPopup.js +2 -2
  303. package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
  304. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  305. package/lib/esm/appui-react/popup/ToolbarPopup.js +2 -2
  306. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  307. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +47 -0
  308. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -0
  309. package/lib/esm/appui-react/preview/PreviewFeatures.js +90 -0
  310. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -0
  311. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts +9 -2
  312. package/lib/esm/appui-react/safearea/SafeAreaContext.d.ts.map +1 -1
  313. package/lib/esm/appui-react/safearea/SafeAreaContext.js +9 -2
  314. package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
  315. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  316. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +11 -11
  317. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  318. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts +2 -3
  319. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  320. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +9 -6
  321. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  322. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -28
  323. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  324. package/lib/esm/appui-react/statusbar/StatusBar.js +1 -69
  325. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  326. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  327. package/lib/esm/appui-react/statusfields/MessageCenter.js +2 -4
  328. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  329. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  330. package/lib/esm/appui-react/statusfields/SectionsField.js +1 -3
  331. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  332. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts +4 -7
  333. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/esm/appui-react/statusfields/SelectionScope.js +2 -7
  335. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/esm/appui-react/statusfields/SnapMode.js +8 -10
  338. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  340. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +8 -4
  341. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  342. package/lib/esm/appui-react/theme/ThemeManager.d.ts +38 -7
  343. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  344. package/lib/esm/appui-react/theme/ThemeManager.js +51 -10
  345. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  346. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  347. package/lib/esm/appui-react/toolbar/Toolbar.js +11 -0
  348. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  349. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +21 -0
  350. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  351. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  352. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  353. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +8 -8
  354. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  355. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts +10 -1
  356. package/lib/esm/appui-react/tools/FrameworkToolAdmin.d.ts.map +1 -1
  357. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js +12 -4
  358. package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
  359. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  360. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +1 -2
  361. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  362. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  363. package/lib/esm/appui-react/tools/OpenSettingsTool.js +1 -2
  364. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  365. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  366. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +2 -3
  367. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  368. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts +15 -0
  369. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
  370. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +131 -104
  371. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  372. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +10 -4
  373. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  374. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +81 -66
  375. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  376. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +30 -4
  377. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  378. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  379. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +11 -2
  380. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  381. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +9 -1
  382. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  383. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -4
  384. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  385. package/lib/esm/appui-react/uistate/AppUiSettings.js +2 -2
  386. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  387. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts +10 -1
  388. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  389. package/lib/esm/appui-react/uistate/useUiStateStorage.js +10 -1
  390. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  391. package/lib/esm/appui-react/utils/matchesWords.d.ts +22 -0
  392. package/lib/esm/appui-react/utils/matchesWords.d.ts.map +1 -0
  393. package/lib/esm/appui-react/utils/matchesWords.js +99 -0
  394. package/lib/esm/appui-react/utils/matchesWords.js.map +1 -0
  395. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  396. package/lib/esm/appui-react/widget-panels/Frontstage.js +44 -11
  397. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  398. package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -0
  399. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +4 -1
  400. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  401. package/lib/esm/appui-react/widget-panels/ToolSettings.js +32 -11
  402. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  403. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  404. package/lib/esm/appui-react/widgets/BackstageAppButton.js +2 -7
  405. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  406. package/lib/esm/appui-react/widgets/Widget.d.ts +23 -1
  407. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  408. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  409. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  410. package/lib/esm/appui-react/widgets/WidgetDef.js +1 -0
  411. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  412. package/lib/esm/appui-react.d.ts +1 -0
  413. package/lib/esm/appui-react.d.ts.map +1 -1
  414. package/lib/esm/appui-react.js +1 -0
  415. package/lib/esm/appui-react.js.map +1 -1
  416. package/lib/public/locales/en/UiFramework.json +6 -4
  417. package/package.json +13 -11
@@ -2,17 +2,33 @@
2
2
  * @module State
3
3
  */
4
4
  import * as React from "react";
5
+ /** System preferred color theme.
6
+ * @public
7
+ */
8
+ export declare const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
5
9
  /** Enum for the Color Theme string.
6
10
  * @public
7
11
  */
8
12
  export declare enum ColorTheme {
13
+ /** Will use iTwinUI `light` theme. */
9
14
  Light = "light",
10
- Dark = "dark"
15
+ /** Will use iTwinUI `dark` theme. */
16
+ Dark = "dark",
17
+ /** Will use iTwinUI `os` theme. */
18
+ System = "SYSTEM_PREFERRED",
19
+ /** Will use iTwinUI wrapping `ThemeProvider` if provided, or default to 'Light' */
20
+ Inherit = "inherit",
21
+ /** Will use iTwinUI `light` theme with `highContrast` set to `true` */
22
+ HighContrastLight = "high-contrast-light",
23
+ /** Will use iTwinUI `dark` theme with `highContrast` set to `true` */
24
+ HighContrastDark = "high-contrast-dark"
11
25
  }
12
- /** System preferred color theme.
26
+ /**
27
+ * Describe valid themes.
28
+ * See [[ThemeManager]] for more information.
13
29
  * @public
14
30
  */
15
- export declare const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
31
+ export type ThemeId = `${ColorTheme}` | (string & {});
16
32
  /** The default widget opacity.
17
33
  * @public
18
34
  */
@@ -25,7 +41,7 @@ export declare const TOOLBAR_OPACITY_DEFAULT = 0.5;
25
41
  */
26
42
  interface ThemeManagerProps {
27
43
  /** theme ("light", "dark", etc.) */
28
- theme: string;
44
+ theme: ThemeId;
29
45
  widgetOpacity: number;
30
46
  children?: React.ReactNode;
31
47
  toolbarOpacity: number;
@@ -40,9 +56,24 @@ declare class ThemeManagerComponent extends React.Component<ThemeManagerProps> {
40
56
  private _setToolbarOpacity;
41
57
  render(): React.ReactNode;
42
58
  }
43
- /**
44
- * ThemeManager handles setting color themes.
45
- * This React component is Redux connected.
59
+ /** ThemeManager handles setting color themes and element opacity management. Note that this component will
60
+ * affect the entire application by setting the data-theme attribute to the html element.
61
+ * It also sets an iTwinUI `ThemeProvider` element locally, so all elements
62
+ * within the AppUI tree will have the same theme, and should be using iTwinUI 2.x or later.
63
+ * A `ColorTheme` enum values will configure iTwinUI `ThemeProvider` accordingly.
64
+ * Any other string will only apply the `data-theme` attribute to the `html` element
65
+ * and `ThemeProvider` theme will be set to `inherit`, in this case the application is
66
+ * responsible for setting the theme by overriding iTwinUI css variables.
67
+ *
68
+ * This React component is Redux connected and should wrap [[ConfigurableUiContent]].
69
+ *
70
+ * ```tsx
71
+ * <Provider store={UiFramework.store}>
72
+ * <ThemeManager>
73
+ * <ConfigurableUiContent />
74
+ * </ThemeManager>
75
+ * </Provider>
76
+ * ```
46
77
  * @public
47
78
  */
48
79
  export declare const ThemeManager: import("react-redux").ConnectedComponent<typeof ThemeManagerComponent, import("react-redux").Omit<React.ClassAttributes<ThemeManagerComponent> & ThemeManagerProps, "theme" | "widgetOpacity" | "toolbarOpacity">>;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,oBAAY,UAAU;IACpB,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;GACG;AACH,UAAU,iBAAiB;IACzB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IAEd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD;GACG;AACH,cAAM,qBAAsB,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACpD,iBAAiB;IAMjB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAQ/D,OAAO,CAAC,SAAS,CAOf;IAEF,OAAO,CAAC,iBAAiB,CAWvB;IAEF,OAAO,CAAC,kBAAkB,CAWxB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CAgB1C;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,oNAAkD,CAAC"}
1
+ {"version":3,"file":"ThemeManager.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;GAEG;AACH,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAE/D;;GAEG;AACH,oBAAY,UAAU;IACpB,sCAAsC;IACtC,KAAK,UAAU;IACf,qCAAqC;IACrC,IAAI,SAAS;IACb,mCAAmC;IACnC,MAAM,qBAA+B;IACrC,mFAAmF;IACnF,OAAO,YAAY;IACnB,uEAAuE;IACvE,iBAAiB,wBAAwB;IACzC,sEAAsE;IACtE,gBAAgB,uBAAuB;CACxC;AAED;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAqBtD;;GAEG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;GACG;AACH,UAAU,iBAAiB;IACzB,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IAEf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD;GACG;AACH,cAAM,qBAAsB,SAAQ,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;IACpD,iBAAiB;IAMjB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB;IAQ/D,OAAO,CAAC,SAAS,CAOf;IAEF,OAAO,CAAC,iBAAiB,CAWvB;IAEF,OAAO,CAAC,kBAAkB,CAWxB;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;CAe1C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY,oNAAkD,CAAC"}
@@ -9,18 +9,45 @@ import * as React from "react";
9
9
  import { connect } from "react-redux";
10
10
  import { ThemeProvider } from "@itwin/itwinui-react";
11
11
  import { UiFramework } from "../UiFramework";
12
+ /** System preferred color theme.
13
+ * @public
14
+ */
15
+ export const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
12
16
  /** Enum for the Color Theme string.
13
17
  * @public
14
18
  */
15
19
  export var ColorTheme;
16
20
  (function (ColorTheme) {
21
+ /** Will use iTwinUI `light` theme. */
17
22
  ColorTheme["Light"] = "light";
23
+ /** Will use iTwinUI `dark` theme. */
18
24
  ColorTheme["Dark"] = "dark";
25
+ /** Will use iTwinUI `os` theme. */
26
+ ColorTheme["System"] = "SYSTEM_PREFERRED";
27
+ /** Will use iTwinUI wrapping `ThemeProvider` if provided, or default to 'Light' */
28
+ ColorTheme["Inherit"] = "inherit";
29
+ /** Will use iTwinUI `light` theme with `highContrast` set to `true` */
30
+ ColorTheme["HighContrastLight"] = "high-contrast-light";
31
+ /** Will use iTwinUI `dark` theme with `highContrast` set to `true` */
32
+ ColorTheme["HighContrastDark"] = "high-contrast-dark";
19
33
  })(ColorTheme || (ColorTheme = {}));
20
- /** System preferred color theme.
21
- * @public
34
+ /**
35
+ * Map of ColorTheme to ThemeType
22
36
  */
23
- export const SYSTEM_PREFERRED_COLOR_THEME = "SYSTEM_PREFERRED";
37
+ const colorThemeToThemeTypeMap = {
38
+ [ColorTheme.Light]: "light",
39
+ [ColorTheme.HighContrastLight]: "light",
40
+ [ColorTheme.Dark]: "dark",
41
+ [ColorTheme.HighContrastDark]: "dark",
42
+ [ColorTheme.System]: "os",
43
+ };
44
+ /**
45
+ * List of high contrast color themes
46
+ */
47
+ const highContrastColorThemes = [
48
+ ColorTheme.HighContrastDark,
49
+ ColorTheme.HighContrastLight,
50
+ ];
24
51
  /** The default widget opacity.
25
52
  * @public
26
53
  */
@@ -79,15 +106,29 @@ class ThemeManagerComponent extends React.Component {
79
106
  this._setToolbarOpacity(this.props.toolbarOpacity);
80
107
  }
81
108
  render() {
82
- const theme = this.props.theme === SYSTEM_PREFERRED_COLOR_THEME
83
- ? "os"
84
- : this.props.theme;
85
- return (React.createElement(ThemeProvider, { style: { height: "100%" }, theme: theme, "data-root-container": "iui-root-id" }, this.props.children));
109
+ const theme = colorThemeToThemeTypeMap[this.props.theme];
110
+ const highContrast = highContrastColorThemes.includes(this.props.theme);
111
+ return (React.createElement(ThemeProvider, { style: { height: "100%" }, theme: theme ?? "inherit", themeOptions: { highContrast }, "data-root-container": "iui-root-id" }, this.props.children));
86
112
  }
87
113
  }
88
- /**
89
- * ThemeManager handles setting color themes.
90
- * This React component is Redux connected.
114
+ /** ThemeManager handles setting color themes and element opacity management. Note that this component will
115
+ * affect the entire application by setting the data-theme attribute to the html element.
116
+ * It also sets an iTwinUI `ThemeProvider` element locally, so all elements
117
+ * within the AppUI tree will have the same theme, and should be using iTwinUI 2.x or later.
118
+ * A `ColorTheme` enum values will configure iTwinUI `ThemeProvider` accordingly.
119
+ * Any other string will only apply the `data-theme` attribute to the `html` element
120
+ * and `ThemeProvider` theme will be set to `inherit`, in this case the application is
121
+ * responsible for setting the theme by overriding iTwinUI css variables.
122
+ *
123
+ * This React component is Redux connected and should wrap [[ConfigurableUiContent]].
124
+ *
125
+ * ```tsx
126
+ * <Provider store={UiFramework.store}>
127
+ * <ThemeManager>
128
+ * <ConfigurableUiContent />
129
+ * </ThemeManager>
130
+ * </Provider>
131
+ * ```
91
132
  * @public
92
133
  */
93
134
  export const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.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 State\n */\n\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport type { ThemeType } from \"@itwin/itwinui-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\nimport type { FrameworkState } from \"../redux/FrameworkState\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** Enum for the Color Theme string.\n * @public\n */\nexport enum ColorTheme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\n/** System preferred color theme.\n * @public\n */\nexport const SYSTEM_PREFERRED_COLOR_THEME = \"SYSTEM_PREFERRED\";\n\n/** The default widget opacity.\n * @public\n */\nexport const WIDGET_OPACITY_DEFAULT = 0.9;\n\n/** The default widget opacity.\n * @public\n */\nexport const TOOLBAR_OPACITY_DEFAULT = 0.5;\n\n/** Properties of [[ThemeManagerComponent]].\n */\ninterface ThemeManagerProps {\n /** theme (\"light\", \"dark\", etc.) */\n theme: string;\n /* Widget Opacity */\n widgetOpacity: number;\n children?: React.ReactNode;\n toolbarOpacity: number;\n}\n\nfunction mapStateToProps(state: any) {\n const frameworkState = state[UiFramework.frameworkStateKey] as FrameworkState; // since app sets up key, don't hard-code name\n // istanbul ignore if\n if (!frameworkState) return undefined;\n\n return {\n theme: frameworkState.configurableUiState.theme,\n widgetOpacity: frameworkState.configurableUiState.widgetOpacity,\n toolbarOpacity: frameworkState.configurableUiState.toolbarOpacity,\n };\n}\n\n/** ThemeManagerComponent handles setting themes.\n */\nclass ThemeManagerComponent extends React.Component<ThemeManagerProps> {\n public override componentDidMount() {\n this._setTheme(this.props.theme);\n this._setWidgetOpacity(this.props.widgetOpacity);\n this._setToolbarOpacity(this.props.toolbarOpacity);\n }\n\n public override componentDidUpdate(prevProps: ThemeManagerProps) {\n if (this.props.theme !== prevProps.theme) this._setTheme(this.props.theme);\n if (this.props.widgetOpacity !== prevProps.widgetOpacity)\n this._setWidgetOpacity(this.props.widgetOpacity);\n if (this.props.toolbarOpacity !== prevProps.toolbarOpacity)\n this._setToolbarOpacity(this.props.toolbarOpacity);\n }\n\n private _setTheme = (theme: string) => {\n document.documentElement.classList.add(\"theme-transition\");\n document.documentElement.setAttribute(\"data-theme\", theme);\n window.setTimeout(\n () => document.documentElement.classList.remove(\"theme-transition\"),\n 1000\n );\n };\n\n private _setWidgetOpacity = (opacity: number) => {\n const currentWidgetOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\n if (currentWidgetOpacity !== opacity.toString()) {\n setTimeout(() =>\n document.documentElement.style.setProperty(\n \"--buic-widget-opacity\",\n opacity.toString()\n )\n );\n }\n };\n\n private _setToolbarOpacity = (opacity: number) => {\n const currentToolbarOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-toolbar-opacity\");\n if (currentToolbarOpacity !== opacity.toString()) {\n setTimeout(() => {\n document.documentElement.style.setProperty(\n \"--buic-toolbar-opacity\",\n opacity.toString()\n );\n });\n }\n };\n\n public override render(): React.ReactNode {\n const theme: ThemeType =\n this.props.theme === SYSTEM_PREFERRED_COLOR_THEME\n ? \"os\"\n : (this.props.theme as ThemeType);\n\n return (\n <ThemeProvider\n style={{ height: \"100%\" }}\n theme={theme}\n data-root-container={\"iui-root-id\"}\n >\n {this.props.children}\n </ThemeProvider>\n );\n }\n}\n\n/**\n * ThemeManager handles setting color themes.\n * This React component is Redux connected.\n * @public\n */\nexport const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent);\n"]}
1
+ {"version":3,"file":"ThemeManager.js","sourceRoot":"","sources":["../../../../src/appui-react/theme/ThemeManager.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 State\n */\n\nimport * as React from \"react\";\nimport { connect } from \"react-redux\";\nimport type { ThemeType } from \"@itwin/itwinui-react\";\nimport { ThemeProvider } from \"@itwin/itwinui-react\";\nimport type { FrameworkState } from \"../redux/FrameworkState\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** System preferred color theme.\n * @public\n */\nexport const SYSTEM_PREFERRED_COLOR_THEME = \"SYSTEM_PREFERRED\";\n\n/** Enum for the Color Theme string.\n * @public\n */\nexport enum ColorTheme {\n /** Will use iTwinUI `light` theme. */\n Light = \"light\",\n /** Will use iTwinUI `dark` theme. */\n Dark = \"dark\",\n /** Will use iTwinUI `os` theme. */\n System = SYSTEM_PREFERRED_COLOR_THEME,\n /** Will use iTwinUI wrapping `ThemeProvider` if provided, or default to 'Light' */\n Inherit = \"inherit\",\n /** Will use iTwinUI `light` theme with `highContrast` set to `true` */\n HighContrastLight = \"high-contrast-light\",\n /** Will use iTwinUI `dark` theme with `highContrast` set to `true` */\n HighContrastDark = \"high-contrast-dark\",\n}\n\n/**\n * Describe valid themes.\n * See [[ThemeManager]] for more information.\n * @public\n */\nexport type ThemeId = `${ColorTheme}` | (string & {});\n\n/**\n * Map of ColorTheme to ThemeType\n */\nconst colorThemeToThemeTypeMap: { [x: string]: ThemeType } = {\n [ColorTheme.Light]: \"light\",\n [ColorTheme.HighContrastLight]: \"light\",\n [ColorTheme.Dark]: \"dark\",\n [ColorTheme.HighContrastDark]: \"dark\",\n [ColorTheme.System]: \"os\",\n};\n\n/**\n * List of high contrast color themes\n */\nconst highContrastColorThemes: string[] = [\n ColorTheme.HighContrastDark,\n ColorTheme.HighContrastLight,\n];\n\n/** The default widget opacity.\n * @public\n */\nexport const WIDGET_OPACITY_DEFAULT = 0.9;\n\n/** The default widget opacity.\n * @public\n */\nexport const TOOLBAR_OPACITY_DEFAULT = 0.5;\n\n/** Properties of [[ThemeManagerComponent]].\n */\ninterface ThemeManagerProps {\n /** theme (\"light\", \"dark\", etc.) */\n theme: ThemeId;\n /* Widget Opacity */\n widgetOpacity: number;\n children?: React.ReactNode;\n toolbarOpacity: number;\n}\n\nfunction mapStateToProps(state: any) {\n const frameworkState = state[UiFramework.frameworkStateKey] as FrameworkState; // since app sets up key, don't hard-code name\n // istanbul ignore if\n if (!frameworkState) return undefined;\n\n return {\n theme: frameworkState.configurableUiState.theme,\n widgetOpacity: frameworkState.configurableUiState.widgetOpacity,\n toolbarOpacity: frameworkState.configurableUiState.toolbarOpacity,\n };\n}\n\n/** ThemeManagerComponent handles setting themes.\n */\nclass ThemeManagerComponent extends React.Component<ThemeManagerProps> {\n public override componentDidMount() {\n this._setTheme(this.props.theme);\n this._setWidgetOpacity(this.props.widgetOpacity);\n this._setToolbarOpacity(this.props.toolbarOpacity);\n }\n\n public override componentDidUpdate(prevProps: ThemeManagerProps) {\n if (this.props.theme !== prevProps.theme) this._setTheme(this.props.theme);\n if (this.props.widgetOpacity !== prevProps.widgetOpacity)\n this._setWidgetOpacity(this.props.widgetOpacity);\n if (this.props.toolbarOpacity !== prevProps.toolbarOpacity)\n this._setToolbarOpacity(this.props.toolbarOpacity);\n }\n\n private _setTheme = (theme: string) => {\n document.documentElement.classList.add(\"theme-transition\");\n document.documentElement.setAttribute(\"data-theme\", theme);\n window.setTimeout(\n () => document.documentElement.classList.remove(\"theme-transition\"),\n 1000\n );\n };\n\n private _setWidgetOpacity = (opacity: number) => {\n const currentWidgetOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-widget-opacity\");\n if (currentWidgetOpacity !== opacity.toString()) {\n setTimeout(() =>\n document.documentElement.style.setProperty(\n \"--buic-widget-opacity\",\n opacity.toString()\n )\n );\n }\n };\n\n private _setToolbarOpacity = (opacity: number) => {\n const currentToolbarOpacity =\n document.documentElement.style.getPropertyValue(\"--buic-toolbar-opacity\");\n if (currentToolbarOpacity !== opacity.toString()) {\n setTimeout(() => {\n document.documentElement.style.setProperty(\n \"--buic-toolbar-opacity\",\n opacity.toString()\n );\n });\n }\n };\n\n public override render(): React.ReactNode {\n const theme = colorThemeToThemeTypeMap[this.props.theme];\n const highContrast = highContrastColorThemes.includes(this.props.theme);\n\n return (\n <ThemeProvider\n style={{ height: \"100%\" }}\n theme={theme ?? \"inherit\"}\n themeOptions={{ highContrast }}\n data-root-container={\"iui-root-id\"}\n >\n {this.props.children}\n </ThemeProvider>\n );\n }\n}\n\n/** ThemeManager handles setting color themes and element opacity management. Note that this component will\n * affect the entire application by setting the data-theme attribute to the html element.\n * It also sets an iTwinUI `ThemeProvider` element locally, so all elements\n * within the AppUI tree will have the same theme, and should be using iTwinUI 2.x or later.\n * A `ColorTheme` enum values will configure iTwinUI `ThemeProvider` accordingly.\n * Any other string will only apply the `data-theme` attribute to the `html` element\n * and `ThemeProvider` theme will be set to `inherit`, in this case the application is\n * responsible for setting the theme by overriding iTwinUI css variables.\n *\n * This React component is Redux connected and should wrap [[ConfigurableUiContent]].\n *\n * ```tsx\n * <Provider store={UiFramework.store}>\n * <ThemeManager>\n * <ConfigurableUiContent />\n * </ThemeManager>\n * </Provider>\n * ```\n * @public\n */\nexport const ThemeManager = connect(mapStateToProps)(ThemeManagerComponent);\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIjD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,mIAAmI;IACnI,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE,2OAA2O;IAC3O,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gHAAgH;IAChH,cAAc,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAClD,uGAAuG;IACvG,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sDAAsD;IACtD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,eAY1C"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,mIAAmI;IACnI,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,eAAe;IAChE,2OAA2O;IAC3O,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gHAAgH;IAChH,cAAc,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IAClD,uGAAuG;IACvG,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,8FAA8F;IAC9F,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,sDAAsD;IACtD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,eAM1C"}
@@ -9,10 +9,21 @@ import * as React from "react";
9
9
  import { InternalToolbarComponent as CR_Toolbar } from "@itwin/components-react";
10
10
  import { toUIAToolbarItem } from "./toUIAToolbarItem";
11
11
  import { SyncUiEventDispatcher } from "../syncui/SyncUiEventDispatcher";
12
+ import { usePreviewFeatures } from "../preview/PreviewFeatures";
12
13
  /** Component that displays toolbar items.
13
14
  * @beta
14
15
  */
15
16
  export function Toolbar(props) {
17
+ const previewFeatures = usePreviewFeatures();
18
+ if (previewFeatures.newToolbars) {
19
+ return React.createElement(NewToolbar, { ...props });
20
+ }
21
+ return React.createElement(OriginalToolbar, { ...props });
22
+ }
23
+ function NewToolbar(_props) {
24
+ return React.createElement(React.Fragment, null, "WIP");
25
+ }
26
+ function OriginalToolbar(props) {
16
27
  const { items, ...other } = props;
17
28
  const uiaItems = React.useMemo(() => {
18
29
  return items.map((item) => toUIAToolbarItem(item));
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,wBAAwB,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAiCxE;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CACL,oBAAC,UAAU,CAAC,8CAA8C;QACxD,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,qBAAqB,CAAC,aAAa,KAC5C,KAAK,GACT,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport type {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { InternalToolbarComponent as CR_Toolbar } from \"@itwin/components-react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport { toUIAToolbarItem } from \"./toUIAToolbarItem\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\n\n/**\n * Properties of [[Toolbar.enableOverflow]] component.\n * @beta\n */\nexport interface OverflowToolbarOptions {\n /** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n}\n\n/** Properties of [[Toolbar]] component.\n * @beta\n */\nexport interface ToolbarProps extends CommonProps, NoChildrenProps {\n /** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */\n enableOverflow?: boolean | OverflowToolbarOptions;\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: ToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport function Toolbar(props: ToolbarProps) {\n const { items, ...other } = props;\n const uiaItems = React.useMemo(() => {\n return items.map((item) => toUIAToolbarItem(item));\n }, [items]);\n return (\n <CR_Toolbar // eslint-disable-line deprecation/deprecation\n items={uiaItems}\n syncUiEvent={SyncUiEventDispatcher.onSyncUiEvent}\n {...other}\n />\n );\n}\n"]}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,wBAAwB,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAiChE;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAC7C,IAAI,eAAe,CAAC,WAAW,EAAE;QAC/B,OAAO,oBAAC,UAAU,OAAK,KAAK,GAAI,CAAC;KAClC;IACD,OAAO,oBAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB;IACtC,OAAO,gDAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB;IAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACZ,OAAO,CACL,oBAAC,UAAU,CAAC,8CAA8C;QACxD,KAAK,EAAE,QAAQ,EACf,WAAW,EAAE,qBAAqB,CAAC,aAAa,KAC5C,KAAK,GACT,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport * as React from \"react\";\nimport type { OnItemExecutedFunc } from \"@itwin/appui-abstract\";\nimport type { CommonProps, NoChildrenProps } from \"@itwin/core-react\";\nimport type {\n Direction,\n ToolbarOpacitySetting,\n ToolbarPanelAlignment,\n} from \"@itwin/components-react\";\nimport { InternalToolbarComponent as CR_Toolbar } from \"@itwin/components-react\";\nimport type { ToolbarItem } from \"./ToolbarItem\";\nimport { toUIAToolbarItem } from \"./toUIAToolbarItem\";\nimport { SyncUiEventDispatcher } from \"../syncui/SyncUiEventDispatcher\";\nimport { usePreviewFeatures } from \"../preview/PreviewFeatures\";\n\n/**\n * Properties of [[Toolbar.enableOverflow]] component.\n * @beta\n */\nexport interface OverflowToolbarOptions {\n /** Describes to which direction the overflow popup panels are expanded if overflow is enabled. Defaults to: [[Direction.Right]] */\n overflowExpandsTo?: Direction;\n}\n\n/** Properties of [[Toolbar]] component.\n * @beta\n */\nexport interface ToolbarProps extends CommonProps, NoChildrenProps {\n /** Describes to which direction the popup panels are expanded, also defines the orientation of the toolbar (Top/Bottom will create an horizontal toolbar, Left/Right will create a vertical toolbar). Defaults to: [[Direction.Bottom]] */\n expandsTo?: Direction;\n /** Describes if items that do not fit available space should move to an expandable panel. Defaults to: false */\n enableOverflow?: boolean | OverflowToolbarOptions;\n /** Definitions for items of the toolbar. Items are expected to be already sorted by group and item. */\n items: ToolbarItem[];\n /** Describes how expanded panels are aligned. Defaults to: [[ToolbarPanelAlignment.Start]] */\n panelAlignment?: ToolbarPanelAlignment;\n /** Use Drag Interaction to open popups with nest action buttons */\n useDragInteraction?: boolean;\n /** Determines whether to use mouse proximity to alter the opacity of the toolbar */\n toolbarOpacitySetting?: ToolbarOpacitySetting;\n /** Optional function to call on any item execution */\n onItemExecuted?: OnItemExecutedFunc;\n /** Optional function to call on any KeyDown events processed by toolbar */\n onKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\n/** Component that displays toolbar items.\n * @beta\n */\nexport function Toolbar(props: ToolbarProps) {\n const previewFeatures = usePreviewFeatures();\n if (previewFeatures.newToolbars) {\n return <NewToolbar {...props} />;\n }\n return <OriginalToolbar {...props} />;\n}\n\nfunction NewToolbar(_props: ToolbarProps) {\n return <>WIP</>;\n}\n\nfunction OriginalToolbar(props: ToolbarProps) {\n const { items, ...other } = props;\n const uiaItems = React.useMemo(() => {\n return items.map((item) => toUIAToolbarItem(item));\n }, [items]);\n return (\n <CR_Toolbar // eslint-disable-line deprecation/deprecation\n items={uiaItems}\n syncUiEvent={SyncUiEventDispatcher.onSyncUiEvent}\n {...other}\n />\n );\n}\n"]}
@@ -45,6 +45,11 @@ export interface CommonToolbarItem {
45
45
  readonly groupPriority?: number;
46
46
  /** Priority within a toolbar or group. */
47
47
  readonly itemPriority: number;
48
+ /** Describes layout specific configuration of a toolbar item.
49
+ * @note Only used by `get*` methods of [[UiItemsProvider]].
50
+ * @alpha
51
+ */
52
+ readonly layouts?: ToolbarItemLayouts;
48
53
  }
49
54
  /** Describes the data needed to insert an action button into a toolbar.
50
55
  * @public
@@ -101,4 +106,20 @@ export declare function isToolbarGroupItem(item: ToolbarItem): item is ToolbarGr
101
106
  * @public
102
107
  */
103
108
  export declare function isToolbarCustomItem(item: ToolbarItem): item is ToolbarCustomItem;
109
+ /** Describes toolbar item configuration specific for each layout.
110
+ * @alpha
111
+ */
112
+ export interface ToolbarItemLayouts {
113
+ /** Toolbar item configuration in a standard layout. */
114
+ readonly standard?: StandardLayoutToolbarItem;
115
+ }
116
+ /** Describes toolbar item configuration specific to a standard layout.
117
+ * @alpha
118
+ */
119
+ export interface StandardLayoutToolbarItem {
120
+ /** Describes toolbar usage. */
121
+ readonly usage: ToolbarUsage;
122
+ /** Describes toolbar orientation. */
123
+ readonly orientation: ToolbarOrientation;
124
+ }
104
125
  //# sourceMappingURL=ToolbarItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,oBAAY,YAAY;IACtB,yGAAyG;IACzG,mBAAmB,IAAI;IACvB,8EAA8E;IAC9E,cAAc,IAAI;CACnB;AAED;;GAEG;AACH,oBAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,UAAU,IAAI;IACd,wBAAwB;IACxB,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iIAAiI;IACjI,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACvD,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACtD,+FAA+F;IAC/F,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IACxD;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,sHAAsH;IACtH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,qHAAqH;IACrH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,sBAAsB,CAAC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACtD,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IACpE,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,qHAAqH;IACrH,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACzB,yFAAyF;IACzF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAAC;IACjD,oDAAoD;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,gBAAgB,CAE1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAChB,IAAI,IAAI,iBAAiB,CAE3B"}
1
+ {"version":3,"file":"ToolbarItem.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AASH;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yGAAyG;IACzG,6EAAuB,CAAA;IACvB,8EAA8E;IAC9E,mEAAkB,CAAA;AACpB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,uEAAc,CAAA;IACd,wBAAwB;IACxB,mEAAY,CAAA;AACd,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AA6ED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAiB;IAEjB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Used to specify the usage of the toolbar which determine the toolbar position.\n * @public\n */\nexport enum ToolbarUsage {\n /** Contains tools to Create Update and Delete content - in AppUI this is in top left of content area. */\n ContentManipulation = 0,\n /** Manipulate view/camera - in AppUI this is in top right of content area. */\n ViewNavigation = 1,\n}\n\n/** Used to specify the orientation of the toolbar.\n * @public\n */\nexport enum ToolbarOrientation {\n /** Horizontal toolbar. */\n Horizontal = 0,\n /** Vertical toolbar. */\n Vertical = 1,\n}\n\n/** Describes the data needed to insert a UI items into an existing set of UI items.\n * @public\n */\nexport interface CommonToolbarItem {\n /** Require uniqueId for the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Optional description */\n readonly description?: string | ConditionalStringValue;\n /** Defines if the item is active (shown with an active stripe/bar). */\n readonly isActive?: boolean;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Specifies the item's grouping value. Items are sorted by group and then item priority. When\n * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This\n * allows extensions enough gaps to insert their own groups. If the value is not specified a groupPriority of 0 is used.\n */\n readonly groupPriority?: number;\n /** Priority within a toolbar or group. */\n readonly itemPriority: number;\n}\n\n/** Describes the data needed to insert an action button into a toolbar.\n * @public\n */\nexport interface ToolbarActionItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on a button or an item label in a group. */\n readonly label: string | ConditionalStringValue;\n /** function to run when the button is pressed. */\n readonly execute: () => void;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a group button into a toolbar.\n * @public\n */\nexport interface ToolbarGroupItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label: string | ConditionalStringValue;\n /** label shown as the title in at top of group panel. */\n readonly panelLabel?: string | ConditionalStringValue;\n /** children of the group */\n readonly items: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a custom button into a toolbar.\n * @public\n */\nexport interface ToolbarCustomItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon?: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label?: string | ConditionalStringValue;\n /** defines the content to display in popup panel */\n readonly panelContent?: React.ReactNode;\n}\n\n/** Any Button Type that can be inserted into a toolbar.\n * @public\n */\nexport type ToolbarItem =\n | ToolbarActionItem\n | ToolbarGroupItem\n | ToolbarCustomItem;\n\n/** ToolbarActionItem type guard.\n * @public\n */\nexport function isToolbarActionItem(\n item: ToolbarItem\n): item is ToolbarActionItem {\n return \"execute\" in item;\n}\n\n/** ToolbarGroupItem type guard.\n * @public\n */\nexport function isToolbarGroupItem(\n item: ToolbarItem\n): item is ToolbarGroupItem {\n return \"items\" in item;\n}\n\n/** ToolbarCustomItem type guard.\n * @public\n */\nexport function isToolbarCustomItem(\n item: ToolbarItem\n): item is ToolbarCustomItem {\n return !isToolbarActionItem(item) && !isToolbarGroupItem(item);\n}\n"]}
1
+ {"version":3,"file":"ToolbarItem.js","sourceRoot":"","sources":["../../../../src/appui-react/toolbar/ToolbarItem.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AASH;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yGAAyG;IACzG,6EAAuB,CAAA;IACvB,8EAA8E;IAC9E,mEAAkB,CAAA;AACpB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,0BAA0B;IAC1B,uEAAc,CAAA;IACd,wBAAwB;IACxB,mEAAY,CAAA;AACd,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B;AAkFD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,SAAS,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAiB;IAEjB,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAiB;IAEjB,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Toolbar\n */\n\nimport type {\n BadgeType,\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport type { IconSpec } from \"@itwin/core-react\";\n\n/** Used to specify the usage of the toolbar which determine the toolbar position.\n * @public\n */\nexport enum ToolbarUsage {\n /** Contains tools to Create Update and Delete content - in AppUI this is in top left of content area. */\n ContentManipulation = 0,\n /** Manipulate view/camera - in AppUI this is in top right of content area. */\n ViewNavigation = 1,\n}\n\n/** Used to specify the orientation of the toolbar.\n * @public\n */\nexport enum ToolbarOrientation {\n /** Horizontal toolbar. */\n Horizontal = 0,\n /** Vertical toolbar. */\n Vertical = 1,\n}\n\n/** Describes the data needed to insert a UI items into an existing set of UI items.\n * @public\n */\nexport interface CommonToolbarItem {\n /** Require uniqueId for the item. To ensure uniqueness it is suggested that a namespace prefix of the extension name be used. */\n readonly id: string;\n /** Describes badge. Renders no badge if not specified. */\n readonly badge?: BadgeType;\n /** Optional description */\n readonly description?: string | ConditionalStringValue;\n /** Defines if the item is active (shown with an active stripe/bar). */\n readonly isActive?: boolean;\n /** Describes if the item is visible or hidden. The default is for the item to be visible. */\n readonly isHidden?: boolean | ConditionalBooleanValue;\n /** Describes if the item is enabled or disabled. The default is for the item to be enabled. */\n readonly isDisabled?: boolean | ConditionalBooleanValue;\n /** Specifies the item's grouping value. Items are sorted by group and then item priority. When\n * group priority changes a separator is inserted. It is recommended using values 10 through 100, incrementing by 10. This\n * allows extensions enough gaps to insert their own groups. If the value is not specified a groupPriority of 0 is used.\n */\n readonly groupPriority?: number;\n /** Priority within a toolbar or group. */\n readonly itemPriority: number;\n /** Describes layout specific configuration of a toolbar item.\n * @note Only used by `get*` methods of [[UiItemsProvider]].\n * @alpha\n */\n readonly layouts?: ToolbarItemLayouts;\n}\n\n/** Describes the data needed to insert an action button into a toolbar.\n * @public\n */\nexport interface ToolbarActionItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on a button or an item label in a group. */\n readonly label: string | ConditionalStringValue;\n /** function to run when the button is pressed. */\n readonly execute: () => void;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a group button into a toolbar.\n * @public\n */\nexport interface ToolbarGroupItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label: string | ConditionalStringValue;\n /** label shown as the title in at top of group panel. */\n readonly panelLabel?: string | ConditionalStringValue;\n /** children of the group */\n readonly items: ReadonlyArray<ToolbarActionItem | ToolbarGroupItem>;\n /** Optional parent tool group to add the tool to. */\n readonly parentGroupItemId?: string;\n}\n\n/** Describes the data needed to insert a custom button into a toolbar.\n * @public\n */\nexport interface ToolbarCustomItem extends CommonToolbarItem {\n /** Name of icon WebFont entry or if specifying an imported SVG symbol use \"webSvg:\" prefix to imported symbol Id. */\n readonly icon?: IconSpec;\n /** label, shown as tool tip on group button or a group button label in a group panel. */\n readonly label?: string | ConditionalStringValue;\n /** defines the content to display in popup panel */\n readonly panelContent?: React.ReactNode;\n}\n\n/** Any Button Type that can be inserted into a toolbar.\n * @public\n */\nexport type ToolbarItem =\n | ToolbarActionItem\n | ToolbarGroupItem\n | ToolbarCustomItem;\n\n/** ToolbarActionItem type guard.\n * @public\n */\nexport function isToolbarActionItem(\n item: ToolbarItem\n): item is ToolbarActionItem {\n return \"execute\" in item;\n}\n\n/** ToolbarGroupItem type guard.\n * @public\n */\nexport function isToolbarGroupItem(\n item: ToolbarItem\n): item is ToolbarGroupItem {\n return \"items\" in item;\n}\n\n/** ToolbarCustomItem type guard.\n * @public\n */\nexport function isToolbarCustomItem(\n item: ToolbarItem\n): item is ToolbarCustomItem {\n return !isToolbarActionItem(item) && !isToolbarGroupItem(item);\n}\n\n/** Describes toolbar item configuration specific for each layout.\n * @alpha\n */\nexport interface ToolbarItemLayouts {\n /** Toolbar item configuration in a standard layout. */\n readonly standard?: StandardLayoutToolbarItem;\n}\n\n/** Describes toolbar item configuration specific to a standard layout.\n * @alpha\n */\nexport interface StandardLayoutToolbarItem {\n /** Describes toolbar usage. */\n readonly usage: ToolbarUsage;\n /** Describes toolbar orientation. */\n readonly orientation: ToolbarOrientation;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CoreToolDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.tsx"],"names":[],"mappings":"AAIA;;GAEG;AA+BH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWpD;;GAEG;AAEH,qBAAa,SAAS;IACpB,WAAkB,yBAAyB,gBAS1C;IAED,WAAkB,cAAc,gBAa/B;IAED,WAAkB,iBAAiB,gBAYlC;IAED,WAAkB,eAAe,gBAYhC;IAED,WAAkB,cAAc,gBAY/B;IAED,WAAkB,iBAAiB,gBAsBlC;IAED,WAAkB,eAAe,gBAqBhC;IAED,WAAkB,oBAAoB,gBAQrC;IAED,WAAkB,mBAAmB,gBAQpC;IAED,WAAkB,uBAAuB,gBA0DxC;IAED,WAAkB,cAAc,gBAY/B;IAID,WAAkB,eAAe,gBAuBhC;IAED,WAAkB,eAAe,gBAuBhC;IAED,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B,WAAkB,4BAA4B,gBAc7C;IAGD,WAAkB,8BAA8B,gBAc/C;IAGD,WAAkB,4BAA4B,gBAc7C;IAGD,WAAkB,4BAA4B,gBAc7C;IAED,WAAkB,gBAAgB,iBA2BjC;IAED,WAAkB,yBAAyB,iBAwC1C;IAGD,WAAkB,0BAA0B,gBAU3C;IAGD,WAAkB,0BAA0B,gBAU3C;IAED,WAAkB,gBAAgB,iBAWjC;IAED,WAAkB,qBAAqB,mBAgBtC;IAED,WAAkB,qCAAqC,gBAUtD;CACF"}
1
+ {"version":3,"file":"CoreToolDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.tsx"],"names":[],"mappings":"AAIA;;GAEG;AA8BH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAWpD;;GAEG;AAEH,qBAAa,SAAS;IACpB,WAAkB,yBAAyB,gBAS1C;IAED,WAAkB,cAAc,gBAa/B;IAED,WAAkB,iBAAiB,gBAYlC;IAED,WAAkB,eAAe,gBAYhC;IAED,WAAkB,cAAc,gBAY/B;IAED,WAAkB,iBAAiB,gBAqBlC;IAED,WAAkB,eAAe,gBAqBhC;IAED,WAAkB,oBAAoB,gBAQrC;IAED,WAAkB,mBAAmB,gBAQpC;IAED,WAAkB,uBAAuB,gBAsDxC;IAED,WAAkB,cAAc,gBAY/B;IAID,WAAkB,eAAe,gBAuBhC;IAED,WAAkB,eAAe,gBAuBhC;IAED,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAS/B,WAAkB,4BAA4B,gBAc7C;IAGD,WAAkB,8BAA8B,gBAc/C;IAGD,WAAkB,4BAA4B,gBAc7C;IAGD,WAAkB,4BAA4B,gBAc7C;IAED,WAAkB,gBAAgB,iBA2BjC;IAED,WAAkB,yBAAyB,iBAwC1C;IAGD,WAAkB,0BAA0B,gBAU3C;IAGD,WAAkB,0BAA0B,gBAU3C;IAED,WAAkB,gBAAgB,iBAWjC;IAED,WAAkB,qBAAqB,mBAgBtC;IAED,WAAkB,qCAAqC,gBAUtD;CACF"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import * as React from "react"; // cSpell:ignore keyinbrowser
9
9
  import { FitViewTool, FlyViewTool, IModelApp, MeasureDistanceTool, MeasureLocationTool, PanViewTool, RotateViewTool, SelectionTool, SetupWalkCameraTool, ViewClipByElementTool, ViewClipByPlaneTool, ViewClipByRangeTool, ViewClipByShapeTool, ViewClipDecorationProvider, ViewRedoTool, ViewToggleCameraTool, ViewUndoTool, WalkViewTool, WindowAreaTool, ZoomViewTool, } from "@itwin/core-frontend";
10
- import { ConditionalBooleanValue, ConditionalStringValue, IconSpecUtilities, } from "@itwin/appui-abstract";
10
+ import { ConditionalBooleanValue, ConditionalStringValue, } from "@itwin/appui-abstract";
11
11
  import { getIsHiddenIfSelectionNotActive } from "../selection/SelectionContextItemDef";
12
12
  import { CommandItemDef } from "../shared/CommandItemDef";
13
13
  import { ToolItemDef } from "../shared/ToolItemDef";
@@ -79,8 +79,8 @@ export class CoreTools {
79
79
  iconSpec: new ConditionalStringValue(() => {
80
80
  const activeContentControl = UiFramework.content.getActiveContentControl();
81
81
  if (activeContentControl?.viewport?.view.is2d())
82
- return IconSpecUtilities.createWebComponentIconSpec(svgRotateLeft);
83
- return IconSpecUtilities.createWebComponentIconSpec(svgGyroscope);
82
+ return svgRotateLeft;
83
+ return svgGyroscope;
84
84
  }, [
85
85
  SyncUiEventId.ActiveContentChanged,
86
86
  SyncUiEventId.ActiveViewportChanged,
@@ -133,9 +133,9 @@ export class CoreTools {
133
133
  const activeContentControl = UiFramework.content.getActiveContentControl();
134
134
  if (activeContentControl?.viewport?.view.is3d() &&
135
135
  activeContentControl?.viewport?.isCameraOn) {
136
- return IconSpecUtilities.createWebComponentIconSpec(cameraAnimationIcon);
136
+ return cameraAnimationIcon;
137
137
  }
138
- return IconSpecUtilities.createWebComponentIconSpec(cameraAnimationDisabledIcon);
138
+ return cameraAnimationDisabledIcon;
139
139
  }, [
140
140
  SyncUiEventId.ActiveContentChanged,
141
141
  SyncUiEventId.ActiveViewportChanged,
@@ -282,7 +282,7 @@ export class CoreTools {
282
282
  return new GroupItemDef({
283
283
  groupId: "sectionTools-group",
284
284
  labelKey: "UiFramework:tools.sectionTools",
285
- iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),
285
+ iconSpec: svgSectionTool,
286
286
  isHidden: new ConditionalBooleanValue(() => {
287
287
  const activeContentControl = UiFramework.content.getActiveContentControl();
288
288
  return !!activeContentControl?.viewport?.view.is2d();
@@ -309,7 +309,7 @@ export class CoreTools {
309
309
  groupId: "sectionTools-group-with-panel",
310
310
  labelKey: "UiFramework:tools.sectionTools",
311
311
  panelLabelKey: "UiFramework:tools.sectionPanelLabel",
312
- iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),
312
+ iconSpec: svgSectionTool,
313
313
  isHidden: new ConditionalBooleanValue(() => {
314
314
  const activeContentControl = UiFramework.content.getActiveContentControl();
315
315
  return !!activeContentControl?.viewport?.view.is2d();
@@ -377,7 +377,7 @@ export class CoreTools {
377
377
  static get clearSelectionItemDef() {
378
378
  return new CommandItemDef({
379
379
  commandId: "UiFramework.ClearSelection",
380
- iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSelectionClear),
380
+ iconSpec: svgSelectionClear,
381
381
  labelKey: "UiFramework:buttons.clearSelection",
382
382
  isHidden: getIsHiddenIfSelectionNotActive(),
383
383
  execute: async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"CoreToolDefinitions.js","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.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 Tools\n */\n\nimport * as React from \"react\"; // cSpell:ignore keyinbrowser\nimport {\n FitViewTool,\n FlyViewTool,\n IModelApp,\n MeasureDistanceTool,\n MeasureLocationTool,\n PanViewTool,\n RotateViewTool,\n SelectionTool,\n SetupWalkCameraTool,\n ViewClipByElementTool,\n ViewClipByPlaneTool,\n ViewClipByRangeTool,\n ViewClipByShapeTool,\n ViewClipDecorationProvider,\n ViewRedoTool,\n ViewToggleCameraTool,\n ViewUndoTool,\n WalkViewTool,\n WindowAreaTool,\n ZoomViewTool,\n} from \"@itwin/core-frontend\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n IconSpecUtilities,\n} from \"@itwin/appui-abstract\";\nimport { getIsHiddenIfSelectionNotActive } from \"../selection/SelectionContextItemDef\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { RestoreFrontstageLayoutTool } from \"./RestoreLayoutTool\";\nimport { UiFramework } from \"../UiFramework\";\nimport cameraAnimationIcon from \"@itwin/itwinui-icons/icons/camera-animation.svg\";\nimport cameraAnimationDisabledIcon from \"@itwin/itwinui-icons/icons/camera-animation-disabled.svg\";\nimport svgGyroscope from \"@bentley/icons-generic/icons/gyroscope.svg\";\nimport svgRotateLeft from \"@bentley/icons-generic/icons/rotate-left.svg\";\nimport svgSectionTool from \"@bentley/icons-generic/icons/section-tool.svg\";\nimport svgSelectionClear from \"@bentley/icons-generic/icons/selection-clear.svg\";\nimport { SvgMeasure, SvgProcess } from \"@itwin/itwinui-icons-react\";\n\n/** Utility Class that provides definitions of tools provided by the ($core-frontend) core. These definitions can be used to populate the UI.\n * @public\n */\n// istanbul ignore next\nexport class CoreTools {\n public static get keyinPaletteButtonItemDef() {\n return new ToolItemDef({\n toolId: \"uif:keyinpalette\",\n iconSpec: <SvgProcess />,\n labelKey: \"UiFramework:keyinbrowser.label\",\n execute: () => {\n IModelApp.uiAdmin.showKeyinPalette();\n },\n });\n }\n\n public static get fitViewCommand() {\n return new ToolItemDef({\n toolId: FitViewTool.toolId,\n iconSpec: FitViewTool.iconSpec,\n label: FitViewTool.flyover,\n description: FitViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n FitViewTool.toolId,\n IModelApp.viewManager.selectedView,\n true\n ),\n });\n }\n\n public static get windowAreaCommand() {\n return new ToolItemDef({\n toolId: WindowAreaTool.toolId,\n iconSpec: WindowAreaTool.iconSpec,\n label: WindowAreaTool.flyover,\n description: WindowAreaTool.description,\n execute: async () =>\n IModelApp.tools.run(\n WindowAreaTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get zoomViewCommand() {\n return new ToolItemDef({\n toolId: ZoomViewTool.toolId,\n iconSpec: ZoomViewTool.iconSpec,\n label: ZoomViewTool.flyover,\n description: ZoomViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ZoomViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get panViewCommand() {\n return new ToolItemDef({\n toolId: PanViewTool.toolId,\n iconSpec: PanViewTool.iconSpec,\n label: PanViewTool.flyover,\n description: PanViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n PanViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get rotateViewCommand() {\n return new ToolItemDef({\n toolId: RotateViewTool.toolId,\n iconSpec: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl?.viewport?.view.is2d())\n return IconSpecUtilities.createWebComponentIconSpec(svgRotateLeft);\n return IconSpecUtilities.createWebComponentIconSpec(svgGyroscope);\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n label: RotateViewTool.flyover,\n description: RotateViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n RotateViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get walkViewCommand() {\n return new ToolItemDef({\n toolId: WalkViewTool.toolId,\n iconSpec: WalkViewTool.iconSpec,\n label: WalkViewTool.flyover,\n description: WalkViewTool.description,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n execute: async () =>\n IModelApp.tools.run(\n WalkViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get selectElementCommand() {\n return new ToolItemDef({\n toolId: SelectionTool.toolId,\n iconSpec: SelectionTool.iconSpec,\n label: SelectionTool.flyover,\n description: SelectionTool.description,\n execute: async () => IModelApp.tools.run(SelectionTool.toolId),\n });\n }\n\n public static get setupCameraWalkTool() {\n return new ToolItemDef({\n toolId: SetupWalkCameraTool.toolId,\n iconSpec: SetupWalkCameraTool.iconSpec,\n label: SetupWalkCameraTool.flyover,\n description: SetupWalkCameraTool.description,\n execute: async () => IModelApp.tools.run(SetupWalkCameraTool.toolId),\n });\n }\n\n public static get toggleCameraViewCommand() {\n return new ToolItemDef({\n toolId: ViewToggleCameraTool.toolId,\n iconSpec: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.isCameraOn\n ) {\n return IconSpecUtilities.createWebComponentIconSpec(\n cameraAnimationIcon\n );\n }\n return IconSpecUtilities.createWebComponentIconSpec(\n cameraAnimationDisabledIcon\n );\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n label: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.isCameraOn\n ) {\n return UiFramework.translate(\n \"tools.View.ToggleCamera.turnOffFlyover\"\n );\n }\n return UiFramework.translate(\"tools.View.ToggleCamera.turnOnFlyover\");\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n description: ViewToggleCameraTool.description,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !(\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.view.supportsCamera()\n );\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n execute: async () =>\n IModelApp.tools.run(\n ViewToggleCameraTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get flyViewCommand() {\n return new ToolItemDef({\n toolId: FlyViewTool.toolId,\n iconSpec: FlyViewTool.iconSpec,\n label: FlyViewTool.flyover,\n description: FlyViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n FlyViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n // TODO - Need to provide a sync message that is fired when the Undo/Redo button needs to be refreshed in the\n // active view.\n public static get viewUndoCommand() {\n return new ToolItemDef({\n toolId: ViewUndoTool.toolId,\n isDisabled: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl && activeContentControl.viewport)\n return !activeContentControl.viewport.isUndoPossible;\n return false;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n iconSpec: ViewUndoTool.iconSpec,\n label: ViewUndoTool.flyover,\n description: ViewUndoTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ViewUndoTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get viewRedoCommand() {\n return new ToolItemDef({\n toolId: ViewRedoTool.toolId,\n iconSpec: ViewRedoTool.iconSpec,\n label: ViewRedoTool.flyover,\n description: ViewRedoTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ViewRedoTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n isDisabled: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl && activeContentControl.viewport)\n return !activeContentControl.viewport.isRedoPossible;\n return false;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n });\n }\n\n private static turnOnClipVolume() {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp || !vp.view.is3d()) return;\n\n // Turn on clip volume flag for section tools\n vp.viewFlags = vp.viewFlags.with(\"clipVolume\", true);\n }\n\n // note current ViewClipByPlaneTool is not automatically registered so the app must call ViewClipByPlaneTool.register();\n public static get sectionByPlaneCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByPlaneTool.toolId,\n iconSpec: ViewClipByPlaneTool.iconSpec,\n label: ViewClipByPlaneTool.flyover,\n description: ViewClipByPlaneTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByPlaneTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByElementTool is not automatically registered so the app must call ViewClipByElementTool.register();\n public static get sectionByElementCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByElementTool.toolId,\n iconSpec: ViewClipByElementTool.iconSpec,\n label: ViewClipByElementTool.flyover,\n description: ViewClipByElementTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByElementTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByRangeTool is not automatically registered so the app must call ViewClipByRangeTool.register();\n public static get sectionByRangeCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByRangeTool.toolId,\n iconSpec: ViewClipByRangeTool.iconSpec,\n label: ViewClipByRangeTool.flyover,\n description: ViewClipByRangeTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByRangeTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByShapeTool is not automatically registered so the app must call ViewClipByShapeTool.register();\n public static get sectionByShapeCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByShapeTool.toolId,\n iconSpec: ViewClipByShapeTool.iconSpec,\n label: ViewClipByShapeTool.flyover,\n description: ViewClipByShapeTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByShapeTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n public static get sectionToolGroup() {\n ViewClipByElementTool.register();\n ViewClipByPlaneTool.register();\n ViewClipByRangeTool.register();\n ViewClipByShapeTool.register();\n\n return new GroupItemDef({\n groupId: \"sectionTools-group\",\n labelKey: \"UiFramework:tools.sectionTools\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n items: [\n this.sectionByPlaneCommandItemDef,\n this.sectionByElementCommandItemDef,\n this.sectionByRangeCommandItemDef,\n this.sectionByShapeCommandItemDef,\n ],\n itemsInColumn: 4,\n });\n }\n\n public static get sectionToolGroupWithPanel() {\n ViewClipByElementTool.register();\n ViewClipByPlaneTool.register();\n ViewClipByRangeTool.register();\n ViewClipByShapeTool.register();\n\n return new GroupItemDef({\n groupId: \"sectionTools-group-with-panel\",\n labelKey: \"UiFramework:tools.sectionTools\",\n panelLabelKey: \"UiFramework:tools.sectionPanelLabel\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSectionTool),\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n items: [\n new ToolItemDef({\n ...this.sectionByPlaneCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByPlane\",\n }),\n new ToolItemDef({\n ...this.sectionByElementCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByElement\",\n }),\n new ToolItemDef({\n ...this.sectionByRangeCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByRange\",\n }),\n new ToolItemDef({\n ...this.sectionByShapeCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByShape\",\n }),\n ],\n itemsInColumn: 4,\n });\n }\n\n // note current MeasureDistanceTool is not automatically registered so the app must call MeasureDistanceTool.register();\n public static get measureDistanceToolItemDef() {\n return new ToolItemDef({\n toolId: MeasureDistanceTool.toolId,\n iconSpec: MeasureDistanceTool.iconSpec,\n label: MeasureDistanceTool.flyover,\n description: MeasureDistanceTool.description,\n execute: async () => {\n return IModelApp.tools.run(MeasureDistanceTool.toolId);\n },\n });\n }\n\n // note current MeasureLocationTool is not automatically registered so the app must call MeasureLocationTool.register();\n public static get measureLocationToolItemDef() {\n return new ToolItemDef({\n toolId: MeasureLocationTool.toolId,\n iconSpec: MeasureLocationTool.iconSpec,\n label: MeasureLocationTool.flyover,\n description: MeasureLocationTool.description,\n execute: async () => {\n return IModelApp.tools.run(MeasureLocationTool.toolId);\n },\n });\n }\n\n public static get measureToolGroup() {\n MeasureDistanceTool.register();\n MeasureLocationTool.register();\n\n return new GroupItemDef({\n groupId: \"measureTools-group\",\n labelKey: \"UiFramework:tools.measureTools\",\n iconSpec: <SvgMeasure />,\n items: [this.measureDistanceToolItemDef, this.measureLocationToolItemDef],\n itemsInColumn: 2,\n });\n }\n\n public static get clearSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearSelection\",\n iconSpec: IconSpecUtilities.createWebComponentIconSpec(svgSelectionClear),\n labelKey: \"UiFramework:buttons.clearSelection\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () => {\n const iModelConnection = UiFramework.getIModelConnection();\n if (iModelConnection) {\n iModelConnection.selectionSet.emptyAll();\n }\n const tool = IModelApp.toolAdmin.primitiveTool;\n if (tool) await tool.onRestartTool();\n else await IModelApp.toolAdmin.startDefaultTool();\n },\n });\n }\n\n public static get restoreFrontstageLayoutCommandItemDef() {\n return new ToolItemDef({\n toolId: RestoreFrontstageLayoutTool.toolId,\n iconSpec: RestoreFrontstageLayoutTool.iconSpec,\n label: RestoreFrontstageLayoutTool.flyover,\n description: RestoreFrontstageLayoutTool.description,\n execute: async () => {\n return IModelApp.tools.run(RestoreFrontstageLayoutTool.toolId);\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"CoreToolDefinitions.js","sourceRoot":"","sources":["../../../../src/appui-react/tools/CoreToolDefinitions.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 Tools\n */\n\nimport * as React from \"react\"; // cSpell:ignore keyinbrowser\nimport {\n FitViewTool,\n FlyViewTool,\n IModelApp,\n MeasureDistanceTool,\n MeasureLocationTool,\n PanViewTool,\n RotateViewTool,\n SelectionTool,\n SetupWalkCameraTool,\n ViewClipByElementTool,\n ViewClipByPlaneTool,\n ViewClipByRangeTool,\n ViewClipByShapeTool,\n ViewClipDecorationProvider,\n ViewRedoTool,\n ViewToggleCameraTool,\n ViewUndoTool,\n WalkViewTool,\n WindowAreaTool,\n ZoomViewTool,\n} from \"@itwin/core-frontend\";\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { getIsHiddenIfSelectionNotActive } from \"../selection/SelectionContextItemDef\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { RestoreFrontstageLayoutTool } from \"./RestoreLayoutTool\";\nimport { UiFramework } from \"../UiFramework\";\nimport cameraAnimationIcon from \"@itwin/itwinui-icons/icons/camera-animation.svg\";\nimport cameraAnimationDisabledIcon from \"@itwin/itwinui-icons/icons/camera-animation-disabled.svg\";\nimport svgGyroscope from \"@bentley/icons-generic/icons/gyroscope.svg\";\nimport svgRotateLeft from \"@bentley/icons-generic/icons/rotate-left.svg\";\nimport svgSectionTool from \"@bentley/icons-generic/icons/section-tool.svg\";\nimport svgSelectionClear from \"@bentley/icons-generic/icons/selection-clear.svg\";\nimport { SvgMeasure, SvgProcess } from \"@itwin/itwinui-icons-react\";\n\n/** Utility Class that provides definitions of tools provided by the ($core-frontend) core. These definitions can be used to populate the UI.\n * @public\n */\n// istanbul ignore next\nexport class CoreTools {\n public static get keyinPaletteButtonItemDef() {\n return new ToolItemDef({\n toolId: \"uif:keyinpalette\",\n iconSpec: <SvgProcess />,\n labelKey: \"UiFramework:keyinbrowser.label\",\n execute: () => {\n IModelApp.uiAdmin.showKeyinPalette();\n },\n });\n }\n\n public static get fitViewCommand() {\n return new ToolItemDef({\n toolId: FitViewTool.toolId,\n iconSpec: FitViewTool.iconSpec,\n label: FitViewTool.flyover,\n description: FitViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n FitViewTool.toolId,\n IModelApp.viewManager.selectedView,\n true\n ),\n });\n }\n\n public static get windowAreaCommand() {\n return new ToolItemDef({\n toolId: WindowAreaTool.toolId,\n iconSpec: WindowAreaTool.iconSpec,\n label: WindowAreaTool.flyover,\n description: WindowAreaTool.description,\n execute: async () =>\n IModelApp.tools.run(\n WindowAreaTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get zoomViewCommand() {\n return new ToolItemDef({\n toolId: ZoomViewTool.toolId,\n iconSpec: ZoomViewTool.iconSpec,\n label: ZoomViewTool.flyover,\n description: ZoomViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ZoomViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get panViewCommand() {\n return new ToolItemDef({\n toolId: PanViewTool.toolId,\n iconSpec: PanViewTool.iconSpec,\n label: PanViewTool.flyover,\n description: PanViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n PanViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get rotateViewCommand() {\n return new ToolItemDef({\n toolId: RotateViewTool.toolId,\n iconSpec: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl?.viewport?.view.is2d()) return svgRotateLeft;\n return svgGyroscope;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n label: RotateViewTool.flyover,\n description: RotateViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n RotateViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get walkViewCommand() {\n return new ToolItemDef({\n toolId: WalkViewTool.toolId,\n iconSpec: WalkViewTool.iconSpec,\n label: WalkViewTool.flyover,\n description: WalkViewTool.description,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n execute: async () =>\n IModelApp.tools.run(\n WalkViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get selectElementCommand() {\n return new ToolItemDef({\n toolId: SelectionTool.toolId,\n iconSpec: SelectionTool.iconSpec,\n label: SelectionTool.flyover,\n description: SelectionTool.description,\n execute: async () => IModelApp.tools.run(SelectionTool.toolId),\n });\n }\n\n public static get setupCameraWalkTool() {\n return new ToolItemDef({\n toolId: SetupWalkCameraTool.toolId,\n iconSpec: SetupWalkCameraTool.iconSpec,\n label: SetupWalkCameraTool.flyover,\n description: SetupWalkCameraTool.description,\n execute: async () => IModelApp.tools.run(SetupWalkCameraTool.toolId),\n });\n }\n\n public static get toggleCameraViewCommand() {\n return new ToolItemDef({\n toolId: ViewToggleCameraTool.toolId,\n iconSpec: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.isCameraOn\n ) {\n return cameraAnimationIcon;\n }\n return cameraAnimationDisabledIcon;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n label: new ConditionalStringValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.isCameraOn\n ) {\n return UiFramework.translate(\n \"tools.View.ToggleCamera.turnOffFlyover\"\n );\n }\n return UiFramework.translate(\"tools.View.ToggleCamera.turnOnFlyover\");\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n description: ViewToggleCameraTool.description,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !(\n activeContentControl?.viewport?.view.is3d() &&\n activeContentControl?.viewport?.view.supportsCamera()\n );\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n execute: async () =>\n IModelApp.tools.run(\n ViewToggleCameraTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get flyViewCommand() {\n return new ToolItemDef({\n toolId: FlyViewTool.toolId,\n iconSpec: FlyViewTool.iconSpec,\n label: FlyViewTool.flyover,\n description: FlyViewTool.description,\n execute: async () =>\n IModelApp.tools.run(\n FlyViewTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n // TODO - Need to provide a sync message that is fired when the Undo/Redo button needs to be refreshed in the\n // active view.\n public static get viewUndoCommand() {\n return new ToolItemDef({\n toolId: ViewUndoTool.toolId,\n isDisabled: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl && activeContentControl.viewport)\n return !activeContentControl.viewport.isUndoPossible;\n return false;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n iconSpec: ViewUndoTool.iconSpec,\n label: ViewUndoTool.flyover,\n description: ViewUndoTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ViewUndoTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n });\n }\n\n public static get viewRedoCommand() {\n return new ToolItemDef({\n toolId: ViewRedoTool.toolId,\n iconSpec: ViewRedoTool.iconSpec,\n label: ViewRedoTool.flyover,\n description: ViewRedoTool.description,\n execute: async () =>\n IModelApp.tools.run(\n ViewRedoTool.toolId,\n IModelApp.viewManager.selectedView\n ),\n isDisabled: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n if (activeContentControl && activeContentControl.viewport)\n return !activeContentControl.viewport.isRedoPossible;\n return false;\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n });\n }\n\n private static turnOnClipVolume() {\n const vp = IModelApp.viewManager.selectedView;\n if (!vp || !vp.view.is3d()) return;\n\n // Turn on clip volume flag for section tools\n vp.viewFlags = vp.viewFlags.with(\"clipVolume\", true);\n }\n\n // note current ViewClipByPlaneTool is not automatically registered so the app must call ViewClipByPlaneTool.register();\n public static get sectionByPlaneCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByPlaneTool.toolId,\n iconSpec: ViewClipByPlaneTool.iconSpec,\n label: ViewClipByPlaneTool.flyover,\n description: ViewClipByPlaneTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByPlaneTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByElementTool is not automatically registered so the app must call ViewClipByElementTool.register();\n public static get sectionByElementCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByElementTool.toolId,\n iconSpec: ViewClipByElementTool.iconSpec,\n label: ViewClipByElementTool.flyover,\n description: ViewClipByElementTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByElementTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByRangeTool is not automatically registered so the app must call ViewClipByRangeTool.register();\n public static get sectionByRangeCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByRangeTool.toolId,\n iconSpec: ViewClipByRangeTool.iconSpec,\n label: ViewClipByRangeTool.flyover,\n description: ViewClipByRangeTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByRangeTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n // note current ViewClipByShapeTool is not automatically registered so the app must call ViewClipByShapeTool.register();\n public static get sectionByShapeCommandItemDef() {\n return new ToolItemDef({\n toolId: ViewClipByShapeTool.toolId,\n iconSpec: ViewClipByShapeTool.iconSpec,\n label: ViewClipByShapeTool.flyover,\n description: ViewClipByShapeTool.description,\n execute: async () => {\n this.turnOnClipVolume();\n return IModelApp.tools.run(\n ViewClipByShapeTool.toolId,\n ViewClipDecorationProvider.create()\n );\n },\n });\n }\n\n public static get sectionToolGroup() {\n ViewClipByElementTool.register();\n ViewClipByPlaneTool.register();\n ViewClipByRangeTool.register();\n ViewClipByShapeTool.register();\n\n return new GroupItemDef({\n groupId: \"sectionTools-group\",\n labelKey: \"UiFramework:tools.sectionTools\",\n iconSpec: svgSectionTool,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n items: [\n this.sectionByPlaneCommandItemDef,\n this.sectionByElementCommandItemDef,\n this.sectionByRangeCommandItemDef,\n this.sectionByShapeCommandItemDef,\n ],\n itemsInColumn: 4,\n });\n }\n\n public static get sectionToolGroupWithPanel() {\n ViewClipByElementTool.register();\n ViewClipByPlaneTool.register();\n ViewClipByRangeTool.register();\n ViewClipByShapeTool.register();\n\n return new GroupItemDef({\n groupId: \"sectionTools-group-with-panel\",\n labelKey: \"UiFramework:tools.sectionTools\",\n panelLabelKey: \"UiFramework:tools.sectionPanelLabel\",\n iconSpec: svgSectionTool,\n isHidden: new ConditionalBooleanValue(() => {\n const activeContentControl =\n UiFramework.content.getActiveContentControl();\n return !!activeContentControl?.viewport?.view.is2d();\n }, [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.ViewStateChanged,\n ]),\n items: [\n new ToolItemDef({\n ...this.sectionByPlaneCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByPlane\",\n }),\n new ToolItemDef({\n ...this.sectionByElementCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByElement\",\n }),\n new ToolItemDef({\n ...this.sectionByRangeCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByRange\",\n }),\n new ToolItemDef({\n ...this.sectionByShapeCommandItemDef,\n labelKey: \"UiFramework:tools.sectionByShape\",\n }),\n ],\n itemsInColumn: 4,\n });\n }\n\n // note current MeasureDistanceTool is not automatically registered so the app must call MeasureDistanceTool.register();\n public static get measureDistanceToolItemDef() {\n return new ToolItemDef({\n toolId: MeasureDistanceTool.toolId,\n iconSpec: MeasureDistanceTool.iconSpec,\n label: MeasureDistanceTool.flyover,\n description: MeasureDistanceTool.description,\n execute: async () => {\n return IModelApp.tools.run(MeasureDistanceTool.toolId);\n },\n });\n }\n\n // note current MeasureLocationTool is not automatically registered so the app must call MeasureLocationTool.register();\n public static get measureLocationToolItemDef() {\n return new ToolItemDef({\n toolId: MeasureLocationTool.toolId,\n iconSpec: MeasureLocationTool.iconSpec,\n label: MeasureLocationTool.flyover,\n description: MeasureLocationTool.description,\n execute: async () => {\n return IModelApp.tools.run(MeasureLocationTool.toolId);\n },\n });\n }\n\n public static get measureToolGroup() {\n MeasureDistanceTool.register();\n MeasureLocationTool.register();\n\n return new GroupItemDef({\n groupId: \"measureTools-group\",\n labelKey: \"UiFramework:tools.measureTools\",\n iconSpec: <SvgMeasure />,\n items: [this.measureDistanceToolItemDef, this.measureLocationToolItemDef],\n itemsInColumn: 2,\n });\n }\n\n public static get clearSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearSelection\",\n iconSpec: svgSelectionClear,\n labelKey: \"UiFramework:buttons.clearSelection\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () => {\n const iModelConnection = UiFramework.getIModelConnection();\n if (iModelConnection) {\n iModelConnection.selectionSet.emptyAll();\n }\n const tool = IModelApp.toolAdmin.primitiveTool;\n if (tool) await tool.onRestartTool();\n else await IModelApp.toolAdmin.startDefaultTool();\n },\n });\n }\n\n public static get restoreFrontstageLayoutCommandItemDef() {\n return new ToolItemDef({\n toolId: RestoreFrontstageLayoutTool.toolId,\n iconSpec: RestoreFrontstageLayoutTool.iconSpec,\n label: RestoreFrontstageLayoutTool.flyover,\n description: RestoreFrontstageLayoutTool.description,\n execute: async () => {\n return IModelApp.tools.run(RestoreFrontstageLayoutTool.toolId);\n },\n });\n }\n}\n"]}
@@ -2,7 +2,16 @@
2
2
  * @module Tools
3
3
  */
4
4
  import { ToolAdmin } from "@itwin/core-frontend";
5
- /** UiFramework implementation of ToolAdmin
5
+ /** Subclass of `ToolAdmin` in `@itwin/core-frontend` to be used to initialize `IModelApp`.
6
+ *
7
+ * Enable processing of shortcut keys registered to
8
+ * [[UiFramework.keyboardShortcuts]] when focus is set to Home.
9
+ *
10
+ * ```ts
11
+ * await IModelApp.startup({
12
+ * toolAdmin: new FrameworkToolAdmin()
13
+ * });
14
+ * ```
6
15
  * @alpha
7
16
  */
8
17
  export declare class FrameworkToolAdmin extends ToolAdmin {
@@ -1 +1 @@
1
- {"version":3,"file":"FrameworkToolAdmin.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/FrameworkToolAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,kCAAkC;IACZ,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;CAoBpB"}
1
+ {"version":3,"file":"FrameworkToolAdmin.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/tools/FrameworkToolAdmin.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,kCAAkC;IACZ,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,OAAO,CAAC;CAiBpB"}