@plasmicpkgs/antd 2.0.66 → 2.0.68

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 (37) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/antd.esm.js +196 -64
  3. package/dist/antd.esm.js.map +1 -1
  4. package/dist/index.js +196 -64
  5. package/dist/index.js.map +1 -1
  6. package/dist/registerSlider.d.ts +10 -10
  7. package/package.json +3 -3
  8. package/skinny/package.json +1 -3
  9. package/skinny/registerCheckbox.cjs.js +31 -10
  10. package/skinny/registerCheckbox.cjs.js.map +1 -1
  11. package/skinny/registerCheckbox.esm.js +31 -10
  12. package/skinny/registerCheckbox.esm.js.map +1 -1
  13. package/skinny/registerCollapse.cjs.js +30 -9
  14. package/skinny/registerCollapse.cjs.js.map +1 -1
  15. package/skinny/registerCollapse.esm.js +30 -9
  16. package/skinny/registerCollapse.esm.js.map +1 -1
  17. package/skinny/registerMenu.cjs.js +30 -9
  18. package/skinny/registerMenu.cjs.js.map +1 -1
  19. package/skinny/registerMenu.esm.js +30 -9
  20. package/skinny/registerMenu.esm.js.map +1 -1
  21. package/skinny/registerRate.cjs.js +17 -1
  22. package/skinny/registerRate.cjs.js.map +1 -1
  23. package/skinny/registerRate.esm.js +17 -1
  24. package/skinny/registerRate.esm.js.map +1 -1
  25. package/skinny/registerSelect.cjs.js +15 -1
  26. package/skinny/registerSelect.cjs.js.map +1 -1
  27. package/skinny/registerSelect.esm.js +15 -1
  28. package/skinny/registerSelect.esm.js.map +1 -1
  29. package/skinny/registerSlider.cjs.js +44 -25
  30. package/skinny/registerSlider.cjs.js.map +1 -1
  31. package/skinny/registerSlider.d.ts +10 -10
  32. package/skinny/registerSlider.esm.js +44 -25
  33. package/skinny/registerSlider.esm.js.map +1 -1
  34. package/skinny/registerTabs.cjs.js +29 -9
  35. package/skinny/registerTabs.cjs.js.map +1 -1
  36. package/skinny/registerTabs.esm.js +29 -9
  37. package/skinny/registerTabs.esm.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"registerSlider.cjs.js","sources":["../src/registerSlider.tsx"],"sourcesContent":["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Slider as AntdSlider } from \"antd\";\nimport type { SliderRangeProps, SliderSingleProps } from \"antd/es/slider\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\n\ntype SliderProps = Omit<\n SliderSingleProps | SliderRangeProps,\n \"value\" | \"defaultValue\"\n> & {\n value?: number;\n defaultValue?: number;\n value2?: number;\n defaultValue2?: number;\n};\n\nexport const Slider = React.forwardRef<unknown, SliderProps>(\n ({ value, defaultValue, value2, defaultValue2, ...props }, ref) => {\n const newProps = { ...props } as SliderSingleProps | SliderRangeProps;\n if (props.range) {\n if (typeof value === \"number\" || typeof value2 === \"number\") {\n newProps.value = [value ?? 0, value2 ?? 0];\n }\n if (\n typeof defaultValue === \"number\" ||\n typeof defaultValue2 === \"number\"\n ) {\n newProps.defaultValue = [defaultValue ?? 0, defaultValue2 ?? 0];\n }\n } else {\n if (typeof value === \"number\") {\n newProps.value = value;\n }\n if (typeof defaultValue === \"number\") {\n newProps.defaultValue = defaultValue;\n }\n }\n return <AntdSlider {...newProps} ref={ref} />;\n }\n);\n\nexport const sliderMeta: ComponentMeta<SliderProps> = {\n name: \"AntdSlider\",\n displayName: \"Antd Slider\",\n props: {\n max: {\n type: \"number\",\n description: \"The maximum value the slider can slide to\",\n defaultValueHint: 100,\n },\n min: {\n type: \"number\",\n description: \"The minimum value the slider can slide to\",\n defaultValueHint: 0,\n },\n included: {\n type: \"boolean\",\n description:\n \"Make effect when marks not null, true means containment and false means coordinative\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"If true, the slider will not be interactable\",\n defaultValueHint: false,\n },\n range: {\n type: \"boolean\",\n description: \"Dual thumb mode\",\n defaultValueHint: false,\n },\n reverse: {\n type: \"boolean\",\n description: \"Reverse the component\",\n defaultValueHint: false,\n },\n vertical: {\n type: \"boolean\",\n description: \"If true, the slider will be vertical\",\n defaultValueHint: false,\n },\n value: {\n type: \"number\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"The default value of slider\",\n },\n value2: {\n type: \"number\",\n displayName: \"value 2\",\n editOnly: true,\n uncontrolledProp: \"defaultValue2\",\n description: \"The default value for the second value of the slider\",\n hidden: (props) => !props.range,\n },\n step: {\n type: \"number\",\n description:\n \"The granularity the slider can step through values. Must greater than 0, and be divided by (max - min).\" +\n \" When marks no null, step can be null\",\n defaultValueHint: 1,\n },\n marks: {\n type: \"object\",\n description:\n \"Tick mark of Slider, type of key must be number, and must in closed interval [min, max],\" +\n \" each mark can declare its own style\",\n },\n },\n defaultStyles: {\n width: \"200px\",\n maxWidth: \"100%\",\n },\n importPath: \"@plasmicpkgs/antd/skinny/registerSlider\",\n importName: \"Slider\",\n};\n\nexport function registerSlider(\n loader?: Registerable,\n customSliderMeta?: ComponentMeta<SliderProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Slider, customSliderMeta ?? sliderMeta);\n}\n"],"names":["React","AntdSlider","registerComponent"],"mappings":"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"}
