@hai3/react 0.3.0-alpha.0 → 0.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -20,139 +20,175 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var src_exports = {};
22
22
  __export(src_exports, {
23
- ACCOUNTS_DOMAIN: () => import_framework2.ACCOUNTS_DOMAIN,
24
- ApiPlugin: () => import_framework2.ApiPlugin,
25
- ApiPluginBase: () => import_framework2.ApiPluginBase,
26
- ApiProtocol: () => import_framework2.ApiProtocol,
27
- AppRouter: () => AppRouter,
28
- BaseApiService: () => import_framework2.BaseApiService,
23
+ ACCOUNTS_DOMAIN: () => import_framework6.ACCOUNTS_DOMAIN,
24
+ ApiPlugin: () => import_framework6.ApiPlugin,
25
+ ApiPluginBase: () => import_framework6.ApiPluginBase,
26
+ ApiProtocol: () => import_framework6.ApiProtocol,
27
+ BaseApiService: () => import_framework6.BaseApiService,
28
+ ContainerProvider: () => import_framework15.ContainerProvider,
29
+ ExtensionDomainSlot: () => ExtensionDomainSlot,
29
30
  HAI3Context: () => HAI3Context,
30
31
  HAI3Provider: () => HAI3Provider,
31
- I18nRegistry: () => import_framework2.I18nRegistry,
32
- I18nRegistryImpl: () => import_framework2.I18nRegistryImpl,
33
- LAYOUT_SLICE_NAME: () => import_framework2.LAYOUT_SLICE_NAME,
34
- Language: () => import_framework3.Language,
35
- LanguageDisplayMode: () => import_framework3.LanguageDisplayMode,
36
- LayoutDomain: () => import_framework2.LayoutDomain,
37
- MOCK_PLUGIN: () => import_framework2.MOCK_PLUGIN,
38
- MockEventSource: () => import_framework2.MockEventSource,
39
- MockEvents: () => import_framework2.MockEvents,
40
- RestMockPlugin: () => import_framework2.RestMockPlugin,
41
- RestPlugin: () => import_framework2.RestPlugin,
42
- RestPluginWithConfig: () => import_framework2.RestPluginWithConfig,
43
- RestProtocol: () => import_framework2.RestProtocol,
44
- RouteParamsContext: () => RouteParamsContext,
45
- RouteParamsProvider: () => RouteParamsProvider,
46
- SUPPORTED_LANGUAGES: () => import_framework2.SUPPORTED_LANGUAGES,
47
- ScreensetCategory: () => import_framework2.ScreensetCategory,
48
- SseMockPlugin: () => import_framework2.SseMockPlugin,
49
- SsePlugin: () => import_framework2.SsePlugin,
50
- SsePluginWithConfig: () => import_framework2.SsePluginWithConfig,
51
- SseProtocol: () => import_framework2.SseProtocol,
52
- TENANT_SLICE_NAME: () => import_framework2.TENANT_SLICE_NAME,
53
- TenantEvents: () => import_framework2.TenantEvents,
54
- TextDirection: () => import_framework3.TextDirection,
55
- apiRegistry: () => import_framework2.apiRegistry,
56
- changeTenant: () => import_framework2.changeTenant,
57
- clearActiveScreen: () => import_framework2.clearActiveScreen,
58
- clearTenant: () => import_framework2.clearTenant,
59
- clearTenantAction: () => import_framework2.clearTenantAction,
60
- clearUser: () => import_framework2.clearUser,
61
- closeAllPopups: () => import_framework2.closeAllPopups,
62
- closePopup: () => import_framework2.closePopup,
63
- closeTopPopup: () => import_framework2.closeTopPopup,
64
- createHAI3: () => import_framework2.createHAI3,
65
- createHAI3App: () => import_framework2.createHAI3App,
66
- createI18nRegistry: () => import_framework2.createI18nRegistry,
67
- createRouteRegistry: () => import_framework2.createRouteRegistry,
68
- createScreensetRegistry: () => import_framework2.createScreensetRegistry,
69
- createSlice: () => import_framework2.createSlice,
70
- createStore: () => import_framework2.createStore,
71
- createThemeRegistry: () => import_framework2.createThemeRegistry,
72
- effects: () => import_framework2.effects,
32
+ HAI3_ACTION_LOAD_EXT: () => import_framework13.HAI3_ACTION_LOAD_EXT,
33
+ HAI3_ACTION_MOUNT_EXT: () => import_framework13.HAI3_ACTION_MOUNT_EXT,
34
+ HAI3_ACTION_UNMOUNT_EXT: () => import_framework13.HAI3_ACTION_UNMOUNT_EXT,
35
+ HAI3_OVERLAY_DOMAIN: () => import_framework11.HAI3_OVERLAY_DOMAIN,
36
+ HAI3_POPUP_DOMAIN: () => import_framework11.HAI3_POPUP_DOMAIN,
37
+ HAI3_SCREEN_DOMAIN: () => import_framework11.HAI3_SCREEN_DOMAIN,
38
+ HAI3_SCREEN_EXTENSION_TYPE: () => import_framework12.HAI3_SCREEN_EXTENSION_TYPE,
39
+ HAI3_SHARED_PROPERTY_LANGUAGE: () => import_framework14.HAI3_SHARED_PROPERTY_LANGUAGE,
40
+ HAI3_SHARED_PROPERTY_THEME: () => import_framework14.HAI3_SHARED_PROPERTY_THEME,
41
+ HAI3_SIDEBAR_DOMAIN: () => import_framework11.HAI3_SIDEBAR_DOMAIN,
42
+ I18nRegistry: () => import_framework6.I18nRegistry,
43
+ I18nRegistryImpl: () => import_framework6.I18nRegistryImpl,
44
+ LAYOUT_SLICE_NAME: () => import_framework6.LAYOUT_SLICE_NAME,
45
+ Language: () => import_framework7.Language,
46
+ LanguageDisplayMode: () => import_framework7.LanguageDisplayMode,
47
+ LayoutDomain: () => import_framework6.LayoutDomain,
48
+ MOCK_PLUGIN: () => import_framework6.MOCK_PLUGIN,
49
+ MfeBridgeFactory: () => import_framework15.MfeBridgeFactory,
50
+ MfeContext: () => MfeContext,
51
+ MfeHandler: () => import_framework15.MfeHandler,
52
+ MfeHandlerMF: () => import_framework16.MfeHandlerMF,
53
+ MfeProvider: () => MfeProvider,
54
+ MockEventSource: () => import_framework6.MockEventSource,
55
+ MockEvents: () => import_framework6.MockEvents,
56
+ RefContainerProvider: () => RefContainerProvider,
57
+ RestMockPlugin: () => import_framework6.RestMockPlugin,
58
+ RestPlugin: () => import_framework6.RestPlugin,
59
+ RestPluginWithConfig: () => import_framework6.RestPluginWithConfig,
60
+ RestProtocol: () => import_framework6.RestProtocol,
61
+ SUPPORTED_LANGUAGES: () => import_framework6.SUPPORTED_LANGUAGES,
62
+ ScreensetsRegistry: () => import_framework15.ScreensetsRegistry,
63
+ ScreensetsRegistryFactory: () => import_framework15.ScreensetsRegistryFactory,
64
+ SseMockPlugin: () => import_framework6.SseMockPlugin,
65
+ SsePlugin: () => import_framework6.SsePlugin,
66
+ SsePluginWithConfig: () => import_framework6.SsePluginWithConfig,
67
+ SseProtocol: () => import_framework6.SseProtocol,
68
+ TENANT_SLICE_NAME: () => import_framework6.TENANT_SLICE_NAME,
69
+ TenantEvents: () => import_framework6.TenantEvents,
70
+ TextDirection: () => import_framework7.TextDirection,
71
+ apiRegistry: () => import_framework6.apiRegistry,
72
+ changeTenant: () => import_framework6.changeTenant,
73
+ clearActiveScreen: () => import_framework6.clearActiveScreen,
74
+ clearTenant: () => import_framework6.clearTenant,
75
+ clearTenantAction: () => import_framework6.clearTenantAction,
76
+ clearUser: () => import_framework6.clearUser,
77
+ closeAllPopups: () => import_framework6.closeAllPopups,
78
+ closePopup: () => import_framework6.closePopup,
79
+ closeTopPopup: () => import_framework6.closeTopPopup,
80
+ createHAI3: () => import_framework6.createHAI3,
81
+ createHAI3App: () => import_framework6.createHAI3App,
82
+ createI18nRegistry: () => import_framework6.createI18nRegistry,
83
+ createShadowRoot: () => import_framework17.createShadowRoot,
84
+ createSlice: () => import_framework6.createSlice,
85
+ createStore: () => import_framework6.createStore,
86
+ createThemeRegistry: () => import_framework6.createThemeRegistry,
87
+ effects: () => import_framework6.effects,
73
88
  eventBus: () => eventBus,
74
- footerActions: () => import_framework2.footerActions,
75
- footerSlice: () => import_framework2.footerSlice,
76
- getLanguageMetadata: () => import_framework2.getLanguageMetadata,
77
- getStore: () => import_framework2.getStore,
78
- hasSlice: () => import_framework2.hasSlice,
79
- headerActions: () => import_framework2.headerActions,
80
- headerSlice: () => import_framework2.headerSlice,
81
- hideOverlay: () => import_framework2.hideOverlay,
82
- i18n: () => import_framework2.i18n,
83
- i18nRegistry: () => import_framework2.i18nRegistry,
84
- initMockEffects: () => import_framework2.initMockEffects,
85
- initTenantEffects: () => import_framework2.initTenantEffects,
86
- isMockPlugin: () => import_framework2.isMockPlugin,
87
- isRestShortCircuit: () => import_framework2.isRestShortCircuit,
88
- isShortCircuit: () => import_framework2.isShortCircuit,
89
- isSseShortCircuit: () => import_framework2.isSseShortCircuit,
90
- layout: () => import_framework2.layout,
91
- layoutDomainReducers: () => import_framework2.layoutDomainReducers,
92
- layoutReducer: () => import_framework2.layoutReducer,
93
- menuActions: () => import_framework2.menuActions,
94
- menuSlice: () => import_framework2.menuSlice,
95
- mockActions: () => import_framework2.mockActions,
96
- mockSlice: () => import_framework2.mockSlice,
97
- navigateTo: () => import_framework2.navigateTo,
98
- navigation: () => import_framework2.navigation,
99
- openPopup: () => import_framework2.openPopup,
100
- overlayActions: () => import_framework2.overlayActions,
101
- overlaySlice: () => import_framework2.overlaySlice,
102
- popupActions: () => import_framework2.popupActions,
103
- popupSlice: () => import_framework2.popupSlice,
104
- presets: () => import_framework2.presets,
105
- registerSlice: () => import_framework2.registerSlice,
106
- routing: () => import_framework2.routing,
107
- screenActions: () => import_framework2.screenActions,
108
- screenSlice: () => import_framework2.screenSlice,
109
- screensetRegistry: () => import_framework2.screensetRegistry,
110
- screensets: () => import_framework2.screensets,
111
- setActiveScreen: () => import_framework2.setActiveScreen,
112
- setFooterConfig: () => import_framework2.setFooterConfig,
113
- setFooterVisible: () => import_framework2.setFooterVisible,
114
- setHeaderLoading: () => import_framework2.setHeaderLoading,
115
- setMenuCollapsed: () => import_framework2.setMenuCollapsed,
116
- setMenuConfig: () => import_framework2.setMenuConfig,
117
- setMenuItems: () => import_framework2.setMenuItems,
118
- setMenuVisible: () => import_framework2.setMenuVisible,
119
- setMockEnabled: () => import_framework2.setMockEnabled,
120
- setOverlayVisible: () => import_framework2.setOverlayVisible,
121
- setScreenLoading: () => import_framework2.setScreenLoading,
122
- setSidebarCollapsed: () => import_framework2.setSidebarCollapsed,
123
- setSidebarConfig: () => import_framework2.setSidebarConfig,
124
- setSidebarContent: () => import_framework2.setSidebarContent,
125
- setSidebarPosition: () => import_framework2.setSidebarPosition,
126
- setSidebarTitle: () => import_framework2.setSidebarTitle,
127
- setSidebarVisible: () => import_framework2.setSidebarVisible,
128
- setSidebarWidth: () => import_framework2.setSidebarWidth,
129
- setTenant: () => import_framework2.setTenant,
130
- setTenantLoading: () => import_framework2.setTenantLoading,
131
- setTenantLoadingState: () => import_framework2.setTenantLoadingState,
132
- setUser: () => import_framework2.setUser,
133
- showOverlay: () => import_framework2.showOverlay,
134
- sidebarActions: () => import_framework2.sidebarActions,
135
- sidebarSlice: () => import_framework2.sidebarSlice,
136
- tenantActions: () => import_framework2.tenantActions,
137
- tenantReducer: () => import_framework2.tenantReducer,
138
- tenantSlice: () => import_framework2.tenantSlice,
139
- themes: () => import_framework2.themes,
140
- toggleMenu: () => import_framework2.toggleMenu,
141
- toggleMockMode: () => import_framework2.toggleMockMode,
142
- toggleSidebar: () => import_framework2.toggleSidebar,
89
+ extractGtsPackage: () => import_framework17.extractGtsPackage,
90
+ footerActions: () => import_framework6.footerActions,
91
+ footerSlice: () => import_framework6.footerSlice,
92
+ getLanguageMetadata: () => import_framework6.getLanguageMetadata,
93
+ getStore: () => import_framework6.getStore,
94
+ gtsPlugin: () => import_framework16.gtsPlugin,
95
+ hasSlice: () => import_framework6.hasSlice,
96
+ headerActions: () => import_framework6.headerActions,
97
+ headerSlice: () => import_framework6.headerSlice,
98
+ hideOverlay: () => import_framework6.hideOverlay,
99
+ i18n: () => import_framework6.i18n,
100
+ i18nRegistry: () => import_framework6.i18nRegistry,
101
+ initMockEffects: () => import_framework6.initMockEffects,
102
+ initTenantEffects: () => import_framework6.initTenantEffects,
103
+ injectCssVariables: () => import_framework17.injectCssVariables,
104
+ isMockPlugin: () => import_framework6.isMockPlugin,
105
+ isRestShortCircuit: () => import_framework6.isRestShortCircuit,
106
+ isShortCircuit: () => import_framework6.isShortCircuit,
107
+ isSseShortCircuit: () => import_framework6.isSseShortCircuit,
108
+ layout: () => import_framework6.layout,
109
+ layoutDomainReducers: () => import_framework6.layoutDomainReducers,
110
+ layoutReducer: () => import_framework6.layoutReducer,
111
+ loadExtension: () => import_framework9.loadExtension,
112
+ menuActions: () => import_framework6.menuActions,
113
+ menuSlice: () => import_framework6.menuSlice,
114
+ microfrontends: () => import_framework8.microfrontends,
115
+ mock: () => import_framework8.mock,
116
+ mockActions: () => import_framework6.mockActions,
117
+ mockSlice: () => import_framework6.mockSlice,
118
+ mountExtension: () => import_framework9.mountExtension,
119
+ navigateTo: () => import_framework6.navigateTo,
120
+ openPopup: () => import_framework6.openPopup,
121
+ overlayActions: () => import_framework6.overlayActions,
122
+ overlayDomain: () => import_framework11.overlayDomain,
123
+ overlaySlice: () => import_framework6.overlaySlice,
124
+ popupActions: () => import_framework6.popupActions,
125
+ popupDomain: () => import_framework11.popupDomain,
126
+ popupSlice: () => import_framework6.popupSlice,
127
+ presets: () => import_framework6.presets,
128
+ registerExtension: () => import_framework9.registerExtension,
129
+ registerSlice: () => import_framework6.registerSlice,
130
+ screenActions: () => import_framework6.screenActions,
131
+ screenDomain: () => import_framework11.screenDomain,
132
+ screenSlice: () => import_framework6.screenSlice,
133
+ screensets: () => import_framework6.screensets,
134
+ screensetsRegistryFactory: () => import_framework15.screensetsRegistryFactory,
135
+ selectExtensionError: () => import_framework10.selectExtensionError,
136
+ selectExtensionState: () => import_framework10.selectExtensionState,
137
+ selectRegisteredExtensions: () => import_framework10.selectRegisteredExtensions,
138
+ setActiveScreen: () => import_framework6.setActiveScreen,
139
+ setFooterConfig: () => import_framework6.setFooterConfig,
140
+ setFooterVisible: () => import_framework6.setFooterVisible,
141
+ setHeaderLoading: () => import_framework6.setHeaderLoading,
142
+ setMenuCollapsed: () => import_framework6.setMenuCollapsed,
143
+ setMenuConfig: () => import_framework6.setMenuConfig,
144
+ setMenuItems: () => import_framework6.setMenuItems,
145
+ setMenuVisible: () => import_framework6.setMenuVisible,
146
+ setMockEnabled: () => import_framework6.setMockEnabled,
147
+ setOverlayVisible: () => import_framework6.setOverlayVisible,
148
+ setScreenLoading: () => import_framework6.setScreenLoading,
149
+ setSidebarCollapsed: () => import_framework6.setSidebarCollapsed,
150
+ setSidebarConfig: () => import_framework6.setSidebarConfig,
151
+ setSidebarContent: () => import_framework6.setSidebarContent,
152
+ setSidebarPosition: () => import_framework6.setSidebarPosition,
153
+ setSidebarTitle: () => import_framework6.setSidebarTitle,
154
+ setSidebarVisible: () => import_framework6.setSidebarVisible,
155
+ setSidebarWidth: () => import_framework6.setSidebarWidth,
156
+ setTenant: () => import_framework6.setTenant,
157
+ setTenantLoading: () => import_framework6.setTenantLoading,
158
+ setTenantLoadingState: () => import_framework6.setTenantLoadingState,
159
+ setUser: () => import_framework6.setUser,
160
+ showOverlay: () => import_framework6.showOverlay,
161
+ sidebarActions: () => import_framework6.sidebarActions,
162
+ sidebarDomain: () => import_framework11.sidebarDomain,
163
+ sidebarSlice: () => import_framework6.sidebarSlice,
164
+ tenantActions: () => import_framework6.tenantActions,
165
+ tenantReducer: () => import_framework6.tenantReducer,
166
+ tenantSlice: () => import_framework6.tenantSlice,
167
+ themes: () => import_framework6.themes,
168
+ toggleMenu: () => import_framework6.toggleMenu,
169
+ toggleMockMode: () => import_framework6.toggleMockMode,
170
+ toggleSidebar: () => import_framework6.toggleSidebar,
171
+ unmountExtension: () => import_framework9.unmountExtension,
172
+ unregisterExtension: () => import_framework9.unregisterExtension,
173
+ useActivePackage: () => useActivePackage,
143
174
  useAppDispatch: () => useAppDispatch,
144
175
  useAppSelector: () => useAppSelector,
176
+ useDomainExtensions: () => useDomainExtensions,
177
+ useFormatters: () => useFormatters,
145
178
  useHAI3: () => useHAI3,
146
- useNavigation: () => useNavigation,
147
- useRouteParams: () => useRouteParams,
179
+ useHostAction: () => useHostAction,
180
+ useMfeBridge: () => useMfeBridge,
181
+ useMfeContext: () => useMfeContext,
182
+ useRegisteredPackages: () => useRegisteredPackages,
148
183
  useScreenTranslations: () => useScreenTranslations,
184
+ useSharedProperty: () => useSharedProperty,
149
185
  useTheme: () => useTheme,
150
186
  useTranslation: () => useTranslation
151
187
  });
