@itwin/appui-react 4.0.0-dev.10 → 4.0.0-dev.11

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 (693) hide show
  1. package/lib/cjs/appui-react/_variables.scss +4 -5
  2. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +2 -1
  3. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  4. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +4 -10
  5. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  7. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/Calculator.scss +12 -14
  9. package/lib/cjs/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/MenuButton.js +2 -1
  11. package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/SquareButton.scss +10 -25
  13. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts +1 -1
  14. package/lib/cjs/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposer.js +16 -19
  16. package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
  18. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  19. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +5 -5
  20. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  21. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts +44 -13
  22. package/lib/cjs/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  23. package/lib/cjs/appui-react/backstage/BackstageItem.js +4 -5
  24. package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
  25. package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
  26. package/lib/cjs/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
  27. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js +130 -0
  28. package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -0
  29. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
  30. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
  31. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js +2 -6
  32. package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  33. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
  34. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  35. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
  36. package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  37. package/lib/cjs/appui-react/configurableui/configurableui.scss +0 -3
  38. package/lib/cjs/appui-react/content/ContentLayout.scss +4 -4
  39. package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +10 -7
  40. package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
  41. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js +2 -1
  43. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  44. package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
  45. package/lib/cjs/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
  46. package/lib/cjs/appui-react/feedback/ValidationTextbox.js +2 -1
  47. package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
  48. package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +3 -6
  49. package/lib/cjs/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js +4 -2
  51. package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  52. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +9 -12
  53. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  54. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  55. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  56. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  57. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +1 -3
  58. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
  59. package/lib/cjs/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js +4 -1
  61. package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  62. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts +9 -8
  63. package/lib/cjs/appui-react/frontstage/StageUsage.d.ts.map +1 -1
  64. package/lib/cjs/appui-react/frontstage/StageUsage.js +10 -3
  65. package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
  66. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
  67. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
  69. package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  70. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
  72. package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  73. package/lib/cjs/appui-react/messages/ActivityMessage.js +1 -1
  74. package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
  75. package/lib/cjs/appui-react/messages/InputField.d.ts.map +1 -1
  76. package/lib/cjs/appui-react/messages/InputField.js +8 -7
  77. package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
  78. package/lib/cjs/appui-react/messages/InputField.scss +8 -8
  79. package/lib/cjs/appui-react/messages/MessageManager.d.ts +10 -1
  80. package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
  81. package/lib/cjs/appui-react/messages/MessageManager.js +28 -3
  82. package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
  83. package/lib/cjs/appui-react/messages/Pointer.d.ts.map +1 -1
  84. package/lib/cjs/appui-react/messages/Pointer.js +1 -1
  85. package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
  86. package/lib/cjs/appui-react/messages/Pointer.scss +6 -6
  87. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  88. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js +5 -2
  89. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  90. package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
  91. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
  92. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js +8 -6
  94. package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  95. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
  96. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  97. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js +19 -10
  98. package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  99. package/lib/cjs/appui-react/pickers/ListPicker.d.ts.map +1 -1
  100. package/lib/cjs/appui-react/pickers/ListPicker.js +3 -2
  101. package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
  102. package/lib/cjs/appui-react/pickers/ListPicker.scss +5 -5
  103. package/lib/cjs/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  104. package/lib/cjs/appui-react/pickers/ViewSelector.js +3 -1
  105. package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
  106. package/lib/cjs/appui-react/popup/CardPopup.js +2 -2
  107. package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
  108. package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +1 -1
  109. package/lib/cjs/appui-react/popup/PositionPopup.scss +1 -1
  110. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts +3 -2
  111. package/lib/cjs/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  112. package/lib/cjs/appui-react/popup/ToolbarPopup.js +3 -1
  113. package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
  114. package/lib/cjs/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  115. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js +20 -10
  116. package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  117. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  118. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  119. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  120. package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
  121. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +3 -4
  122. package/lib/cjs/appui-react/shared/ItemProps.d.ts +2 -2
  123. package/lib/cjs/appui-react/shared/ItemProps.d.ts.map +1 -1
  124. package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
  125. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts +1 -1
  126. package/lib/cjs/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/shared/ToolItemDef.js +2 -2
  128. package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
  129. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +27 -0
  130. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  131. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
  132. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
  133. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js +8 -3
  134. package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  135. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
  136. package/lib/cjs/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
  137. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js +6 -3
  138. package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  139. package/lib/cjs/appui-react/statusbar/Indicator.scss +14 -15
  140. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts +1 -1
  141. package/lib/cjs/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
  142. package/lib/cjs/appui-react/statusbar/LabelIndicator.js +2 -3
  143. package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
  144. package/lib/cjs/appui-react/statusbar/Separator.scss +1 -3
  145. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +1 -0
  146. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  147. package/lib/cjs/appui-react/statusbar/StatusBar.js +2 -1
  148. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  149. package/lib/cjs/appui-react/statusbar/StatusBar.scss +1 -3
  150. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
  151. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  152. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +34 -35
  153. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  154. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts +71 -39
  155. package/lib/cjs/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  156. package/lib/cjs/appui-react/statusbar/StatusBarItem.js +33 -20
  157. package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
  158. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
  159. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  160. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js +28 -20
  161. package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  162. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
  163. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  164. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js +135 -0
  165. package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
  166. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
  167. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  168. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
  169. package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  170. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
  171. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  172. package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  173. package/lib/cjs/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  174. package/lib/cjs/appui-react/statusfields/ActivityCenter.js +5 -3
  175. package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
  176. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  177. package/lib/cjs/appui-react/statusfields/MessageCenter.js +5 -2
  178. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  179. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  180. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
  181. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  182. package/lib/cjs/appui-react/statusfields/SectionsField.scss +3 -4
  183. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  184. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +2 -1
  185. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  186. package/lib/cjs/appui-react/statusfields/SelectionScope.scss +1 -1
  187. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts +2 -0
  188. package/lib/cjs/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  189. package/lib/cjs/appui-react/statusfields/SnapMode.js +40 -2
  190. package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
  191. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  192. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +2 -1
  193. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  194. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  195. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +5 -4
  196. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  197. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
  198. package/lib/cjs/appui-react/theme/ThemeManager.d.ts.map +1 -1
  199. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -2
  200. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  201. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
  202. package/lib/cjs/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  203. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js +29 -32
  204. package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  205. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
  206. package/lib/cjs/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  207. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js +8 -18
  208. package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  209. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts +77 -26
  210. package/lib/cjs/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  211. package/lib/cjs/appui-react/toolbar/ToolbarItem.js +22 -11
  212. package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
  213. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
  214. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  215. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
  216. package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  217. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
  218. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
  219. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js +248 -0
  220. package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
  221. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
  222. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
  223. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js +26 -0
  224. package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
  225. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
  226. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  227. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
  228. package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  229. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
  230. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  231. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
  232. package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  233. package/lib/cjs/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  234. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +13 -8
  235. package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  236. package/lib/cjs/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  237. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js +3 -1
  238. package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  239. package/lib/cjs/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  240. package/lib/cjs/appui-react/tools/OpenSettingsTool.js +3 -1
  241. package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
  242. package/lib/cjs/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  243. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js +4 -2
  244. package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  245. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
  246. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  247. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
  248. package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  249. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
  250. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  251. package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  252. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
  253. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  254. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +9 -65
  255. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  256. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
  257. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  258. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +6 -5
  259. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  260. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
  261. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  262. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +8 -34
  263. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  264. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  265. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  266. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
  267. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  268. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
  269. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  270. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -43
  271. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  272. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
  273. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  274. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
  275. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  276. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
  277. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  278. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +162 -3
  279. package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  280. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
  281. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  282. package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  283. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
  284. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
  285. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js +16 -0
  286. package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
  287. package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
  288. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -1
  289. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  290. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -2
  291. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  292. package/lib/cjs/appui-react/utils/PropsHelper.js +2 -1
  293. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  294. package/lib/cjs/appui-react/widget-panels/Content.d.ts.map +1 -1
  295. package/lib/cjs/appui-react/widget-panels/Content.js +10 -12
  296. package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
  297. package/lib/cjs/appui-react/widget-panels/Frontstage.js +7 -5
  298. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  299. package/lib/cjs/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
  300. package/lib/cjs/appui-react/widget-panels/StatusBar.js +3 -2
  301. package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
  302. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts +2 -1
  303. package/lib/cjs/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  304. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  305. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts +3 -3
  306. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  307. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js +2 -2
  308. package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  309. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +3 -3
  310. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  311. package/lib/cjs/appui-react/widgets/BasicToolWidget.js +2 -2
  312. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  313. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
  314. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js +4 -4
  315. package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  316. package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  317. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js +2 -2
  318. package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  319. package/lib/cjs/appui-react/widgets/Widget.d.ts +39 -0
  320. package/lib/cjs/appui-react/widgets/Widget.d.ts.map +1 -0
  321. package/lib/cjs/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
  322. package/lib/cjs/appui-react/widgets/Widget.js.map +1 -0
  323. package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts +4 -14
  324. package/lib/cjs/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
  325. package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
  326. package/lib/cjs/appui-react/widgets/WidgetControl.d.ts +1 -1
  327. package/lib/cjs/appui-react/widgets/WidgetControl.d.ts.map +1 -1
  328. package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
  329. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +7 -5
  330. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  331. package/lib/cjs/appui-react/widgets/WidgetDef.js +30 -42
  332. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  333. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  334. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -15
  335. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  336. package/lib/cjs/appui-react/widgets/WidgetState.d.ts +8 -7
  337. package/lib/cjs/appui-react/widgets/WidgetState.d.ts.map +1 -1
  338. package/lib/cjs/appui-react/widgets/WidgetState.js +9 -3
  339. package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
  340. package/lib/cjs/appui-react.d.ts +4 -4
  341. package/lib/cjs/appui-react.d.ts.map +1 -1
  342. package/lib/cjs/appui-react.js +4 -4
  343. package/lib/cjs/appui-react.js.map +1 -1
  344. package/lib/esm/appui-react/_variables.scss +4 -5
  345. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +2 -1
  346. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  347. package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +4 -10
  348. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  349. package/lib/esm/appui-react/accudraw/Calculator.js +3 -2
  350. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  351. package/lib/esm/appui-react/accudraw/Calculator.scss +12 -14
  352. package/lib/esm/appui-react/accudraw/MenuButton.d.ts.map +1 -1
  353. package/lib/esm/appui-react/accudraw/MenuButton.js +2 -1
  354. package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
  355. package/lib/esm/appui-react/accudraw/SquareButton.scss +10 -25
  356. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts +1 -1
  357. package/lib/esm/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  358. package/lib/esm/appui-react/backstage/BackstageComposer.js +12 -15
  359. package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
  360. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts +1 -2
  361. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  362. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +7 -7
  363. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  364. package/lib/esm/appui-react/backstage/BackstageItem.d.ts +44 -13
  365. package/lib/esm/appui-react/backstage/BackstageItem.d.ts.map +1 -1
  366. package/lib/esm/appui-react/backstage/BackstageItem.js +4 -5
  367. package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
  368. package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts +39 -0
  369. package/lib/esm/appui-react/backstage/BackstageItemsManager.d.ts.map +1 -0
  370. package/lib/esm/appui-react/backstage/BackstageItemsManager.js +126 -0
  371. package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -0
  372. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts +2 -1
  373. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.d.ts.map +1 -1
  374. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js +2 -6
  375. package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
  376. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts +1 -1
  377. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.d.ts.map +1 -1
  378. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js +2 -6
  379. package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
  380. package/lib/esm/appui-react/configurableui/configurableui.scss +0 -3
  381. package/lib/esm/appui-react/content/ContentLayout.scss +4 -4
  382. package/lib/esm/appui-react/content/DefaultViewOverlay.scss +10 -7
  383. package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +3 -3
  384. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.d.ts.map +1 -1
  385. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js +3 -2
  386. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
  387. package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +1 -1
  388. package/lib/esm/appui-react/feedback/ValidationTextbox.d.ts.map +1 -1
  389. package/lib/esm/appui-react/feedback/ValidationTextbox.js +2 -1
  390. package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
  391. package/lib/esm/appui-react/feedback/ValidationTextbox.scss +3 -6
  392. package/lib/esm/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  393. package/lib/esm/appui-react/frontstage/ModalFrontstage.js +5 -3
  394. package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  395. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +9 -12
  396. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts +1 -1
  397. package/lib/esm/appui-react/frontstage/ModalSettingsStage.d.ts.map +1 -1
  398. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +3 -3
  399. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  400. package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +1 -3
  401. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts +1 -0
  402. package/lib/esm/appui-react/frontstage/NestedFrontstage.d.ts.map +1 -1
  403. package/lib/esm/appui-react/frontstage/NestedFrontstage.js +4 -1
  404. package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
  405. package/lib/esm/appui-react/frontstage/StageUsage.d.ts +9 -8
  406. package/lib/esm/appui-react/frontstage/StageUsage.d.ts.map +1 -1
  407. package/lib/esm/appui-react/frontstage/StageUsage.js +10 -3
  408. package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
  409. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts +3 -3
  410. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.d.ts.map +1 -1
  411. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +4 -4
  412. package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
  413. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.d.ts.map +1 -1
  414. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js +5 -9
  415. package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
  416. package/lib/esm/appui-react/messages/ActivityMessage.js +2 -2
  417. package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
  418. package/lib/esm/appui-react/messages/InputField.d.ts.map +1 -1
  419. package/lib/esm/appui-react/messages/InputField.js +9 -8
  420. package/lib/esm/appui-react/messages/InputField.js.map +1 -1
  421. package/lib/esm/appui-react/messages/InputField.scss +8 -8
  422. package/lib/esm/appui-react/messages/MessageManager.d.ts +10 -1
  423. package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
  424. package/lib/esm/appui-react/messages/MessageManager.js +29 -4
  425. package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
  426. package/lib/esm/appui-react/messages/Pointer.d.ts.map +1 -1
  427. package/lib/esm/appui-react/messages/Pointer.js +2 -2
  428. package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
  429. package/lib/esm/appui-react/messages/Pointer.scss +6 -6
  430. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.d.ts.map +1 -1
  431. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js +6 -3
  432. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
  433. package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +1 -21
  434. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts +3 -3
  435. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.d.ts.map +1 -1
  436. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js +9 -7
  437. package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
  438. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts +2 -2
  439. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.d.ts.map +1 -1
  440. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js +20 -11
  441. package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
  442. package/lib/esm/appui-react/pickers/ListPicker.d.ts.map +1 -1
  443. package/lib/esm/appui-react/pickers/ListPicker.js +3 -2
  444. package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
  445. package/lib/esm/appui-react/pickers/ListPicker.scss +5 -5
  446. package/lib/esm/appui-react/pickers/ViewSelector.d.ts.map +1 -1
  447. package/lib/esm/appui-react/pickers/ViewSelector.js +4 -2
  448. package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
  449. package/lib/esm/appui-react/popup/CardPopup.js +3 -3
  450. package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
  451. package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +1 -1
  452. package/lib/esm/appui-react/popup/PositionPopup.scss +1 -1
  453. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts +3 -2
  454. package/lib/esm/appui-react/popup/ToolbarPopup.d.ts.map +1 -1
  455. package/lib/esm/appui-react/popup/ToolbarPopup.js +3 -1
  456. package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
  457. package/lib/esm/appui-react/selection/SelectionContextItemDef.d.ts.map +1 -1
  458. package/lib/esm/appui-react/selection/SelectionContextItemDef.js +21 -11
  459. package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
  460. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.d.ts.map +1 -1
  461. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +2 -1
  462. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
  463. package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +2 -2
  464. package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +3 -4
  465. package/lib/esm/appui-react/shared/ItemProps.d.ts +2 -2
  466. package/lib/esm/appui-react/shared/ItemProps.d.ts.map +1 -1
  467. package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
  468. package/lib/esm/appui-react/shared/ToolItemDef.d.ts +1 -1
  469. package/lib/esm/appui-react/shared/ToolItemDef.d.ts.map +1 -1
  470. package/lib/esm/appui-react/shared/ToolItemDef.js +2 -2
  471. package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
  472. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +27 -0
  473. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  474. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts +7 -7
  475. package/lib/esm/appui-react/stagepanels/StagePanelLocation.d.ts.map +1 -1
  476. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js +8 -3
  477. package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
  478. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts +5 -7
  479. package/lib/esm/appui-react/stagepanels/StagePanelSection.d.ts.map +1 -1
  480. package/lib/esm/appui-react/stagepanels/StagePanelSection.js +6 -3
  481. package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
  482. package/lib/esm/appui-react/statusbar/Indicator.scss +14 -15
  483. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts +1 -1
  484. package/lib/esm/appui-react/statusbar/LabelIndicator.d.ts.map +1 -1
  485. package/lib/esm/appui-react/statusbar/LabelIndicator.js +2 -3
  486. package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
  487. package/lib/esm/appui-react/statusbar/Separator.scss +1 -3
  488. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +1 -0
  489. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  490. package/lib/esm/appui-react/statusbar/StatusBar.js +2 -1
  491. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  492. package/lib/esm/appui-react/statusbar/StatusBar.scss +1 -3
  493. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts +2 -2
  494. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  495. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +17 -18
  496. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  497. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts +71 -39
  498. package/lib/esm/appui-react/statusbar/StatusBarItem.d.ts.map +1 -1
  499. package/lib/esm/appui-react/statusbar/StatusBarItem.js +32 -18
  500. package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
  501. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts +5 -14
  502. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.d.ts.map +1 -1
  503. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js +28 -19
  504. package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
  505. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts +40 -0
  506. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.d.ts.map +1 -0
  507. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js +131 -0
  508. package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -0
  509. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts +3 -2
  510. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.d.ts.map +1 -1
  511. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js +2 -7
  512. package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
  513. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts +3 -3
  514. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.d.ts.map +1 -1
  515. package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
  516. package/lib/esm/appui-react/statusfields/ActivityCenter.d.ts.map +1 -1
  517. package/lib/esm/appui-react/statusfields/ActivityCenter.js +6 -4
  518. package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
  519. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  520. package/lib/esm/appui-react/statusfields/MessageCenter.js +5 -2
  521. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  522. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  523. package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
  524. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  525. package/lib/esm/appui-react/statusfields/SectionsField.scss +3 -4
  526. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  527. package/lib/esm/appui-react/statusfields/SelectionInfo.js +2 -1
  528. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  529. package/lib/esm/appui-react/statusfields/SelectionScope.scss +1 -1
  530. package/lib/esm/appui-react/statusfields/SnapMode.d.ts +2 -0
  531. package/lib/esm/appui-react/statusfields/SnapMode.d.ts.map +1 -1
  532. package/lib/esm/appui-react/statusfields/SnapMode.js +40 -2
  533. package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
  534. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  535. package/lib/esm/appui-react/statusfields/ViewAttributes.js +2 -1
  536. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  537. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  538. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +6 -5
  539. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  540. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +12 -12
  541. package/lib/esm/appui-react/theme/ThemeManager.d.ts.map +1 -1
  542. package/lib/esm/appui-react/theme/ThemeManager.js +1 -2
  543. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  544. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts +2 -3
  545. package/lib/esm/appui-react/toolbar/ToolbarComposer.d.ts.map +1 -1
  546. package/lib/esm/appui-react/toolbar/ToolbarComposer.js +25 -28
  547. package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
  548. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts +6 -10
  549. package/lib/esm/appui-react/toolbar/ToolbarHelper.d.ts.map +1 -1
  550. package/lib/esm/appui-react/toolbar/ToolbarHelper.js +9 -19
  551. package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
  552. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts +77 -26
  553. package/lib/esm/appui-react/toolbar/ToolbarItem.d.ts.map +1 -1
  554. package/lib/esm/appui-react/toolbar/ToolbarItem.js +22 -11
  555. package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
  556. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts +6 -4
  557. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.d.ts.map +1 -1
  558. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js +31 -6
  559. package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
  560. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts +46 -0
  561. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.d.ts.map +1 -0
  562. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js +244 -0
  563. package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -0
  564. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts +8 -0
  565. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.d.ts.map +1 -0
  566. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js +22 -0
  567. package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -0
  568. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts +3 -2
  569. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.d.ts.map +1 -1
  570. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js +2 -6
  571. package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
  572. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts +3 -3
  573. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.d.ts.map +1 -1
  574. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js +3 -7
  575. package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
  576. package/lib/esm/appui-react/tools/CoreToolDefinitions.d.ts.map +1 -1
  577. package/lib/esm/appui-react/tools/CoreToolDefinitions.js +13 -8
  578. package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
  579. package/lib/esm/appui-react/tools/KeyinPaletteTools.d.ts.map +1 -1
  580. package/lib/esm/appui-react/tools/KeyinPaletteTools.js +3 -1
  581. package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
  582. package/lib/esm/appui-react/tools/OpenSettingsTool.d.ts.map +1 -1
  583. package/lib/esm/appui-react/tools/OpenSettingsTool.js +3 -1
  584. package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
  585. package/lib/esm/appui-react/tools/RestoreLayoutTool.d.ts.map +1 -1
  586. package/lib/esm/appui-react/tools/RestoreLayoutTool.js +4 -2
  587. package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
  588. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts +20 -3
  589. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.d.ts.map +1 -1
  590. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js +58 -4
  591. package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
  592. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts +4 -3
  593. package/lib/esm/appui-react/ui-items-provider/ProviderItem.d.ts.map +1 -1
  594. package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
  595. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +6 -4
  596. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  597. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +7 -63
  598. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  599. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +5 -3
  600. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  601. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +4 -3
  602. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  603. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +4 -3
  604. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  605. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js +6 -32
  606. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  607. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +3 -2
  608. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -1
  609. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +4 -4
  610. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
  611. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +4 -3
  612. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  613. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +5 -41
  614. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  615. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +3 -2
  616. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  617. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +10 -17
  618. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  619. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts +73 -5
  620. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.d.ts.map +1 -1
  621. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +162 -3
  622. package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
  623. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts +21 -3
  624. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.d.ts.map +1 -1
  625. package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
  626. package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts +7 -0
  627. package/lib/esm/appui-react/ui-items-provider/isProviderItem.d.ts.map +1 -0
  628. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js +12 -0
  629. package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -0
  630. package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +2 -3
  631. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -1
  632. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  633. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -2
  634. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  635. package/lib/esm/appui-react/utils/PropsHelper.js +2 -1
  636. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  637. package/lib/esm/appui-react/widget-panels/Content.d.ts.map +1 -1
  638. package/lib/esm/appui-react/widget-panels/Content.js +10 -12
  639. package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
  640. package/lib/esm/appui-react/widget-panels/Frontstage.js +7 -5
  641. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  642. package/lib/esm/appui-react/widget-panels/StatusBar.d.ts.map +1 -1
  643. package/lib/esm/appui-react/widget-panels/StatusBar.js +3 -2
  644. package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
  645. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts +2 -1
  646. package/lib/esm/appui-react/widgets/BackstageAppButton.d.ts.map +1 -1
  647. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  648. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts +3 -3
  649. package/lib/esm/appui-react/widgets/BasicNavigationWidget.d.ts.map +1 -1
  650. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js +1 -1
  651. package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
  652. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +3 -3
  653. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  654. package/lib/esm/appui-react/widgets/BasicToolWidget.js +1 -1
  655. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  656. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.d.ts +2 -2
  657. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js +3 -3
  658. package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
  659. package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
  660. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js +1 -1
  661. package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
  662. package/lib/esm/appui-react/widgets/Widget.d.ts +39 -0
  663. package/lib/esm/appui-react/widgets/Widget.d.ts.map +1 -0
  664. package/lib/esm/appui-react/widgets/{WidgetProps.js → Widget.js} +1 -1
  665. package/lib/esm/appui-react/widgets/Widget.js.map +1 -0
  666. package/lib/esm/appui-react/widgets/WidgetConfig.d.ts +4 -14
  667. package/lib/esm/appui-react/widgets/WidgetConfig.d.ts.map +1 -1
  668. package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
  669. package/lib/esm/appui-react/widgets/WidgetControl.d.ts +1 -1
  670. package/lib/esm/appui-react/widgets/WidgetControl.d.ts.map +1 -1
  671. package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
  672. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +7 -5
  673. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  674. package/lib/esm/appui-react/widgets/WidgetDef.js +22 -34
  675. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  676. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  677. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -15
  678. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  679. package/lib/esm/appui-react/widgets/WidgetState.d.ts +8 -7
  680. package/lib/esm/appui-react/widgets/WidgetState.d.ts.map +1 -1
  681. package/lib/esm/appui-react/widgets/WidgetState.js +9 -3
  682. package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
  683. package/lib/esm/appui-react.d.ts +4 -4
  684. package/lib/esm/appui-react.d.ts.map +1 -1
  685. package/lib/esm/appui-react.js +4 -4
  686. package/lib/esm/appui-react.js.map +1 -1
  687. package/package.json +19 -31
  688. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts +0 -12
  689. package/lib/cjs/appui-react/widgets/WidgetProps.d.ts.map +0 -1
  690. package/lib/cjs/appui-react/widgets/WidgetProps.js.map +0 -1
  691. package/lib/esm/appui-react/widgets/WidgetProps.d.ts +0 -12
  692. package/lib/esm/appui-react/widgets/WidgetProps.d.ts.map +0 -1
  693. package/lib/esm/appui-react/widgets/WidgetProps.js.map +0 -1
