@itwin/appui-react 4.10.0 → 4.11.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 (893) hide show
  1. package/CHANGELOG.md +18 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +181 -10
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +301 -21
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  7. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js +3 -2
  8. package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  11. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  13. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  14. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +5 -7
  15. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  16. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  17. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  18. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  19. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  20. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  21. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  22. package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +2 -1
  24. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +2 -2
  26. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  27. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  28. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  29. package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  30. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  31. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js +24 -17
  33. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  34. package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  35. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  36. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  38. package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  39. package/lib/cjs/appui-react/configurableui/TimeTracker.js +2 -1
  40. package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
  41. package/lib/cjs/appui-react/content/ContentLayout.js +12 -9
  42. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  43. package/lib/cjs/appui-react/content/DefaultViewOverlay.js +4 -3
  44. package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
  45. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +14 -19
  46. package/lib/cjs/appui-react/content/FloatingViewportContent.js +2 -1
  47. package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
  48. package/lib/cjs/appui-react/content/IModelViewport.d.ts.map +1 -1
  49. package/lib/cjs/appui-react/content/IModelViewport.js +8 -9
  50. package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
  51. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +2 -1
  52. package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  53. package/lib/cjs/appui-react/content/InternalContentViewManager.js +2 -2
  54. package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
  55. package/lib/cjs/appui-react/content/split-pane/SplitPane.js +12 -10
  56. package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
  57. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  58. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  59. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  60. package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  61. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  62. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  64. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  65. package/lib/cjs/appui-react/dialog/ContentDialog.js +6 -3
  66. package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
  67. package/lib/cjs/appui-react/dialog/DialogManagerBase.js +3 -2
  68. package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
  69. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  70. package/lib/cjs/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
  72. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  73. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +20 -77
  75. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  76. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  78. package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  79. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  80. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +1 -2
  82. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  83. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +7 -6
  85. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  86. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  87. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  88. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts +6 -0
  89. package/lib/cjs/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  90. package/lib/cjs/appui-react/hooks/useActiveToolId.js +24 -0
  91. package/lib/cjs/appui-react/hooks/useActiveToolId.js.map +1 -0
  92. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  93. package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  94. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts +15 -0
  95. package/lib/cjs/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  96. package/lib/cjs/appui-react/hooks/useConditionalValue.js +43 -0
  97. package/lib/cjs/appui-react/hooks/useConditionalValue.js.map +1 -0
  98. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  99. package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  100. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +13 -8
  101. package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  102. package/lib/cjs/appui-react/keyins/Keyins.d.ts +35 -0
  103. package/lib/cjs/appui-react/keyins/Keyins.d.ts.map +1 -0
  104. package/lib/cjs/appui-react/keyins/Keyins.js +54 -0
  105. package/lib/cjs/appui-react/keyins/Keyins.js.map +1 -0
  106. package/lib/cjs/appui-react/layers.scss +1 -1
  107. package/lib/cjs/appui-react/layout/StandardLayout.d.ts.map +1 -1
  108. package/lib/cjs/appui-react/layout/StandardLayout.js +10 -10
  109. package/lib/cjs/appui-react/layout/StandardLayout.js.map +1 -1
  110. package/lib/cjs/appui-react/layout/_widgetopacity.scss +3 -1
  111. package/lib/cjs/appui-react/layout/base/DragManager.js +2 -1
  112. package/lib/cjs/appui-react/layout/base/DragManager.js.map +1 -1
  113. package/lib/cjs/appui-react/layout/base/NineZone.js +1 -1
  114. package/lib/cjs/appui-react/layout/base/NineZone.js.map +1 -1
  115. package/lib/cjs/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  116. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js +3 -0
  117. package/lib/cjs/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  118. package/lib/cjs/appui-react/layout/outline/TabOutline.js +1 -1
  119. package/lib/cjs/appui-react/layout/outline/TabOutline.js.map +1 -1
  120. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js +1 -1
  121. package/lib/cjs/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  122. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  123. package/lib/cjs/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  124. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  125. package/lib/cjs/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  126. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  127. package/lib/cjs/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  128. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  129. package/lib/cjs/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  130. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js +1 -1
  131. package/lib/cjs/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  132. package/lib/cjs/appui-react/layout/widget/Content.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/layout/widget/Content.js +5 -5
  134. package/lib/cjs/appui-react/layout/widget/Content.js.map +1 -1
  135. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js +2 -2
  136. package/lib/cjs/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  137. package/lib/cjs/appui-react/layout/widget/FloatingTab.js +6 -5
  138. package/lib/cjs/appui-react/layout/widget/FloatingTab.js.map +1 -1
  139. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js +4 -2
  140. package/lib/cjs/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  141. package/lib/cjs/appui-react/layout/widget/NavigationArea.scss +4 -1
  142. package/lib/cjs/appui-react/layout/widget/PanelWidget.js +1 -1
  143. package/lib/cjs/appui-react/layout/widget/PanelWidget.js.map +1 -1
  144. package/lib/cjs/appui-react/layout/widget/Tab.js +4 -4
  145. package/lib/cjs/appui-react/layout/widget/Tab.js.map +1 -1
  146. package/lib/cjs/appui-react/layout/widget/ToolsArea.scss +2 -0
  147. package/lib/cjs/appui-react/layout/widget/Widget.d.ts.map +1 -1
  148. package/lib/cjs/appui-react/layout/widget/Widget.js +2 -2
  149. package/lib/cjs/appui-react/layout/widget/Widget.js.map +1 -1
  150. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  151. package/lib/cjs/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  152. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js +8 -5
  153. package/lib/cjs/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  154. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  155. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  156. package/lib/cjs/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  157. package/lib/cjs/appui-react/messages/AppNotificationManager.js +1 -1
  158. package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
  159. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/messages/MessageManager.js +6 -6
  161. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  162. package/lib/cjs/appui-react/messages/MessageRenderer.js +16 -10
  163. package/lib/cjs/appui-react/messages/MessageRenderer.js.map +1 -1
  164. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  165. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  166. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  167. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +1 -1
  169. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  170. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  171. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  173. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  174. package/lib/cjs/appui-react/pickers/ViewSelector.js +6 -5
  175. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  176. package/lib/cjs/appui-react/popup/CardPopup.d.ts +21 -9
  177. package/lib/cjs/appui-react/popup/CardPopup.d.ts.map +1 -1
  178. package/lib/cjs/appui-react/popup/CardPopup.js +12 -5
  179. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  180. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts +18 -0
  181. package/lib/cjs/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  182. package/lib/cjs/appui-react/popup/ComponentPopup.js +35 -0
  183. package/lib/cjs/appui-react/popup/ComponentPopup.js.map +1 -0
  184. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  185. package/lib/cjs/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  186. package/lib/cjs/appui-react/popup/HTMLElementPopup.js +1 -0
  187. package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
  188. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts +4 -4
  189. package/lib/cjs/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  190. package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
  191. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  192. package/lib/cjs/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  193. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +19 -12
  194. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  195. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  196. package/lib/cjs/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  197. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js +9 -3
  198. package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  199. package/lib/cjs/appui-react/popup/PopupManager.d.ts +45 -9
  200. package/lib/cjs/appui-react/popup/PopupManager.d.ts.map +1 -1
  201. package/lib/cjs/appui-react/popup/PopupManager.js +85 -13
  202. package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
  203. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +16 -6
  204. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  205. package/lib/cjs/appui-react/popup/ToolbarPopup.js +7 -2
  206. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  207. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts +3 -1
  208. package/lib/cjs/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  209. package/lib/cjs/appui-react/preview/PreviewFeatures.js +2 -2
  210. package/lib/cjs/appui-react/preview/PreviewFeatures.js.map +1 -1
  211. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  212. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  213. package/lib/cjs/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  214. package/lib/cjs/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  215. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  216. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  217. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +18 -0
  218. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  219. package/lib/cjs/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  220. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  221. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  222. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  223. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  224. package/lib/cjs/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  225. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  226. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  227. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  228. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  229. package/lib/cjs/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  230. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  231. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  232. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js +25 -0
  233. package/lib/cjs/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  234. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  235. package/lib/cjs/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  236. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js +20 -0
  237. package/lib/cjs/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  238. package/lib/cjs/appui-react/preview/new-toolbars/Badge.scss +13 -0
  239. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  240. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  241. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js +36 -0
  242. package/lib/cjs/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  243. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  244. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  245. package/lib/cjs/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +8 -13
  246. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  247. package/lib/cjs/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  248. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  249. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  250. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js +79 -0
  251. package/lib/cjs/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  252. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  253. package/lib/cjs/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  254. package/lib/cjs/appui-react/preview/new-toolbars/Item.js +54 -0
  255. package/lib/cjs/appui-react/preview/new-toolbars/Item.js.map +1 -0
  256. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  257. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  258. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js +37 -0
  259. package/lib/cjs/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  260. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  261. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  262. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js +85 -0
  263. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  264. package/lib/cjs/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  265. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  266. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  267. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js +40 -0
  268. package/lib/cjs/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  269. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  270. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  271. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js +93 -0
  272. package/lib/cjs/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  273. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  274. package/lib/cjs/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  275. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  276. package/lib/cjs/appui-react/redux/SessionState.d.ts +15 -3
  277. package/lib/cjs/appui-react/redux/SessionState.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/redux/SessionState.js +8 -1
  279. package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
  280. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +2 -2
  281. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  282. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  283. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  284. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  285. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  286. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  287. package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  288. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  289. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +40 -46
  290. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  291. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts +17 -0
  292. package/lib/cjs/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  293. package/lib/cjs/appui-react/shared/ConditionalValue.js +16 -0
  294. package/lib/cjs/appui-react/shared/ConditionalValue.js.map +1 -0
  295. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts +2 -2
  296. package/lib/cjs/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  297. package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
  298. package/lib/cjs/appui-react/shared/ItemProps.d.ts +13 -2
  299. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  301. package/lib/cjs/appui-react/shared/MenuItem.d.ts +21 -2
  302. package/lib/cjs/appui-react/shared/MenuItem.d.ts.map +1 -1
  303. package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
  304. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +16 -11
  305. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  306. package/lib/cjs/appui-react/statusbar/Indicator.js +2 -1
  307. package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
  308. package/lib/cjs/appui-react/statusbar/Overflow.d.ts.map +1 -1
  309. package/lib/cjs/appui-react/statusbar/Overflow.js +3 -3
  310. package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
  311. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -1
  312. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  313. package/lib/cjs/appui-react/statusbar/StatusBar.js +6 -4
  314. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  315. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  316. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  317. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  318. package/lib/cjs/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  319. package/lib/cjs/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  320. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.js +10 -11
  321. package/lib/cjs/appui-react/statusbar/popup/Popup.js.map +1 -0
  322. package/lib/cjs/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  323. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  324. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +4 -4
  325. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  326. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +0 -1
  327. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/statusfields/MessageCenter.js +4 -4
  329. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  330. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/statusfields/SectionsField.js +7 -10
  332. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  333. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/statusfields/SelectionScope.js +4 -4
  335. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  336. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  337. package/lib/cjs/appui-react/statusfields/SnapMode.js +14 -12
  338. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  339. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  340. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  341. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +12 -20
  342. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  343. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  344. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +2 -2
  345. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  346. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  347. package/lib/cjs/appui-react/theme/ThemeManager.js +3 -2
  348. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  349. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  350. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  351. package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  352. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +4 -3
  353. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  354. package/lib/cjs/appui-react/toolbar/Toolbar.js +28 -4
  355. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  356. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  357. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  358. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +15 -12
  359. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  360. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  361. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +5 -6
  362. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  363. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  364. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  365. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  366. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  367. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  368. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  369. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +18 -11
  370. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  371. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  372. package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  373. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  374. package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  375. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  376. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  377. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  378. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  379. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  380. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  381. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  382. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  383. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +102 -143
  384. package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  385. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
  386. package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  387. package/lib/cjs/appui-react/useTranslation.d.ts +10 -0
  388. package/lib/cjs/appui-react/useTranslation.d.ts.map +1 -0
  389. package/lib/cjs/appui-react/useTranslation.js +20 -0
  390. package/lib/cjs/appui-react/useTranslation.js.map +1 -0
  391. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
  392. package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  393. package/lib/cjs/appui-react/utils/Placement.d.ts +35 -0
  394. package/lib/cjs/appui-react/utils/Placement.d.ts.map +1 -0
  395. package/lib/cjs/appui-react/utils/Placement.js +62 -0
  396. package/lib/cjs/appui-react/utils/Placement.js.map +1 -0
  397. package/lib/cjs/appui-react/utils/PropsHelper.js +4 -4
  398. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  399. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  400. package/lib/cjs/appui-react/widget-panels/Content.js +12 -11
  401. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  402. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  403. package/lib/cjs/appui-react/widget-panels/Frontstage.js +30 -23
  404. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  405. package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
  406. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  407. package/lib/cjs/appui-react/widget-panels/Tab.d.ts +1 -1
  408. package/lib/cjs/appui-react/widget-panels/Tab.d.ts.map +1 -1
  409. package/lib/cjs/appui-react/widget-panels/Tab.js +3 -4
  410. package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
  411. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  412. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  413. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +55 -68
  414. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  415. package/lib/cjs/appui-react/widget-panels/Toolbars.js +3 -2
  416. package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
  417. package/lib/cjs/appui-react/widget-panels/Toolbars.scss +3 -1
  418. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  419. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -1
  420. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  421. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  422. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  423. package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  424. package/lib/cjs/appui-react/widgets/Widget.d.ts +2 -2
  425. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -1
  426. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
  427. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -3
  428. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  429. package/lib/cjs/appui-react/widgets/WidgetDef.js +61 -18
  430. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  431. package/lib/cjs/appui-react/widgets/WidgetHost.js +3 -2
  432. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  433. package/lib/cjs/appui-react/widgets/useWidget.js +1 -1
  434. package/lib/cjs/appui-react/widgets/useWidget.js.map +1 -1
  435. package/lib/cjs/appui-react.d.ts +3 -1
  436. package/lib/cjs/appui-react.d.ts.map +1 -1
  437. package/lib/cjs/appui-react.js +3 -3
  438. package/lib/cjs/appui-react.js.map +1 -1
  439. package/lib/esm/appui-react/UiFramework.d.ts +181 -10
  440. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  441. package/lib/esm/appui-react/UiFramework.js +301 -21
  442. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  443. package/lib/esm/appui-react/accudraw/AccuDrawDialog.d.ts.map +1 -1
  444. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js +3 -2
  445. package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
  446. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.d.ts.map +1 -1
  447. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +50 -33
  448. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  449. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts +1 -1
  450. package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
  451. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +5 -7
  452. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  453. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts +7 -6
  454. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.d.ts.map +1 -1
  455. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +9 -0
  456. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  457. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.d.ts.map +1 -1
  458. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js +10 -10
  459. package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
  460. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +2 -1
  461. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  462. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +2 -2
  463. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  464. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  465. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +1 -1
  466. package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
  467. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts +5 -0
  468. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  469. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js +23 -16
  470. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  471. package/lib/esm/appui-react/configurableui/ConfigurableUiContent.scss +12 -10
  472. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts +2 -0
  473. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.d.ts.map +1 -1
  474. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +7 -1
  475. package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
  476. package/lib/esm/appui-react/configurableui/TimeTracker.js +2 -1
  477. package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
  478. package/lib/esm/appui-react/content/ContentLayout.js +12 -9
  479. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  480. package/lib/esm/appui-react/content/DefaultViewOverlay.js +4 -3
  481. package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
  482. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +14 -19
  483. package/lib/esm/appui-react/content/FloatingViewportContent.js +2 -1
  484. package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
  485. package/lib/esm/appui-react/content/IModelViewport.d.ts.map +1 -1
  486. package/lib/esm/appui-react/content/IModelViewport.js +8 -9
  487. package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
  488. package/lib/esm/appui-react/content/InternalContentLayoutManager.js +2 -1
  489. package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
  490. package/lib/esm/appui-react/content/InternalContentViewManager.js +2 -2
  491. package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
  492. package/lib/esm/appui-react/content/split-pane/SplitPane.js +12 -10
  493. package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
  494. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts +2 -2
  495. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.d.ts.map +1 -1
  496. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +3 -2
  497. package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
  498. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts +8 -4
  499. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.d.ts.map +1 -1
  500. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js +102 -50
  501. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
  502. package/lib/esm/appui-react/dialog/ContentDialog.js +6 -3
  503. package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
  504. package/lib/esm/appui-react/dialog/DialogManagerBase.js +3 -2
  505. package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
  506. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts +4 -2
  507. package/lib/esm/appui-react/framework/FrameworkVisibility.d.ts.map +1 -1
  508. package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
  509. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts +0 -5
  510. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  511. package/lib/esm/appui-react/frontstage/FrontstageDef.js +21 -78
  512. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  513. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.d.ts.map +1 -1
  514. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js +1 -3
  515. package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
  516. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts +0 -1
  517. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  518. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +1 -2
  519. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  520. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  521. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +7 -6
  522. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  523. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +2 -1
  524. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  525. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts +6 -0
  526. package/lib/esm/appui-react/hooks/useActiveToolId.d.ts.map +1 -0
  527. package/lib/esm/appui-react/hooks/useActiveToolId.js +20 -0
  528. package/lib/esm/appui-react/hooks/useActiveToolId.js.map +1 -0
  529. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +11 -7
  530. package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
  531. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts +15 -0
  532. package/lib/esm/appui-react/hooks/useConditionalValue.d.ts.map +1 -0
  533. package/lib/esm/appui-react/hooks/useConditionalValue.js +39 -0
  534. package/lib/esm/appui-react/hooks/useConditionalValue.js.map +1 -0
  535. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +11 -7
  536. package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
  537. package/lib/esm/appui-react/hooks/useSolarDataProvider.js +13 -8
  538. package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
  539. package/lib/esm/appui-react/keyins/Keyins.d.ts +35 -0
  540. package/lib/esm/appui-react/keyins/Keyins.d.ts.map +1 -0
  541. package/lib/esm/appui-react/keyins/Keyins.js +50 -0
  542. package/lib/esm/appui-react/keyins/Keyins.js.map +1 -0
  543. package/lib/esm/appui-react/layers.scss +1 -1
  544. package/lib/esm/appui-react/layout/StandardLayout.d.ts.map +1 -1
  545. package/lib/esm/appui-react/layout/StandardLayout.js +10 -10
  546. package/lib/esm/appui-react/layout/StandardLayout.js.map +1 -1
  547. package/lib/esm/appui-react/layout/_widgetopacity.scss +3 -1
  548. package/lib/esm/appui-react/layout/base/DragManager.js +2 -1
  549. package/lib/esm/appui-react/layout/base/DragManager.js.map +1 -1
  550. package/lib/esm/appui-react/layout/base/NineZone.js +1 -1
  551. package/lib/esm/appui-react/layout/base/NineZone.js.map +1 -1
  552. package/lib/esm/appui-react/layout/base/usePointerCaptor.d.ts.map +1 -1
  553. package/lib/esm/appui-react/layout/base/usePointerCaptor.js +3 -0
  554. package/lib/esm/appui-react/layout/base/usePointerCaptor.js.map +1 -1
  555. package/lib/esm/appui-react/layout/outline/TabOutline.js +1 -1
  556. package/lib/esm/appui-react/layout/outline/TabOutline.js.map +1 -1
  557. package/lib/esm/appui-react/layout/outline/WidgetOutline.js +1 -1
  558. package/lib/esm/appui-react/layout/outline/WidgetOutline.js.map +1 -1
  559. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js +14 -12
  560. package/lib/esm/appui-react/layout/state/NineZoneStateReducer.js.map +1 -1
  561. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js +2 -1
  562. package/lib/esm/appui-react/layout/state/internal/NineZoneStateHelpers.js.map +1 -1
  563. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js +3 -2
  564. package/lib/esm/appui-react/layout/state/internal/TabStateHelpers.js.map +1 -1
  565. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js +4 -4
  566. package/lib/esm/appui-react/layout/state/internal/WidgetStateHelpers.js.map +1 -1
  567. package/lib/esm/appui-react/layout/target/TitleBarTarget.js +1 -1
  568. package/lib/esm/appui-react/layout/target/TitleBarTarget.js.map +1 -1
  569. package/lib/esm/appui-react/layout/widget/Content.d.ts.map +1 -1
  570. package/lib/esm/appui-react/layout/widget/Content.js +5 -5
  571. package/lib/esm/appui-react/layout/widget/Content.js.map +1 -1
  572. package/lib/esm/appui-react/layout/widget/ContentRenderer.js +2 -2
  573. package/lib/esm/appui-react/layout/widget/ContentRenderer.js.map +1 -1
  574. package/lib/esm/appui-react/layout/widget/FloatingTab.js +6 -5
  575. package/lib/esm/appui-react/layout/widget/FloatingTab.js.map +1 -1
  576. package/lib/esm/appui-react/layout/widget/FloatingWidget.js +4 -2
  577. package/lib/esm/appui-react/layout/widget/FloatingWidget.js.map +1 -1
  578. package/lib/esm/appui-react/layout/widget/NavigationArea.scss +4 -1
  579. package/lib/esm/appui-react/layout/widget/PanelWidget.js +1 -1
  580. package/lib/esm/appui-react/layout/widget/PanelWidget.js.map +1 -1
  581. package/lib/esm/appui-react/layout/widget/Tab.js +4 -4
  582. package/lib/esm/appui-react/layout/widget/Tab.js.map +1 -1
  583. package/lib/esm/appui-react/layout/widget/ToolsArea.scss +2 -0
  584. package/lib/esm/appui-react/layout/widget/Widget.d.ts.map +1 -1
  585. package/lib/esm/appui-react/layout/widget/Widget.js +2 -2
  586. package/lib/esm/appui-react/layout/widget/Widget.js.map +1 -1
  587. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js +1 -1
  588. package/lib/esm/appui-react/layout/widget/useIsToolSettingsTab.js.map +1 -1
  589. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js +8 -5
  590. package/lib/esm/appui-react/layout/widget-panels/PanelSections.js.map +1 -1
  591. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.d.ts +1 -1
  592. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js +2 -1
  593. package/lib/esm/appui-react/layout/widget-panels/useAnimatePanel.js.map +1 -1
  594. package/lib/esm/appui-react/messages/AppNotificationManager.js +1 -1
  595. package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
  596. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  597. package/lib/esm/appui-react/messages/MessageManager.js +6 -6
  598. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  599. package/lib/esm/appui-react/messages/MessageRenderer.js +17 -11
  600. package/lib/esm/appui-react/messages/MessageRenderer.js.map +1 -1
  601. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  602. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +2 -6
  603. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  604. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  605. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +2 -2
  606. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  607. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +0 -1
  608. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  609. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +1 -2
  610. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  611. package/lib/esm/appui-react/pickers/ViewSelector.js +6 -5
  612. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  613. package/lib/esm/appui-react/popup/CardPopup.d.ts +21 -9
  614. package/lib/esm/appui-react/popup/CardPopup.d.ts.map +1 -1
  615. package/lib/esm/appui-react/popup/CardPopup.js +15 -7
  616. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  617. package/lib/esm/appui-react/popup/ComponentPopup.d.ts +18 -0
  618. package/lib/esm/appui-react/popup/ComponentPopup.d.ts.map +1 -0
  619. package/lib/esm/appui-react/popup/ComponentPopup.js +31 -0
  620. package/lib/esm/appui-react/popup/ComponentPopup.js.map +1 -0
  621. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts +4 -1
  622. package/lib/esm/appui-react/popup/HTMLElementPopup.d.ts.map +1 -1
  623. package/lib/esm/appui-react/popup/HTMLElementPopup.js +1 -0
  624. package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
  625. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts +4 -4
  626. package/lib/esm/appui-react/popup/InputEditorPopup.d.ts.map +1 -1
  627. package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
  628. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts +1 -1
  629. package/lib/esm/appui-react/popup/KeyinPalettePanel.d.ts.map +1 -1
  630. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +19 -12
  631. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  632. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts +4 -2
  633. package/lib/esm/appui-react/popup/KeyinPalettePopup.d.ts.map +1 -1
  634. package/lib/esm/appui-react/popup/KeyinPalettePopup.js +9 -3
  635. package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
  636. package/lib/esm/appui-react/popup/PopupManager.d.ts +45 -9
  637. package/lib/esm/appui-react/popup/PopupManager.d.ts.map +1 -1
  638. package/lib/esm/appui-react/popup/PopupManager.js +87 -14
  639. package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
  640. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +16 -6
  641. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  642. package/lib/esm/appui-react/popup/ToolbarPopup.js +9 -3
  643. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  644. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts +3 -1
  645. package/lib/esm/appui-react/preview/PreviewFeatures.d.ts.map +1 -1
  646. package/lib/esm/appui-react/preview/PreviewFeatures.js +2 -2
  647. package/lib/esm/appui-react/preview/PreviewFeatures.js.map +1 -1
  648. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts +6 -0
  649. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.d.ts.map +1 -0
  650. package/lib/esm/appui-react/{layout/state → preview/activate-dropped-tab}/activateDroppedTab.js +5 -4
  651. package/lib/esm/appui-react/preview/activate-dropped-tab/activateDroppedTab.js.map +1 -0
  652. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts +6 -0
  653. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.d.ts.map +1 -0
  654. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js +14 -0
  655. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.js.map +1 -0
  656. package/lib/esm/appui-react/preview/content-always-max-size/useContentAlwaysMaxSize.scss +10 -0
  657. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts +7 -7
  658. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.d.ts.map +1 -1
  659. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js +7 -7
  660. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.js.map +1 -1
  661. package/lib/esm/appui-react/preview/enable-maximized-widget/useMaximizedWidget.scss +6 -6
  662. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js +1 -1
  663. package/lib/esm/appui-react/preview/horizontal-panel-alignment/PreviewHorizontalPanelAlign.js.map +1 -1
  664. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js +1 -1
  665. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.js.map +1 -1
  666. package/lib/esm/appui-react/preview/horizontal-panel-alignment/useHorizontalPanelAlignment.scss +4 -4
  667. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts +12 -0
  668. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.d.ts.map +1 -0
  669. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js +22 -0
  670. package/lib/esm/appui-react/preview/new-toolbars/ActionItem.js.map +1 -0
  671. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts +9 -0
  672. package/lib/esm/appui-react/preview/new-toolbars/Badge.d.ts.map +1 -0
  673. package/lib/esm/appui-react/preview/new-toolbars/Badge.js +16 -0
  674. package/lib/esm/appui-react/preview/new-toolbars/Badge.js.map +1 -0
  675. package/lib/esm/appui-react/preview/new-toolbars/Badge.scss +13 -0
  676. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts +12 -0
  677. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.d.ts.map +1 -0
  678. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js +33 -0
  679. package/lib/esm/appui-react/preview/new-toolbars/CustomItem.js.map +1 -0
  680. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts +5 -0
  681. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.d.ts.map +1 -0
  682. package/lib/esm/appui-react/{statusbar/Popup.js → preview/new-toolbars/ExpandIndicator.js} +5 -10
  683. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.js.map +1 -0
  684. package/lib/esm/appui-react/preview/new-toolbars/ExpandIndicator.scss +17 -0
  685. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts +22 -0
  686. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.d.ts.map +1 -0
  687. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js +74 -0
  688. package/lib/esm/appui-react/preview/new-toolbars/GroupItem.js.map +1 -0
  689. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts +21 -0
  690. package/lib/esm/appui-react/preview/new-toolbars/Item.d.ts.map +1 -0
  691. package/lib/esm/appui-react/preview/new-toolbars/Item.js +49 -0
  692. package/lib/esm/appui-react/preview/new-toolbars/Item.js.map +1 -0
  693. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts +17 -0
  694. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.d.ts.map +1 -0
  695. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js +34 -0
  696. package/lib/esm/appui-react/preview/new-toolbars/OverflowButton.js.map +1 -0
  697. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts +18 -0
  698. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.d.ts.map +1 -0
  699. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js +81 -0
  700. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.js.map +1 -0
  701. package/lib/esm/appui-react/preview/new-toolbars/ToolGroup.scss +43 -0
  702. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts +23 -0
  703. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.d.ts.map +1 -0
  704. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js +36 -0
  705. package/lib/esm/appui-react/preview/new-toolbars/Toolbar.js.map +1 -0
  706. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts +9 -0
  707. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.d.ts.map +1 -0
  708. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js +89 -0
  709. package/lib/esm/appui-react/preview/new-toolbars/useOverflow.js.map +1 -0
  710. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js +2 -1
  711. package/lib/esm/appui-react/preview/widget-action-dropdown/MoreButton.js.map +1 -1
  712. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  713. package/lib/esm/appui-react/redux/SessionState.d.ts +15 -3
  714. package/lib/esm/appui-react/redux/SessionState.d.ts.map +1 -1
  715. package/lib/esm/appui-react/redux/SessionState.js +8 -1
  716. package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
  717. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +2 -2
  718. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  719. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  720. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +6 -8
  721. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  722. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.d.ts.map +1 -1
  723. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js +7 -7
  724. package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
  725. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  726. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +40 -46
  727. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  728. package/lib/esm/appui-react/shared/ConditionalValue.d.ts +17 -0
  729. package/lib/esm/appui-react/shared/ConditionalValue.d.ts.map +1 -0
  730. package/lib/esm/appui-react/shared/ConditionalValue.js +13 -0
  731. package/lib/esm/appui-react/shared/ConditionalValue.js.map +1 -0
  732. package/lib/esm/appui-react/shared/ItemDefBase.d.ts +2 -2
  733. package/lib/esm/appui-react/shared/ItemDefBase.d.ts.map +1 -1
  734. package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
  735. package/lib/esm/appui-react/shared/ItemProps.d.ts +13 -2
  736. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  737. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  738. package/lib/esm/appui-react/shared/MenuItem.d.ts +21 -2
  739. package/lib/esm/appui-react/shared/MenuItem.d.ts.map +1 -1
  740. package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
  741. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +16 -11
  742. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  743. package/lib/esm/appui-react/statusbar/Indicator.js +2 -1
  744. package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
  745. package/lib/esm/appui-react/statusbar/Overflow.d.ts.map +1 -1
  746. package/lib/esm/appui-react/statusbar/Overflow.js +3 -3
  747. package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
  748. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -1
  749. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  750. package/lib/esm/appui-react/statusbar/StatusBar.js +6 -4
  751. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  752. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +2 -2
  753. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  754. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  755. package/lib/esm/appui-react/statusbar/{Popup.d.ts → popup/Popup.d.ts} +2 -1
  756. package/lib/esm/appui-react/statusbar/popup/Popup.d.ts.map +1 -0
  757. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.js +8 -9
  758. package/lib/esm/appui-react/statusbar/popup/Popup.js.map +1 -0
  759. package/lib/esm/appui-react/{layout/footer → statusbar/popup}/Popup.scss +1 -7
  760. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  761. package/lib/esm/appui-react/statusfields/ActivityCenter.js +4 -4
  762. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  763. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +0 -1
  764. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  765. package/lib/esm/appui-react/statusfields/MessageCenter.js +4 -4
  766. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  767. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  768. package/lib/esm/appui-react/statusfields/SectionsField.js +7 -10
  769. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  770. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  771. package/lib/esm/appui-react/statusfields/SelectionScope.js +4 -4
  772. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  773. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  774. package/lib/esm/appui-react/statusfields/SnapMode.js +14 -12
  775. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  776. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts +0 -2
  777. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  778. package/lib/esm/appui-react/statusfields/ViewAttributes.js +12 -20
  779. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  780. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  781. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  782. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  783. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  784. package/lib/esm/appui-react/theme/ThemeManager.js +3 -2
  785. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  786. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.d.ts.map +1 -1
  787. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js +2 -3
  788. package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
  789. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +4 -3
  790. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  791. package/lib/esm/appui-react/toolbar/Toolbar.js +29 -5
  792. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  793. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +4 -2
  794. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  795. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +15 -12
  796. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  797. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  798. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +5 -6
  799. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  800. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +2 -2
  801. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  802. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  803. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +4 -3
  804. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  805. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  806. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +18 -11
  807. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  808. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +2 -3
  809. package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
  810. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +22 -20
  811. package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
  812. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +10 -9
  813. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  814. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +2 -1
  815. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  816. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +14 -8
  817. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  818. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts +47 -38
  819. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.d.ts.map +1 -1
  820. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +100 -141
  821. package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
  822. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
  823. package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
  824. package/lib/esm/appui-react/useTranslation.d.ts +10 -0
  825. package/lib/esm/appui-react/useTranslation.d.ts.map +1 -0
  826. package/lib/esm/appui-react/useTranslation.js +16 -0
  827. package/lib/esm/appui-react/useTranslation.js.map +1 -0
  828. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
  829. package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
  830. package/lib/esm/appui-react/utils/Placement.d.ts +35 -0
  831. package/lib/esm/appui-react/utils/Placement.d.ts.map +1 -0
  832. package/lib/esm/appui-react/utils/Placement.js +57 -0
  833. package/lib/esm/appui-react/utils/Placement.js.map +1 -0
  834. package/lib/esm/appui-react/utils/PropsHelper.js +4 -4
  835. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  836. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  837. package/lib/esm/appui-react/widget-panels/Content.js +12 -11
  838. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  839. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  840. package/lib/esm/appui-react/widget-panels/Frontstage.js +30 -23
  841. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  842. package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
  843. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  844. package/lib/esm/appui-react/widget-panels/Tab.d.ts +1 -1
  845. package/lib/esm/appui-react/widget-panels/Tab.d.ts.map +1 -1
  846. package/lib/esm/appui-react/widget-panels/Tab.js +2 -3
  847. package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
  848. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts +1 -1
  849. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  850. package/lib/esm/appui-react/widget-panels/ToolSettings.js +53 -66
  851. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  852. package/lib/esm/appui-react/widget-panels/Toolbars.js +3 -2
  853. package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
  854. package/lib/esm/appui-react/widget-panels/Toolbars.scss +3 -1
  855. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  856. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -1
  857. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  858. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.d.ts.map +1 -1
  859. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +5 -3
  860. package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
  861. package/lib/esm/appui-react/widgets/Widget.d.ts +2 -2
  862. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -1
  863. package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
  864. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -3
  865. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  866. package/lib/esm/appui-react/widgets/WidgetDef.js +59 -17
  867. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  868. package/lib/esm/appui-react/widgets/WidgetHost.js +3 -2
  869. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  870. package/lib/esm/appui-react/widgets/useWidget.js +1 -1
  871. package/lib/esm/appui-react/widgets/useWidget.js.map +1 -1
  872. package/lib/esm/appui-react.d.ts +3 -1
  873. package/lib/esm/appui-react.d.ts.map +1 -1
  874. package/lib/esm/appui-react.js +3 -1
  875. package/lib/esm/appui-react.js.map +1 -1
  876. package/lib/public/locales/en/UiFramework.json +7 -1
  877. package/package.json +10 -8
  878. package/lib/cjs/appui-react/layout/footer/Popup.d.ts +0 -12
  879. package/lib/cjs/appui-react/layout/footer/Popup.d.ts.map +0 -1
  880. package/lib/cjs/appui-react/layout/footer/Popup.js.map +0 -1
  881. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  882. package/lib/cjs/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  883. package/lib/cjs/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  884. package/lib/cjs/appui-react/statusbar/Popup.d.ts.map +0 -1
  885. package/lib/cjs/appui-react/statusbar/Popup.js.map +0 -1
  886. package/lib/esm/appui-react/layout/footer/Popup.d.ts +0 -12
  887. package/lib/esm/appui-react/layout/footer/Popup.d.ts.map +0 -1
  888. package/lib/esm/appui-react/layout/footer/Popup.js.map +0 -1
  889. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts +0 -5
  890. package/lib/esm/appui-react/layout/state/activateDroppedTab.d.ts.map +0 -1
  891. package/lib/esm/appui-react/layout/state/activateDroppedTab.js.map +0 -1
  892. package/lib/esm/appui-react/statusbar/Popup.d.ts.map +0 -1
  893. package/lib/esm/appui-react/statusbar/Popup.js.map +0 -1