1
+ {"version":3,"file":"registerSlider.cjs.js","sources":["../src/registerSlider.tsx"],"sourcesContent":["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Slider as AntdSlider } from \"antd\";\nimport type { SliderRangeProps, SliderSingleProps } from \"antd/es/slider\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\n\ntype SliderProps = Omit<\n SliderSingleProps | SliderRangeProps,\n \"value\" | \"defaultValue\" | \"onChange\"\n> & {\n value: number;\n value2: number;\n onChange: (val: number) => void;\n onChange2: (val: number) => void;\n};\n\nexport const Slider = React.forwardRef<unknown, SliderProps>(function Slider(\n { value, value2, onChange, onChange2, ...props },\n ref\n) {\n const newProps = { ...props } as SliderSingleProps | SliderRangeProps;\n if (props.range) {\n if (typeof value === \"number\" || typeof value2 === \"number\") {\n newProps.value = [value ?? 0, value2 ?? 0];\n }\n newProps.onChange = (values: [number, number]) => {\n onChange(values[0]);\n onChange2(values[1]);\n };\n } else {\n if (typeof value === \"number\") {\n newProps.value = value;\n }\n newProps.onChange = onChange;\n }\n return <AntdSlider {...newProps} ref={ref} />;\n});\n\nexport const sliderMeta: ComponentMeta<SliderProps> = {\n name: \"AntdSlider\",\n displayName: \"Antd Slider\",\n props: {\n max: {\n type: \"number\",\n description: \"The maximum value the slider can slide to\",\n defaultValueHint: 100,\n },\n min: {\n type: \"number\",\n description: \"The minimum value the slider can slide to\",\n defaultValueHint: 0,\n },\n included: {\n type: \"boolean\",\n description:\n \"Make effect when marks not null, true means containment and false means coordinative\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"If true, the slider will not be interactable\",\n defaultValueHint: false,\n },\n range: {\n type: \"boolean\",\n description: \"Dual thumb mode\",\n defaultValueHint: false,\n },\n reverse: {\n type: \"boolean\",\n description: \"Reverse the component\",\n defaultValueHint: false,\n },\n vertical: {\n type: \"boolean\",\n description: \"If true, the slider will be vertical\",\n defaultValueHint: false,\n },\n value: {\n type: \"number\",\n displayName: \"Value\",\n editOnly: true,\n description: \"Initial value for the slider\",\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"number\" }],\n },\n value2: {\n type: \"number\",\n displayName: \"Second Value\",\n editOnly: true,\n description: \"Initial second value for the slider\",\n hidden: (props) => !props.range,\n },\n onChange2: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"number\" }],\n hidden: (props) => !props.range,\n },\n step: {\n type: \"number\",\n description:\n \"The granularity the slider can step through values. Must greater than 0, and be divided by (max - min).\" +\n \" When marks no null, step can be null\",\n defaultValueHint: 1,\n },\n marks: {\n type: \"object\",\n description:\n \"Tick mark of Slider, type of key must be number, and must in closed interval [min, max],\" +\n \" each mark can declare its own style\",\n },\n },\n states: {\n value: {\n type: \"writable\",\n variableType: \"number\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n },\n value2: {\n type: \"writable\",\n variableType: \"number\",\n valueProp: \"value2\",\n onChangeProp: \"onChange2\",\n },\n },\n defaultStyles: {\n width: \"200px\",\n maxWidth: \"100%\",\n },\n importPath: \"@plasmicpkgs/antd/skinny/registerSlider\",\n importName: \"Slider\",\n};\n\nexport function registerSlider(\n loader?: Registerable,\n customSliderMeta?: ComponentMeta<SliderProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Slider, customSliderMeta ?? sliderMeta);\n}\n"],"names":["React","Slider","AntdSlider","registerComponent"],"mappings":"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"}
@@ -2,17 +2,17 @@ import { ComponentMeta } from "@plasmicapp/host/registerComponent";
2
2
  import type { SliderRangeProps, SliderSingleProps } from "antd/es/slider";
3
3
  import React from "react";
4
4
  import { Registerable } from "./registerable";