@@ -2,11 +2,10 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
5
 
7
- $uifw-popup-border-color: $buic-background-panel-stroke;
6
+ $uifw-popup-border-color: var(--iui-color-border);
8
7
  $uifw-popup-border-width: 1px;
9
8
  $uifw-popup-border-radius: var(--iui-border-radius-1);
10
- $uifw-popup-content-padding: 5px;
11
- $uifw-popup-title-bar-min-height: 24px;
12
- $uifw-popup-opacity: 0.8;
9
+ $uifw-popup-content-padding: var(--iui-size-2xs);
10
+ $uifw-popup-title-bar-min-height: var(--iui-size-l);
11
+ $uifw-popup-opacity: var(--iui-opacity-2);
@@ -16,6 +16,7 @@ const appui_abstract_1 = require("@itwin/appui-abstract");
16
16
  const itwinui_react_1 = require("@itwin/itwinui-react");
17
17
  const FrameworkAccuDraw_1 = require("./FrameworkAccuDraw");
18
18
  const UiFramework_1 = require("../UiFramework");
19
+ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
19
20
  const ForwardRefAccuDrawInput = React.forwardRef(function ForwardRefAccuDrawInputField(props, ref) {
20
21
  const { className, style, id, label, iconSpec, labelClassName, labelStyle, labelCentered, field, isLocked, onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;
21
22
  const [stringValue, setStringValue] = React.useState("");
@@ -114,7 +115,7 @@ const ForwardRefAccuDrawInput = React.forwardRef(function ForwardRefAccuDrawInpu
114
115
  label,
115
116
  iconSpec && React.createElement(core_react_1.Icon, { iconSpec: iconSpec })),
116
117
  React.createElement(itwinui_react_1.Input, { ...inputProps, ref: refs, id: id, value: stringValue, className: inputClassNames, style: style, autoComplete: "off", onChange: handleChange, onKeyDown: handleKeyDown, size: "small" }),
117
- React.createElement("span", { className: "uifw-accudraw-lock" }, isLocked && React.createElement(core_react_1.Icon, { iconSpec: "icon-lock" }))));
118
+ React.createElement("span", { className: "uifw-accudraw-lock" }, isLocked && React.createElement(core_react_1.Icon, { iconSpec: React.createElement(itwinui_icons_react_1.SvgLock, null) }))));
118
119
  });