@@ -57,12 +57,12 @@ export function isNoSelectionActive() {
57
57
  UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState
58
58
  .sessionState.numItemsSelected;
59
59
  // istanbul ignore if
60
- if (activeContentControl?.viewport) {
60
+ if (activeContentControl === null || activeContentControl === void 0 ? void 0 : activeContentControl.viewport) {
61
61
  const hiddenElementsSet = activeContentControl.viewport.neverDrawn;
62
62
  const selectedElementsSet = activeContentControl.viewport.view.iModel.selectionSet.elements;
63
63
  // TODO: add check for categories, subcategories and models
64
64
  if (selectionCount > 0 ||
65
- ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value)))
65
+ ![...selectedElementsSet].every((value) => hiddenElementsSet === null || hiddenElementsSet === void 0 ? void 0 : hiddenElementsSet.has(value)))
66
66
  return false;
67
67
  }
68
68
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"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 { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SelectionContextItemDef.js","sourceRoot":"","sources":["../../../../src/appui-react/selection/SelectionContextItemDef.ts"],"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 { ConditionalBooleanValue } from \"@itwin/appui-abstract\";\nimport { SessionStateActionId } from \"../redux/SessionState\";\nimport { CommandItemDef } from \"../shared/CommandItemDef\";\nimport type { BaseItemState } from \"../shared/ItemDefBase\";\nimport { SyncUiEventId } from \"../syncui/SyncUiEventDispatcher\";\nimport { GroupItemDef } from \"../toolbar/GroupItem\";\nimport { UiFramework } from \"../UiFramework\";\nimport svgModelIsolate from \"@bentley/icons-generic/icons/model-isolate.svg\";\nimport svgLayersIsolate from \"@bentley/icons-generic/icons/layers-isolate.svg\";\nimport svgAssetIsolate from \"@bentley/icons-generic/icons/asset-isolate.svg\";\nimport svgIsolate from \"@bentley/icons-generic/icons/isolate.svg\";\nimport svgModelHide from \"@bentley/icons-generic/icons/model-hide.svg\";\nimport svgLayersHide from \"@bentley/icons-generic/icons/layers-hide.svg\";\nimport svgAssetClassificationHide from \"@bentley/icons-generic/icons/asset-classification-hide.svg\";\nimport svgVisibilitySemiTransparent from \"@bentley/icons-generic/icons/visibility-semi-transparent.svg\";\nimport svgVisibilityHide from \"@bentley/icons-generic/icons/visibility-hide_2.svg\";\nimport svgVisibility from \"@bentley/icons-generic/icons/visibility.svg\";\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getFeatureOverrideSyncEventIds(): string[] {\n return [\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function getSelectionContextSyncEventIds(): string[] {\n return [\n SyncUiEventId.SelectionSetChanged,\n SyncUiEventId.ActiveContentChanged,\n SyncUiEventId.ActiveViewportChanged,\n SessionStateActionId.SetNumItemsSelected,\n SyncUiEventId.FeatureOverridesChanged,\n SyncUiEventId.ViewedModelsChanged,\n ];\n}\n\n/** return SyncEventIds that trigger selection state function refresh.\n * @beta\n */\nexport function isNoSelectionActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let selectionCount = 0;\n // istanbul ignore if\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n // istanbul ignore if\n if (activeContentControl?.viewport) {\n const hiddenElementsSet = activeContentControl.viewport.neverDrawn;\n const selectedElementsSet =\n activeContentControl.viewport.view.iModel.selectionSet.elements;\n // TODO: add check for categories, subcategories and models\n if (\n selectionCount > 0 ||\n ![...selectedElementsSet].every((value) => hiddenElementsSet?.has(value))\n )\n return false;\n }\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function areNoFeatureOverridesActive(): boolean {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n return !UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return true;\n}\n\n/** return ConditionalBooleanValue object used to show item if feature overrides are active.\n * @beta\n */\nexport function getIsHiddenIfFeatureOverridesActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n areNoFeatureOverridesActive,\n getFeatureOverrideSyncEventIds()\n );\n}\n\n/** return ConditionalBooleanValue object used to show items if selection set is active.\n * @beta\n */\nexport function getIsHiddenIfSelectionNotActive(): ConditionalBooleanValue {\n return new ConditionalBooleanValue(\n isNoSelectionActive,\n getSelectionContextSyncEventIds()\n );\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function featureOverridesActiveStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n // istanbul ignore next\n if (activeContentControl && activeContentControl.viewport)\n isVisible =\n UiFramework.hideIsolateEmphasizeActionHandler.areFeatureOverridesActive(\n activeContentControl.viewport\n );\n\n return { ...state, isVisible };\n}\n\n/** return state with isVisible set to true is SectionSet is active.\n * @beta\n */\n// istanbul ignore next\nexport function selectionContextStateFunc(\n state: Readonly<BaseItemState>\n): BaseItemState {\n const activeContentControl = UiFramework.content.getActiveContentControl();\n let isVisible = false;\n\n let selectionCount = 0;\n if (!UiFramework.frameworkStateKey)\n selectionCount =\n UiFramework.store.getState()[UiFramework.frameworkStateKey].frameworkState\n .sessionState.numItemsSelected;\n\n if (\n activeContentControl &&\n activeContentControl.viewport &&\n (activeContentControl.viewport.view.iModel.selectionSet.size > 0 ||\n selectionCount > 0)\n )\n isVisible = true;\n return { ...state, isVisible };\n}\n\n/** Utility Class that provides definitions for tools dependent on current selection. These definitions can be used to populate toolbars.\n * @public\n */\n// istanbul ignore next\nexport class SelectionContextToolDefinitions {\n public static get isolateModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateModel\",\n iconSpec: svgModelIsolate,\n labelKey: \"UiFramework:tools.isolateModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsModel(),\n });\n }\n\n public static get isolateCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateCategory\",\n iconSpec: svgLayersIsolate,\n labelKey: \"UiFramework:tools.isolateCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelectedElementsCategory(),\n });\n }\n\n public static get isolateElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.IsolateSelected\",\n iconSpec: svgAssetIsolate,\n labelKey: \"UiFramework:tools.isolateSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processIsolateSelected(),\n });\n }\n\n public static get isolateSelectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.IsolateSelectionGroup\",\n labelKey: \"UiFramework:tools.isolate\",\n iconSpec: svgIsolate,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.isolateElementsItemDef,\n this.isolateCategoriesInSelectionItemDef,\n this.isolateModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get hideModelsInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideModel\",\n iconSpec: svgModelHide,\n labelKey: \"UiFramework:tools.hideModels\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsModel(),\n });\n }\n\n public static get hideCategoriesInSelectionItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideCategory\",\n iconSpec: svgLayersHide,\n labelKey: \"UiFramework:tools.hideCategories\",\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelectedElementsCategory(),\n });\n }\n\n public static get hideElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.HideSelected\",\n iconSpec: svgAssetClassificationHide,\n labelKey: \"UiFramework:tools.hideSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processHideSelected(),\n });\n }\n\n public static get hideSectionToolGroup() {\n return new GroupItemDef({\n groupId: \"UiFramework.HideSelectionGroup\",\n labelKey: \"UiFramework:tools.hide\",\n iconSpec: svgVisibilityHide,\n isHidden: getIsHiddenIfSelectionNotActive(),\n items: [\n this.hideElementsItemDef,\n this.hideCategoriesInSelectionItemDef,\n this.hideModelsInSelectionItemDef,\n ],\n itemsInColumn: 3,\n });\n }\n\n public static get emphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.EmphasizeSelected\",\n iconSpec: svgVisibilitySemiTransparent,\n labelKey: \"UiFramework:tools.emphasizeSelected\",\n isHidden: getIsHiddenIfSelectionNotActive(),\n execute: async () =>\n UiFramework.hideIsolateEmphasizeActionHandler.processEmphasizeSelected(),\n });\n }\n\n public static get clearHideIsolateEmphasizeElementsItemDef() {\n return new CommandItemDef({\n commandId: \"UiFramework.ClearHideIsolateEmphasize\",\n iconSpec: svgVisibility,\n labelKey: \"UiFramework:tools.clearVisibility\",\n isHidden: getIsHiddenIfFeatureOverridesActive(),\n execute: async () => {\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearEmphasize();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideModels();\n await UiFramework.hideIsolateEmphasizeActionHandler.processClearOverrideCategories();\n },\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAkB1D;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,eAAe,CAAC;IACrC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAC/C,gBAAgB,CAqBlB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,mBAAmB,EACnB,oBAAoB,GACrB,EAAE,gCAAgC,qBA0TlC"}
1
+ {"version":3,"file":"QuantityFormat.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAmB1D;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,eAAe,CAAC;IACrC,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,sCAAsC,CACpD,YAAY,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,GAC/C,gBAAgB,CAqBlB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,mBAAmB,EACnB,oBAAoB,GACrB,EAAE,gCAAgC,qBAkTlC"}
@@ -16,6 +16,7 @@ import { UiFramework } from "../../UiFramework";
16
16
  import { UnitSystemSelector } from "./UnitSystemSelector";