152
188
  module.exports = __toCommonJS(src_exports);
153
189
 
154
190
  // src/HAI3Provider.tsx
155
- var import_react2 = require("react");
191
+ var import_react3 = require("react");
156
192
  var import_react_redux = require("react-redux");
157
193
  var import_framework = require("@hai3/framework");
158
194
 
@@ -169,33 +205,51 @@ function useHAI3() {
169
205
  return context;
170
206
  }
171
207
 
172
- // src/HAI3Provider.tsx
208
+ // src/mfe/MfeContext.tsx
209
+ var import_react2 = require("react");
210
+ var MfeContext = (0, import_react2.createContext)(null);
211
+ function useMfeContext() {
212
+ const context = (0, import_react2.useContext)(MfeContext);
213
+ if (!context) {
214
+ throw new Error(
215
+ "useMfeContext must be used within a MfeProvider. This hook can only be used inside MFE components."
216
+ );
217
+ }
218
+ return context;
219
+ }
220
+
221
+ // src/mfe/MfeProvider.tsx
173
222
  var import_jsx_runtime = require("react/jsx-runtime");
223
+ var MfeProvider = ({ value, children }) => {
224
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MfeContext.Provider, { value, children });
225
+ };
226
+
227
+ // src/HAI3Provider.tsx
228
+ var import_jsx_runtime2 = require("react/jsx-runtime");
174
229
  var HAI3Provider = ({
175
230
  children,
176
231
  config,
177
232
  app: providedApp,
178
- router
233
+ mfeBridge
179
234
  }) => {
180
- const app = (0, import_react2.useMemo)(() => {
235
+ const app = (0, import_react3.useMemo)(() => {
181
236
  if (providedApp) {
182
237
  return providedApp;
183
238
  }
184
- const mergedConfig = {
185
- ...config,
186
- routerMode: router?.type,
187
- autoNavigate: router?.autoNavigate ?? config?.autoNavigate
188
- };
189
- return (0, import_framework.createHAI3App)(mergedConfig);
190
- }, [providedApp, config, router]);
191
- (0, import_react2.useEffect)(() => {
239
+ return (0, import_framework.createHAI3App)(config);
240
+ }, [providedApp, config]);
241
+ (0, import_react3.useEffect)(() => {
192
242
  return () => {
193
243
  if (!providedApp) {
194
244
  app.destroy();
195
245
  }
196
246
  };
197
247
  }, [app, providedApp]);
198
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(HAI3Context.Provider, { value: app, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_redux.Provider, { store: app.store, children }) });
248
+ const content = /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(HAI3Context.Provider, { value: app, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react_redux.Provider, { store: app.store, children }) });
249
+ if (mfeBridge) {
250
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(MfeProvider, { value: mfeBridge, children: content });
251
+ }
252
+ return content;
199
253
  };
