@itwin/appui-react 3.2.0-dev.5 → 3.2.0-dev.50

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 (271) hide show
  1. package/CHANGELOG.md +45 -1
  2. package/lib/cjs/appui-react/UiFramework.d.ts +14 -2
  3. package/lib/cjs/appui-react/UiFramework.d.ts.map +1 -1
  4. package/lib/cjs/appui-react/UiFramework.js +29 -3
  5. package/lib/cjs/appui-react/UiFramework.js.map +1 -1
  6. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  7. package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  8. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +1 -1
  9. package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  10. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  11. package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  12. package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
  14. package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
  15. package/lib/cjs/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +4 -2
  17. package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  18. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -1
  19. package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  20. package/lib/cjs/appui-react/configurableui/state.d.ts +9 -1
  21. package/lib/cjs/appui-react/configurableui/state.d.ts.map +1 -1
  22. package/lib/cjs/appui-react/configurableui/state.js +13 -0
  23. package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
  24. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +5 -0
  25. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/frontstage/Frontstage.js +9 -1
  27. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  28. package/lib/cjs/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  29. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js +2 -0
  30. package/lib/cjs/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  31. package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  32. package/lib/cjs/appui-react/frontstage/FrontstageDef.js +18 -9
  33. package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
  34. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
  35. package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  36. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -1
  37. package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  38. package/lib/cjs/appui-react/redux/FrameworkState.d.ts +1 -1
  39. package/lib/cjs/appui-react/redux/StateManager.d.ts.map +1 -1
  40. package/lib/cjs/appui-react/redux/StateManager.js +1 -0
  41. package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
  42. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  43. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +25 -5
  44. package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  45. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts +1 -1
  46. package/lib/cjs/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  47. package/lib/cjs/appui-react/stagepanels/StagePanel.js.map +1 -1
  48. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  49. package/lib/cjs/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  50. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +6 -10
  51. package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  52. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -1
  53. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  54. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -3
  55. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  56. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  57. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  58. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  59. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +35 -33
  61. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  62. package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
  63. package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
  64. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts +1 -0
  65. package/lib/cjs/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  66. package/lib/cjs/appui-react/toolbar/Toolbar.js +8 -3
  67. package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
  68. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  69. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  70. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +16 -16
  71. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  72. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  73. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  74. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +96 -0
  75. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  76. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  77. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  78. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  79. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  80. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  81. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +51 -0
  82. package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  83. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  84. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  85. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  86. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  87. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  88. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  89. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +79 -0
  90. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  91. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts +5 -0
  92. package/lib/cjs/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  93. package/lib/cjs/appui-react/uistate/AppUiSettings.js +8 -0
  94. package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
  95. package/lib/cjs/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  96. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js +3 -0
  97. package/lib/cjs/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  98. package/lib/cjs/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  99. package/lib/cjs/appui-react/uistate/useUiStateStorage.js +1 -0
  100. package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
  101. package/lib/cjs/appui-react/utils/PropsHelper.d.ts +3 -1
  102. package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
  103. package/lib/cjs/appui-react/utils/PropsHelper.js +10 -0
  104. package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
  105. package/lib/cjs/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  106. package/lib/cjs/appui-react/utils/UiShowHideManager.js +1 -0
  107. package/lib/cjs/appui-react/utils/UiShowHideManager.js.map +1 -1
  108. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts +17 -1
  109. package/lib/cjs/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  110. package/lib/cjs/appui-react/widget-panels/Frontstage.js +141 -127
  111. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  112. package/lib/cjs/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  113. package/lib/cjs/appui-react/widget-panels/ToolSettings.js +15 -2
  114. package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
  115. package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +17 -1
  116. package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -3
  117. package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
  118. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  119. package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  120. package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
  121. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts +8 -1
  122. package/lib/cjs/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  123. package/lib/cjs/appui-react/widgets/WidgetDef.js +14 -4
  124. package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
  125. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts +1 -1
  126. package/lib/cjs/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  127. package/lib/cjs/appui-react/widgets/WidgetHost.js +106 -7
  128. package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
  129. package/lib/cjs/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  130. package/lib/cjs/appui-react/widgets/WidgetManager.js +2 -1
  131. package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
  132. package/lib/cjs/appui-react.d.ts +3 -0
  133. package/lib/cjs/appui-react.d.ts.map +1 -1
  134. package/lib/cjs/appui-react.js +3 -0
  135. package/lib/cjs/appui-react.js.map +1 -1
  136. package/lib/esm/appui-react/UiFramework.d.ts +14 -2
  137. package/lib/esm/appui-react/UiFramework.d.ts.map +1 -1
  138. package/lib/esm/appui-react/UiFramework.js +29 -3
  139. package/lib/esm/appui-react/UiFramework.js.map +1 -1
  140. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
  141. package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
  142. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +1 -1
  143. package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
  144. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
  145. package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
  146. package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
  147. package/lib/esm/appui-react/accudraw/Calculator.js +5 -4
  148. package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
  149. package/lib/esm/appui-react/backstage/BackstageComposerItem.d.ts.map +1 -1
  150. package/lib/esm/appui-react/backstage/BackstageComposerItem.js +5 -3
  151. package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
  152. package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -1
  153. package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
  154. package/lib/esm/appui-react/configurableui/state.d.ts +9 -1
  155. package/lib/esm/appui-react/configurableui/state.d.ts.map +1 -1
  156. package/lib/esm/appui-react/configurableui/state.js +13 -0
  157. package/lib/esm/appui-react/configurableui/state.js.map +1 -1
  158. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +5 -0
  159. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  160. package/lib/esm/appui-react/frontstage/Frontstage.js +7 -0
  161. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  162. package/lib/esm/appui-react/frontstage/FrontstageComposer.d.ts.map +1 -1
  163. package/lib/esm/appui-react/frontstage/FrontstageComposer.js +2 -0
  164. package/lib/esm/appui-react/frontstage/FrontstageComposer.js.map +1 -1
  165. package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
  166. package/lib/esm/appui-react/frontstage/FrontstageDef.js +18 -9
  167. package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
  168. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
  169. package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
  170. package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -1
  171. package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
  172. package/lib/esm/appui-react/redux/FrameworkState.d.ts +1 -1
  173. package/lib/esm/appui-react/redux/StateManager.d.ts.map +1 -1
  174. package/lib/esm/appui-react/redux/StateManager.js +1 -0
  175. package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
  176. package/lib/esm/appui-react/settings/ui/UiSettingsPage.d.ts.map +1 -1
  177. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +25 -5
  178. package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
  179. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts +1 -1
  180. package/lib/esm/appui-react/stagepanels/StagePanel.d.ts.map +1 -1
  181. package/lib/esm/appui-react/stagepanels/StagePanel.js.map +1 -1
  182. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts +6 -4
  183. package/lib/esm/appui-react/stagepanels/StagePanelDef.d.ts.map +1 -1
  184. package/lib/esm/appui-react/stagepanels/StagePanelDef.js +6 -10
  185. package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
  186. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -1
  187. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  188. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -3
  189. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  190. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  191. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
  192. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  193. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
  194. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +20 -18
  195. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  196. package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
  197. package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
  198. package/lib/esm/appui-react/toolbar/Toolbar.d.ts +1 -0
  199. package/lib/esm/appui-react/toolbar/Toolbar.d.ts.map +1 -1
  200. package/lib/esm/appui-react/toolbar/Toolbar.js +8 -3
  201. package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
  202. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts +5 -26
  203. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  204. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +17 -17
  205. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  206. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts +38 -0
  207. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -0
  208. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +92 -0
  209. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -0
  210. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts +1 -18
  211. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.d.ts.map +1 -1
  212. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
  213. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts +33 -0
  214. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.d.ts.map +1 -0
  215. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js +47 -0
  216. package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -0
  217. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts +3 -18
  218. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  219. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +4 -3
  220. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  221. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts +31 -0
  222. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -0
  223. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +75 -0
  224. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -0
  225. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts +5 -0
  226. package/lib/esm/appui-react/uistate/AppUiSettings.d.ts.map +1 -1
  227. package/lib/esm/appui-react/uistate/AppUiSettings.js +8 -0
  228. package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
  229. package/lib/esm/appui-react/uistate/UserSettingsStorage.d.ts.map +1 -1
  230. package/lib/esm/appui-react/uistate/UserSettingsStorage.js +3 -0
  231. package/lib/esm/appui-react/uistate/UserSettingsStorage.js.map +1 -1
  232. package/lib/esm/appui-react/uistate/useUiStateStorage.d.ts.map +1 -1
  233. package/lib/esm/appui-react/uistate/useUiStateStorage.js +1 -0
  234. package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
  235. package/lib/esm/appui-react/utils/PropsHelper.d.ts +3 -1
  236. package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
  237. package/lib/esm/appui-react/utils/PropsHelper.js +11 -1
  238. package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
  239. package/lib/esm/appui-react/utils/UiShowHideManager.d.ts.map +1 -1
  240. package/lib/esm/appui-react/utils/UiShowHideManager.js +1 -0
  241. package/lib/esm/appui-react/utils/UiShowHideManager.js.map +1 -1
  242. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts +17 -1
  243. package/lib/esm/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  244. package/lib/esm/appui-react/widget-panels/Frontstage.js +142 -128
  245. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  246. package/lib/esm/appui-react/widget-panels/ToolSettings.d.ts.map +1 -1
  247. package/lib/esm/appui-react/widget-panels/ToolSettings.js +15 -2
  248. package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
  249. package/lib/esm/appui-react/widget-panels/ToolSettings.scss +17 -1
  250. package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -3
  251. package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
  252. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -1
  253. package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
  254. package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
  255. package/lib/esm/appui-react/widgets/WidgetDef.d.ts +8 -1
  256. package/lib/esm/appui-react/widgets/WidgetDef.d.ts.map +1 -1
  257. package/lib/esm/appui-react/widgets/WidgetDef.js +14 -4
  258. package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
  259. package/lib/esm/appui-react/widgets/WidgetHost.d.ts +1 -1
  260. package/lib/esm/appui-react/widgets/WidgetHost.d.ts.map +1 -1
  261. package/lib/esm/appui-react/widgets/WidgetHost.js +106 -7
  262. package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
  263. package/lib/esm/appui-react/widgets/WidgetManager.d.ts.map +1 -1
  264. package/lib/esm/appui-react/widgets/WidgetManager.js +2 -1
  265. package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
  266. package/lib/esm/appui-react.d.ts +3 -0
  267. package/lib/esm/appui-react.d.ts.map +1 -1
  268. package/lib/esm/appui-react.js +3 -0
  269. package/lib/esm/appui-react.js.map +1 -1
  270. package/lib/public/locales/en/UiFramework.json +7 -2
  271. package/package.json +34 -34