17
17
  import { Button } from "@itwin/itwinui-react";
18
18
  import { SvgMeasure } from "@itwin/itwinui-icons-react";
19
+ import { useTranslation } from "../../useTranslation";
19
20
  function formatAreEqual(obj1, obj2) {
20
21
  const compare = new DeepCompare();
21
22
  return compare.compare(obj1, obj2);
@@ -33,8 +34,7 @@ export function getQuantityFormatsSettingsManagerEntry(itemPriority, opts) {
33
34
  tabId: "uifw:Quantity",
34
35
  label: UiFramework.translate("settings.quantity-formatting.label"),
35
36
  subLabel: UiFramework.translate("settings.quantity-formatting.subLabel"),
36
- page: (React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType ?? QuantityType.Length, availableUnitSystems: availableUnitSystems ??
37
- new Set(["metric", "imperial", "usCustomary", "usSurvey"]) })),
37
+ page: (React.createElement(QuantityFormatSettingsPage, { initialQuantityType: initialQuantityType !== null && initialQuantityType !== void 0 ? initialQuantityType : QuantityType.Length, availableUnitSystems: availableUnitSystems !== null && availableUnitSystems !== void 0 ? availableUnitSystems : new Set(["metric", "imperial", "usCustomary", "usSurvey"]) })),
38
38
  isDisabled: false,
