xmlui 0.10.20 → 0.10.22

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 (32) hide show
  1. package/dist/lib/{index-Ckhnrf1F.mjs → index-BaUZuvtZ.mjs} +1472 -1289
  2. package/dist/lib/index.css +1 -1
  3. package/dist/lib/{initMock-qnCFw6Zc.mjs → initMock-BVLjWJxZ.mjs} +1 -1
  4. package/dist/lib/xmlui.d.ts +32 -0
  5. package/dist/lib/xmlui.mjs +1 -1
  6. package/dist/metadata/{collectedComponentMetadata-Dg7P-zOz.mjs → collectedComponentMetadata-MZbCI1Ki.mjs} +1463 -1281
  7. package/dist/metadata/{initMock-ZyyFNOpL.mjs → initMock-BkgwDrCY.mjs} +1 -1
  8. package/dist/metadata/style.css +1 -1
  9. package/dist/metadata/xmlui-metadata.mjs +1 -1
  10. package/dist/metadata/xmlui-metadata.umd.js +3 -3
  11. package/dist/scripts/package.json +3 -6
  12. package/dist/scripts/src/components/App/App.js +4 -4
  13. package/dist/scripts/src/components/App/AppNative.js +1 -1
  14. package/dist/scripts/src/components/ComponentProvider.js +30 -2
  15. package/dist/scripts/src/components/DateInput/DateInputNative.js +0 -1
  16. package/dist/scripts/src/components/Form/FormNative.js +0 -1
  17. package/dist/scripts/src/components/IFrame/IFrameNative.js +0 -2
  18. package/dist/scripts/src/components/Tabs/TabContext.js +26 -17
  19. package/dist/scripts/src/components/Tabs/TabItemNative.js +7 -2
  20. package/dist/scripts/src/components/Tabs/Tabs.js +22 -3
  21. package/dist/scripts/src/components/Tabs/Tabs.spec.js +362 -0
  22. package/dist/scripts/src/components/Tabs/TabsNative.js +28 -4
  23. package/dist/scripts/src/components/Text/Text.js +5 -1
  24. package/dist/scripts/src/components/Text/Text.spec.js +317 -0
  25. package/dist/scripts/src/components/Text/TextNative.js +112 -1
  26. package/dist/scripts/src/components/TimeInput/TimeInputNative.js +0 -1
  27. package/dist/scripts/src/components/Timer/TimerNative.js +0 -1
  28. package/dist/scripts/src/components/Tree/TreeNative.js +7 -12
  29. package/dist/scripts/src/components-core/rendering/ComponentAdapter.js +2 -3
  30. package/dist/standalone/xmlui-standalone.es.d.ts +34 -0
  31. package/dist/standalone/xmlui-standalone.umd.js +35 -35
  32. package/package.json +3 -6
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xmlui",
3
- "version": "0.10.20",
3
+ "version": "0.10.22",
4
4
  "sideEffects": false,
5
5
  "scripts": {
6
6
  "start-test-bed": "cd src/testing/infrastructure && xmlui start",
@@ -54,7 +54,7 @@
54
54
  "@types/color": "3.0.6",
55
55
  "@vitejs/plugin-react": "4.3.0",
56
56
  "adm-zip": "0.5.10",
57
- "axios": "1.8.2",
57
+ "axios": "1.12.0",
58
58
  "chroma-js": "^3.1.2",
59
59
  "classnames": "2.5.1",
60
60
  "cmdk": "^1.0.4",
@@ -95,8 +95,6 @@
95
95
  "react-sticky-el": "^2.1.1",
96
96
  "react-textarea-autosize": "8.5.3",
97
97
  "react-time-picker": "^8.0.2",
98
- "react-virtualized-auto-sizer": "1.0.24",
99
- "react-window": "1.8.10",
100
98
  "recharts": "^2.15.1",
101
99
  "rehype-raw": "^7.0.0",
102
100
  "remark-gfm": "^4.0.1",
@@ -106,7 +104,7 @@
106
104
  "turndown": "^7.2.0",
107
105
  "unist-util-visit": "^5.0.0",
108
106
  "use-context-selector": "1.4.1",
109
- "virtua": "0.40.0",
107
+ "virtua": "^0.40.0",
110
108
  "vite-plugin-lib-inject-css": "1.3.0",
111
109
  "vite-plugin-svgr": "4.2.0",
112
110
  "vscode-languageserver": "^9.0.1",
@@ -131,7 +129,6 @@
131
129
  "@types/react-datepicker": "4.19.5",
132
130
  "@types/react-dom": "18.2.8",
133
131
  "@types/react-measure": "^2.0.8",
134
- "@types/react-window": "1.8.8",
135
132
  "@types/yargs": "17.0.31",
136
133
  "@typescript-eslint/eslint-plugin": "8.15.0",
137
134
  "@typescript-eslint/parser": "8.15.0",
@@ -121,7 +121,7 @@ exports.AppMd = (0, metadata_helpers_1.createMetadata)({
121
121
  },
122
122
  },
123
123
  });
