@plasmicpkgs/antd5 0.0.207 → 0.0.209

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.
@@ -41,8 +41,8 @@ const AntdTabItem = ({ children }) => {
41
41
  return /* @__PURE__ */ React.createElement("div", null, children);
42
42
  };
43
43
  function getTabItems(items) {
44
- var _a;
45
- return ((_a = items == null ? void 0 : items.type) == null ? void 0 : _a.name) == AntdTabItem.name ? [items] : items == null ? void 0 : items.props.children;
44
+ var _a, _b, _c;
45
+ return ((_a = items == null ? void 0 : items.type) == null ? void 0 : _a.name) == AntdTabItem.name ? [items] : (_c = (_b = items == null ? void 0 : items.props) == null ? void 0 : _b.children) == null ? void 0 : _c.flat(1);
46
46
  }
47
47
  function getTabItemKeys(items) {
48
48
  const keys = [];
@@ -96,9 +96,10 @@ function AntdTabs(props) {
96
96
  return [];
97
97
  const tabItems = getTabItems(itemsRaw);
98
98
  return tabItems.map((currentItem) => {
99
+ var _a2;
99
100
  return __spreadProps(__spreadValues({}, currentItem.props), {
100
101
  key: currentItem.key,
101
- children: /* @__PURE__ */ React.createElement(React.Fragment, null, currentItem.props.children)
102
+ children: /* @__PURE__ */ React.createElement(React.Fragment, null, (_a2 = currentItem.props) == null ? void 0 : _a2.children)
102
103
  });
103
104
  }).filter((i) => i != null);
104
105
  }, [itemsRaw]);