5
- type SliderProps = Omit<SliderSingleProps | SliderRangeProps, "value" | "defaultValue"> & {
6
- value?: number;
7
- defaultValue?: number;
8
- value2?: number;
9
- defaultValue2?: number;
5
+ type SliderProps = Omit<SliderSingleProps | SliderRangeProps, "value" | "defaultValue" | "onChange"> & {
6
+ value: number;
7
+ value2: number;
8
+ onChange: (val: number) => void;
9
+ onChange2: (val: number) => void;
10
10
  };
11
- export declare const Slider: React.ForwardRefExoticComponent<Omit<SliderSingleProps | SliderRangeProps, "defaultValue" | "value"> & {
12
- value?: number | undefined;
13
- defaultValue?: number | undefined;
14
- value2?: number | undefined;
15
- defaultValue2?: number | undefined;
11
+ export declare const Slider: React.ForwardRefExoticComponent<Omit<SliderSingleProps | SliderRangeProps, "defaultValue" | "onChange" | "value"> & {
12
+ value: number;
13
+ value2: number;
14
+ onChange: (val: number) => void;
15
+ onChange2: (val: number) => void;
16
16
  } & React.RefAttributes<unknown>>;
17
17
  export declare const sliderMeta: ComponentMeta<SliderProps>;
18
18
  export declare function registerSlider(loader?: Registerable, customSliderMeta?: ComponentMeta<SliderProps>): void;
@@ -33,28 +33,25 @@ var __objRest = (source, exclude) => {
33
33
  }
34
34
  return target;
35
35
  };
36
- const Slider = React.forwardRef(
37
- (_a, ref) => {
38
- var _b = _a, { value, defaultValue, value2, defaultValue2 } = _b, props = __objRest(_b, ["value", "defaultValue", "value2", "defaultValue2"]);
39
- const newProps = __spreadValues({}, props);
40
- if (props.range) {
41
- if (typeof value === "number" || typeof value2 === "number") {
42
- newProps.value = [value != null ? value : 0, value2 != null ? value2 : 0];
43
- }
44
- if (typeof defaultValue === "number" || typeof defaultValue2 === "number") {
45
- newProps.defaultValue = [defaultValue != null ? defaultValue : 0, defaultValue2 != null ? defaultValue2 : 0];
46
- }
47
- } else {
48
- if (typeof value === "number") {
49
- newProps.value = value;
50
- }
51
- if (typeof defaultValue === "number") {
52
- newProps.defaultValue = defaultValue;
53
- }
36
+ const Slider = React.forwardRef(function Slider2(_a, ref) {
37
+ var _b = _a, { value, value2, onChange, onChange2 } = _b, props = __objRest(_b, ["value", "value2", "onChange", "onChange2"]);
38
+ const newProps = __spreadValues({}, props);
39
+ if (props.range) {
40
+ if (typeof value === "number" || typeof value2 === "number") {
41
+ newProps.value = [value != null ? value : 0, value2 != null ? value2 : 0];
54
42
  }
55
- return /* @__PURE__ */ React.createElement(Slider$1, __spreadProps(__spreadValues({}, newProps), { ref }));
43
+ newProps.onChange = (values) => {
44
+ onChange(values[0]);
45
+ onChange2(values[1]);
46
+ };
47
+ } else {
48
+ if (typeof value === "number") {
49
+ newProps.value = value;
50
+ }
51
+ newProps.onChange = onChange;
56
52
  }
57
- );
53
+ return /* @__PURE__ */ React.createElement(Slider$1, __spreadProps(__spreadValues({}, newProps), { ref }));
54
+ });
58
55
  const sliderMeta = {
59
56
  name: "AntdSlider",
60
57
  displayName: "Antd Slider",
@@ -96,16 +93,24 @@ const sliderMeta = {
96
93
  },
97
94
  value: {
98
95
  type: "number",
96
+ displayName: "Value",
99
97
  editOnly: true,
100
- uncontrolledProp: "defaultValue",
101
- description: "The default value of slider"
98
+ description: "Initial value for the slider"
99
+ },
100
+ onChange: {
101
+ type: "eventHandler",
102
+ argTypes: [{ name: "value", type: "number" }]
102
103
  },
103
104
  value2: {
104
105
  type: "number",
105
- displayName: "value 2",
106
+ displayName: "Second Value",
106
107
  editOnly: true,
107
- uncontrolledProp: "defaultValue2",
108
- description: "The default value for the second value of the slider",
108
+ description: "Initial second value for the slider",
109
+ hidden: (props) => !props.range
110
+ },
111
+ onChange2: {
112
+ type: "eventHandler",
113
+ argTypes: [{ name: "value", type: "number" }],
109
114
  hidden: (props) => !props.range
110
115
  },
111
116
  step: {
@@ -118,6 +123,20 @@ const sliderMeta = {
118
123
  description: "Tick mark of Slider, type of key must be number, and must in closed interval [min, max], each mark can declare its own style"
119
124
  }
120
125
  },
126
+ states: {
127
+ value: {
128
+ type: "writable",
129
+ variableType: "number",
130
+ valueProp: "value",
131
+ onChangeProp: "onChange"
132
+ },
133
+ value2: {
134
+ type: "writable",
135
+ variableType: "number",
136
+ valueProp: "value2",
137
+ onChangeProp: "onChange2"
138
+ }
139
+ },
121
140
  defaultStyles: {
122
141
  width: "200px",
123
142
  maxWidth: "100%"
@@ -1 +1 @@
1
- {"version":3,"file":"registerSlider.esm.js","sources":["../src/registerSlider.tsx"],"sourcesContent":["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Slider as AntdSlider } from \"antd\";\nimport type { SliderRangeProps, SliderSingleProps } from \"antd/es/slider\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\n\ntype SliderProps = Omit<\n SliderSingleProps | SliderRangeProps,\n \"value\" | \"defaultValue\"\n> & {\n value?: number;\n defaultValue?: number;\n value2?: number;\n defaultValue2?: number;\n};\n\nexport const Slider = React.forwardRef<unknown, SliderProps>(\n ({ value, defaultValue, value2, defaultValue2, ...props }, ref) => {\n const newProps = { ...props } as SliderSingleProps | SliderRangeProps;\n if (props.range) {\n if (typeof value === \"number\" || typeof value2 === \"number\") {\n newProps.value = [value ?? 0, value2 ?? 0];\n }\n if (\n typeof defaultValue === \"number\" ||\n typeof defaultValue2 === \"number\"\n ) {\n newProps.defaultValue = [defaultValue ?? 0, defaultValue2 ?? 0];\n }\n } else {\n if (typeof value === \"number\") {\n newProps.value = value;\n }\n if (typeof defaultValue === \"number\") {\n newProps.defaultValue = defaultValue;\n }\n }\n return <AntdSlider {...newProps} ref={ref} />;\n }\n);\n\nexport const sliderMeta: ComponentMeta<SliderProps> = {\n name: \"AntdSlider\",\n displayName: \"Antd Slider\",\n props: {\n max: {\n type: \"number\",\n description: \"The maximum value the slider can slide to\",\n defaultValueHint: 100,\n },\n min: {\n type: \"number\",\n description: \"The minimum value the slider can slide to\",\n defaultValueHint: 0,\n },\n included: {\n type: \"boolean\",\n description:\n \"Make effect when marks not null, true means containment and false means coordinative\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"If true, the slider will not be interactable\",\n defaultValueHint: false,\n },\n range: {\n type: \"boolean\",\n description: \"Dual thumb mode\",\n defaultValueHint: false,\n },\n reverse: {\n type: \"boolean\",\n description: \"Reverse the component\",\n defaultValueHint: false,\n },\n vertical: {\n type: \"boolean\",\n description: \"If true, the slider will be vertical\",\n defaultValueHint: false,\n },\n value: {\n type: \"number\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"The default value of slider\",\n },\n value2: {\n type: \"number\",\n displayName: \"value 2\",\n editOnly: true,\n uncontrolledProp: \"defaultValue2\",\n description: \"The default value for the second value of the slider\",\n hidden: (props) => !props.range,\n },\n step: {\n type: \"number\",\n description:\n \"The granularity the slider can step through values. Must greater than 0, and be divided by (max - min).\" +\n \" When marks no null, step can be null\",\n defaultValueHint: 1,\n },\n marks: {\n type: \"object\",\n description:\n \"Tick mark of Slider, type of key must be number, and must in closed interval [min, max],\" +\n \" each mark can declare its own style\",\n },\n },\n defaultStyles: {\n width: \"200px\",\n maxWidth: \"100%\",\n },\n importPath: \"@plasmicpkgs/antd/skinny/registerSlider\",\n importName: \"Slider\",\n};\n\nexport function registerSlider(\n loader?: Registerable,\n customSliderMeta?: ComponentMeta<SliderProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Slider, customSliderMeta ?? sliderMeta);\n}\n"],"names":["AntdSlider"],"mappings":"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"}
1
+ {"version":3,"file":"registerSlider.esm.js","sources":["../src/registerSlider.tsx"],"sourcesContent":["import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Slider as AntdSlider } from \"antd\";\nimport type { SliderRangeProps, SliderSingleProps } from \"antd/es/slider\";\nimport React from \"react\";\nimport { Registerable } from \"./registerable\";\n\ntype SliderProps = Omit<\n SliderSingleProps | SliderRangeProps,\n \"value\" | \"defaultValue\" | \"onChange\"\n> & {\n value: number;\n value2: number;\n onChange: (val: number) => void;\n onChange2: (val: number) => void;\n};\n\nexport const Slider = React.forwardRef<unknown, SliderProps>(function Slider(\n { value, value2, onChange, onChange2, ...props },\n ref\n) {\n const newProps = { ...props } as SliderSingleProps | SliderRangeProps;\n if (props.range) {\n if (typeof value === \"number\" || typeof value2 === \"number\") {\n newProps.value = [value ?? 0, value2 ?? 0];\n }\n newProps.onChange = (values: [number, number]) => {\n onChange(values[0]);\n onChange2(values[1]);\n };\n } else {\n if (typeof value === \"number\") {\n newProps.value = value;\n }\n newProps.onChange = onChange;\n }\n return <AntdSlider {...newProps} ref={ref} />;\n});\n\nexport const sliderMeta: ComponentMeta<SliderProps> = {\n name: \"AntdSlider\",\n displayName: \"Antd Slider\",\n props: {\n max: {\n type: \"number\",\n description: \"The maximum value the slider can slide to\",\n defaultValueHint: 100,\n },\n min: {\n type: \"number\",\n description: \"The minimum value the slider can slide to\",\n defaultValueHint: 0,\n },\n included: {\n type: \"boolean\",\n description:\n \"Make effect when marks not null, true means containment and false means coordinative\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"If true, the slider will not be interactable\",\n defaultValueHint: false,\n },\n range: {\n type: \"boolean\",\n description: \"Dual thumb mode\",\n defaultValueHint: false,\n },\n reverse: {\n type: \"boolean\",\n description: \"Reverse the component\",\n defaultValueHint: false,\n },\n vertical: {\n type: \"boolean\",\n description: \"If true, the slider will be vertical\",\n defaultValueHint: false,\n },\n value: {\n type: \"number\",\n displayName: \"Value\",\n editOnly: true,\n description: \"Initial value for the slider\",\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"number\" }],\n },\n value2: {\n type: \"number\",\n displayName: \"Second Value\",\n editOnly: true,\n description: \"Initial second value for the slider\",\n hidden: (props) => !props.range,\n },\n onChange2: {\n type: \"eventHandler\",\n argTypes: [{ name: \"value\", type: \"number\" }],\n hidden: (props) => !props.range,\n },\n step: {\n type: \"number\",\n description:\n \"The granularity the slider can step through values. Must greater than 0, and be divided by (max - min).\" +\n \" When marks no null, step can be null\",\n defaultValueHint: 1,\n },\n marks: {\n type: \"object\",\n description:\n \"Tick mark of Slider, type of key must be number, and must in closed interval [min, max],\" +\n \" each mark can declare its own style\",\n },\n },\n states: {\n value: {\n type: \"writable\",\n variableType: \"number\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n },\n value2: {\n type: \"writable\",\n variableType: \"number\",\n valueProp: \"value2\",\n onChangeProp: \"onChange2\",\n },\n },\n defaultStyles: {\n width: \"200px\",\n maxWidth: \"100%\",\n },\n importPath: \"@plasmicpkgs/antd/skinny/registerSlider\",\n importName: \"Slider\",\n};\n\nexport function registerSlider(\n loader?: Registerable,\n customSliderMeta?: ComponentMeta<SliderProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Slider, customSliderMeta ?? sliderMeta);\n}\n"],"names":["Slider","AntdSlider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,MAAM,SAAS,KAAM,CAAA,UAAA,CAAiC,SAASA,OAAAA,CACpE,IACA,GACA,EAAA;AAFA,EAAE,IAAA,EAAA,GAAA,EAAA,EAAA,EAAA,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAnB7B,EAAA,GAmBE,EAAyC,EAAA,KAAA,GAAA,SAAA,CAAzC,EAAyC,EAAA,CAAvC,OAAO,EAAA,QAAA,EAAQ,UAAU,EAAA,WAAA,CAAA,CAAA,CAAA;AAG3B,EAAA,MAAM,WAAW,cAAK,CAAA,EAAA,EAAA,KAAA,CAAA,CAAA;AACtB,EAAA,IAAI,MAAM,KAAO,EAAA;AACf,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,OAAO,WAAW,QAAU,EAAA;AAC3D,MAAA,QAAA,CAAS,KAAQ,GAAA,CAAC,KAAS,IAAA,IAAA,GAAA,KAAA,GAAA,CAAA,EAAG,0BAAU,CAAC,CAAA,CAAA;AAAA,KAC3C;AACA,IAAS,QAAA,CAAA,QAAA,GAAW,CAAC,MAA6B,KAAA;AAChD,MAAS,QAAA,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AAClB,MAAU,SAAA,CAAA,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AAAA,KACrB,CAAA;AAAA,GACK,MAAA;AACL,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,KACnB;AACA,IAAA,QAAA,CAAS,QAAW,GAAA,QAAA,CAAA;AAAA,GACtB;AACA,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAAC,QAAA,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAAe,QAAf,CAAA,EAAA,EAAyB,GAAU,EAAA,CAAA,CAAA,CAAA;AAC7C,CAAC,EAAA;AAEM,MAAM,UAAyC,GAAA;AAAA,EACpD,IAAM,EAAA,YAAA;AAAA,EACN,WAAa,EAAA,aAAA;AAAA,EACb,KAAO,EAAA;AAAA,IACL,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,2CAAA;AAAA,MACb,gBAAkB,EAAA,GAAA;AAAA,KACpB;AAAA,IACA,GAAK,EAAA;AAAA,MACH,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,2CAAA;AAAA,MACb,gBAAkB,EAAA,CAAA;AAAA,KACpB;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,SAAA;AAAA,MACN,WACE,EAAA,sFAAA;AAAA,MACF,gBAAkB,EAAA,IAAA;AAAA,KACpB;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA,8CAAA;AAAA,MACb,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA,iBAAA;AAAA,MACb,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA,uBAAA;AAAA,MACb,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,SAAA;AAAA,MACN,WAAa,EAAA,sCAAA;AAAA,MACb,gBAAkB,EAAA,KAAA;AAAA,KACpB;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,OAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,MACV,WAAa,EAAA,8BAAA;AAAA,KACf;AAAA,IACA,QAAU,EAAA;AAAA,MACR,IAAM,EAAA,cAAA;AAAA,MACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,KAC9C;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,QAAA;AAAA,MACN,WAAa,EAAA,cAAA;AAAA,MACb,QAAU,EAAA,IAAA;AAAA,MACV,WAAa,EAAA,qCAAA;AAAA,MACb,MAAQ,EAAA,CAAC,KAAU,KAAA,CAAC,KAAM,CAAA,KAAA;AAAA,KAC5B;AAAA,IACA,SAAW,EAAA;AAAA,MACT,IAAM,EAAA,cAAA;AAAA,MACN,UAAU,CAAC,EAAE,MAAM,OAAS,EAAA,IAAA,EAAM,UAAU,CAAA;AAAA,MAC5C,MAAQ,EAAA,CAAC,KAAU,KAAA,CAAC,KAAM,CAAA,KAAA;AAAA,KAC5B;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,8IAAA;AAAA,MAEF,gBAAkB,EAAA,CAAA;AAAA,KACpB;AAAA,IACA,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,QAAA;AAAA,MACN,WACE,EAAA,8HAAA;AAAA,KAEJ;AAAA,GACF;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA;AAAA,MACL,IAAM,EAAA,UAAA;AAAA,MACN,YAAc,EAAA,QAAA;AAAA,MACd,SAAW,EAAA,OAAA;AAAA,MACX,YAAc,EAAA,UAAA;AAAA,KAChB;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,IAAM,EAAA,UAAA;AAAA,MACN,YAAc,EAAA,QAAA;AAAA,MACd,SAAW,EAAA,QAAA;AAAA,MACX,YAAc,EAAA,WAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,aAAe,EAAA;AAAA,IACb,KAAO,EAAA,OAAA;AAAA,IACP,QAAU,EAAA,MAAA;AAAA,GACZ;AAAA,EACA,UAAY,EAAA,yCAAA;AAAA,EACZ,UAAY,EAAA,QAAA;AACd,EAAA;AAEgB,SAAA,cAAA,CACd,QACA,gBACA,EAAA;AACA,EAAM,MAAA,mBAAA,GAAgD,CAAI,GAAA,IAAA,KACxD,MAAS,GAAA,MAAA,CAAO,iBAAkB,CAAA,GAAG,IAAI,CAAA,GAAI,iBAAkB,CAAA,GAAG,IAAI,CAAA,CAAA;AACxE,EAAoB,mBAAA,CAAA,MAAA,EAAQ,8CAAoB,UAAU,CAAA,CAAA;AAC5D;;;;"}
@@ -162,6 +162,15 @@ function NavigateTabs({ componentProps, studioOps }) {
162
162
  function OutlineMessage() {
163
163
  return /* @__PURE__ */ React__default.default.createElement("div", null, "* To re-arrange tab panes, use the Outline panel");
164
164
  }
165
+ function getActiveKeyOptions(props) {
166
+ const options = /* @__PURE__ */ new Set();
167
+ customControls.traverseReactEltTree(props.children, (elt) => {
168
+ if ((elt == null ? void 0 : elt.type) === TabPane && typeof (elt == null ? void 0 : elt.key) === "string") {
169
+ options.add(elt.key);
170
+ }
171
+ });
172
+ return Array.from(options.keys());
173
+ }
165
174
  const tabsMeta = {
166
175
  name: "AntdTabs",
167
176
  displayName: "Antd Tabs",
@@ -228,17 +237,20 @@ const tabsMeta = {
228
237
  activeKey: {
229
238
  type: "choice",
230
239
  editOnly: true,
231
- uncontrolledProp: "defaultActiveKey",
232
240
  description: "Initial active TabPane's key",
233
- options: (props) => {
234
- const options = /* @__PURE__ */ new Set();
235
- customControls.traverseReactEltTree(props.children, (elt) => {
236
- if ((elt == null ? void 0 : elt.type) === TabPane && typeof (elt == null ? void 0 : elt.key) === "string") {
237
- options.add(elt.key);
241
+ options: getActiveKeyOptions
242
+ },
243
+ onChange: {
244
+ type: "eventHandler",
245
+ argTypes: [
246
+ {
247
+ name: "activeKey",
248
+ type: {
249
+ type: "choice",
250
+ options: getActiveKeyOptions
238
251
  }
239
- });
240
- return Array.from(options.keys());
241
- }
252
+ }
253
+ ]
242
254
  },
243
255
  children: {
244
256
  type: "slot",
@@ -285,6 +297,14 @@ const tabsMeta = {
285
297
  ]
286
298
  }
287
299
  },
300
+ states: {
301
+ activeKey: {
302
+ type: "writable",
303
+ variableType: "array",
304
+ valueProp: "activeKey",
305
+ onChangeProp: "onChange"
306
+ }
307
+ },
288
308
  actions: [
289
309
  {
290
310
  type: "custom-action",
@@ -1 +1 @@
1
- {"version":3,"file":"registerTabs.cjs.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button, Tabs as AntdTabs } from \"antd\";\nimport type { TabPaneProps, TabsProps as AntdTabsProps } from \"antd/es/tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const TabPane = AntdTabs.TabPane;\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const { leftTabBarExtraContent, rightTabBarExtraContent, ...otherProps } =\n props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\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: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Button\n style={{ width: \"100%\" }}\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={{ width: \"100%\" }}\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 const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultActiveKey\",\n description: \"Initial active TabPane's key\",\n options: (props) => {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n },\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n ],\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 keysSet = new Set<string>();\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n keysSet.add(elt.key);\n }\n });\n\n for (\n let keyCandidate = 1;\n keyCandidate <= keysSet.size + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n if (!keysSet.has(strKey)) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\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: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\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, \"children\");\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/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["AntdTabs","registerComponent","React","traverseReactEltTree","Button"],"mappings":"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"}
1
+ {"version":3,"file":"registerTabs.cjs.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button, Tabs as AntdTabs } from \"antd\";\nimport type { TabPaneProps, TabsProps as AntdTabsProps } from \"antd/es/tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const TabPane = AntdTabs.TabPane;\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const { leftTabBarExtraContent, rightTabBarExtraContent, ...otherProps } =\n props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\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: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Button\n style={{ width: \"100%\" }}\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={{ width: \"100%\" }}\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\nfunction getActiveKeyOptions(props: TabsProps) {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n}\n\nexport const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n description: \"Initial active TabPane's key\",\n options: getActiveKeyOptions,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [\n {\n name: \"activeKey\",\n type: {\n type: \"choice\",\n options: getActiveKeyOptions,\n },\n },\n ],\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n ],\n },\n },\n states: {\n activeKey: {\n type: \"writable\",\n variableType: \"array\",\n valueProp: \"activeKey\",\n onChangeProp: \"onChange\",\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 keysSet = new Set<string>();\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n keysSet.add(elt.key);\n }\n });\n\n for (\n let keyCandidate = 1;\n keyCandidate <= keysSet.size + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n if (!keysSet.has(strKey)) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\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: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\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, \"children\");\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/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["AntdTabs","registerComponent","React","traverseReactEltTree","Button"],"mappings":"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"}
@@ -155,6 +155,15 @@ function NavigateTabs({ componentProps, studioOps }) {
155
155
  function OutlineMessage() {
156
156
  return /* @__PURE__ */ React.createElement("div", null, "* To re-arrange tab panes, use the Outline panel");
157
157
  }
158
+ function getActiveKeyOptions(props) {
159
+ const options = /* @__PURE__ */ new Set();
160
+ traverseReactEltTree(props.children, (elt) => {
161
+ if ((elt == null ? void 0 : elt.type) === TabPane && typeof (elt == null ? void 0 : elt.key) === "string") {
162
+ options.add(elt.key);
163
+ }
164
+ });
165
+ return Array.from(options.keys());
166
+ }
158
167
  const tabsMeta = {
159
168
  name: "AntdTabs",
160
169
  displayName: "Antd Tabs",
@@ -221,17 +230,20 @@ const tabsMeta = {
221
230
  activeKey: {
222
231
  type: "choice",
223
232
  editOnly: true,
224
- uncontrolledProp: "defaultActiveKey",
225
233
  description: "Initial active TabPane's key",
226
- options: (props) => {
227
- const options = /* @__PURE__ */ new Set();
228
- traverseReactEltTree(props.children, (elt) => {
229
- if ((elt == null ? void 0 : elt.type) === TabPane && typeof (elt == null ? void 0 : elt.key) === "string") {
230
- options.add(elt.key);
234
+ options: getActiveKeyOptions
235
+ },
236
+ onChange: {
237
+ type: "eventHandler",
238
+ argTypes: [
239
+ {
240
+ name: "activeKey",
241
+ type: {
242
+ type: "choice",
243
+ options: getActiveKeyOptions
231
244
  }
232
- });
233
- return Array.from(options.keys());
234
- }
245
+ }
246
+ ]
235
247
  },
236
248
  children: {
237
249
  type: "slot",
@@ -278,6 +290,14 @@ const tabsMeta = {
278
290
  ]
279
291
  }
280
292
  },
293
+ states: {
294
+ activeKey: {
295
+ type: "writable",
296
+ variableType: "array",
297
+ valueProp: "activeKey",
298
+ onChangeProp: "onChange"
299
+ }
300
+ },
281
301
  actions: [
282
302
  {
283
303
  type: "custom-action",
@@ -1 +1 @@
1
- {"version":3,"file":"registerTabs.esm.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button, Tabs as AntdTabs } from \"antd\";\nimport type { TabPaneProps, TabsProps as AntdTabsProps } from \"antd/es/tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const TabPane = AntdTabs.TabPane;\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const { leftTabBarExtraContent, rightTabBarExtraContent, ...otherProps } =\n props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\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: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Button\n style={{ width: \"100%\" }}\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={{ width: \"100%\" }}\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 const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n uncontrolledProp: \"defaultActiveKey\",\n description: \"Initial active TabPane's key\",\n options: (props) => {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n },\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n ],\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 keysSet = new Set<string>();\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n keysSet.add(elt.key);\n }\n });\n\n for (\n let keyCandidate = 1;\n keyCandidate <= keysSet.size + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n if (!keysSet.has(strKey)) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\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: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\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, \"children\");\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/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["AntdTabs"],"mappings":"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"}
1
+ {"version":3,"file":"registerTabs.esm.js","sources":["../src/registerTabs.tsx"],"sourcesContent":["import registerComponent, {\n ActionProps,\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\nimport { Button, Tabs as AntdTabs } from \"antd\";\nimport type { TabPaneProps, TabsProps as AntdTabsProps } from \"antd/es/tabs\";\nimport React from \"react\";\nimport { traverseReactEltTree } from \"./customControls\";\nimport { Registerable } from \"./registerable\";\n\nexport const TabPane = AntdTabs.TabPane;\n\nexport const tabPaneMeta: ComponentMeta<TabPaneProps> = {\n name: \"AntdTabPane\",\n displayName: \"Antd Tab Pane\",\n props: {\n tab: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n },\n key: {\n type: \"string\",\n description: \"Unique TabPane's key\",\n defaultValue: \"tabPaneKey\",\n },\n closable: {\n type: \"boolean\",\n description:\n \"Wether the tab can be closed or not. Only works for editable tabs\",\n defaultValueHint: true,\n },\n disabled: {\n type: \"boolean\",\n description: \"Disabled state of tab\",\n defaultValueHint: false,\n },\n forceRender: {\n type: \"boolean\",\n description:\n \"Forced render of content in tabs, not lazy render after clicking on tabs\",\n defaultValueHint: false,\n },\n closeIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"text\",\n value: \"Tab Content\",\n },\n ],\n },\n },\n parentComponentName: \"AntdTabs\",\n importPath: \"@plasmicpkgs/antd/skinny/registerTabs\",\n importName: \"TabPane\",\n};\n\nexport function registerTabPane(\n loader?: Registerable,\n customTabPaneMeta?: ComponentMeta<TabPaneProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(TabPane, customTabPaneMeta ?? tabPaneMeta);\n}\n\nexport type TabsProps = Omit<AntdTabsProps, \"tabBarExtraContent\"> & {\n leftTabBarExtraContent?: React.ReactNode;\n rightTabBarExtraContent?: React.ReactNode;\n};\n\nexport function Tabs(props: TabsProps) {\n const { leftTabBarExtraContent, rightTabBarExtraContent, ...otherProps } =\n props;\n return (\n <AntdTabs\n {...otherProps}\n tabBarExtraContent={{\n left: leftTabBarExtraContent,\n right: rightTabBarExtraContent,\n }}\n />\n );\n}\n\nfunction NavigateTabs({ componentProps, studioOps }: ActionProps<any>) {\n const tabPanes: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\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: \"10px\",\n justifyContent: \"space-between\",\n }}\n >\n <Button\n style={{ width: \"100%\" }}\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={{ width: \"100%\" }}\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\nfunction getActiveKeyOptions(props: TabsProps) {\n const options = new Set<string>();\n traverseReactEltTree(props.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n options.add(elt.key);\n }\n });\n return Array.from(options.keys());\n}\n\nexport const tabsMeta: ComponentMeta<TabsProps> = {\n name: \"AntdTabs\",\n displayName: \"Antd Tabs\",\n props: {\n type: {\n type: \"choice\",\n options: [\"line\", \"card\", \"editable-card\"],\n defaultValueHint: \"line\",\n description: \"Basic style of tabs\",\n },\n addIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n animated: {\n type: \"object\",\n hidden: (props) => props.tabPosition !== \"top\" && !!props.tabPosition,\n defaultValueHint: { inkBar: true, tabPane: false },\n description:\n \"Whether to change tabs with animation. Can be either a boolean or specify for inkBar and tabPane\",\n },\n hideAdd: {\n type: \"boolean\",\n hidden: (props) => props.type !== \"editable-card\",\n defaultValueHint: false,\n description: \"Hide plus icon or not\",\n },\n moreIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n size: {\n type: \"choice\",\n options: [\"large\", \"default\", \"small\"],\n defaultValueHint: \"default\",\n description: \"Preset tab bar size\",\n },\n tabPosition: {\n type: \"choice\",\n options: [\"top\", \"right\", \"bottom\", \"left\"],\n defaultValueHint: \"top\",\n description: \"Position of tabs\",\n },\n tabBarGutter: {\n type: \"number\",\n description: \"The gap between tabs\",\n },\n centered: {\n type: \"boolean\",\n description: \"Centers tabs\",\n defaultValueHint: false,\n },\n leftTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n rightTabBarExtraContent: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n tabBarStyle: {\n type: \"object\",\n description: \"CSS for the Tab Bar style\",\n },\n activeKey: {\n type: \"choice\",\n editOnly: true,\n description: \"Initial active TabPane's key\",\n options: getActiveKeyOptions,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [\n {\n name: \"activeKey\",\n type: {\n type: \"choice\",\n options: getActiveKeyOptions,\n },\n },\n ],\n },\n children: {\n type: \"slot\",\n allowedComponents: [\"AntdTabPane\"],\n defaultValue: [\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"1\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: \"2\",\n tab: [\n {\n type: \"text\",\n value: \"Tab\",\n },\n ],\n children: [\n {\n type: \"text\",\n value: \"Tab content\",\n },\n ],\n },\n },\n ],\n },\n },\n states: {\n activeKey: {\n type: \"writable\",\n variableType: \"array\",\n valueProp: \"activeKey\",\n onChangeProp: \"onChange\",\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 keysSet = new Set<string>();\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n keysSet.add(elt.key);\n }\n });\n\n for (\n let keyCandidate = 1;\n keyCandidate <= keysSet.size + 1;\n keyCandidate++\n ) {\n const strKey = keyCandidate.toString();\n if (!keysSet.has(strKey)) {\n return strKey;\n }\n }\n\n return undefined;\n };\n\n const tabKey = generateNewKey();\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"AntdTabPane\",\n props: {\n key: tabKey,\n },\n },\n \"children\"\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: string[] = [];\n traverseReactEltTree(componentProps.children, (elt) => {\n if (elt?.type === TabPane && typeof elt?.key === \"string\") {\n tabPanes.push(elt.key);\n }\n });\n\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, \"children\");\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/antd/skinny/registerTabs\",\n importName: \"Tabs\",\n};\n\nexport function registerTabs(\n loader?: Registerable,\n customTabsMeta?: ComponentMeta<TabsProps>\n) {\n const doRegisterComponent: typeof registerComponent = (...args) =>\n loader ? loader.registerComponent(...args) : registerComponent(...args);\n doRegisterComponent(Tabs, customTabsMeta ?? tabsMeta);\n}\n"],"names":["AntdTabs"],"mappings":"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"}