@plasmicpkgs/antd5 0.0.59 → 0.0.63

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.
@@ -1 +1 @@
1
- {"version":3,"file":"registerForm.esm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n CodeComponentMode,\n} from \"@plasmicapp/host\";\nimport { Checkbox, Form, Input, InputNumber, Radio, Select } from \"antd\";\nimport type { FormInstance, FormProps } from \"antd/es/form\";\nimport type { FormItemProps } from \"antd/es/form/FormItem\";\nimport type { FormListOperation, FormListProps } from \"antd/es/form/FormList\";\nimport type { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { checkboxComponentName } from \"./registerCheckbox\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { radioGroupComponentName } from \"./registerRadio\";\nimport { selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport { Registerable, registerComponentHelper, usePrevious } from \"./utils\";\n\nconst reactNodeToString = function (reactNode: React.ReactNode): string {\n let string = \"\";\n if (typeof reactNode === \"string\") {\n string = reactNode;\n } else if (typeof reactNode === \"number\") {\n string = reactNode.toString();\n } else if (reactNode instanceof Array) {\n reactNode.forEach(function (child) {\n string += reactNodeToString(child);\n });\n } else if (isValidElement(reactNode)) {\n string += reactNodeToString(reactNode.props.children);\n }\n return string;\n};\n\nfunction ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\nexport enum InputType {\n Text = \"Text\",\n TextArea = \"Text Area\",\n Password = \"Password\",\n Number = \"Number\",\n Select = \"Select\",\n Option = \"Option\",\n OptionGroup = \"Option Group\",\n Radio = \"Radio\",\n RadioGroup = \"Radio Group\",\n Checkbox = \"Checkbox\",\n}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n}\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n formItems: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n submitSlot?: boolean;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n layout: FormLayoutContextValue;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\ninterface FormLayoutContextValue {\n layout: React.ComponentProps<typeof Form>[\"layout\"];\n labelSpan?: number;\n}\n\nconst FormLayoutContext = React.createContext<\n FormLayoutContextValue | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n let childrenNode;\n if (props.mode !== \"simplified\") {\n childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n } else {\n childrenNode = (\n <>\n {(props.formItems ?? []).map((formItem) => (\n <FormItemWrapper\n {...formItem}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\n }\n style={{ width: \"100%\" }}\n >\n {formItem.inputType === InputType.Text ? (\n <Input />\n ) : formItem.inputType === InputType.Password ? (\n <Input.Password />\n ) : formItem.inputType === InputType.TextArea ? (\n <Input.TextArea />\n ) : formItem.inputType === InputType.Number ? (\n <InputNumber />\n ) : formItem.inputType === InputType.Checkbox ? (\n <Checkbox>{formItem.label}</Checkbox>\n ) : formItem.inputType === InputType.Select ? (\n <Select options={formItem.options} />\n ) : formItem.inputType === InputType.Radio ? (\n <Radio.Group\n options={formItem.options}\n optionType={formItem.optionType}\n />\n ) : null}\n </FormItemWrapper>\n ))}\n {props.submitSlot}\n </>\n );\n }\n\n const fireOnValuesChange = React.useCallback(() => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n }, [form, lastValue]);\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n const formLayout = React.useMemo(\n () => ({\n layout: props.layout,\n labelSpan: props.labelCol?.span as number | undefined,\n }),\n [props.layout, props.labelCol?.span]\n );\n return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\n }}\n >\n <FormLayoutContext.Provider value={formLayout}>\n <Form\n {...rest}\n key={\n props.initialValues\n ? JSON.stringify(props.initialValues)\n : undefined\n }\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n extendedOnValuesChange?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form fields*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </FormLayoutContext.Provider>\n </InternalFormInstanceContext.Provider>\n );\n};\nexport function FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n const previousInitialValues = usePrevious(props.initialValues);\n\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n setRemountKey((k) => k + 1);\n }\n }, [previousInitialValues, props.initialValues]);\n\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Field\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n hidden: (props: any) => props.mode !== \"advanced\",\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Field Group\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-group\",\n // },\n // \"children\"\n // );\n // },\n // },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form List\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-list\",\n // },\n // \"children\"\n // );\n // },\n // },\n];\nconst colProp = (\n displayName?: string,\n defaultValue?: object,\n description?: string\n) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Width\",\n description:\n \"The number of grid columns to span in width (out of 24 columns total)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Number of grid columns to skip from the left (out of 24 columns total)\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formComponentName = \"plasmic-antd5-form\";\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: \"controlMode\" as any,\n formItems: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n label: \"string\",\n inputType: {\n type: \"choice\",\n options: Object.values(InputType),\n defaultValue: InputType.Text,\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n },\n label: \"string\",\n value: {\n type: \"string\",\n hidden: (ps: any) => ps.type !== \"option-group\",\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n },\n },\n nameFunc: (item) => item?.label,\n },\n hidden: (ps: any) =>\n ![InputType.Select, InputType.Radio].includes(ps.inputType),\n },\n optionType: {\n type: \"choice\",\n options: [\n { value: \"default\", label: \"Radio\" },\n { value: \"button\", label: \"Button\" },\n ],\n hidden: (ps: any) => InputType.Radio !== ps.inputType,\n defaultValueHint: \"Radio\",\n displayName: \"Option Type\",\n },\n ...commonFormItemProps,\n },\n nameFunc: (item) => item.label,\n },\n hidden: (props) => props.mode === \"advanced\",\n },\n submitSlot: {\n type: \"slot\",\n hidden: () => true,\n defaultValue: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n submitsForm: true,\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ...{\n mergeWithParent: () => true,\n hiddenMergedProps: (ps: any) => !ps.mode,\n },\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: buttonComponentName,\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n type: \"primary\",\n submitsForm: true,\n },\n },\n ],\n hidden: (props) => props.mode !== \"advanced\",\n },\n initialValues: {\n type: \"object\",\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n hidden: (ps) => ps.layout !== \"horizontal\",\n },\n labelCol: colProp(\n \"Label layout\",\n {\n span: 8,\n horizontalOnly: true,\n },\n \"Set the width and offset of the labels\"\n ),\n wrapperCol: colProp(\n \"Control layout\",\n {\n span: 16,\n horizontalOnly: true,\n },\n \"Set the width and offset of the form controls\"\n ),\n colon: {\n type: \"boolean\",\n description: `Show a colon after labels by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n hidden: (props) => (props.layout ?? \"horizontal\") !== \"horizontal\",\n },\n requiredMark: {\n displayName: \"Required/optional mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n alignLabellessWithControls?: boolean;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\n plasmicRules: PlasmicRule[],\n label: string | undefined\n) {\n const effectiveLabel = label || \"This field\";\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"min\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at least ${plasmicRule.length} characters`,\n });\n break;\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at most ${plasmicRule.length} characters`,\n });\n break;\n case \"advanced\":\n rules.push({\n validator: (...args) =>\n plasmicRule.custom?.apply(null, args)\n ? Promise.resolve()\n : Promise.reject(),\n message: plasmicRule.message,\n });\n }\n }\n return rules;\n}\n\nconst useFormItemRelativeName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.relativePath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.relativePath, name]\n : undefined;\n};\n\nconst useFormItemFullName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.fullPath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.fullPath, name]\n : undefined;\n};\n\nfunction useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nexport function FormItemWrapper(props: InternalFormItemProps) {\n const {\n rules: plasmicRules,\n description,\n noLabel,\n name,\n hideValidationMessage,\n customizeProps,\n setControlContextData,\n alignLabellessWithControls = true,\n ...rest\n } = props;\n const relativeFormItemName = useFormItemRelativeName(name);\n const fullFormItemName = useFormItemFullName(name);\n const bestEffortLabel =\n (!noLabel && reactNodeToString(props.label)) ||\n ensureArray(props.name).slice(-1)[0];\n const rules = plasmicRules\n ? plasmicRulesToAntdRules(\n plasmicRules,\n typeof bestEffortLabel === \"number\"\n ? \"\" + bestEffortLabel\n : bestEffortLabel\n )\n : undefined;\n const layoutContext = React.useContext(FormLayoutContext);\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...rest}\n label={noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n extra={description}\n help={hideValidationMessage ? \"\" : props.help}\n colon={noLabel ? false : undefined}\n valuePropName={deriveValuePropName(props)}\n // If in horizontal mode and no label, then we align the content\n // with the rest of the controls in the grid\n // if alignLabellessWithControls is true\n wrapperCol={\n layoutContext?.layout === \"horizontal\" &&\n noLabel &&\n alignLabellessWithControls &&\n layoutContext.labelSpan\n ? { offset: layoutContext.labelSpan }\n : undefined\n }\n >\n <FormItemForwarder formItemProps={props} />\n </FormItem>\n );\n}\n\n/**\n * Derive the valuePropName to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveValuePropName(props: InternalFormItemProps): string | undefined {\n if (props.valuePropName) {\n // Always prefer an explicitly specified valuePropName\n return props.valuePropName;\n }\n\n const valueProps = React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.valueProp;\n if (x) {\n return x as string;\n }\n // Hard-coding \"isChecked\" for Plume checkbox / switch\n const plumeType = (childType as any).__plumeType;\n if (plumeType && (plumeType === \"checkbox\" || plumeType === \"switch\")) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[0];\n }\n return undefined;\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n let newProps = {\n ...(child.props ?? {}),\n ...props,\n __plasmicFormField: true,\n };\n if (formItemProps.customizeProps) {\n newProps = mergeProps(\n newProps,\n formItemProps.customizeProps(data, newProps)\n );\n }\n return i === 0 && isValidElement(child)\n ? cloneElement(child, newProps)\n : child;\n });\n}\n\nconst commonFormItemProps = {\n name: {\n type: \"string\" as const,\n },\n initialValue: {\n type: \"string\" as const,\n },\n rules: {\n type: \"formValidationRules\" as const,\n } as any,\n valuePropName: {\n type: \"string\" as const,\n advanced: true,\n defaultValueHint: \"value\",\n description:\n \"The prop name for specifying the value of the form control component\",\n },\n noLabel: {\n type: \"boolean\" as const,\n advanced: true,\n },\n alignLabellessWithControls: {\n type: \"boolean\" as const,\n displayName: \"Align with controls?\",\n description: \"Aligns the content with form controls in the grid\",\n hidden: (ps: any, ctx: any) =>\n !ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n defaultValueHint: true,\n },\n colon: {\n type: \"boolean\" as const,\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\" as const,\n options: [\"left\", \"right\"],\n advanced: true,\n hidden: (ps: any, ctx: any) =>\n !!ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n },\n hidden: {\n type: \"boolean\" as const,\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\" as const,\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true as const,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\" as const,\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\" as const,\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form items can depend on other form items. This forces it to reevaluate the validation rules when the other form item changes.\",\n },\n hideValidationMessage: {\n type: \"boolean\" as const,\n displayName: \"Hide validation message?\",\n description: \"If true, will hide the validation error message\",\n defaultValueHint: false,\n advanced: true,\n },\n customizeProps: {\n type: \"function\" as const,\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\" as const,\n displayName: \"Field control only\",\n description:\n \"Don't render anything but the field control - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n};\n\nexport const formItemComponentName = \"plasmic-antd5-form-item\";\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: formItemComponentName,\n displayName: \"Form Field\",\n parentComponentName: formComponentName,\n defaultStyles: {\n marginBottom: \"24px\",\n width: \"stretch\",\n },\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n hidden: (ps) => !!ps.noLabel,\n ...({ mergeWithParent: true } as any),\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: inputComponentName,\n },\n ...({ mergeWithParent: true } as any),\n },\n ...commonFormItemProps,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n templates: {\n Text: {\n props: {\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n \"Long Text\": {\n props: {\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n \"Select dropdown\": {\n props: {\n children: {\n type: \"component\",\n name: selectComponentName,\n },\n },\n },\n Number: {\n props: {\n children: {\n type: \"component\",\n name: inputNumberComponentName,\n },\n },\n },\n Checkbox: {\n props: {\n children: {\n type: \"component\",\n name: checkboxComponentName,\n },\n noLabel: true,\n },\n },\n Switch: {\n props: {\n children: {\n type: \"component\",\n name: switchComponentName,\n },\n noLabel: true,\n },\n },\n Radios: {\n props: {\n children: {\n type: \"component\",\n name: radioGroupComponentName,\n },\n },\n },\n Password: {\n props: {\n children: {\n type: \"component\",\n name: passwordComponentName,\n },\n },\n },\n \"Submit button\": {\n props: {\n children: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n },\n },\n noLabel: true,\n },\n },\n },\n ...({ trapsSelection: true } as any),\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nexport function FormGroup(props: FormGroupProps) {\n const pathCtx = React.useContext(PathContext);\n return (\n <PathContext.Provider\n value={{\n relativePath: [...pathCtx.relativePath, props.name],\n fullPath: [...pathCtx.fullPath, props.name],\n }}\n >\n {props.children}\n </PathContext.Provider>\n );\n}\n\nexport const formGroupComponentName = \"plasmic-antd5-form-group\";\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: formGroupComponentName,\n displayName: \"Form Field Group\",\n parentComponentName: formComponentName,\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport const formListComponentName = \"plasmic-antd5-form-list\";\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: formListComponentName,\n parentComponentName: formComponentName,\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n refActions: {\n add: {\n displayName: \"Add an item\",\n argTypes: [\n {\n name: \"defaultValue\",\n displayName: \"Default value\",\n type: \"object\",\n },\n {\n name: \"insertIndex\",\n displayName: \"Insert index\",\n type: \"number\",\n },\n ],\n },\n remove: {\n displayName: \"Remove an item\",\n argTypes: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n argTypes: [\n {\n name: \"from\",\n displayName: \"From\",\n type: \"number\",\n },\n {\n name: \"to\",\n displayName: \"To\",\n type: \"number\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormListWrapper\",\n });\n}\n"],"names":["__spreadValues","InputType","values","_a","FormListWrapper"],"mappings":"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"}
1
+ {"version":3,"file":"registerForm.esm.js","sources":["../src/react-utils.tsx","../src/registerForm.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport React from \"react\";\n\nexport const isBrowser = typeof window !== \"undefined\";\nexport const NONE = Symbol(\"NONE\");\n\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n\nexport function createElementWithChildren(\n elementType: any,\n props: any,\n children: React.ReactNode\n) {\n if (Array.isArray(children)) {\n return React.createElement(\n elementType,\n props,\n ...children\n ) as React.ReactElement;\n } else if (children || \"children\" in props) {\n // Only call React.createElement with `children` if there are actual children,\n // or if there was an explicit (albeit undefined) children passed via\n // props. Otherwise, if you pass `undefined` as the children argument\n // to React.createElement, the created element will have prop {children: undefined}.\n // If the `root` is an PlasmicGeneratedComponent, and these props with {children: undefined}\n // are used, then it will be taken as a `children` override, and will thus blank out\n // everything under the root node.\n return React.createElement(elementType, props, children);\n } else {\n return React.createElement(elementType, props);\n }\n}\n\nexport function ensureNotArray(children: React.ReactNode) {\n if (Array.isArray(children)) {\n if (children.length === 1) {\n return children[0];\n } else {\n return React.createElement(React.Fragment, {}, ...children);\n }\n } else {\n return children;\n }\n}\n\n/**\n * Flattens ReactNode into an array of ReactChild, but does NOT replace\n * missing keys with array index, as React.Children.toArray() does.\n */\nexport function toChildArray(children: React.ReactNode): React.ReactChild[] {\n if (isReactChild(children)) {\n return [children];\n } else if (Array.isArray(children)) {\n return children.flatMap(toChildArray);\n } else {\n return [];\n }\n}\n\nexport function isReactText(child: React.ReactNode): child is React.ReactText {\n return typeof child === \"string\" || typeof child === \"number\";\n}\n\nexport function isReactChild(\n child: React.ReactNode\n): child is React.ReactChild {\n return React.isValidElement(child) || isReactText(child);\n}\n\nexport function isReactFragment(\n child: React.ReactNode\n): child is React.ReactElement {\n return React.isValidElement(child) && child.type === React.Fragment;\n}\n\nexport function isReactNode(x: any) {\n return (\n typeof x === \"string\" || typeof x === \"number\" || React.isValidElement(x)\n );\n}\n\n// From https://stackoverflow.com/questions/54775790/forcing-excess-property-checking-on-variable-passed-to-typescript-function\n// We also wrap the error message in a Partial<> because otherwise Jetbrains IDEs will autocomplete the component with all the string methods as props - see https://github.com/plasmicapp/plasmic/issues/16.\nexport type StrictProps<T, TExpected> = Exclude<\n keyof T,\n keyof TExpected\n> extends never\n ? {}\n : Partial<\"Unexpected extraneous props\">;\n\nexport type HTMLElementRefOf<T extends keyof JSX.IntrinsicElements> = Exclude<\n React.ComponentProps<T>[\"ref\"],\n string\n>;\n\nexport function mergeProps(\n props: Record<string, any>,\n ...restProps: Record<string, any>[]\n): Record<string, any> {\n if (restProps.every((rest) => Object.keys(rest).length === 0)) {\n return props;\n }\n\n const result = { ...props };\n\n for (const rest of restProps) {\n for (const key of Object.keys(rest)) {\n result[key] = mergePropVals(key, result[key], rest[key]);\n }\n }\n\n return result;\n}\n\nfunction updateRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (!ref) {\n return;\n }\n\n if (typeof ref === \"function\") {\n ref(value);\n } else {\n if (!Object.isFrozen(ref)) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n }\n}\n\nexport function mergeRefs<T>(...refs: (React.Ref<T> | undefined)[]) {\n return (value: T) => {\n for (const ref of refs) {\n updateRef(ref, value);\n }\n };\n}\n\nexport function mergePropVals(name: string, val1: any, val2: any): any {\n if (val1 === NONE || val2 === NONE) {\n // The NONE sentinel always skips all merging and returns null\n return null;\n } else if (val1 == null) {\n // If either of them is nil, prefer the other\n return val2;\n } else if (val2 == null) {\n return val1;\n } else if (name === \"className\") {\n // Special case for className -- always combine both class names\n return classNames(val1, val2);\n } else if (name === \"style\") {\n // Special case for style -- always shallow-merge style dicts\n return { ...val1, ...val2 };\n } else if (name === \"ref\") {\n // Special case for ref\n return mergeRefs(val1, val2);\n } else if (typeof val1 !== typeof val2) {\n // If the type of the two values are different, then no way to merge them.\n // Prefer val2.\n return val2;\n } else if (name.startsWith(\"on\") && typeof val1 === \"function\") {\n // Special case for event handlers -- always call both handlers\n return (...args: any[]) => {\n let res: any;\n if (typeof val1 === \"function\") {\n res = val1(...args);\n }\n if (typeof val2 === \"function\") {\n res = val2(...args);\n }\n return res;\n };\n } else {\n // For all else, prefer val2\n return val2;\n }\n}\n\nexport function getElementTypeName(element: React.ReactElement) {\n if (typeof element.type === \"string\") {\n return element.type;\n } else {\n const comp = element.type as any;\n return comp.displayName ?? comp.name ?? comp.render?.name ?? \"Component\";\n }\n}\n","import {\n ActionProps,\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n CodeComponentMode,\n} from \"@plasmicapp/host\";\nimport { Checkbox, Form, Input, InputNumber, Radio, Select } from \"antd\";\nimport type { FormInstance, FormProps } from \"antd/es/form\";\nimport type { FormItemProps } from \"antd/es/form/FormItem\";\nimport type { FormListOperation, FormListProps } from \"antd/es/form/FormList\";\nimport type { ColProps } from \"antd/es/grid/col\";\nimport equal from \"fast-deep-equal\";\nimport React, { cloneElement, isValidElement } from \"react\";\nimport { mergeProps } from \"./react-utils\";\nimport { buttonComponentName } from \"./registerButton\";\nimport { checkboxComponentName } from \"./registerCheckbox\";\nimport {\n inputComponentName,\n inputNumberComponentName,\n passwordComponentName,\n textAreaComponentName,\n} from \"./registerInput\";\nimport { radioGroupComponentName } from \"./registerRadio\";\nimport { selectComponentName } from \"./registerSelect\";\nimport { switchComponentName } from \"./registerSwitch\";\nimport { Registerable, registerComponentHelper, usePrevious } from \"./utils\";\n\nconst reactNodeToString = function (reactNode: React.ReactNode): string {\n let string = \"\";\n if (typeof reactNode === \"string\") {\n string = reactNode;\n } else if (typeof reactNode === \"number\") {\n string = reactNode.toString();\n } else if (reactNode instanceof Array) {\n reactNode.forEach(function (child) {\n string += reactNodeToString(child);\n });\n } else if (isValidElement(reactNode)) {\n string += reactNodeToString(reactNode.props.children);\n }\n return string;\n};\n\nfunction ensureArray<T>(x: T | T[]): T[] {\n return Array.isArray(x) ? x : [x];\n}\n\nconst FormItem = Form.Item;\nconst FormList = Form.List;\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n noLabel?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n}\n\nexport enum InputType {\n Text = \"Text\",\n TextArea = \"Text Area\",\n Password = \"Password\",\n Number = \"Number\",\n Select = \"Select\",\n Option = \"Option\",\n OptionGroup = \"Option Group\",\n Radio = \"Radio\",\n RadioGroup = \"Radio Group\",\n Checkbox = \"Checkbox\",\n}\n\nexport interface SimplifiedFormItemsProp extends InternalFormItemProps {\n inputType: InputType;\n options?: {\n label: string;\n value: string;\n }[];\n optionType?: \"default\" | \"button\";\n}\n\ninterface FormWrapperProps extends FormProps {\n /**\n * https://ant.design/components/form#setfieldsvalue-do-not-trigger-onfieldschange-or-onvalueschange\n * Because setFieldsValue doesn't trigger onValuesChange, we need to create our own onChange function.\n * This will allow us to trigger the onChange function and keep the value state updated in canvas.\n * We also don't invoke onValuesChange to avoid changing the standard behavior, since users may have\n * overridden this function in their codebase\n **/\n extendedOnValuesChange?: (\n values: Parameters<NonNullable<FormProps[\"onValuesChange\"]>>[1]\n ) => void;\n formItems: SimplifiedFormItemsProp[];\n mode?: CodeComponentMode;\n submitSlot?: boolean;\n}\n\nconst PathContext = React.createContext<{\n relativePath: (string | number)[]; // used for form.items inside a form.list\n fullPath: (string | number)[];\n}>({ relativePath: [], fullPath: [] });\n\ninterface InternalFormInstanceContextData {\n fireOnValuesChange: () => void;\n forceRemount: () => void;\n layout: FormLayoutContextValue;\n}\n\nconst InternalFormInstanceContext = React.createContext<\n InternalFormInstanceContextData | undefined\n>(undefined);\n\ninterface FormLayoutContextValue {\n layout: React.ComponentProps<typeof Form>[\"layout\"];\n labelSpan?: number;\n}\n\nconst FormLayoutContext = React.createContext<\n FormLayoutContextValue | undefined\n>(undefined);\n\nconst Internal = (\n props: FormWrapperProps & {\n setRemountKey: React.Dispatch<React.SetStateAction<number>>;\n labelCol?: ColProps & { horizontalOnly?: boolean };\n wrapperCol?: ColProps & { horizontalOnly?: boolean };\n }\n) => {\n const [form] = Form.useForm();\n const values = form.getFieldsValue(true);\n const lastValue = React.useRef(values);\n const { extendedOnValuesChange, setRemountKey, ...rest } = props;\n // extracted from https://github.com/react-component/field-form/blob/master/src/Form.tsx#L120\n let childrenNode;\n if (props.mode !== \"simplified\") {\n childrenNode =\n typeof props.children === \"function\"\n ? props.children(values, form)\n : props.children;\n } else {\n childrenNode = (\n <>\n {(props.formItems ?? []).map((formItem) => (\n <FormItemWrapper\n {...formItem}\n noLabel={\n formItem.inputType === InputType.Checkbox || formItem.noLabel\n }\n style={{ width: \"100%\" }}\n >\n {formItem.inputType === InputType.Text ? (\n <Input />\n ) : formItem.inputType === InputType.Password ? (\n <Input.Password />\n ) : formItem.inputType === InputType.TextArea ? (\n <Input.TextArea />\n ) : formItem.inputType === InputType.Number ? (\n <InputNumber />\n ) : formItem.inputType === InputType.Checkbox ? (\n <Checkbox>{formItem.label}</Checkbox>\n ) : formItem.inputType === InputType.Select ? (\n <Select options={formItem.options} />\n ) : formItem.inputType === InputType.RadioGroup ? (\n <Radio.Group\n options={formItem.options}\n optionType={formItem.optionType}\n />\n ) : null}\n </FormItemWrapper>\n ))}\n {props.submitSlot}\n </>\n );\n }\n\n const fireOnValuesChange = React.useCallback(() => {\n const values = form.getFieldsValue(true);\n if (!equal(values, lastValue.current)) {\n extendedOnValuesChange?.(values);\n lastValue.current = values;\n }\n }, [form, lastValue]);\n\n React.useEffect(() => {\n fireOnValuesChange();\n }, []);\n const formLayout = React.useMemo(\n () => ({\n layout: props.layout,\n labelSpan: props.labelCol?.span as number | undefined,\n }),\n [props.layout, props.labelCol?.span]\n );\n return (\n <InternalFormInstanceContext.Provider\n value={{\n layout: formLayout,\n fireOnValuesChange,\n forceRemount: () => setRemountKey((k) => k + 1),\n }}\n >\n <FormLayoutContext.Provider value={formLayout}>\n <Form\n {...rest}\n key={\n props.initialValues\n ? JSON.stringify(props.initialValues)\n : undefined\n }\n onValuesChange={(...args) => {\n props.onValuesChange?.(...args);\n extendedOnValuesChange?.(args[1]);\n }}\n form={form}\n labelCol={\n props.labelCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.labelCol\n }\n wrapperCol={\n props.wrapperCol?.horizontalOnly && props.layout !== \"horizontal\"\n ? undefined\n : props.wrapperCol\n }\n >\n {/*Remove built-in spacing on form fields*/}\n <style>{`\n .ant-form-item-explain + div, .ant-form-item-margin-offset {\n display: none;\n }\n `}</style>\n {childrenNode}\n </Form>\n </FormLayoutContext.Provider>\n </InternalFormInstanceContext.Provider>\n );\n};\nexport function FormWrapper(props: FormWrapperProps) {\n const [remountKey, setRemountKey] = React.useState(0);\n const previousInitialValues = usePrevious(props.initialValues);\n\n React.useEffect(() => {\n if (\n previousInitialValues !== props.initialValues &&\n JSON.stringify(previousInitialValues) !==\n JSON.stringify(props.initialValues)\n ) {\n setRemountKey((k) => k + 1);\n }\n }, [previousInitialValues, props.initialValues]);\n\n return <Internal key={remountKey} {...props} setRemountKey={setRemountKey} />;\n}\n\nconst COMMON_ACTIONS = [\n {\n type: \"button-action\" as const,\n label: \"Append new Form Field\",\n onClick: ({ studioOps }: ActionProps<any>) => {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: \"plasmic-antd5-form-item\",\n },\n \"children\"\n );\n },\n hidden: (props: any) => props.mode === \"simplified\",\n },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form Field Group\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-group\",\n // },\n // \"children\"\n // );\n // },\n // },\n // {\n // type: \"button-action\" as const,\n // label: \"Append new Form List\",\n // onClick: ({ studioOps }: ActionProps<any>) => {\n // studioOps.appendToSlot(\n // {\n // type: \"component\",\n // name: \"plasmic-antd5-form-list\",\n // },\n // \"children\"\n // );\n // },\n // },\n];\nconst colProp = (\n displayName?: string,\n defaultValue?: object,\n description?: string\n) =>\n ({\n type: \"object\",\n displayName: displayName,\n advanced: true,\n fields: {\n span: {\n type: \"number\",\n displayName: \"Width\",\n description:\n \"The number of grid columns to span in width (out of 24 columns total)\",\n min: 1,\n max: 24,\n },\n offset: {\n type: \"number\",\n displayName: \"Offset\",\n description:\n \"Number of grid columns to skip from the left (out of 24 columns total)\",\n min: 0,\n max: 23,\n },\n horizontalOnly: {\n type: \"boolean\",\n displayName: \"Horizontal only\",\n description: \"Only apply to horizontal layout\",\n },\n },\n description,\n defaultValue: defaultValue,\n } as const);\n\nexport const formComponentName = \"plasmic-antd5-form\";\n\nexport function registerForm(loader?: Registerable) {\n registerComponentHelper(loader, FormWrapper, {\n name: formComponentName,\n displayName: \"Form\",\n defaultStyles: {\n layout: \"vbox\",\n alignItems: \"flex-start\",\n },\n props: {\n mode: \"controlMode\" as any,\n formItems: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n label: \"string\",\n inputType: {\n type: \"choice\",\n options: Object.values(InputType).filter(\n (inputType) =>\n ![\n InputType.Option,\n InputType.OptionGroup,\n InputType.Radio,\n ].includes(inputType)\n ),\n defaultValue: InputType.Text,\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n hidden: (ps, _ctx, { path }) => {\n if (\n ps.formItems?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return false;\n },\n },\n label: \"string\",\n value: {\n type: \"string\",\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps.formItems?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return false;\n }\n return item.type !== \"option\";\n },\n },\n options: {\n type: \"array\",\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n hidden: (ps, _ctx, { path, item }) => {\n if (\n ps.formItems?.[path[1] as number]?.inputType !==\n InputType.Select\n ) {\n return true;\n }\n return item.type !== \"option-group\";\n },\n },\n },\n nameFunc: (item) => item?.label,\n },\n hidden: (_ps: any, _ctx: any, { item }) =>\n ![InputType.Select, InputType.RadioGroup].includes(\n item.inputType\n ),\n },\n optionType: {\n type: \"choice\",\n options: [\n { value: \"default\", label: \"Radio\" },\n { value: \"button\", label: \"Button\" },\n ],\n hidden: (_ps: any, _ctx: any, { item }) =>\n InputType.RadioGroup !== item.inputType,\n defaultValueHint: \"Radio\",\n displayName: \"Option Type\",\n },\n ...commonFormItemProps,\n },\n nameFunc: (item) => item.label,\n },\n hidden: (props) => props.mode !== \"simplified\",\n },\n submitSlot: {\n type: \"slot\",\n hidden: () => true,\n defaultValue: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n submitsForm: true,\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n },\n },\n ...{\n mergeWithParent: () => true,\n hiddenMergedProps: (ps: any) => !ps.mode,\n },\n },\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Name\",\n },\n name: \"name\",\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n label: {\n type: \"text\",\n value: \"Message\",\n },\n name: \"message\",\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n {\n type: \"component\",\n name: buttonComponentName,\n props: {\n children: {\n type: \"text\",\n value: \"Submit\",\n },\n type: \"primary\",\n submitsForm: true,\n },\n },\n ],\n hidden: (props) => props.mode === \"simplified\",\n },\n initialValues: {\n type: \"object\",\n } as any,\n layout: {\n type: \"choice\",\n options: [\"horizontal\", \"vertical\", \"inline\"],\n defaultValue: \"vertical\",\n },\n labelAlign: {\n type: \"choice\",\n options: [\"left\", \"right\"],\n defaultValueHint: \"right\",\n advanced: true,\n hidden: (ps) => ps.layout !== \"horizontal\",\n },\n labelCol: colProp(\n \"Label layout\",\n {\n span: 8,\n horizontalOnly: true,\n },\n \"Set the width and offset of the labels\"\n ),\n wrapperCol: colProp(\n \"Control layout\",\n {\n span: 16,\n horizontalOnly: true,\n },\n \"Set the width and offset of the form controls\"\n ),\n colon: {\n type: \"boolean\",\n description: `Show a colon after labels by default (only for horizontal layout)`,\n defaultValueHint: true,\n advanced: true,\n hidden: (props) => (props.layout ?? \"horizontal\") !== \"horizontal\",\n },\n requiredMark: {\n displayName: \"Required/optional mark\",\n type: \"choice\",\n options: [\n {\n value: \"optional\",\n label: \"Indicate optional fields\",\n },\n {\n value: true,\n label: \"Indicate required fields with asterisk\",\n },\n {\n value: false,\n label: \"Show no indicators\",\n },\n ],\n advanced: true,\n defaultValueHint: true,\n },\n extendedOnValuesChange: {\n type: \"eventHandler\",\n displayName: \"On values change\",\n argTypes: [\n {\n name: \"changedValues\",\n type: \"object\",\n },\n {\n name: \"allValues\",\n type: \"object\",\n },\n ],\n },\n onFinish: {\n type: \"eventHandler\",\n displayName: \"On submit\",\n argTypes: [\n {\n name: \"values\",\n type: \"object\",\n },\n ],\n },\n onFinishFailed: {\n // function({ values, errorFields, outOfDate })\n type: \"eventHandler\",\n displayName: \"On invalid submit\",\n argTypes: [\n {\n name: \"data\",\n type: \"object\",\n },\n ],\n },\n validateTrigger: {\n type: \"choice\",\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true,\n defaultValueHint: [\"onChange\"],\n advanced: true,\n },\n },\n actions: COMMON_ACTIONS,\n states: {\n value: {\n type: \"readonly\",\n variableType: \"object\",\n onChangeProp: \"extendedOnValuesChange\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormWrapper\",\n });\n}\n\ninterface FormControlContextData {\n internalFormCtx?: InternalFormInstanceContextData;\n}\n\ninterface CuratedFieldData {\n status: string | undefined;\n // path: (string | number)[];\n // errors: string[];\n // warnings: string[];\n // value: any;\n // trigger: (x: any) => void;\n}\n\ninterface InternalFormItemProps extends Omit<FormItemProps, \"rules\"> {\n rules?: PlasmicRule[];\n description?: React.ReactNode;\n noLabel?: boolean;\n hideValidationMessage?: boolean;\n customizeProps?: (\n fieldData: CuratedFieldData,\n props: InternalFormItemProps\n ) => FormItemProps;\n setControlContextData?: (data: FormControlContextData) => void;\n alignLabellessWithControls?: boolean;\n}\n\ninterface PlasmicRule {\n ruleType:\n | \"enum\"\n | \"len\"\n | \"max\"\n | \"min\"\n | \"regex\"\n | \"required\"\n | \"whitespace\"\n | \"advanced\";\n length?: number;\n pattern?: string;\n custom?: (...args: any[]) => any;\n options?: { value: string }[];\n message?: string;\n}\n\nfunction plasmicRulesToAntdRules(\n plasmicRules: PlasmicRule[],\n label: string | undefined\n) {\n const effectiveLabel = label || \"This field\";\n const rules: FormItemProps[\"rules\"] = [];\n for (const plasmicRule of plasmicRules) {\n switch (plasmicRule.ruleType) {\n case \"enum\":\n rules.push({\n type: \"enum\",\n enum: plasmicRule.options?.map((opt) => opt.value) ?? [],\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"required\":\n rules.push({\n required: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"regex\":\n rules.push({\n pattern: new RegExp(plasmicRule.pattern ?? \"\"),\n message:\n plasmicRule.message ?? `${effectiveLabel} must be a valid value`,\n });\n break;\n case \"whitespace\":\n rules.push({\n whitespace: true,\n message: plasmicRule.message ?? `${effectiveLabel} is required`,\n });\n break;\n case \"min\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at least ${plasmicRule.length} characters`,\n });\n break;\n case \"max\":\n rules.push({\n [plasmicRule.ruleType]: plasmicRule.length,\n message:\n plasmicRule.message ??\n `${effectiveLabel} must be at most ${plasmicRule.length} characters`,\n });\n break;\n case \"advanced\":\n rules.push({\n validator: (...args) =>\n plasmicRule.custom?.apply(null, args)\n ? Promise.resolve()\n : Promise.reject(),\n message: plasmicRule.message,\n });\n }\n }\n return rules;\n}\n\nconst useFormItemRelativeName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.relativePath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.relativePath, name]\n : undefined;\n};\n\nconst useFormItemFullName = (name: FormItemProps[\"name\"]) => {\n const pathCtx = React.useContext(PathContext);\n return typeof name === \"object\"\n ? [...pathCtx.fullPath, ...name]\n : typeof name === \"string\"\n ? [...pathCtx.fullPath, name]\n : undefined;\n};\n\nfunction useFormInstanceMaybe(): FormInstance<any> | undefined {\n return Form.useFormInstance();\n}\n\nexport function FormItemWrapper(props: InternalFormItemProps) {\n const {\n rules: plasmicRules,\n description,\n noLabel,\n name,\n hideValidationMessage,\n customizeProps,\n setControlContextData,\n alignLabellessWithControls = true,\n ...rest\n } = props;\n const relativeFormItemName = useFormItemRelativeName(name);\n const fullFormItemName = useFormItemFullName(name);\n const bestEffortLabel =\n (!noLabel && reactNodeToString(props.label)) ||\n ensureArray(props.name).slice(-1)[0];\n const rules = plasmicRules\n ? plasmicRulesToAntdRules(\n plasmicRules,\n typeof bestEffortLabel === \"number\"\n ? \"\" + bestEffortLabel\n : bestEffortLabel\n )\n : undefined;\n const layoutContext = React.useContext(FormLayoutContext);\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n const { fireOnValuesChange, forceRemount } = internalFormCtx ?? {};\n props.setControlContextData?.({\n internalFormCtx,\n });\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (\n !fullFormItemName ||\n form?.getFieldValue(fullFormItemName) !==\n prevPropValues.current.initialValue\n ) {\n // this field value is set at the form level\n return;\n }\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }, [form, props.initialValue, fullFormItemName]);\n }\n return (\n <FormItem\n {...rest}\n label={noLabel ? undefined : props.label}\n name={relativeFormItemName}\n rules={rules}\n extra={description}\n help={hideValidationMessage ? \"\" : props.help}\n colon={noLabel ? false : undefined}\n valuePropName={deriveValuePropName(props)}\n // If in horizontal mode and no label, then we align the content\n // with the rest of the controls in the grid\n // if alignLabellessWithControls is true\n wrapperCol={\n layoutContext?.layout === \"horizontal\" &&\n noLabel &&\n alignLabellessWithControls &&\n layoutContext.labelSpan\n ? { offset: layoutContext.labelSpan }\n : undefined\n }\n >\n <FormItemForwarder formItemProps={props} />\n </FormItem>\n );\n}\n\n/**\n * Derive the valuePropName to use, if the wrapped child has designated\n * one via its Component.__plasmicFormFieldMeta?.valueProp.\n */\nfunction deriveValuePropName(props: InternalFormItemProps): string | undefined {\n if (props.valuePropName) {\n // Always prefer an explicitly specified valuePropName\n return props.valuePropName;\n }\n\n const valueProps = React.Children.map(props.children as any, (child) => {\n if (React.isValidElement(child)) {\n const childType = child.type;\n if (childType) {\n const x = (childType as any).__plasmicFormFieldMeta?.valueProp;\n if (x) {\n return x as string;\n }\n // Hard-coding \"isChecked\" for Plume checkbox / switch\n const plumeType = (childType as any).__plumeType;\n if (plumeType && (plumeType === \"checkbox\" || plumeType === \"switch\")) {\n return \"isChecked\";\n }\n }\n }\n return undefined;\n }).filter((x: any): x is string => !!x);\n if (valueProps.length > 0) {\n return valueProps[0];\n }\n return undefined;\n}\n\nfunction FormItemForwarder({ formItemProps, ...props }: any) {\n const status = Form.Item.useStatus();\n const internalFormCtx = React.useContext(InternalFormInstanceContext);\n // const value = props[formItemProps.valuePropName ?? \"value\"];\n // const trigger = props[formItemProps.trigger ?? \"onChange\"];\n const data: CuratedFieldData = {\n status: status.status,\n };\n props.setControlContextData?.({\n internalFormCtx,\n status,\n });\n return React.Children.map(formItemProps.children, (child, i) => {\n let newProps = {\n ...(child.props ?? {}),\n ...props,\n __plasmicFormField: true,\n };\n if (formItemProps.customizeProps) {\n newProps = mergeProps(\n newProps,\n formItemProps.customizeProps(data, newProps)\n );\n }\n return i === 0 && isValidElement(child)\n ? cloneElement(child, newProps)\n : child;\n });\n}\n\nconst commonFormItemProps = {\n name: {\n type: \"string\" as const,\n },\n initialValue: {\n type: \"string\" as const,\n },\n rules: {\n type: \"formValidationRules\" as const,\n } as any,\n valuePropName: {\n type: \"string\" as const,\n advanced: true,\n defaultValueHint: \"value\",\n description:\n \"The prop name for specifying the value of the form control component\",\n },\n noLabel: {\n type: \"boolean\" as const,\n advanced: true,\n },\n alignLabellessWithControls: {\n type: \"boolean\" as const,\n displayName: \"Align with controls?\",\n description: \"Aligns the content with form controls in the grid\",\n hidden: (ps: any, ctx: any) =>\n !ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n defaultValueHint: true,\n },\n colon: {\n type: \"boolean\" as const,\n defaultValueHint: true,\n advanced: true,\n hidden: () => true,\n },\n labelAlign: {\n type: \"choice\" as const,\n options: [\"left\", \"right\"],\n advanced: true,\n hidden: (ps: any, ctx: any) =>\n !!ps.noLabel || ctx?.internalFormCtx?.layout.layout !== \"horizontal\",\n },\n hidden: {\n type: \"boolean\" as const,\n advanced: true,\n },\n validateTrigger: {\n type: \"choice\" as const,\n options: [\"onSubmit\", \"onChange\", \"onBlur\"],\n multiSelect: true as const,\n advanced: true,\n },\n shouldUpdate: {\n type: \"boolean\" as const,\n advanced: true,\n displayName: \"Always re-render\",\n description:\n \"Form items normally only re-render when the corresponding form value changes, for performance. This forces it to always re-render.\",\n },\n dependencies: {\n type: \"array\" as const,\n advanced: true,\n displayName: \"Dependencies\",\n description:\n \"Form items can depend on other form items. This forces it to reevaluate the validation rules when the other form item changes.\",\n },\n hideValidationMessage: {\n type: \"boolean\" as const,\n displayName: \"Hide validation message?\",\n description: \"If true, will hide the validation error message\",\n defaultValueHint: false,\n advanced: true,\n },\n customizeProps: {\n type: \"function\" as const,\n description:\n \"Customize the props passed into the wrapped field component. Takes the current status ('success', 'warning', 'error', or 'validating').)\",\n argNames: [\"fieldData\"],\n argValues: (_ps: any, ctx: any) => [\n {\n status: ctx?.status?.status,\n },\n ],\n advanced: true,\n } as any,\n noStyle: {\n type: \"boolean\" as const,\n displayName: \"Field control only\",\n description:\n \"Don't render anything but the field control - so no label, help text, validation error, etc.\",\n advanced: true,\n },\n};\n\nexport const formItemComponentName = \"plasmic-antd5-form-item\";\n\nexport function registerFormItem(loader?: Registerable) {\n registerComponentHelper(loader, FormItemWrapper, {\n name: formItemComponentName,\n displayName: \"Form Field\",\n parentComponentName: formComponentName,\n defaultStyles: {\n marginBottom: \"24px\",\n width: \"stretch\",\n },\n props: {\n label: {\n type: \"slot\",\n defaultValue: {\n type: \"text\",\n value: \"Label\",\n },\n hidden: (ps) => !!ps.noLabel,\n ...({ mergeWithParent: true } as any),\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"component\",\n name: inputComponentName,\n },\n ...({ mergeWithParent: true } as any),\n },\n ...commonFormItemProps,\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormItemWrapper\",\n templates: {\n Text: {\n props: {\n children: {\n type: \"component\",\n name: inputComponentName,\n },\n },\n },\n \"Long Text\": {\n props: {\n children: {\n type: \"component\",\n name: textAreaComponentName,\n },\n },\n },\n \"Select dropdown\": {\n props: {\n children: {\n type: \"component\",\n name: selectComponentName,\n },\n },\n },\n Number: {\n props: {\n children: {\n type: \"component\",\n name: inputNumberComponentName,\n },\n },\n },\n Checkbox: {\n props: {\n children: {\n type: \"component\",\n name: checkboxComponentName,\n },\n noLabel: true,\n },\n },\n Switch: {\n props: {\n children: {\n type: \"component\",\n name: switchComponentName,\n },\n noLabel: true,\n },\n },\n Radios: {\n props: {\n children: {\n type: \"component\",\n name: radioGroupComponentName,\n },\n },\n },\n Password: {\n props: {\n children: {\n type: \"component\",\n name: passwordComponentName,\n },\n },\n },\n \"Submit button\": {\n props: {\n children: {\n type: \"component\",\n name: buttonComponentName,\n props: {\n type: \"primary\",\n },\n },\n noLabel: true,\n },\n },\n },\n ...({ trapsSelection: true } as any),\n });\n}\n\nexport interface FormGroupProps {\n name: string;\n children: React.ReactNode;\n}\n\nexport function FormGroup(props: FormGroupProps) {\n const pathCtx = React.useContext(PathContext);\n return (\n <PathContext.Provider\n value={{\n relativePath: [...pathCtx.relativePath, props.name],\n fullPath: [...pathCtx.fullPath, props.name],\n }}\n >\n {props.children}\n </PathContext.Provider>\n );\n}\n\nexport const formGroupComponentName = \"plasmic-antd5-form-group\";\n\nexport function registerFormGroup(loader?: Registerable) {\n registerComponentHelper(loader, FormGroup, {\n name: formGroupComponentName,\n displayName: \"Form Field Group\",\n parentComponentName: formComponentName,\n actions: COMMON_ACTIONS,\n props: {\n name: {\n type: \"string\",\n },\n children: {\n type: \"slot\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormGroup\",\n });\n}\n\ntype FormListWrapperProps = FormListProps & {\n children: React.ReactNode;\n};\n\ntype FormListRenderFuncParams = Parameters<FormListProps[\"children\"]>;\n\nexport const FormListWrapper = React.forwardRef(function FormListWrapper(\n props: FormListWrapperProps,\n ref: React.Ref<FormListOperation>\n) {\n const relativeFormItemName = useFormItemRelativeName(props.name);\n const fullFormItemName = useFormItemFullName(props.name);\n const operationsRef = React.useRef<FormListRenderFuncParams | undefined>(\n undefined\n );\n React.useImperativeHandle(\n ref,\n () => ({\n add(defaultValue, insertIndex) {\n if (operationsRef.current) {\n const { add } = operationsRef.current[1];\n add(defaultValue, insertIndex);\n }\n },\n remove(index) {\n if (operationsRef.current) {\n const { remove } = operationsRef.current[1];\n remove(index);\n }\n },\n move(from, to) {\n if (operationsRef.current) {\n const { move } = operationsRef.current[1];\n move(from, to);\n }\n },\n }),\n [operationsRef]\n );\n const inCanvas = !!usePlasmicCanvasContext();\n if (inCanvas) {\n const form = useFormInstanceMaybe();\n const prevPropValues = React.useRef({\n initialValue: props.initialValue,\n name: props.name,\n });\n const { fireOnValuesChange, forceRemount } =\n React.useContext(InternalFormInstanceContext) ?? {};\n React.useEffect(() => {\n if (prevPropValues.current.name !== props.name) {\n forceRemount?.();\n }\n if (fullFormItemName) {\n form?.setFieldValue(fullFormItemName, props.initialValue);\n prevPropValues.current.initialValue = props.initialValue;\n fireOnValuesChange?.();\n }\n }, [props.initialValue, fullFormItemName]);\n }\n return (\n <FormList {...props} name={relativeFormItemName ?? []}>\n {(...args) => {\n operationsRef.current = args;\n return args[0].map((field, index) => (\n <PathContext.Provider\n value={{\n relativePath: [field.name],\n fullPath: [...(fullFormItemName ?? []), field.name],\n }}\n >\n <DataProvider name={\"currentField\"} data={field}>\n <DataProvider name={\"currentFieldIndex\"} data={index}>\n {repeatedElement(index, props.children)}\n </DataProvider>\n </DataProvider>\n </PathContext.Provider>\n ));\n }}\n </FormList>\n );\n});\n\nexport const formListComponentName = \"plasmic-antd5-form-list\";\n\nexport function registerFormList(loader?: Registerable) {\n registerComponentHelper(loader, FormListWrapper, {\n name: formListComponentName,\n parentComponentName: formComponentName,\n displayName: \"Form List\",\n actions: COMMON_ACTIONS,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n name: \"firstName\",\n label: {\n type: \"text\",\n value: \"First name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n {\n type: \"component\",\n name: formItemComponentName,\n props: {\n name: \"lastName\",\n label: {\n type: \"text\",\n value: \"Last name\",\n },\n children: {\n type: \"component\",\n name: \"plasmic-antd5-input\",\n },\n },\n },\n ],\n },\n ],\n },\n name: {\n type: \"string\",\n defaultValue: \"guests\",\n },\n initialValue: {\n type: \"array\",\n defaultValue: [\n {\n firstName: \"Jane\",\n lastName: \"Doe\",\n },\n {\n firstName: \"John\",\n lastName: \"Smith\",\n },\n ],\n } as any,\n },\n refActions: {\n add: {\n displayName: \"Add an item\",\n argTypes: [\n {\n name: \"defaultValue\",\n displayName: \"Default value\",\n type: \"object\",\n },\n {\n name: \"insertIndex\",\n displayName: \"Insert index\",\n type: \"number\",\n },\n ],\n },\n remove: {\n displayName: \"Remove an item\",\n argTypes: [\n {\n name: \"index\",\n displayName: \"Index\",\n type: \"number\",\n },\n ],\n },\n move: {\n displayName: \"Move field\",\n argTypes: [\n {\n name: \"from\",\n displayName: \"From\",\n type: \"number\",\n },\n {\n name: \"to\",\n displayName: \"To\",\n type: \"number\",\n },\n ],\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerForm\",\n importName: \"FormListWrapper\",\n });\n}\n"],"names":["__spreadValues","InputType","values","_a","FormListWrapper"],"mappings":"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"}
@@ -96,13 +96,13 @@ function registerSelect(loader) {
96
96
  },