39
39
  icon: React.createElement(SvgMeasure, null),
40
40
  tooltip: UiFramework.translate("settings.quantity-formatting.tooltip"),
@@ -45,15 +45,13 @@ export function getQuantityFormatsSettingsManagerEntry(itemPriority, opts) {
45
45
  * @beta
46
46
  */
47
47
  export function QuantityFormatSettingsPage({ initialQuantityType, availableUnitSystems, }) {
48
+ const { translate } = useTranslation();
48
49
  const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(IModelApp.quantityFormatter.activeUnitSystem);
49
50
  const [activeQuantityType, setActiveQuantityType] = React.useState(getQuantityTypeKey(initialQuantityType));
50
51
  const [activeFormatterSpec, setActiveFormatterSpec] = React.useState(IModelApp.quantityFormatter.findFormatterSpecByQuantityType(getQuantityTypeKey(activeQuantityType)));
51
52
  const [saveEnabled, setSaveEnabled] = React.useState(false);
52
53
  const [clearEnabled, setClearEnabled] = React.useState(IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true));
53
54
  const newQuantityTypeRef = React.useRef();
54
- const formatSectionLabel = React.useRef(UiFramework.translate("settings.quantity-formatting.formatSectionLabel"));
55
- const setButtonLabel = React.useRef(UiFramework.translate("settings.quantity-formatting.setButtonLabel"));
56
- const clearButtonLabel = React.useRef(UiFramework.translate("settings.quantity-formatting.clearButtonLabel"));
57
55
  React.useEffect(() => {
58
56
  const handleUnitSystemChanged = () => {
59
57
  // istanbul ignore else
@@ -160,7 +158,7 @@ export function QuantityFormatSettingsPage({ initialQuantityType, availableUnitS
160
158
  }, [activeUnitSystemKey, processNewUnitSystem, saveChanges]);
161
159
  return (React.createElement("div", { className: "quantity-formatting-container" },
162
160
  React.createElement(UnitSystemSelector, { selectedUnitSystemKey: activeUnitSystemKey, availableUnitSystems: availableUnitSystems, onUnitSystemSelected: handleUnitSystemSelected }),
163
- React.createElement("span", { className: "uifw-quantity-format-section-label" }, formatSectionLabel.current),
161
+ React.createElement("span", { className: "uifw-quantity-format-section-label" }, translate("settings.quantity-formatting.formatSectionLabel")),
164
162
  React.createElement("div", { className: "uifw-quantity-types-container" },
165
163
  React.createElement("div", { className: "left-panel" },
166
164
  React.createElement(Listbox, { id: "uifw-quantity-types-list", className: "uifw-quantity-types", onListboxValueChange: onListboxValueChange, selectedValue: activeQuantityType }, [...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map((key) => {
@@ -177,8 +175,8 @@ export function QuantityFormatSettingsPage({ initialQuantityType, availableUnitS
177
175
  React.createElement("div", { className: "uifw-quantity-types-formats" },
178
176
  React.createElement(QuantityFormatPanel, { onFormatChange: handleOnFormatChanged, quantityType: activeQuantityType })),
179
177
  React.createElement("div", { className: "components-button-panel" },
180
- React.createElement(Button, { styleType: "cta", onClick: handleOnFormatSave, disabled: !saveEnabled }, setButtonLabel.current),
181
- React.createElement(Button, { styleType: "default", onClick: handleOnFormatReset, disabled: !clearEnabled }, clearButtonLabel.current))))))));
178
+ React.createElement(Button, { styleType: "cta", onClick: handleOnFormatSave, disabled: !saveEnabled }, translate("settings.quantity-formatting.setButtonLabel")),
179
+ React.createElement(Button, { styleType: "default", onClick: handleOnFormatReset, disabled: !clearEnabled }, translate("settings.quantity-formatting.clearButtonLabel")))))))));
182
180
  }