200
254
 
201
255
  // src/hooks/useAppDispatch.ts
@@ -209,12 +263,12 @@ var import_react_redux3 = require("react-redux");
209
263
  var useAppSelector = import_react_redux3.useSelector;
210
264
 
211
265
  // src/hooks/useTranslation.ts
212
- var import_react3 = require("react");
266
+ var import_react4 = require("react");
213
267
  function useTranslation() {
214
268
  const app = useHAI3();
215
269
  const { i18nRegistry: i18nRegistry2 } = app;
216
- const version = (0, import_react3.useSyncExternalStore)(
217
- (0, import_react3.useCallback)(
270
+ const version = (0, import_react4.useSyncExternalStore)(
271
+ (0, import_react4.useCallback)(
218
272
  (callback) => {
219
273
  return i18nRegistry2.subscribe(callback);
220
274
  },
@@ -223,23 +277,25 @@ function useTranslation() {
223
277
  () => i18nRegistry2.getVersion(),
224
278
  () => i18nRegistry2.getVersion()
225
279
  );
226
- const language = (0, import_react3.useMemo)(() => {
280
+ const language = (0, import_react4.useMemo)(() => {
227
281
  void version;
228
282
  return i18nRegistry2.getLanguage();
229
283
  }, [i18nRegistry2, version]);
230
- const t = (0, import_react3.useCallback)(
284
+ const t = (0, import_react4.useCallback)(
231
285
  (key, params) => {
232
286
  return i18nRegistry2.t(key, params);
233
287
  },
234
288
  [i18nRegistry2]
235
289
  );
236
- const setLanguage = (0, import_react3.useCallback)(
237
- async (lang) => {
238
- await i18nRegistry2.setLanguage(lang);
290
+ const setLanguage = (0, import_react4.useCallback)(
291
+ (lang) => {
292
+ if (app.actions.setLanguage) {
293
+ app.actions.setLanguage({ language: lang });
294
+ }
239
295
  },
240
- [i18nRegistry2]
296
+ [app.actions]
241
297
  );
242
- const isRTL = (0, import_react3.useMemo)(() => {
298
+ const isRTL = (0, import_react4.useMemo)(() => {
243
299
  void language;
244
300
  return i18nRegistry2.isRTL();
245
301
  }, [i18nRegistry2, language]);
@@ -252,29 +308,29 @@ function useTranslation() {
252
308
  }
253
309
 
254
310
  // src/hooks/useScreenTranslations.ts
255
- var import_react4 = require("react");
311
+ var import_react5 = require("react");
256
312
  function isTranslationLoader(input) {
257
313
  return typeof input === "function";
258
314
  }
259
315
  function useScreenTranslations(screensetId, screenId, translations) {
260
316
  const app = useHAI3();
261
317
  const { i18nRegistry: i18nRegistry2 } = app;
262
- const [loadedLanguage, setLoadedLanguage] = (0, import_react4.useState)(null);
263
- const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
264
- const [error, setError] = (0, import_react4.useState)(null);
265
- const version = (0, import_react4.useSyncExternalStore)(
266
- (0, import_react4.useCallback)(
318
+ const [loadedLanguage, setLoadedLanguage] = (0, import_react5.useState)(null);
319
+ const [isLoading, setIsLoading] = (0, import_react5.useState)(false);
320
+ const [error, setError] = (0, import_react5.useState)(null);
321
+ const version = (0, import_react5.useSyncExternalStore)(
322
+ (0, import_react5.useCallback)(
267
323
  (callback) => i18nRegistry2.subscribe(callback),
268
324
  [i18nRegistry2]
269
325
  ),
270
326
  () => i18nRegistry2.getVersion(),
271
327
  () => i18nRegistry2.getVersion()
272
328
  );
273
- const currentLanguage = (0, import_react4.useMemo)(() => {
329
+ const currentLanguage = (0, import_react5.useMemo)(() => {
274
330
  void version;
275
331
  return i18nRegistry2.getLanguage();
276
332
  }, [i18nRegistry2, version]);
277
- const loader = (0, import_react4.useMemo)(() => {
333
+ const loader = (0, import_react5.useMemo)(() => {
278
334
  if (isTranslationLoader(translations)) {
279
335
  return translations;
280
336
  }
@@ -287,7 +343,7 @@ function useScreenTranslations(screensetId, screenId, translations) {
287
343
  return module2.default;
288
344
  };
289
345
  }, [translations]);
290
- (0, import_react4.useEffect)(() => {
346
+ (0, import_react5.useEffect)(() => {
291
347
  if (!currentLanguage || currentLanguage === loadedLanguage) {
292
348
  return;
293
349
  }
@@ -320,59 +376,29 @@ function useScreenTranslations(screensetId, screenId, translations) {
320
376
  return { isLoaded, error };
321
377
  }
322
378
 
323
- // src/hooks/useNavigation.ts
324
- var import_react5 = require("react");
325
- function useNavigation() {
326
- const app = useHAI3();
327
- const currentScreen = useAppSelector(
328
- (state) => {
329
- const flatKey = state;
330
- if (flatKey["layout/screen"]) {
331
- return flatKey["layout/screen"].activeScreen ?? null;
332
- }
333
- const nested = state;
334
- return nested.layout?.screen?.activeScreen ?? null;
335
- }
336
- );
337
- const navigateToScreen = (0, import_react5.useCallback)(
338
- (screensetId, screenId, params) => {
339
- if (app.actions.navigateToScreen) {
340
- app.actions.navigateToScreen({ screensetId, screenId, params });
341
- }
342
- },
343
- [app.actions]
344
- );
345
- const navigateToScreenset = (0, import_react5.useCallback)(
346
- (screensetId) => {
347
- if (app.actions.navigateToScreenset) {
348
- app.actions.navigateToScreenset({ screensetId });
349
- }
379
+ // src/hooks/useFormatters.ts
380
+ var import_react6 = require("react");
381
+ var import_framework2 = require("@hai3/framework");
382
+ function useFormatters() {
383
+ const { language } = useTranslation();
384
+ return (0, import_react6.useMemo)(
385
+ () => {
386
+ void language;
387
+ return {
388
+ formatDate: import_framework2.formatDate,
389
+ formatTime: import_framework2.formatTime,
390
+ formatDateTime: import_framework2.formatDateTime,
391
+ formatRelative: import_framework2.formatRelative,
392
+ formatNumber: import_framework2.formatNumber,
393
+ formatPercent: import_framework2.formatPercent,
394
+ formatCompact: import_framework2.formatCompact,
395
+ formatCurrency: import_framework2.formatCurrency,
396
+ compareStrings: import_framework2.compareStrings,
397
+ createCollator: import_framework2.createCollator
398
+ };
350
399
  },
351
- [app.actions]
400
+ [language]
352
401
  );
353
- const currentScreenset = currentScreen ? app.routeRegistry?.getScreensetForScreen(currentScreen) ?? null : null;
354
- return {
355
- navigateToScreen,
356
- navigateToScreenset,
357
- currentScreenset,
358
- currentScreen
359
- };
360
- }
361
-
362
- // src/contexts/RouteParamsContext.tsx
363
- var import_react6 = require("react");
364
- var import_jsx_runtime2 = require("react/jsx-runtime");
365
- var RouteParamsContext = (0, import_react6.createContext)({});
366
- function RouteParamsProvider({ params, children }) {
367
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(RouteParamsContext.Provider, { value: params, children });
368
- }
369
- function useRouteParamsContext() {
370
- return (0, import_react6.useContext)(RouteParamsContext);
371
- }
372
-
373
- // src/hooks/useRouteParams.ts
374
- function useRouteParams() {
375
- return useRouteParamsContext();
376
402
  }
377
403
 
378
404
  // src/hooks/useTheme.ts
@@ -416,101 +442,309 @@ function useTheme() {
416
442
  };
417
443
  }
418
444
 
419
- // src/components/AppRouter.tsx
445
+ // src/mfe/hooks/useMfeBridge.ts
446
+ function useMfeBridge() {
447
+ const { bridge } = useMfeContext();
448
+ return bridge;
449
+ }
450
+
451
+ // src/mfe/hooks/useSharedProperty.ts
420
452
  var import_react8 = require("react");
421
- var import_jsx_runtime3 = require("react/jsx-runtime");
422
- var AppRouter = ({
423
- fallback = null,
424
- errorFallback
425
- }) => {
453
+ function useSharedProperty(propertyTypeId) {
454
+ const { bridge } = useMfeContext();
455
+ const subscribe = (0, import_react8.useCallback)((callback) => {
456
+ return bridge.subscribeToProperty(propertyTypeId, () => {
457
+ callback();
458
+ });
459
+ }, [bridge, propertyTypeId]);
460
+ const getSnapshot = (0, import_react8.useCallback)(() => {
461
+ const property = bridge.getProperty(propertyTypeId);
462
+ return property?.value;
463
+ }, [bridge, propertyTypeId]);
464
+ const value = (0, import_react8.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
465
+ return value;
466
+ }
467
+
468
+ // src/mfe/hooks/useHostAction.ts
469
+ var import_react9 = require("react");
470
+ function useHostAction(actionTypeId) {
471
+ const { bridge } = useMfeContext();
472
+ return (0, import_react9.useCallback)((payload) => {
473
+ const chain = {
474
+ action: {
475
+ type: actionTypeId,
476
+ target: bridge.domainId,
477
+ payload
478
+ }
479
+ };
480
+ bridge.executeActionsChain(chain).catch((error) => {
481
+ console.error(
482
+ `[useHostAction] Failed to send action '${actionTypeId}':`,
483
+ error
484
+ );
485
+ });
486
+ }, [actionTypeId, bridge]);
487
+ }
488
+
489
+ // src/mfe/hooks/useDomainExtensions.ts
490
+ var import_react10 = require("react");
491
+ function useDomainExtensions(domainId) {
426
492
  const app = useHAI3();
427
- const { currentScreenset, currentScreen } = useNavigation();
428
- const [ScreenComponent, setScreenComponent] = (0, import_react8.useState)(null);
429
- const [error, setError] = (0, import_react8.useState)(null);
430
- const [routeParams, setRouteParams] = (0, import_react8.useState)(() => {
431
- if (typeof window === "undefined") {
432
- return {};
493
+ const registry = app.screensetsRegistry;
494
+ if (!registry) {
495
+ throw new Error(
496
+ "useDomainExtensions requires the microfrontends plugin. Add microfrontends() to your HAI3 app configuration."
497
+ );
498
+ }
499
+ const subscribe = (0, import_react10.useCallback)(
500
+ (onStoreChange) => {
501
+ return app.store.subscribe(onStoreChange);
502
+ },
503
+ [app.store]
504
+ );
505
+ const cacheRef = (0, import_react10.useRef)({ ids: "", extensions: [] });
506
+ const getSnapshot = (0, import_react10.useCallback)(() => {
507
+ const extensions = registry.getExtensionsForDomain(domainId);
508
+ const ids = extensions.map((e) => e.id).join(",");
509
+ if (ids !== cacheRef.current.ids) {
510
+ cacheRef.current = { ids, extensions };
433
511
  }
434
- const pathname = window.location.pathname;
435
- const base = app.config.base || "";
436
- const internalPath = base && pathname.startsWith(base) ? pathname.slice(base.length) || "/" : pathname;
437
- const match = app.routeRegistry?.matchRoute(internalPath);
438
- return match?.params ?? {};
439
- });
440
- (0, import_react8.useEffect)(() => {
441
- if (typeof window === "undefined") {
442
- return;
512
+ return cacheRef.current.extensions;
513
+ }, [registry, domainId]);
514
+ return (0, import_react10.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
515
+ }
516
+
517
+ // src/mfe/hooks/useRegisteredPackages.ts
518
+ var import_react11 = require("react");
519
+ function useRegisteredPackages() {
520
+ const app = useHAI3();
521
+ const registry = app.screensetsRegistry;
522
+ if (!registry) {
523
+ throw new Error(
524
+ "useRegisteredPackages requires the microfrontends plugin. Add microfrontends() to your HAI3 app configuration."
525
+ );
526
+ }
527
+ const subscribe = (0, import_react11.useCallback)(
528
+ (onStoreChange) => {
529
+ return app.store.subscribe(onStoreChange);
530
+ },
531
+ [app.store]
532
+ );
533
+ const cacheRef = (0, import_react11.useRef)({ packages: "", list: [] });
534
+ const getSnapshot = (0, import_react11.useCallback)(() => {
535
+ const list = registry.getRegisteredPackages();
536
+ const packages = list.join(",");
537
+ if (packages !== cacheRef.current.packages) {
538
+ cacheRef.current = { packages, list };
443
539
  }
444
- const pathname = window.location.pathname;
445
- const base = app.config.base || "";
446
- const internalPath = base && pathname.startsWith(base) ? pathname.slice(base.length) || "/" : pathname;
447
- const match = app.routeRegistry?.matchRoute(internalPath);
448
- setRouteParams(match?.params ?? {});
449
- }, [app.config.base, app.routeRegistry, currentScreen]);
450
- (0, import_react8.useEffect)(() => {
451
- let cancelled = false;
452
- const loadScreen = async () => {
453
- if (!currentScreenset || !currentScreen) {
454
- setScreenComponent(null);
540
+ return cacheRef.current.list;
541
+ }, [registry]);
542
+ return (0, import_react11.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
543
+ }
544
+
545
+ // src/mfe/hooks/useActivePackage.ts
546
+ var import_react12 = require("react");
547
+ var import_framework3 = require("@hai3/framework");
548
+ function useActivePackage() {
549
+ const app = useHAI3();
550
+ const registry = app.screensetsRegistry;
551
+ if (!registry) {
552
+ throw new Error(
553
+ "useActivePackage requires the microfrontends plugin. Add microfrontends() to your HAI3 app configuration."
554
+ );
555
+ }
556
+ const subscribe = (0, import_react12.useCallback)(
557
+ (onStoreChange) => {
558
+ return app.store.subscribe(onStoreChange);
559
+ },
560
+ [app.store]
561
+ );
562
+ const cacheRef = (0, import_react12.useRef)({ activePackage: void 0 });
563
+ const getSnapshot = (0, import_react12.useCallback)(() => {
564
+ const mountedExtensionId = registry.getMountedExtension(import_framework3.HAI3_SCREEN_DOMAIN);
565
+ if (!mountedExtensionId) {
566
+ const result = void 0;
567
+ if (result !== cacheRef.current.activePackage) {
568
+ cacheRef.current = { activePackage: result };
569
+ }
570
+ return cacheRef.current.activePackage;
571
+ }
572
+ const activePackage = (0, import_framework3.extractGtsPackage)(mountedExtensionId);
573
+ if (activePackage !== cacheRef.current.activePackage) {
574
+ cacheRef.current = { activePackage };
575
+ }
576
+ return cacheRef.current.activePackage;
577
+ }, [registry]);
578
+ return (0, import_react12.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
579
+ }
580
+
581
+ // src/mfe/components/RefContainerProvider.ts
582
+ var import_framework4 = require("@hai3/framework");
583
+ var RefContainerProvider = class extends import_framework4.ContainerProvider {
584
+ constructor(containerRef) {
585
+ super();
586
+ this.containerRef = containerRef;
587
+ }
588
+ getContainer(_extensionId) {
589
+ if (!this.containerRef.current) {
590
+ throw new Error("Container ref is not attached -- component may not be mounted yet");
591
+ }
592
+ return this.containerRef.current;
593
+ }
594
+ releaseContainer(_extensionId) {
595
+ }
596
+ };
597
+
598
+ // src/mfe/components/ExtensionDomainSlot.tsx
599
+ var import_react13 = require("react");
600
+ var import_framework5 = require("@hai3/framework");
601
+ var import_jsx_runtime3 = require("react/jsx-runtime");
602
+ function ExtensionDomainSlot(props) {
603
+ const {
604
+ registry,
605
+ domainId,
606
+ extensionId,
607
+ className,
608
+ onMounted,
609
+ onUnmounted,
610
+ onError,
611
+ loadingComponent,
612
+ errorComponent
613
+ } = props;
614
+ const containerRef = (0, import_react13.useRef)(null);
615
+ const [isLoading, setIsLoading] = (0, import_react13.useState)(true);
616
+ const [error, setError] = (0, import_react13.useState)(null);
617
+ const [bridge, setBridge] = (0, import_react13.useState)(null);
618
+ (0, import_react13.useEffect)(() => {
619
+ let mounted = true;
620
+ let currentBridge = null;
621
+ async function mountExtension2() {
622
+ if (!containerRef.current) {
455
623
  return;
456
624
  }
457
625
  try {
458
- const loader = app.routeRegistry.getScreen(currentScreenset, currentScreen);
459
- if (!loader) {
460
- throw new Error(
461
- `Screen "${currentScreen}" not found in screenset "${currentScreenset}".`
462
- );
626
+ setIsLoading(true);
627
+ setError(null);
628
+ await registry.executeActionsChain({
629
+ action: {
630
+ type: import_framework5.HAI3_ACTION_MOUNT_EXT,
631
+ target: domainId,
632
+ payload: {
633
+ extensionId
634
+ }
635
+ }
636
+ });
637
+ if (!mounted) {
638
+ await registry.executeActionsChain({
639
+ action: {
640
+ type: import_framework5.HAI3_ACTION_UNMOUNT_EXT,
641
+ target: domainId,
642
+ payload: {
643
+ extensionId
644
+ }
645
+ }
646
+ });
647
+ return;
463
648
  }
464
- const module2 = await loader();
465
- if (!cancelled) {
466
- setScreenComponent(() => module2.default);
467
- setError(null);
649
+ const newBridge = registry.getParentBridge(extensionId);
650
+ if (!newBridge) {
651
+ throw new Error(`Failed to obtain bridge for extension ${extensionId} after mount`);
652
+ }
653
+ currentBridge = newBridge;
654
+ setBridge(newBridge);
655
+ setIsLoading(false);
656
+ if (onMounted) {
657
+ onMounted(newBridge);
468
658
  }
469
659
  } catch (err) {
470
- if (!cancelled) {
471
- setError(err instanceof Error ? err : new Error(String(err)));
472
- setScreenComponent(null);
660
+ if (!mounted) {
661
+ return;
662
+ }
663
+ const errorObj = err instanceof Error ? err : new Error(String(err));
664
+ setError(errorObj);
665
+ setIsLoading(false);
666
+ if (onError) {
667
+ onError(errorObj);
473
668
  }
474
669
  }
475
- };
476
- loadScreen();
670
+ }
671
+ void mountExtension2();
477
672
  return () => {
478
- cancelled = true;
479
- };
480
- }, [currentScreenset, currentScreen, app.routeRegistry]);
481
- if (error) {
482
- if (errorFallback) {
483
- if (typeof errorFallback === "function") {
484
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: errorFallback(error) });
673
+ mounted = false;
674
+ if (currentBridge) {
675
+ void registry.executeActionsChain({
676
+ action: {
677
+ type: import_framework5.HAI3_ACTION_UNMOUNT_EXT,
678
+ target: domainId,
679
+ payload: {
680
+ extensionId
681
+ }
682
+ }
683
+ }).then(() => {
684
+ if (onUnmounted) {
685
+ onUnmounted();
686
+ }
687
+ });
485
688
  }
486
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: errorFallback });
487
- }
488
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "p-5 text-destructive", children: [
489
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { children: "Error loading screen" }),
490
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: error.message })
491
- ] });
689
+ };
690
+ }, [registry, domainId, extensionId, onMounted, onUnmounted, onError]);
691
+ if (isLoading) {
692
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className, "data-domain-id": domainId, "data-extension-id": extensionId, children: loadingComponent ?? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: "Loading extension..." }) });
492
693
  }
493
- if (!ScreenComponent) {
494
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, { children: fallback });
694
+ if (error) {
695
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className, "data-domain-id": domainId, "data-extension-id": extensionId, children: errorComponent ? errorComponent(error) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
696
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: "Error loading extension:" }),
697
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("pre", { children: error.message })
698
+ ] }) });
495
699
  }
496
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(RouteParamsProvider, { params: routeParams, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_react8.Suspense, { fallback, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ScreenComponent, {}) }) });
497
- };
700
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
701
+ "div",
702
+ {
703
+ ref: containerRef,
704
+ className,
705
+ "data-domain-id": domainId,
706
+ "data-extension-id": extensionId,
707
+ "data-bridge-active": bridge !== null
708
+ }
709
+ );
710
+ }
498
711
 
499
712
  // src/index.ts
500
- var import_framework2 = require("@hai3/framework");
501
- var import_framework3 = require("@hai3/framework");
502
- var import_framework4 = require("@hai3/framework");
503
- var eventBus = import_framework4.eventBus;
713
+ var import_framework6 = require("@hai3/framework");
714
+ var import_framework7 = require("@hai3/framework");
715
+ var import_framework8 = require("@hai3/framework");
716
+ var import_framework9 = require("@hai3/framework");
717
+ var import_framework10 = require("@hai3/framework");
718
+ var import_framework11 = require("@hai3/framework");
719
+ var import_framework12 = require("@hai3/framework");
720
+ var import_framework13 = require("@hai3/framework");
721
+ var import_framework14 = require("@hai3/framework");
722
+ var import_framework15 = require("@hai3/framework");
723
+ var import_framework16 = require("@hai3/framework");
724
+ var import_framework17 = require("@hai3/framework");
725
+ var import_framework18 = require("@hai3/framework");
726
+ var eventBus = import_framework18.eventBus;
504
727
  // Annotate the CommonJS export names for ESM import in node:
505
728
  0 && (module.exports = {
506
729
  ACCOUNTS_DOMAIN,
507
730
  ApiPlugin,
508
731
  ApiPluginBase,
509
732
  ApiProtocol,
510
- AppRouter,
511
733
  BaseApiService,
734
+ ContainerProvider,
735
+ ExtensionDomainSlot,
512
736
  HAI3Context,
513
737
  HAI3Provider,
738
+ HAI3_ACTION_LOAD_EXT,
739
+ HAI3_ACTION_MOUNT_EXT,
740
+ HAI3_ACTION_UNMOUNT_EXT,
741
+ HAI3_OVERLAY_DOMAIN,
742
+ HAI3_POPUP_DOMAIN,
743
+ HAI3_SCREEN_DOMAIN,
744
+ HAI3_SCREEN_EXTENSION_TYPE,
745
+ HAI3_SHARED_PROPERTY_LANGUAGE,
746
+ HAI3_SHARED_PROPERTY_THEME,
747
+ HAI3_SIDEBAR_DOMAIN,
514
748
  I18nRegistry,
515
749
  I18nRegistryImpl,
516
750
  LAYOUT_SLICE_NAME,
@@ -518,16 +752,21 @@ var eventBus = import_framework4.eventBus;
518
752
  LanguageDisplayMode,
519
753
  LayoutDomain,
520
754
  MOCK_PLUGIN,
755
+ MfeBridgeFactory,
756
+ MfeContext,
757
+ MfeHandler,
758
+ MfeHandlerMF,
759
+ MfeProvider,
521
760
  MockEventSource,
522
761
  MockEvents,
762
+ RefContainerProvider,
523
763
  RestMockPlugin,
524
764
  RestPlugin,
525
765
  RestPluginWithConfig,
526
766
  RestProtocol,
527
- RouteParamsContext,
528
- RouteParamsProvider,
529
767
  SUPPORTED_LANGUAGES,
530
- ScreensetCategory,
768
+ ScreensetsRegistry,
769
+ ScreensetsRegistryFactory,
531
770
  SseMockPlugin,
532
771
  SsePlugin,
533
772
  SsePluginWithConfig,
@@ -547,17 +786,18 @@ var eventBus = import_framework4.eventBus;
547
786
  createHAI3,
548
787
  createHAI3App,
549
788
  createI18nRegistry,
550
- createRouteRegistry,
551
- createScreensetRegistry,
789
+ createShadowRoot,
552
790
  createSlice,
553
791
  createStore,
554
792
  createThemeRegistry,
555
793
  effects,
556
794
  eventBus,
795
+ extractGtsPackage,
557
796
  footerActions,
558
797
  footerSlice,
559
798
  getLanguageMetadata,
560
799
  getStore,
800
+ gtsPlugin,
561
801
  hasSlice,
562
802
  headerActions,
563
803
  headerSlice,
@@ -566,6 +806,7 @@ var eventBus = import_framework4.eventBus;
566
806
  i18nRegistry,
567
807
  initMockEffects,
568
808
  initTenantEffects,
809
+ injectCssVariables,
569
810
  isMockPlugin,
570
811
  isRestShortCircuit,
571
812
  isShortCircuit,
@@ -573,24 +814,33 @@ var eventBus = import_framework4.eventBus;
573
814
  layout,
574
815
  layoutDomainReducers,
575
816
  layoutReducer,
817
+ loadExtension,
576
818
  menuActions,
577
819
  menuSlice,
820
+ microfrontends,
821
+ mock,
578
822
  mockActions,
579
823
  mockSlice,
824
+ mountExtension,
580
825
  navigateTo,
581
- navigation,
582
826
  openPopup,
583
827
  overlayActions,
828
+ overlayDomain,
584
829
  overlaySlice,
585
830
  popupActions,
831
+ popupDomain,
586
832
  popupSlice,
587
833
  presets,
834
+ registerExtension,
588
835
  registerSlice,
589
- routing,
590
836
  screenActions,
837
+ screenDomain,
591
838
  screenSlice,
592
- screensetRegistry,
593
839
  screensets,
840
+ screensetsRegistryFactory,
841
+ selectExtensionError,
842
+ selectExtensionState,
843
+ selectRegisteredExtensions,
594
844
  setActiveScreen,
595
845
  setFooterConfig,
596
846
  setFooterVisible,
@@ -615,6 +865,7 @@ var eventBus = import_framework4.eventBus;
615
865
  setUser,
616
866
  showOverlay,
617
867
  sidebarActions,
868
+ sidebarDomain,
618
869
  sidebarSlice,
619
870
  tenantActions,
620
871
  tenantReducer,
@@ -623,12 +874,20 @@ var eventBus = import_framework4.eventBus;
623
874
  toggleMenu,
624
875
  toggleMockMode,
625
876
  toggleSidebar,
877
+ unmountExtension,
878
+ unregisterExtension,
879
+ useActivePackage,
626
880
  useAppDispatch,
627
881
  useAppSelector,
882
+ useDomainExtensions,
883
+ useFormatters,
628
884
  useHAI3,
629
- useNavigation,
630
- useRouteParams,
885
+ useHostAction,
886
+ useMfeBridge,
887
+ useMfeContext,
888
+ useRegisteredPackages,
631
889
  useScreenTranslations,
890
+ useSharedProperty,
632
891
  useTheme,
633
892
  useTranslation
634
893
  });