@makeswift/runtime 0.18.0-canary.4 → 0.18.0-canary.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/cjs/builder/serialization/control-serialization.js +2 -2
  2. package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
  3. package/dist/cjs/components/builtin/Button/register.js +1 -1
  4. package/dist/cjs/components/builtin/Button/register.js.map +1 -1
  5. package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
  6. package/dist/cjs/components/builtin/Countdown/register.js +4 -4
  7. package/dist/cjs/components/builtin/Countdown/register.js.map +1 -1
  8. package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
  9. package/dist/cjs/components/builtin/Form/register.js +1 -1
  10. package/dist/cjs/components/builtin/Form/register.js.map +1 -1
  11. package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
  12. package/dist/cjs/components/builtin/Image/register.js +13 -14
  13. package/dist/cjs/components/builtin/Image/register.js.map +1 -1
  14. package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
  15. package/dist/cjs/components/builtin/Navigation/register.js +1 -1
  16. package/dist/cjs/components/builtin/Navigation/register.js.map +1 -1
  17. package/dist/cjs/components/builtin/SocialLinks/register.js +16 -6
  18. package/dist/cjs/components/builtin/SocialLinks/register.js.map +1 -1
  19. package/dist/cjs/components/hooks/useTextInputPropControllerData.js +32 -0
  20. package/dist/cjs/components/hooks/useTextInputPropControllerData.js.map +1 -0
  21. package/dist/cjs/controls/control.js +2 -3
  22. package/dist/cjs/controls/control.js.map +1 -1
  23. package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
  24. package/dist/cjs/prop-controllers/descriptors.js +2 -44
  25. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  26. package/dist/cjs/prop-controllers/index.js +2 -7
  27. package/dist/cjs/prop-controllers/index.js.map +1 -1
  28. package/dist/cjs/runtimes/react/controls.js +16 -0
  29. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  30. package/dist/esm/builder/serialization/control-serialization.js +2 -2
  31. package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
  32. package/dist/esm/components/builtin/Button/register.js +2 -1
  33. package/dist/esm/components/builtin/Button/register.js.map +1 -1
  34. package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
  35. package/dist/esm/components/builtin/Countdown/register.js +5 -4
  36. package/dist/esm/components/builtin/Countdown/register.js.map +1 -1
  37. package/dist/esm/components/builtin/Form/Form.js.map +1 -1
  38. package/dist/esm/components/builtin/Form/register.js +2 -1
  39. package/dist/esm/components/builtin/Form/register.js.map +1 -1
  40. package/dist/esm/components/builtin/Image/Image.js.map +1 -1
  41. package/dist/esm/components/builtin/Image/register.js +3 -3
  42. package/dist/esm/components/builtin/Image/register.js.map +1 -1
  43. package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
  44. package/dist/esm/components/builtin/Navigation/register.js +3 -2
  45. package/dist/esm/components/builtin/Navigation/register.js.map +1 -1
  46. package/dist/esm/components/builtin/SocialLinks/register.js +25 -7
  47. package/dist/esm/components/builtin/SocialLinks/register.js.map +1 -1
  48. package/dist/esm/components/hooks/useTextInputPropControllerData.js +10 -0
  49. package/dist/esm/components/hooks/useTextInputPropControllerData.js.map +1 -0
  50. package/dist/esm/controls/control.js +2 -3
  51. package/dist/esm/controls/control.js.map +1 -1
  52. package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
  53. package/dist/esm/prop-controllers/descriptors.js +1 -39
  54. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  55. package/dist/esm/prop-controllers/index.js +1 -4
  56. package/dist/esm/prop-controllers/index.js.map +1 -1
  57. package/dist/esm/runtimes/react/controls.js +25 -2
  58. package/dist/esm/runtimes/react/controls.js.map +1 -1
  59. package/dist/types/builder/serialization/control-serialization.d.ts +5 -4
  60. package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
  61. package/dist/types/components/builtin/Button/register.d.ts.map +1 -1
  62. package/dist/types/components/builtin/Countdown/Countdown.d.ts +5 -5
  63. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  64. package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -1
  65. package/dist/types/components/builtin/Form/Form.d.ts +2 -2
  66. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  67. package/dist/types/components/builtin/Form/register.d.ts.map +1 -1
  68. package/dist/types/components/builtin/Image/Image.d.ts +1 -2
  69. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  70. package/dist/types/components/builtin/Image/register.d.ts.map +1 -1
  71. package/dist/types/components/builtin/Navigation/Navigation.d.ts +2 -2
  72. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  73. package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -1
  74. package/dist/types/components/builtin/SocialLinks/register.d.ts.map +1 -1
  75. package/dist/types/components/hooks/useTextInputPropControllerData.d.ts +3 -0
  76. package/dist/types/components/hooks/useTextInputPropControllerData.d.ts.map +1 -0
  77. package/dist/types/controls/control.d.ts.map +1 -1
  78. package/dist/types/next/components/tests/page-social-links-prop-controller.test.d.ts +3 -0
  79. package/dist/types/next/components/tests/page-social-links-prop-controller.test.d.ts.map +1 -0
  80. package/dist/types/next/components/tests/page-text-input-prop-controller.test.d.ts +3 -0
  81. package/dist/types/next/components/tests/page-text-input-prop-controller.test.d.ts.map +1 -0
  82. package/dist/types/prop-controllers/descriptors.d.ts +6 -61
  83. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  84. package/dist/types/prop-controllers/index.d.ts +1 -2
  85. package/dist/types/prop-controllers/index.d.ts.map +1 -1
  86. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  87. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prop-controllers/descriptors.ts"],"sourcesContent":["import {\n CheckboxControlDefinition,\n IconRadioGroupControlDefinition,\n NumberControlDefinition,\n TextInputControlDefinition,\n TextAreaControlDefinition,\n} from '@makeswift/controls'\nimport { ResponsiveColor } from '../runtimes/react/controls'\nimport { StyleControlFormattedValue } from '../runtimes/react/controls/style'\nimport type { Data } from '../state/react-page'\nimport { NumberControlValue } from '../runtimes/react/controls/number'\nimport { StyleControlType } from '../controls/style'\nimport {\n ColorControlDefinition,\n ComboboxControlDefinition,\n ImageControlDefinition,\n LinkControlDefinition,\n ListControlDefinition,\n SelectControlDefinition,\n ShapeControlDefinition,\n SlotControlDefinition,\n StyleControlDefinition,\n RichTextV2ControlDefinition,\n StyleV2ControlDefinition,\n TypographyControlDefinition,\n} from '../controls'\nimport { TextInputControlValue } from '../runtimes/react/controls/text-input'\nimport { TextAreaControlValue } from '../runtimes/react/controls/text-area'\nimport { ColorControlValue } from '../runtimes/react/controls/color'\nimport { SelectControlValue } from '../runtimes/react/controls/select'\nimport { CheckboxControlValue } from '../runtimes/react/controls/checkbox'\nimport { ResolveImageControlValue } from '../runtimes/react/controls/image'\nimport { ShapeControlValue } from '../runtimes/react/controls/shape'\nimport { ListControlValue } from '../runtimes/react/controls/list'\nimport { ComboboxControlValue } from '../runtimes/react/controls/combobox'\nimport { LinkControlValue } from '../runtimes/react/controls/link'\nimport { SlotControlValue } from '../runtimes/react/controls/slot'\nimport { RichTextControlDefinition } from '../controls/rich-text'\nimport { RichTextControlValue } from '../runtimes/react/controls/rich-text/rich-text'\nimport { RichTextV2ControlValue } from '../runtimes/react/controls/rich-text-v2'\nimport { StyleV2ControlFormattedValue } from '../runtimes/react/controls/style-v2'\nimport { IconRadioGroupControlValue } from '../runtimes/react/controls/icon-radio-group'\nimport { TypographyControlValue } from '../runtimes/react/controls/typography'\nimport {\n BorderDescriptor,\n CheckboxDescriptor,\n LinkDescriptor,\n ResolveLinkPropControllerValue,\n Types as PropControllerTypes,\n ResponsiveValueType,\n ShadowsDescriptor,\n ResolveShadowsPropControllerValue,\n ResponsiveValue,\n Options,\n ResponsiveLengthDescriptor,\n ResolveResponsiveLengthPropControllerValue,\n NumberDescriptor,\n ResolveNumberPropControllerValue,\n ResponsiveColorDescriptor,\n ResolveCheckboxPropControllerValue,\n BorderRadiusDescriptor,\n ResolveBorderPropControllerValue,\n ResolveBorderRadiusPropControllerValue,\n DateDescriptor,\n ResolveDatePropControllerValue,\n FontDescriptor,\n ResolveFontPropControllerValue,\n VideoDescriptor,\n ResolveVideoPropControllerValue,\n TableDescriptor,\n ResolveTablePropControllerValue,\n MarginDescriptor,\n ResolveMarginPropControllerValue,\n PaddingDescriptor,\n ResolvePaddingPropControllerValue,\n WidthDescriptor,\n ResolveWidthPropControllerValue,\n TextStyleDescriptor,\n ResolveTextStylePropControllerValue,\n NavigationLinksDescriptor,\n ResolveNavigationLinksPropControllerValue,\n TextAreaDescriptor,\n ResolveTextAreaPropControllerValue,\n GapX,\n ResponsiveNumber,\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n ElementIDDescriptor,\n ResolveElementIDPropControllerValue,\n TableFormFieldsDescriptor,\n ResolveTableFormFieldsPropControllerValue,\n GridDescriptor,\n ResolveGridPropControllerValue,\n ImageDescriptor,\n ResolveImagePropControllerValue,\n ImagesDescriptor,\n ResolveImagesPropControllerValue,\n BackgroundsDescriptor,\n ResolveBackgroundsPropControllerValue,\n type Descriptor as PropDescriptor,\n type Value as PropValue,\n ResponsiveOpacity,\n} from '@makeswift/prop-controllers'\nimport { DeletedPropControllerDescriptor } from './deleted'\n\nexport type { Data }\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\nexport type Gap = { value: number; unit: 'px' }\n\nexport const Types = {\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveSelect: 'ResponsiveSelect',\n SocialLinks: 'SocialLinks',\n TextInput: 'TextInput',\n Style: StyleControlType,\n} as const\n\nexport type IconRadioGroupOption<T extends string> = { value: T; label: string; icon: IconName }\n\nexport type ResponsiveIconRadioGroupValue<T extends string = string> = ResponsiveValue<T>\n\nexport type ResponsiveIconRadioGroupOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> = ResponsiveIconRadioGroupValue<string>,\n> = {\n type: typeof Types.ResponsiveIconRadioGroup\n options: ResponsiveIconRadioGroupOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveIconRadioGroup<_T extends string, T extends _T, U extends T>(\n options: ResponsiveIconRadioGroupOptions<T, U>,\n): ResponsiveIconRadioGroupDescriptor<ResponsiveIconRadioGroupValue<T>> {\n return { type: Types.ResponsiveIconRadioGroup, options }\n}\n\nexport type ResponsiveSelectValue<T extends string = string> = ResponsiveValue<T>\n\nexport type SelectLabelOrientation = 'vertical' | 'horizontal'\n\nexport type SelectOption<T extends string> = { value: T; label: string }\n\nexport type ResponsiveSelectOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> = ResponsiveSelectValue<string>,\n> = {\n type: typeof Types.ResponsiveSelect\n options: ResponsiveSelectOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveSelect<_T extends string, T extends _T, U extends T>(\n options: ResponsiveSelectOptions<T, U>,\n): ResponsiveSelectDescriptor<ResponsiveSelectValue<T>> {\n return { type: Types.ResponsiveSelect, options }\n}\n\nexport const socialLinkTypesV0 = [\n 'angellist',\n 'codepen',\n 'discord',\n 'dribbble',\n 'facebook',\n 'github',\n 'instagram',\n 'linkedin',\n 'medium',\n 'pinterest',\n 'reddit',\n 'rss',\n 'snapchat',\n 'soundcloud',\n 'spotify',\n 'telegram',\n 'tumblr',\n 'twitch',\n 'twitter',\n 'vimeo',\n 'whatsapp',\n 'yelp',\n 'youtube',\n] as const\n\ntype SocialLinkTypeV0 = typeof socialLinkTypesV0[number]\n\nexport const socialLinkTypesV1 = [...socialLinkTypesV0, 'x', 'slack'] as const\n\ntype SocialLinkTypeV1 = typeof socialLinkTypesV1[number]\n\ntype SocialLinkV0 = { type: SocialLinkTypeV0; url: string }\n\ntype SocialLinkV1 = { type: SocialLinkTypeV1; url: string }\n\ntype SocialLinksLinkV0 = { id: string; payload: SocialLinkV0 }\n\ntype SocialLinksLinkV1 = { id: string; payload: SocialLinkV1 }\n\ntype SocialLinksValueV0 = { links: SocialLinksLinkV0[]; openInNewTab: boolean }\n\ntype SocialLinksValueV1 = { links: SocialLinksLinkV1[]; openInNewTab: boolean }\n\nexport type SocialLinksValue = SocialLinksValueV0 | SocialLinksValueV1\n\ntype SocialLinksOptions = Options<{ preset?: SocialLinksValueV1 }>\n\nexport type SocialLinksDescriptor<_T = SocialLinksValueV1> = {\n type: typeof Types.SocialLinks\n options: SocialLinksOptions\n version?: 1\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function SocialLinks(options: SocialLinksOptions = {}): SocialLinksDescriptor {\n return { type: Types.SocialLinks, options, version: 1 }\n}\n\nexport type TextInputValue = string\n\nexport type TextInputOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\nexport type TextInputDescriptor<_T = TextInputValue> = {\n type: typeof Types.TextInput\n options: TextInputOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function TextInput(options: TextInputOptions = {}): TextInputDescriptor {\n return { type: Types.TextInput, options }\n}\n\nexport type Descriptor<T extends Data = Data> =\n | DeletedPropControllerDescriptor<T>\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | PropDescriptor<typeof GapX>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | MarginDescriptor<T>\n | NavigationLinksDescriptor<T>\n | NumberDescriptor<T>\n | PaddingDescriptor<T>\n | ResponsiveColorDescriptor<T>\n | ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> ? T : ResponsiveIconRadioGroupValue<string>\n >\n | ResponsiveLengthDescriptor<T>\n | PropDescriptor<typeof ResponsiveNumber>\n | PropDescriptor<typeof ResponsiveOpacity>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | ShadowsDescriptor<T>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TextAreaDescriptor<T>\n | TextInputDescriptor<T>\n | TextStyleDescriptor<T>\n | VideoDescriptor<T>\n | WidthDescriptor<T>\n | StyleControlDefinition\n | StyleV2ControlDefinition\n | NumberControlDefinition\n | CheckboxControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | IconRadioGroupControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | LinkControlDefinition\n | SlotControlDefinition\n | RichTextControlDefinition\n | RichTextV2ControlDefinition\n | TypographyControlDefinition\n\nexport type PanelDescriptorType =\n | typeof PropControllerTypes.Backgrounds\n | typeof Types.ResponsiveIconRadioGroup\n | typeof PropControllerTypes.Margin\n | typeof PropControllerTypes.Padding\n | typeof PropControllerTypes.Shadows\n | typeof PropControllerTypes.Border\n | typeof PropControllerTypes.GapY\n | typeof PropControllerTypes.GapX\n | typeof PropControllerTypes.BorderRadius\n | typeof PropControllerTypes.Checkbox\n | typeof Types.TextInput\n | typeof PropControllerTypes.Link\n | typeof Types.ResponsiveSelect\n | typeof PropControllerTypes.ResponsiveColor\n | typeof PropControllerTypes.TextStyle\n | typeof PropControllerTypes.Images\n | typeof PropControllerTypes.ResponsiveNumber\n | typeof PropControllerTypes.Number\n | typeof PropControllerTypes.Date\n | typeof PropControllerTypes.Font\n | typeof PropControllerTypes.TextArea\n | typeof PropControllerTypes.Table\n | typeof PropControllerTypes.Image\n | typeof PropControllerTypes.ResponsiveOpacity\n | typeof Types.SocialLinks\n | typeof PropControllerTypes.Video\n | typeof PropControllerTypes.NavigationLinks\n\nexport type PanelDescriptor<T extends Data = Data> = Extract<\n Descriptor<T>,\n { type: PanelDescriptorType }\n>\n\nexport type DescriptorValueType<T extends Descriptor> = T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : T['type'] extends typeof PropControllerTypes.ResponsiveColor\n ? // TODO(miguel): We're not importing a resolver type from `@makeswift/prop-controllers` because\n // the resolved type is tightly coupled with the runtime (i.e., it's the result of an API call).\n // This means that we probably want to rethink how types are resolved and where that lives.\n ResponsiveColor | null | undefined\n : T['type'] extends typeof PropControllerTypes.Backgrounds\n ? ResolveBackgroundsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.Backgrounds }>\n >\n : T['type'] extends typeof PropControllerTypes.Checkbox\n ? ResolveCheckboxPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Checkbox }>>\n : T['type'] extends typeof PropControllerTypes.Date\n ? ResolveDatePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Date }>>\n : T['type'] extends typeof PropControllerTypes.ElementID\n ? ResolveElementIDPropControllerValue<Extract<T, { type: typeof PropControllerTypes.ElementID }>>\n : T['type'] extends typeof PropControllerTypes.Font\n ? ResolveFontPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Font }>>\n : T['type'] extends typeof PropControllerTypes.GapX\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.GapY\n ? ResolveGapYPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapY }>>\n : T['type'] extends typeof PropControllerTypes.Grid\n ? ResolveGridPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Grid }>>\n : T['type'] extends typeof PropControllerTypes.Image\n ? ResolveImagePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Image }>>\n : T['type'] extends typeof PropControllerTypes.Images\n ? ResolveImagesPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Images }>>\n : T['type'] extends typeof PropControllerTypes.ResponsiveNumber\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.ResponsiveOpacity\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.Link\n ? ResolveLinkPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Link }>>\n : T['type'] extends typeof PropControllerTypes.Width\n ? ResolveWidthPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Width }>>\n : T['type'] extends typeof PropControllerTypes.Padding\n ? ResolvePaddingPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Padding }>>\n : T['type'] extends typeof PropControllerTypes.Margin\n ? ResolveMarginPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Margin }>>\n : T['type'] extends typeof PropControllerTypes.NavigationLinks\n ? ResolveNavigationLinksPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.NavigationLinks }>\n >\n : T['type'] extends typeof PropControllerTypes.BorderRadius\n ? ResolveBorderRadiusPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.BorderRadius }>\n >\n : T['type'] extends typeof PropControllerTypes.Shadows\n ? ResolveShadowsPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Shadows }>>\n : T['type'] extends typeof PropControllerTypes.ResponsiveLength\n ? ResolveResponsiveLengthPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.ResponsiveLength }>\n >\n : T['type'] extends typeof PropControllerTypes.Border\n ? ResolveBorderPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Border }>>\n : T['type'] extends typeof PropControllerTypes.Number\n ? ResolveNumberPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Number }>>\n : T['type'] extends typeof PropControllerTypes.Table\n ? ResolveTablePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Table }>>\n : T['type'] extends typeof PropControllerTypes.TableFormFields\n ? ResolveTableFormFieldsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.TableFormFields }>\n >\n : T['type'] extends typeof PropControllerTypes.TextStyle\n ? ResolveTextStylePropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextStyle }>>\n : T['type'] extends typeof PropControllerTypes.TextArea\n ? ResolveTextAreaPropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextArea }>>\n : T['type'] extends typeof PropControllerTypes.Video\n ? ResolveVideoPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Video }>>\n : T extends Descriptor<infer U>\n ? U | undefined\n : never\n\nexport type PanelDescriptorValueType<T extends PanelDescriptor> = T extends PanelDescriptor<infer U>\n ? U\n : never\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,IAAAA,gBAAiC;AAiI1B,MAAM,QAAQ;AAAA,EACnB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO;AACT;AA4BO,SAAS,yBACd,SACsE;AACtE,SAAO,EAAE,MAAM,MAAM,0BAA0B,QAAQ;AACzD;AA+BO,SAAS,iBACd,SACsD;AACtD,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;AAEO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,oBAAoB,CAAC,GAAG,mBAAmB,KAAK,OAAO;AA8B7D,SAAS,YAAY,UAA8B,CAAC,GAA0B;AACnF,SAAO,EAAE,MAAM,MAAM,aAAa,SAAS,SAAS,EAAE;AACxD;AAeO,SAAS,UAAU,UAA4B,CAAC,GAAwB;AAC7E,SAAO,EAAE,MAAM,MAAM,WAAW,QAAQ;AAC1C;","names":["import_style"]}
1
+ {"version":3,"sources":["../../../src/prop-controllers/descriptors.ts"],"sourcesContent":["import {\n CheckboxControlDefinition,\n IconRadioGroupControlDefinition,\n NumberControlDefinition,\n TextInputControlDefinition,\n TextAreaControlDefinition,\n} from '@makeswift/controls'\nimport { ResponsiveColor } from '../runtimes/react/controls'\nimport { StyleControlFormattedValue } from '../runtimes/react/controls/style'\nimport type { Data } from '../state/react-page'\nimport { NumberControlValue } from '../runtimes/react/controls/number'\nimport { StyleControlType } from '../controls/style'\nimport {\n ColorControlDefinition,\n ComboboxControlDefinition,\n ImageControlDefinition,\n LinkControlDefinition,\n ListControlDefinition,\n SelectControlDefinition,\n ShapeControlDefinition,\n SlotControlDefinition,\n StyleControlDefinition,\n RichTextV2ControlDefinition,\n StyleV2ControlDefinition,\n TypographyControlDefinition,\n} from '../controls'\nimport { TextInputControlValue } from '../runtimes/react/controls/text-input'\nimport { TextAreaControlValue } from '../runtimes/react/controls/text-area'\nimport { ColorControlValue } from '../runtimes/react/controls/color'\nimport { SelectControlValue } from '../runtimes/react/controls/select'\nimport { CheckboxControlValue } from '../runtimes/react/controls/checkbox'\nimport { ResolveImageControlValue } from '../runtimes/react/controls/image'\nimport { ShapeControlValue } from '../runtimes/react/controls/shape'\nimport { ListControlValue } from '../runtimes/react/controls/list'\nimport { ComboboxControlValue } from '../runtimes/react/controls/combobox'\nimport { LinkControlValue } from '../runtimes/react/controls/link'\nimport { SlotControlValue } from '../runtimes/react/controls/slot'\nimport { RichTextControlDefinition } from '../controls/rich-text'\nimport { RichTextControlValue } from '../runtimes/react/controls/rich-text/rich-text'\nimport { RichTextV2ControlValue } from '../runtimes/react/controls/rich-text-v2'\nimport { StyleV2ControlFormattedValue } from '../runtimes/react/controls/style-v2'\nimport { IconRadioGroupControlValue } from '../runtimes/react/controls/icon-radio-group'\nimport { TypographyControlValue } from '../runtimes/react/controls/typography'\nimport {\n BorderDescriptor,\n CheckboxDescriptor,\n LinkDescriptor,\n ResolveLinkPropControllerValue,\n Types as PropControllerTypes,\n ResponsiveValueType,\n ShadowsDescriptor,\n ResolveShadowsPropControllerValue,\n ResponsiveValue,\n Options,\n ResponsiveLengthDescriptor,\n ResolveResponsiveLengthPropControllerValue,\n NumberDescriptor,\n ResolveNumberPropControllerValue,\n ResponsiveColorDescriptor,\n ResolveCheckboxPropControllerValue,\n BorderRadiusDescriptor,\n ResolveBorderPropControllerValue,\n ResolveBorderRadiusPropControllerValue,\n DateDescriptor,\n ResolveDatePropControllerValue,\n FontDescriptor,\n ResolveFontPropControllerValue,\n VideoDescriptor,\n ResolveVideoPropControllerValue,\n TableDescriptor,\n ResolveTablePropControllerValue,\n MarginDescriptor,\n ResolveMarginPropControllerValue,\n PaddingDescriptor,\n ResolvePaddingPropControllerValue,\n WidthDescriptor,\n ResolveWidthPropControllerValue,\n TextStyleDescriptor,\n ResolveTextStylePropControllerValue,\n NavigationLinksDescriptor,\n ResolveNavigationLinksPropControllerValue,\n TextAreaDescriptor,\n ResolveTextAreaPropControllerValue,\n GapX,\n ResponsiveNumber,\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n ElementIDDescriptor,\n ResolveElementIDPropControllerValue,\n TableFormFieldsDescriptor,\n ResolveTableFormFieldsPropControllerValue,\n GridDescriptor,\n ResolveGridPropControllerValue,\n ImageDescriptor,\n ResolveImagePropControllerValue,\n ImagesDescriptor,\n ResolveImagesPropControllerValue,\n BackgroundsDescriptor,\n ResolveBackgroundsPropControllerValue,\n type Descriptor as PropDescriptor,\n type Value as PropValue,\n ResponsiveOpacity,\n ResolveSocialLinksPropControllerValue,\n SocialLinksDescriptor,\n TextInputDescriptor,\n ResolveTextInputPropControllerValue,\n} from '@makeswift/prop-controllers'\nimport { DeletedPropControllerDescriptor } from './deleted'\n\nexport type { Data }\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\nexport type Gap = { value: number; unit: 'px' }\n\nexport const Types = {\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveSelect: 'ResponsiveSelect',\n Style: StyleControlType,\n} as const\n\nexport type IconRadioGroupOption<T extends string> = { value: T; label: string; icon: IconName }\n\nexport type ResponsiveIconRadioGroupValue<T extends string = string> = ResponsiveValue<T>\n\nexport type ResponsiveIconRadioGroupOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> = ResponsiveIconRadioGroupValue<string>,\n> = {\n type: typeof Types.ResponsiveIconRadioGroup\n options: ResponsiveIconRadioGroupOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveIconRadioGroup<_T extends string, T extends _T, U extends T>(\n options: ResponsiveIconRadioGroupOptions<T, U>,\n): ResponsiveIconRadioGroupDescriptor<ResponsiveIconRadioGroupValue<T>> {\n return { type: Types.ResponsiveIconRadioGroup, options }\n}\n\nexport type ResponsiveSelectValue<T extends string = string> = ResponsiveValue<T>\n\nexport type SelectLabelOrientation = 'vertical' | 'horizontal'\n\nexport type SelectOption<T extends string> = { value: T; label: string }\n\nexport type ResponsiveSelectOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> = ResponsiveSelectValue<string>,\n> = {\n type: typeof Types.ResponsiveSelect\n options: ResponsiveSelectOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveSelect<_T extends string, T extends _T, U extends T>(\n options: ResponsiveSelectOptions<T, U>,\n): ResponsiveSelectDescriptor<ResponsiveSelectValue<T>> {\n return { type: Types.ResponsiveSelect, options }\n}\n\nexport type Descriptor<T extends Data = Data> =\n | DeletedPropControllerDescriptor<T>\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | PropDescriptor<typeof GapX>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | MarginDescriptor<T>\n | NavigationLinksDescriptor<T>\n | NumberDescriptor<T>\n | PaddingDescriptor<T>\n | ResponsiveColorDescriptor<T>\n | ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> ? T : ResponsiveIconRadioGroupValue<string>\n >\n | ResponsiveLengthDescriptor<T>\n | PropDescriptor<typeof ResponsiveNumber>\n | PropDescriptor<typeof ResponsiveOpacity>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | ShadowsDescriptor<T>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TextAreaDescriptor<T>\n | TextInputDescriptor<T>\n | TextStyleDescriptor<T>\n | VideoDescriptor<T>\n | WidthDescriptor<T>\n | StyleControlDefinition\n | StyleV2ControlDefinition\n | NumberControlDefinition\n | CheckboxControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | IconRadioGroupControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | LinkControlDefinition\n | SlotControlDefinition\n | RichTextControlDefinition\n | RichTextV2ControlDefinition\n | TypographyControlDefinition\n\nexport type PanelDescriptorType =\n | typeof PropControllerTypes.Backgrounds\n | typeof Types.ResponsiveIconRadioGroup\n | typeof PropControllerTypes.Margin\n | typeof PropControllerTypes.Padding\n | typeof PropControllerTypes.Shadows\n | typeof PropControllerTypes.Border\n | typeof PropControllerTypes.GapY\n | typeof PropControllerTypes.GapX\n | typeof PropControllerTypes.BorderRadius\n | typeof PropControllerTypes.Checkbox\n | typeof PropControllerTypes.TextInput\n | typeof PropControllerTypes.Link\n | typeof Types.ResponsiveSelect\n | typeof PropControllerTypes.ResponsiveColor\n | typeof PropControllerTypes.TextStyle\n | typeof PropControllerTypes.Images\n | typeof PropControllerTypes.ResponsiveNumber\n | typeof PropControllerTypes.Number\n | typeof PropControllerTypes.Date\n | typeof PropControllerTypes.Font\n | typeof PropControllerTypes.TextArea\n | typeof PropControllerTypes.Table\n | typeof PropControllerTypes.Image\n | typeof PropControllerTypes.ResponsiveOpacity\n | typeof PropControllerTypes.SocialLinks\n | typeof PropControllerTypes.Video\n | typeof PropControllerTypes.NavigationLinks\n\nexport type PanelDescriptor<T extends Data = Data> = Extract<\n Descriptor<T>,\n { type: PanelDescriptorType }\n>\n\nexport type DescriptorValueType<T extends Descriptor> = T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : T['type'] extends typeof PropControllerTypes.ResponsiveColor\n ? // TODO(miguel): We're not importing a resolver type from `@makeswift/prop-controllers` because\n // the resolved type is tightly coupled with the runtime (i.e., it's the result of an API call).\n // This means that we probably want to rethink how types are resolved and where that lives.\n ResponsiveColor | null | undefined\n : T['type'] extends typeof PropControllerTypes.Backgrounds\n ? ResolveBackgroundsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.Backgrounds }>\n >\n : T['type'] extends typeof PropControllerTypes.Checkbox\n ? ResolveCheckboxPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Checkbox }>>\n : T['type'] extends typeof PropControllerTypes.Date\n ? ResolveDatePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Date }>>\n : T['type'] extends typeof PropControllerTypes.ElementID\n ? ResolveElementIDPropControllerValue<Extract<T, { type: typeof PropControllerTypes.ElementID }>>\n : T['type'] extends typeof PropControllerTypes.Font\n ? ResolveFontPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Font }>>\n : T['type'] extends typeof PropControllerTypes.GapX\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.GapY\n ? ResolveGapYPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapY }>>\n : T['type'] extends typeof PropControllerTypes.Grid\n ? ResolveGridPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Grid }>>\n : T['type'] extends typeof PropControllerTypes.Image\n ? ResolveImagePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Image }>>\n : T['type'] extends typeof PropControllerTypes.Images\n ? ResolveImagesPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Images }>>\n : T['type'] extends typeof PropControllerTypes.ResponsiveNumber\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.ResponsiveOpacity\n ? PropValue<T> | undefined\n : T['type'] extends typeof PropControllerTypes.Link\n ? ResolveLinkPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Link }>>\n : T['type'] extends typeof PropControllerTypes.Width\n ? ResolveWidthPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Width }>>\n : T['type'] extends typeof PropControllerTypes.Padding\n ? ResolvePaddingPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Padding }>>\n : T['type'] extends typeof PropControllerTypes.Margin\n ? ResolveMarginPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Margin }>>\n : T['type'] extends typeof PropControllerTypes.NavigationLinks\n ? ResolveNavigationLinksPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.NavigationLinks }>\n >\n : T['type'] extends typeof PropControllerTypes.BorderRadius\n ? ResolveBorderRadiusPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.BorderRadius }>\n >\n : T['type'] extends typeof PropControllerTypes.Shadows\n ? ResolveShadowsPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Shadows }>>\n : T['type'] extends typeof PropControllerTypes.SocialLinks\n ? ResolveSocialLinksPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.SocialLinks }>\n >\n : T['type'] extends typeof PropControllerTypes.ResponsiveLength\n ? ResolveResponsiveLengthPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.ResponsiveLength }>\n >\n : T['type'] extends typeof PropControllerTypes.Border\n ? ResolveBorderPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Border }>>\n : T['type'] extends typeof PropControllerTypes.Number\n ? ResolveNumberPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Number }>>\n : T['type'] extends typeof PropControllerTypes.Table\n ? ResolveTablePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Table }>>\n : T['type'] extends typeof PropControllerTypes.TableFormFields\n ? ResolveTableFormFieldsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.TableFormFields }>\n >\n : T['type'] extends typeof PropControllerTypes.TextStyle\n ? ResolveTextStylePropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextStyle }>>\n : T['type'] extends typeof PropControllerTypes.TextArea\n ? ResolveTextAreaPropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextArea }>>\n : T['type'] extends typeof PropControllerTypes.TextInput\n ? ResolveTextInputPropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextInput }>>\n : T['type'] extends typeof PropControllerTypes.Video\n ? ResolveVideoPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Video }>>\n : T extends Descriptor<infer U>\n ? U | undefined\n : never\n\nexport type PanelDescriptorValueType<T extends PanelDescriptor> = T extends PanelDescriptor<infer U>\n ? U\n : never\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,IAAAA,gBAAiC;AAqI1B,MAAM,QAAQ;AAAA,EACnB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,OAAO;AACT;AA4BO,SAAS,yBACd,SACsE;AACtE,SAAO,EAAE,MAAM,MAAM,0BAA0B,QAAQ;AACzD;AA+BO,SAAS,iBACd,SACsD;AACtD,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;","names":["import_style"]}
@@ -32,12 +32,9 @@ __export(prop_controllers_exports, {
32
32
  Introspection: () => Introspection,
33
33
  Props: () => Props,
34
34
  RichTextPropControllerMessageType: () => import_instances.RichTextPropControllerMessageType,
35
- TableFormFieldsMessageType: () => import_instances.TableFormFieldsMessageType,
36
- socialLinkTypesV0: () => import_descriptors.socialLinkTypesV0,
37
- socialLinkTypesV1: () => import_descriptors.socialLinkTypesV1
35
+ TableFormFieldsMessageType: () => import_instances.TableFormFieldsMessageType
38
36
  });
39
37
  module.exports = __toCommonJS(prop_controllers_exports);
40
- var import_descriptors = require("./descriptors");
41
38
  var Props = __toESM(require("./descriptors"));
42
39
  var import_instances = require("./instances");
43
40
  var Introspection = __toESM(require("./introspection"));
@@ -48,8 +45,6 @@ var import_deleted = require("./deleted");
48
45
  Introspection,
49
46
  Props,
50
47
  RichTextPropControllerMessageType,
51
- TableFormFieldsMessageType,
52
- socialLinkTypesV0,
53
- socialLinkTypesV1
48
+ TableFormFieldsMessageType
54
49
  });
55
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prop-controllers/index.ts"],"sourcesContent":["export type {\n Data,\n Descriptor as PropControllerDescriptor,\n DescriptorValueType as PropControllerDescriptorValueType,\n ResponsiveIconRadioGroupDescriptor,\n ResponsiveIconRadioGroupValue,\n ResponsiveSelectDescriptor,\n ResponsiveSelectValue,\n TextInputDescriptor,\n TextInputValue,\n PanelDescriptor,\n PanelDescriptorType,\n PanelDescriptorValueType,\n SocialLinksDescriptor,\n SocialLinksValue,\n} from './descriptors'\nexport type {\n ResponsiveValueType,\n Device,\n DeviceOverride,\n ResponsiveValue,\n} from '@makeswift/prop-controllers'\nexport { socialLinkTypesV0, socialLinkTypesV1 } from './descriptors'\nexport * as Props from './descriptors'\nexport type {\n PropControllerMessage,\n RichTextPropControllerMessage,\n TableFormFieldsMessage,\n} from './instances'\nexport { RichTextPropControllerMessageType, TableFormFieldsMessageType } from './instances'\nexport * as Introspection from './introspection'\nexport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA,yBAAqD;AACrD,YAAuB;AAMvB,uBAA8E;AAC9E,oBAA+B;AAC/B,qBAA8C;","names":[]}
1
+ {"version":3,"sources":["../../../src/prop-controllers/index.ts"],"sourcesContent":["export type {\n Data,\n Descriptor as PropControllerDescriptor,\n DescriptorValueType as PropControllerDescriptorValueType,\n ResponsiveIconRadioGroupDescriptor,\n ResponsiveIconRadioGroupValue,\n ResponsiveSelectDescriptor,\n ResponsiveSelectValue,\n PanelDescriptor,\n PanelDescriptorType,\n PanelDescriptorValueType,\n} from './descriptors'\nexport type {\n ResponsiveValueType,\n Device,\n DeviceOverride,\n ResponsiveValue,\n} from '@makeswift/prop-controllers'\nexport * as Props from './descriptors'\nexport type {\n PropControllerMessage,\n RichTextPropControllerMessage,\n TableFormFieldsMessage,\n} from './instances'\nexport { RichTextPropControllerMessageType, TableFormFieldsMessageType } from './instances'\nexport * as Introspection from './introspection'\nexport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA,YAAuB;AAMvB,uBAA8E;AAC9E,oBAA+B;AAC/B,qBAA8C;","names":[]}
@@ -66,6 +66,7 @@ var import_useGridPropControllerData = require("../../components/hooks/useGridPr
66
66
  var import_useImagePropControllerData = require("../../components/hooks/useImagePropControllerData");
67
67
  var import_useImagesPropControllerData = require("../../components/hooks/useImagesPropControllerData");
68
68
  var import_useBackgroundsPropControllerData = require("../../components/hooks/useBackgroundsPropControllerData");
69
+ var import_useTextInputPropControllerData = require("../../components/hooks/useTextInputPropControllerData");
69
70
  function useWidthStyle(data, descriptor) {
70
71
  const value = (0, import_prop_controllers.getWidthPropControllerDataResponsiveLengthData)(data);
71
72
  return (0, import_use_style.useStyle)((0, import_responsive_style.useResponsiveWidth)(value, descriptor.options.defaultValue));
@@ -452,6 +453,16 @@ function PropsValue({ element, children }) {
452
453
  },
453
454
  descriptor.type
454
455
  );
456
+ case import_prop_controllers.Types.TextInput:
457
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
458
+ import_components.RenderHook,
459
+ {
460
+ hook: import_useTextInputPropControllerData.useTextInputPropControllerData,
461
+ parameters: [props[propName]],
462
+ children: (value) => renderFn({ ...propsValue, [propName]: value })
463
+ },
464
+ descriptor.type
465
+ );
455
466
  case import_prop_controllers.Types.TextArea:
456
467
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
457
468
  import_components.RenderHook,
@@ -502,6 +513,11 @@ function PropsValue({ element, children }) {
502
513
  },
503
514
  descriptor.type
504
515
  );
516
+ case import_prop_controllers.Types.SocialLinks:
517
+ return renderFn({
518
+ ...propsValue,
519
+ [propName]: (0, import_prop_controllers.getSocialLinksPropControllerDataSocialLinksData)(props[propName])
520
+ });
505
521
  case import_prop_controllers.Types.Grid:
506
522
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
507
523
  import_components.RenderHook,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/runtimes/react/controls.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { CheckboxControlType, IconRadioGroupControlType, NumberControlType, TextInputControlType, TextAreaControlType } from '@makeswift/controls'\n\nimport * as ReactPage from '../../state/react-page'\n\nimport {\n useBoxShadow,\n useBorder as useBorderData,\n useLinkPropControllerData,\n useCheckboxPropControllerData,\n useDatePropControllerData,\n useFontPropControllerData,\n useVideoPropControllerData,\n useTablePropControllerData,\n} from '../../components/hooks'\nimport type { ColorValue } from '../../components/utils/types'\nimport {\n useResponsiveBorder,\n useResponsiveBorderRadius,\n useResponsiveMargin,\n useResponsivePadding,\n useResponsiveShadow,\n useResponsiveWidth,\n} from '../../components/utils/responsive-style'\nimport {\n ColorControlType,\n ComboboxControlType,\n ImageControlType,\n LinkControlType,\n ListControlType,\n SelectControlType,\n ShapeControlType,\n SlotControl,\n SlotControlType,\n StyleControlType,\n RichTextControl,\n RichTextControlType,\n StyleControl,\n RichTextV2Control,\n RichTextV2ControlType,\n StyleV2ControlType,\n TypographyControlType,\n} from '../../controls'\nimport { useFormattedStyle } from './controls/style'\nimport { ControlValue } from './controls/control'\nimport { RenderHook } from './components'\nimport { useSlot } from './controls/slot'\nimport { useStyle } from './use-style'\nimport { useRichText } from './controls/rich-text/rich-text'\nimport { useRichTextV2 } from './controls/rich-text-v2'\nimport { useStore } from './hooks/use-store'\nimport { useDocumentKey } from './hooks/use-document-key'\nimport { useSelector } from './hooks/use-selector'\nimport {\n Types as PropControllerTypes,\n getShadowsPropControllerDataResponsiveShadowsData,\n ShadowsPropControllerData,\n Shadows,\n ResponsiveValue,\n BorderPropControllerFormat,\n ResponsiveBorderData,\n BorderPropControllerData,\n getBorderPropControllerDataResponsiveBorderData,\n getBorderRadiusPropControllerDataResponsiveBorderRadiusData,\n BorderRadiusPropControllerData,\n BorderRadiusPropControllerFormat,\n MarginPropControllerFormat,\n MarginPropControllerData,\n getMarginPropControllerDataResponsiveMarginData,\n PaddingPropControllerData,\n getPaddingPropControllerDataResponsivePaddingData,\n PaddingPropControllerFormat,\n WidthPropControllerData,\n getWidthPropControllerDataResponsiveLengthData,\n WidthPropControllerFormat,\n WidthDescriptor,\n GapX,\n ResponsiveNumber,\n ResponsiveOpacity,\n} from '@makeswift/prop-controllers'\nimport { useResponsiveLengthPropControllerData } from '../../components/hooks/useResponsiveLengthPropControllerData'\nimport { useNumberPropControllerData } from '../../components/hooks/useNumberPropControllerData'\nimport { useResponsiveColorPropControllerData } from '../../components/hooks/useResponsiveColorPropControllerData'\nimport { useTextStylePropControllerData } from '../../components/hooks/useTextStylePropControllerData'\nimport { useNavigationLinksPropControllerData } from '../../components/hooks/useNavigationLinksPropControllerData'\nimport { useTextAreaPropControllerData } from '../../components/hooks/useTextAreaPropControllerData'\nimport { usePropValue } from '../../components/hooks/usePropValue'\nimport { useGapYPropControllerData } from '../../components/hooks/useGapYPropControllerData'\nimport { useElementIDPropControllerData } from '../../components/hooks/useElementIDPropControllerData'\nimport { useTableFormFieldsPropControllerData } from '../../components/hooks/useTableFormFieldsPropControllerData'\nimport { useGridPropControllerData } from '../../components/hooks/useGridPropControllerData'\nimport { useImagePropControllerData } from '../../components/hooks/useImagePropControllerData'\nimport { useImagesPropControllerData } from '../../components/hooks/useImagesPropControllerData'\nimport { useBackgroundsPropControllerData } from '../../components/hooks/useBackgroundsPropControllerData'\n\nexport type ResponsiveColor = ResponsiveValue<ColorValue>\n\nfunction useWidthStyle(\n data: WidthPropControllerData | undefined,\n descriptor: WidthDescriptor,\n): string {\n const value = getWidthPropControllerDataResponsiveLengthData(data)\n\n return useStyle(useResponsiveWidth(value, descriptor.options.defaultValue))\n}\n\nfunction usePaddingStyle(data: PaddingPropControllerData | undefined): string {\n const value = getPaddingPropControllerDataResponsivePaddingData(data)\n\n return useStyle(useResponsivePadding(value))\n}\n\nfunction useMarginStyle(data: MarginPropControllerData | undefined): string {\n const value = getMarginPropControllerDataResponsiveMarginData(data)\n\n return useStyle(useResponsiveMargin(value))\n}\n\nexport function useBorderRadiusStyle(data: BorderRadiusPropControllerData | undefined): string {\n const value = getBorderRadiusPropControllerDataResponsiveBorderRadiusData(data)\n\n return useStyle(useResponsiveBorderRadius(value))\n}\n\nexport function useShadowsStyle(data: ShadowsPropControllerData | undefined): string {\n return useStyle(useResponsiveShadow(useBoxShadow(data) ?? undefined))\n}\n\nexport function useBorderStyle(\n data: BorderPropControllerData | undefined,\n): string | ResponsiveBorderData | undefined {\n const value = getBorderPropControllerDataResponsiveBorderData(data)\n const borderData = useBorderData(value)\n\n return useStyle(useResponsiveBorder(borderData ?? undefined))\n}\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): JSX.Element\n}\n\nexport function PropsValue({ element, children }: PropsValueProps): JSX.Element {\n const store = useStore()\n const propControllerDescriptorsRef = useRef(\n ReactPage.getComponentPropControllerDescriptors(store.getState(), element.type) ?? {},\n )\n const props = element.props as Record<string, any>\n const documentKey = useDocumentKey()\n\n const propControllers = useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, documentKey, element.key)\n })\n\n return Object.entries(propControllerDescriptorsRef.current).reduceRight(\n (renderFn, [propName, descriptor]) =>\n propsValue => {\n switch (descriptor.type) {\n case CheckboxControlType:\n case NumberControlType:\n case TextInputControlType:\n case TextAreaControlType:\n case SelectControlType:\n case ColorControlType:\n case IconRadioGroupControlType:\n case ImageControlType:\n case ComboboxControlType:\n case ShapeControlType:\n case ListControlType:\n case LinkControlType:\n case StyleV2ControlType:\n case TypographyControlType:\n return (\n <ControlValue\n definition={descriptor}\n data={props[propName]}\n control={propControllers?.[propName]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </ControlValue>\n )\n\n case StyleControlType: {\n const control = (propControllers?.[propName] ?? null) as StyleControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFormattedStyle}\n parameters={[props[propName], descriptor, control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case RichTextControlType: {\n const control = (propControllers?.[propName] ?? null) as RichTextControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useRichText}\n parameters={[props[propName], control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case RichTextV2ControlType: {\n const control = (propControllers?.[propName] ?? null) as RichTextV2Control | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useRichTextV2}\n parameters={[props[propName], descriptor, control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case SlotControlType: {\n const control = (propControllers?.[propName] ?? null) as SlotControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useSlot}\n parameters={[props[propName], control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case PropControllerTypes.Width:\n switch (descriptor.options.format) {\n case WidthPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useWidthStyle}\n parameters={[props[propName], descriptor]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case WidthPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getWidthPropControllerDataResponsiveLengthData(props[propName]),\n })\n }\n\n case PropControllerTypes.Padding:\n switch (descriptor.options.format) {\n case PaddingPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={usePaddingStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PaddingPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getPaddingPropControllerDataResponsivePaddingData(props[propName]),\n })\n }\n\n case PropControllerTypes.Margin:\n switch (descriptor.options.format) {\n case MarginPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useMarginStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case MarginPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getMarginPropControllerDataResponsiveMarginData(props[propName]),\n })\n }\n\n case PropControllerTypes.BorderRadius:\n switch (descriptor.options.format) {\n case BorderRadiusPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBorderRadiusStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case BorderRadiusPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getBorderRadiusPropControllerDataResponsiveBorderRadiusData(\n props[propName],\n ),\n })\n }\n\n case PropControllerTypes.Backgrounds:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBackgroundsPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Image:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useImagePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Images:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useImagesPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Number:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useNumberPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveNumber:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(ResponsiveNumber, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveOpacity:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(ResponsiveOpacity, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveLength:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveLengthPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Shadows:\n switch (descriptor.options.format) {\n case Shadows.Format.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useShadowsStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Shadows.Format.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getShadowsPropControllerDataResponsiveShadowsData(props[propName]),\n })\n }\n\n case PropControllerTypes.Border:\n switch (descriptor.options.format) {\n case BorderPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBorderStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case BorderPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getBorderPropControllerDataResponsiveBorderData(props[propName]),\n })\n }\n\n case PropControllerTypes.ResponsiveColor:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveColorPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Link:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useLinkPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Checkbox:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useCheckboxPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Date:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useDatePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Font:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFontPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Video:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useVideoPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Table:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTablePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TextStyle:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTextStylePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.NavigationLinks:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useNavigationLinksPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TextArea:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTextAreaPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.GapX:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(GapX, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.GapY:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useGapYPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ElementID:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useElementIDPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TableFormFields:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTableFormFieldsPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Grid:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useGridPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n default:\n return renderFn({ ...propsValue, [propName]: props[propName] })\n }\n },\n children,\n )({})\n}\n"],"mappings":"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","names":["import_controls","useBorderData","PropControllerTypes"]}