119
120
  /** Input field for AccuDraw Ui
120
121
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawInputField.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ItemField } from \"@itwin/core-frontend\";\r\nimport { CommonProps, Icon, IconSpec, useRefs } from \"@itwin/core-react\";\r\nimport { isLetter, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\nimport { AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldValueToUiEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { UiFramework } from \"../UiFramework\";\r\n\r\n/** Properties for [[AccuDrawInputField]] component\r\n * @beta\r\n */\r\nexport interface AccuDrawInputFieldProps extends CommonProps {\r\n /** Which AccuDraw field this represents */\r\n field: ItemField;\r\n /** id for the input element */\r\n id: string;\r\n /** Indicates whether field is locked */\r\n isLocked?: boolean;\r\n /** label for the input element */\r\n label?: string;\r\n /** icon for the input element */\r\n iconSpec?: IconSpec;\r\n /** Custom CSS class name for the label */\r\n labelClassName?: string;\r\n /** Custom CSS Style for the label */\r\n labelStyle?: React.CSSProperties;\r\n /** Center justified label */\r\n labelCentered?: boolean;\r\n /** Triggered when the content is changed */\r\n onValueChanged: (stringValue: string) => void;\r\n /** Frequency to poll for changes in value, in milliseconds */\r\n valueChangedDelay?: number;\r\n /** Listens for <Enter> keypress */\r\n onEnterPressed?: () => void;\r\n /** Listens for <Esc> keypress */\r\n onEscPressed?: () => void;\r\n /** Provides ability to return reference to HTMLInputElement */\r\n ref?: React.Ref<HTMLInputElement>;\r\n}\r\n\r\nconst ForwardRefAccuDrawInput = React.forwardRef<HTMLInputElement, AccuDrawInputFieldProps>(\r\n function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\r\n const { className, style, id, label, iconSpec, labelClassName, labelStyle, labelCentered, field, isLocked,\r\n onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;\r\n const [stringValue, setStringValue] = React.useState(\"\");\r\n const timeoutId = React.useRef(0);\r\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\r\n const [needSelection, setNeedSelection] = React.useState(false);\r\n const [isFocusField, setIsFocusField] = React.useState(false);\r\n const inputElementRef = React.useRef<HTMLInputElement>(null);\r\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\r\n\r\n React.useEffect(() => {\r\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\r\n setStringValue(formattedValue);\r\n }, [field]);\r\n\r\n const handleChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>): void => {\r\n const value = event.currentTarget.value;\r\n\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (stringValue !== value) {\r\n setStringValue(value);\r\n setNeedValueChanged(true);\r\n }\r\n }, [stringValue]);\r\n\r\n const unsetTimeout = (): void => {\r\n // istanbul ignore else\r\n if (timeoutId) {\r\n window.clearTimeout(timeoutId.current);\r\n timeoutId.current = 0;\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n // After setStringValue & re-render\r\n // istanbul ignore else\r\n if (needValueChanged) {\r\n if (valueChangedDelay) {\r\n unsetTimeout();\r\n timeoutId.current = window.setTimeout(() => {\r\n onValueChanged(stringValue);\r\n }, valueChangedDelay);\r\n } else {\r\n onValueChanged(stringValue);\r\n }\r\n setNeedValueChanged(false);\r\n }\r\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\r\n\r\n React.useEffect(() => {\r\n // On unmount\r\n return () => unsetTimeout();\r\n }, []);\r\n\r\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\r\n switch (e.key) {\r\n case SpecialKey.Escape:\r\n onEscPressed && onEscPressed();\r\n return;\r\n case SpecialKey.Enter:\r\n onEnterPressed && onEnterPressed();\r\n return;\r\n }\r\n\r\n if (isLetter(e.key)) {\r\n e.preventDefault();\r\n UiFramework.keyboardShortcuts.processKey(e.key);\r\n return;\r\n }\r\n }, [onEscPressed, onEnterPressed]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldValueToUi = (args: AccuDrawSetFieldValueToUiEventArgs) => {\r\n if (args.field === field && stringValue !== args.formattedValue) {\r\n setStringValue(args.formattedValue);\r\n // istanbul ignore else\r\n if (isFocusField)\r\n setNeedSelection(true);\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(handleSetFieldValueToUi);\r\n }, [field, isFocusField, stringValue]);\r\n\r\n React.useEffect(() => {\r\n if (needSelection) {\r\n // istanbul ignore else\r\n if (inputElementRef.current)\r\n inputElementRef.current.select();\r\n setNeedSelection(false);\r\n }\r\n }, [needSelection]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n setIsFocusField(args.field === field);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [field]);\r\n\r\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\r\n const labelClassNames = classnames(\"uifw-accudraw-input-label\",\r\n labelCentered && \"uifw-label-centered\",\r\n labelClassName\r\n );\r\n\r\n return (\r\n <>\r\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\r\n {label}\r\n {iconSpec && <Icon iconSpec={iconSpec} />}\r\n </label>\r\n <Input {...inputProps} ref={refs} id={id} value={stringValue}\r\n className={inputClassNames} style={style} autoComplete=\"off\"\r\n onChange={handleChange} onKeyDown={handleKeyDown} size=\"small\" />\r\n <span className=\"uifw-accudraw-lock\" >\r\n {isLocked && <Icon iconSpec=\"icon-lock\" />}\r\n </span>\r\n </>\r\n );\r\n }\r\n);\r\n\r\n/** Input field for AccuDraw Ui\r\n * @beta\r\n */\r\nexport const AccuDrawInputField: (props: AccuDrawInputFieldProps) => JSX.Element | null = ForwardRefAccuDrawInput;\r\n"]}
1
+ {"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawInputField.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ItemField } from \"@itwin/core-frontend\";\r\nimport { CommonProps, Icon, IconSpec, useRefs } from \"@itwin/core-react\";\r\nimport { isLetter, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\nimport { AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldValueToUiEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\r\n/** Properties for [[AccuDrawInputField]] component\r\n * @beta\r\n */\r\nexport interface AccuDrawInputFieldProps extends CommonProps {\r\n /** Which AccuDraw field this represents */\r\n field: ItemField;\r\n /** id for the input element */\r\n id: string;\r\n /** Indicates whether field is locked */\r\n isLocked?: boolean;\r\n /** label for the input element */\r\n label?: string;\r\n /** icon for the input element */\r\n iconSpec?: IconSpec;\r\n /** Custom CSS class name for the label */\r\n labelClassName?: string;\r\n /** Custom CSS Style for the label */\r\n labelStyle?: React.CSSProperties;\r\n /** Center justified label */\r\n labelCentered?: boolean;\r\n /** Triggered when the content is changed */\r\n onValueChanged: (stringValue: string) => void;\r\n /** Frequency to poll for changes in value, in milliseconds */\r\n valueChangedDelay?: number;\r\n /** Listens for <Enter> keypress */\r\n onEnterPressed?: () => void;\r\n /** Listens for <Esc> keypress */\r\n onEscPressed?: () => void;\r\n /** Provides ability to return reference to HTMLInputElement */\r\n ref?: React.Ref<HTMLInputElement>;\r\n}\r\n\r\nconst ForwardRefAccuDrawInput = React.forwardRef<HTMLInputElement, AccuDrawInputFieldProps>(\r\n function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\r\n const { className, style, id, label, iconSpec, labelClassName, labelStyle, labelCentered, field, isLocked,\r\n onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;\r\n const [stringValue, setStringValue] = React.useState(\"\");\r\n const timeoutId = React.useRef(0);\r\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\r\n const [needSelection, setNeedSelection] = React.useState(false);\r\n const [isFocusField, setIsFocusField] = React.useState(false);\r\n const inputElementRef = React.useRef<HTMLInputElement>(null);\r\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\r\n\r\n React.useEffect(() => {\r\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\r\n setStringValue(formattedValue);\r\n }, [field]);\r\n\r\n const handleChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>): void => {\r\n const value = event.currentTarget.value;\r\n\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (stringValue !== value) {\r\n setStringValue(value);\r\n setNeedValueChanged(true);\r\n }\r\n }, [stringValue]);\r\n\r\n const unsetTimeout = (): void => {\r\n // istanbul ignore else\r\n if (timeoutId) {\r\n window.clearTimeout(timeoutId.current);\r\n timeoutId.current = 0;\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n // After setStringValue & re-render\r\n // istanbul ignore else\r\n if (needValueChanged) {\r\n if (valueChangedDelay) {\r\n unsetTimeout();\r\n timeoutId.current = window.setTimeout(() => {\r\n onValueChanged(stringValue);\r\n }, valueChangedDelay);\r\n } else {\r\n onValueChanged(stringValue);\r\n }\r\n setNeedValueChanged(false);\r\n }\r\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\r\n\r\n React.useEffect(() => {\r\n // On unmount\r\n return () => unsetTimeout();\r\n }, []);\r\n\r\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\r\n switch (e.key) {\r\n case SpecialKey.Escape:\r\n onEscPressed && onEscPressed();\r\n return;\r\n case SpecialKey.Enter:\r\n onEnterPressed && onEnterPressed();\r\n return;\r\n }\r\n\r\n if (isLetter(e.key)) {\r\n e.preventDefault();\r\n UiFramework.keyboardShortcuts.processKey(e.key);\r\n return;\r\n }\r\n }, [onEscPressed, onEnterPressed]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldValueToUi = (args: AccuDrawSetFieldValueToUiEventArgs) => {\r\n if (args.field === field && stringValue !== args.formattedValue) {\r\n setStringValue(args.formattedValue);\r\n // istanbul ignore else\r\n if (isFocusField)\r\n setNeedSelection(true);\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(handleSetFieldValueToUi);\r\n }, [field, isFocusField, stringValue]);\r\n\r\n React.useEffect(() => {\r\n if (needSelection) {\r\n // istanbul ignore else\r\n if (inputElementRef.current)\r\n inputElementRef.current.select();\r\n setNeedSelection(false);\r\n }\r\n }, [needSelection]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n setIsFocusField(args.field === field);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [field]);\r\n\r\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\r\n const labelClassNames = classnames(\"uifw-accudraw-input-label\",\r\n labelCentered && \"uifw-label-centered\",\r\n labelClassName\r\n );\r\n\r\n return (\r\n <>\r\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\r\n {label}\r\n {iconSpec && <Icon iconSpec={iconSpec} />}\r\n </label>\r\n <Input {...inputProps} ref={refs} id={id} value={stringValue}\r\n className={inputClassNames} style={style} autoComplete=\"off\"\r\n onChange={handleChange} onKeyDown={handleKeyDown} size=\"small\" />\r\n <span className=\"uifw-accudraw-lock\" >\r\n {isLocked && <Icon iconSpec={<SvgLock />} />}\r\n </span>\r\n </>\r\n );\r\n }\r\n);\r\n\r\n/** Input field for AccuDraw Ui\r\n * @beta\r\n */\r\nexport const AccuDrawInputField: (props: AccuDrawInputFieldProps) => JSX.Element | null = ForwardRefAccuDrawInput;\r\n"]}
@@ -15,7 +15,7 @@
15
15
  font-size: var(--iui-font-size-2);