97
97
  value: {
98
98
  type: "string",
99
- hidden: (ps) => ps.type !== "option"
99
+ hidden: (_ps, _ctx, { item }) => item.type !== "option"
100
100
  },
101
101
  label: "string",
102
102
  options: {
103
103
  type: "array",
104
- hidden: (ps) => {
105
- return ps.type !== "option-group";
104
+ hidden: (_ps, _ctx, { item }) => {
105
+ return item.type !== "option-group";
106
106
  },
107
107
  itemType: {
108
108
  type: "object",
@@ -118,11 +118,13 @@ function registerSelect(loader) {
118
118
  defaultValue: [
119
119
  {
120
120
  value: "option1",
121
- label: "Option 1"
121
+ label: "Option 1",
122
+ type: "option"
122
123
  },
123
124
  {
124
125
  value: "option2",
125
- label: "Option 2"
126
+ label: "Option 2",
127
+ type: "option"
126
128
  }
127
129
  ]
128
130
  },
@@ -135,10 +137,7 @@ function registerSelect(loader) {
135
137
  },
136
138
  children: {
137
139
  type: "slot",
138
- allowedComponents: [
139
- optionComponentName,
140
- optionGroupComponentName
141
- ],
140
+ allowedComponents: [optionComponentName, optionGroupComponentName],
142
141
  hidden: (ps) => !ps.useChildren
143
142
  },
144
143
  placeholder: {
@@ -1 +1 @@
1
- {"version":3,"file":"registerSelect.cjs.js","sources":["../src/registerSelect.tsx"],"sourcesContent":["import { Select } from \"antd\";\nimport React, { ComponentProps } from \"react\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const AntdOption = Select.Option;\nexport const AntdOptionGroup = Select.OptGroup;\n\nexport function AntdSelect(\n props: ComponentProps<typeof Select> & {\n popupScopeClassName?: string;\n popupClassName?: string;\n defaultStylesClassName?: string;\n useChildren?: boolean;\n }\n) {\n const {\n popupClassName,\n popupScopeClassName,\n defaultStylesClassName,\n suffixIcon,\n mode,\n useChildren,\n ...rest\n } = props;\n const curated = { ...rest };\n if (useChildren) {\n curated.options = undefined;\n }\n return (\n <Select\n {...curated}\n mode={!mode || (mode as any) === \"single\" ? undefined : mode}\n popupClassName={`${defaultStylesClassName} ${popupScopeClassName} ${popupClassName}`}\n {...(suffixIcon && { suffixIcon })}\n />\n );\n}\n\nexport const selectComponentName = \"plasmic-antd5-select\";\nexport const optionComponentName = \"plasmic-antd5-option\";\nexport const optionGroupComponentName = \"plasmic-antd5-option-group\";\n\nexport function registerSelect(loader?: Registerable) {\n registerComponentHelper(loader, AntdSelect, {\n name: selectComponentName,\n displayName: \"Select\",\n props: {\n options: {\n type: \"array\",\n hidden: (ps) => !!ps.useChildren,\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n },\n value: {\n type: \"string\",\n hidden: (ps: any) => ps.type !== \"option\",\n },\n label: \"string\",\n options: {\n type: \"array\",\n hidden: (ps: any) => {\n return ps.type !== \"option-group\";\n },\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n },\n },\n },\n defaultValue: [\n {\n value: \"option1\",\n label: \"Option 1\",\n },\n {\n value: \"option2\",\n label: \"Option 2\",\n },\n ],\n },\n\n useChildren: {\n displayName: \"Use slot\",\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"Instead of configuring a list of options, customize the contents of the Select by dragging and dropping options in the outline/canvas, inside the 'children' slot. Lets you use any content or formatting within the Options, and also use Option Groups.\",\n },\n\n children: {\n type: \"slot\",\n allowedComponents: [\n optionComponentName,\n optionGroupComponentName,\n ],\n hidden: (ps) => !ps.useChildren,\n },\n\n placeholder: {\n type: \"slot\",\n defaultValue: \"Select...\",\n },\n suffixIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n open: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n },\n value: {\n type: \"choice\",\n displayName: \"Selected value\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"Initial selected option\",\n multiSelect: (ps: any) => ps.mode === \"multiple\",\n options: (ps: any) => {\n const options = new Set<string>();\n if (!ps.useChildren) {\n const rec = (op: any) => {\n if (typeof op === \"string\") {\n return [{ value: op, label: op }];\n } else if (\"options\" in op) {\n return (op.options ?? []).flatMap((sub: any) => rec(sub));\n } else {\n return [{ value: op.value, label: op.label || op.value }];\n }\n };\n return (ps.options ?? []).flatMap((o: any) => rec(o));\n } else {\n traverseReactEltTree(ps.children, (elt) => {\n if (\n elt?.type === Select.Option &&\n typeof elt?.props?.value === \"string\"\n ) {\n options.add(elt.props.value);\n }\n });\n }\n return Array.from(options.keys());\n },\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n mode: {\n type: \"choice\",\n options: [\"single\", \"multiple\"],\n defaultValueHint: \"single\",\n },\n size: {\n type: \"choice\",\n options: [\"small\", \"middle\", \"large\"],\n },\n disabled: {\n type: \"boolean\",\n defaultValueHint: false,\n },\n showSearch: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n },\n status: {\n type: \"choice\",\n options: [\"error\", \"warning\"],\n advanced: true,\n },\n bordered: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n autoFocus: {\n type: \"boolean\",\n displayName: \"Focus automatically\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [\n { name: \"value\", type: \"string\" },\n { name: \"option\", type: \"object\" },\n ],\n } as any,\n dropdownMatchSelectWidth: {\n type: \"boolean\",\n displayName: \"Should dropdown match trigger button width?\",\n defaultValueHint: true,\n advanced: true,\n },\n triggerClassName: {\n type: \"class\",\n displayName: \"Trigger styles\",\n noSelf: true,\n selectors: [\n {\n selector: \":component .ant-select-selector.ant-select-selector\",\n label: \"Base\",\n },\n {\n selector: \":component .ant-select-selector:hover\",\n label: \"Hovered\",\n },\n ],\n advanced: true,\n } as any,\n popupScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"popup\",\n } as any,\n popupClassName: {\n type: \"class\",\n displayName: \"Popup styles\",\n selectors: [],\n advanced: true,\n } as any,\n optionClassName: {\n type: \"class\",\n displayName: \"Option styles\",\n noSelf: true,\n selectors: [\n {\n selector: \":popup.ant-select-dropdown .ant-select-item-option\",\n label: \"Base\",\n },\n {\n selector:\n \":popup.ant-select-dropdown .ant-select-item-option-active\",\n label: \"Focused\",\n },\n {\n selector:\n \":popup.ant-select-dropdown .ant-select-item-option-selected\",\n label: \"Selected\",\n },\n ],\n advanced: true,\n } as any,\n placeholderClassName: {\n type: \"class\",\n displayName: \"Placeholder styles\",\n selectors: [\n {\n selector:\n \":component .ant-select-selector .ant-select-selection-placeholder\",\n label: \"Base\",\n },\n ],\n advanced: true,\n } as any,\n defaultStylesClassName: {\n type: \"themeResetClass\",\n } as any,\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdSelect\",\n });\n\n registerComponentHelper(loader, AntdOption, {\n name: optionComponentName,\n displayName: \"Option\",\n parentComponentName: selectComponentName,\n props: {\n children: {\n type: \"slot\",\n defaultValue: \"Option\",\n ...({ mergeWithParent: true } as any),\n },\n value: {\n type: \"string\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdOption\",\n });\n\n registerComponentHelper(loader, AntdOptionGroup, {\n name: optionGroupComponentName,\n displayName: \"Option Group\",\n parentComponentName: selectComponentName,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-option\",\n props: {\n value: \"option1\",\n children: {\n type: \"text\",\n value: \"Option 1\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-option\",\n props: {\n value: \"option2\",\n children: {\n type: \"text\",\n value: \"Option 1\",\n },\n },\n },\n ],\n },\n label: {\n type: \"slot\",\n defaultValue: \"Group label\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdOptionGroup\",\n });\n}\n"],"names":["Select","React","registerComponentHelper","_a","traverseReactEltTree"],"mappings":"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"}
1
+ {"version":3,"file":"registerSelect.cjs.js","sources":["../src/registerSelect.tsx"],"sourcesContent":["import { Select } from \"antd\";\nimport React, { ComponentProps } from \"react\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const AntdOption = Select.Option;\nexport const AntdOptionGroup = Select.OptGroup;\n\nexport function AntdSelect(\n props: ComponentProps<typeof Select> & {\n popupScopeClassName?: string;\n popupClassName?: string;\n defaultStylesClassName?: string;\n useChildren?: boolean;\n }\n) {\n const {\n popupClassName,\n popupScopeClassName,\n defaultStylesClassName,\n suffixIcon,\n mode,\n useChildren,\n ...rest\n } = props;\n const curated = { ...rest };\n if (useChildren) {\n curated.options = undefined;\n }\n return (\n <Select\n {...curated}\n mode={!mode || (mode as any) === \"single\" ? undefined : mode}\n popupClassName={`${defaultStylesClassName} ${popupScopeClassName} ${popupClassName}`}\n {...(suffixIcon && { suffixIcon })}\n />\n );\n}\n\nexport const selectComponentName = \"plasmic-antd5-select\";\nexport const optionComponentName = \"plasmic-antd5-option\";\nexport const optionGroupComponentName = \"plasmic-antd5-option-group\";\n\nexport function registerSelect(loader?: Registerable) {\n registerComponentHelper(loader, AntdSelect, {\n name: selectComponentName,\n displayName: \"Select\",\n props: {\n options: {\n type: \"array\",\n hidden: (ps) => !!ps.useChildren,\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n type: {\n type: \"choice\",\n options: [\n { value: \"option\", label: \"Option\" },\n { value: \"option-group\", label: \"Option Group\" },\n ],\n defaultValue: \"option\",\n },\n value: {\n type: \"string\",\n hidden: (_ps: any, _ctx: any, { item }: any) =>\n item.type !== \"option\",\n },\n label: \"string\",\n options: {\n type: \"array\",\n hidden: (_ps: any, _ctx: any, { item }: any) => {\n return item.type !== \"option-group\";\n },\n itemType: {\n type: \"object\",\n nameFunc: (item: any) => item.label || item.value,\n fields: {\n value: \"string\",\n label: \"string\",\n },\n },\n },\n },\n },\n defaultValue: [\n {\n value: \"option1\",\n label: \"Option 1\",\n type: \"option\",\n },\n {\n value: \"option2\",\n label: \"Option 2\",\n type: \"option\",\n },\n ],\n },\n\n useChildren: {\n displayName: \"Use slot\",\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n description:\n \"Instead of configuring a list of options, customize the contents of the Select by dragging and dropping options in the outline/canvas, inside the 'children' slot. Lets you use any content or formatting within the Options, and also use Option Groups.\",\n },\n\n children: {\n type: \"slot\",\n allowedComponents: [optionComponentName, optionGroupComponentName],\n hidden: (ps) => !ps.useChildren,\n },\n\n placeholder: {\n type: \"slot\",\n defaultValue: \"Select...\",\n },\n suffixIcon: {\n type: \"slot\",\n hidePlaceholder: true,\n },\n open: {\n type: \"boolean\",\n editOnly: true,\n uncontrolledProp: \"defaultOpen\",\n },\n value: {\n type: \"choice\",\n displayName: \"Selected value\",\n editOnly: true,\n uncontrolledProp: \"defaultValue\",\n description: \"Initial selected option\",\n multiSelect: (ps: any) => ps.mode === \"multiple\",\n options: (ps: any) => {\n const options = new Set<string>();\n if (!ps.useChildren) {\n const rec = (op: any) => {\n if (typeof op === \"string\") {\n return [{ value: op, label: op }];\n } else if (\"options\" in op) {\n return (op.options ?? []).flatMap((sub: any) => rec(sub));\n } else {\n return [{ value: op.value, label: op.label || op.value }];\n }\n };\n return (ps.options ?? []).flatMap((o: any) => rec(o));\n } else {\n traverseReactEltTree(ps.children, (elt) => {\n if (\n elt?.type === Select.Option &&\n typeof elt?.props?.value === \"string\"\n ) {\n options.add(elt.props.value);\n }\n });\n }\n return Array.from(options.keys());\n },\n hidden: (ps: any) => !!ps.__plasmicFormField,\n },\n mode: {\n type: \"choice\",\n options: [\"single\", \"multiple\"],\n defaultValueHint: \"single\",\n },\n size: {\n type: \"choice\",\n options: [\"small\", \"middle\", \"large\"],\n },\n disabled: {\n type: \"boolean\",\n defaultValueHint: false,\n },\n showSearch: {\n type: \"boolean\",\n defaultValueHint: false,\n advanced: true,\n },\n status: {\n type: \"choice\",\n options: [\"error\", \"warning\"],\n advanced: true,\n },\n bordered: {\n type: \"boolean\",\n defaultValueHint: true,\n },\n autoFocus: {\n type: \"boolean\",\n displayName: \"Focus automatically\",\n defaultValueHint: false,\n advanced: true,\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [\n { name: \"value\", type: \"string\" },\n { name: \"option\", type: \"object\" },\n ],\n } as any,\n dropdownMatchSelectWidth: {\n type: \"boolean\",\n displayName: \"Should dropdown match trigger button width?\",\n defaultValueHint: true,\n advanced: true,\n },\n triggerClassName: {\n type: \"class\",\n displayName: \"Trigger styles\",\n noSelf: true,\n selectors: [\n {\n selector: \":component .ant-select-selector.ant-select-selector\",\n label: \"Base\",\n },\n {\n selector: \":component .ant-select-selector:hover\",\n label: \"Hovered\",\n },\n ],\n advanced: true,\n } as any,\n popupScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"popup\",\n } as any,\n popupClassName: {\n type: \"class\",\n displayName: \"Popup styles\",\n selectors: [],\n advanced: true,\n } as any,\n optionClassName: {\n type: \"class\",\n displayName: \"Option styles\",\n noSelf: true,\n selectors: [\n {\n selector: \":popup.ant-select-dropdown .ant-select-item-option\",\n label: \"Base\",\n },\n {\n selector:\n \":popup.ant-select-dropdown .ant-select-item-option-active\",\n label: \"Focused\",\n },\n {\n selector:\n \":popup.ant-select-dropdown .ant-select-item-option-selected\",\n label: \"Selected\",\n },\n ],\n advanced: true,\n } as any,\n placeholderClassName: {\n type: \"class\",\n displayName: \"Placeholder styles\",\n selectors: [\n {\n selector:\n \":component .ant-select-selector .ant-select-selection-placeholder\",\n label: \"Base\",\n },\n ],\n advanced: true,\n } as any,\n defaultStylesClassName: {\n type: \"themeResetClass\",\n } as any,\n },\n states: {\n value: {\n type: \"writable\",\n valueProp: \"value\",\n onChangeProp: \"onChange\",\n variableType: \"text\",\n },\n },\n ...({ trapsSelection: true } as any),\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdSelect\",\n });\n\n registerComponentHelper(loader, AntdOption, {\n name: optionComponentName,\n displayName: \"Option\",\n parentComponentName: selectComponentName,\n props: {\n children: {\n type: \"slot\",\n defaultValue: \"Option\",\n ...({ mergeWithParent: true } as any),\n },\n value: {\n type: \"string\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdOption\",\n });\n\n registerComponentHelper(loader, AntdOptionGroup, {\n name: optionGroupComponentName,\n displayName: \"Option Group\",\n parentComponentName: selectComponentName,\n props: {\n children: {\n type: \"slot\",\n defaultValue: [\n {\n type: \"component\",\n name: \"plasmic-antd5-option\",\n props: {\n value: \"option1\",\n children: {\n type: \"text\",\n value: \"Option 1\",\n },\n },\n },\n {\n type: \"component\",\n name: \"plasmic-antd5-option\",\n props: {\n value: \"option2\",\n children: {\n type: \"text\",\n value: \"Option 1\",\n },\n },\n },\n ],\n },\n label: {\n type: \"slot\",\n defaultValue: \"Group label\",\n },\n },\n importPath: \"@plasmicpkgs/antd5/skinny/registerSelect\",\n importName: \"AntdOptionGroup\",\n });\n}\n"],"names":["Select","React","registerComponentHelper","_a","traverseReactEltTree"],"mappings":"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"}
@@ -90,13 +90,13 @@ function registerSelect(loader) {
90
90
  },
91
91
  value: {
92
92
  type: "string",
93
- hidden: (ps) => ps.type !== "option"
93
+ hidden: (_ps, _ctx, { item }) => item.type !== "option"
94
94
  },
95
95
  label: "string",
96
96
  options: {
97
97
  type: "array",
98
- hidden: (ps) => {
99
- return ps.type !== "option-group";
98
+ hidden: (_ps, _ctx, { item }) => {
99
+ return item.type !== "option-group";
100
100
  },
101
101
  itemType: {
102
102
  type: "object",
@@ -112,11 +112,13 @@ function registerSelect(loader) {
112
112
  defaultValue: [
113
113
  {
114
114
  value: "option1",
115
- label: "Option 1"
115
+ label: "Option 1",
116
+ type: "option"
116
117
  },
117
118
  {
118
119
  value: "option2",
119
- label: "Option 2"
120
+ label: "Option 2",
121
+ type: "option"
120
122
  }
121
123
  ]
122
124
  },
@@ -129,10 +131,7 @@ function registerSelect(loader) {
129
131
  },
130
132
  children: {
131
133
  type: "slot",
132
- allowedComponents: [
133
- optionComponentName,
134
- optionGroupComponentName
135
- ],
134
+ allowedComponents: [optionComponentName, optionGroupComponentName],
136
135
  hidden: (ps) => !ps.useChildren
137
136
  },
138
137
  placeholder: {