1
+ {"version":3,"sources":["../../../../src/runtimes/react/controls.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport {\n CheckboxControlType,\n IconRadioGroupControlType,\n NumberControlType,\n TextInputControlType,\n TextAreaControlType,\n} from '@makeswift/controls'\n\nimport * as ReactPage from '../../state/react-page'\n\nimport {\n useBoxShadow,\n useBorder as useBorderData,\n useLinkPropControllerData,\n useCheckboxPropControllerData,\n useDatePropControllerData,\n useFontPropControllerData,\n useVideoPropControllerData,\n useTablePropControllerData,\n} from '../../components/hooks'\nimport type { ColorValue } from '../../components/utils/types'\nimport {\n useResponsiveBorder,\n useResponsiveBorderRadius,\n useResponsiveMargin,\n useResponsivePadding,\n useResponsiveShadow,\n useResponsiveWidth,\n} from '../../components/utils/responsive-style'\nimport {\n ColorControlType,\n ComboboxControlType,\n ImageControlType,\n LinkControlType,\n ListControlType,\n SelectControlType,\n ShapeControlType,\n SlotControl,\n SlotControlType,\n StyleControlType,\n RichTextControl,\n RichTextControlType,\n StyleControl,\n RichTextV2Control,\n RichTextV2ControlType,\n StyleV2ControlType,\n TypographyControlType,\n} from '../../controls'\nimport { useFormattedStyle } from './controls/style'\nimport { ControlValue } from './controls/control'\nimport { RenderHook } from './components'\nimport { useSlot } from './controls/slot'\nimport { useStyle } from './use-style'\nimport { useRichText } from './controls/rich-text/rich-text'\nimport { useRichTextV2 } from './controls/rich-text-v2'\nimport { useStore } from './hooks/use-store'\nimport { useDocumentKey } from './hooks/use-document-key'\nimport { useSelector } from './hooks/use-selector'\nimport {\n Types as PropControllerTypes,\n getShadowsPropControllerDataResponsiveShadowsData,\n ShadowsPropControllerData,\n Shadows,\n ResponsiveValue,\n BorderPropControllerFormat,\n ResponsiveBorderData,\n BorderPropControllerData,\n getBorderPropControllerDataResponsiveBorderData,\n getBorderRadiusPropControllerDataResponsiveBorderRadiusData,\n BorderRadiusPropControllerData,\n BorderRadiusPropControllerFormat,\n MarginPropControllerFormat,\n MarginPropControllerData,\n getMarginPropControllerDataResponsiveMarginData,\n PaddingPropControllerData,\n getPaddingPropControllerDataResponsivePaddingData,\n PaddingPropControllerFormat,\n WidthPropControllerData,\n getWidthPropControllerDataResponsiveLengthData,\n WidthPropControllerFormat,\n WidthDescriptor,\n GapX,\n ResponsiveNumber,\n ResponsiveOpacity,\n getSocialLinksPropControllerDataSocialLinksData,\n} from '@makeswift/prop-controllers'\nimport { useResponsiveLengthPropControllerData } from '../../components/hooks/useResponsiveLengthPropControllerData'\nimport { useNumberPropControllerData } from '../../components/hooks/useNumberPropControllerData'\nimport { useResponsiveColorPropControllerData } from '../../components/hooks/useResponsiveColorPropControllerData'\nimport { useTextStylePropControllerData } from '../../components/hooks/useTextStylePropControllerData'\nimport { useNavigationLinksPropControllerData } from '../../components/hooks/useNavigationLinksPropControllerData'\nimport { useTextAreaPropControllerData } from '../../components/hooks/useTextAreaPropControllerData'\nimport { usePropValue } from '../../components/hooks/usePropValue'\nimport { useGapYPropControllerData } from '../../components/hooks/useGapYPropControllerData'\nimport { useElementIDPropControllerData } from '../../components/hooks/useElementIDPropControllerData'\nimport { useTableFormFieldsPropControllerData } from '../../components/hooks/useTableFormFieldsPropControllerData'\nimport { useGridPropControllerData } from '../../components/hooks/useGridPropControllerData'\nimport { useImagePropControllerData } from '../../components/hooks/useImagePropControllerData'\nimport { useImagesPropControllerData } from '../../components/hooks/useImagesPropControllerData'\nimport { useBackgroundsPropControllerData } from '../../components/hooks/useBackgroundsPropControllerData'\nimport { useTextInputPropControllerData } from '../../components/hooks/useTextInputPropControllerData'\n\nexport type ResponsiveColor = ResponsiveValue<ColorValue>\n\nfunction useWidthStyle(\n data: WidthPropControllerData | undefined,\n descriptor: WidthDescriptor,\n): string {\n const value = getWidthPropControllerDataResponsiveLengthData(data)\n\n return useStyle(useResponsiveWidth(value, descriptor.options.defaultValue))\n}\n\nfunction usePaddingStyle(data: PaddingPropControllerData | undefined): string {\n const value = getPaddingPropControllerDataResponsivePaddingData(data)\n\n return useStyle(useResponsivePadding(value))\n}\n\nfunction useMarginStyle(data: MarginPropControllerData | undefined): string {\n const value = getMarginPropControllerDataResponsiveMarginData(data)\n\n return useStyle(useResponsiveMargin(value))\n}\n\nexport function useBorderRadiusStyle(data: BorderRadiusPropControllerData | undefined): string {\n const value = getBorderRadiusPropControllerDataResponsiveBorderRadiusData(data)\n\n return useStyle(useResponsiveBorderRadius(value))\n}\n\nexport function useShadowsStyle(data: ShadowsPropControllerData | undefined): string {\n return useStyle(useResponsiveShadow(useBoxShadow(data) ?? undefined))\n}\n\nexport function useBorderStyle(\n data: BorderPropControllerData | undefined,\n): string | ResponsiveBorderData | undefined {\n const value = getBorderPropControllerDataResponsiveBorderData(data)\n const borderData = useBorderData(value)\n\n return useStyle(useResponsiveBorder(borderData ?? undefined))\n}\n\ntype PropsValueProps = {\n element: ReactPage.ElementData\n children(props: Record<string, unknown>): JSX.Element\n}\n\nexport function PropsValue({ element, children }: PropsValueProps): JSX.Element {\n const store = useStore()\n const propControllerDescriptorsRef = useRef(\n ReactPage.getComponentPropControllerDescriptors(store.getState(), element.type) ?? {},\n )\n const props = element.props as Record<string, any>\n const documentKey = useDocumentKey()\n\n const propControllers = useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, documentKey, element.key)\n })\n\n return Object.entries(propControllerDescriptorsRef.current).reduceRight(\n (renderFn, [propName, descriptor]) =>\n propsValue => {\n switch (descriptor.type) {\n case CheckboxControlType:\n case NumberControlType:\n case TextInputControlType:\n case TextAreaControlType:\n case SelectControlType:\n case ColorControlType:\n case IconRadioGroupControlType:\n case ImageControlType:\n case ComboboxControlType:\n case ShapeControlType:\n case ListControlType:\n case LinkControlType:\n case StyleV2ControlType:\n case TypographyControlType:\n return (\n <ControlValue\n definition={descriptor}\n data={props[propName]}\n control={propControllers?.[propName]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </ControlValue>\n )\n\n case StyleControlType: {\n const control = (propControllers?.[propName] ?? null) as StyleControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFormattedStyle}\n parameters={[props[propName], descriptor, control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case RichTextControlType: {\n const control = (propControllers?.[propName] ?? null) as RichTextControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useRichText}\n parameters={[props[propName], control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case RichTextV2ControlType: {\n const control = (propControllers?.[propName] ?? null) as RichTextV2Control | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useRichTextV2}\n parameters={[props[propName], descriptor, control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case SlotControlType: {\n const control = (propControllers?.[propName] ?? null) as SlotControl | null\n\n return (\n <RenderHook\n key={descriptor.type}\n hook={useSlot}\n parameters={[props[propName], control]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n }\n\n case PropControllerTypes.Width:\n switch (descriptor.options.format) {\n case WidthPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useWidthStyle}\n parameters={[props[propName], descriptor]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case WidthPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getWidthPropControllerDataResponsiveLengthData(props[propName]),\n })\n }\n\n case PropControllerTypes.Padding:\n switch (descriptor.options.format) {\n case PaddingPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={usePaddingStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PaddingPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getPaddingPropControllerDataResponsivePaddingData(props[propName]),\n })\n }\n\n case PropControllerTypes.Margin:\n switch (descriptor.options.format) {\n case MarginPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useMarginStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case MarginPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getMarginPropControllerDataResponsiveMarginData(props[propName]),\n })\n }\n\n case PropControllerTypes.BorderRadius:\n switch (descriptor.options.format) {\n case BorderRadiusPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBorderRadiusStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case BorderRadiusPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getBorderRadiusPropControllerDataResponsiveBorderRadiusData(\n props[propName],\n ),\n })\n }\n\n case PropControllerTypes.Backgrounds:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBackgroundsPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Image:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useImagePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Images:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useImagesPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Number:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useNumberPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveNumber:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(ResponsiveNumber, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveOpacity:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(ResponsiveOpacity, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ResponsiveLength:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveLengthPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Shadows:\n switch (descriptor.options.format) {\n case Shadows.Format.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useShadowsStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case Shadows.Format.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getShadowsPropControllerDataResponsiveShadowsData(props[propName]),\n })\n }\n\n case PropControllerTypes.Border:\n switch (descriptor.options.format) {\n case BorderPropControllerFormat.ClassName:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useBorderStyle}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case BorderPropControllerFormat.ResponsiveValue:\n default:\n return renderFn({\n ...propsValue,\n [propName]: getBorderPropControllerDataResponsiveBorderData(props[propName]),\n })\n }\n\n case PropControllerTypes.ResponsiveColor:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useResponsiveColorPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Link:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useLinkPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Checkbox:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useCheckboxPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Date:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useDatePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Font:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useFontPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Video:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useVideoPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.Table:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTablePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TextStyle:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTextStylePropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.NavigationLinks:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useNavigationLinksPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TextInput:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTextInputPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TextArea:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTextAreaPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.GapX:\n return (\n <RenderHook\n key={descriptor.type}\n hook={data => usePropValue(GapX, data)}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.GapY:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useGapYPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.ElementID:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useElementIDPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.TableFormFields:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useTableFormFieldsPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n case PropControllerTypes.SocialLinks:\n return renderFn({\n ...propsValue,\n [propName]: getSocialLinksPropControllerDataSocialLinksData(props[propName]),\n })\n\n case PropControllerTypes.Grid:\n return (\n <RenderHook\n key={descriptor.type}\n hook={useGridPropControllerData}\n parameters={[props[propName]]}\n >\n {value => renderFn({ ...propsValue, [propName]: value })}\n </RenderHook>\n )\n\n default:\n return renderFn({ ...propsValue, [propName]: props[propName] })\n }\n },\n children,\n )({})\n}\n"],"mappings":"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","names":["import_controls","useBorderData","PropControllerTypes"]}
@@ -326,7 +326,7 @@ function serializeControl(control) {
326
326
  return serializeDateControl(control);
327
327
  case PropControllerTypes.Link:
328
328
  return serializeLinkControl(control);
329
- case Controls.Types.TextInput:
329
+ case PropControllerTypes.TextInput:
330
330
  return serializeTextInputControl(control);
331
331
  case PropControllerTypes.TextStyle:
332
332
  return serializeTextStyleControl(control);
@@ -378,7 +378,7 @@ function deserializeControl(serializedControl) {
378
378
  return deserializeDateControl(serializedControl);
379
379
  case PropControllerTypes.Link:
380
380
  return deserializeLinkControl(serializedControl);
381
- case Controls.Types.TextInput:
381
+ case PropControllerTypes.TextInput:
382
382
  return deserializeTextInputControl(serializedControl);
383
383
  case PropControllerTypes.TextStyle:
384
384
  return deserializeTextStyleControl(serializedControl);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/builder/serialization/control-serialization.ts"],"sourcesContent":["import {\n GapData,\n GapX,\n GapYDescriptor,\n GapYPropControllerData,\n ResponsiveLengthOptions,\n ResponsiveLengthPropControllerData,\n ResponsiveNumber,\n type Descriptor,\n type PropDef,\n type OptionsType,\n} from '@makeswift/prop-controllers'\nimport {\n ComboboxControlDefinition,\n ComboboxControlType,\n ListControlDefinition,\n ListControlType,\n RichTextV2ControlDefinition,\n RichTextV2ControlType,\n ShapeControlDefinition,\n ShapeControlType,\n StyleV2ControlDefinition,\n StyleV2ControlType,\n RichTextValue as RichTextControlValue,\n} from '../../controls'\nimport {\n Data,\n Device,\n ResponsiveIconRadioGroupDescriptor as ResponsiveIconRadioGroupControl,\n ResponsiveIconRadioGroupValue as ResponsiveIconRadioGroupControlValue,\n ResponsiveSelectDescriptor as ResponsiveSelectControl,\n ResponsiveSelectValue as ResponsiveSelectControlValue,\n TextInputDescriptor as TextInputControl,\n TextInputValue as TextInputControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DELETED_PROP_CONTROLLER_TYPES,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n RichTextDescriptor as RichTextControl,\n} from '../../prop-controllers/deleted'\nimport {\n IconRadioGroupOption,\n SelectLabelOrientation,\n SelectOption,\n} from '../../prop-controllers/descriptors'\nimport {\n deserializeComboboxControlDefinition,\n serializeComboboxControlDefinition,\n} from './controls/combobox'\nimport { deserializeListControlDefinition, serializeListControlDefinition } from './controls/list'\nimport { deserializeRichTextControlV2, serializeRichTextControlV2 } from './controls/rich-text-v2'\nimport {\n deserializeShapeControlDefinition,\n serializeShapeControlDefinition,\n} from './controls/shape'\nimport { deserializeStyleV2Control, serializeStyleV2Control } from './controls/style-v2'\nimport { Deserialize, Serialize } from './controls/types'\nimport {\n DeserializedFunction,\n deserializeFunction,\n isSerializedFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\nimport {\n LinkData,\n DateDescriptor as DateControl,\n DatePropControllerData,\n Types as PropControllerTypes,\n ImageDescriptor as ImageControl,\n ImageData as ImageControlValue,\n LinkDescriptor as LinkControl,\n LinkPropControllerData,\n ResponsiveLengthDescriptor,\n NumberOptions,\n NumberPropControllerData,\n NumberDescriptor,\n ResponsiveColorPropControllerData,\n ResponsiveColorDescriptor,\n CheckboxPropControllerData,\n CheckboxDescriptor as CheckboxControl,\n TextStyleDescriptor as TextStyleControl,\n TextStylePropControllerData,\n} from '@makeswift/prop-controllers'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\ntype SerializedConfig<T> =\n | T\n | SerializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\nexport type DeserializedConfig<T> =\n | T\n | DeserializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype SerializedControlDef<P extends PropDef> = Descriptor<P> & {\n options: SerializedConfig<OptionsType<P>>\n}\n\nfunction serializeControlDef<P extends PropDef>(\n control: Descriptor<P>,\n): [SerializedControlDef<P>, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\nexport type DeserializedControlDef<P extends PropDef> = Descriptor<P> & {\n options: DeserializedConfig<OptionsType<P>>\n}\n\nfunction deserializeControlDef<P extends PropDef>(\n serializedControl: SerializedControlDef<P>,\n): DeserializedControlDef<P> {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype GapYControlConfig = {\n preset?: GapYPropControllerData\n label?: string\n defaultValue?: GapData\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapYControl<_T = GapYPropControllerData> = {\n type: typeof PropControllerTypes.GapY\n options: SerializedConfig<GapYControlConfig>\n}\n\nfunction serializeGapYControl(control: GapYDescriptor): [SerializedGapYControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapYControl<_T = GapYPropControllerData> = {\n type: typeof PropControllerTypes.GapY\n options: DeserializedConfig<GapYControlConfig>\n}\n\nfunction deserializeGapYControl(serializedControl: SerializedGapYControl): DeserializedGapYControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype CheckboxControlConfig = {\n preset?: CheckboxPropControllerData\n label: string\n hidden?: boolean\n}\n\ntype SerializedCheckboxControl<_T = CheckboxPropControllerData> = {\n type: typeof PropControllerTypes.Checkbox\n options: SerializedConfig<CheckboxControlConfig>\n}\n\nfunction serializeCheckboxControl(\n control: CheckboxControl,\n): [SerializedCheckboxControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedCheckboxControl<_T = CheckboxPropControllerData> = {\n type: typeof PropControllerTypes.Checkbox\n options: DeserializedConfig<CheckboxControlConfig>\n}\n\nfunction deserializeCheckboxControl(\n serializedControl: SerializedCheckboxControl,\n): DeserializedCheckboxControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ResponsiveColorControlConfig = { label?: string; placeholder?: string; hidden?: boolean }\n\ntype SerializedResponsiveColorControl<_T = ResponsiveColorPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveColor\n options: SerializedConfig<ResponsiveColorControlConfig>\n}\n\nfunction serializeResponsiveColorControl(\n control: ResponsiveColorDescriptor,\n): [SerializedResponsiveColorControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveColorControl<_T = ResponsiveColorPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveColor\n options: DeserializedConfig<ResponsiveColorControlConfig>\n}\n\nfunction deserializeResponsiveColorControl(\n serializedControl: SerializedResponsiveColorControl,\n): DeserializedResponsiveColorControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\ntype SerializedNumberControl<_T = NumberPropControllerData> = {\n type: typeof PropControllerTypes.Number\n options: SerializedConfig<NumberOptions>\n}\n\nfunction serializeNumberControl(\n control: NumberDescriptor,\n): [SerializedNumberControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedNumberControl<_T = NumberPropControllerData> = {\n type: typeof PropControllerTypes.Number\n options: DeserializedConfig<NumberOptions>\n}\n\nfunction deserializeNumberControl(\n serializedControl: SerializedNumberControl,\n): DeserializedNumberControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\ntype ResponsiveIconRadioGroupControlConfig<T extends string = string, U extends T = T> = {\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}\n\ntype SerializedResponsiveIconRadioGroupControl<_T = ResponsiveIconRadioGroupControlValue> = {\n type: typeof Controls.Types.ResponsiveIconRadioGroup\n options: SerializedConfig<ResponsiveIconRadioGroupControlConfig>\n}\n\nfunction serializeResponsiveIconRadioGroupControl(\n control: ResponsiveIconRadioGroupControl,\n): [SerializedResponsiveIconRadioGroupControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveIconRadioGroupControl<_T = ResponsiveIconRadioGroupControlValue> = {\n type: typeof Controls.Types.ResponsiveIconRadioGroup\n options: DeserializedConfig<ResponsiveIconRadioGroupControlConfig>\n}\n\nfunction deserializeResponsiveIconRadioGroupControl(\n serializedControl: SerializedResponsiveIconRadioGroupControl,\n): DeserializedResponsiveIconRadioGroupControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype DateControlConfig = { preset?: DatePropControllerData }\n\ntype SerializedDateControl<_T = DatePropControllerData> = {\n type: typeof PropControllerTypes.Date\n options: SerializedConfig<DateControlConfig>\n}\n\nfunction serializeDateControl(control: DateControl): [SerializedDateControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedDateControl<_T = DatePropControllerData> = {\n type: typeof PropControllerTypes.Date\n options: DeserializedConfig<DateControlConfig>\n}\n\nfunction deserializeDateControl(serializedControl: SerializedDateControl): DeserializedDateControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype LinkControlConfig = {\n preset?: LinkPropControllerData\n label?: string\n defaultValue?: LinkPropControllerData\n options?: { value: LinkData['type']; label: string }[]\n hidden?: boolean\n}\n\ntype SerializedLinkControl<_T = LinkPropControllerData> = {\n type: typeof PropControllerTypes.Link\n options: SerializedConfig<LinkControlConfig>\n}\n\nfunction serializeLinkControl(control: LinkControl): [SerializedLinkControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedLinkControl<_T = LinkPropControllerData> = {\n type: typeof PropControllerTypes.Link\n options: DeserializedConfig<LinkControlConfig>\n}\n\nfunction deserializeLinkControl(serializedControl: SerializedLinkControl): DeserializedLinkControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype TextInputControlConfig = { label?: string; placeholder?: string; hidden?: boolean }\n\ntype SerializedTextInputControl<_T = TextInputControlValue> = {\n type: typeof Controls.Types.TextInput\n options: SerializedConfig<TextInputControlConfig>\n}\n\nfunction serializeTextInputControl(\n control: TextInputControl,\n): [SerializedTextInputControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedTextInputControl<_T = TextInputControlValue> = {\n type: typeof Controls.Types.TextInput\n options: DeserializedConfig<TextInputControlConfig>\n}\n\nfunction deserializeTextInputControl(\n serializedControl: SerializedTextInputControl,\n): DeserializedTextInputControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedResponsiveSelectControl<_T = ResponsiveSelectControlValue> = {\n type: typeof Controls.Types.ResponsiveSelect\n options: SerializedConfig<ResponsiveSelectControlConfig>\n}\n\nfunction serializeResponsiveSelectControl(\n control: ResponsiveSelectControl,\n): [SerializedResponsiveSelectControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype ResponsiveSelectControlConfig<T extends string = string, U extends T = T> = {\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}\n\ntype DeserializedResponsiveSelectControl<_T = ResponsiveSelectControlValue> = {\n type: typeof Controls.Types.ResponsiveSelect\n options: DeserializedConfig<ResponsiveSelectControlConfig>\n}\n\nfunction deserializeResponsiveSelectControl(\n serializedControl: SerializedResponsiveSelectControl,\n): DeserializedResponsiveSelectControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedResponsiveLengthControl<_T = ResponsiveLengthPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveLength\n options: SerializedConfig<ResponsiveLengthOptions>\n}\n\nfunction serializeResponsiveLengthControl(\n control: ResponsiveLengthDescriptor,\n): [SerializedResponsiveLengthControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveLengthControl<_T = ResponsiveLengthPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveLength\n options: DeserializedConfig<ResponsiveLengthOptions>\n}\n\nfunction deserializeResponsiveLengthControl(\n serializedControl: SerializedResponsiveLengthControl,\n): DeserializedResponsiveLengthControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedTextStyleControl<_T = TextStylePropControllerData> = {\n type: typeof PropControllerTypes.TextStyle\n options: SerializedConfig<TextStyleControlConfig>\n}\n\nfunction serializeTextStyleControl(\n control: TextStyleControl,\n): [SerializedTextStyleControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype TextStyleControlConfig = {\n preset?: TextStylePropControllerData\n label?: string\n hidden?: boolean\n}\n\ntype DeserializedTextStyleControl<_T = TextStylePropControllerData> = {\n type: typeof PropControllerTypes.TextStyle\n options: DeserializedConfig<TextStyleControlConfig>\n}\n\nfunction deserializeTextStyleControl(\n serializedControl: SerializedTextStyleControl,\n): DeserializedTextStyleControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ImageControlConfig = { label?: string; hidden?: boolean }\n\ntype SerializedImageControl<_T = ImageControlValue> = {\n type: typeof PropControllerTypes.Image\n options: SerializedConfig<ImageControlConfig>\n}\n\nfunction serializeImageControl(control: ImageControl): [SerializedImageControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedImageControl<_T = ImageControlValue> = {\n type: typeof PropControllerTypes.Image\n options: DeserializedConfig<ImageControlConfig>\n}\n\nfunction deserializeImageControl(\n serializedControl: SerializedImageControl,\n): DeserializedImageControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype RichTextControlConfig = { preset?: RichTextControlValue }\n\ntype SerializedRichTextControl<_T = RichTextControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.RichText\n options: SerializedConfig<RichTextControlConfig>\n}\n\nfunction serializeRichTextControl(\n control: RichTextControl,\n): [SerializedRichTextControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedRichTextControl<_T = RichTextControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.RichText\n options: DeserializedConfig<RichTextControlConfig>\n}\n\nfunction deserializeRichTextControl(\n serializedControl: SerializedRichTextControl,\n): DeserializedRichTextControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | Descriptor<typeof GapX>\n | GapYDescriptor<T>\n | Descriptor<typeof ResponsiveNumber>\n | CheckboxControl<T>\n | ResponsiveColorDescriptor<T>\n | NumberDescriptor<T>\n | ResponsiveIconRadioGroupControl<\n T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue\n >\n | ResponsiveSelectControl<\n T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue\n >\n | ResponsiveLengthDescriptor<T>\n | DateControl<T>\n | LinkControl<T>\n | TextInputControl<T>\n | TextStyleControl<T>\n | ImageControl<T>\n | RichTextControl<T>\n | RichTextV2ControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | StyleV2ControlDefinition\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | SerializedControlDef<typeof GapX>\n | SerializedGapYControl<T>\n | SerializedControlDef<typeof ResponsiveNumber>\n | SerializedCheckboxControl<T>\n | SerializedResponsiveColorControl<T>\n | SerializedNumberControl<T>\n | SerializedResponsiveIconRadioGroupControl<T>\n | SerializedResponsiveSelectControl<T>\n | SerializedResponsiveLengthControl<T>\n | SerializedDateControl<T>\n | SerializedLinkControl<T>\n | SerializedTextInputControl<T>\n | SerializedTextStyleControl<T>\n | SerializedImageControl<T>\n | SerializedRichTextControl<T>\n | Serialize<RichTextV2ControlDefinition>\n | Serialize<ComboboxControlDefinition>\n | Serialize<ShapeControlDefinition>\n | Serialize<ListControlDefinition>\n | Serialize<StyleV2ControlDefinition>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | Descriptor<typeof GapX>\n | GapYDescriptor<T>\n | Descriptor<typeof ResponsiveNumber>\n | CheckboxControl<T>\n | ResponsiveColorDescriptor<T>\n | NumberDescriptor<T>\n | ResponsiveIconRadioGroupControl<\n T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue\n >\n | ResponsiveSelectControl<\n T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue\n >\n | ResponsiveLengthDescriptor<T>\n | DateControl<T>\n | LinkControl<T>\n | TextInputControl<T>\n | TextStyleControl<T>\n | ImageControl<T>\n | RichTextControl<T>\n | RichTextV2ControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | StyleV2ControlDefinition\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | DeserializedControlDef<typeof GapX>\n | DeserializedGapYControl<T>\n | DeserializedControlDef<typeof ResponsiveNumber>\n | DeserializedCheckboxControl<T>\n | DeserializedResponsiveColorControl<T>\n | DeserializedNumberControl<T>\n | DeserializedResponsiveIconRadioGroupControl<T>\n | DeserializedResponsiveSelectControl<T>\n | DeserializedResponsiveLengthControl<T>\n | DeserializedDateControl<T>\n | DeserializedLinkControl<T>\n | DeserializedTextInputControl<T>\n | DeserializedTextStyleControl<T>\n | DeserializedImageControl<T>\n | DeserializedRichTextControl<T>\n | Deserialize<Serialize<RichTextV2ControlDefinition>>\n | Deserialize<Serialize<ComboboxControlDefinition>>\n | Deserialize<Serialize<ShapeControlDefinition>>\n | Deserialize<Serialize<ListControlDefinition>>\n | Deserialize<Serialize<StyleV2ControlDefinition>>\n\nexport type DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nexport function serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case PropControllerTypes.Checkbox:\n return serializeCheckboxControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.List:\n return serializeListControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.Shape:\n return serializeShapeControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.Typeahead:\n return serializeTypeaheadControl(control)\n\n case PropControllerTypes.GapX:\n return serializeControlDef<typeof GapX>(control)\n\n case PropControllerTypes.GapY:\n return serializeGapYControl(control)\n\n case PropControllerTypes.ResponsiveColor:\n return serializeResponsiveColorControl(control)\n\n case PropControllerTypes.ResponsiveNumber:\n return serializeControlDef<typeof ResponsiveNumber>(control)\n\n case PropControllerTypes.Number:\n return serializeNumberControl(control)\n\n case Controls.Types.ResponsiveIconRadioGroup:\n return serializeResponsiveIconRadioGroupControl(control)\n\n case Controls.Types.ResponsiveSelect:\n return serializeResponsiveSelectControl(control)\n\n case PropControllerTypes.ResponsiveLength:\n return serializeResponsiveLengthControl(control)\n\n case PropControllerTypes.Date:\n return serializeDateControl(control)\n\n case PropControllerTypes.Link:\n return serializeLinkControl(control)\n\n case Controls.Types.TextInput:\n return serializeTextInputControl(control)\n\n case PropControllerTypes.TextStyle:\n return serializeTextStyleControl(control)\n\n case PropControllerTypes.Image:\n return serializeImageControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText:\n return serializeRichTextControl(control)\n\n case RichTextV2ControlType:\n return serializeRichTextControlV2(control)\n\n case StyleV2ControlType:\n return serializeStyleV2Control(control)\n\n case ComboboxControlType:\n return serializeComboboxControlDefinition(control)\n\n case ShapeControlType:\n return serializeShapeControlDefinition(control)\n\n case ListControlType:\n return serializeListControlDefinition(control)\n\n default:\n return [control, []]\n }\n}\n\nexport function deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case PropControllerTypes.Checkbox:\n return deserializeCheckboxControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.List:\n return deserializeListControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.Shape:\n return deserializeShapeControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n case PropControllerTypes.GapX:\n return deserializeControlDef<typeof GapX>(serializedControl)\n\n case PropControllerTypes.GapY:\n return deserializeGapYControl(serializedControl)\n\n case PropControllerTypes.ResponsiveColor:\n return deserializeResponsiveColorControl(serializedControl)\n\n case PropControllerTypes.ResponsiveNumber:\n return deserializeControlDef<typeof ResponsiveNumber>(serializedControl)\n\n case PropControllerTypes.Number:\n return deserializeNumberControl(serializedControl)\n\n case Controls.Types.ResponsiveIconRadioGroup:\n return deserializeResponsiveIconRadioGroupControl(serializedControl)\n\n case Controls.Types.ResponsiveSelect:\n return deserializeResponsiveSelectControl(serializedControl)\n\n case PropControllerTypes.ResponsiveLength:\n return deserializeResponsiveLengthControl(serializedControl)\n\n case PropControllerTypes.Date:\n return deserializeDateControl(serializedControl)\n\n case PropControllerTypes.Link:\n return deserializeLinkControl(serializedControl)\n\n case Controls.Types.TextInput:\n return deserializeTextInputControl(serializedControl)\n\n case PropControllerTypes.TextStyle:\n return deserializeTextStyleControl(serializedControl)\n\n case PropControllerTypes.Image:\n return deserializeImageControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText:\n return deserializeRichTextControl(serializedControl)\n\n case RichTextV2ControlType:\n return deserializeRichTextControlV2(serializedControl)\n\n case StyleV2ControlType:\n return deserializeStyleV2Control(serializedControl)\n\n case ComboboxControlType:\n return deserializeComboboxControlDefinition(serializedControl)\n\n case ShapeControlType:\n return deserializeShapeControlDefinition(serializedControl)\n\n case ListControlType:\n return deserializeListControlDefinition(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"mappings":"AAYA;AAAA,EAEE;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,EAEA;AAAA,OAEK;AACP;AAAA,EAaE,SAAS;AAAA,OACJ;AACP;AAAA,EACE;AAAA,OAUK;AAMP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,kCAAkC,sCAAsC;AACjF,SAAS,8BAA8B,kCAAkC;AACzE;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,2BAA2B,+BAA+B;AAEnE;AAAA,EAEE;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EAIE,SAAS;AAAA,OAeJ;AAeP,SAAS,sBAIP,SAOA;AACA,QAAM,EAAE,KAAK,IAAI,QAAQ;AACzB,QAAM,gBAAgC,CAAC;AACvC,QAAM,iBAAiB,CAAC;AAIxB,SAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAKA,QAAO,MAAM;AAC/C,UAAM,CAAC,mBAAmB,8BAA8B,IAAI,iBAAiBA,QAAO;AAEpF,mBAAe,GAAwB,IAAI;AAC3C,kBAAc,KAAK,GAAG,8BAA8B;AAAA,EACtD,CAAC;AAGD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,EAAE,GAAG,QAAQ,SAAS,MAAM,eAAe,EAAE,GAAG,aAAa;AAC9F;AAeA,SAAS,wBAIP,SAIA;AACA,QAAM,EAAE,KAAK,IAAI,QAAQ;AACzB,QAAM,mBAAmB,CAAC;AAI1B,SAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAKA,QAAO,MAAM;AAC/C,qBAAiB,GAAwB,IAAI;AAAA,MAC3CA;AAAA,IACF;AAAA,EACF,CAAC;AAGD,SAAO,EAAE,GAAG,SAAS,SAAS,EAAE,GAAG,QAAQ,SAAS,MAAM,iBAAiB,EAAE;AAC/E;AAeA,SAAS,qBACP,SAC8D;AAC9D,QAAM,EAAE,MAAM,aAAa,IAAI,QAAQ;AACvC,QAAM,gBAAgC,CAAC;AAEvC,QAAM,CAAC,gBAAgB,2BAA2B,IAAI,iBAAiB,IAAI;AAC3E,QAAM,yBAAyB,gBAAgB,kBAAkB,YAAY;AAE7E,gBAAc,KAAK,GAAG,2BAA2B;AACjD,MAAI,0BAA0B;AAAM,kBAAc,KAAK,sBAAsB;AAE7E,SAAO;AAAA,IACL;AAAA,MACE,GAAG;AAAA,MACH,SAAS;AAAA,QACP,GAAG,QAAQ;AAAA,QACX,MAAM;AAAA,QACN,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACF;AAeA,SAAS,uBACP,mBAC8C;AAC9C,QAAM,EAAE,MAAM,aAAa,IAAI,kBAAkB;AAEjD,QAAM,mBAAmB,mBAAmB,IAAI;AAChD,QAAM,2BAA2B,gBAAgB,oBAAoB,YAAY;AAEjF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS;AAAA,MACP,GAAG,kBAAkB;AAAA,MACrB,MAAM;AAAA,MACN,cAAc;AAAA,IAChB;AAAA,EACF;AACF;AAcA,SAAS,0BACP,SACwE;AACxE,QAAM,EAAE,SAAS,IAAI,QAAQ;AAE7B,QAAM,qBAAqB,YAAY,kBAAkB,QAAQ;AAEjE,SAAO;AAAA,IACL,EAAE,GAAG,SAAS,SAAS,EAAE,GAAG,QAAQ,SAAS,UAAU,mBAAmB,EAAE;AAAA,IAC5E,sBAAsB,OAAO,CAAC,IAAI,CAAC,kBAAkB;AAAA,EACvD;AACF;AAcA,SAAS,4BACP,mBACwD;AACxD,QAAM,EAAE,SAAS,IAAI,kBAAkB;AAEvC,QAAM,uBAAuB,YAAY,oBAAoB,QAAQ;AAErE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,SAAS,EAAE,GAAG,kBAAkB,SAAS,UAAU,qBAAqB;AAAA,EAC1E;AACF;AAcA,SAAS,oBACP,SAC2C;AAC3C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAMA,SAAS,sBACP,mBAC2B;AAC3B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAiBA,SAAS,qBAAqB,SAAkE;AAC9F,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,uBAAuB,mBAAmE;AACjG,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAaA,SAAS,yBACP,SAC6C;AAC7C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,2BACP,mBAC6B;AAC7B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AASA,SAAS,gCACP,SACoD;AACpD,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,kCACP,mBACoC;AACpC,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAMA,SAAS,uBACP,SAC2C;AAC3C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,yBACP,mBAC2B;AAC3B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAaA,SAAS,yCACP,SAC6D;AAC7D,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,2CACP,mBAC6C;AAC7C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AASA,SAAS,qBAAqB,SAA+D;AAC3F,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,uBAAuB,mBAAmE;AACjG,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAeA,SAAS,qBAAqB,SAA+D;AAC3F,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,uBAAuB,mBAAmE;AACjG,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AASA,SAAS,0BACP,SAC8C;AAC9C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,4BACP,mBAC8B;AAC9B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAOA,SAAS,iCACP,SACqD;AACrD,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAeA,SAAS,mCACP,mBACqC;AACrC,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAOA,SAAS,iCACP,SACqD;AACrD,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,mCACP,mBACqC;AACrC,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAOA,SAAS,0BACP,SAC8C;AAC9C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAaA,SAAS,4BACP,mBAC8B;AAC9B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AASA,SAAS,sBAAsB,SAAiE;AAC9F,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,wBACP,mBAC0B;AAC1B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AASA,SAAS,yBACP,SAC6C;AAC7C,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,OAAO,YAAY;AAAY,WAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,GAAG,CAAC,CAAC;AAEtE,QAAM,oBAAoB,kBAAkB,OAAO;AAEnD,SAAO,CAAC,EAAE,GAAG,SAAS,SAAS,kBAAkB,GAAG,CAAC,iBAAiB,CAAC;AACzE;AAOA,SAAS,2BACP,mBAC6B;AAC7B,QAAM,EAAE,QAAQ,IAAI;AAEpB,MAAI,CAAC,qBAAqB,OAAO;AAAG,WAAO,EAAE,GAAG,mBAAmB,QAAQ;AAE3E,QAAM,sBAAsB,oBAAoB,OAAO;AAEvD,SAAO,EAAE,GAAG,mBAAmB,SAAS,oBAAoB;AAC9D;AAgIO,SAAS,iBACd,SACwC;AACxC,UAAQ,QAAQ,MAAM;AAAA,IACpB,KAAK,oBAAoB;AACvB,aAAO,yBAAyB,OAAO;AAAA,IAEzC,KAAK,8BAA8B;AACjC,aAAO,qBAAqB,OAAO;AAAA,IAErC,KAAK,8BAA8B;AACjC,aAAO,sBAAsB,OAAO;AAAA,IAEtC,KAAK,8BAA8B;AACjC,aAAO,0BAA0B,OAAO;AAAA,IAE1C,KAAK,oBAAoB;AACvB,aAAO,oBAAiC,OAAO;AAAA,IAEjD,KAAK,oBAAoB;AACvB,aAAO,qBAAqB,OAAO;AAAA,IAErC,KAAK,oBAAoB;AACvB,aAAO,gCAAgC,OAAO;AAAA,IAEhD,KAAK,oBAAoB;AACvB,aAAO,oBAA6C,OAAO;AAAA,IAE7D,KAAK,oBAAoB;AACvB,aAAO,uBAAuB,OAAO;AAAA,IAEvC,KAAK,SAAS,MAAM;AAClB,aAAO,yCAAyC,OAAO;AAAA,IAEzD,KAAK,SAAS,MAAM;AAClB,aAAO,iCAAiC,OAAO;AAAA,IAEjD,KAAK,oBAAoB;AACvB,aAAO,iCAAiC,OAAO;AAAA,IAEjD,KAAK,oBAAoB;AACvB,aAAO,qBAAqB,OAAO;AAAA,IAErC,KAAK,oBAAoB;AACvB,aAAO,qBAAqB,OAAO;AAAA,IAErC,KAAK,SAAS,MAAM;AAClB,aAAO,0BAA0B,OAAO;AAAA,IAE1C,KAAK,oBAAoB;AACvB,aAAO,0BAA0B,OAAO;AAAA,IAE1C,KAAK,oBAAoB;AACvB,aAAO,sBAAsB,OAAO;AAAA,IAEtC,KAAK,8BAA8B;AACjC,aAAO,yBAAyB,OAAO;AAAA,IAEzC,KAAK;AACH,aAAO,2BAA2B,OAAO;AAAA,IAE3C,KAAK;AACH,aAAO,wBAAwB,OAAO;AAAA,IAExC,KAAK;AACH,aAAO,mCAAmC,OAAO;AAAA,IAEnD,KAAK;AACH,aAAO,gCAAgC,OAAO;AAAA,IAEhD,KAAK;AACH,aAAO,+BAA+B,OAAO;AAAA,IAE/C;AACE,aAAO,CAAC,SAAS,CAAC,CAAC;AAAA,EACvB;AACF;AAEO,SAAS,mBACd,mBACwB;AACxB,UAAQ,kBAAkB,MAAM;AAAA,IAC9B,KAAK,oBAAoB;AACvB,aAAO,2BAA2B,iBAAiB;AAAA,IAErD,KAAK,8BAA8B;AACjC,aAAO,uBAAuB,iBAAiB;AAAA,IAEjD,KAAK,8BAA8B;AACjC,aAAO,wBAAwB,iBAAiB;AAAA,IAElD,KAAK,8BAA8B;AACjC,aAAO,4BAA4B,iBAAiB;AAAA,IAEtD,KAAK,oBAAoB;AACvB,aAAO,sBAAmC,iBAAiB;AAAA,IAE7D,KAAK,oBAAoB;AACvB,aAAO,uBAAuB,iBAAiB;AAAA,IAEjD,KAAK,oBAAoB;AACvB,aAAO,kCAAkC,iBAAiB;AAAA,IAE5D,KAAK,oBAAoB;AACvB,aAAO,sBAA+C,iBAAiB;AAAA,IAEzE,KAAK,oBAAoB;AACvB,aAAO,yBAAyB,iBAAiB;AAAA,IAEnD,KAAK,SAAS,MAAM;AAClB,aAAO,2CAA2C,iBAAiB;AAAA,IAErE,KAAK,SAAS,MAAM;AAClB,aAAO,mCAAmC,iBAAiB;AAAA,IAE7D,KAAK,oBAAoB;AACvB,aAAO,mCAAmC,iBAAiB;AAAA,IAE7D,KAAK,oBAAoB;AACvB,aAAO,uBAAuB,iBAAiB;AAAA,IAEjD,KAAK,oBAAoB;AACvB,aAAO,uBAAuB,iBAAiB;AAAA,IAEjD,KAAK,SAAS,MAAM;AAClB,aAAO,4BAA4B,iBAAiB;AAAA,IAEtD,KAAK,oBAAoB;AACvB,aAAO,4BAA4B,iBAAiB;AAAA,IAEtD,KAAK,oBAAoB;AACvB,aAAO,wBAAwB,iBAAiB;AAAA,IAElD,KAAK,8BAA8B;AACjC,aAAO,2BAA2B,iBAAiB;AAAA,IAErD,KAAK;AACH,aAAO,6BAA6B,iBAAiB;AAAA,IAEvD,KAAK;AACH,aAAO,0BAA0B,iBAAiB;AAAA,IAEpD,KAAK;AACH,aAAO,qCAAqC,iBAAiB;AAAA,IAE/D,KAAK;AACH,aAAO,kCAAkC,iBAAiB;AAAA,IAE5D,KAAK;AACH,aAAO,iCAAiC,iBAAiB;AAAA,IAE3D;AACE,aAAO;AAAA,EACX;AACF;AAEO,SAAS,kBACd,UACqD;AACrD,SAAO,OAAO,QAAQ,QAAQ,EAAE;AAAA,IAC9B,CAAC,CAAC,aAAa,gBAAgB,GAAG,CAAC,KAAK,OAAO,MAAM;AACnD,YAAM,CAAC,mBAAmB,aAAa,IAAI,iBAAiB,OAAO;AAEnE,aAAO,CAAC,EAAE,GAAG,aAAa,CAAC,GAAG,GAAG,kBAAkB,GAAG,CAAC,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAAA,IAC/F;AAAA,IACA,CAAC,CAAC,GAAG,CAAC,CAAC;AAAA,EACT;AACF;AAEO,SAAS,oBACd,oBACqC;AACrC,SAAO,OAAO,QAAQ,kBAAkB,EAAE;AAAA,IACxC,CAAC,sBAAsB,CAAC,KAAK,iBAAiB,MAAM;AAClD,aAAO,EAAE,GAAG,sBAAsB,CAAC,GAAG,GAAG,mBAAmB,iBAAiB,EAAE;AAAA,IACjF;AAAA,IACA,CAAC;AAAA,EACH;AACF;","names":["control"]}
1
+ {"version":3,"sources":["../../../../src/builder/serialization/control-serialization.ts"],"sourcesContent":["import {\n GapData,\n GapX,\n GapYDescriptor,\n GapYPropControllerData,\n ResponsiveLengthOptions,\n ResponsiveLengthPropControllerData,\n ResponsiveNumber,\n type Descriptor,\n type PropDef,\n type OptionsType,\n} from '@makeswift/prop-controllers'\nimport {\n ComboboxControlDefinition,\n ComboboxControlType,\n ListControlDefinition,\n ListControlType,\n RichTextV2ControlDefinition,\n RichTextV2ControlType,\n ShapeControlDefinition,\n ShapeControlType,\n StyleV2ControlDefinition,\n StyleV2ControlType,\n RichTextValue as RichTextControlValue,\n} from '../../controls'\nimport {\n Data,\n Device,\n ResponsiveIconRadioGroupDescriptor as ResponsiveIconRadioGroupControl,\n ResponsiveIconRadioGroupValue as ResponsiveIconRadioGroupControlValue,\n ResponsiveSelectDescriptor as ResponsiveSelectControl,\n ResponsiveSelectValue as ResponsiveSelectControlValue,\n PanelDescriptor as PanelControl,\n PanelDescriptorType as PanelControlType,\n PanelDescriptorValueType as PanelControlValueType,\n PropControllerDescriptor as Control,\n Props as Controls,\n} from '../../prop-controllers'\nimport {\n DELETED_PROP_CONTROLLER_TYPES,\n ListDescriptor as ListControl,\n ListOptions as ListControlConfig,\n ListValue as ListControlValue,\n ShapeDescriptor as ShapeControl,\n ShapeValue as ShapeControlValue,\n TypeaheadDescriptor as TypeaheadControl,\n TypeaheadOptions as TypeaheadControlConfig,\n TypeaheadValue as TypeaheadControlValue,\n RichTextDescriptor as RichTextControl,\n} from '../../prop-controllers/deleted'\nimport {\n IconRadioGroupOption,\n SelectLabelOrientation,\n SelectOption,\n} from '../../prop-controllers/descriptors'\nimport {\n deserializeComboboxControlDefinition,\n serializeComboboxControlDefinition,\n} from './controls/combobox'\nimport { deserializeListControlDefinition, serializeListControlDefinition } from './controls/list'\nimport { deserializeRichTextControlV2, serializeRichTextControlV2 } from './controls/rich-text-v2'\nimport {\n deserializeShapeControlDefinition,\n serializeShapeControlDefinition,\n} from './controls/shape'\nimport { deserializeStyleV2Control, serializeStyleV2Control } from './controls/style-v2'\nimport { Deserialize, Serialize } from './controls/types'\nimport {\n DeserializedFunction,\n deserializeFunction,\n isSerializedFunction,\n SerializedFunction,\n serializeFunction,\n} from './function-serialization'\nimport {\n LinkData,\n DateDescriptor as DateControl,\n DatePropControllerData,\n Types as PropControllerTypes,\n ImageDescriptor as ImageControl,\n ImageData as ImageControlValue,\n LinkDescriptor as LinkControl,\n LinkPropControllerData,\n ResponsiveLengthDescriptor,\n NumberOptions,\n NumberPropControllerData,\n NumberDescriptor,\n ResponsiveColorPropControllerData,\n ResponsiveColorDescriptor,\n CheckboxPropControllerData,\n CheckboxDescriptor as CheckboxControl,\n TextStyleDescriptor as TextStyleControl,\n TextStylePropControllerData,\n TextInputDescriptor as TextInputControl,\n} from '@makeswift/prop-controllers'\n\ntype SerializedShapeControlConfig<T extends Record<string, SerializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: SerializedPanelControlValueType<T[K]> }\n}\n\ntype SerializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape\n options: SerializedShapeControlConfig<U>\n}\n\nfunction serializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, PanelControl>,\n>(\n control: ShapeControl<T, U>,\n): [\n SerializedShapeControl<\n T,\n { [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>> }\n >,\n Transferable[],\n] {\n const { type } = control.options\n const transferables: Transferable[] = []\n const serializedType = {} as {\n [K in keyof U]: SerializedPanelControl<PanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n const [serializedControl, serializedControlTransferables] = serializeControl(control)\n\n serializedType[key as keyof typeof type] = serializedControl as SerializedPanelControl\n transferables.push(...serializedControlTransferables)\n })\n\n // @ts-expect-error: preset types are incompatible\n return [{ ...control, options: { ...control.options, type: serializedType } }, transferables]\n}\n\ntype DeserializedShapeControlConfig<T extends Record<string, DeserializedPanelControl>> = {\n type: T\n preset?: { [K in keyof T]?: DeserializedPanelControlValueType<T[K]> }\n}\n\ntype DeserializedShapeControl<\n _T extends Record<string, Data>,\n U extends Record<string, DeserializedPanelControl>,\n> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Shape\n options: DeserializedShapeControlConfig<U>\n}\n\nfunction deserializeShapeControl<\n T extends Record<string, Data>,\n U extends Record<string, SerializedPanelControl>,\n>(\n control: SerializedShapeControl<T, U>,\n): DeserializedShapeControl<\n T,\n { [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>> }\n> {\n const { type } = control.options\n const deserializedType = {} as {\n [K in keyof U]: DeserializedPanelControl<SerializedPanelControlValueType<U[K]>>\n }\n\n Object.entries(type).forEach(([key, control]) => {\n deserializedType[key as keyof typeof type] = deserializeControl(\n control,\n ) as DeserializedPanelControl\n })\n\n // @ts-expect-error: preset types are incompatible\n return { ...control, options: { ...control.options, type: deserializedType } }\n}\n\ntype SerializedListControlConfig<T extends Data> = {\n type: SerializedPanelControl<T>\n label?: string\n getItemLabel?: SerializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype SerializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.List\n options: SerializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction serializeListControl<T extends Data>(\n control: ListControl<ListControlValue<T>>,\n): [SerializedListControl<ListControlValue<T>>, Transferable[]] {\n const { type, getItemLabel } = control.options\n const transferables: Transferable[] = []\n\n const [serializedType, serializedTypeTransferables] = serializeControl(type)\n const serializedGetItemLabel = getItemLabel && serializeFunction(getItemLabel)\n\n transferables.push(...serializedTypeTransferables)\n if (serializedGetItemLabel != null) transferables.push(serializedGetItemLabel)\n\n return [\n {\n ...control,\n options: {\n ...control.options,\n type: serializedType as SerializedPanelControl,\n getItemLabel: serializedGetItemLabel,\n },\n },\n transferables,\n ]\n}\n\ntype DeserializedListControlConfig<T extends Data> = {\n type: DeserializedPanelControl<T>\n label?: string\n getItemLabel?: DeserializedFunction<Exclude<ListControlConfig<T>['getItemLabel'], undefined>>\n preset?: ListControlValue<T>\n defaultValue?: ListControlValue<T>\n}\n\ntype DeserializedListControl<T extends ListControlValue = ListControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.List\n options: DeserializedListControlConfig<T extends ListControlValue<infer U> ? U : never>\n}\n\nfunction deserializeListControl<T extends Data>(\n serializedControl: SerializedListControl<ListControlValue<T>>,\n): DeserializedListControl<ListControlValue<T>> {\n const { type, getItemLabel } = serializedControl.options\n\n const deserializedType = deserializeControl(type) as DeserializedPanelControl\n const deserializedGetItemLabel = getItemLabel && deserializeFunction(getItemLabel)\n\n return {\n ...serializedControl,\n options: {\n ...serializedControl.options,\n type: deserializedType,\n getItemLabel: deserializedGetItemLabel,\n },\n }\n}\n\ntype SerializedTypeaheadControlConfig<T extends Data> = {\n getItems: SerializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype SerializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead\n options: SerializedTypeaheadControlConfig<T['value']>\n}\n\nfunction serializeTypeaheadControl<T extends Data>(\n control: TypeaheadControl<TypeaheadControlValue<T>>,\n): [SerializedTypeaheadControl<TypeaheadControlValue<T>>, Transferable[]] {\n const { getItems } = control.options\n\n const serializedGetItems = getItems && serializeFunction(getItems)\n\n return [\n { ...control, options: { ...control.options, getItems: serializedGetItems } },\n serializedGetItems == null ? [] : [serializedGetItems],\n ]\n}\n\ntype DeserializedTypeaheadControlConfig<T extends Data> = {\n getItems: DeserializedFunction<TypeaheadControlConfig<T>['getItems']>\n label?: string\n preset?: TypeaheadControlValue<T>\n defaultValue?: TypeaheadControlValue<T>\n}\n\ntype DeserializedTypeaheadControl<T extends TypeaheadControlValue = TypeaheadControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.Typeahead\n options: DeserializedTypeaheadControlConfig<T['value']>\n}\n\nfunction deserializeTypeaheadControl<T extends Data>(\n serializedControl: SerializedTypeaheadControl<TypeaheadControlValue<T>>,\n): DeserializedTypeaheadControl<TypeaheadControlValue<T>> {\n const { getItems } = serializedControl.options\n\n const deserializedGetItems = getItems && deserializeFunction(getItems)\n\n return {\n ...serializedControl,\n options: { ...serializedControl.options, getItems: deserializedGetItems },\n }\n}\n\ntype SerializedConfig<T> =\n | T\n | SerializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\nexport type DeserializedConfig<T> =\n | T\n | DeserializedFunction<(props: Record<string, unknown>, deviceMode: Device) => T>\n\ntype SerializedControlDef<P extends PropDef> = Descriptor<P> & {\n options: SerializedConfig<OptionsType<P>>\n}\n\nfunction serializeControlDef<P extends PropDef>(\n control: Descriptor<P>,\n): [SerializedControlDef<P>, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\nexport type DeserializedControlDef<P extends PropDef> = Descriptor<P> & {\n options: DeserializedConfig<OptionsType<P>>\n}\n\nfunction deserializeControlDef<P extends PropDef>(\n serializedControl: SerializedControlDef<P>,\n): DeserializedControlDef<P> {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype GapYControlConfig = {\n preset?: GapYPropControllerData\n label?: string\n defaultValue?: GapData\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}\n\ntype SerializedGapYControl<_T = GapYPropControllerData> = {\n type: typeof PropControllerTypes.GapY\n options: SerializedConfig<GapYControlConfig>\n}\n\nfunction serializeGapYControl(control: GapYDescriptor): [SerializedGapYControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedGapYControl<_T = GapYPropControllerData> = {\n type: typeof PropControllerTypes.GapY\n options: DeserializedConfig<GapYControlConfig>\n}\n\nfunction deserializeGapYControl(serializedControl: SerializedGapYControl): DeserializedGapYControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype CheckboxControlConfig = {\n preset?: CheckboxPropControllerData\n label: string\n hidden?: boolean\n}\n\ntype SerializedCheckboxControl<_T = CheckboxPropControllerData> = {\n type: typeof PropControllerTypes.Checkbox\n options: SerializedConfig<CheckboxControlConfig>\n}\n\nfunction serializeCheckboxControl(\n control: CheckboxControl,\n): [SerializedCheckboxControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedCheckboxControl<_T = CheckboxPropControllerData> = {\n type: typeof PropControllerTypes.Checkbox\n options: DeserializedConfig<CheckboxControlConfig>\n}\n\nfunction deserializeCheckboxControl(\n serializedControl: SerializedCheckboxControl,\n): DeserializedCheckboxControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ResponsiveColorControlConfig = { label?: string; placeholder?: string; hidden?: boolean }\n\ntype SerializedResponsiveColorControl<_T = ResponsiveColorPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveColor\n options: SerializedConfig<ResponsiveColorControlConfig>\n}\n\nfunction serializeResponsiveColorControl(\n control: ResponsiveColorDescriptor,\n): [SerializedResponsiveColorControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveColorControl<_T = ResponsiveColorPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveColor\n options: DeserializedConfig<ResponsiveColorControlConfig>\n}\n\nfunction deserializeResponsiveColorControl(\n serializedControl: SerializedResponsiveColorControl,\n): DeserializedResponsiveColorControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\ntype SerializedNumberControl<_T = NumberPropControllerData> = {\n type: typeof PropControllerTypes.Number\n options: SerializedConfig<NumberOptions>\n}\n\nfunction serializeNumberControl(\n control: NumberDescriptor,\n): [SerializedNumberControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedNumberControl<_T = NumberPropControllerData> = {\n type: typeof PropControllerTypes.Number\n options: DeserializedConfig<NumberOptions>\n}\n\nfunction deserializeNumberControl(\n serializedControl: SerializedNumberControl,\n): DeserializedNumberControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\ntype ResponsiveIconRadioGroupControlConfig<T extends string = string, U extends T = T> = {\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}\n\ntype SerializedResponsiveIconRadioGroupControl<_T = ResponsiveIconRadioGroupControlValue> = {\n type: typeof Controls.Types.ResponsiveIconRadioGroup\n options: SerializedConfig<ResponsiveIconRadioGroupControlConfig>\n}\n\nfunction serializeResponsiveIconRadioGroupControl(\n control: ResponsiveIconRadioGroupControl,\n): [SerializedResponsiveIconRadioGroupControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveIconRadioGroupControl<_T = ResponsiveIconRadioGroupControlValue> = {\n type: typeof Controls.Types.ResponsiveIconRadioGroup\n options: DeserializedConfig<ResponsiveIconRadioGroupControlConfig>\n}\n\nfunction deserializeResponsiveIconRadioGroupControl(\n serializedControl: SerializedResponsiveIconRadioGroupControl,\n): DeserializedResponsiveIconRadioGroupControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype DateControlConfig = { preset?: DatePropControllerData }\n\ntype SerializedDateControl<_T = DatePropControllerData> = {\n type: typeof PropControllerTypes.Date\n options: SerializedConfig<DateControlConfig>\n}\n\nfunction serializeDateControl(control: DateControl): [SerializedDateControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedDateControl<_T = DatePropControllerData> = {\n type: typeof PropControllerTypes.Date\n options: DeserializedConfig<DateControlConfig>\n}\n\nfunction deserializeDateControl(serializedControl: SerializedDateControl): DeserializedDateControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype LinkControlConfig = {\n preset?: LinkPropControllerData\n label?: string\n defaultValue?: LinkPropControllerData\n options?: { value: LinkData['type']; label: string }[]\n hidden?: boolean\n}\n\ntype SerializedLinkControl<_T = LinkPropControllerData> = {\n type: typeof PropControllerTypes.Link\n options: SerializedConfig<LinkControlConfig>\n}\n\nfunction serializeLinkControl(control: LinkControl): [SerializedLinkControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedLinkControl<_T = LinkPropControllerData> = {\n type: typeof PropControllerTypes.Link\n options: DeserializedConfig<LinkControlConfig>\n}\n\nfunction deserializeLinkControl(serializedControl: SerializedLinkControl): DeserializedLinkControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype TextInputControlConfig = { label?: string; placeholder?: string; hidden?: boolean }\n\ntype TextInputControlValue = string\n\ntype SerializedTextInputControl<_T = TextInputControlValue> = {\n type: typeof PropControllerTypes.TextInput\n options: SerializedConfig<TextInputControlConfig>\n}\n\nfunction serializeTextInputControl(\n control: TextInputControl,\n): [SerializedTextInputControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedTextInputControl<_T = TextInputControlValue> = {\n type: typeof PropControllerTypes.TextInput\n options: DeserializedConfig<TextInputControlConfig>\n}\n\nfunction deserializeTextInputControl(\n serializedControl: SerializedTextInputControl,\n): DeserializedTextInputControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedResponsiveSelectControl<_T = ResponsiveSelectControlValue> = {\n type: typeof Controls.Types.ResponsiveSelect\n options: SerializedConfig<ResponsiveSelectControlConfig>\n}\n\nfunction serializeResponsiveSelectControl(\n control: ResponsiveSelectControl,\n): [SerializedResponsiveSelectControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype ResponsiveSelectControlConfig<T extends string = string, U extends T = T> = {\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}\n\ntype DeserializedResponsiveSelectControl<_T = ResponsiveSelectControlValue> = {\n type: typeof Controls.Types.ResponsiveSelect\n options: DeserializedConfig<ResponsiveSelectControlConfig>\n}\n\nfunction deserializeResponsiveSelectControl(\n serializedControl: SerializedResponsiveSelectControl,\n): DeserializedResponsiveSelectControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedResponsiveLengthControl<_T = ResponsiveLengthPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveLength\n options: SerializedConfig<ResponsiveLengthOptions>\n}\n\nfunction serializeResponsiveLengthControl(\n control: ResponsiveLengthDescriptor,\n): [SerializedResponsiveLengthControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedResponsiveLengthControl<_T = ResponsiveLengthPropControllerData> = {\n type: typeof PropControllerTypes.ResponsiveLength\n options: DeserializedConfig<ResponsiveLengthOptions>\n}\n\nfunction deserializeResponsiveLengthControl(\n serializedControl: SerializedResponsiveLengthControl,\n): DeserializedResponsiveLengthControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype SerializedTextStyleControl<_T = TextStylePropControllerData> = {\n type: typeof PropControllerTypes.TextStyle\n options: SerializedConfig<TextStyleControlConfig>\n}\n\nfunction serializeTextStyleControl(\n control: TextStyleControl,\n): [SerializedTextStyleControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype TextStyleControlConfig = {\n preset?: TextStylePropControllerData\n label?: string\n hidden?: boolean\n}\n\ntype DeserializedTextStyleControl<_T = TextStylePropControllerData> = {\n type: typeof PropControllerTypes.TextStyle\n options: DeserializedConfig<TextStyleControlConfig>\n}\n\nfunction deserializeTextStyleControl(\n serializedControl: SerializedTextStyleControl,\n): DeserializedTextStyleControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype ImageControlConfig = { label?: string; hidden?: boolean }\n\ntype SerializedImageControl<_T = ImageControlValue> = {\n type: typeof PropControllerTypes.Image\n options: SerializedConfig<ImageControlConfig>\n}\n\nfunction serializeImageControl(control: ImageControl): [SerializedImageControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedImageControl<_T = ImageControlValue> = {\n type: typeof PropControllerTypes.Image\n options: DeserializedConfig<ImageControlConfig>\n}\n\nfunction deserializeImageControl(\n serializedControl: SerializedImageControl,\n): DeserializedImageControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\ntype RichTextControlConfig = { preset?: RichTextControlValue }\n\ntype SerializedRichTextControl<_T = RichTextControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.RichText\n options: SerializedConfig<RichTextControlConfig>\n}\n\nfunction serializeRichTextControl(\n control: RichTextControl,\n): [SerializedRichTextControl, Transferable[]] {\n const { options } = control\n\n if (typeof options !== 'function') return [{ ...control, options }, []]\n\n const serializedOptions = serializeFunction(options)\n\n return [{ ...control, options: serializedOptions }, [serializedOptions]]\n}\n\ntype DeserializedRichTextControl<_T = RichTextControlValue> = {\n type: typeof DELETED_PROP_CONTROLLER_TYPES.RichText\n options: DeserializedConfig<RichTextControlConfig>\n}\n\nfunction deserializeRichTextControl(\n serializedControl: SerializedRichTextControl,\n): DeserializedRichTextControl {\n const { options } = serializedControl\n\n if (!isSerializedFunction(options)) return { ...serializedControl, options }\n\n const deserializedOptions = deserializeFunction(options)\n\n return { ...serializedControl, options: deserializedOptions }\n}\n\nexport type SerializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | Descriptor<typeof GapX>\n | GapYDescriptor<T>\n | Descriptor<typeof ResponsiveNumber>\n | CheckboxControl<T>\n | ResponsiveColorDescriptor<T>\n | NumberDescriptor<T>\n | ResponsiveIconRadioGroupControl<\n T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue\n >\n | ResponsiveSelectControl<\n T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue\n >\n | ResponsiveLengthDescriptor<T>\n | DateControl<T>\n | LinkControl<T>\n | TextInputControl<T>\n | TextStyleControl<T>\n | ImageControl<T>\n | RichTextControl<T>\n | RichTextV2ControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | StyleV2ControlDefinition\n >\n | SerializedListControl<T extends ListControlValue ? T : ListControlValue>\n | SerializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | SerializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | SerializedControlDef<typeof GapX>\n | SerializedGapYControl<T>\n | SerializedControlDef<typeof ResponsiveNumber>\n | SerializedCheckboxControl<T>\n | SerializedResponsiveColorControl<T>\n | SerializedNumberControl<T>\n | SerializedResponsiveIconRadioGroupControl<T>\n | SerializedResponsiveSelectControl<T>\n | SerializedResponsiveLengthControl<T>\n | SerializedDateControl<T>\n | SerializedLinkControl<T>\n | SerializedTextInputControl<T>\n | SerializedTextStyleControl<T>\n | SerializedImageControl<T>\n | SerializedRichTextControl<T>\n | Serialize<RichTextV2ControlDefinition>\n | Serialize<ComboboxControlDefinition>\n | Serialize<ShapeControlDefinition>\n | Serialize<ListControlDefinition>\n | Serialize<StyleV2ControlDefinition>\n\ntype SerializedPanelControl<T extends Data = Data> = Extract<\n SerializedControl<T>,\n { type: PanelControlType }\n>\n\ntype SerializedPanelControlValueType<T extends SerializedPanelControl> =\n T extends SerializedPanelControl<infer U> ? U : never\n\nexport type DeserializedControl<T extends Data = Data> =\n | Exclude<\n Control<T>,\n | ListControl<T extends ListControlValue ? T : ListControlValue>\n | ShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | TypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | Descriptor<typeof GapX>\n | GapYDescriptor<T>\n | Descriptor<typeof ResponsiveNumber>\n | CheckboxControl<T>\n | ResponsiveColorDescriptor<T>\n | NumberDescriptor<T>\n | ResponsiveIconRadioGroupControl<\n T extends ResponsiveIconRadioGroupControlValue ? T : ResponsiveIconRadioGroupControlValue\n >\n | ResponsiveSelectControl<\n T extends ResponsiveSelectControlValue ? T : ResponsiveSelectControlValue\n >\n | ResponsiveLengthDescriptor<T>\n | DateControl<T>\n | LinkControl<T>\n | TextInputControl<T>\n | TextStyleControl<T>\n | ImageControl<T>\n | RichTextControl<T>\n | RichTextV2ControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | StyleV2ControlDefinition\n >\n | DeserializedListControl<T extends ListControlValue ? T : ListControlValue>\n | DeserializedShapeControl<T extends ShapeControlValue ? T : ShapeControlValue, any>\n | DeserializedTypeaheadControl<T extends TypeaheadControlValue ? T : TypeaheadControlValue>\n | DeserializedControlDef<typeof GapX>\n | DeserializedGapYControl<T>\n | DeserializedControlDef<typeof ResponsiveNumber>\n | DeserializedCheckboxControl<T>\n | DeserializedResponsiveColorControl<T>\n | DeserializedNumberControl<T>\n | DeserializedResponsiveIconRadioGroupControl<T>\n | DeserializedResponsiveSelectControl<T>\n | DeserializedResponsiveLengthControl<T>\n | DeserializedDateControl<T>\n | DeserializedLinkControl<T>\n | DeserializedTextInputControl<T>\n | DeserializedTextStyleControl<T>\n | DeserializedImageControl<T>\n | DeserializedRichTextControl<T>\n | Deserialize<Serialize<RichTextV2ControlDefinition>>\n | Deserialize<Serialize<ComboboxControlDefinition>>\n | Deserialize<Serialize<ShapeControlDefinition>>\n | Deserialize<Serialize<ListControlDefinition>>\n | Deserialize<Serialize<StyleV2ControlDefinition>>\n\nexport type DeserializedPanelControl<T extends Data = Data> = Extract<\n DeserializedControl<T>,\n { type: PanelControlType }\n>\n\ntype DeserializedPanelControlValueType<T extends DeserializedPanelControl> =\n T extends DeserializedPanelControl<infer U> ? U : never\n\nexport function serializeControl<T extends Data>(\n control: Control<T>,\n): [SerializedControl<T>, Transferable[]] {\n switch (control.type) {\n case PropControllerTypes.Checkbox:\n return serializeCheckboxControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.List:\n return serializeListControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.Shape:\n return serializeShapeControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.Typeahead:\n return serializeTypeaheadControl(control)\n\n case PropControllerTypes.GapX:\n return serializeControlDef<typeof GapX>(control)\n\n case PropControllerTypes.GapY:\n return serializeGapYControl(control)\n\n case PropControllerTypes.ResponsiveColor:\n return serializeResponsiveColorControl(control)\n\n case PropControllerTypes.ResponsiveNumber:\n return serializeControlDef<typeof ResponsiveNumber>(control)\n\n case PropControllerTypes.Number:\n return serializeNumberControl(control)\n\n case Controls.Types.ResponsiveIconRadioGroup:\n return serializeResponsiveIconRadioGroupControl(control)\n\n case Controls.Types.ResponsiveSelect:\n return serializeResponsiveSelectControl(control)\n\n case PropControllerTypes.ResponsiveLength:\n return serializeResponsiveLengthControl(control)\n\n case PropControllerTypes.Date:\n return serializeDateControl(control)\n\n case PropControllerTypes.Link:\n return serializeLinkControl(control)\n\n case PropControllerTypes.TextInput:\n return serializeTextInputControl(control)\n\n case PropControllerTypes.TextStyle:\n return serializeTextStyleControl(control)\n\n case PropControllerTypes.Image:\n return serializeImageControl(control)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText:\n return serializeRichTextControl(control)\n\n case RichTextV2ControlType:\n return serializeRichTextControlV2(control)\n\n case StyleV2ControlType:\n return serializeStyleV2Control(control)\n\n case ComboboxControlType:\n return serializeComboboxControlDefinition(control)\n\n case ShapeControlType:\n return serializeShapeControlDefinition(control)\n\n case ListControlType:\n return serializeListControlDefinition(control)\n\n default:\n return [control, []]\n }\n}\n\nexport function deserializeControl<T extends Data>(\n serializedControl: SerializedControl<T>,\n): DeserializedControl<T> {\n switch (serializedControl.type) {\n case PropControllerTypes.Checkbox:\n return deserializeCheckboxControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.List:\n return deserializeListControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.Shape:\n return deserializeShapeControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.Typeahead:\n return deserializeTypeaheadControl(serializedControl)\n\n case PropControllerTypes.GapX:\n return deserializeControlDef<typeof GapX>(serializedControl)\n\n case PropControllerTypes.GapY:\n return deserializeGapYControl(serializedControl)\n\n case PropControllerTypes.ResponsiveColor:\n return deserializeResponsiveColorControl(serializedControl)\n\n case PropControllerTypes.ResponsiveNumber:\n return deserializeControlDef<typeof ResponsiveNumber>(serializedControl)\n\n case PropControllerTypes.Number:\n return deserializeNumberControl(serializedControl)\n\n case Controls.Types.ResponsiveIconRadioGroup:\n return deserializeResponsiveIconRadioGroupControl(serializedControl)\n\n case Controls.Types.ResponsiveSelect:\n return deserializeResponsiveSelectControl(serializedControl)\n\n case PropControllerTypes.ResponsiveLength:\n return deserializeResponsiveLengthControl(serializedControl)\n\n case PropControllerTypes.Date:\n return deserializeDateControl(serializedControl)\n\n case PropControllerTypes.Link:\n return deserializeLinkControl(serializedControl)\n\n case PropControllerTypes.TextInput:\n return deserializeTextInputControl(serializedControl)\n\n case PropControllerTypes.TextStyle:\n return deserializeTextStyleControl(serializedControl)\n\n case PropControllerTypes.Image:\n return deserializeImageControl(serializedControl)\n\n case DELETED_PROP_CONTROLLER_TYPES.RichText:\n return deserializeRichTextControl(serializedControl)\n\n case RichTextV2ControlType:\n return deserializeRichTextControlV2(serializedControl)\n\n case StyleV2ControlType:\n return deserializeStyleV2Control(serializedControl)\n\n case ComboboxControlType:\n return deserializeComboboxControlDefinition(serializedControl)\n\n case ShapeControlType:\n return deserializeShapeControlDefinition(serializedControl)\n\n case ListControlType:\n return deserializeListControlDefinition(serializedControl)\n\n default:\n return serializedControl\n }\n}\n\nexport function serializeControls(\n controls: Record<string, Control>,\n): [Record<string, SerializedControl>, Transferable[]] {\n return Object.entries(controls).reduce(\n ([accControls, accTransferables], [key, control]) => {\n const [serializedControl, transferables] = serializeControl(control)\n\n return [{ ...accControls, [key]: serializedControl }, [...accTransferables, ...transferables]]\n },\n [{}, []] as [Record<string, SerializedControl>, Transferable[]],\n )\n}\n\nexport function deserializeControls(\n serializedControls: Record<string, SerializedControl>,\n): Record<string, DeserializedControl> {\n return Object.entries(serializedControls).reduce(\n (deserializedControls, [key, serializedControl]) => {\n return { ...deserializedControls, [key]: deserializeControl(serializedControl) }\n },\n {} as Record<string, DeserializedControl>,\n )\n}\n"],"mappings":"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","names":["control"]}