16
16
  font-weight: var(--iui-font-weight-bold);
17
17
  line-height: var(--iui-size-l);
18
- color: $buic-text-color;
18
+ color: var(--iui-color-text);
19
19
 
20
20
  &.uifw-label-centered {
21
21
  justify-content: center;
@@ -41,21 +41,15 @@
41
41
 
42
42
  .uifw-accudraw-x-value {
43
43
  background-color: $buic-accessory-alert;
44
- color: $buic-accessory-hollow;
44
+ color: var(--iui-color-white);
45
45
  }
46
46
 
47
47
  .uifw-accudraw-y-value {
48
48
  background-color: $buic-accessory-success;
49
- color: $buic-accessory-hollow;
49
+ color: var(--iui-color-white);
50
50
  }
51
51
 
52
52
  .uifw-accudraw-z-value {
53
53
  background-color: $buic-accessory-primary;
54
- color: $buic-accessory-hollow;
55
- }
56
-
57
- .uifw-accudraw-angle-value {
58
- }
59
-
60
- .uifw-accudraw-distance-value {
54
+ color: var(--iui-color-white);
61
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Calculator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAqB,YAAY,EAAE,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAO1E,aAAa;AACb,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,yDAAyD;IACzD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,2CAA2C;IAC3C,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,oBAAY,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAEnE,aAAa;AACb,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;IACnF,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,cAAc,CAAS;IAE/B,gBAAgB;IAChB,gBAAuB,YAAY,EAAE,oBAAoB,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAYlC,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,sBAAsB,CAY5B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,SAAS;IAKD,iBAAiB;IAIjC,OAAO,CAAC,aAAa;IAKL,MAAM;IAwCtB,OAAO,CAAC,cAAc,CA0DpB;CAEH"}
1
+ {"version":3,"file":"Calculator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAqB,YAAY,EAAE,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAQ1E,aAAa;AACb,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,yDAAyD;IACzD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,2CAA2C;IAC3C,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,oBAAY,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAEnE,aAAa;AACb,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;IACnF,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,cAAc,CAAS;IAE/B,gBAAgB;IAChB,gBAAuB,YAAY,EAAE,oBAAoB,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAYlC,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,sBAAsB,CAY5B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,SAAS;IAKD,iBAAiB;IAIjC,OAAO,CAAC,aAAa;IAKL,MAAM;IAwCtB,OAAO,CAAC,cAAc,CA0DpB;CAEH"}
@@ -16,6 +16,7 @@ const core_react_1 = require("@itwin/core-react");
16
16
  const itwinui_react_1 = require("@itwin/itwinui-react");
17
17
  const CalculatorEngine_1 = require("./CalculatorEngine");
18
18
  const SquareButton_1 = require("./SquareButton");
19
+ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
19
20
  const backspace_svg_1 = require("./backspace.svg");
20
21
  /** @alpha */
21
22
  class Calculator extends React.PureComponent {
@@ -150,9 +151,9 @@ class Calculator extends React.PureComponent {
150
151
  React.createElement(CalculatorKeyPad, { onValueClick: this._onValueButtonClick, onOperatorClick: this._onOperatorButtonClick }),
151
152
  React.createElement("div", { className: "uifw-calculator-bottom-buttons" },
152
153
  React.createElement(itwinui_react_1.Button, { className: (0, classnames_1.default)("uifw-calculator-large-button", "uifw-calculator-ok-button"), styleType: "cta", onClick: this._handleOk },
153
- React.createElement(core_react_1.Icon, { iconSpec: "icon-checkmark" })),
154
+ React.createElement(core_react_1.Icon, { iconSpec: React.createElement(itwinui_icons_react_1.SvgCheckmark, null) })),
154
155
  React.createElement(itwinui_react_1.Button, { className: (0, classnames_1.default)("uifw-calculator-large-button", "uifw-calculator-cancel-button"), onClick: this._handleCancel },
155
- React.createElement(core_react_1.Icon, { iconSpec: "icon-remove" })))));
156
+ React.createElement(core_react_1.Icon, { iconSpec: React.createElement(itwinui_icons_react_1.SvgRemove, null) })))));
156
157
  }