@@ -1 +1 @@
1
- {"version":3,"file":"registerTabs.esm.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import { ActionProps } from \"@plasmicapp/host/registerComponent\";\nimport { Tabs } from \"antd\";\nimport React, { ReactElement, useMemo } from \"react\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const tabsComponentName = \"plasmic-antd5-tabs\";\nexport const tabItemComponentName = \"plasmic-antd5-tab-item\";\n\ntype TabItemType = NonNullable<\n React.ComponentProps<typeof Tabs>[\"items\"]\n>[number];\n\nexport const AntdTabItem: React.FC<TabItemType> = ({ children }) => {\n return <div>{children}</div>;\n};\n\nfunction getTabItems(items: ReactElement): React.ReactElement<TabItemType>[] {\n return (items?.type as any)?.name == AntdTabItem.name\n ? [items]\n : items?.props.children;\n}\n\nfunction getTabItemKeys(items: ReactElement): string[] {\n const keys: string[] = [];\n traverseReactEltTree(items, (elt) => {\n if (\n (elt?.type as any)?.name === AntdTabItem.name &&\n typeof elt?.key === \"string\"\n ) {\n keys.push(`${elt.key}`);\n }\n });\n return keys;\n}\n\ntype TabsProps = Omit<\n React.ComponentProps<typeof Tabs>,\n \"items\" | \"animated\" | \"tabBarExtraContent\" | \"renderTabBar\"\n> & {\n items: ReactElement;\n animated: boolean;\n animateTabBar: boolean;\n animateTabContent: boolean;\n tabBarExtraContentLeft: React.ReactNode;\n tabBarExtraContentRight: React.ReactNode;\n sticky: boolean;\n stickyOffset: number;\n tabBarBackground: string;\n tabsScopeClassName?: string;\n tabsDropdownScopeClassName?: string;\n};\n\nexport function AntdTabs(props: TabsProps) {\n const {\n items: itemsRaw,\n animated,\n animateTabBar,\n animateTabContent,\n tabBarExtraContentLeft,\n tabBarExtraContentRight,\n sticky,\n stickyOffset,\n tabBarBackground,\n className,\n tabPosition,\n tabsScopeClassName,\n tabsDropdownScopeClassName,\n ...rest\n } = props;\n const animationProp: React.ComponentProps<typeof Tabs>[\"animated\"] = useMemo(\n () =>\n animated\n ? {\n inkBar: animateTabBar,\n tabPane: animateTabContent,\n }\n : false,\n [animateTabBar, animateTabContent, animated]\n );\n const items: TabItemType[] = useMemo(() => {\n if (!React.isValidElement(itemsRaw)) return [];\n const tabItems = getTabItems(itemsRaw);\n return tabItems\n .map((currentItem) => {\n return {\n ...currentItem.props,\n key: currentItem.key,\n children: <>{currentItem.props.children}</>,\n };\n })\n .filter((i) => i != null) as TabItemType[];\n }, [itemsRaw]);\n\n return (\n <Tabs\n className={`${className} ${tabsScopeClassName}`}\n popupClassName={tabsDropdownScopeClassName}\n tabBarExtraContent={{\n left: <>{tabBarExtraContentLeft}</>,\n right: <>{tabBarExtraContentRight}</>,\n }}\n tabPosition={tabPosition}\n /**\n * CAUTION: sticky tab-bars are only supported for tabPosition top.\n * In component metadata, I have specified that sticky prop is hidden when tabPosition !== \"top\".\n * however, and that's where the caution is, that does not mean that any previously set value of sticky is destroyed. It stays there, but just the prop is hidden from the Settings side menu in Plasmic Studio.\n *\n * Which is why I have to also check the tabPosition here. And that's redundant.\n */\n renderTabBar={\n sticky && tabPosition === \"top\"\n ? (tabBarProps, DefaultTabBar) => (\n <div\n style={{\n zIndex: 1,\n position: \"sticky\",\n top: stickyOffset || 0,\n }}\n >\n <DefaultTabBar\n {...tabBarProps}\n style={{ backgroundColor: tabBarBackground }}\n />\n </div>\n )\n : undefined\n }\n animated={animationProp}\n items={items}\n {...rest}\n />\n );\n}\n\n// function NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n// const tabPanes: string[] = getTabItemKeys(componentProps.items);\n// const buttonStyle = {\n// width: \"100%\",\n// borderColor: \"#f3f3f2\",\n// borderRadius: 6,\n// fontSize: 12,\n// };\n// const activeKey = componentProps.activeKey;\n// const currTabPos = activeKey\n// ? tabPanes.findIndex((tabKey) => {\n// return tabKey === activeKey;\n// })\n// : 0;\n\n// return (\n// <div\n// style={{\n// width: \"100%\",\n// display: \"flex\",\n// flexDirection: \"row\",\n// gap: \"4px\",\n// justifyContent: \"space-between\",\n// }}\n// >\n// <Button\n// style={buttonStyle}\n// onClick={() => {\n// if (tabPanes.length > 0) {\n// const prevTabPos =\n// (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n// studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n// }\n// }}\n// >\n// Prev tab\n// </Button>\n// <Button\n// style={buttonStyle}\n// onClick={() => {\n// if (tabPanes.length > 0) {\n// const nextTabPos = (currTabPos + 1) % tabPanes.length;\n// studioOps.updateProps({ activeKey: tabPanes[nextTabPos] });\n// }\n// }}\n// >\n// Next tab\n// </Button>\n// </div>\n// );\n// }\n\nfunction OutlineMessage() {\n return <div>* To re-arrange tab panes, use the Outline panel</div>;\n}\n\nexport function registerTabs(loader?: Registerable) {\n registerComponentHelper(loader, AntdTabs, {\n name: tabsComponentName,\n displayName: \"Tabs\",\n defaultStyles: {\n width: \"stretch\",\n overflow: \"scroll\",\n },\n props: {\n activeKey: {\n editOnly: true,\n displayName: \"Active tab key\",\n uncontrolledProp: \"defaultActiveKey\",\n type: \"choice\",\n description: `Initial active tab's key`,\n options: (ps) => getTabItemKeys(ps.items),\n },\n animated: {\n type: \"boolean\",\n defaultValue: true,\n description: \"Change tabs with animation\",\n },\n animateTabBar: {\n type: \"boolean\",\n defaultValue: true,\n description: \"Animate the tab bar when switching tabs\",\n hidden: (ps) => !ps.animated,\n },\n animateTabContent: {\n type: \"boolean\",\n defaultValue: false,\n description: \"Fade-in tab content when switching tabs\",\n hidden: (ps) => !ps.animated,\n },\n centered: {\n type: \"boolean\",\n description: \"Center-align the tab bar\",\n },\n type: {\n type: \"choice\",\n defaultValueHint: \"line\",\n options: [\"line\", \"card\"],\n description: \"Basic style of tabs\",\n },\n items: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: [tabItemComponentName],\n ...({ mergeWithParent: true } as any), // to make the tab items selectable from the components outline pane in Plasmic Studio.\n defaultValue: [\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: \"1\",\n label: {\n type: \"text\",\n value: \"First Item\",\n },\n children: {\n type: \"text\",\n value: \"First Children\",\n },\n },\n },\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: \"2\",\n label: {\n type: \"text\",\n value: \"Second Item\",\n },\n children: {\n type: \"text\",\n value: \"Second Children\",\n },\n },\n },\n ],\n },\n size: {\n type: \"choice\",\n defaultValueHint: \"middle\",\n options: [\"large\", \"middle\", \"small\"],\n description: \"Preset tab bar size\",\n },\n tabBarExtraContentLeft: {\n type: \"slot\",\n displayName: \"Extra content on left side\",\n hidePlaceholder: true,\n },\n tabBarExtraContentRight: {\n type: \"slot\",\n displayName: \"Extra content on right side\",\n hidePlaceholder: true,\n },\n tabBarGutter: {\n type: \"number\",\n displayName: \"Tab gap\",\n description: \"Gap (in pixels) between tabs\",\n advanced: true,\n },\n tabPosition: {\n type: \"choice\",\n defaultValueHint: \"top\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n description: \"Position of tabs\",\n },\n destroyInactiveTabPane: {\n type: \"boolean\",\n description: `Destroy/Unmount inactive tab pane when changing tab`,\n advanced: true,\n },\n sticky: {\n type: \"boolean\",\n advanced: true,\n description: \"Stick tab bar to the top of the page when scrolling.\",\n defaultValue: false,\n hidden: (ps) => ps.tabPosition !== \"top\",\n },\n stickyOffset: {\n type: \"number\",\n advanced: true,\n description:\n \"Distance (in pixels) between the sticky tab bar and the top of the page as you scroll.\",\n hidden: (ps) => ps.tabPosition !== \"top\" || !ps.sticky,\n },\n tabBarBackground: {\n type: \"color\",\n advanced: true,\n defaultValue: \"#FFF\",\n hidden: (ps) => ps.tabPosition !== \"top\" || !ps.sticky,\n },\n tabsScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"tabs\",\n } as any,\n tabBarClassName: {\n type: \"class\",\n displayName: \"Tab bar\",\n selectors: [\n {\n selector: \":tabs.ant-tabs .ant-tabs-nav\",\n label: \"Base\",\n },\n ],\n },\n tabsDropdownScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"tabsDropdown\",\n } as any,\n tabsDropdownClassName: {\n type: \"class\",\n displayName: \"Overflow tabs menu\",\n selectors: [\n {\n selector: \":tabsDropdown.ant-tabs-dropdown .ant-tabs-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n onChange: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [{ name: \"activeKey\", type: \"string\" }],\n },\n onTabClick: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [\n { name: \"tabKey\", type: \"string\" },\n { name: \"mouseEvent\", type: \"object\" },\n ],\n },\n onTabScroll: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [{ name: \"scrollInfo\", type: \"object\" }],\n },\n },\n states: {\n activeKey: {\n type: \"writable\",\n valueProp: \"activeKey\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n actions: [\n // {\n // type: \"custom-action\",\n // control: NavigateTabs,\n // },\n {\n type: \"button-action\",\n label: \"Add new tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n // Get the first positive integer that isn't already a key\n const generateNewKey = () => {\n const existingKeys = getTabItemKeys(componentProps.items);\n\n for (\n let keyCandidate = 1;\n keyCandidate <= existingKeys.length + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n const index = existingKeys.findIndex((k) => {\n return strKey === k;\n });\n if (index === -1) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: tabKey,\n label: {\n type: \"text\",\n value: `Tab Label ${tabKey}`,\n },\n children: {\n type: \"text\",\n value: `Tab Children ${tabKey}`,\n },\n },\n },\n \"items\"\n );\n studioOps.updateProps({ activeKey: tabKey });\n },\n },\n {\n type: \"button-action\",\n label: \"Delete current tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n if (componentProps.activeKey) {\n const tabPanes = getTabItemKeys(componentProps.items);\n const activeKey = componentProps.activeKey;\n const currTabPos = tabPanes.findIndex((tabKey) => {\n return tabKey === activeKey;\n });\n\n if (currTabPos !== -1) {\n studioOps.removeFromSlotAt(currTabPos, \"items\");\n if (tabPanes.length - 1 > 0) {\n const prevTabPos =\n (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n }\n }\n }\n },\n },\n {\n type: \"custom-action\",\n control: OutlineMessage,\n },\n ],\n importPath: \"@plasmicpkgs/antd5/skinny/registerTabs\",\n importName: \"AntdTabs\",\n });\n\n registerComponentHelper(loader, AntdTabItem, {\n name: tabItemComponentName,\n displayName: \"Tab Item\",\n props: {\n disabled: {\n type: \"boolean\",\n description: \"Disable this tab\",\n },\n forceRender: {\n type: \"boolean\",\n description: `Force render of content in the tab, not lazy render after clicking on the tab`,\n advanced: true,\n },\n key: {\n type: \"string\",\n description: `Unique identifier for this tab`,\n displayName: \"Tab key\",\n },\n label: {\n type: \"slot\",\n displayName: \"Tab title\",\n defaultValue: \"Tab\",\n },\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerTabs\",\n importName: \"AntdTabItem\",\n parentComponentName: tabsComponentName,\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registerTabs.esm.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import { ActionProps } from \"@plasmicapp/host/registerComponent\";\nimport { Tabs } from \"antd\";\nimport React, { ReactElement, useMemo } from \"react\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const tabsComponentName = \"plasmic-antd5-tabs\";\nexport const tabItemComponentName = \"plasmic-antd5-tab-item\";\n\ntype TabItemType = NonNullable<\n React.ComponentProps<typeof Tabs>[\"items\"]\n>[number];\n\nexport const AntdTabItem: React.FC<TabItemType> = ({ children }) => {\n return <div>{children}</div>;\n};\n\nfunction getTabItems(items: ReactElement): React.ReactElement<TabItemType>[] {\n return (items?.type as any)?.name == AntdTabItem.name\n ? [items]\n : items?.props?.children?.flat(1);\n}\n\nfunction getTabItemKeys(items: ReactElement): string[] {\n const keys: string[] = [];\n traverseReactEltTree(items, (elt) => {\n if (\n (elt?.type as any)?.name === AntdTabItem.name &&\n typeof elt?.key === \"string\"\n ) {\n keys.push(`${elt.key}`);\n }\n });\n return keys;\n}\n\ntype TabsProps = Omit<\n React.ComponentProps<typeof Tabs>,\n \"items\" | \"animated\" | \"tabBarExtraContent\" | \"renderTabBar\"\n> & {\n items: ReactElement;\n animated: boolean;\n animateTabBar: boolean;\n animateTabContent: boolean;\n tabBarExtraContentLeft: React.ReactNode;\n tabBarExtraContentRight: React.ReactNode;\n sticky: boolean;\n stickyOffset: number;\n tabBarBackground: string;\n tabsScopeClassName?: string;\n tabsDropdownScopeClassName?: string;\n};\n\nexport function AntdTabs(props: TabsProps) {\n const {\n items: itemsRaw,\n animated,\n animateTabBar,\n animateTabContent,\n tabBarExtraContentLeft,\n tabBarExtraContentRight,\n sticky,\n stickyOffset,\n tabBarBackground,\n className,\n tabPosition,\n tabsScopeClassName,\n tabsDropdownScopeClassName,\n ...rest\n } = props;\n const animationProp: React.ComponentProps<typeof Tabs>[\"animated\"] = useMemo(\n () =>\n animated\n ? {\n inkBar: animateTabBar,\n tabPane: animateTabContent,\n }\n : false,\n [animateTabBar, animateTabContent, animated]\n );\n const items: TabItemType[] = useMemo(() => {\n if (!React.isValidElement(itemsRaw)) return [];\n const tabItems = getTabItems(itemsRaw);\n return tabItems\n .map((currentItem) => {\n return {\n ...currentItem.props,\n key: currentItem.key,\n children: <>{currentItem.props?.children}</>,\n };\n })\n .filter((i) => i != null) as TabItemType[];\n }, [itemsRaw]);\n\n return (\n <Tabs\n className={`${className} ${tabsScopeClassName}`}\n popupClassName={tabsDropdownScopeClassName}\n tabBarExtraContent={{\n left: <>{tabBarExtraContentLeft}</>,\n right: <>{tabBarExtraContentRight}</>,\n }}\n tabPosition={tabPosition}\n /**\n * CAUTION: sticky tab-bars are only supported for tabPosition top.\n * In component metadata, I have specified that sticky prop is hidden when tabPosition !== \"top\".\n * however, and that's where the caution is, that does not mean that any previously set value of sticky is destroyed. It stays there, but just the prop is hidden from the Settings side menu in Plasmic Studio.\n *\n * Which is why I have to also check the tabPosition here. And that's redundant.\n */\n renderTabBar={\n sticky && tabPosition === \"top\"\n ? (tabBarProps, DefaultTabBar) => (\n <div\n style={{\n zIndex: 1,\n position: \"sticky\",\n top: stickyOffset || 0,\n }}\n >\n <DefaultTabBar\n {...tabBarProps}\n style={{ backgroundColor: tabBarBackground }}\n />\n </div>\n )\n : undefined\n }\n animated={animationProp}\n items={items}\n {...rest}\n />\n );\n}\n\n// function NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n// const tabPanes: string[] = getTabItemKeys(componentProps.items);\n// const buttonStyle = {\n// width: \"100%\",\n// borderColor: \"#f3f3f2\",\n// borderRadius: 6,\n// fontSize: 12,\n// };\n// const activeKey = componentProps.activeKey;\n// const currTabPos = activeKey\n// ? tabPanes.findIndex((tabKey) => {\n// return tabKey === activeKey;\n// })\n// : 0;\n\n// return (\n// <div\n// style={{\n// width: \"100%\",\n// display: \"flex\",\n// flexDirection: \"row\",\n// gap: \"4px\",\n// justifyContent: \"space-between\",\n// }}\n// >\n// <Button\n// style={buttonStyle}\n// onClick={() => {\n// if (tabPanes.length > 0) {\n// const prevTabPos =\n// (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n// studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n// }\n// }}\n// >\n// Prev tab\n// </Button>\n// <Button\n// style={buttonStyle}\n// onClick={() => {\n// if (tabPanes.length > 0) {\n// const nextTabPos = (currTabPos + 1) % tabPanes.length;\n// studioOps.updateProps({ activeKey: tabPanes[nextTabPos] });\n// }\n// }}\n// >\n// Next tab\n// </Button>\n// </div>\n// );\n// }\n\nfunction OutlineMessage() {\n return <div>* To re-arrange tab panes, use the Outline panel</div>;\n}\n\nexport function registerTabs(loader?: Registerable) {\n registerComponentHelper(loader, AntdTabs, {\n name: tabsComponentName,\n displayName: \"Tabs\",\n defaultStyles: {\n width: \"stretch\",\n overflow: \"scroll\",\n },\n props: {\n activeKey: {\n editOnly: true,\n displayName: \"Active tab key\",\n uncontrolledProp: \"defaultActiveKey\",\n type: \"choice\",\n description: `Initial active tab's key`,\n options: (ps) => getTabItemKeys(ps.items),\n },\n animated: {\n type: \"boolean\",\n defaultValue: true,\n description: \"Change tabs with animation\",\n },\n animateTabBar: {\n type: \"boolean\",\n defaultValue: true,\n description: \"Animate the tab bar when switching tabs\",\n hidden: (ps) => !ps.animated,\n },\n animateTabContent: {\n type: \"boolean\",\n defaultValue: false,\n description: \"Fade-in tab content when switching tabs\",\n hidden: (ps) => !ps.animated,\n },\n centered: {\n type: \"boolean\",\n description: \"Center-align the tab bar\",\n },\n type: {\n type: \"choice\",\n defaultValueHint: \"line\",\n options: [\"line\", \"card\"],\n description: \"Basic style of tabs\",\n },\n items: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: [tabItemComponentName],\n ...({ mergeWithParent: true } as any), // to make the tab items selectable from the components outline pane in Plasmic Studio.\n defaultValue: [\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: \"1\",\n label: {\n type: \"text\",\n value: \"First Item\",\n },\n children: {\n type: \"text\",\n value: \"First Children\",\n },\n },\n },\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: \"2\",\n label: {\n type: \"text\",\n value: \"Second Item\",\n },\n children: {\n type: \"text\",\n value: \"Second Children\",\n },\n },\n },\n ],\n },\n size: {\n type: \"choice\",\n defaultValueHint: \"middle\",\n options: [\"large\", \"middle\", \"small\"],\n description: \"Preset tab bar size\",\n },\n tabBarExtraContentLeft: {\n type: \"slot\",\n displayName: \"Extra content on left side\",\n hidePlaceholder: true,\n },\n tabBarExtraContentRight: {\n type: \"slot\",\n displayName: \"Extra content on right side\",\n hidePlaceholder: true,\n },\n tabBarGutter: {\n type: \"number\",\n displayName: \"Tab gap\",\n description: \"Gap (in pixels) between tabs\",\n advanced: true,\n },\n tabPosition: {\n type: \"choice\",\n defaultValueHint: \"top\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n description: \"Position of tabs\",\n },\n destroyInactiveTabPane: {\n type: \"boolean\",\n description: `Destroy/Unmount inactive tab pane when changing tab`,\n advanced: true,\n },\n sticky: {\n type: \"boolean\",\n advanced: true,\n description: \"Stick tab bar to the top of the page when scrolling.\",\n defaultValue: false,\n hidden: (ps) => ps.tabPosition !== \"top\",\n },\n stickyOffset: {\n type: \"number\",\n advanced: true,\n description:\n \"Distance (in pixels) between the sticky tab bar and the top of the page as you scroll.\",\n hidden: (ps) => ps.tabPosition !== \"top\" || !ps.sticky,\n },\n tabBarBackground: {\n type: \"color\",\n advanced: true,\n defaultValue: \"#FFF\",\n hidden: (ps) => ps.tabPosition !== \"top\" || !ps.sticky,\n },\n tabsScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"tabs\",\n } as any,\n tabBarClassName: {\n type: \"class\",\n displayName: \"Tab bar\",\n selectors: [\n {\n selector: \":tabs.ant-tabs .ant-tabs-nav\",\n label: \"Base\",\n },\n ],\n },\n tabsDropdownScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"tabsDropdown\",\n } as any,\n tabsDropdownClassName: {\n type: \"class\",\n displayName: \"Overflow tabs menu\",\n selectors: [\n {\n selector: \":tabsDropdown.ant-tabs-dropdown .ant-tabs-dropdown-menu\",\n label: \"Base\",\n },\n ],\n },\n onChange: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [{ name: \"activeKey\", type: \"string\" }],\n },\n onTabClick: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [\n { name: \"tabKey\", type: \"string\" },\n { name: \"mouseEvent\", type: \"object\" },\n ],\n },\n onTabScroll: {\n type: \"eventHandler\",\n advanced: true,\n argTypes: [{ name: \"scrollInfo\", type: \"object\" }],\n },\n },\n states: {\n activeKey: {\n type: \"writable\",\n valueProp: \"activeKey\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n actions: [\n // {\n // type: \"custom-action\",\n // control: NavigateTabs,\n // },\n {\n type: \"button-action\",\n label: \"Add new tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n // Get the first positive integer that isn't already a key\n const generateNewKey = () => {\n const existingKeys = getTabItemKeys(componentProps.items);\n\n for (\n let keyCandidate = 1;\n keyCandidate <= existingKeys.length + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n const index = existingKeys.findIndex((k) => {\n return strKey === k;\n });\n if (index === -1) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: tabItemComponentName,\n props: {\n key: tabKey,\n label: {\n type: \"text\",\n value: `Tab Label ${tabKey}`,\n },\n children: {\n type: \"text\",\n value: `Tab Children ${tabKey}`,\n },\n },\n },\n \"items\"\n );\n studioOps.updateProps({ activeKey: tabKey });\n },\n },\n {\n type: \"button-action\",\n label: \"Delete current tab\",\n onClick: ({ componentProps, studioOps }: ActionProps<any>) => {\n if (componentProps.activeKey) {\n const tabPanes = getTabItemKeys(componentProps.items);\n const activeKey = componentProps.activeKey;\n const currTabPos = tabPanes.findIndex((tabKey) => {\n return tabKey === activeKey;\n });\n\n if (currTabPos !== -1) {\n studioOps.removeFromSlotAt(currTabPos, \"items\");\n if (tabPanes.length - 1 > 0) {\n const prevTabPos =\n (currTabPos - 1 + tabPanes.length) % tabPanes.length;\n studioOps.updateProps({ activeKey: tabPanes[prevTabPos] });\n }\n }\n }\n },\n },\n {\n type: \"custom-action\",\n control: OutlineMessage,\n },\n ],\n importPath: \"@plasmicpkgs/antd5/skinny/registerTabs\",\n importName: \"AntdTabs\",\n });\n\n registerComponentHelper(loader, AntdTabItem, {\n name: tabItemComponentName,\n displayName: \"Tab Item\",\n props: {\n disabled: {\n type: \"boolean\",\n description: \"Disable this tab\",\n },\n forceRender: {\n type: \"boolean\",\n description: `Force render of content in the tab, not lazy render after clicking on the tab`,\n advanced: true,\n },\n key: {\n type: \"string\",\n description: `Unique identifier for this tab`,\n displayName: \"Tab key\",\n },\n label: {\n type: \"slot\",\n displayName: \"Tab title\",\n defaultValue: \"Tab\",\n },\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerTabs\",\n importName: \"AntdTabItem\",\n parentComponentName: tabsComponentName,\n });\n}\n"],"names":["_a"],"mappings":"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"}