124
- function AppNode({ node, extractValue, renderChild, className, lookupEventHandler }) {
124
+ function AppNode({ node, extractValue, renderChild, className, lookupEventHandler, registerComponentApi }) {
125
125
  // --- Use ref to track if we've already processed the navigation to avoid duplicates in strict mode
126
126
  const processedNavRef = (0, react_1.useRef)(false);
127
127
  // --- Memoize the layout type to avoid unnecessary re-extraction
@@ -330,7 +330,7 @@ function AppNode({ node, extractValue, renderChild, className, lookupEventHandle
330
330
  const renderedFooter = (0, react_1.useMemo)(() => renderChild(Footer), [Footer, renderChild]);
331
331
  const renderedNavPanel = (0, react_1.useMemo)(() => renderChild(NavPanel), [NavPanel, renderChild]);
332
332
  const renderedContent = (0, react_1.useMemo)(() => renderChild(restChildren), [restChildren, renderChild]);
333
- return ((0, jsx_runtime_1.jsxs)(AppNative_1.App, Object.assign({}, appProps, { header: renderedHeader, footer: renderedFooter, navPanel: renderedNavPanel, navPanelDef: NavPanel, logoContentDef: node.props.logoTemplate, renderChild: renderChild, children: [renderedContent, (0, jsx_runtime_1.jsx)(SearchIndexCollector, { Pages: Pages, renderChild: renderChild })] })));
333
+ return ((0, jsx_runtime_1.jsxs)(AppNative_1.App, Object.assign({}, appProps, { header: renderedHeader, footer: renderedFooter, navPanel: renderedNavPanel, navPanelDef: NavPanel, logoContentDef: node.props.logoTemplate, renderChild: renderChild, registerComponentApi: registerComponentApi, children: [renderedContent, (0, jsx_runtime_1.jsx)(SearchIndexCollector, { Pages: Pages, renderChild: renderChild })] })));
334
334
  }
335
335
  const HIDDEN_STYLE = {
336
336
  position: "absolute",
@@ -457,8 +457,8 @@ function PageIndexer({ Page, renderChild, onIndexed, }) {
457
457
  // console.log(`PageIndexer (${pageUrl}): Rendering content for ref population.`);
458
458
  return (0, jsx_runtime_1.jsx)("div", { ref: contentRef, children: renderChild(Page.children) });
459
459
  }
460
- exports.appRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.AppMd, ({ node, extractValue, renderChild, className, lookupEventHandler }) => {
461
- return ((0, jsx_runtime_1.jsx)(AppNode, { node: node, renderChild: renderChild, extractValue: extractValue, className: className, lookupEventHandler: lookupEventHandler }));
460
+ exports.appRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.AppMd, ({ node, extractValue, renderChild, className, lookupEventHandler, registerComponentApi }) => {
461
+ return ((0, jsx_runtime_1.jsx)(AppNode, { node: node, renderChild: renderChild, extractValue: extractValue, className: className, lookupEventHandler: lookupEventHandler, registerComponentApi: registerComponentApi }));
462
462
  });
463
463
  // --- Process the entire navigation tree recursively and build hierarchy
464
464
  function processNavItems(items, parentHierarchy, extractValue) {
@@ -44,7 +44,7 @@ exports.defaultProps = {
44
44
  onMessageReceived: lodash_es_1.noop,
45
45
  };
46
46
  function App(_a) {
47
- var { children, style = constants_1.EMPTY_OBJECT, layout, loggedInUser, scrollWholePage = exports.defaultProps.scrollWholePage, noScrollbarGutters = exports.defaultProps.noScrollbarGutters, onReady = exports.defaultProps.onReady, onMessageReceived = exports.defaultProps.onMessageReceived, header, navPanel, footer, navPanelDef, logoContentDef, logo, logoDark, logoLight, defaultTone, defaultTheme, autoDetectTone = exports.defaultProps.autoDetectTone, renderChild, name, className, applyDefaultContentPadding } = _a, rest = __rest(_a, ["children", "style", "layout", "loggedInUser", "scrollWholePage", "noScrollbarGutters", "onReady", "onMessageReceived", "header", "navPanel", "footer", "navPanelDef", "logoContentDef", "logo", "logoDark", "logoLight", "defaultTone", "defaultTheme", "autoDetectTone", "renderChild", "name", "className", "applyDefaultContentPadding"]);
47
+ var { children, style = constants_1.EMPTY_OBJECT, layout, loggedInUser, scrollWholePage = exports.defaultProps.scrollWholePage, noScrollbarGutters = exports.defaultProps.noScrollbarGutters, onReady = exports.defaultProps.onReady, onMessageReceived = exports.defaultProps.onMessageReceived, header, navPanel, footer, navPanelDef, logoContentDef, logo, logoDark, logoLight, defaultTone, defaultTheme, autoDetectTone = exports.defaultProps.autoDetectTone, renderChild, name, className, applyDefaultContentPadding, registerComponentApi } = _a, rest = __rest(_a, ["children", "style", "layout", "loggedInUser", "scrollWholePage", "noScrollbarGutters", "onReady", "onMessageReceived", "header", "navPanel", "footer", "navPanelDef", "logoContentDef", "logo", "logoDark", "logoLight", "defaultTone", "defaultTheme", "autoDetectTone", "renderChild", "name", "className", "applyDefaultContentPadding", "registerComponentApi"]);
48
48
  const { getThemeVar } = (0, ThemeContext_1.useTheme)();
49
49
  const { setActiveThemeTone, setActiveThemeId, themes } = (0, ThemeContext_1.useThemes)();
50
50
  const mounted = (0, react_1.useRef)(false);
@@ -74,6 +74,7 @@ const FileDownloadAction_1 = require("../components-core/action/FileDownloadActi
74
74
  const FileUploadAction_1 = require("../components-core/action/FileUploadAction");
75
75
  const NavigateAction_1 = require("../components-core/action/NavigateAction");
76
76
  const TimedAction_1 = require("../components-core/action/TimedAction");
77
+ const CoreBehaviors_1 = require("../components-core/behaviors/CoreBehaviors");
77
78
  const ApiLoader_1 = require("../components-core/loader/ApiLoader");
78
79
  const ExternalDataLoader_1 = require("../components-core/loader/ExternalDataLoader");
79
80
  const MockLoaderRenderer_1 = require("../components-core/loader/MockLoaderRenderer");
@@ -149,7 +150,7 @@ class ComponentRegistry {
149
150
  * about component registrations
150
151
  */
151
152
  constructor(contributes = {}, extensionManager) {
152
- var _a, _b, _c;
153
+ var _a, _b, _c, _d;
153
154
  this.extensionManager = extensionManager;
154
155
  // --- The pool of available components
155
156
  this.pool = new Map(); // namespace -> name -> ComponentRegistryEntry;
@@ -162,6 +163,8 @@ class ComponentRegistry {
162
163
  this.actionFns = new Map();
163
164
  // --- The pool of available loader renderers
164
165
  this.loaders = new Map();
166
+ // --- The pool of available behaviors
167
+ this.behaviors = [];
165
168
  this.extensionRegistered = (extension) => {
166
169
  var _a;
167
170
  (_a = extension.components) === null || _a === void 0 ? void 0 : _a.forEach((c) => {
@@ -656,7 +659,14 @@ class ComponentRegistry {
656
659
  this.registerLoaderRenderer(ExternalDataLoader_1.externalDataLoaderRenderer);
657
660
  this.registerLoaderRenderer(MockLoaderRenderer_1.mockLoaderRenderer);
658
661
  this.registerLoaderRenderer(DataLoader_1.dataLoaderRenderer);
659
- (_c = this.extensionManager) === null || _c === void 0 ? void 0 : _c.subscribeToRegistrations(this.extensionRegistered);
662
+ this.registerBehavior(CoreBehaviors_1.tooltipBehavior);
663
+ this.registerBehavior(CoreBehaviors_1.animationBehavior);
664
+ this.registerBehavior(CoreBehaviors_1.labelBehavior);
665
+ // Register external behaviors from contributes
666
+ (_c = contributes.behaviors) === null || _c === void 0 ? void 0 : _c.forEach((behavior) => {
667
+ this.registerBehavior(behavior);
668
+ });
669
+ (_d = this.extensionManager) === null || _d === void 0 ? void 0 : _d.subscribeToRegistrations(this.extensionRegistered);
660
670
  }
661
671
  /**
662
672
  * All theme variables used by the registered components.
@@ -761,6 +771,24 @@ class ComponentRegistry {
761
771
  registerActionFn({ actionName: functionName, actionFn }) {
762
772
  this.actionFns.set(functionName, actionFn);
763
773
  }
774
+ // --- Registers a behavior
775
+ registerBehavior(behavior, location = "after", position) {
776
+ // If position is specified, insert relative to that behavior
777
+ if (position) {
778
+ const targetIndex = this.behaviors.findIndex(b => b.name === position);
779
+ if (targetIndex !== -1) {
780
+ const insertIndex = location === "before" ? targetIndex : targetIndex + 1;
781
+ this.behaviors.splice(insertIndex, 0, behavior);
782
+ return;
783
+ }
784
+ }
785
+ // Default: append to the end
786
+ this.behaviors.push(behavior);
787
+ }
788
+ // --- Returns all registered behaviors
789
+ getBehaviors() {
790
+ return this.behaviors;
791
+ }
764
792
  }
765
793
  exports.ComponentRegistry = ComponentRegistry;
766
794
  /**
@@ -419,7 +419,6 @@ exports.DateInput = (0, react_2.forwardRef)(function DateInputNative(_a, ref) {
419
419
  }
420
420
  }, [day, month, year]);
421
421
  // Component API registration
422
- (0, react_2.useImperativeHandle)(ref, () => dateInputRef.current);
423
422
  (0, react_2.useEffect)(() => {
424
423
  if (registerComponentApi) {
425
424
  registerComponentApi({
@@ -205,7 +205,6 @@ function cleanUpSubject(subject) {
205
205
  const Form = (0, react_2.forwardRef)(function (_a, ref) {
206
206
  var { formState, dispatch, initialValue = constants_1.EMPTY_OBJECT, children, style, className, enabled = true, cancelLabel = exports.defaultProps.cancelLabel, saveLabel = exports.defaultProps.saveLabel, saveInProgressLabel = exports.defaultProps.saveInProgressLabel, swapCancelAndSave, onSubmit, onCancel, onReset, onSuccess, buttonRow, id, registerComponentApi, itemLabelBreak = exports.defaultProps.itemLabelBreak, itemLabelWidth, itemLabelPosition = exports.defaultProps.itemLabelPosition, keepModalOpenOnSubmit = exports.defaultProps.keepModalOpenOnSubmit, hideButtonRowUntilDirty } = _a, rest = __rest(_a, ["formState", "dispatch", "initialValue", "children", "style", "className", "enabled", "cancelLabel", "saveLabel", "saveInProgressLabel", "swapCancelAndSave", "onSubmit", "onCancel", "onReset", "onSuccess", "buttonRow", "id", "registerComponentApi", "itemLabelBreak", "itemLabelWidth", "itemLabelPosition", "keepModalOpenOnSubmit", "hideButtonRowUntilDirty"]);
207
207
  const formRef = (0, react_2.useRef)(null);
208
- (0, react_2.useImperativeHandle)(ref, () => formRef.current);
209
208
  const [confirmSubmitModalVisible, setConfirmSubmitModalVisible] = (0, react_2.useState)(false);
210
209
  const requestModalFormClose = (0, ModalVisibilityContext_1.useModalFormClose)();
211
210
  const isEnabled = enabled && !formState.submitInProgress;
@@ -22,8 +22,6 @@ const IFrame_module_scss_1 = __importDefault(require("./IFrame.module.scss"));
22
22
  exports.IFrame = (0, react_1.memo)((0, react_1.forwardRef)(function IFrame(_a, ref) {
23
23
  var { src, srcdoc, allow, name, referrerPolicy, sandbox, style, className, onLoad, registerComponentApi } = _a, rest = __rest(_a, ["src", "srcdoc", "allow", "name", "referrerPolicy", "sandbox", "style", "className", "onLoad", "registerComponentApi"]);
24
24
  const iframeRef = (0, react_1.useRef)(null);
25
- // Expose the iframe element to parent via ref
26
- (0, react_1.useImperativeHandle)(ref, () => iframeRef.current, []);
27
25
  // Register component APIs
28
26
  (0, react_1.useEffect)(() => {
29
27
  registerComponentApi === null || registerComponentApi === void 0 ? void 0 : registerComponentApi({
@@ -13,32 +13,41 @@ exports.TabContext = (0, react_1.createContext)({
13
13
  register: (tabItem) => { },
14
14
  unRegister: (innerId) => { },
15
15
  activeTabId: "",
16
+ getTabItems: () => [],
16
17
  });
17
18
  function useTabContextValue() {
18
19
  const [tabItems, setTabItems] = (0, react_1.useState)(constants_1.EMPTY_ARRAY);
20
+ const tabItemsRef = (0, react_1.useRef)(constants_1.EMPTY_ARRAY);
21
+ tabItemsRef.current = tabItems;
19
22
  const [activeTabId, setActiveTabId] = (0, react_1.useState)("");
23
+ const register = (0, react_1.useCallback)((tabItem) => {
24
+ setTabItems((0, immer_1.default)((draft) => {
25
+ const existing = draft.findIndex((col) => col.innerId === tabItem.innerId);
26
+ if (existing < 0) {
27
+ draft.push(tabItem);
28
+ }
29
+ else {
30
+ draft[existing] = tabItem;
31
+ }
32
+ }));
33
+ }, []);
34
+ const unRegister = (0, react_1.useCallback)((innerId) => {
35
+ setTabItems((0, immer_1.default)((draft) => {
36
+ return draft.filter((col) => col.innerId !== innerId);
37
+ }));
38
+ }, []);
39
+ const getTabItems = (0, react_1.useCallback)(() => {
40
+ return tabItemsRef.current;
41
+ }, []);
20
42
  const tabContextValue = (0, react_1.useMemo)(() => {
21
43
  return {
22
- register: (tabItem) => {
23
- setTabItems((0, immer_1.default)((draft) => {
24
- const existing = draft.findIndex((col) => col.innerId === tabItem.innerId);
25
- if (existing < 0) {
26
- draft.push(tabItem);
27
- }
28
- else {
29
- draft[existing] = tabItem;
30
- }
31
- }));
32
- },
33
- unRegister: (innerId) => {
34
- setTabItems((0, immer_1.default)((draft) => {
35
- return draft.filter((col) => col.innerId !== innerId);
36
- }));
37
- },
44
+ register,
45
+ unRegister,
38
46
  activeTabId,
39
47
  setActiveTabId,
48
+ getTabItems,
40
49
  };
41
- }, [activeTabId]);
50
+ }, [register, unRegister, activeTabId, getTabItems]);
42
51
  return {
43
52
  tabItems,
44
53
  tabContextValue,
@@ -21,9 +21,10 @@ const react_tabs_1 = require("@radix-ui/react-tabs");
21
21
  const Tabs_module_scss_1 = __importDefault(require("../Tabs/Tabs.module.scss"));
22
22
  const TabContext_1 = require("./TabContext");
23
23
  exports.TabItemComponent = (0, react_2.forwardRef)(function TabItemComponent(_a, forwardedRef) {
24
+ var _b;
24
25
  var { children, label, headerRenderer, style, id, activated } = _a, rest = __rest(_a, ["children", "label", "headerRenderer", "style", "id", "activated"]);
25
26
  const innerId = (0, react_2.useId)();
26
- const { register, unRegister, activeTabId } = (0, TabContext_1.useTabContext)();
27
+ const { register, unRegister, activeTabId, getTabItems } = (0, TabContext_1.useTabContext)();
27
28
  (0, react_2.useEffect)(() => {
28
29
  register({
29
30
  label,
@@ -44,5 +45,9 @@ exports.TabItemComponent = (0, react_2.forwardRef)(function TabItemComponent(_a,
44
45
  }, [activeTabId, innerId, activated]);
45
46
  if (activeTabId !== innerId)
46
47
  return null;
47
- return ((0, react_1.createElement)(react_tabs_1.Content, Object.assign({}, rest, { key: innerId, value: innerId, className: Tabs_module_scss_1.default.tabsContent, ref: forwardedRef, style: style }), children));
48
+ // Find the index of this tab for ordering
49
+ const tabItems = getTabItems();
50
+ const tabIndex = (_b = tabItems === null || tabItems === void 0 ? void 0 : tabItems.findIndex(item => item.innerId === innerId)) !== null && _b !== void 0 ? _b : 0;
51
+ const contentOrder = tabIndex * 2 + 1;
52
+ return ((0, react_1.createElement)(react_tabs_1.Content, Object.assign({}, rest, { key: innerId, value: innerId, className: Tabs_module_scss_1.default.tabsContent, ref: forwardedRef, style: Object.assign(Object.assign({}, style), { order: contentOrder }) }), children));
48
53
  });
@@ -24,11 +24,30 @@ exports.TabsMd = (0, metadata_helpers_1.createMetadata)({
24
24
  orientation: {
25
25
  description: `This property indicates the orientation of the component. In horizontal orientation, ` +
26
26
  `the tab sections are laid out on the left side of the content panel, while in vertical ` +
27
- `orientation, the buttons are at the top.`,
27
+ `orientation, the buttons are at the top. Note: This property is ignored when ` +
28
+ `accordionView is set to true.`,
28
29
  availableValues: ["horizontal", "vertical"],
29
30
  defaultValue: TabsNative_1.defaultProps.orientation,
30
31
  valueType: "string",
31
32
  },
33
+ tabAlignment: {
34
+ description: `This property controls how tabs are aligned within the tab header container in ` +
35
+ `horizontal orientation. Use 'start' to align tabs to the left, 'end' to align to the ` +
36
+ `right, 'center' to center the tabs, and 'stretch' to make tabs fill the full width ` +
37
+ `of the header. Note: This property is ignored when orientation is set to 'vertical' ` +
38
+ `or when accordionView is enabled.`,
39
+ availableValues: ["start", "end", "center", "stretch"],
40
+ defaultValue: TabsNative_1.defaultProps.tabAlignment,
41
+ valueType: "string",
42
+ },
43
+ accordionView: {
44
+ description: `When enabled, displays tabs in an accordion-like view where tab headers are stacked ` +
45
+ `vertically and only the active tab's content is visible. Each tab header remains visible ` +
46
+ `and clicking a header opens its content while closing others. When enabled, the ` +
47
+ `orientation property is ignored.`,
48
+ defaultValue: TabsNative_1.defaultProps.accordionView,
49
+ valueType: "boolean",
50
+ },
32
51
  headerTemplate: Object.assign({}, (0, metadata_helpers_1.dComponent)(`This property declares the template for the clickable tab area.`)),
33
52
  },
34
53
  events: {
@@ -67,10 +86,10 @@ exports.TabsMd = (0, metadata_helpers_1.createMetadata)({
67
86
  },
68
87
  });
69
88
  exports.tabsComponentRenderer = (0, renderers_1.createComponentRenderer)(COMP, exports.TabsMd, ({ extractValue, node, renderChild, className, registerComponentApi, lookupEventHandler }) => {
70
- var _a, _b, _c;
89
+ var _a, _b, _c, _d, _e;
71
90
  return ((0, jsx_runtime_1.jsx)(TabsNative_1.Tabs, { id: node === null || node === void 0 ? void 0 : node.uid, className: className, headerRenderer: ((_a = node === null || node === void 0 ? void 0 : node.props) === null || _a === void 0 ? void 0 : _a.headerTemplate)
72
91
  ? (item) => ((0, jsx_runtime_1.jsx)(container_helpers_1.MemoizedItem, { node: node.props.headerTemplate, itemKey: "$header", contextVars: {
73
92
  $header: item,
74
93
  }, renderChild: renderChild }))
75
- : undefined, activeTab: extractValue((_b = node.props) === null || _b === void 0 ? void 0 : _b.activeTab), orientation: extractValue((_c = node.props) === null || _c === void 0 ? void 0 : _c.orientation), onDidChange: lookupEventHandler("didChange"), registerComponentApi: registerComponentApi, children: renderChild(node.children) }));
94
+ : undefined, activeTab: extractValue((_b = node.props) === null || _b === void 0 ? void 0 : _b.activeTab), orientation: extractValue((_c = node.props) === null || _c === void 0 ? void 0 : _c.orientation), tabAlignment: extractValue((_d = node.props) === null || _d === void 0 ? void 0 : _d.tabAlignment), accordionView: extractValue((_e = node.props) === null || _e === void 0 ? void 0 : _e.accordionView), onDidChange: lookupEventHandler("didChange"), registerComponentApi: registerComponentApi, children: renderChild(node.children) }));
76
95
  });