157
158
  }
158
159
  exports.Calculator = Calculator;
@@ -1 +1 @@
1
- {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./Calculator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconInput, Omit } from \"@itwin/core-react\";\r\nimport { Button, Input } from \"@itwin/itwinui-react\";\r\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\n\r\nimport backspaceIcon from \"./backspace.svg\";\r\n\r\n// cSpell:ignore plusmn\r\n\r\n/** @alpha */\r\nexport interface CalculatorProps extends CommonProps {\r\n /** Initial value */\r\n initialValue?: number;\r\n /** Icon to display beside the calculated result */\r\n resultIcon?: React.ReactNode;\r\n /** A function to be run when the OK button is clicked */\r\n onOk?: OnNumberCommitFunc;\r\n /** A function to be run when the Cancel button is clicked */\r\n onCancel?: OnCancelFunc;\r\n\r\n /** @internal Calculator state machine. */\r\n engine: CalculatorEngine;\r\n}\r\n\r\ninterface CalculatorState {\r\n displayValue: string;\r\n}\r\n\r\n/** @internal */\r\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\r\n\r\n/** @alpha */\r\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\r\n private _mainDiv = React.createRef<HTMLDivElement>();\r\n private _equalsClicked = false;\r\n\r\n /** @internal */\r\n public static readonly defaultProps: CalculatorPropsProps = {\r\n engine: new CalculatorEngine(),\r\n };\r\n\r\n constructor(props: CalculatorProps) {\r\n super(props);\r\n\r\n let displayValue = \"0\";\r\n if (this.props.initialValue)\r\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\r\n\r\n this.state = {\r\n displayValue,\r\n };\r\n }\r\n\r\n private _onValueButtonClick = (keyChar: string) => {\r\n const displayValue = this.props.engine.processValue(keyChar);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n };\r\n\r\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\r\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\r\n operator = CalculatorOperator.ClearAll;\r\n\r\n const displayValue = this.props.engine.processOperator(operator);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n\r\n if (operator === CalculatorOperator.Equals)\r\n this._equalsClicked = true;\r\n else if (operator === CalculatorOperator.ClearAll)\r\n this._equalsClicked = false;\r\n };\r\n\r\n private _handleOk = (_event: React.MouseEvent): void => {\r\n this._ok();\r\n };\r\n\r\n private _ok() {\r\n // istanbul ignore else\r\n if (this.props.onOk) {\r\n this.props.onOk(this.props.engine.result);\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n this._cancel();\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _clearAll() {\r\n this.props.engine.clearAll();\r\n this._equalsClicked = false;\r\n }\r\n\r\n public override componentDidMount() {\r\n this._mainDivFocus();\r\n }\r\n\r\n private _mainDivFocus() {\r\n if (this._mainDiv.current)\r\n this._mainDiv.current.focus();\r\n }\r\n\r\n public override render() {\r\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const classNames = classnames(\r\n \"uifw-calculator\",\r\n className,\r\n );\r\n\r\n const topSection = this.props.resultIcon ?\r\n <IconInput containerClassName=\"uifw-calculator-top-input\"\r\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\r\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\r\n\r\n return (\r\n // The event handler is only being used to capture bubbled events\r\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\r\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\r\n <div className=\"uifw-calculator-top\">\r\n {topSection}\r\n </div>\r\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\r\n <div className=\"uifw-calculator-bottom-buttons\">\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\r\n styleType=\"cta\"\r\n onClick={this._handleOk}\r\n >\r\n <Icon iconSpec=\"icon-checkmark\" />\r\n </Button>\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\r\n onClick={this._handleCancel}\r\n >\r\n <Icon iconSpec=\"icon-remove\" />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case \"0\":\r\n case \"1\":\r\n case \"2\":\r\n case \"3\":\r\n case \"4\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n case \"9\":\r\n this._onValueButtonClick(event.key);\r\n break;\r\n case \"a\":\r\n case \"A\":\r\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\r\n break;\r\n case \"c\":\r\n case \"C\":\r\n case SpecialKey.Clear:\r\n this._onOperatorButtonClick(CalculatorOperator.Clear);\r\n break;\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n case SpecialKey.Backspace:\r\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\r\n break;\r\n case \"/\":\r\n case SpecialKey.Divide:\r\n this._onOperatorButtonClick(CalculatorOperator.Divide);\r\n break;\r\n case \"*\":\r\n case SpecialKey.Multiply:\r\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\r\n break;\r\n case \"-\":\r\n case SpecialKey.Subtract:\r\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\r\n break;\r\n case \"+\":\r\n case SpecialKey.Add:\r\n this._onOperatorButtonClick(CalculatorOperator.Add);\r\n break;\r\n case \".\":\r\n case SpecialKey.Decimal:\r\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\r\n break;\r\n case \"=\":\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n break;\r\n case SpecialKey.Enter:\r\n if (!this._equalsClicked)\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n this._ok();\r\n break;\r\n }\r\n };\r\n\r\n}\r\n\r\ninterface CalculatorKeyPadProps extends CommonProps {\r\n /** A function to be run when a value is clicked */\r\n onValueClick: (key: string) => void;\r\n /** A function to be run when a value is clicked */\r\n onOperatorClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\r\n public override render() {\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(backspaceIcon);\r\n\r\n return (\r\n <div className={classnames(\"uifw-calculator-button-grid\")}>\r\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\r\n <div className=\"uifw-calculator-button-svg\">\r\n <Icon iconSpec={iconSpec} />\r\n </div>\r\n </OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&divide;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&times;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&minus;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&#43;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&plusmn;</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">.</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&#61;</OperatorButton>\r\n <span />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n keyChar: string;\r\n /** A function to be run when the element is clicked */\r\n onClick: (key: string) => void;\r\n}\r\n\r\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.keyChar);\r\n };\r\n\r\n public override render() {\r\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\r\n {keyChar}\r\n </SquareButton >\r\n );\r\n }\r\n}\r\n\r\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n operator: CalculatorOperator;\r\n /** A function to be run when the element is clicked */\r\n onClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.operator);\r\n };\r\n\r\n public override render() {\r\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\r\n {children}\r\n </SquareButton>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./Calculator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconInput, Omit } from \"@itwin/core-react\";\r\nimport { Button, Input } from \"@itwin/itwinui-react\";\r\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\r\n\r\nimport backspaceIcon from \"./backspace.svg\";\r\n\r\n// cSpell:ignore plusmn\r\n\r\n/** @alpha */\r\nexport interface CalculatorProps extends CommonProps {\r\n /** Initial value */\r\n initialValue?: number;\r\n /** Icon to display beside the calculated result */\r\n resultIcon?: React.ReactNode;\r\n /** A function to be run when the OK button is clicked */\r\n onOk?: OnNumberCommitFunc;\r\n /** A function to be run when the Cancel button is clicked */\r\n onCancel?: OnCancelFunc;\r\n\r\n /** @internal Calculator state machine. */\r\n engine: CalculatorEngine;\r\n}\r\n\r\ninterface CalculatorState {\r\n displayValue: string;\r\n}\r\n\r\n/** @internal */\r\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\r\n\r\n/** @alpha */\r\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\r\n private _mainDiv = React.createRef<HTMLDivElement>();\r\n private _equalsClicked = false;\r\n\r\n /** @internal */\r\n public static readonly defaultProps: CalculatorPropsProps = {\r\n engine: new CalculatorEngine(),\r\n };\r\n\r\n constructor(props: CalculatorProps) {\r\n super(props);\r\n\r\n let displayValue = \"0\";\r\n if (this.props.initialValue)\r\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\r\n\r\n this.state = {\r\n displayValue,\r\n };\r\n }\r\n\r\n private _onValueButtonClick = (keyChar: string) => {\r\n const displayValue = this.props.engine.processValue(keyChar);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n };\r\n\r\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\r\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\r\n operator = CalculatorOperator.ClearAll;\r\n\r\n const displayValue = this.props.engine.processOperator(operator);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n\r\n if (operator === CalculatorOperator.Equals)\r\n this._equalsClicked = true;\r\n else if (operator === CalculatorOperator.ClearAll)\r\n this._equalsClicked = false;\r\n };\r\n\r\n private _handleOk = (_event: React.MouseEvent): void => {\r\n this._ok();\r\n };\r\n\r\n private _ok() {\r\n // istanbul ignore else\r\n if (this.props.onOk) {\r\n this.props.onOk(this.props.engine.result);\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n this._cancel();\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _clearAll() {\r\n this.props.engine.clearAll();\r\n this._equalsClicked = false;\r\n }\r\n\r\n public override componentDidMount() {\r\n this._mainDivFocus();\r\n }\r\n\r\n private _mainDivFocus() {\r\n if (this._mainDiv.current)\r\n this._mainDiv.current.focus();\r\n }\r\n\r\n public override render() {\r\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const classNames = classnames(\r\n \"uifw-calculator\",\r\n className,\r\n );\r\n\r\n const topSection = this.props.resultIcon ?\r\n <IconInput containerClassName=\"uifw-calculator-top-input\"\r\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\r\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\r\n\r\n return (\r\n // The event handler is only being used to capture bubbled events\r\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\r\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\r\n <div className=\"uifw-calculator-top\">\r\n {topSection}\r\n </div>\r\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\r\n <div className=\"uifw-calculator-bottom-buttons\">\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\r\n styleType=\"cta\"\r\n onClick={this._handleOk}\r\n >\r\n <Icon iconSpec={<SvgCheckmark />} />\r\n </Button>\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\r\n onClick={this._handleCancel}\r\n >\r\n <Icon iconSpec={<SvgRemove />} />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case \"0\":\r\n case \"1\":\r\n case \"2\":\r\n case \"3\":\r\n case \"4\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n case \"9\":\r\n this._onValueButtonClick(event.key);\r\n break;\r\n case \"a\":\r\n case \"A\":\r\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\r\n break;\r\n case \"c\":\r\n case \"C\":\r\n case SpecialKey.Clear:\r\n this._onOperatorButtonClick(CalculatorOperator.Clear);\r\n break;\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n case SpecialKey.Backspace:\r\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\r\n break;\r\n case \"/\":\r\n case SpecialKey.Divide:\r\n this._onOperatorButtonClick(CalculatorOperator.Divide);\r\n break;\r\n case \"*\":\r\n case SpecialKey.Multiply:\r\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\r\n break;\r\n case \"-\":\r\n case SpecialKey.Subtract:\r\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\r\n break;\r\n case \"+\":\r\n case SpecialKey.Add:\r\n this._onOperatorButtonClick(CalculatorOperator.Add);\r\n break;\r\n case \".\":\r\n case SpecialKey.Decimal:\r\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\r\n break;\r\n case \"=\":\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n break;\r\n case SpecialKey.Enter:\r\n if (!this._equalsClicked)\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n this._ok();\r\n break;\r\n }\r\n };\r\n\r\n}\r\n\r\ninterface CalculatorKeyPadProps extends CommonProps {\r\n /** A function to be run when a value is clicked */\r\n onValueClick: (key: string) => void;\r\n /** A function to be run when a value is clicked */\r\n onOperatorClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\r\n public override render() {\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(backspaceIcon);\r\n\r\n return (\r\n <div className={classnames(\"uifw-calculator-button-grid\")}>\r\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\r\n <div className=\"uifw-calculator-button-svg\">\r\n <Icon iconSpec={iconSpec} />\r\n </div>\r\n </OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&divide;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&times;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&minus;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&#43;</OperatorButton>\r\n\r\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&plusmn;</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">.</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">&#61;</OperatorButton>\r\n <span />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n keyChar: string;\r\n /** A function to be run when the element is clicked */\r\n onClick: (key: string) => void;\r\n}\r\n\r\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.keyChar);\r\n };\r\n\r\n public override render() {\r\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\r\n {keyChar}\r\n </SquareButton >\r\n );\r\n }\r\n}\r\n\r\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n operator: CalculatorOperator;\r\n /** A function to be run when the element is clicked */\r\n onClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.operator);\r\n };\r\n\r\n public override render() {\r\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\r\n {children}\r\n </SquareButton>\r\n );\r\n }\r\n}\r\n"]}
@@ -5,7 +5,7 @@
5
5
  @import "~@itwin/core-react/lib/cjs/core-react/style/index";