@@ -14,7 +14,7 @@ import { assert, Logger, ProcessDetector } from "@itwin/core-bentley";
14
14
  import { StagePanelLocation, UiItemsManager, WidgetState } from "@itwin/appui-abstract";
15
15
  import { Size, UiStateStorageStatus } from "@itwin/core-react";
16
16
  import { ToolbarPopupAutoHideContext } from "@itwin/components-react";
17
- import { addPanelWidget, addTab, addWidgetTabToFloatingPanel, convertAllPopupWidgetContainersToFloating, createNineZoneState, createTabsState, createTabState, createWidgetState, findTab, findWidget, floatingWidgetBringToFront, FloatingWidgets, getUniqueId, isFloatingLocation, isHorizontalPanelSide, NineZone, NineZoneStateReducer, panelSides, removeTab, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
17
+ import { addPanelWidget, addTab, addWidgetTabToFloatingPanel, addWidgetTabToPanelSection, convertAllPopupWidgetContainersToFloating, createNineZoneState, createTabsState, createTabState, createWidgetState, findTab, findWidget, floatingWidgetBringToFront, FloatingWidgets, getUniqueId, getWidgetPanelSectionId, isFloatingLocation, isHorizontalPanelSide, NineZone, NineZoneStateReducer, panelSides, removeTab, toolSettingsTabId, WidgetPanels, } from "@itwin/appui-layout-react";
18
18
  import { useActiveFrontstageDef } from "../frontstage/Frontstage";
19
19
  import { FrontstageManager } from "../frontstage/FrontstageManager";
20
20
  import { StagePanelState } from "../stagepanels/StagePanelDef";
@@ -31,20 +31,24 @@ import { ToolSettingsContent, WidgetPanelsToolSettings } from "./ToolSettings";
31
31
  import { useEscapeSetFocusToHome } from "../hooks/useEscapeSetFocusToHome";
32
32
  import { useSelector } from "react-redux";
33
33
  import { useUiVisibility } from "../hooks/useUiVisibility";
34
- const panelZoneKeys = ["start", "middle", "end"];
35
- // istanbul ignore next
36
- const WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() {
34
+ const panelZoneKeys = ["start", "end"];
35
+ const WidgetInternals = React.memo(function WidgetInternals() {
37
36
  const activeModalFrontstageInfo = useActiveModalFrontstageInfo();
38
37
  const uiIsVisible = useUiVisibility();
39
38
  return (React.createElement(React.Fragment, null,
40
39
  React.createElement(ToolbarPopupAutoHideContext.Provider, { value: !uiIsVisible },
41
40
  React.createElement(ModalFrontstageComposer, { stageInfo: activeModalFrontstageInfo }),
42
- React.createElement(WidgetPanelsToolSettings, null),
43
41
  React.createElement(WidgetPanels, { className: "uifw-widgetPanels", centerContent: React.createElement(WidgetPanelsToolbars, null) },
44
42
  React.createElement(WidgetPanelsFrontstageContent, null)),
45
43
  React.createElement(WidgetPanelsStatusBar, null),
46
44
  React.createElement(FloatingWidgets, null))));
47
45
  });
46
+ // istanbul ignore next
47
+ const WidgetPanelsFrontstageComponent = React.memo(function WidgetPanelsFrontstageComponent() {
48
+ return (React.createElement(React.Fragment, null,
49
+ React.createElement(WidgetPanelsToolSettings, null),
50
+ React.createElement(WidgetInternals, null)));
51
+ });
48
52
  const widgetContent = React.createElement(WidgetContent, null);
49
53
  const toolSettingsContent = React.createElement(ToolSettingsContent, null);
50
54
  const widgetPanelsFrontstage = React.createElement(WidgetPanelsFrontstageComponent, null);
@@ -177,13 +181,22 @@ export function ActiveFrontstageDefProvider({ frontstageDef }) {
177
181
  useFrontstageManager(frontstageDef);
178
182
  useItemsManager(frontstageDef);
179
183
  const labels = useLabels();
184
+ const uiIsVisible = useUiVisibility();
180
185
  const showWidgetIcon = useSelector((state) => {
181
186
  const frameworkState = state[UiFramework.frameworkStateKey];
182
187
  return !!frameworkState.configurableUiState.showWidgetIcon;
183
188
  });
189
+ const autoCollapseUnpinnedPanels = useSelector((state) => {
190
+ const frameworkState = state[UiFramework.frameworkStateKey];
191
+ return !!frameworkState.configurableUiState.autoCollapseUnpinnedPanels;
192
+ });
193
+ const animateToolSettings = useSelector((state) => {
194
+ const frameworkState = state[UiFramework.frameworkStateKey];
195
+ return !!frameworkState.configurableUiState.animateToolSettings;
196
+ });
184
197
  const handleKeyDown = useEscapeSetFocusToHome();
185
198
  return (React.createElement("div", { className: "uifw-widgetPanels-frontstage", onKeyDown: handleKeyDown, role: "presentation" },
186
- React.createElement(NineZone, { dispatch: dispatch, labels: labels, state: nineZone, tab: tabElement, showWidgetIcon: showWidgetIcon, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent }, widgetPanelsFrontstage)));
199
+ React.createElement(NineZone, { dispatch: dispatch, labels: labels, state: nineZone, tab: tabElement, showWidgetIcon: showWidgetIcon, autoCollapseUnpinnedPanels: autoCollapseUnpinnedPanels, toolSettingsContent: toolSettingsContent, widgetContent: widgetContent, animateDockedToolSettings: animateToolSettings, uiIsVisible: uiIsVisible }, widgetPanelsFrontstage)));
187
200
  }