183
181
  function SaveFormatModalDialog({ formatProps, quantityType, onDialogCloseArgs, onDialogClose, }) {
184
182
  const [isOpen, setIsOpen] = React.useState(true);
@@ -1 +1 @@
1
- {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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 Settings\n */\n\nimport \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type {\n QuantityFormatsChangedArgs,\n QuantityTypeArg,\n QuantityTypeKey,\n} from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport {\n Dialog,\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n const formatSectionLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.formatSectionLabel\")\n );\n const setButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.setButtonLabel\")\n );\n const clearButtonLabel = React.useRef(\n UiFramework.translate(\"settings.quantity-formatting.clearButtonLabel\")\n );\n\n React.useEffect(() => {\n const handleUnitSystemChanged = (): void => {\n // istanbul ignore else\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n };\n\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n handleUnitSystemChanged\n );\n return () => {\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(\n handleUnitSystemChanged\n );\n };\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n const handleFormatChanged = (args: QuantityFormatsChangedArgs): void => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n // istanbul ignore else\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n };\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n handleFormatChanged\n );\n return () => {\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(\n handleFormatChanged\n );\n };\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n // istanbul ignore else\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {formatSectionLabel.current}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {setButtonLabel.current}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {clearButtonLabel.current}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n title={\"Save Format Changes\"}\n opened={isOpen}\n resizable={false}\n movable={false}\n modal={true}\n buttonCluster={[\n { type: DialogButtonType.Yes, onClick: handleOK },\n { type: DialogButtonType.No, onClick: handleCancel },\n ]}\n onEscape={handleCancel}\n onClose={handleCancel}\n onOutsideClick={handleCancel}\n minHeight={150}\n maxHeight={400}\n maxWidth={400}\n minWidth={200}\n >\n <div className=\"modal-dialog2\">\n Do you want to save changes to format before changing to another type?\n </div>\n </Dialog>\n );\n}\n"]}
1
+ {"version":3,"file":"QuantityFormat.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/QuantityFormat.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 Settings\n */\n\nimport \"./QuantityFormat.scss\";\nimport * as React from \"react\";\nimport { DeepCompare } from \"@itwin/core-geometry\";\nimport type {\n QuantityFormatsChangedArgs,\n QuantityTypeArg,\n QuantityTypeKey,\n} from \"@itwin/core-frontend\";\nimport {\n getQuantityTypeKey,\n IModelApp,\n QuantityType,\n} from \"@itwin/core-frontend\";\nimport type {\n FormatProps,\n FormatterSpec,\n UnitSystemKey,\n} from \"@itwin/core-quantity\";\nimport { DialogButtonType } from \"@itwin/appui-abstract\";\nimport {\n FormatSample,\n QuantityFormatPanel,\n} from \"@itwin/imodel-components-react\";\nimport type { SettingsTabEntry } from \"@itwin/core-react\";\nimport {\n Dialog,\n Listbox,\n ListboxItem,\n useSaveBeforeActivatingNewSettingsTab,\n useSaveBeforeClosingSettingsContainer,\n} from \"@itwin/core-react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport { UnitSystemSelector } from \"./UnitSystemSelector\";\nimport { Button } from \"@itwin/itwinui-react\";\nimport { SvgMeasure } from \"@itwin/itwinui-icons-react\";\nimport { useTranslation } from \"../../useTranslation\";\n\nfunction formatAreEqual(obj1: FormatProps, obj2: FormatProps) {\n const compare = new DeepCompare();\n return compare.compare(obj1, obj2);\n}\n\n/** Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport interface QuantityFormatterSettingsOptions {\n initialQuantityType: QuantityTypeArg;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/**\n * Return a SettingsTabEntry that can be used to define the available settings that can be set for an application.\n * @param itemPriority - Used to define the order of the entry in the Settings Stage\n * @param opts - Options to initialize the settings page that allows users to set Quantity formatting overrides.\n * @beta\n */\nexport function getQuantityFormatsSettingsManagerEntry(\n itemPriority: number,\n opts?: Partial<QuantityFormatterSettingsOptions>\n): SettingsTabEntry {\n const { availableUnitSystems, initialQuantityType } = { ...opts };\n return {\n itemPriority,\n tabId: \"uifw:Quantity\",\n label: UiFramework.translate(\"settings.quantity-formatting.label\"),\n subLabel: UiFramework.translate(\"settings.quantity-formatting.subLabel\"),\n page: (\n <QuantityFormatSettingsPage\n initialQuantityType={initialQuantityType ?? QuantityType.Length}\n availableUnitSystems={\n availableUnitSystems ??\n new Set([\"metric\", \"imperial\", \"usCustomary\", \"usSurvey\"])\n }\n />\n ),\n isDisabled: false,\n icon: <SvgMeasure />,\n tooltip: UiFramework.translate(\"settings.quantity-formatting.tooltip\"),\n pageWillHandleCloseRequest: true,\n };\n}\n\n/** UI Component shown in settings page to set the active Presentation Unit System and to set format overrides.\n * @beta\n */\nexport function QuantityFormatSettingsPage({\n initialQuantityType,\n availableUnitSystems,\n}: QuantityFormatterSettingsOptions) {\n const { translate } = useTranslation();\n const [activeUnitSystemKey, setActiveUnitSystemKey] = React.useState(\n IModelApp.quantityFormatter.activeUnitSystem\n );\n const [activeQuantityType, setActiveQuantityType] = React.useState(\n getQuantityTypeKey(initialQuantityType)\n );\n const [activeFormatterSpec, setActiveFormatterSpec] = React.useState<\n FormatterSpec | undefined\n >(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n getQuantityTypeKey(activeQuantityType)\n )\n );\n const [saveEnabled, setSaveEnabled] = React.useState(false);\n const [clearEnabled, setClearEnabled] = React.useState(\n IModelApp.quantityFormatter.hasActiveOverride(initialQuantityType, true)\n );\n const newQuantityTypeRef = React.useRef<QuantityTypeKey>();\n\n React.useEffect(() => {\n const handleUnitSystemChanged = (): void => {\n // istanbul ignore else\n if (\n activeUnitSystemKey !== IModelApp.quantityFormatter.activeUnitSystem\n ) {\n setActiveUnitSystemKey(IModelApp.quantityFormatter.activeUnitSystem);\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n };\n\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.addListener(\n handleUnitSystemChanged\n );\n return () => {\n IModelApp.quantityFormatter.onActiveFormattingUnitSystemChanged.removeListener(\n handleUnitSystemChanged\n );\n };\n }, [activeQuantityType, activeUnitSystemKey]);\n\n React.useEffect(() => {\n const handleFormatChanged = (args: QuantityFormatsChangedArgs): void => {\n if (!newQuantityTypeRef.current) {\n const quantityKey =\n IModelApp.quantityFormatter.getQuantityTypeKey(activeQuantityType);\n // istanbul ignore else\n if (args.quantityType === quantityKey) {\n setActiveFormatterSpec(\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n activeQuantityType\n )\n );\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(\n activeQuantityType,\n true\n )\n );\n }\n }\n newQuantityTypeRef.current = undefined;\n };\n IModelApp.quantityFormatter.onQuantityFormatsChanged.addListener(\n handleFormatChanged\n );\n return () => {\n IModelApp.quantityFormatter.onQuantityFormatsChanged.removeListener(\n handleFormatChanged\n );\n };\n }, [activeQuantityType]);\n\n const saveChanges = React.useCallback(\n (afterSaveFunction: (args: any) => void, args?: any) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={args}\n onDialogClose={afterSaveFunction}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n afterSaveFunction(args);\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n useSaveBeforeActivatingNewSettingsTab(\n UiFramework.settingsManager,\n saveChanges\n );\n useSaveBeforeClosingSettingsContainer(\n UiFramework.settingsManager,\n saveChanges\n );\n\n const processListboxValueChange = React.useCallback(\n (newQuantityType: QuantityTypeKey) => {\n const volumeFormatterSpec =\n IModelApp.quantityFormatter.findFormatterSpecByQuantityType(\n newQuantityType\n );\n setActiveFormatterSpec(volumeFormatterSpec);\n setActiveQuantityType(newQuantityType);\n setSaveEnabled(false);\n setClearEnabled(\n IModelApp.quantityFormatter.hasActiveOverride(newQuantityType, true)\n );\n },\n []\n );\n\n const onListboxValueChange = React.useCallback(\n (newQuantityType: string) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const formatProps = activeFormatterSpec.format.toJSON();\n const formatPropsInUse = IModelApp.quantityFormatter\n .findFormatterSpecByQuantityType(activeQuantityType)!\n .format.toJSON();\n if (\n formatPropsInUse &&\n !formatAreEqual(formatProps, formatPropsInUse)\n ) {\n newQuantityTypeRef.current = newQuantityType;\n UiFramework.dialogs.modal.open(\n <SaveFormatModalDialog\n formatProps={formatProps}\n quantityType={activeQuantityType}\n onDialogCloseArgs={newQuantityType}\n onDialogClose={processListboxValueChange}\n />,\n \"saveQuantityFormat\"\n );\n return;\n }\n }\n processListboxValueChange(newQuantityType);\n },\n [activeFormatterSpec, activeQuantityType, processListboxValueChange]\n );\n\n const handleOnFormatChanged = React.useCallback(\n async (formatProps: FormatProps) => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const newSpec =\n await IModelApp.quantityFormatter.generateFormatterSpecByType(\n activeQuantityType,\n formatProps\n );\n const formatPropsInUse =\n IModelApp.quantityFormatter.getFormatPropsByQuantityType(\n activeQuantityType\n );\n // istanbul ignore else\n if (formatPropsInUse)\n setSaveEnabled(!formatAreEqual(formatProps, formatPropsInUse));\n setActiveFormatterSpec(newSpec);\n }\n },\n [activeFormatterSpec, activeQuantityType]\n );\n\n const handleOnFormatSave = React.useCallback(async () => {\n // istanbul ignore else\n if (activeFormatterSpec) {\n const format = activeFormatterSpec.format.toJSON();\n await IModelApp.quantityFormatter.setOverrideFormat(\n activeQuantityType,\n format\n );\n setClearEnabled(true);\n }\n }, [activeFormatterSpec, activeQuantityType]);\n\n const handleOnFormatReset = React.useCallback(async () => {\n await IModelApp.quantityFormatter.clearOverrideFormats(activeQuantityType);\n setClearEnabled(false);\n }, [activeQuantityType]);\n\n const processNewUnitSystem = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n await IModelApp.quantityFormatter.setActiveUnitSystem(unitSystem);\n },\n []\n );\n\n const handleUnitSystemSelected = React.useCallback(\n async (unitSystem: UnitSystemKey) => {\n if (unitSystem === activeUnitSystemKey) return;\n saveChanges(processNewUnitSystem, unitSystem);\n },\n [activeUnitSystemKey, processNewUnitSystem, saveChanges]\n );\n\n return (\n <div className=\"quantity-formatting-container\">\n <UnitSystemSelector\n selectedUnitSystemKey={activeUnitSystemKey}\n availableUnitSystems={availableUnitSystems}\n onUnitSystemSelected={handleUnitSystemSelected}\n />\n <span className=\"uifw-quantity-format-section-label\">\n {translate(\"settings.quantity-formatting.formatSectionLabel\")}\n </span>\n <div className=\"uifw-quantity-types-container\">\n <div className=\"left-panel\">\n <Listbox\n id=\"uifw-quantity-types-list\"\n className=\"uifw-quantity-types\"\n onListboxValueChange={onListboxValueChange}\n selectedValue={activeQuantityType}\n >\n {[...IModelApp.quantityFormatter.quantityTypesRegistry.keys()].map(\n (key) => {\n const entry =\n IModelApp.quantityFormatter.quantityTypesRegistry.get(key)!;\n const description = entry.description;\n const label = entry.label;\n return (\n <ListboxItem\n key={entry.key}\n className=\"quantity-type-list-entry\"\n value={entry.key}\n >\n <span\n className=\"map-source-list-entry-name\"\n title={description}\n >\n {label}\n </span>\n </ListboxItem>\n );\n }\n )}\n </Listbox>\n </div>\n <div className=\"right-panel\">\n {activeFormatterSpec && (\n <>\n <div className=\"uifw-quantity-types-right-top\">\n <div className=\"uifw-quantity-types-right-top-sample\">\n <FormatSample\n formatSpec={activeFormatterSpec}\n initialMagnitude={1234.56}\n hideLabels\n />\n </div>\n </div>\n <div className=\"uifw-quantity-types-formats\">\n <QuantityFormatPanel\n onFormatChange={handleOnFormatChanged}\n quantityType={activeQuantityType}\n />\n </div>\n <div className=\"components-button-panel\">\n <Button\n styleType=\"cta\"\n onClick={handleOnFormatSave}\n disabled={!saveEnabled}\n >\n {translate(\"settings.quantity-formatting.setButtonLabel\")}\n </Button>\n <Button\n styleType=\"default\"\n onClick={handleOnFormatReset}\n disabled={!clearEnabled}\n >\n {translate(\"settings.quantity-formatting.clearButtonLabel\")}\n </Button>\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SaveFormatModalDialog({\n formatProps,\n quantityType,\n onDialogCloseArgs,\n onDialogClose,\n}: {\n formatProps: FormatProps;\n quantityType: QuantityTypeKey;\n onDialogCloseArgs?: any;\n onDialogClose: (args?: any) => void;\n}) {\n const [isOpen, setIsOpen] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setIsOpen(false);\n UiFramework.dialogs.modal.close();\n onDialogClose && onDialogClose(onDialogCloseArgs);\n }, [onDialogClose, onDialogCloseArgs]);\n\n const handleOK = React.useCallback(() => {\n void IModelApp.quantityFormatter.setOverrideFormat(\n quantityType,\n formatProps\n );\n handleClose();\n }, [formatProps, handleClose, quantityType]);\n\n const handleCancel = React.useCallback(() => {\n handleClose();\n }, [handleClose]);\n\n return (\n <Dialog\n title={\"Save Format Changes\"}\n opened={isOpen}\n resizable={false}\n movable={false}\n modal={true}\n buttonCluster={[\n { type: DialogButtonType.Yes, onClick: handleOK },\n { type: DialogButtonType.No, onClick: handleCancel },\n ]}\n onEscape={handleCancel}\n onClose={handleCancel}\n onOutsideClick={handleCancel}\n minHeight={150}\n maxHeight={400}\n maxWidth={400}\n minWidth={200}\n >\n <div className=\"modal-dialog2\">\n Do you want to save changes to format before changing to another type?\n </div>\n </Dialog>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UnitSystemSelector.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,aAAa,CAAC;IACrC,oBAAoB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBA2DhE"}
1
+ {"version":3,"file":"UnitSystemSelector.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAK1D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,qBAAqB,EAAE,aAAa,CAAC;IACrC,oBAAoB,EAAE,CAAC,UAAU,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,oBAAoB,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBA0DhE"}
@@ -6,13 +6,13 @@
6
6
  * @module Settings
7
7
  */
8
8
  import * as React from "react";
9
- import { UiFramework } from "../../UiFramework";
10
9
  import { Select } from "@itwin/itwinui-react";
10
+ import { useTranslation } from "../../useTranslation";
11
11
  /** Select control to set the "active" Presentation Unit System. This setting determine what units are display for quantity values (i.e. foot vs meter).
12
12
  * @alpha
13
13
  */
14
14
  export function UnitSystemSelector(props) {
15
- const label = React.useRef(UiFramework.translate("presentationUnitSystem.selector-label"));
15
+ const { translate } = useTranslation();
16
16
  const { selectedUnitSystemKey, onUnitSystemSelected, availableUnitSystems } = props;
17
17
  const handleUnitSystemSelected = React.useCallback((newValue) => {
18
18
  onUnitSystemSelected && onUnitSystemSelected(newValue);
@@ -24,23 +24,23 @@ export function UnitSystemSelector(props) {
24
24
  case "imperial":
25
25
  return {
26
26
  value: "imperial",
27
- label: UiFramework.translate("presentationUnitSystem.BritishImperial"),
27
+ label: translate("presentationUnitSystem.BritishImperial"),
28
28
  };
29
29
  case "usCustomary":
30
30
  return {
31
31
  value: "usCustomary",
32
- label: UiFramework.translate("presentationUnitSystem.USCustomary"),
32
+ label: translate("presentationUnitSystem.USCustomary"),
33
33
  };
34
34
  case "usSurvey":
35
35
  return {
36
36
  value: "usSurvey",
37
- label: UiFramework.translate("presentationUnitSystem.USSurvey"),
37
+ label: translate("presentationUnitSystem.USSurvey"),
38
38
  };
39
39
  case "metric":
40
40
  default:
41
41
  return {
42
42
  value: "metric",
43
- label: UiFramework.translate("presentationUnitSystem.Metric"),
43
+ label: translate("presentationUnitSystem.Metric"),
44
44
  };
45
45
  }
46
46
  });
@@ -48,7 +48,7 @@ export function UnitSystemSelector(props) {
48
48
  ? selectedUnitSystemKey
49
49
  : displayUnitSystems[0].value;
50
50
  return (React.createElement("div", { className: "quantity-unit-system-selector-container" },
51
- React.createElement("span", { className: "uicore-label" }, label.current),
51
+ React.createElement("span", { className: "uicore-label" }, translate("presentationUnitSystem.selector-label")),
52
52
  React.createElement(Select, { "data-testid": "unitSystemSelector", value: unitSystemKey, options: displayUnitSystems, onChange: handleUnitSystemSelected, size: "small" })));
53
53
  }
54
54
  //# sourceMappingURL=UnitSystemSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnitSystemSelector.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAW9C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,WAAW,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAC/D,CAAC;IACF,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GACzE,KAAK,CAAC;IACR,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAChD,CAAC,QAAuB,EAAE,EAAE;QAC1B,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,EACD,CAAC,oBAAoB,CAAC,CACvB,CAAC;IAEF,MAAM,kBAAkB,GAAkC;QACxD,GAAG,oBAAoB,CAAC,MAAM,EAAE;KACjC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,QAAQ,GAAG,EAAE;YACX,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAC1B,wCAAwC,CACzC;iBACF,CAAC;YACJ,KAAK,aAAa;gBAChB,OAAO;oBACL,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oCAAoC,CAAC;iBACnE,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,iCAAiC,CAAC;iBAChE,CAAC;YACJ,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO;oBACL,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC;iBAC9D,CAAC;SACL;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnE,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhC,OAAO,CACL,6BAAK,SAAS,EAAC,yCAAyC;QACtD,8BAAM,SAAS,EAAE,cAAc,IAAG,KAAK,CAAC,OAAO,CAAQ;QACvD,oBAAC,MAAM,mBACO,oBAAoB,EAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,IAAI,EAAC,OAAO,GACZ,CACE,CACP,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 Settings\n */\n\nimport * as React from \"react\";\nimport { UiFramework } from \"../../UiFramework\";\nimport type { UnitSystemKey } from \"@itwin/core-quantity\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select } from \"@itwin/itwinui-react\";\n\n/** Props for [[UnitSystemSelector]]\n * @beta\n */\nexport interface UnitSystemSelectorProps {\n selectedUnitSystemKey: UnitSystemKey;\n onUnitSystemSelected: (unitSystem: UnitSystemKey) => void;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/** Select control to set the \"active\" Presentation Unit System. This setting determine what units are display for quantity values (i.e. foot vs meter).\n * @alpha\n */\nexport function UnitSystemSelector(props: UnitSystemSelectorProps) {\n const label = React.useRef(\n UiFramework.translate(\"presentationUnitSystem.selector-label\")\n );\n const { selectedUnitSystemKey, onUnitSystemSelected, availableUnitSystems } =\n props;\n const handleUnitSystemSelected = React.useCallback(\n (newValue: UnitSystemKey) => {\n onUnitSystemSelected && onUnitSystemSelected(newValue);\n },\n [onUnitSystemSelected]\n );\n\n const displayUnitSystems: SelectOption<UnitSystemKey>[] = [\n ...availableUnitSystems.values(),\n ].map((sys) => {\n switch (sys) {\n case \"imperial\":\n return {\n value: \"imperial\",\n label: UiFramework.translate(\n \"presentationUnitSystem.BritishImperial\"\n ),\n };\n case \"usCustomary\":\n return {\n value: \"usCustomary\",\n label: UiFramework.translate(\"presentationUnitSystem.USCustomary\"),\n };\n case \"usSurvey\":\n return {\n value: \"usSurvey\",\n label: UiFramework.translate(\"presentationUnitSystem.USSurvey\"),\n };\n case \"metric\":\n default:\n return {\n value: \"metric\",\n label: UiFramework.translate(\"presentationUnitSystem.Metric\"),\n };\n }\n });\n\n const unitSystemKey = availableUnitSystems.has(selectedUnitSystemKey)\n ? selectedUnitSystemKey\n : displayUnitSystems[0].value;\n\n return (\n <div className=\"quantity-unit-system-selector-container\">\n <span className={\"uicore-label\"}>{label.current}</span>\n <Select\n data-testid=\"unitSystemSelector\"\n value={unitSystemKey}\n options={displayUnitSystems}\n onChange={handleUnitSystemSelected}\n size=\"small\"\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"UnitSystemSelector.js","sourceRoot":"","sources":["../../../../../src/appui-react/settings/quantityformatting/UnitSystemSelector.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAWtD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IAEvC,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,GACzE,KAAK,CAAC;IACR,MAAM,wBAAwB,GAAG,KAAK,CAAC,WAAW,CAChD,CAAC,QAAuB,EAAE,EAAE;QAC1B,oBAAoB,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC,EACD,CAAC,oBAAoB,CAAC,CACvB,CAAC;IAEF,MAAM,kBAAkB,GAAkC;QACxD,GAAG,oBAAoB,CAAC,MAAM,EAAE;KACjC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,QAAQ,GAAG,EAAE;YACX,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,SAAS,CAAC,wCAAwC,CAAC;iBAC3D,CAAC;YACJ,KAAK,aAAa;gBAChB,OAAO;oBACL,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,SAAS,CAAC,oCAAoC,CAAC;iBACvD,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE,SAAS,CAAC,iCAAiC,CAAC;iBACpD,CAAC;YACJ,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO;oBACL,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,SAAS,CAAC,+BAA+B,CAAC;iBAClD,CAAC;SACL;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC;QACnE,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhC,OAAO,CACL,6BAAK,SAAS,EAAC,yCAAyC;QACtD,8BAAM,SAAS,EAAE,cAAc,IAC5B,SAAS,CAAC,uCAAuC,CAAC,CAC9C;QACP,oBAAC,MAAM,mBACO,oBAAoB,EAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,IAAI,EAAC,OAAO,GACZ,CACE,CACP,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 Settings\n */\n\nimport * as React from \"react\";\nimport type { UnitSystemKey } from \"@itwin/core-quantity\";\nimport type { SelectOption } from \"@itwin/itwinui-react\";\nimport { Select } from \"@itwin/itwinui-react\";\nimport { useTranslation } from \"../../useTranslation\";\n\n/** Props for [[UnitSystemSelector]]\n * @beta\n */\nexport interface UnitSystemSelectorProps {\n selectedUnitSystemKey: UnitSystemKey;\n onUnitSystemSelected: (unitSystem: UnitSystemKey) => void;\n availableUnitSystems: Set<UnitSystemKey>;\n}\n\n/** Select control to set the \"active\" Presentation Unit System. This setting determine what units are display for quantity values (i.e. foot vs meter).\n * @alpha\n */\nexport function UnitSystemSelector(props: UnitSystemSelectorProps) {\n const { translate } = useTranslation();\n\n const { selectedUnitSystemKey, onUnitSystemSelected, availableUnitSystems } =\n props;\n const handleUnitSystemSelected = React.useCallback(\n (newValue: UnitSystemKey) => {\n onUnitSystemSelected && onUnitSystemSelected(newValue);\n },\n [onUnitSystemSelected]\n );\n\n const displayUnitSystems: SelectOption<UnitSystemKey>[] = [\n ...availableUnitSystems.values(),\n ].map((sys) => {\n switch (sys) {\n case \"imperial\":\n return {\n value: \"imperial\",\n label: translate(\"presentationUnitSystem.BritishImperial\"),\n };\n case \"usCustomary\":\n return {\n value: \"usCustomary\",\n label: translate(\"presentationUnitSystem.USCustomary\"),\n };\n case \"usSurvey\":\n return {\n value: \"usSurvey\",\n label: translate(\"presentationUnitSystem.USSurvey\"),\n };\n case \"metric\":\n default:\n return {\n value: \"metric\",\n label: translate(\"presentationUnitSystem.Metric\"),\n };\n }\n });\n\n const unitSystemKey = availableUnitSystems.has(selectedUnitSystemKey)\n ? selectedUnitSystemKey\n : displayUnitSystems[0].value;\n\n return (\n <div className=\"quantity-unit-system-selector-container\">\n <span className={\"uicore-label\"}>\n {translate(\"presentationUnitSystem.selector-label\")}\n </span>\n <Select\n data-testid=\"unitSystemSelector\"\n value={unitSystemKey}\n options={displayUnitSystems}\n onChange={handleUnitSystemSelected}\n size=\"small\"\n />\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAc1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,sBA4Y7B;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAUlB"}
1
+ {"version":3,"file":"UiSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../src/appui-react/settings/ui/UiSettingsPage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAKH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAe1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,sBAiV7B;AAsBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAUlB"}
@@ -13,6 +13,7 @@ import { UiFramework } from "../../UiFramework";
13
13
  import { ColorTheme, SYSTEM_PREFERRED_COLOR_THEME, } from "../../theme/ThemeManager";
14
14
  import { SyncUiEventDispatcher, SyncUiEventId, } from "../../syncui/SyncUiEventDispatcher";
15
15
  import { Select, Slider, ToggleSwitch } from "@itwin/itwinui-react";
16
+ import { useTranslation } from "../../useTranslation";
16
17
  /** UiSettingsPage displaying the active UI settings. This page lets users set the following settings.
17
18
  *
18
19
  * - theme - Dark, Light, with or without High contrast, or based on OS preference.
@@ -27,34 +28,7 @@ import { Select, Slider, ToggleSwitch } from "@itwin/itwinui-react";
27
28
  * @beta
28
29
  */
29
30
  export function UiSettingsPage() {
30
- const themeTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.themeTitle"));
31
- const themeDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.themeDescription"));
32
- const autoHideTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoHideTitle"));
33
- const autoHideDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoHideDescription"));
34
- const dragInteractionTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.dragInteractionTitle"));
35
- const dragInteractionDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.dragInteractionDescription"));
36
- const useProximityOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.useProximityOpacityTitle"));
37
- const useProximityOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.useProximityOpacityDescription"));
38
- const snapWidgetOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.snapWidgetOpacityTitle"));
39
- const snapWidgetOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.snapWidgetOpacityDescription"));
40
- const darkLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.dark"));
41
- const lightLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.light"));
42
- const darkHCLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.darkHighContrast"));
43
- const lightHCLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.lightHighContrast"));
44
- const inheritLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.inherit"));
45
- const systemPreferredLabel = React.useRef(UiFramework.translate("settings.uiSettingsPage.systemPreferred"));
46
- const widgetOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityTitle"));
47
- const widgetOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetOpacityDescription"));
48
- const widgetIconTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetIconTitle"));
49
- const widgetIconDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.widgetIconDescription"));
50
- const autoCollapseUnpinnedPanelsTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle"));
51
- const autoCollapseUnpinnedPanelsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription"));
52
- const animateToolSettingsTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsTitle"));
53
- const animateToolSettingsDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.animateToolSettingsDescription"));
54
- const useToolAsToolSettingsLabelTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelTitle"));
55
- const useToolAsToolSettingsLabelDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.useToolAsToolSettingsLabelDescription"));
56
- const toolbarOpacityTitle = React.useRef(UiFramework.translate("settings.uiSettingsPage.toolbarOpacityTitle"));
57
- const toolbarOpacityDescription = React.useRef(UiFramework.translate("settings.uiSettingsPage.toolbarOpacityDescription"));
31
+ const { translate } = useTranslation();
58
32
  const [theme, setTheme] = React.useState(() => UiFramework.getColorTheme());
59
33
  const [useDragInteraction, setUseDragInteraction] = React.useState(() => UiFramework.useDragInteraction);
60
34
  const [showWidgetIcon, setShowWidgetIcon] = React.useState(() => UiFramework.showWidgetIcon);
@@ -63,7 +37,9 @@ export function UiSettingsPage() {
63
37
  const [useToolAsToolSettingsLabel, setUseToolAsToolSettingsLabel] = React.useState(() => UiFramework.useToolAsToolSettingsLabel);
64
38
  const [widgetOpacity, setWidgetOpacity] = React.useState(() => UiFramework.getWidgetOpacity());
65
39
  const [autoHideUi, setAutoHideUi] = React.useState(() => UiFramework.visibility.autoHideUi);
66
- const [useProximityOpacity, setUseProximityOpacity] = React.useState(() => UiFramework.visibility.useProximityOpacity);
40
+ const [useProximityOpacity, setUseProximityOpacity] = React.useState(
41
+ // eslint-disable-next-line deprecation/deprecation
42
+ () => UiFramework.visibility.useProximityOpacity);
67
43
  const [snapWidgetOpacity, setSnapWidgetOpacity] = React.useState(() => UiFramework.visibility.snapWidgetOpacity);
68
44
  const [toolbarOpacity, setToolbarOpacity] = React.useState(() => UiFramework.getToolbarOpacity());
69
45
  React.useEffect(() => {
@@ -95,7 +71,9 @@ export function UiSettingsPage() {
95
71
  setWidgetOpacity(UiFramework.getWidgetOpacity());
96
72
  if (UiFramework.visibility.autoHideUi !== autoHideUi)
97
73
  setAutoHideUi(UiFramework.visibility.autoHideUi);
74
+ // eslint-disable-next-line deprecation/deprecation
98
75
  if (UiFramework.visibility.useProximityOpacity !== useProximityOpacity)
76
+ // eslint-disable-next-line deprecation/deprecation
99
77
  setUseProximityOpacity(UiFramework.visibility.useProximityOpacity);
100
78
  if (UiFramework.visibility.snapWidgetOpacity !== snapWidgetOpacity)
101
79
  setSnapWidgetOpacity(UiFramework.visibility.snapWidgetOpacity);
@@ -122,16 +100,31 @@ export function UiSettingsPage() {
122
100
  toolbarOpacity,
123
101
  ]);
124
102
  const defaultThemeOption = {
125
- label: systemPreferredLabel.current,
103
+ label: translate("settings.uiSettingsPage.systemPreferred"),
126
104
  value: SYSTEM_PREFERRED_COLOR_THEME,
127
105
  };
128
106
  const themeOptions = [
129
107
  defaultThemeOption,
130
- { label: lightLabel.current, value: ColorTheme.Light },
131
- { label: darkLabel.current, value: ColorTheme.Dark },
132
- { label: lightHCLabel.current, value: ColorTheme.HighContrastLight },
133
- { label: darkHCLabel.current, value: ColorTheme.HighContrastDark },
134
- { label: inheritLabel.current, value: ColorTheme.Inherit },
108
+ {
109
+ label: translate("settings.uiSettingsPage.light"),
110
+ value: ColorTheme.Light,
111
+ },
112
+ {
113
+ label: translate("settings.uiSettingsPage.dark"),
114
+ value: ColorTheme.Dark,
115
+ },
116
+ {
117
+ label: translate("settings.uiSettingsPage.lightHighContrast"),
118
+ value: ColorTheme.HighContrastLight,
119
+ },
120
+ {
121
+ label: translate("settings.uiSettingsPage.darkHighContrast"),
122
+ value: ColorTheme.HighContrastDark,
123
+ },
124
+ {
125
+ label: translate("settings.uiSettingsPage.inherit"),
126
+ value: ColorTheme.Inherit,
127
+ },
135
128
  ];
136
129
  const onThemeChange = React.useCallback((newValue) => {
137
130
  UiFramework.setColorTheme(newValue);
@@ -140,6 +133,7 @@ export function UiSettingsPage() {
140
133
  UiFramework.visibility.autoHideUi = !autoHideUi;
141
134
  }, [autoHideUi]);
142
135
  const onUseProximityOpacityChange = React.useCallback(async () => {
136
+ // eslint-disable-next-line deprecation/deprecation
143
137
  UiFramework.visibility.useProximityOpacity = !useProximityOpacity;
144
138
  }, [useProximityOpacity]);
145
139
  const onSnapWidgetOpacityChange = React.useCallback(async () => {
@@ -174,18 +168,18 @@ export function UiSettingsPage() {
174
168
  }
175
169
  }, []);
176
170
  return (React.createElement("div", { className: "uifw-settings" },
177
- React.createElement(SettingsItem, { title: themeTitle.current, description: themeDescription.current, settingUi: React.createElement("div", { "data-testid": "select-theme-container", className: "select-theme-container" },
171
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.themeTitle"), description: translate("settings.uiSettingsPage.themeDescription"), settingUi: React.createElement("div", { "data-testid": "select-theme-container", className: "select-theme-container" },
178
172
  React.createElement(Select, { value: currentTheme, onChange: onThemeChange, options: themeOptions, "data-testid": "select-theme", size: "small" })) }),
179
- React.createElement(SettingsItem, { title: autoHideTitle.current, description: autoHideDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: autoHideUi, onChange: onAutoHideChange }) }),
180
- React.createElement(SettingsItem, { title: dragInteractionTitle.current, description: dragInteractionDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useDragInteraction, onChange: onToggleDragInteraction }) }),
181
- React.createElement(SettingsItem, { title: useProximityOpacityTitle.current, description: useProximityOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useProximityOpacity, onChange: onUseProximityOpacityChange }) }),
182
- React.createElement(SettingsItem, { title: snapWidgetOpacityTitle.current, description: snapWidgetOpacityDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: snapWidgetOpacity, onChange: onSnapWidgetOpacityChange }) }),
183
- React.createElement(SettingsItem, { title: widgetIconTitle.current, description: widgetIconDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: showWidgetIcon, onChange: onWidgetIconChange }) }),
184
- React.createElement(SettingsItem, { title: autoCollapseUnpinnedPanelsTitle.current, description: autoCollapseUnpinnedPanelsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: autoCollapseUnpinnedPanels, onChange: onAutoCollapseUnpinnedPanelsChange }) }),
185
- React.createElement(SettingsItem, { title: animateToolSettingsTitle.current, description: animateToolSettingsDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) }),
186
- React.createElement(SettingsItem, { title: useToolAsToolSettingsLabelTitle.current, description: useToolAsToolSettingsLabelDescription.current, settingUi: React.createElement(ToggleSwitch, { checked: useToolAsToolSettingsLabel, onChange: OnToggleUseToolAsToolSettingsLabel }) }),
187
- React.createElement(SettingsItem, { title: toolbarOpacityTitle.current, description: toolbarOpacityDescription.current, settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [toolbarOpacity], step: 0.05, onChange: onToolbarOpacityChange, min: 0.2, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) }),
188
- React.createElement(SettingsItem, { title: widgetOpacityTitle.current, description: widgetOpacityDescription.current, settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [widgetOpacity], step: 0.05, onChange: onWidgetOpacityChange, min: 0.2, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) })));
173
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.autoHideTitle"), description: translate("settings.uiSettingsPage.autoHideDescription"), settingUi: React.createElement(ToggleSwitch, { checked: autoHideUi, onChange: onAutoHideChange }) }),
174
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.dragInteractionTitle"), description: translate("settings.uiSettingsPage.dragInteractionDescription"), settingUi: React.createElement(ToggleSwitch, { checked: useDragInteraction, onChange: onToggleDragInteraction }) }),
175
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.useProximityOpacityTitle"), description: translate("settings.uiSettingsPage.useProximityOpacityDescription"), settingUi: React.createElement(ToggleSwitch, { checked: useProximityOpacity, onChange: onUseProximityOpacityChange }) }),
176
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.snapWidgetOpacityTitle"), description: translate("settings.uiSettingsPage.snapWidgetOpacityDescription"), settingUi: React.createElement(ToggleSwitch, { checked: snapWidgetOpacity, onChange: onSnapWidgetOpacityChange }) }),
177
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.widgetIconTitle"), description: translate("settings.uiSettingsPage.widgetIconDescription"), settingUi: React.createElement(ToggleSwitch, { checked: showWidgetIcon, onChange: onWidgetIconChange }) }),
178
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsTitle"), description: translate("settings.uiSettingsPage.autoCollapseUnpinnedPanelsDescription"), settingUi: React.createElement(ToggleSwitch, { checked: autoCollapseUnpinnedPanels, onChange: onAutoCollapseUnpinnedPanelsChange }) }),
179
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.animateToolSettingsTitle"), description: translate("settings.uiSettingsPage.animateToolSettingsDescription"), settingUi: React.createElement(ToggleSwitch, { checked: animateToolSettings, onChange: OnToggleAnimateToolSettings }) }),
180
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.useToolAsToolSettingsLabelTitle"), description: translate("settings.uiSettingsPage.useToolAsToolSettingsLabelDescription"), settingUi: React.createElement(ToggleSwitch, { checked: useToolAsToolSettingsLabel, onChange: OnToggleUseToolAsToolSettingsLabel }) }),
181
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.toolbarOpacityTitle"), description: translate("settings.uiSettingsPage.toolbarOpacityDescription"), settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [toolbarOpacity], step: 0.05, onChange: onToolbarOpacityChange, min: 0.2, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) }),
182
+ React.createElement(SettingsItem, { title: translate("settings.uiSettingsPage.widgetOpacityTitle"), description: translate("settings.uiSettingsPage.widgetOpacityDescription"), settingUi: React.createElement(Slider, { style: { flex: "1" }, values: [widgetOpacity], step: 0.05, onChange: onWidgetOpacityChange, min: 0.2, max: 1.0, maxLabel: "1.0", tickLabels: ["", "", "", "", ""] }) })));
189
183
  }
190
184
  function SettingsItem(props) {
191
185
  const { title, description, settingUi } = props;