6
6
 
7
7
  $button-size: 36px;
8
- $button-operator-size: $button-size+10px;
8
+ $button-operator-size: $button-size + 10px;
9
9
 
10
10
  .uifw-position-popup.uifw-calculator-host {
11
11
  background-color: $buic-background-window;
@@ -19,22 +19,22 @@ $button-operator-size: $button-size+10px;
19
19
  outline: 0px;
20
20
  }
21
21
 
22
- >.uifw-calculator-top {
22
+ > .uifw-calculator-top {
23
23
  margin-bottom: 8px;
24
24
 
25
- >.uifw-calculator-top-input {
25
+ > .uifw-calculator-top-input {
26
26
  width: 100%;
27
27
  }
28
28
 
29
29
  input {
30
30
  text-align: right;
31
- color: $buic-text-color;
31
+ color: var(--iui-color-text);
32
32
  background-color: $buic-background-control;
33
33
  cursor: default;
34
34
  }
35
35
  }
36
36
 
37
- >.uifw-calculator-button-grid {
37
+ > .uifw-calculator-button-grid {
38
38
  display: grid;
39
39
  grid-template-columns: $button-size $button-size $button-size $button-operator-size;
40
40
  grid-gap: 6px;
@@ -47,31 +47,29 @@ $button-operator-size: $button-size+10px;
47
47
  }
48
48
  }
49
49
 
50
- >.uifw-calculator-bottom-buttons {
50
+ > .uifw-calculator-bottom-buttons {
51
51
  display: flex;
52
52
  justify-content: space-between;
53
53
  margin-top: 0;
54
54
 
55
- >.uifw-calculator-large-button {
55
+ > .uifw-calculator-large-button {
56
56
  width: 70px;
57
57
  font-size: 20px;
58
58
  }
59
59
 
60
- >.uifw-calculator-cancel-button {
61
-
60
+ > .uifw-calculator-cancel-button {
62
61
  &,
63
62
  &:active,
64
63
  &:focus {
65
64
  border: none;
66
- background-color: $uicore-gray;
67
- color: $uicore-white;
65
+ background-color: var(--iui-color-background-negative);
66
+ color: var(--iui-color-white);
68
67
  }
69
68
 
70
69
  &:hover {
71
- background-color: $uicore-gray-5;
72
- color: $uicore-white;
70
+ background-color: var(--iui-color-background-negative-hover);
71
+ color: var(--iui-color-white);
73
72
  }
74
-
75
73
  }
76
74
  }
77
75
 
@@ -1 +1 @@
1
- {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/MenuButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAA2B,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,aAAa;AACb,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,mBAAmB;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,aAAa;AACb,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;IACnF,OAAO,CAAC,KAAK,CAA4B;gBAE7B,KAAK,EAAE,eAAe;IAQlB,MAAM;IA2BtB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,KAAK,CAQX;IAEF,OAAO,CAAC,YAAY,CAOlB;IAGF,OAAO,CAAC,YAAY,CAElB;CAEH"}
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/MenuButton.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAA2B,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGjE,aAAa;AACb,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,mBAAmB;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CACzC;AAED,gBAAgB;AAChB,UAAU,eAAe;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,aAAa;AACb,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;IACnF,OAAO,CAAC,KAAK,CAA4B;gBAE7B,KAAK,EAAE,eAAe;IAQlB,MAAM;IA2BtB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,KAAK,CAQX;IAEF,OAAO,CAAC,YAAY,CAOlB;IAGF,OAAO,CAAC,YAAY,CAElB;CAEH"}
@@ -12,6 +12,7 @@ require("./MenuButton.scss");
12
12
  const React = require("react");
13
13
  const core_react_1 = require("@itwin/core-react");
14
14
  const SquareButton_1 = require("./SquareButton");
15
+ const itwinui_icons_react_1 = require("@itwin/itwinui-icons-react");
15
16
  /** @alpha */
16
17
  class MenuButton extends React.PureComponent {
17
18
  constructor(props) {
@@ -49,7 +50,7 @@ class MenuButton extends React.PureComponent {
49
50
  };
50
51
  return (React.createElement("div", { className: "uifw-menu-button", style: divStyle, ref: (e) => this.setDivRef(e) },
51
52
  React.createElement(SquareButton_1.SquareButton, { ...buttonProps, className: className, style: style, onClick: this._handleClick },
52
- React.createElement(core_react_1.Icon, { iconSpec: "icon-more-2" })),
53
+ React.createElement(core_react_1.Icon, { iconSpec: React.createElement(itwinui_icons_react_1.SvgMore, null) })),
53
54
  React.createElement(core_react_1.ContextMenu, { ref: (el) => { this._menu = el; }, selectedIndex: 0, onSelect: this._handleClose, onOutsideClick: this._handleClose, onEsc: this._handleClose, opened: this.state.expanded, autoflip: false }, this.props.children)));
54
55
  }
55
56
  setDivRef(div) {
@@ -1 +1 @@
1
- {"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/MenuButton.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,6BAA2B;AAC3B,+BAA+B;AAE/B,kDAAuE;AACvE,iDAAiE;AAejE,aAAa;AACb,MAAa,UAAW,SAAQ,KAAK,CAAC,aAA+C;IAGnF,YAAY,KAAsB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHP,UAAK,GAAuB,IAAI,CAAC;QAiDjC,UAAK,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,QAAQ,CACX,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,GAAG,EAAE;gBACH,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK;oBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,KAAU,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC;QAEF,uBAAuB;QACf,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;QAlEA,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QAErI,MAAM,QAAQ,GAAwB;YACpC,GAAG,EAAE,KAAK,CAAC,CAAC;YACZ,IAAI,EAAE,KAAK,CAAC,CAAC;SACd,CAAC;QAEF,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,oBAAC,2BAAY,OAAK,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC3F,oBAAC,iBAAI,IAAC,QAAQ,EAAC,aAAa,GAAG,CAClB;YACf,oBAAC,wBAAW,IACV,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EACjC,aAAa,EAAE,CAAC,EAChB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,cAAc,EAAE,IAAI,CAAC,YAAY,EACjC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC3B,QAAQ,EAAE,KAAK,IACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CACR,CACV,CACP,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAA0B;QAC1C,uBAAuB;QACvB,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,iBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/C,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;gBACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;CA0BF;AA1ED,gCA0EC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./MenuButton.scss\";\r\nimport * as React from \"react\";\r\nimport { PointProps } from \"@itwin/appui-abstract\";\r\nimport { ContextMenu, Icon, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\n\r\n/** @alpha */\r\nexport interface MenuButtonProps extends SquareButtonProps {\r\n /** Center point */\r\n point: PointProps;\r\n /** Function called when size is known. */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** @internal */\r\ninterface MenuButtonState {\r\n expanded: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport class MenuButton extends React.PureComponent<MenuButtonProps, MenuButtonState> {\r\n private _menu: ContextMenu | null = null;\r\n\r\n constructor(props: MenuButtonProps) {\r\n super(props);\r\n\r\n this.state = {\r\n expanded: false,\r\n };\r\n }\r\n\r\n public override render() {\r\n const { point, className, style, onSizeKnown, ...buttonProps } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const divStyle: React.CSSProperties = {\r\n top: point.y,\r\n left: point.x,\r\n };\r\n\r\n return (\r\n <div className=\"uifw-menu-button\" style={divStyle} ref={(e) => this.setDivRef(e)}>\r\n <SquareButton {...buttonProps} className={className} style={style} onClick={this._handleClick}>\r\n <Icon iconSpec=\"icon-more-2\" />\r\n </SquareButton>\r\n <ContextMenu\r\n ref={(el) => { this._menu = el; }}\r\n selectedIndex={0}\r\n onSelect={this._handleClose}\r\n onOutsideClick={this._handleClose}\r\n onEsc={this._handleClose}\r\n opened={this.state.expanded}\r\n autoflip={false}>\r\n {this.props.children}\r\n </ContextMenu>\r\n </div>\r\n );\r\n }\r\n\r\n private setDivRef(div: HTMLDivElement | null) {\r\n // istanbul ignore else\r\n if (div) {\r\n const rect = div.getBoundingClientRect();\r\n const size = new Size(rect.width, rect.height);\r\n\r\n // istanbul ignore else\r\n if (this.props.onSizeKnown)\r\n this.props.onSizeKnown(size);\r\n }\r\n }\r\n\r\n private _open = () => {\r\n this.setState(\r\n { expanded: true },\r\n () => {\r\n // istanbul ignore else\r\n if (this._menu)\r\n this._menu.focus();\r\n });\r\n };\r\n\r\n private _handleClick = (event: any) => {\r\n if (this.state.expanded) {\r\n event.stopPropagation();\r\n this.setState({ expanded: false });\r\n } else {\r\n this._open();\r\n }\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleClose = () => {\r\n this.setState({ expanded: false });\r\n };\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/MenuButton.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,6BAA2B;AAC3B,+BAA+B;AAE/B,kDAAuE;AACvE,iDAAiE;AACjE,oEAAqD;AAerD,aAAa;AACb,MAAa,UAAW,SAAQ,KAAK,CAAC,aAA+C;IAGnF,YAAY,KAAsB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHP,UAAK,GAAuB,IAAI,CAAC;QAiDjC,UAAK,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,QAAQ,CACX,EAAE,QAAQ,EAAE,IAAI,EAAE,EAClB,GAAG,EAAE;gBACH,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK;oBACZ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,KAAU,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;QACH,CAAC,CAAC;QAEF,uBAAuB;QACf,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC,CAAC;QAlEA,IAAI,CAAC,KAAK,GAAG;YACX,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAEe,MAAM;QACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,wDAAwD;QAErI,MAAM,QAAQ,GAAwB;YACpC,GAAG,EAAE,KAAK,CAAC,CAAC;YACZ,IAAI,EAAE,KAAK,CAAC,CAAC;SACd,CAAC;QAEF,OAAO,CACL,6BAAK,SAAS,EAAC,kBAAkB,EAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,oBAAC,2BAAY,OAAK,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY;gBAC3F,oBAAC,iBAAI,IAAC,QAAQ,EAAE,oBAAC,6BAAO,OAAG,GAAI,CAClB;YACf,oBAAC,wBAAW,IACV,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EACjC,aAAa,EAAE,CAAC,EAChB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,cAAc,EAAE,IAAI,CAAC,YAAY,EACjC,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAC3B,QAAQ,EAAE,KAAK,IACd,IAAI,CAAC,KAAK,CAAC,QAAQ,CACR,CACV,CACP,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAA0B;QAC1C,uBAAuB;QACvB,IAAI,GAAG,EAAE;YACP,MAAM,IAAI,GAAG,GAAG,CAAC,qBAAqB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,iBAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/C,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW;gBACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;CA0BF;AA1ED,gCA0EC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./MenuButton.scss\";\r\nimport * as React from \"react\";\r\nimport { PointProps } from \"@itwin/appui-abstract\";\r\nimport { ContextMenu, Icon, Size, SizeProps } from \"@itwin/core-react\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\nimport { SvgMore } from \"@itwin/itwinui-icons-react\";\r\n\r\n/** @alpha */\r\nexport interface MenuButtonProps extends SquareButtonProps {\r\n /** Center point */\r\n point: PointProps;\r\n /** Function called when size is known. */\r\n onSizeKnown?: (size: SizeProps) => void;\r\n}\r\n\r\n/** @internal */\r\ninterface MenuButtonState {\r\n expanded: boolean;\r\n}\r\n\r\n/** @alpha */\r\nexport class MenuButton extends React.PureComponent<MenuButtonProps, MenuButtonState> {\r\n private _menu: ContextMenu | null = null;\r\n\r\n constructor(props: MenuButtonProps) {\r\n super(props);\r\n\r\n this.state = {\r\n expanded: false,\r\n };\r\n }\r\n\r\n public override render() {\r\n const { point, className, style, onSizeKnown, ...buttonProps } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const divStyle: React.CSSProperties = {\r\n top: point.y,\r\n left: point.x,\r\n };\r\n\r\n return (\r\n <div className=\"uifw-menu-button\" style={divStyle} ref={(e) => this.setDivRef(e)}>\r\n <SquareButton {...buttonProps} className={className} style={style} onClick={this._handleClick}>\r\n <Icon iconSpec={<SvgMore />} />\r\n </SquareButton>\r\n <ContextMenu\r\n ref={(el) => { this._menu = el; }}\r\n selectedIndex={0}\r\n onSelect={this._handleClose}\r\n onOutsideClick={this._handleClose}\r\n onEsc={this._handleClose}\r\n opened={this.state.expanded}\r\n autoflip={false}>\r\n {this.props.children}\r\n </ContextMenu>\r\n </div>\r\n );\r\n }\r\n\r\n private setDivRef(div: HTMLDivElement | null) {\r\n // istanbul ignore else\r\n if (div) {\r\n const rect = div.getBoundingClientRect();\r\n const size = new Size(rect.width, rect.height);\r\n\r\n // istanbul ignore else\r\n if (this.props.onSizeKnown)\r\n this.props.onSizeKnown(size);\r\n }\r\n }\r\n\r\n private _open = () => {\r\n this.setState(\r\n { expanded: true },\r\n () => {\r\n // istanbul ignore else\r\n if (this._menu)\r\n this._menu.focus();\r\n });\r\n };\r\n\r\n private _handleClick = (event: any) => {\r\n if (this.state.expanded) {\r\n event.stopPropagation();\r\n this.setState({ expanded: false });\r\n } else {\r\n this._open();\r\n }\r\n };\r\n\r\n // istanbul ignore next\r\n private _handleClose = () => {\r\n this.setState({ expanded: false });\r\n };\r\n\r\n}\r\n"]}
@@ -2,44 +2,29 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- @import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
6
5
 
7
6
  $button-size: 32px;
8
7
 
9
8
  .uifw-square-button {
10
9
  display: flex;
11
10
  justify-content: center;
12
- background-color: $buic-background-tab-inactive;
13
- color: $buic-foreground-body;
14
- border-color: $buic-background-toolbutton-stroke;
15
- border-radius: 5px;
11
+ background-color: var(--iui-color-background);
12
+ color: var(--iui-color-text);
13
+ border-color: var(--iui-color-border-foreground);
14
+ border-radius: var(--iui-border-radius-1);
16
15
  border-width: 1px;
17
16
  border-style: solid;
18
- opacity: 0.95;
17
+ opacity: var(--iui-opacity-2);
19
18
  pointer-events: auto;
20
19
  margin: 0;
21
20
  width: $button-size;
22
21
  height: $button-size;
23
22
 
24
- &:focus {
25
- background-color: $buic-background-tab-active;
26
- color: $buic-foreground-body;
27
- border-color: $buic-background-toolbutton-stroke;
28
- opacity: 1.0;
29
- }
30
-
23
+ &:focus,
31
24
  &:hover {
32
- background-color: $buic-background-tab-active;
33
- color: $buic-foreground-primary;
34
- border-color: $buic-background-toolbutton-stroke;
35
- opacity: 1.0;
25
+ background-color: var(--iui-color-background-hover);
26
+ color: var(--iui-color-text-hover);
27
+ border-color: var(--iui-color-border-foreground-hover);
28
+ opacity: var(--iui-opacity-1);
36
29
  }
37
-
38
- &:active {
39
- background-color: $buic-background-4;
40
- color: $buic-foreground-primary;
41
- border-color: $buic-background-toolbutton-stroke;
42
- opacity: 1.0;
43
- }
44
-
45
30
  }
@@ -2,8 +2,8 @@
2
2
  * @module Backstage
3
3
  */
4
4
  import * as React from "react";
5
- import { BackstageItem } from "@itwin/appui-abstract";
6
5
  import { CommonProps } from "@itwin/core-react";
6
+ import { BackstageItem } from "./BackstageItem";
7
7
  /** @internal */
8
8
  export declare type GroupedItems = ReadonlyArray<ReadonlyArray<BackstageItem>>;
9
9
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"BackstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAoF,MAAM,uBAAuB,CAAC;AACxI,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAyEhD,gBAAgB;AAChB,oBAAY,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,eAAe,UAAW,cAAc,aAAa,CAAC,iBA+BlE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,mHAAmH;IACnH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eA0D9D"}
1
+ {"version":3,"file":"BackstageComposer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/backstage/BackstageComposer.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AA2D1E,gBAAgB;AAChB,oBAAY,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAEvE,gBAAgB;AAChB,eAAO,MAAM,eAAe,UAAW,cAAc,aAAa,CAAC,iBA+BlE,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,gGAAgG;IAChG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,mHAAmH;IACnH,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,wFAAwF;IACxF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eAyD9D"}
@@ -18,13 +18,19 @@ const BackstageManager_1 = require("./BackstageManager");
18
18
  const useDefaultBackstageItems_1 = require("./useDefaultBackstageItems");
19
19
  const useUiItemsProviderBackstageItems_1 = require("./useUiItemsProviderBackstageItems");
20
20
  const SafeAreaHelpers_1 = require("../safearea/SafeAreaHelpers");
21
+ const BackstageItem_1 = require("./BackstageItem");
22
+ const BackstageItemsManager_1 = require("./BackstageItemsManager");
21
23
  // cSpell:ignore safearea
22
- /* eslint-disable deprecation/deprecation */
23
24
  /** Private function to set up sync event monitoring of backstage items */
24
25
  function useBackstageItemSyncEffect(itemsManager, syncIdsOfInterest) {
25
26
  const isInitialMount = React.useRef(true);
26
27
  React.useEffect(() => {
27
- const handleSyncUiEvent = (args) => {
28
+ if (isInitialMount.current) {
29
+ isInitialMount.current = false;
30
+ // initialize the display state of any items with syncIds/condition defined
31
+ itemsManager.refreshAffectedItems(new Set(syncIdsOfInterest));
32
+ }
33
+ return SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener((args) => {
28
34
  if (0 === syncIdsOfInterest.length)
29
35
  return;
30
36
  // istanbul ignore else
@@ -32,16 +38,7 @@ function useBackstageItemSyncEffect(itemsManager, syncIdsOfInterest) {
32
38
  // process each item that has interest
33
39
  itemsManager.refreshAffectedItems(args.eventIds);
34
40
  }
35
- };
36
- if (isInitialMount.current) {
37
- isInitialMount.current = false;
38
- // initialize the display state of any items with syncIds/condition defined
39
- itemsManager.refreshAffectedItems(new Set(syncIdsOfInterest));
40
- }
41
- SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.addListener(handleSyncUiEvent);
42
- return () => {
43
- SyncUiEventDispatcher_1.SyncUiEventDispatcher.onSyncUiEvent.removeListener(handleSyncUiEvent);
44
- };
41
+ });
45
42
  }, [itemsManager, itemsManager.items, syncIdsOfInterest]);
46
43
  }
47
44
  /** local function to combine items from Stage and from Extensions */
@@ -65,9 +62,9 @@ function combineItems(stageItems, addonItems, hideSoloStageEntry) {
65
62
  }
66
63
  if (hideSoloStageEntry) {
67
64
  // per user request don't show stage launcher if only one stage is available
68
- const numberOfFrontstageItems = items.reduce((accumulator, item) => accumulator + ((0, appui_abstract_1.isStageLauncher)(item) ? 1 : 0), 0);
65
+ const numberOfFrontstageItems = items.reduce((accumulator, item) => accumulator + ((0, BackstageItem_1.isBackstageStageLauncher)(item) ? 1 : 0), 0);
69
66
  if (1 === numberOfFrontstageItems)
70
- items = items.filter((item) => !(0, appui_abstract_1.isStageLauncher)(item));
67
+ items = items.filter((item) => !(0, BackstageItem_1.isBackstageStageLauncher)(item));
71
68
  }
72
69
  return items;
73
70
  }
@@ -109,12 +106,12 @@ exports.useGroupedItems = useGroupedItems;
109
106
  * @public
110
107
  */
111
108
  function BackstageComposer(props) {
112
- const [defaultItemsManager, setDefaultItemsManager] = React.useState(new appui_abstract_1.BackstageItemsManager(props.items));
109
+ const [defaultItemsManager, setDefaultItemsManager] = React.useState(new BackstageItemsManager_1.BackstageItemsManager(props.items));
113
110
  const initialItems = React.useRef(props.items);
114
111
  React.useEffect(() => {
115
112
  if (initialItems.current !== props.items) {
116
113
  initialItems.current = props.items;
117
- setDefaultItemsManager(new appui_abstract_1.BackstageItemsManager(props.items));
114
+ setDefaultItemsManager(new BackstageItemsManager_1.BackstageItemsManager(props.items));
118
115
  }
119
116
  }, [props.items]);
120
117
  const manager = (0, BackstageManager_1.useBackstageManager)();
@@ -124,11 +121,11 @@ function BackstageComposer(props) {
124
121
  manager.close();
125
122
  }, [manager]);
126
123
  const defaultItems = (0, useDefaultBackstageItems_1.useDefaultBackstageItems)(defaultItemsManager);
127
- const syncIdsOfInterest = React.useMemo(() => appui_abstract_1.BackstageItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);
124
+ const syncIdsOfInterest = React.useMemo(() => BackstageItemsManager_1.BackstageItemsManager.getSyncIdsOfInterest(defaultItems), [defaultItems]);
128
125
  useBackstageItemSyncEffect(defaultItemsManager, syncIdsOfInterest);
129
- const [addonItemsManager] = React.useState(new appui_abstract_1.BackstageItemsManager());
126
+ const [addonItemsManager] = React.useState(new BackstageItemsManager_1.BackstageItemsManager());
130
127
  const addonItems = (0, useUiItemsProviderBackstageItems_1.useUiItemsProviderBackstageItems)(addonItemsManager);
131
- const addonSyncIdsOfInterest = React.useMemo(() => appui_abstract_1.BackstageItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
128
+ const addonSyncIdsOfInterest = React.useMemo(() => BackstageItemsManager_1.BackstageItemsManager.getSyncIdsOfInterest(addonItems), [addonItems]);
132
129
  useBackstageItemSyncEffect(addonItemsManager, addonSyncIdsOfInterest);
133
130
  const combinedBackstageItems = React.useMemo(() => combineItems(defaultItems, addonItems, !!props.hideSoloStageEntry), [defaultItems, addonItems, props.hideSoloStageEntry]);
134
131
  const groups = (0, exports.useGroupedItems)(combinedBackstageItems);