188
201
  /** @internal */
189
202
  export function useLabels() {
@@ -211,6 +224,7 @@ export function addWidgets(state, widgets, side, widgetId) {
211
224
  label,
212
225
  iconSpec: widget.iconSpec,
213
226
  preferredPanelWidgetSize: widget.preferredPanelSize,
227
+ preferredFloatingWidgetSize: widget.defaultFloatingSize,
214
228
  canPopout: widget.canPopout,
215
229
  isFloatingStateWindowResizable: widget.isFloatingStateWindowResizable,
216
230
  });
@@ -233,15 +247,16 @@ export function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
233
247
  var _a;
234
248
  if (widgetDefs.length === 0)
235
249
  return state;
236
- // Add new tabs.
237
- const tabs = new Array();
250
+ // Add missing widget tabs.
238
251
  for (const widgetDef of widgetDefs) {
239
252
  const label = getWidgetLabel(widgetDef.label);
240
253
  const saveTab = state.tabs[widgetDef.id];
241
254
  const preferredPanelWidgetSize = saveTab ? saveTab.preferredPanelWidgetSize : widgetDef.preferredPanelSize;
242
- const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : undefined;
255
+ const preferredFloatingWidgetSize = saveTab ? saveTab.preferredFloatingWidgetSize : widgetDef.defaultFloatingSize;
243
256
  const preferredPopoutWidgetSize = saveTab ? saveTab.preferredPopoutWidgetSize : undefined;
244
- const userSized = saveTab ? saveTab.userSized : undefined;
257
+ // if a defaultFloatingSize is specified then this mean the widget can't determine its intrinsic size and must be explicitly sized
258
+ const userSized = saveTab ? (saveTab.userSized || !!widgetDef.defaultFloatingSize && !!saveTab.preferredFloatingWidgetSize)
259
+ : !!widgetDef.defaultFloatingSize;
245
260
  state = addTab(state, widgetDef.id, {
246
261
  label,
247
262
  iconSpec: widgetDef.iconSpec,
@@ -260,29 +275,8 @@ export function appendWidgets(state, widgetDefs, side, preferredWidgetIndex) {
260
275
  state = addWidgetTabToFloatingPanel(state, floatingContainerId, widgetDef.id, homePanelInfo, preferredFloatingWidgetSize, preferredPosition, userSized, widgetDef.isFloatingStateWindowResizable);
261
276
  }
262
277
  else {
263
- tabs.push(widgetDef.id);
264
- }
265
- }
266
- if (tabs.length) {
267
- const panel = state.panels[side];
268
- preferredWidgetIndex = preferredWidgetIndex >= panel.maxWidgetCount ? panel.maxWidgetCount - 1 : preferredWidgetIndex;
269
- if (preferredWidgetIndex < panel.widgets.length) {
270
- // Append tabs to existing widget.
271
- const widgetId = panel.widgets[preferredWidgetIndex];
272
- state = produce(state, (draft) => {
273
- const widget = draft.widgets[widgetId];
274
- for (const tab of tabs) {
275
- widget.tabs.push(tab);
276
- }
277
- });
278
- }
279
- else {
280
- const newWidgetId = getNextAvailablePanelWidgetId(panel);
281
- const widget = createWidgetState(newWidgetId, tabs);
282
- state = produce(state, (draft) => {
283
- draft.panels[side].widgets.push(widget.id);
284
- draft.widgets[widget.id] = castDraft(widget);
285
- });
278
+ const widgetPanelSectionId = getWidgetPanelSectionId(side, preferredWidgetIndex);
279
+ state = addWidgetTabToPanelSection(state, side, widgetPanelSectionId, widgetDef.id);
286
280
  }
287
281
  }
288
282
  return state;
@@ -306,28 +300,26 @@ function processPopoutWidgets(initialState, frontstageDef) {
306
300
  * @internal
307
301
  */
308
302
  export function addMissingWidgets(frontstageDef, initialState) {
309
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
303
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
310
304
  let state = initialState;
311
305
  state = appendWidgets(state, determineNewWidgets((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs, initialState), "left", 0);
312
306
  state = appendWidgets(state, determineNewWidgets((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs, initialState), "left", 0);
313
307
  state = appendWidgets(state, determineNewWidgets((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs, initialState), "left", 1);
314
- state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.middle.widgetDefs, initialState), "left", 1);
315
- state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelWidgetDefs, initialState), "left", 2);
316
- state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.leftPanel) === null || _f === void 0 ? void 0 : _f.panelZones.end.widgetDefs, initialState), "left", 2);
317
- state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.centerRight) === null || _g === void 0 ? void 0 : _g.widgetDefs, initialState), "right", 0);
318
- state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.rightPanel) === null || _h === void 0 ? void 0 : _h.panelZones.start.widgetDefs, initialState), "right", 0);
319
- state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.bottomRight) === null || _j === void 0 ? void 0 : _j.widgetDefs, initialState), "right", 1);
320
- state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.middle.widgetDefs, initialState), "right", 1);
321
- state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.rightPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs, initialState), "right", 2);
322
- state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.rightPanel) === null || _m === void 0 ? void 0 : _m.panelZones.end.widgetDefs, initialState), "right", 2);
323
- state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.topPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs, initialState), "top", 0);
324
- state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.start.widgetDefs, initialState), "top", 0);
325
- state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.topMostPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs, initialState), "top", 1); // eslint-disable-line deprecation/deprecation
326
- state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.topPanel) === null || _r === void 0 ? void 0 : _r.panelZones.end.widgetDefs, initialState), "top", 1);
327
- state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.bottomPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs, initialState), "bottom", 0);
328
- state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.start.widgetDefs, initialState), "bottom", 0);
329
- state = appendWidgets(state, determineNewWidgets((_u = frontstageDef.bottomMostPanel) === null || _u === void 0 ? void 0 : _u.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
330
- state = appendWidgets(state, determineNewWidgets((_v = frontstageDef.bottomPanel) === null || _v === void 0 ? void 0 : _v.panelZones.end.widgetDefs, initialState), "bottom", 1);
308
+ state = appendWidgets(state, determineNewWidgets((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelWidgetDefs, initialState), "left", 1);
309
+ state = appendWidgets(state, determineNewWidgets((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelZones.end.widgetDefs, initialState), "left", 1);
310
+ state = appendWidgets(state, determineNewWidgets((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs, initialState), "right", 0);
311
+ state = appendWidgets(state, determineNewWidgets((_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs, initialState), "right", 0);
312
+ state = appendWidgets(state, determineNewWidgets((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs, initialState), "right", 1);
313
+ state = appendWidgets(state, determineNewWidgets((_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelWidgetDefs, initialState), "right", 1);
314
+ state = appendWidgets(state, determineNewWidgets((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.end.widgetDefs, initialState), "right", 1);
315
+ state = appendWidgets(state, determineNewWidgets((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs, initialState), "top", 0);
316
+ state = appendWidgets(state, determineNewWidgets((_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs, initialState), "top", 0);
317
+ state = appendWidgets(state, determineNewWidgets((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs, initialState), "top", 1); // eslint-disable-line deprecation/deprecation
318
+ state = appendWidgets(state, determineNewWidgets((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs, initialState), "top", 1);
319
+ state = appendWidgets(state, determineNewWidgets((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs, initialState), "bottom", 0);
320
+ state = appendWidgets(state, determineNewWidgets((_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs, initialState), "bottom", 0);
321
+ state = appendWidgets(state, determineNewWidgets((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs, initialState), "bottom", 1); // eslint-disable-line deprecation/deprecation
322
+ state = appendWidgets(state, determineNewWidgets((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs, initialState), "bottom", 1);
331
323
  return state;
332
324
  }
333
325
  /** Removes widgets with Hidden defaultState. */
@@ -383,18 +375,12 @@ export function getWidgetId(side, key) {
383
375
  if (key === "start") {
384
376
  return "leftStart";
385
377
  }
386
- else if (key === "middle") {
387
- return "leftMiddle";
388
- }
389
378
  return "leftEnd";
390
379
  }
391
380
  case "right": {
392
381
  if (key === "start") {
393
382
  return "rightStart";
394
383
  }
395
- else if (key === "middle") {
396
- return "rightMiddle";
397
- }
398
384
  return "rightEnd";
399
385
  }
400
386
  case "top": {
@@ -411,74 +397,90 @@ export function getWidgetId(side, key) {
411
397
  }
412
398
  }
413
399
  /** @internal */
414
- function getNextAvailablePanelWidgetId(panel) {
415
- const index = panel.widgets.length;
416
- return getWidgetId(panel.side, panelZoneKeys[index]);
417
- }
418
- function isVerticalPanelSide(side) { return !isHorizontalPanelSide(side); }
419
- /** @internal */
420
400
  export function getPanelZoneWidgets(frontstageDef, panelZone) {
421
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
401
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
422
402
  switch (panelZone) {
423
403
  case "leftStart": {
424
- return [
425
- ...((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs) || [],
426
- ...((_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs) || [],
427
- ];
428
- }
429
- case "leftMiddle": {
430
- return [
431
- ...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || [],
432
- ...((_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.middle.widgetDefs) || [],
433
- ];
404
+ const outArray = [...((_a = frontstageDef.centerLeft) === null || _a === void 0 ? void 0 : _a.widgetDefs) || []];
405
+ (_b = frontstageDef.leftPanel) === null || _b === void 0 ? void 0 : _b.panelZones.start.widgetDefs.forEach((widgetDef) => {
406
+ // istanbul ignore else
407
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
408
+ outArray.push(widgetDef);
409
+ });
410
+ return outArray;
434
411
  }
435
412
  case "leftEnd": {
436
- return [
437
- ...((_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelWidgetDefs) || [],
438
- ...((_f = frontstageDef.leftPanel) === null || _f === void 0 ? void 0 : _f.panelZones.end.widgetDefs) || [],
439
- ];
413
+ const outArray = [...((_c = frontstageDef.bottomLeft) === null || _c === void 0 ? void 0 : _c.widgetDefs) || []];
414
+ (_d = frontstageDef.leftPanel) === null || _d === void 0 ? void 0 : _d.panelZones.end.widgetDefs.forEach((widgetDef) => {
415
+ // istanbul ignore else
416
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
417
+ outArray.push(widgetDef);
418
+ });
419
+ (_e = frontstageDef.leftPanel) === null || _e === void 0 ? void 0 : _e.panelWidgetDefs.forEach((widgetDef) => {
420
+ // istanbul ignore else
421
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
422
+ outArray.push(widgetDef);
423
+ });
424
+ return outArray;
440
425
  }
441
426
  case "rightStart": {
442
- return [
443
- ...((_g = frontstageDef.centerRight) === null || _g === void 0 ? void 0 : _g.widgetDefs) || [],
444
- ...((_h = frontstageDef.rightPanel) === null || _h === void 0 ? void 0 : _h.panelZones.start.widgetDefs) || [],
445
- ];
446
- }
447
- case "rightMiddle": {
448
- return [
449
- ...((_j = frontstageDef.bottomRight) === null || _j === void 0 ? void 0 : _j.widgetDefs) || [],
450
- ...((_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelZones.middle.widgetDefs) || [],
451
- ];
427
+ const outArray = [...((_f = frontstageDef.centerRight) === null || _f === void 0 ? void 0 : _f.widgetDefs) || []];
428
+ (_g = frontstageDef.rightPanel) === null || _g === void 0 ? void 0 : _g.panelZones.start.widgetDefs.forEach((widgetDef) => {
429
+ // istanbul ignore else
430
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
431
+ outArray.push(widgetDef);
432
+ });
433
+ return outArray;
452
434
  }
453
435
  case "rightEnd": {
454
- return [
455
- ...((_l = frontstageDef.rightPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs) || [],
456
- ...((_m = frontstageDef.rightPanel) === null || _m === void 0 ? void 0 : _m.panelZones.end.widgetDefs) || [],
457
- ];
436
+ const outArray = [...((_h = frontstageDef.bottomRight) === null || _h === void 0 ? void 0 : _h.widgetDefs) || []];
437
+ (_j = frontstageDef.rightPanel) === null || _j === void 0 ? void 0 : _j.panelZones.end.widgetDefs.forEach((widgetDef) => {
438
+ // istanbul ignore else
439
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
440
+ outArray.push(widgetDef);
441
+ });
442
+ (_k = frontstageDef.rightPanel) === null || _k === void 0 ? void 0 : _k.panelWidgetDefs.forEach((widgetDef) => {
443
+ // istanbul ignore else
444
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
445
+ outArray.push(widgetDef);
446
+ });
447
+ return outArray;
458
448
  }
459
449
  case "topStart": {
460
- return [
461
- ...((_o = frontstageDef.topPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs) || [],
462
- ...((_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.start.widgetDefs) || [],
463
- ];
450
+ const outArray = [...((_l = frontstageDef.topPanel) === null || _l === void 0 ? void 0 : _l.panelWidgetDefs) || []];
451
+ (_m = frontstageDef.topPanel) === null || _m === void 0 ? void 0 : _m.panelZones.start.widgetDefs.forEach((widgetDef) => {
452
+ // istanbul ignore else
453
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
454
+ outArray.push(widgetDef);
455
+ });
456
+ return outArray;
464
457
  }
465
458
  case "topEnd": {
466
- return [
467
- ...((_q = frontstageDef.topMostPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs) || [],
468
- ...((_r = frontstageDef.topPanel) === null || _r === void 0 ? void 0 : _r.panelZones.end.widgetDefs) || [],
469
- ];
459
+ const outArray = [...((_o = frontstageDef.topMostPanel) === null || _o === void 0 ? void 0 : _o.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
460
+ (_p = frontstageDef.topPanel) === null || _p === void 0 ? void 0 : _p.panelZones.end.widgetDefs.forEach((widgetDef) => {
461
+ // istanbul ignore else
462
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
463
+ outArray.push(widgetDef);
464
+ });
465
+ return outArray;
470
466
  }
471
467
  case "bottomStart": {
472
- return [
473
- ...((_s = frontstageDef.bottomPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs) || [],
474
- ...((_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.start.widgetDefs) || [],
475
- ];
468
+ const outArray = [...((_q = frontstageDef.bottomPanel) === null || _q === void 0 ? void 0 : _q.panelWidgetDefs) || []];
469
+ (_r = frontstageDef.bottomPanel) === null || _r === void 0 ? void 0 : _r.panelZones.start.widgetDefs.forEach((widgetDef) => {
470
+ // istanbul ignore else
471
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
472
+ outArray.push(widgetDef);
473
+ });
474
+ return outArray;
476
475
  }
477
476
  case "bottomEnd": {
478
- return [
479
- ...((_u = frontstageDef.bottomMostPanel) === null || _u === void 0 ? void 0 : _u.panelWidgetDefs) || [],
480
- ...((_v = frontstageDef.bottomPanel) === null || _v === void 0 ? void 0 : _v.panelZones.end.widgetDefs) || [],
481
- ];
477
+ const outArray = [...((_s = frontstageDef.bottomMostPanel) === null || _s === void 0 ? void 0 : _s.panelWidgetDefs) || []]; // eslint-disable-line deprecation/deprecation
478
+ (_t = frontstageDef.bottomPanel) === null || _t === void 0 ? void 0 : _t.panelZones.end.widgetDefs.forEach((widgetDef) => {
479
+ // istanbul ignore else
480
+ if (undefined === outArray.find((widget) => widget.id === widgetDef.id))
481
+ outArray.push(widgetDef);
482
+ });
483
+ return outArray;
482
484
  }
483
485
  }
484
486
  }
@@ -487,11 +489,6 @@ export function addPanelWidgets(state, frontstageDef, side) {
487
489
  const start = getWidgetId(side, "start");
488
490
  const startWidgets = getPanelZoneWidgets(frontstageDef, start);
489
491
  state = addWidgets(state, startWidgets, side, start);
490
- if (isVerticalPanelSide(side)) {
491
- const middle = getWidgetId(side, "middle");
492
- const middleWidgets = getPanelZoneWidgets(frontstageDef, middle);
493
- state = addWidgets(state, middleWidgets, side, middle);
494
- }
495
492
  const end = getWidgetId(side, "end");
496
493
  const endWidgets = getPanelZoneWidgets(frontstageDef, end);
497
494
  state = addWidgets(state, endWidgets, side, end);
@@ -529,7 +526,7 @@ function getPanelMaxSize(maxSizeSpec, panel, nineZoneSize) {
529
526
  const size = isHorizontalPanelSide(panel) ? nineZoneSize.height : nineZoneSize.width;
530
527
  return maxSizeSpec.percentage / 100 * size;
531
528
  }
532
- const stateVersion = 11; // this needs to be bumped when NineZoneState is changed (to recreate layout).
529
+ const stateVersion = 12; // this needs to be bumped when NineZoneState is changed (to recreate layout).
533
530
  /** @internal */
534
531
  export function initializeNineZoneState(frontstageDef) {
535
532
  let nineZone = defaultNineZone;
@@ -613,6 +610,31 @@ export function restoreNineZoneState(frontstageDef, saved) {
613
610
  isFloatingStateWindowResizable: widgetDef === null || widgetDef === void 0 ? void 0 : widgetDef.isFloatingStateWindowResizable,
614
611
  };
615
612
  }
613
+ // remove center panel section if one is found in left or right panels
614
+ const oldLeftMiddleIndex = saved.panels.left.widgets.findIndex((value) => value === "leftMiddle");
615
+ // istanbul ignore next
616
+ if (-1 !== oldLeftMiddleIndex) {
617
+ draft.panels.left.widgets = saved.panels.left.widgets.filter((value) => value !== "leftMiddle");
618
+ if ("leftEnd" in draft.widgets) {
619
+ draft.widgets.leftMiddle.tabs.forEach((tab) => draft.widgets.leftEnd.tabs.push(tab));
620
+ }
621
+ else {
622
+ draft.widgets.leftEnd = { ...draft.widgets.leftMiddle };
623
+ delete draft.widgets.leftMiddle;
624
+ }
625
+ }
626
+ const oldRightMiddleIndex = saved.panels.right.widgets.findIndex((value) => value === "rightMiddle");
627
+ // istanbul ignore next
628
+ if (-1 !== oldRightMiddleIndex) {
629
+ draft.panels.right.widgets = saved.panels.right.widgets.filter((value) => value !== "rightMiddle");
630
+ if ("rightEnd" in draft.widgets) {
631
+ draft.widgets.rightMiddle.tabs.forEach((tab) => draft.widgets.rightEnd.tabs.push(tab));
632
+ }
633
+ else {
634
+ draft.widgets.rightEnd = { ...draft.widgets.rightMiddle };
635
+ delete draft.widgets.rightMiddle;
636
+ }
637
+ }
616
638
  return;
617
639
  });
618
640
  if (FrontstageManager.nineZoneSize && (0 !== FrontstageManager.nineZoneSize.height || 0 !== FrontstageManager.nineZoneSize.width)) {
@@ -661,6 +683,7 @@ function addRemovedTab(nineZone, widgetDef) {
661
683
  const newTab = createTabState(widgetDef.id, {
662
684
  label: getWidgetLabel(widgetDef.label),
663
685
  canPopout: widgetDef.canPopout,
686
+ iconSpec: widgetDef.iconSpec,
664
687
  preferredPanelWidgetSize: widgetDef.preferredPanelSize,
665
688
  isFloatingStateWindowResizable: widgetDef.isFloatingStateWindowResizable,
666
689
  });
@@ -721,20 +744,11 @@ export const setWidgetState = produce((nineZone, widgetDef, state) => {
721
744
  location = findTab(nineZone, id);
722
745
  assert(!!location);
723
746
  }
724
- const widget = nineZone.widgets[location.widgetId];
725
- if (id !== widget.activeTabId)
726
- return;
727
- const minimized = widget.minimized;
728
- widget.minimized = true;
729
- if ("side" in location) {
730
- const panel = nineZone.panels[location.side];
731
- const maximized = panel.widgets.find((wId) => {
732
- const w = nineZone.widgets[wId];
733
- return !w.minimized;
734
- });
735
- if (maximized === undefined)
736
- widget.minimized = minimized;
737
- return;
747
+ if (isFloatingLocation(location)) {
748
+ const widget = nineZone.widgets[location.widgetId];
749
+ if (id !== widget.activeTabId)
750
+ return;
751
+ widget.minimized = true;
738
752
  }
739
753
  }
740
754
  else if (state === WidgetState.Hidden) {