@makeswift/runtime 0.13.1 → 0.14.1
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.
- package/api/package.json +5 -0
- package/box-model/package.json +5 -0
- package/builder/package.json +5 -0
- package/components/package.json +5 -0
- package/controls/package.json +5 -0
- package/dist/cjs/api/graphql/client.js +50 -0
- package/dist/cjs/api/graphql/client.js.map +1 -0
- package/dist/cjs/api/graphql/documents/fragments.js +223 -0
- package/dist/cjs/api/graphql/documents/fragments.js.map +1 -0
- package/dist/cjs/api/graphql/documents/index.js +25 -0
- package/dist/cjs/api/graphql/documents/index.js.map +1 -0
- package/dist/cjs/api/graphql/documents/queries.js +144 -0
- package/dist/cjs/api/graphql/documents/queries.js.map +1 -0
- package/dist/cjs/api/graphql/fragments.js +40 -0
- package/dist/cjs/api/graphql/fragments.js.map +1 -0
- package/dist/cjs/api/graphql/generated/fragment-document-nodes.js +423 -0
- package/dist/cjs/api/graphql/generated/fragment-document-nodes.js.map +1 -0
- package/dist/cjs/api/graphql/generated/types.js +32 -0
- package/dist/cjs/api/graphql/generated/types.js.map +1 -0
- package/dist/cjs/api/graphql/types.js +40 -0
- package/dist/cjs/api/graphql/types.js.map +1 -0
- package/dist/cjs/api/index.js +25 -0
- package/dist/cjs/api/index.js.map +1 -0
- package/dist/cjs/api/react.js +208 -0
- package/dist/cjs/api/react.js.map +1 -0
- package/dist/cjs/box-model.js +33 -0
- package/dist/cjs/box-model.js.map +1 -0
- package/dist/cjs/builder/index.js +23 -0
- package/dist/cjs/builder/index.js.map +1 -0
- package/dist/cjs/builder/serialization/control-serialization.js +443 -0
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/combobox.js +45 -0
- package/dist/cjs/builder/serialization/controls/combobox.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/list.js +50 -0
- package/dist/cjs/builder/serialization/controls/list.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js +106 -0
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/shape.js +54 -0
- package/dist/cjs/builder/serialization/controls/shape.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/style-v2.js +62 -0
- package/dist/cjs/builder/serialization/controls/style-v2.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/types.js +17 -0
- package/dist/cjs/builder/serialization/controls/types.js.map +1 -0
- package/dist/cjs/builder/serialization/function-serialization.js +57 -0
- package/dist/cjs/builder/serialization/function-serialization.js.map +1 -0
- package/dist/cjs/builder/serialization/index.js +25 -0
- package/dist/cjs/builder/serialization/index.js.map +1 -0
- package/dist/cjs/components/builtin/Box/Box.js +190 -0
- package/dist/cjs/components/builtin/Box/Box.js.map +1 -0
- package/dist/cjs/components/builtin/Box/animations.js +167 -0
- package/dist/cjs/components/builtin/Box/animations.js.map +1 -0
- package/dist/cjs/components/builtin/Box/components/Placeholder/index.js +67 -0
- package/dist/cjs/components/builtin/Box/components/Placeholder/index.js.map +1 -0
- package/dist/cjs/components/builtin/Box/constants.js +47 -0
- package/dist/cjs/components/builtin/Box/constants.js.map +1 -0
- package/dist/cjs/components/builtin/Box/index.js +53 -0
- package/dist/cjs/components/builtin/Box/index.js.map +1 -0
- package/dist/cjs/components/builtin/Box/register.js +190 -0
- package/dist/cjs/components/builtin/Box/register.js.map +1 -0
- package/dist/cjs/components/builtin/Button/Button.js +237 -0
- package/dist/cjs/components/builtin/Button/Button.js.map +1 -0
- package/dist/cjs/components/builtin/Button/contants.js +17 -0
- package/dist/cjs/components/builtin/Button/contants.js.map +1 -0
- package/dist/cjs/components/builtin/Button/index.js +35 -0
- package/dist/cjs/components/builtin/Button/index.js.map +1 -0
- package/dist/cjs/components/builtin/Button/register.js +109 -0
- package/dist/cjs/components/builtin/Button/register.js.map +1 -0
- package/dist/cjs/components/builtin/Carousel/Carousel.js +408 -0
- package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -0
- package/dist/cjs/components/builtin/Carousel/index.js +35 -0
- package/dist/cjs/components/builtin/Carousel/index.js.map +1 -0
- package/dist/cjs/components/builtin/Carousel/register.js +144 -0
- package/dist/cjs/components/builtin/Carousel/register.js.map +1 -0
- package/dist/cjs/components/builtin/Countdown/Countdown.js +314 -0
- package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -0
- package/dist/cjs/components/builtin/Countdown/index.js +35 -0
- package/dist/cjs/components/builtin/Countdown/index.js.map +1 -0
- package/dist/cjs/components/builtin/Countdown/register.js +139 -0
- package/dist/cjs/components/builtin/Countdown/register.js.map +1 -0
- package/dist/cjs/components/builtin/Divider/Divider.js +97 -0
- package/dist/cjs/components/builtin/Divider/Divider.js.map +1 -0
- package/dist/cjs/components/builtin/Divider/index.js +35 -0
- package/dist/cjs/components/builtin/Divider/index.js.map +1 -0
- package/dist/cjs/components/builtin/Divider/register.js +78 -0
- package/dist/cjs/components/builtin/Divider/register.js.map +1 -0
- package/dist/cjs/components/builtin/Embed/Embed.js +107 -0
- package/dist/cjs/components/builtin/Embed/Embed.js.map +1 -0
- package/dist/cjs/components/builtin/Embed/index.js +35 -0
- package/dist/cjs/components/builtin/Embed/index.js.map +1 -0
- package/dist/cjs/components/builtin/Embed/register.js +59 -0
- package/dist/cjs/components/builtin/Embed/register.js.map +1 -0
- package/dist/cjs/components/builtin/Form/Form.js +402 -0
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js +181 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +89 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/EmailTableField/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/EmailTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js +78 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Input/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js +85 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/Label/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/LongTextTableField/index.js +44 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/LongTextTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +98 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/NumberTableField/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/NumberTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +90 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js +180 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +96 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +141 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/index.js +44 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/SingleSelectTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/URLTableField/index.js +55 -0
- package/dist/cjs/components/builtin/Form/components/Field/components/URLTableField/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/index.js +136 -0
- package/dist/cjs/components/builtin/Form/components/Field/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js +161 -0
- package/dist/cjs/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Placeholder/index.js +99 -0
- package/dist/cjs/components/builtin/Form/components/Placeholder/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/components/Spinner/index.js +48 -0
- package/dist/cjs/components/builtin/Form/components/Spinner/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/context/FormContext.js +63 -0
- package/dist/cjs/components/builtin/Form/context/FormContext.js.map +1 -0
- package/dist/cjs/components/builtin/Form/index.js +35 -0
- package/dist/cjs/components/builtin/Form/index.js.map +1 -0
- package/dist/cjs/components/builtin/Form/register.js +181 -0
- package/dist/cjs/components/builtin/Form/register.js.map +1 -0
- package/dist/cjs/components/builtin/Form/types.js +17 -0
- package/dist/cjs/components/builtin/Form/types.js.map +1 -0
- package/dist/cjs/components/builtin/Image/Image.js +152 -0
- package/dist/cjs/components/builtin/Image/Image.js.map +1 -0
- package/dist/cjs/components/builtin/Image/index.js +35 -0
- package/dist/cjs/components/builtin/Image/index.js.map +1 -0
- package/dist/cjs/components/builtin/Image/register.js +65 -0
- package/dist/cjs/components/builtin/Image/register.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/Navigation.js +231 -0
- package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js +193 -0
- package/dist/cjs/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js +55 -0
- package/dist/cjs/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +120 -0
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js +154 -0
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/index.js +35 -0
- package/dist/cjs/components/builtin/Navigation/index.js.map +1 -0
- package/dist/cjs/components/builtin/Navigation/register.js +165 -0
- package/dist/cjs/components/builtin/Navigation/register.js.map +1 -0
- package/dist/cjs/components/builtin/Root/Root.js +66 -0
- package/dist/cjs/components/builtin/Root/Root.js.map +1 -0
- package/dist/cjs/components/builtin/Root/components/Placeholder/index.js +65 -0
- package/dist/cjs/components/builtin/Root/components/Placeholder/index.js.map +1 -0
- package/dist/cjs/components/builtin/Root/index.js +35 -0
- package/dist/cjs/components/builtin/Root/index.js.map +1 -0
- package/dist/cjs/components/builtin/Root/register.js +58 -0
- package/dist/cjs/components/builtin/Root/register.js.map +1 -0
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js +150 -0
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -0
- package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +63 -0
- package/dist/cjs/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -0
- package/dist/cjs/components/builtin/SocialLinks/index.js +35 -0
- package/dist/cjs/components/builtin/SocialLinks/index.js.map +1 -0
- package/dist/cjs/components/builtin/SocialLinks/options.js +81 -0
- package/dist/cjs/components/builtin/SocialLinks/options.js.map +1 -0
- package/dist/cjs/components/builtin/SocialLinks/register.js +175 -0
- package/dist/cjs/components/builtin/SocialLinks/register.js.map +1 -0
- package/dist/cjs/components/builtin/Text/Text.js +30 -0
- package/dist/cjs/components/builtin/Text/Text.js.map +1 -0
- package/dist/cjs/components/builtin/Text/index.js +35 -0
- package/dist/cjs/components/builtin/Text/index.js.map +1 -0
- package/dist/cjs/components/builtin/Text/register.js +81 -0
- package/dist/cjs/components/builtin/Text/register.js.map +1 -0
- package/dist/cjs/components/builtin/Video/Video.js +78 -0
- package/dist/cjs/components/builtin/Video/Video.js.map +1 -0
- package/dist/cjs/components/builtin/Video/index.js +35 -0
- package/dist/cjs/components/builtin/Video/index.js.map +1 -0
- package/dist/cjs/components/builtin/Video/register.js +63 -0
- package/dist/cjs/components/builtin/Video/register.js.map +1 -0
- package/dist/cjs/components/builtin/constants.js +43 -0
- package/dist/cjs/components/builtin/constants.js.map +1 -0
- package/dist/cjs/components/builtin/index.js +81 -0
- package/dist/cjs/components/builtin/index.js.map +1 -0
- package/dist/cjs/components/builtin/register.js +71 -0
- package/dist/cjs/components/builtin/register.js.map +1 -0
- package/dist/cjs/components/hooks/index.js +31 -0
- package/dist/cjs/components/hooks/index.js.map +1 -0
- package/dist/cjs/components/hooks/useBackgrounds.js +137 -0
- package/dist/cjs/components/hooks/useBackgrounds.js.map +1 -0
- package/dist/cjs/components/hooks/useBorder.js +55 -0
- package/dist/cjs/components/hooks/useBorder.js.map +1 -0
- package/dist/cjs/components/hooks/useBoxShadow.js +67 -0
- package/dist/cjs/components/hooks/useBoxShadow.js.map +1 -0
- package/dist/cjs/components/hooks/useIsomorphicLayoutEffect.js +31 -0
- package/dist/cjs/components/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/cjs/components/hooks/useMediaQuery.js +65 -0
- package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -0
- package/dist/cjs/components/hooks/useResponsiveColor.js +42 -0
- package/dist/cjs/components/hooks/useResponsiveColor.js.map +1 -0
- package/dist/cjs/components/hooks/useTableFormFieldRefs.js +67 -0
- package/dist/cjs/components/hooks/useTableFormFieldRefs.js.map +1 -0
- package/dist/cjs/components/icons/ArrowDown8.js +32 -0
- package/dist/cjs/components/icons/ArrowDown8.js.map +1 -0
- package/dist/cjs/components/icons/CaretDown8.js +32 -0
- package/dist/cjs/components/icons/CaretDown8.js.map +1 -0
- package/dist/cjs/components/icons/Check12.js +39 -0
- package/dist/cjs/components/icons/Check12.js.map +1 -0
- package/dist/cjs/components/icons/ChevronDown8.js +39 -0
- package/dist/cjs/components/icons/ChevronDown8.js.map +1 -0
- package/dist/cjs/components/icons/LogoAngellist20.js +32 -0
- package/dist/cjs/components/icons/LogoAngellist20.js.map +1 -0
- package/dist/cjs/components/icons/LogoCodepen20.js +32 -0
- package/dist/cjs/components/icons/LogoCodepen20.js.map +1 -0
- package/dist/cjs/components/icons/LogoDiscord20.js +32 -0
- package/dist/cjs/components/icons/LogoDiscord20.js.map +1 -0
- package/dist/cjs/components/icons/LogoDribbble20.js +32 -0
- package/dist/cjs/components/icons/LogoDribbble20.js.map +1 -0
- package/dist/cjs/components/icons/LogoFacebook20.js +32 -0
- package/dist/cjs/components/icons/LogoFacebook20.js.map +1 -0
- package/dist/cjs/components/icons/LogoGithub20.js +32 -0
- package/dist/cjs/components/icons/LogoGithub20.js.map +1 -0
- package/dist/cjs/components/icons/LogoInstagram20.js +32 -0
- package/dist/cjs/components/icons/LogoInstagram20.js.map +1 -0
- package/dist/cjs/components/icons/LogoLinkedin20.js +32 -0
- package/dist/cjs/components/icons/LogoLinkedin20.js.map +1 -0
- package/dist/cjs/components/icons/LogoMedium20.js +32 -0
- package/dist/cjs/components/icons/LogoMedium20.js.map +1 -0
- package/dist/cjs/components/icons/LogoPinterest20.js +32 -0
- package/dist/cjs/components/icons/LogoPinterest20.js.map +1 -0
- package/dist/cjs/components/icons/LogoReddit20.js +32 -0
- package/dist/cjs/components/icons/LogoReddit20.js.map +1 -0
- package/dist/cjs/components/icons/LogoRss20.js +32 -0
- package/dist/cjs/components/icons/LogoRss20.js.map +1 -0
- package/dist/cjs/components/icons/LogoSlack20.js +32 -0
- package/dist/cjs/components/icons/LogoSlack20.js.map +1 -0
- package/dist/cjs/components/icons/LogoSnapchat20.js +32 -0
- package/dist/cjs/components/icons/LogoSnapchat20.js.map +1 -0
- package/dist/cjs/components/icons/LogoSoundcloud20.js +32 -0
- package/dist/cjs/components/icons/LogoSoundcloud20.js.map +1 -0
- package/dist/cjs/components/icons/LogoSpotify20.js +32 -0
- package/dist/cjs/components/icons/LogoSpotify20.js.map +1 -0
- package/dist/cjs/components/icons/LogoTelegram20.js +32 -0
- package/dist/cjs/components/icons/LogoTelegram20.js.map +1 -0
- package/dist/cjs/components/icons/LogoTumblr20.js +32 -0
- package/dist/cjs/components/icons/LogoTumblr20.js.map +1 -0
- package/dist/cjs/components/icons/LogoTwitch20.js +32 -0
- package/dist/cjs/components/icons/LogoTwitch20.js.map +1 -0
- package/dist/cjs/components/icons/LogoTwitter20.js +32 -0
- package/dist/cjs/components/icons/LogoTwitter20.js.map +1 -0
- package/dist/cjs/components/icons/LogoVimeo20.js +32 -0
- package/dist/cjs/components/icons/LogoVimeo20.js.map +1 -0
- package/dist/cjs/components/icons/LogoWhatsapp20.js +32 -0
- package/dist/cjs/components/icons/LogoWhatsapp20.js.map +1 -0
- package/dist/cjs/components/icons/LogoX20.js +32 -0
- package/dist/cjs/components/icons/LogoX20.js.map +1 -0
- package/dist/cjs/components/icons/LogoYelp20.js +32 -0
- package/dist/cjs/components/icons/LogoYelp20.js.map +1 -0
- package/dist/cjs/components/icons/LogoYoutube20.js +32 -0
- package/dist/cjs/components/icons/LogoYoutube20.js.map +1 -0
- package/dist/cjs/components/icons/MobileMenu28.js +32 -0
- package/dist/cjs/components/icons/MobileMenu28.js.map +1 -0
- package/dist/cjs/components/icons/Plus8.js +32 -0
- package/dist/cjs/components/icons/Plus8.js.map +1 -0
- package/dist/cjs/components/icons/Spinner20.js +35 -0
- package/dist/cjs/components/icons/Spinner20.js.map +1 -0
- package/dist/cjs/components/icons/Times16.js +39 -0
- package/dist/cjs/components/icons/Times16.js.map +1 -0
- package/dist/cjs/components/icons/Warning20.js +39 -0
- package/dist/cjs/components/icons/Warning20.js.map +1 -0
- package/dist/cjs/components/index.js +27 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/components/page/BodySnippet.js +65 -0
- package/dist/cjs/components/page/BodySnippet.js.map +1 -0
- package/dist/cjs/components/page/Page.js +216 -0
- package/dist/cjs/components/page/Page.js.map +1 -0
- package/dist/cjs/components/page/index.js +23 -0
- package/dist/cjs/components/page/index.js.map +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +148 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js +223 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/Parallax/index.js +114 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/Parallax/index.js.map +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/index.js +68 -0
- package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -0
- package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js +58 -0
- package/dist/cjs/components/shared/FallbackComponent/FallbackComponent.js.map +1 -0
- package/dist/cjs/components/shared/FallbackComponent/index.js +23 -0
- package/dist/cjs/components/shared/FallbackComponent/index.js.map +1 -0
- package/dist/cjs/components/shared/GutterContainer/index.js +45 -0
- package/dist/cjs/components/shared/GutterContainer/index.js.map +1 -0
- package/dist/cjs/components/shared/Link/index.js +133 -0
- package/dist/cjs/components/shared/Link/index.js.map +1 -0
- package/dist/cjs/components/shared/grid-item.js +62 -0
- package/dist/cjs/components/shared/grid-item.js.map +1 -0
- package/dist/cjs/components/utils/colorToString.js +31 -0
- package/dist/cjs/components/utils/colorToString.js.map +1 -0
- package/dist/cjs/components/utils/columns.js +40 -0
- package/dist/cjs/components/utils/columns.js.map +1 -0
- package/dist/cjs/components/utils/drop-first.js +17 -0
- package/dist/cjs/components/utils/drop-first.js.map +1 -0
- package/dist/cjs/components/utils/isNonNullable.js +31 -0
- package/dist/cjs/components/utils/isNonNullable.js.map +1 -0
- package/dist/cjs/components/utils/placeholders.js +38 -0
- package/dist/cjs/components/utils/placeholders.js.map +1 -0
- package/dist/cjs/components/utils/responsive-style.js +258 -0
- package/dist/cjs/components/utils/responsive-style.js.map +1 -0
- package/dist/cjs/components/utils/types.js +17 -0
- package/dist/cjs/components/utils/types.js.map +1 -0
- package/dist/cjs/controls/checkbox.js +41 -0
- package/dist/cjs/controls/checkbox.js.map +1 -0
- package/dist/cjs/controls/color.js +55 -0
- package/dist/cjs/controls/color.js.map +1 -0
- package/dist/cjs/controls/combobox.js +34 -0
- package/dist/cjs/controls/combobox.js.map +1 -0
- package/dist/cjs/controls/control-data-type-key.js +29 -0
- package/dist/cjs/controls/control-data-type-key.js.map +1 -0
- package/dist/cjs/controls/control.js +168 -0
- package/dist/cjs/controls/control.js.map +1 -0
- package/dist/cjs/controls/icon-radio-group.js +45 -0
- package/dist/cjs/controls/icon-radio-group.js.map +1 -0
- package/dist/cjs/controls/image.js +49 -0
- package/dist/cjs/controls/image.js.map +1 -0
- package/dist/cjs/controls/index.js +59 -0
- package/dist/cjs/controls/index.js.map +1 -0
- package/dist/cjs/controls/link.js +53 -0
- package/dist/cjs/controls/link.js.map +1 -0
- package/dist/cjs/controls/list.js +156 -0
- package/dist/cjs/controls/list.js.map +1 -0
- package/dist/cjs/controls/number.js +41 -0
- package/dist/cjs/controls/number.js.map +1 -0
- package/dist/cjs/controls/rich-text/copy.js +121 -0
- package/dist/cjs/controls/rich-text/copy.js.map +1 -0
- package/dist/cjs/controls/rich-text/dto-types.js +43 -0
- package/dist/cjs/controls/rich-text/dto-types.js.map +1 -0
- package/dist/cjs/controls/rich-text/dto.js +228 -0
- package/dist/cjs/controls/rich-text/dto.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js +77 -0
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js +176 -0
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/index.js +27 -0
- package/dist/cjs/controls/rich-text/fixtures/index.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/list.js +137 -0
- package/dist/cjs/controls/rich-text/fixtures/list.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/typography.js +926 -0
- package/dist/cjs/controls/rich-text/fixtures/typography.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js +114 -0
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
- package/dist/cjs/controls/rich-text/index.js +29 -0
- package/dist/cjs/controls/rich-text/index.js.map +1 -0
- package/dist/cjs/controls/rich-text/introspection.js +111 -0
- package/dist/cjs/controls/rich-text/introspection.js.map +1 -0
- package/dist/cjs/controls/rich-text/rich-text.js +99 -0
- package/dist/cjs/controls/rich-text/rich-text.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/copy.js +115 -0
- package/dist/cjs/controls/rich-text-v2/copy.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/dto.js +44 -0
- package/dist/cjs/controls/rich-text-v2/dto.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/index.js +27 -0
- package/dist/cjs/controls/rich-text-v2/index.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/introspection.js +69 -0
- package/dist/cjs/controls/rich-text-v2/introspection.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/plugin.js +37 -0
- package/dist/cjs/controls/rich-text-v2/plugin.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +181 -0
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/translation.js +200 -0
- package/dist/cjs/controls/rich-text-v2/translation.js.map +1 -0
- package/dist/cjs/controls/select.js +34 -0
- package/dist/cjs/controls/select.js.map +1 -0
- package/dist/cjs/controls/shape.js +149 -0
- package/dist/cjs/controls/shape.js.map +1 -0
- package/dist/cjs/controls/slot.js +92 -0
- package/dist/cjs/controls/slot.js.map +1 -0
- package/dist/cjs/controls/style-v2.js +74 -0
- package/dist/cjs/controls/style-v2.js.map +1 -0
- package/dist/cjs/controls/style.js +119 -0
- package/dist/cjs/controls/style.js.map +1 -0
- package/dist/cjs/controls/text-area.js +41 -0
- package/dist/cjs/controls/text-area.js.map +1 -0
- package/dist/cjs/controls/text-input.js +41 -0
- package/dist/cjs/controls/text-input.js.map +1 -0
- package/dist/cjs/controls/types.js +17 -0
- package/dist/cjs/controls/types.js.map +1 -0
- package/dist/cjs/controls/typography.js +47 -0
- package/dist/cjs/controls/typography.js.map +1 -0
- package/dist/cjs/css/border-radius.js +49 -0
- package/dist/cjs/css/border-radius.js.map +1 -0
- package/dist/cjs/css/border.js +53 -0
- package/dist/cjs/css/border.js.map +1 -0
- package/dist/cjs/css/length-percentage.js +35 -0
- package/dist/cjs/css/length-percentage.js.map +1 -0
- package/dist/cjs/css/length.js +35 -0
- package/dist/cjs/css/length.js.map +1 -0
- package/dist/cjs/css/margin.js +45 -0
- package/dist/cjs/css/margin.js.map +1 -0
- package/dist/cjs/css/padding.js +45 -0
- package/dist/cjs/css/padding.js.map +1 -0
- package/dist/cjs/global.d.js +17 -0
- package/dist/cjs/global.d.js.map +1 -0
- package/dist/cjs/index.js +70 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/locale.js +482 -0
- package/dist/cjs/locale.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/element-tree.js +38 -0
- package/dist/cjs/next/api-handler/handlers/element-tree.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/fonts.js +28 -0
- package/dist/cjs/next/api-handler/handlers/fonts.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/manifest.js +40 -0
- package/dist/cjs/next/api-handler/handlers/manifest.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/merge-translated-data.js +36 -0
- package/dist/cjs/next/api-handler/handlers/merge-translated-data.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js +89 -0
- package/dist/cjs/next/api-handler/handlers/proxy-preview-mode.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/revalidate.js +63 -0
- package/dist/cjs/next/api-handler/handlers/revalidate.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/translatable-data.js +36 -0
- package/dist/cjs/next/api-handler/handlers/translatable-data.js.map +1 -0
- package/dist/cjs/next/api-handler/index.js +131 -0
- package/dist/cjs/next/api-handler/index.js.map +1 -0
- package/dist/cjs/next/client.js +420 -0
- package/dist/cjs/next/client.js.map +1 -0
- package/dist/cjs/next/document.js +68 -0
- package/dist/cjs/next/document.js.map +1 -0
- package/dist/cjs/next/dynamic.js +52 -0
- package/dist/cjs/next/dynamic.js.map +1 -0
- package/dist/cjs/next/index.js +70 -0
- package/dist/cjs/next/index.js.map +1 -0
- package/dist/cjs/next/next-version.js +41 -0
- package/dist/cjs/next/next-version.js.map +1 -0
- package/dist/cjs/next/plugin.js +3 -0
- package/dist/cjs/next/plugin.js.map +1 -0
- package/dist/cjs/next/preview-mode.js +141 -0
- package/dist/cjs/next/preview-mode.js.map +1 -0
- package/dist/cjs/next/server.js +29 -0
- package/dist/cjs/next/server.js.map +1 -0
- package/dist/cjs/ot-json0.d.js +2 -0
- package/dist/cjs/ot-json0.d.js.map +1 -0
- package/dist/cjs/prop-controllers/base.js +34 -0
- package/dist/cjs/prop-controllers/base.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/backgrounds.js +86 -0
- package/dist/cjs/prop-controllers/copy/backgrounds.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/border.js +53 -0
- package/dist/cjs/prop-controllers/copy/border.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/element-id.js +36 -0
- package/dist/cjs/prop-controllers/copy/element-id.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/grid.js +36 -0
- package/dist/cjs/prop-controllers/copy/grid.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/image.js +35 -0
- package/dist/cjs/prop-controllers/copy/image.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/images.js +49 -0
- package/dist/cjs/prop-controllers/copy/images.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/link.js +63 -0
- package/dist/cjs/prop-controllers/copy/link.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/navigation-links.js +58 -0
- package/dist/cjs/prop-controllers/copy/navigation-links.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/responsive-color.js +39 -0
- package/dist/cjs/prop-controllers/copy/responsive-color.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/rich-text.js +121 -0
- package/dist/cjs/prop-controllers/copy/rich-text.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/shadows.js +48 -0
- package/dist/cjs/prop-controllers/copy/shadows.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/table-form-fields.js +39 -0
- package/dist/cjs/prop-controllers/copy/table-form-fields.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/table.js +33 -0
- package/dist/cjs/prop-controllers/copy/table.js.map +1 -0
- package/dist/cjs/prop-controllers/copy.js +78 -0
- package/dist/cjs/prop-controllers/copy.js.map +1 -0
- package/dist/cjs/prop-controllers/descriptors.js +365 -0
- package/dist/cjs/prop-controllers/descriptors.js.map +1 -0
- package/dist/cjs/prop-controllers/index.js +56 -0
- package/dist/cjs/prop-controllers/index.js.map +1 -0
- package/dist/cjs/prop-controllers/instances.js +143 -0
- package/dist/cjs/prop-controllers/instances.js.map +1 -0
- package/dist/cjs/prop-controllers/introspection.js +356 -0
- package/dist/cjs/prop-controllers/introspection.js.map +1 -0
- package/dist/cjs/react.js +46 -0
- package/dist/cjs/react.js.map +1 -0
- package/dist/cjs/runtimes/react/components/Document.js +37 -0
- package/dist/cjs/runtimes/react/components/Document.js.map +1 -0
- package/dist/cjs/runtimes/react/components/DocumentReference.js +42 -0
- package/dist/cjs/runtimes/react/components/DocumentReference.js.map +1 -0
- package/dist/cjs/runtimes/react/components/Element.js +72 -0
- package/dist/cjs/runtimes/react/components/Element.js.map +1 -0
- package/dist/cjs/runtimes/react/components/ElementData.js +45 -0
- package/dist/cjs/runtimes/react/components/ElementData.js.map +1 -0
- package/dist/cjs/runtimes/react/components/ElementReference.js +70 -0
- package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -0
- package/dist/cjs/runtimes/react/components/LiveProvider.js +55 -0
- package/dist/cjs/runtimes/react/components/LiveProvider.js.map +1 -0
- package/dist/cjs/runtimes/react/components/PageProvider.js +33 -0
- package/dist/cjs/runtimes/react/components/PageProvider.js.map +1 -0
- package/dist/cjs/runtimes/react/components/PreviewProvider.js +68 -0
- package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -0
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js +45 -0
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -0
- package/dist/cjs/runtimes/react/components/index.js +23 -0
- package/dist/cjs/runtimes/react/components/index.js.map +1 -0
- package/dist/cjs/runtimes/react/components/render-hook.js +35 -0
- package/dist/cjs/runtimes/react/components/render-hook.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/checkbox.js +34 -0
- package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/color.js +58 -0
- package/dist/cjs/runtimes/react/controls/color.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/combobox.js +31 -0
- package/dist/cjs/runtimes/react/controls/combobox.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/control.js +246 -0
- package/dist/cjs/runtimes/react/controls/control.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/icon-radio-group.js +31 -0
- package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/image.js +57 -0
- package/dist/cjs/runtimes/react/controls/image.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/link.js +110 -0
- package/dist/cjs/runtimes/react/controls/link.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/list.js +56 -0
- package/dist/cjs/runtimes/react/controls/list.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/number.js +34 -0
- package/dist/cjs/runtimes/react/controls/number.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +127 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/index.js +42 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.js +63 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +69 -0
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js +237 -0
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js +72 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js +57 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/index.js +23 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js +48 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/index.js +23 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js +45 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/index.js +25 -0
- package/dist/cjs/runtimes/react/controls/rich-text/components/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/index.js +23 -0
- package/dist/cjs/runtimes/react/controls/rich-text/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js +57 -0
- package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +182 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +42 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +47 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +47 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +81 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +44 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.js +63 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +137 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js +23 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/index.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +59 -0
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/select.js +31 -0
- package/dist/cjs/runtimes/react/controls/select.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/shape.js +49 -0
- package/dist/cjs/runtimes/react/controls/shape.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/slot.js +146 -0
- package/dist/cjs/runtimes/react/controls/slot.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/style-v2.js +97 -0
- package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/style.js +151 -0
- package/dist/cjs/runtimes/react/controls/style.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/text-area.js +34 -0
- package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/text-input.js +34 -0
- package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/typography.js +170 -0
- package/dist/cjs/runtimes/react/controls/typography.js.map +1 -0
- package/dist/cjs/runtimes/react/controls.js +276 -0
- package/dist/cjs/runtimes/react/controls.js.map +1 -0
- package/dist/cjs/runtimes/react/element-imperative-handle.js +66 -0
- package/dist/cjs/runtimes/react/element-imperative-handle.js.map +1 -0
- package/dist/cjs/runtimes/react/find-dom-node.js +58 -0
- package/dist/cjs/runtimes/react/find-dom-node.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js +158 -0
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-breakpoints.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-breakpoints.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-component.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-component.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-disable-register-element.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-disable-register-element.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js +34 -0
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-document-cycles.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-document-cycles.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-document-key.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-document.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-document.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-element-id.js +37 -0
- package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-is-in-builder.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-is-preview.js +33 -0
- package/dist/cjs/runtimes/react/hooks/use-is-preview.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-page-id.js +41 -0
- package/dist/cjs/runtimes/react/hooks/use-page-id.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-selector.js +34 -0
- package/dist/cjs/runtimes/react/hooks/use-selector.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-store.js +36 -0
- package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -0
- package/dist/cjs/runtimes/react/index.js +70 -0
- package/dist/cjs/runtimes/react/index.js.map +1 -0
- package/dist/cjs/runtimes/react/poll-box-model.js +59 -0
- package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -0
- package/dist/cjs/runtimes/react/react-runtime.js +108 -0
- package/dist/cjs/runtimes/react/react-runtime.js.map +1 -0
- package/dist/cjs/runtimes/react/use-global-style.js +96 -0
- package/dist/cjs/runtimes/react/use-global-style.js.map +1 -0
- package/dist/cjs/runtimes/react/use-style.js +55 -0
- package/dist/cjs/runtimes/react/use-style.js.map +1 -0
- package/dist/cjs/runtimes/react/utils/suppress-ref-warning.js +41 -0
- package/dist/cjs/runtimes/react/utils/suppress-ref-warning.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js +46 -0
- package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/constants.js +32 -0
- package/dist/cjs/slate/BlockPlugin/constants.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/dedent.js +70 -0
- package/dist/cjs/slate/BlockPlugin/dedent.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/indent.js +71 -0
- package/dist/cjs/slate/BlockPlugin/indent.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/index.js +364 -0
- package/dist/cjs/slate/BlockPlugin/index.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js +56 -0
- package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/toggleList.js +52 -0
- package/dist/cjs/slate/BlockPlugin/toggleList.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/types.js +17 -0
- package/dist/cjs/slate/BlockPlugin/types.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/unwrapInline.js +37 -0
- package/dist/cjs/slate/BlockPlugin/unwrapInline.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/unwrapList.js +83 -0
- package/dist/cjs/slate/BlockPlugin/unwrapList.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/utils/filterForSubtreeRoots.js +36 -0
- package/dist/cjs/slate/BlockPlugin/utils/filterForSubtreeRoots.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js +45 -0
- package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/utils/location.js +38 -0
- package/dist/cjs/slate/BlockPlugin/utils/location.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/wrapInline.js +36 -0
- package/dist/cjs/slate/BlockPlugin/wrapInline.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/wrapList.js +67 -0
- package/dist/cjs/slate/BlockPlugin/wrapList.js.map +1 -0
- package/dist/cjs/slate/BuilderPlugin/index.js +80 -0
- package/dist/cjs/slate/BuilderPlugin/index.js.map +1 -0
- package/dist/cjs/slate/InlineModePlugin/index.js +93 -0
- package/dist/cjs/slate/InlineModePlugin/index.js.map +1 -0
- package/dist/cjs/slate/InlinePlugin/getValue.js +57 -0
- package/dist/cjs/slate/InlinePlugin/getValue.js.map +1 -0
- package/dist/cjs/slate/InlinePlugin/index.js +79 -0
- package/dist/cjs/slate/InlinePlugin/index.js.map +1 -0
- package/dist/cjs/slate/InlinePlugin/onChange.js +59 -0
- package/dist/cjs/slate/InlinePlugin/onChange.js.map +1 -0
- package/dist/cjs/slate/InlinePlugin/types.js +58 -0
- package/dist/cjs/slate/InlinePlugin/types.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/getValue.js +66 -0
- package/dist/cjs/slate/LinkPlugin/getValue.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/index.js +96 -0
- package/dist/cjs/slate/LinkPlugin/index.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +48 -0
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/onChange.js +53 -0
- package/dist/cjs/slate/LinkPlugin/onChange.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/types.js +38 -0
- package/dist/cjs/slate/LinkPlugin/types.js.map +1 -0
- package/dist/cjs/slate/LocalChangesPlugin/index.js +44 -0
- package/dist/cjs/slate/LocalChangesPlugin/index.js.map +1 -0
- package/dist/cjs/slate/TextAlignPlugin/getValue.js +43 -0
- package/dist/cjs/slate/TextAlignPlugin/getValue.js.map +1 -0
- package/dist/cjs/slate/TextAlignPlugin/index.js +103 -0
- package/dist/cjs/slate/TextAlignPlugin/index.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/clearActiveTypographyStyle.js +74 -0
- package/dist/cjs/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/clearDeviceActiveTypography.js +74 -0
- package/dist/cjs/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/detachActiveTypography.js +72 -0
- package/dist/cjs/slate/TypographyPlugin/detachActiveTypography.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/getValue.js +39 -0
- package/dist/cjs/slate/TypographyPlugin/getValue.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/index.js +142 -0
- package/dist/cjs/slate/TypographyPlugin/index.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeSimilarText.js +63 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeSimilarText.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyDown.js +82 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js +151 -0
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/setActiveTypographyId.js +48 -0
- package/dist/cjs/slate/TypographyPlugin/setActiveTypographyId.js.map +1 -0
- package/dist/cjs/slate/TypographyPlugin/setActiveTypographyStyle.js +88 -0
- package/dist/cjs/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -0
- package/dist/cjs/slate/index.js +41 -0
- package/dist/cjs/slate/index.js.map +1 -0
- package/dist/cjs/slate/selectors.js +154 -0
- package/dist/cjs/slate/selectors.js.map +1 -0
- package/dist/cjs/slate/types.js +64 -0
- package/dist/cjs/slate/types.js.map +1 -0
- package/dist/cjs/slate/utils/editor.js +54 -0
- package/dist/cjs/slate/utils/editor.js.map +1 -0
- package/dist/cjs/slate/utils/element.js +77 -0
- package/dist/cjs/slate/utils/element.js.map +1 -0
- package/dist/cjs/slate/utils/filterForSubtreeRoots.js +36 -0
- package/dist/cjs/slate/utils/filterForSubtreeRoots.js.map +1 -0
- package/dist/cjs/slate/utils/index.js +23 -0
- package/dist/cjs/slate/utils/index.js.map +1 -0
- package/dist/cjs/slate/utils/location.js +38 -0
- package/dist/cjs/slate/utils/location.js.map +1 -0
- package/dist/cjs/slate/utils/responsive.js +126 -0
- package/dist/cjs/slate/utils/responsive.js.map +1 -0
- package/dist/cjs/slate/utils/toText.js +89 -0
- package/dist/cjs/slate/utils/toText.js.map +1 -0
- package/dist/cjs/slate/utils/unhangRange.js +55 -0
- package/dist/cjs/slate/utils/unhangRange.js.map +1 -0
- package/dist/cjs/state/actions.js +385 -0
- package/dist/cjs/state/actions.js.map +1 -0
- package/dist/cjs/state/makeswift-api-client.js +124 -0
- package/dist/cjs/state/makeswift-api-client.js.map +1 -0
- package/dist/cjs/state/modules/api-resources.js +136 -0
- package/dist/cjs/state/modules/api-resources.js.map +1 -0
- package/dist/cjs/state/modules/box-models.js +125 -0
- package/dist/cjs/state/modules/box-models.js.map +1 -0
- package/dist/cjs/state/modules/breakpoints.js +256 -0
- package/dist/cjs/state/modules/breakpoints.js.map +1 -0
- package/dist/cjs/state/modules/builder-edit-mode.js +49 -0
- package/dist/cjs/state/modules/builder-edit-mode.js.map +1 -0
- package/dist/cjs/state/modules/components-meta.js +80 -0
- package/dist/cjs/state/modules/components-meta.js.map +1 -0
- package/dist/cjs/state/modules/element-imperative-handles.js +58 -0
- package/dist/cjs/state/modules/element-imperative-handles.js.map +1 -0
- package/dist/cjs/state/modules/is-in-builder.js +47 -0
- package/dist/cjs/state/modules/is-in-builder.js.map +1 -0
- package/dist/cjs/state/modules/is-preview.js +44 -0
- package/dist/cjs/state/modules/is-preview.js.map +1 -0
- package/dist/cjs/state/modules/pointer.js +45 -0
- package/dist/cjs/state/modules/pointer.js.map +1 -0
- package/dist/cjs/state/modules/prop-controller-handles.js +95 -0
- package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -0
- package/dist/cjs/state/modules/prop-controllers.js +59 -0
- package/dist/cjs/state/modules/prop-controllers.js.map +1 -0
- package/dist/cjs/state/modules/react-components.js +57 -0
- package/dist/cjs/state/modules/react-components.js.map +1 -0
- package/dist/cjs/state/modules/read-only-documents.js +78 -0
- package/dist/cjs/state/modules/read-only-documents.js.map +1 -0
- package/dist/cjs/state/modules/read-write-documents.js +90 -0
- package/dist/cjs/state/modules/read-write-documents.js.map +1 -0
- package/dist/cjs/state/react-builder-preview.js +560 -0
- package/dist/cjs/state/react-builder-preview.js.map +1 -0
- package/dist/cjs/state/react-page.js +377 -0
- package/dist/cjs/state/react-page.js.map +1 -0
- package/dist/cjs/utils/clamp.js +26 -0
- package/dist/cjs/utils/clamp.js.map +1 -0
- package/dist/cjs/utils/coalesce.js +33 -0
- package/dist/cjs/utils/coalesce.js.map +1 -0
- package/dist/cjs/utils/deepEqual.js +53 -0
- package/dist/cjs/utils/deepEqual.js.map +1 -0
- package/dist/cjs/utils/intersection.js +46 -0
- package/dist/cjs/utils/intersection.js.map +1 -0
- package/dist/cjs/utils/is.js +29 -0
- package/dist/cjs/utils/is.js.map +1 -0
- package/dist/cjs/utils/isErrorWithMessage.js +27 -0
- package/dist/cjs/utils/isErrorWithMessage.js.map +1 -0
- package/dist/cjs/utils/isNonNullable.js +31 -0
- package/dist/cjs/utils/isNonNullable.js.map +1 -0
- package/dist/cjs/utils/keys.js +26 -0
- package/dist/cjs/utils/keys.js.map +1 -0
- package/dist/cjs/utils/shallowEqual.js +52 -0
- package/dist/cjs/utils/shallowEqual.js.map +1 -0
- package/dist/cjs/utils/shallowMerge.js +44 -0
- package/dist/cjs/utils/shallowMerge.js.map +1 -0
- package/dist/esm/api/graphql/client.js +26 -0
- package/dist/esm/api/graphql/client.js.map +1 -0
- package/dist/esm/api/graphql/documents/fragments.js +190 -0
- package/dist/esm/api/graphql/documents/fragments.js.map +1 -0
- package/dist/esm/api/graphql/documents/index.js +3 -0
- package/dist/esm/api/graphql/documents/index.js.map +1 -0
- package/dist/esm/api/graphql/documents/queries.js +119 -0
- package/dist/esm/api/graphql/documents/queries.js.map +1 -0
- package/dist/esm/api/graphql/fragments.js +6 -0
- package/dist/esm/api/graphql/fragments.js.map +1 -0
- package/dist/esm/api/graphql/generated/fragment-document-nodes.js +390 -0
- package/dist/esm/api/graphql/generated/fragment-document-nodes.js.map +1 -0
- package/dist/esm/api/graphql/generated/types.js +8 -0
- package/dist/esm/api/graphql/generated/types.js.map +1 -0
- package/dist/esm/api/graphql/types.js +16 -0
- package/dist/esm/api/graphql/types.js.map +1 -0
- package/dist/esm/api/index.js +3 -0
- package/dist/esm/api/index.js.map +1 -0
- package/dist/esm/api/react.js +174 -0
- package/dist/esm/api/react.js.map +1 -0
- package/dist/esm/box-model.js +7 -0
- package/dist/esm/box-model.js.map +1 -0
- package/dist/esm/builder/index.js +2 -0
- package/dist/esm/builder/index.js.map +1 -0
- package/dist/esm/builder/serialization/control-serialization.js +434 -0
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -0
- package/dist/esm/builder/serialization/controls/combobox.js +20 -0
- package/dist/esm/builder/serialization/controls/combobox.js.map +1 -0
- package/dist/esm/builder/serialization/controls/list.js +25 -0
- package/dist/esm/builder/serialization/controls/list.js.map +1 -0
- package/dist/esm/builder/serialization/controls/rich-text-v2.js +81 -0
- package/dist/esm/builder/serialization/controls/rich-text-v2.js.map +1 -0
- package/dist/esm/builder/serialization/controls/shape.js +32 -0
- package/dist/esm/builder/serialization/controls/shape.js.map +1 -0
- package/dist/esm/builder/serialization/controls/style-v2.js +37 -0
- package/dist/esm/builder/serialization/controls/style-v2.js.map +1 -0
- package/dist/esm/builder/serialization/controls/types.js +1 -0
- package/dist/esm/builder/serialization/controls/types.js.map +1 -0
- package/dist/esm/builder/serialization/function-serialization.js +31 -0
- package/dist/esm/builder/serialization/function-serialization.js.map +1 -0
- package/dist/esm/builder/serialization/index.js +3 -0
- package/dist/esm/builder/serialization/index.js.map +1 -0
- package/dist/esm/components/builtin/Box/Box.js +167 -0
- package/dist/esm/components/builtin/Box/Box.js.map +1 -0
- package/dist/esm/components/builtin/Box/animations.js +147 -0
- package/dist/esm/components/builtin/Box/animations.js.map +1 -0
- package/dist/esm/components/builtin/Box/components/Placeholder/index.js +47 -0
- package/dist/esm/components/builtin/Box/components/Placeholder/index.js.map +1 -0
- package/dist/esm/components/builtin/Box/constants.js +17 -0
- package/dist/esm/components/builtin/Box/constants.js.map +1 -0
- package/dist/esm/components/builtin/Box/index.js +21 -0
- package/dist/esm/components/builtin/Box/index.js.map +1 -0
- package/dist/esm/components/builtin/Box/register.js +161 -0
- package/dist/esm/components/builtin/Box/register.js.map +1 -0
- package/dist/esm/components/builtin/Button/Button.js +213 -0
- package/dist/esm/components/builtin/Button/Button.js.map +1 -0
- package/dist/esm/components/builtin/Button/contants.js +1 -0
- package/dist/esm/components/builtin/Button/contants.js.map +1 -0
- package/dist/esm/components/builtin/Button/index.js +5 -0
- package/dist/esm/components/builtin/Button/index.js.map +1 -0
- package/dist/esm/components/builtin/Button/register.js +75 -0
- package/dist/esm/components/builtin/Button/register.js.map +1 -0
- package/dist/esm/components/builtin/Carousel/Carousel.js +384 -0
- package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -0
- package/dist/esm/components/builtin/Carousel/index.js +5 -0
- package/dist/esm/components/builtin/Carousel/index.js.map +1 -0
- package/dist/esm/components/builtin/Carousel/register.js +110 -0
- package/dist/esm/components/builtin/Carousel/register.js.map +1 -0
- package/dist/esm/components/builtin/Countdown/Countdown.js +294 -0
- package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -0
- package/dist/esm/components/builtin/Countdown/index.js +5 -0
- package/dist/esm/components/builtin/Countdown/index.js.map +1 -0
- package/dist/esm/components/builtin/Countdown/register.js +105 -0
- package/dist/esm/components/builtin/Countdown/register.js.map +1 -0
- package/dist/esm/components/builtin/Divider/Divider.js +77 -0
- package/dist/esm/components/builtin/Divider/Divider.js.map +1 -0
- package/dist/esm/components/builtin/Divider/index.js +5 -0
- package/dist/esm/components/builtin/Divider/index.js.map +1 -0
- package/dist/esm/components/builtin/Divider/register.js +44 -0
- package/dist/esm/components/builtin/Divider/register.js.map +1 -0
- package/dist/esm/components/builtin/Embed/Embed.js +87 -0
- package/dist/esm/components/builtin/Embed/Embed.js.map +1 -0
- package/dist/esm/components/builtin/Embed/index.js +5 -0
- package/dist/esm/components/builtin/Embed/index.js.map +1 -0
- package/dist/esm/components/builtin/Embed/register.js +25 -0
- package/dist/esm/components/builtin/Embed/register.js.map +1 -0
- package/dist/esm/components/builtin/Form/Form.js +383 -0
- package/dist/esm/components/builtin/Form/Form.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js +155 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Checkbox/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js +59 -0
- package/dist/esm/components/builtin/Form/components/Field/components/CheckboxTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/EmailTableField/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/EmailTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js +44 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Input/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js +64 -0
- package/dist/esm/components/builtin/Form/components/Field/components/Label/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/LongTextTableField/index.js +14 -0
- package/dist/esm/components/builtin/Form/components/Field/components/LongTextTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js +72 -0
- package/dist/esm/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/NumberTableField/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/NumberTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js +70 -0
- package/dist/esm/components/builtin/Form/components/Field/components/PlaceholderTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js +150 -0
- package/dist/esm/components/builtin/Form/components/Field/components/RadioButton/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js +70 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js +115 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/index.js +14 -0
- package/dist/esm/components/builtin/Form/components/Field/components/SingleSelectTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/TextArea/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/components/URLTableField/index.js +25 -0
- package/dist/esm/components/builtin/Form/components/Field/components/URLTableField/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/index.js +106 -0
- package/dist/esm/components/builtin/Form/components/Field/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js +136 -0
- package/dist/esm/components/builtin/Form/components/Field/services/responsiveField.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Placeholder/index.js +79 -0
- package/dist/esm/components/builtin/Form/components/Placeholder/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/components/Spinner/index.js +28 -0
- package/dist/esm/components/builtin/Form/components/Spinner/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/context/FormContext.js +34 -0
- package/dist/esm/components/builtin/Form/context/FormContext.js.map +1 -0
- package/dist/esm/components/builtin/Form/index.js +5 -0
- package/dist/esm/components/builtin/Form/index.js.map +1 -0
- package/dist/esm/components/builtin/Form/register.js +147 -0
- package/dist/esm/components/builtin/Form/register.js.map +1 -0
- package/dist/esm/components/builtin/Form/types.js +1 -0
- package/dist/esm/components/builtin/Form/types.js.map +1 -0
- package/dist/esm/components/builtin/Image/Image.js +122 -0
- package/dist/esm/components/builtin/Image/Image.js.map +1 -0
- package/dist/esm/components/builtin/Image/index.js +5 -0
- package/dist/esm/components/builtin/Image/index.js.map +1 -0
- package/dist/esm/components/builtin/Image/register.js +31 -0
- package/dist/esm/components/builtin/Image/register.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/Navigation.js +201 -0
- package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js +163 -0
- package/dist/esm/components/builtin/Navigation/components/DropDownButton/index.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js +25 -0
- package/dist/esm/components/builtin/Navigation/components/LinksPlaceholder/index.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js +93 -0
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js +124 -0
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/index.js +5 -0
- package/dist/esm/components/builtin/Navigation/index.js.map +1 -0
- package/dist/esm/components/builtin/Navigation/register.js +131 -0
- package/dist/esm/components/builtin/Navigation/register.js.map +1 -0
- package/dist/esm/components/builtin/Root/Root.js +36 -0
- package/dist/esm/components/builtin/Root/Root.js.map +1 -0
- package/dist/esm/components/builtin/Root/components/Placeholder/index.js +45 -0
- package/dist/esm/components/builtin/Root/components/Placeholder/index.js.map +1 -0
- package/dist/esm/components/builtin/Root/index.js +5 -0
- package/dist/esm/components/builtin/Root/index.js.map +1 -0
- package/dist/esm/components/builtin/Root/register.js +24 -0
- package/dist/esm/components/builtin/Root/register.js.map +1 -0
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js +120 -0
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -0
- package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js +33 -0
- package/dist/esm/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.js.map +1 -0
- package/dist/esm/components/builtin/SocialLinks/index.js +5 -0
- package/dist/esm/components/builtin/SocialLinks/index.js.map +1 -0
- package/dist/esm/components/builtin/SocialLinks/options.js +57 -0
- package/dist/esm/components/builtin/SocialLinks/options.js.map +1 -0
- package/dist/esm/components/builtin/SocialLinks/register.js +141 -0
- package/dist/esm/components/builtin/SocialLinks/register.js.map +1 -0
- package/dist/esm/components/builtin/Text/Text.js +10 -0
- package/dist/esm/components/builtin/Text/Text.js.map +1 -0
- package/dist/esm/components/builtin/Text/index.js +5 -0
- package/dist/esm/components/builtin/Text/index.js.map +1 -0
- package/dist/esm/components/builtin/Text/register.js +47 -0
- package/dist/esm/components/builtin/Text/register.js.map +1 -0
- package/dist/esm/components/builtin/Video/Video.js +48 -0
- package/dist/esm/components/builtin/Video/Video.js.map +1 -0
- package/dist/esm/components/builtin/Video/index.js +5 -0
- package/dist/esm/components/builtin/Video/index.js.map +1 -0
- package/dist/esm/components/builtin/Video/register.js +29 -0
- package/dist/esm/components/builtin/Video/register.js.map +1 -0
- package/dist/esm/components/builtin/constants.js +19 -0
- package/dist/esm/components/builtin/constants.js.map +1 -0
- package/dist/esm/components/builtin/index.js +32 -0
- package/dist/esm/components/builtin/index.js.map +1 -0
- package/dist/esm/components/builtin/register.js +47 -0
- package/dist/esm/components/builtin/register.js.map +1 -0
- package/dist/esm/components/hooks/index.js +6 -0
- package/dist/esm/components/hooks/index.js.map +1 -0
- package/dist/esm/components/hooks/useBackgrounds.js +116 -0
- package/dist/esm/components/hooks/useBackgrounds.js.map +1 -0
- package/dist/esm/components/hooks/useBorder.js +31 -0
- package/dist/esm/components/hooks/useBorder.js.map +1 -0
- package/dist/esm/components/hooks/useBoxShadow.js +43 -0
- package/dist/esm/components/hooks/useBoxShadow.js.map +1 -0
- package/dist/esm/components/hooks/useIsomorphicLayoutEffect.js +7 -0
- package/dist/esm/components/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/esm/components/hooks/useMediaQuery.js +45 -0
- package/dist/esm/components/hooks/useMediaQuery.js.map +1 -0
- package/dist/esm/components/hooks/useResponsiveColor.js +18 -0
- package/dist/esm/components/hooks/useResponsiveColor.js.map +1 -0
- package/dist/esm/components/hooks/useTableFormFieldRefs.js +43 -0
- package/dist/esm/components/hooks/useTableFormFieldRefs.js.map +1 -0
- package/dist/esm/components/icons/ArrowDown8.js +8 -0
- package/dist/esm/components/icons/ArrowDown8.js.map +1 -0
- package/dist/esm/components/icons/CaretDown8.js +8 -0
- package/dist/esm/components/icons/CaretDown8.js.map +1 -0
- package/dist/esm/components/icons/Check12.js +15 -0
- package/dist/esm/components/icons/Check12.js.map +1 -0
- package/dist/esm/components/icons/ChevronDown8.js +15 -0
- package/dist/esm/components/icons/ChevronDown8.js.map +1 -0
- package/dist/esm/components/icons/LogoAngellist20.js +8 -0
- package/dist/esm/components/icons/LogoAngellist20.js.map +1 -0
- package/dist/esm/components/icons/LogoCodepen20.js +8 -0
- package/dist/esm/components/icons/LogoCodepen20.js.map +1 -0
- package/dist/esm/components/icons/LogoDiscord20.js +8 -0
- package/dist/esm/components/icons/LogoDiscord20.js.map +1 -0
- package/dist/esm/components/icons/LogoDribbble20.js +8 -0
- package/dist/esm/components/icons/LogoDribbble20.js.map +1 -0
- package/dist/esm/components/icons/LogoFacebook20.js +8 -0
- package/dist/esm/components/icons/LogoFacebook20.js.map +1 -0
- package/dist/esm/components/icons/LogoGithub20.js +8 -0
- package/dist/esm/components/icons/LogoGithub20.js.map +1 -0
- package/dist/esm/components/icons/LogoInstagram20.js +8 -0
- package/dist/esm/components/icons/LogoInstagram20.js.map +1 -0
- package/dist/esm/components/icons/LogoLinkedin20.js +8 -0
- package/dist/esm/components/icons/LogoLinkedin20.js.map +1 -0
- package/dist/esm/components/icons/LogoMedium20.js +8 -0
- package/dist/esm/components/icons/LogoMedium20.js.map +1 -0
- package/dist/esm/components/icons/LogoPinterest20.js +8 -0
- package/dist/esm/components/icons/LogoPinterest20.js.map +1 -0
- package/dist/esm/components/icons/LogoReddit20.js +8 -0
- package/dist/esm/components/icons/LogoReddit20.js.map +1 -0
- package/dist/esm/components/icons/LogoRss20.js +8 -0
- package/dist/esm/components/icons/LogoRss20.js.map +1 -0
- package/dist/esm/components/icons/LogoSlack20.js +8 -0
- package/dist/esm/components/icons/LogoSlack20.js.map +1 -0
- package/dist/esm/components/icons/LogoSnapchat20.js +8 -0
- package/dist/esm/components/icons/LogoSnapchat20.js.map +1 -0
- package/dist/esm/components/icons/LogoSoundcloud20.js +8 -0
- package/dist/esm/components/icons/LogoSoundcloud20.js.map +1 -0
- package/dist/esm/components/icons/LogoSpotify20.js +8 -0
- package/dist/esm/components/icons/LogoSpotify20.js.map +1 -0
- package/dist/esm/components/icons/LogoTelegram20.js +8 -0
- package/dist/esm/components/icons/LogoTelegram20.js.map +1 -0
- package/dist/esm/components/icons/LogoTumblr20.js +8 -0
- package/dist/esm/components/icons/LogoTumblr20.js.map +1 -0
- package/dist/esm/components/icons/LogoTwitch20.js +8 -0
- package/dist/esm/components/icons/LogoTwitch20.js.map +1 -0
- package/dist/esm/components/icons/LogoTwitter20.js +8 -0
- package/dist/esm/components/icons/LogoTwitter20.js.map +1 -0
- package/dist/esm/components/icons/LogoVimeo20.js +8 -0
- package/dist/esm/components/icons/LogoVimeo20.js.map +1 -0
- package/dist/esm/components/icons/LogoWhatsapp20.js +8 -0
- package/dist/esm/components/icons/LogoWhatsapp20.js.map +1 -0
- package/dist/esm/components/icons/LogoX20.js +8 -0
- package/dist/esm/components/icons/LogoX20.js.map +1 -0
- package/dist/esm/components/icons/LogoYelp20.js +8 -0
- package/dist/esm/components/icons/LogoYelp20.js.map +1 -0
- package/dist/esm/components/icons/LogoYoutube20.js +8 -0
- package/dist/esm/components/icons/LogoYoutube20.js.map +1 -0
- package/dist/esm/components/icons/MobileMenu28.js +8 -0
- package/dist/esm/components/icons/MobileMenu28.js.map +1 -0
- package/dist/esm/components/icons/Plus8.js +8 -0
- package/dist/esm/components/icons/Plus8.js.map +1 -0
- package/dist/esm/components/icons/Spinner20.js +11 -0
- package/dist/esm/components/icons/Spinner20.js.map +1 -0
- package/dist/esm/components/icons/Times16.js +15 -0
- package/dist/esm/components/icons/Times16.js.map +1 -0
- package/dist/esm/components/icons/Warning20.js +15 -0
- package/dist/esm/components/icons/Warning20.js.map +1 -0
- package/dist/esm/components/index.js +4 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/components/page/BodySnippet.js +41 -0
- package/dist/esm/components/page/BodySnippet.js.map +1 -0
- package/dist/esm/components/page/Page.js +182 -0
- package/dist/esm/components/page/Page.js.map +1 -0
- package/dist/esm/components/page/index.js +2 -0
- package/dist/esm/components/page/index.js.map +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +118 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js +193 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/Backgrounds/index.js.map +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/Parallax/index.js +84 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/Parallax/index.js.map +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/index.js +41 -0
- package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -0
- package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js +34 -0
- package/dist/esm/components/shared/FallbackComponent/FallbackComponent.js.map +1 -0
- package/dist/esm/components/shared/FallbackComponent/index.js +2 -0
- package/dist/esm/components/shared/FallbackComponent/index.js.map +1 -0
- package/dist/esm/components/shared/GutterContainer/index.js +25 -0
- package/dist/esm/components/shared/GutterContainer/index.js.map +1 -0
- package/dist/esm/components/shared/Link/index.js +99 -0
- package/dist/esm/components/shared/Link/index.js.map +1 -0
- package/dist/esm/components/shared/grid-item.js +37 -0
- package/dist/esm/components/shared/grid-item.js.map +1 -0
- package/dist/esm/components/utils/colorToString.js +7 -0
- package/dist/esm/components/utils/colorToString.js.map +1 -0
- package/dist/esm/components/utils/columns.js +16 -0
- package/dist/esm/components/utils/columns.js.map +1 -0
- package/dist/esm/components/utils/drop-first.js +1 -0
- package/dist/esm/components/utils/drop-first.js.map +1 -0
- package/dist/esm/components/utils/isNonNullable.js +7 -0
- package/dist/esm/components/utils/isNonNullable.js.map +1 -0
- package/dist/esm/components/utils/placeholders.js +14 -0
- package/dist/esm/components/utils/placeholders.js.map +1 -0
- package/dist/esm/components/utils/responsive-style.js +222 -0
- package/dist/esm/components/utils/responsive-style.js.map +1 -0
- package/dist/esm/components/utils/types.js +1 -0
- package/dist/esm/components/utils/types.js.map +1 -0
- package/dist/esm/controls/checkbox.js +14 -0
- package/dist/esm/controls/checkbox.js.map +1 -0
- package/dist/esm/controls/color.js +27 -0
- package/dist/esm/controls/color.js.map +1 -0
- package/dist/esm/controls/combobox.js +9 -0
- package/dist/esm/controls/combobox.js.map +1 -0
- package/dist/esm/controls/control-data-type-key.js +5 -0
- package/dist/esm/controls/control-data-type-key.js.map +1 -0
- package/dist/esm/controls/control.js +171 -0
- package/dist/esm/controls/control.js.map +1 -0
- package/dist/esm/controls/icon-radio-group.js +19 -0
- package/dist/esm/controls/icon-radio-group.js.map +1 -0
- package/dist/esm/controls/image.js +22 -0
- package/dist/esm/controls/image.js.map +1 -0
- package/dist/esm/controls/index.js +20 -0
- package/dist/esm/controls/index.js.map +1 -0
- package/dist/esm/controls/link.js +27 -0
- package/dist/esm/controls/link.js.map +1 -0
- package/dist/esm/controls/list.js +132 -0
- package/dist/esm/controls/list.js.map +1 -0
- package/dist/esm/controls/number.js +14 -0
- package/dist/esm/controls/number.js.map +1 -0
- package/dist/esm/controls/rich-text/copy.js +97 -0
- package/dist/esm/controls/rich-text/copy.js.map +1 -0
- package/dist/esm/controls/rich-text/dto-types.js +19 -0
- package/dist/esm/controls/rich-text/dto-types.js.map +1 -0
- package/dist/esm/controls/rich-text/dto.js +203 -0
- package/dist/esm/controls/rich-text/dto.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/blockquote.js +53 -0
- package/dist/esm/controls/rich-text/fixtures/blockquote.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js +151 -0
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/index.js +4 -0
- package/dist/esm/controls/rich-text/fixtures/index.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/list.js +113 -0
- package/dist/esm/controls/rich-text/fixtures/list.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/typography.js +902 -0
- package/dist/esm/controls/rich-text/fixtures/typography.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js +90 -0
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
- package/dist/esm/controls/rich-text/index.js +5 -0
- package/dist/esm/controls/rich-text/index.js.map +1 -0
- package/dist/esm/controls/rich-text/introspection.js +85 -0
- package/dist/esm/controls/rich-text/introspection.js.map +1 -0
- package/dist/esm/controls/rich-text/rich-text.js +73 -0
- package/dist/esm/controls/rich-text/rich-text.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/copy.js +91 -0
- package/dist/esm/controls/rich-text-v2/copy.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/dto.js +19 -0
- package/dist/esm/controls/rich-text-v2/dto.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/index.js +4 -0
- package/dist/esm/controls/rich-text-v2/index.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/introspection.js +43 -0
- package/dist/esm/controls/rich-text-v2/introspection.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/plugin.js +13 -0
- package/dist/esm/controls/rich-text-v2/plugin.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js +142 -0
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/translation.js +165 -0
- package/dist/esm/controls/rich-text-v2/translation.js.map +1 -0
- package/dist/esm/controls/select.js +9 -0
- package/dist/esm/controls/select.js.map +1 -0
- package/dist/esm/controls/shape.js +125 -0
- package/dist/esm/controls/shape.js.map +1 -0
- package/dist/esm/controls/slot.js +64 -0
- package/dist/esm/controls/slot.js.map +1 -0
- package/dist/esm/controls/style-v2.js +48 -0
- package/dist/esm/controls/style-v2.js.map +1 -0
- package/dist/esm/controls/style.js +90 -0
- package/dist/esm/controls/style.js.map +1 -0
- package/dist/esm/controls/text-area.js +14 -0
- package/dist/esm/controls/text-area.js.map +1 -0
- package/dist/esm/controls/text-input.js +14 -0
- package/dist/esm/controls/text-input.js.map +1 -0
- package/dist/esm/controls/types.js +1 -0
- package/dist/esm/controls/types.js.map +1 -0
- package/dist/esm/controls/typography.js +20 -0
- package/dist/esm/controls/typography.js.map +1 -0
- package/dist/esm/css/border-radius.js +25 -0
- package/dist/esm/css/border-radius.js.map +1 -0
- package/dist/esm/css/border.js +29 -0
- package/dist/esm/css/border.js.map +1 -0
- package/dist/esm/css/length-percentage.js +11 -0
- package/dist/esm/css/length-percentage.js.map +1 -0
- package/dist/esm/css/length.js +11 -0
- package/dist/esm/css/length.js.map +1 -0
- package/dist/esm/css/margin.js +21 -0
- package/dist/esm/css/margin.js.map +1 -0
- package/dist/esm/css/padding.js +21 -0
- package/dist/esm/css/padding.js.map +1 -0
- package/dist/esm/global.d.js +1 -0
- package/dist/esm/global.d.js.map +1 -0
- package/dist/esm/index.js +45 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/locale.js +458 -0
- package/dist/esm/locale.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/element-tree.js +18 -0
- package/dist/esm/next/api-handler/handlers/element-tree.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/fonts.js +8 -0
- package/dist/esm/next/api-handler/handlers/fonts.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/manifest.js +20 -0
- package/dist/esm/next/api-handler/handlers/manifest.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/merge-translated-data.js +16 -0
- package/dist/esm/next/api-handler/handlers/merge-translated-data.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js +69 -0
- package/dist/esm/next/api-handler/handlers/proxy-preview-mode.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/revalidate.js +29 -0
- package/dist/esm/next/api-handler/handlers/revalidate.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/translatable-data.js +16 -0
- package/dist/esm/next/api-handler/handlers/translatable-data.js.map +1 -0
- package/dist/esm/next/api-handler/index.js +97 -0
- package/dist/esm/next/api-handler/index.js.map +1 -0
- package/dist/esm/next/client.js +408 -0
- package/dist/esm/next/client.js.map +1 -0
- package/dist/esm/next/document.js +39 -0
- package/dist/esm/next/document.js.map +1 -0
- package/dist/esm/next/dynamic.js +31 -0
- package/dist/esm/next/dynamic.js.map +1 -0
- package/dist/esm/next/index.js +42 -0
- package/dist/esm/next/index.js.map +1 -0
- package/dist/esm/next/next-version.js +7 -0
- package/dist/esm/next/next-version.js.map +1 -0
- package/dist/esm/next/preview-mode.js +115 -0
- package/dist/esm/next/preview-mode.js.map +1 -0
- package/dist/esm/next/server.js +5 -0
- package/dist/esm/next/server.js.map +1 -0
- package/dist/esm/ot-json0.d.js +1 -0
- package/dist/esm/ot-json0.d.js.map +1 -0
- package/dist/esm/prop-controllers/base.js +10 -0
- package/dist/esm/prop-controllers/base.js.map +1 -0
- package/dist/esm/prop-controllers/copy/backgrounds.js +62 -0
- package/dist/esm/prop-controllers/copy/backgrounds.js.map +1 -0
- package/dist/esm/prop-controllers/copy/border.js +29 -0
- package/dist/esm/prop-controllers/copy/border.js.map +1 -0
- package/dist/esm/prop-controllers/copy/element-id.js +12 -0
- package/dist/esm/prop-controllers/copy/element-id.js.map +1 -0
- package/dist/esm/prop-controllers/copy/grid.js +12 -0
- package/dist/esm/prop-controllers/copy/grid.js.map +1 -0
- package/dist/esm/prop-controllers/copy/image.js +11 -0
- package/dist/esm/prop-controllers/copy/image.js.map +1 -0
- package/dist/esm/prop-controllers/copy/images.js +25 -0
- package/dist/esm/prop-controllers/copy/images.js.map +1 -0
- package/dist/esm/prop-controllers/copy/link.js +39 -0
- package/dist/esm/prop-controllers/copy/link.js.map +1 -0
- package/dist/esm/prop-controllers/copy/navigation-links.js +34 -0
- package/dist/esm/prop-controllers/copy/navigation-links.js.map +1 -0
- package/dist/esm/prop-controllers/copy/responsive-color.js +15 -0
- package/dist/esm/prop-controllers/copy/responsive-color.js.map +1 -0
- package/dist/esm/prop-controllers/copy/rich-text.js +97 -0
- package/dist/esm/prop-controllers/copy/rich-text.js.map +1 -0
- package/dist/esm/prop-controllers/copy/shadows.js +24 -0
- package/dist/esm/prop-controllers/copy/shadows.js.map +1 -0
- package/dist/esm/prop-controllers/copy/table-form-fields.js +15 -0
- package/dist/esm/prop-controllers/copy/table-form-fields.js.map +1 -0
- package/dist/esm/prop-controllers/copy/table.js +9 -0
- package/dist/esm/prop-controllers/copy/table.js.map +1 -0
- package/dist/esm/prop-controllers/copy.js +53 -0
- package/dist/esm/prop-controllers/copy.js.map +1 -0
- package/dist/esm/prop-controllers/descriptors.js +292 -0
- package/dist/esm/prop-controllers/descriptors.js.map +1 -0
- package/dist/esm/prop-controllers/index.js +16 -0
- package/dist/esm/prop-controllers/index.js.map +1 -0
- package/dist/esm/prop-controllers/instances.js +132 -0
- package/dist/esm/prop-controllers/instances.js.map +1 -0
- package/dist/esm/prop-controllers/introspection.js +366 -0
- package/dist/esm/prop-controllers/introspection.js.map +1 -0
- package/dist/esm/react.js +22 -0
- package/dist/esm/react.js.map +1 -0
- package/dist/esm/runtimes/react/components/Document.js +13 -0
- package/dist/esm/runtimes/react/components/Document.js.map +1 -0
- package/dist/esm/runtimes/react/components/DocumentReference.js +18 -0
- package/dist/esm/runtimes/react/components/DocumentReference.js.map +1 -0
- package/dist/esm/runtimes/react/components/Element.js +48 -0
- package/dist/esm/runtimes/react/components/Element.js.map +1 -0
- package/dist/esm/runtimes/react/components/ElementData.js +21 -0
- package/dist/esm/runtimes/react/components/ElementData.js.map +1 -0
- package/dist/esm/runtimes/react/components/ElementReference.js +46 -0
- package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -0
- package/dist/esm/runtimes/react/components/LiveProvider.js +25 -0
- package/dist/esm/runtimes/react/components/LiveProvider.js.map +1 -0
- package/dist/esm/runtimes/react/components/PageProvider.js +9 -0
- package/dist/esm/runtimes/react/components/PageProvider.js.map +1 -0
- package/dist/esm/runtimes/react/components/PreviewProvider.js +38 -0
- package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -0
- package/dist/esm/runtimes/react/components/RuntimeProvider.js +11 -0
- package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -0
- package/dist/esm/runtimes/react/components/index.js +2 -0
- package/dist/esm/runtimes/react/components/index.js.map +1 -0
- package/dist/esm/runtimes/react/components/render-hook.js +11 -0
- package/dist/esm/runtimes/react/components/render-hook.js.map +1 -0
- package/dist/esm/runtimes/react/controls/checkbox.js +13 -0
- package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -0
- package/dist/esm/runtimes/react/controls/color.js +24 -0
- package/dist/esm/runtimes/react/controls/color.js.map +1 -0
- package/dist/esm/runtimes/react/controls/combobox.js +7 -0
- package/dist/esm/runtimes/react/controls/combobox.js.map +1 -0
- package/dist/esm/runtimes/react/controls/control.js +242 -0
- package/dist/esm/runtimes/react/controls/control.js.map +1 -0
- package/dist/esm/runtimes/react/controls/icon-radio-group.js +7 -0
- package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -0
- package/dist/esm/runtimes/react/controls/image.js +35 -0
- package/dist/esm/runtimes/react/controls/image.js.map +1 -0
- package/dist/esm/runtimes/react/controls/link.js +76 -0
- package/dist/esm/runtimes/react/controls/link.js.map +1 -0
- package/dist/esm/runtimes/react/controls/list.js +32 -0
- package/dist/esm/runtimes/react/controls/list.js.map +1 -0
- package/dist/esm/runtimes/react/controls/number.js +13 -0
- package/dist/esm/runtimes/react/controls/number.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +106 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/index.js +7 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.js +39 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +35 -0
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js +202 -0
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js +48 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js +33 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/index.js +2 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js +24 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/index.js +2 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js +11 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/Leaf/leaf.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/index.js +3 -0
- package/dist/esm/runtimes/react/controls/rich-text/components/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/index.js +2 -0
- package/dist/esm/runtimes/react/controls/rich-text/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text/rich-text.js +25 -0
- package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +170 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js +7 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js +23 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js +23 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +56 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +20 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.js +39 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +123 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/index.js +2 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/index.js.map +1 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +27 -0
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/select.js +7 -0
- package/dist/esm/runtimes/react/controls/select.js.map +1 -0
- package/dist/esm/runtimes/react/controls/shape.js +25 -0
- package/dist/esm/runtimes/react/controls/shape.js.map +1 -0
- package/dist/esm/runtimes/react/controls/slot.js +121 -0
- package/dist/esm/runtimes/react/controls/slot.js.map +1 -0
- package/dist/esm/runtimes/react/controls/style-v2.js +77 -0
- package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/style.js +119 -0
- package/dist/esm/runtimes/react/controls/style.js.map +1 -0
- package/dist/esm/runtimes/react/controls/text-area.js +13 -0
- package/dist/esm/runtimes/react/controls/text-area.js.map +1 -0
- package/dist/esm/runtimes/react/controls/text-input.js +13 -0
- package/dist/esm/runtimes/react/controls/text-input.js.map +1 -0
- package/dist/esm/runtimes/react/controls/typography.js +143 -0
- package/dist/esm/runtimes/react/controls/typography.js.map +1 -0
- package/dist/esm/runtimes/react/controls.js +275 -0
- package/dist/esm/runtimes/react/controls.js.map +1 -0
- package/dist/esm/runtimes/react/element-imperative-handle.js +43 -0
- package/dist/esm/runtimes/react/element-imperative-handle.js.map +1 -0
- package/dist/esm/runtimes/react/find-dom-node.js +39 -0
- package/dist/esm/runtimes/react/find-dom-node.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/makeswift-api.js +126 -0
- package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-breakpoints.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-breakpoints.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-builder-edit-mode.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-component.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-component.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-disable-register-element.js +10 -0
- package/dist/esm/runtimes/react/hooks/use-disable-register-element.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-dispatch.js +10 -0
- package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-document-cycles.js +10 -0
- package/dist/esm/runtimes/react/hooks/use-document-cycles.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-document-key.js +10 -0
- package/dist/esm/runtimes/react/hooks/use-document-key.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-document.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-document.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-element-id.js +13 -0
- package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-is-in-builder.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-is-in-builder.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-is-preview.js +9 -0
- package/dist/esm/runtimes/react/hooks/use-is-preview.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-page-id.js +16 -0
- package/dist/esm/runtimes/react/hooks/use-page-id.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-selector.js +10 -0
- package/dist/esm/runtimes/react/hooks/use-selector.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-store.js +11 -0
- package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -0
- package/dist/esm/runtimes/react/index.js +32 -0
- package/dist/esm/runtimes/react/index.js.map +1 -0
- package/dist/esm/runtimes/react/poll-box-model.js +25 -0
- package/dist/esm/runtimes/react/poll-box-model.js.map +1 -0
- package/dist/esm/runtimes/react/react-runtime.js +92 -0
- package/dist/esm/runtimes/react/react-runtime.js.map +1 -0
- package/dist/esm/runtimes/react/use-global-style.js +62 -0
- package/dist/esm/runtimes/react/use-global-style.js.map +1 -0
- package/dist/esm/runtimes/react/use-style.js +21 -0
- package/dist/esm/runtimes/react/use-style.js.map +1 -0
- package/dist/esm/runtimes/react/utils/suppress-ref-warning.js +17 -0
- package/dist/esm/runtimes/react/utils/suppress-ref-warning.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js +22 -0
- package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/constants.js +7 -0
- package/dist/esm/slate/BlockPlugin/constants.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/dedent.js +46 -0
- package/dist/esm/slate/BlockPlugin/dedent.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/indent.js +46 -0
- package/dist/esm/slate/BlockPlugin/indent.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/index.js +326 -0
- package/dist/esm/slate/BlockPlugin/index.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js +32 -0
- package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/toggleList.js +28 -0
- package/dist/esm/slate/BlockPlugin/toggleList.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/types.js +1 -0
- package/dist/esm/slate/BlockPlugin/types.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/unwrapInline.js +13 -0
- package/dist/esm/slate/BlockPlugin/unwrapInline.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/unwrapList.js +58 -0
- package/dist/esm/slate/BlockPlugin/unwrapList.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/utils/filterForSubtreeRoots.js +12 -0
- package/dist/esm/slate/BlockPlugin/utils/filterForSubtreeRoots.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js +21 -0
- package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/utils/location.js +14 -0
- package/dist/esm/slate/BlockPlugin/utils/location.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/wrapInline.js +12 -0
- package/dist/esm/slate/BlockPlugin/wrapInline.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/wrapList.js +43 -0
- package/dist/esm/slate/BlockPlugin/wrapList.js.map +1 -0
- package/dist/esm/slate/BuilderPlugin/index.js +56 -0
- package/dist/esm/slate/BuilderPlugin/index.js.map +1 -0
- package/dist/esm/slate/InlineModePlugin/index.js +58 -0
- package/dist/esm/slate/InlineModePlugin/index.js.map +1 -0
- package/dist/esm/slate/InlinePlugin/getValue.js +32 -0
- package/dist/esm/slate/InlinePlugin/getValue.js.map +1 -0
- package/dist/esm/slate/InlinePlugin/index.js +54 -0
- package/dist/esm/slate/InlinePlugin/index.js.map +1 -0
- package/dist/esm/slate/InlinePlugin/onChange.js +39 -0
- package/dist/esm/slate/InlinePlugin/onChange.js.map +1 -0
- package/dist/esm/slate/InlinePlugin/types.js +32 -0
- package/dist/esm/slate/InlinePlugin/types.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/getValue.js +31 -0
- package/dist/esm/slate/LinkPlugin/getValue.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/index.js +71 -0
- package/dist/esm/slate/LinkPlugin/index.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +24 -0
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/onChange.js +29 -0
- package/dist/esm/slate/LinkPlugin/onChange.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/types.js +13 -0
- package/dist/esm/slate/LinkPlugin/types.js.map +1 -0
- package/dist/esm/slate/LocalChangesPlugin/index.js +20 -0
- package/dist/esm/slate/LocalChangesPlugin/index.js.map +1 -0
- package/dist/esm/slate/TextAlignPlugin/getValue.js +19 -0
- package/dist/esm/slate/TextAlignPlugin/getValue.js.map +1 -0
- package/dist/esm/slate/TextAlignPlugin/index.js +82 -0
- package/dist/esm/slate/TextAlignPlugin/index.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/clearActiveTypographyStyle.js +50 -0
- package/dist/esm/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/clearDeviceActiveTypography.js +50 -0
- package/dist/esm/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/detachActiveTypography.js +48 -0
- package/dist/esm/slate/TypographyPlugin/detachActiveTypography.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/getValue.js +15 -0
- package/dist/esm/slate/TypographyPlugin/getValue.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/index.js +115 -0
- package/dist/esm/slate/TypographyPlugin/index.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/normalizeSimilarText.js +29 -0
- package/dist/esm/slate/TypographyPlugin/normalizeSimilarText.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyDown.js +47 -0
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js +117 -0
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/setActiveTypographyId.js +24 -0
- package/dist/esm/slate/TypographyPlugin/setActiveTypographyId.js.map +1 -0
- package/dist/esm/slate/TypographyPlugin/setActiveTypographyStyle.js +64 -0
- package/dist/esm/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -0
- package/dist/esm/slate/index.js +11 -0
- package/dist/esm/slate/index.js.map +1 -0
- package/dist/esm/slate/selectors.js +114 -0
- package/dist/esm/slate/selectors.js.map +1 -0
- package/dist/esm/slate/types.js +37 -0
- package/dist/esm/slate/types.js.map +1 -0
- package/dist/esm/slate/utils/editor.js +30 -0
- package/dist/esm/slate/utils/editor.js.map +1 -0
- package/dist/esm/slate/utils/element.js +56 -0
- package/dist/esm/slate/utils/element.js.map +1 -0
- package/dist/esm/slate/utils/filterForSubtreeRoots.js +12 -0
- package/dist/esm/slate/utils/filterForSubtreeRoots.js.map +1 -0
- package/dist/esm/slate/utils/index.js +2 -0
- package/dist/esm/slate/utils/index.js.map +1 -0
- package/dist/esm/slate/utils/location.js +14 -0
- package/dist/esm/slate/utils/location.js.map +1 -0
- package/dist/esm/slate/utils/responsive.js +90 -0
- package/dist/esm/slate/utils/responsive.js.map +1 -0
- package/dist/esm/slate/utils/toText.js +65 -0
- package/dist/esm/slate/utils/toText.js.map +1 -0
- package/dist/esm/slate/utils/unhangRange.js +35 -0
- package/dist/esm/slate/utils/unhangRange.js.map +1 -0
- package/dist/esm/state/actions.js +316 -0
- package/dist/esm/state/actions.js.map +1 -0
- package/dist/esm/state/makeswift-api-client.js +88 -0
- package/dist/esm/state/makeswift-api-client.js.map +1 -0
- package/dist/esm/state/modules/api-resources.js +98 -0
- package/dist/esm/state/modules/api-resources.js.map +1 -0
- package/dist/esm/state/modules/box-models.js +96 -0
- package/dist/esm/state/modules/box-models.js.map +1 -0
- package/dist/esm/state/modules/breakpoints.js +208 -0
- package/dist/esm/state/modules/breakpoints.js.map +1 -0
- package/dist/esm/state/modules/builder-edit-mode.js +23 -0
- package/dist/esm/state/modules/builder-edit-mode.js.map +1 -0
- package/dist/esm/state/modules/components-meta.js +53 -0
- package/dist/esm/state/modules/components-meta.js.map +1 -0
- package/dist/esm/state/modules/element-imperative-handles.js +33 -0
- package/dist/esm/state/modules/element-imperative-handles.js.map +1 -0
- package/dist/esm/state/modules/is-in-builder.js +21 -0
- package/dist/esm/state/modules/is-in-builder.js.map +1 -0
- package/dist/esm/state/modules/is-preview.js +18 -0
- package/dist/esm/state/modules/is-preview.js.map +1 -0
- package/dist/esm/state/modules/pointer.js +20 -0
- package/dist/esm/state/modules/pointer.js.map +1 -0
- package/dist/esm/state/modules/prop-controller-handles.js +66 -0
- package/dist/esm/state/modules/prop-controller-handles.js.map +1 -0
- package/dist/esm/state/modules/prop-controllers.js +32 -0
- package/dist/esm/state/modules/prop-controllers.js.map +1 -0
- package/dist/esm/state/modules/react-components.js +31 -0
- package/dist/esm/state/modules/react-components.js.map +1 -0
- package/dist/esm/state/modules/read-only-documents.js +48 -0
- package/dist/esm/state/modules/read-only-documents.js.map +1 -0
- package/dist/esm/state/modules/read-write-documents.js +53 -0
- package/dist/esm/state/modules/read-write-documents.js.map +1 -0
- package/dist/esm/state/react-builder-preview.js +541 -0
- package/dist/esm/state/react-builder-preview.js.map +1 -0
- package/dist/esm/state/react-page.js +335 -0
- package/dist/esm/state/react-page.js.map +1 -0
- package/dist/esm/utils/clamp.js +6 -0
- package/dist/esm/utils/clamp.js.map +1 -0
- package/dist/esm/utils/coalesce.js +13 -0
- package/dist/esm/utils/coalesce.js.map +1 -0
- package/dist/esm/utils/deepEqual.js +23 -0
- package/dist/esm/utils/deepEqual.js.map +1 -0
- package/dist/esm/utils/intersection.js +16 -0
- package/dist/esm/utils/intersection.js.map +1 -0
- package/dist/esm/utils/is.js +9 -0
- package/dist/esm/utils/is.js.map +1 -0
- package/dist/esm/utils/isErrorWithMessage.js +7 -0
- package/dist/esm/utils/isErrorWithMessage.js.map +1 -0
- package/dist/esm/utils/isNonNullable.js +7 -0
- package/dist/esm/utils/isNonNullable.js.map +1 -0
- package/dist/esm/utils/keys.js +6 -0
- package/dist/esm/utils/keys.js.map +1 -0
- package/dist/esm/utils/shallowEqual.js +22 -0
- package/dist/esm/utils/shallowEqual.js.map +1 -0
- package/dist/esm/utils/shallowMerge.js +14 -0
- package/dist/esm/utils/shallowMerge.js.map +1 -0
- package/dist/types/api/graphql/client.d.ts.map +1 -0
- package/dist/types/api/graphql/documents/fragments.d.ts.map +1 -0
- package/dist/types/api/graphql/documents/index.d.ts.map +1 -0
- package/dist/types/api/graphql/documents/queries.d.ts.map +1 -0
- package/dist/types/api/graphql/fragments.d.ts.map +1 -0
- package/dist/types/api/graphql/generated/fragment-document-nodes.d.ts.map +1 -0
- package/dist/types/api/graphql/generated/types.d.ts.map +1 -0
- package/dist/types/api/graphql/types.d.ts.map +1 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/react.d.ts.map +1 -0
- package/dist/types/box-model.d.ts.map +1 -0
- package/dist/types/builder/index.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/combobox.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/list.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/rich-text-v2.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/shape.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/style-v2.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/types.d.ts.map +1 -0
- package/dist/types/builder/serialization/function-serialization.d.ts.map +1 -0
- package/dist/types/builder/serialization/function-serialization.test.d.ts +2 -0
- package/dist/types/builder/serialization/function-serialization.test.d.ts.map +1 -0
- package/dist/types/builder/serialization/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/animations.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/constants.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Box/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/contants.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Button/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Carousel/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Divider/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Embed/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Form/types.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/Image.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Image/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/Root.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Root/register.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/index.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/options.d.ts.map +1 -0
- package/dist/types/components/builtin/SocialLinks/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/Text.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Text/register.d.ts.map +1 -0
- package/dist/types/components/builtin/Video/Video.d.ts.map +1 -0
- package/dist/types/components/builtin/Video/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Video/register.d.ts.map +1 -0
- package/dist/types/components/builtin/constants.d.ts.map +1 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -0
- package/dist/types/components/builtin/register.d.ts.map +1 -0
- package/dist/types/components/hooks/index.d.ts.map +1 -0
- package/dist/types/components/hooks/useBackgrounds.d.ts.map +1 -0
- package/dist/types/components/hooks/useBorder.d.ts.map +1 -0
- package/dist/types/components/hooks/useBoxShadow.d.ts.map +1 -0
- package/dist/types/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/types/components/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/types/components/hooks/useResponsiveColor.d.ts.map +1 -0
- package/dist/types/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
- package/dist/types/components/icons/ArrowDown8.d.ts +3 -0
- package/dist/types/components/icons/ArrowDown8.d.ts.map +1 -0
- package/dist/types/components/icons/CaretDown8.d.ts +3 -0
- package/dist/types/components/icons/CaretDown8.d.ts.map +1 -0
- package/dist/types/components/icons/Check12.d.ts +3 -0
- package/dist/types/components/icons/Check12.d.ts.map +1 -0
- package/dist/types/components/icons/ChevronDown8.d.ts +3 -0
- package/dist/types/components/icons/ChevronDown8.d.ts.map +1 -0
- package/dist/types/components/icons/LogoAngellist20.d.ts +3 -0
- package/dist/types/components/icons/LogoAngellist20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoCodepen20.d.ts +3 -0
- package/dist/types/components/icons/LogoCodepen20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoDiscord20.d.ts +3 -0
- package/dist/types/components/icons/LogoDiscord20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoDribbble20.d.ts +3 -0
- package/dist/types/components/icons/LogoDribbble20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoFacebook20.d.ts +3 -0
- package/dist/types/components/icons/LogoFacebook20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoGithub20.d.ts +3 -0
- package/dist/types/components/icons/LogoGithub20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoInstagram20.d.ts +3 -0
- package/dist/types/components/icons/LogoInstagram20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoLinkedin20.d.ts +3 -0
- package/dist/types/components/icons/LogoLinkedin20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoMedium20.d.ts +3 -0
- package/dist/types/components/icons/LogoMedium20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoPinterest20.d.ts +3 -0
- package/dist/types/components/icons/LogoPinterest20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoReddit20.d.ts +3 -0
- package/dist/types/components/icons/LogoReddit20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoRss20.d.ts +3 -0
- package/dist/types/components/icons/LogoRss20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoSlack20.d.ts +3 -0
- package/dist/types/components/icons/LogoSlack20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoSnapchat20.d.ts +3 -0
- package/dist/types/components/icons/LogoSnapchat20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoSoundcloud20.d.ts +3 -0
- package/dist/types/components/icons/LogoSoundcloud20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoSpotify20.d.ts +3 -0
- package/dist/types/components/icons/LogoSpotify20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoTelegram20.d.ts +3 -0
- package/dist/types/components/icons/LogoTelegram20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoTumblr20.d.ts +3 -0
- package/dist/types/components/icons/LogoTumblr20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoTwitch20.d.ts +3 -0
- package/dist/types/components/icons/LogoTwitch20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoTwitter20.d.ts +3 -0
- package/dist/types/components/icons/LogoTwitter20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoVimeo20.d.ts +3 -0
- package/dist/types/components/icons/LogoVimeo20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoWhatsapp20.d.ts +3 -0
- package/dist/types/components/icons/LogoWhatsapp20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoX20.d.ts +3 -0
- package/dist/types/components/icons/LogoX20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoYelp20.d.ts +3 -0
- package/dist/types/components/icons/LogoYelp20.d.ts.map +1 -0
- package/dist/types/components/icons/LogoYoutube20.d.ts +3 -0
- package/dist/types/components/icons/LogoYoutube20.d.ts.map +1 -0
- package/dist/types/components/icons/MobileMenu28.d.ts +3 -0
- package/dist/types/components/icons/MobileMenu28.d.ts.map +1 -0
- package/dist/types/components/icons/Plus8.d.ts +3 -0
- package/dist/types/components/icons/Plus8.d.ts.map +1 -0
- package/dist/types/components/icons/Spinner20.d.ts +3 -0
- package/dist/types/components/icons/Spinner20.d.ts.map +1 -0
- package/dist/types/components/icons/Times16.d.ts +3 -0
- package/dist/types/components/icons/Times16.d.ts.map +1 -0
- package/dist/types/components/icons/Warning20.d.ts +3 -0
- package/dist/types/components/icons/Warning20.d.ts.map +1 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/page/BodySnippet.d.ts.map +1 -0
- package/dist/types/components/page/Page.d.ts.map +1 -0
- package/dist/types/components/page/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
- package/dist/types/components/shared/FallbackComponent/index.d.ts.map +1 -0
- package/dist/types/components/shared/GutterContainer/index.d.ts.map +1 -0
- package/dist/types/components/shared/Link/index.d.ts.map +1 -0
- package/dist/types/components/shared/grid-item.d.ts.map +1 -0
- package/dist/types/components/utils/colorToString.d.ts.map +1 -0
- package/dist/types/components/utils/columns.d.ts.map +1 -0
- package/dist/types/components/utils/drop-first.d.ts.map +1 -0
- package/dist/types/components/utils/isNonNullable.d.ts.map +1 -0
- package/dist/types/components/utils/placeholders.d.ts.map +1 -0
- package/dist/types/components/utils/responsive-style.d.ts.map +1 -0
- package/dist/types/components/utils/types.d.ts.map +1 -0
- package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -0
- package/dist/types/controls/__tests__/translation.test.d.ts.map +1 -0
- package/dist/types/controls/checkbox.d.ts.map +1 -0
- package/dist/types/controls/color.d.ts.map +1 -0
- package/dist/types/controls/combobox.d.ts.map +1 -0
- package/dist/types/controls/control-data-type-key.d.ts.map +1 -0
- package/dist/types/controls/control.d.ts.map +1 -0
- package/dist/types/controls/icon-radio-group.d.ts.map +1 -0
- package/dist/types/controls/image.d.ts.map +1 -0
- package/dist/types/controls/image.test.d.ts +2 -0
- package/dist/types/controls/image.test.d.ts.map +1 -0
- package/dist/types/controls/index.d.ts.map +1 -0
- package/dist/types/controls/link.d.ts.map +1 -0
- package/dist/types/controls/link.test.d.ts +2 -0
- package/dist/types/controls/link.test.d.ts.map +1 -0
- package/dist/types/controls/list.d.ts.map +1 -0
- package/dist/types/controls/number.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/copy.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/dto.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/copy.d.ts.map +1 -0
- package/dist/types/controls/rich-text/dto-types.d.ts.map +1 -0
- package/dist/types/controls/rich-text/dto.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/blockquote.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/index.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/list.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/typography.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -0
- package/dist/types/controls/rich-text/index.d.ts.map +1 -0
- package/dist/types/controls/rich-text/introspection.d.ts.map +1 -0
- package/dist/types/controls/rich-text/rich-text.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/copy.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/simple.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/introspection.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/__tests__/translation.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/copy.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/dto.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/index.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/introspection.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/translation.d.ts.map +1 -0
- package/dist/types/controls/select.d.ts.map +1 -0
- package/dist/types/controls/shape.d.ts.map +1 -0
- package/dist/types/controls/slot.d.ts.map +1 -0
- package/dist/types/controls/style-v2.d.ts.map +1 -0
- package/dist/types/controls/style.d.ts.map +1 -0
- package/dist/types/controls/style.test.d.ts +2 -0
- package/dist/types/controls/style.test.d.ts.map +1 -0
- package/dist/types/controls/text-area.d.ts.map +1 -0
- package/dist/types/controls/text-input.d.ts.map +1 -0
- package/dist/types/controls/types.d.ts.map +1 -0
- package/dist/types/controls/typography.d.ts.map +1 -0
- package/dist/types/css/border-radius.d.ts.map +1 -0
- package/dist/types/css/border.d.ts.map +1 -0
- package/dist/types/css/length-percentage.d.ts.map +1 -0
- package/dist/types/css/length.d.ts.map +1 -0
- package/dist/types/css/margin.d.ts.map +1 -0
- package/dist/types/css/padding.d.ts.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/locale.d.ts +9 -0
- package/dist/types/locale.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/element-tree.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/fonts.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/manifest.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/merge-translated-data.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/proxy-preview-mode.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/revalidate.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/translatable-data.d.ts.map +1 -0
- package/dist/types/next/api-handler/index.d.ts.map +1 -0
- package/dist/types/next/client.d.ts.map +1 -0
- package/dist/types/next/document.d.ts.map +1 -0
- package/dist/types/next/dynamic.d.ts.map +1 -0
- package/dist/types/next/index.d.ts +15 -0
- package/dist/types/next/index.d.ts.map +1 -0
- package/dist/types/next/next-version.d.ts.map +1 -0
- package/dist/types/next/plugin.d.ts +1 -0
- package/dist/types/next/plugin.d.ts.map +1 -0
- package/dist/types/next/preview-mode.d.ts.map +1 -0
- package/dist/types/next/server.d.ts +3 -0
- package/dist/types/next/server.d.ts.map +1 -0
- package/dist/types/prop-controllers/base.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/backgrounds.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/border.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/border.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/border.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/element-id.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/grid.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/image.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/image.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/image.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/images.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/images.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/images.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/link.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/navigation-links.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/navigation-links.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/navigation-links.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/responsive-color.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/rich-text.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/rich-text.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/rich-text.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/shadows.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/shadows.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/shadows.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table-form-fields.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/table.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy.d.ts.map +1 -0
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -0
- package/dist/types/prop-controllers/index.d.ts.map +1 -0
- package/dist/types/prop-controllers/instances.d.ts.map +1 -0
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -0
- package/dist/types/react.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/Document.d.ts +9 -0
- package/dist/types/runtimes/react/components/Document.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/DocumentReference.d.ts +9 -0
- package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/Element.d.ts +9 -0
- package/dist/types/runtimes/react/components/Element.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/ElementData.d.ts +8 -0
- package/dist/types/runtimes/react/components/ElementData.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/ElementReference.d.ts +9 -0
- package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/LiveProvider.d.ts +13 -0
- package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/PageProvider.d.ts +9 -0
- package/dist/types/runtimes/react/components/PageProvider.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts +13 -0
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +14 -0
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/render-hook.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/color.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/combobox.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/control.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/image.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/link.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/list.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/number.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/components/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/select.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/shape.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/slot.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/style.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/typography.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls.d.ts.map +1 -0
- package/dist/types/runtimes/react/element-imperative-handle.d.ts.map +1 -0
- package/dist/types/runtimes/react/find-dom-node.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-breakpoints.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-breakpoints.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-builder-edit-mode.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-builder-edit-mode.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-component.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-component.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts +4 -0
- package/dist/types/runtimes/react/hooks/use-disable-register-element.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-dispatch.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts +4 -0
- package/dist/types/runtimes/react/hooks/use-document-cycles.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts +4 -0
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-document.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-document.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-element-id.d.ts +2 -0
- package/dist/types/runtimes/react/hooks/use-element-id.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-is-in-builder.d.ts +2 -0
- package/dist/types/runtimes/react/hooks/use-is-in-builder.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-is-preview.d.ts +2 -0
- package/dist/types/runtimes/react/hooks/use-is-preview.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-page-id.d.ts +4 -0
- package/dist/types/runtimes/react/hooks/use-page-id.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-selector.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-selector.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-store.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -0
- package/dist/types/runtimes/react/index.d.ts +15 -0
- package/dist/types/runtimes/react/index.d.ts.map +1 -0
- package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -0
- package/dist/types/runtimes/react/react-runtime.d.ts +38 -0
- package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -0
- package/dist/types/runtimes/react/use-global-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/use-style.d.ts.map +1 -0
- package/dist/types/runtimes/react/utils/suppress-ref-warning.d.ts +5 -0
- package/dist/types/runtimes/react/utils/suppress-ref-warning.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/clearBlockKeyForDevice.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/clearBlockKeyForDevice.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/dedent.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/dedent.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/indent.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/indent.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/normalization.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/normalization.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/setBlockKeyForDevice.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/setBlockKeyForDevice.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/toggleList.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/toggleList.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/unwrapInline.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/unwrapInline.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/unwrapList.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/unwrapList.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/utils/filterForSubtreeRoots.test.d.ts +2 -0
- package/dist/types/slate/BlockPlugin/__tests__/utils/filterForSubtreeRoots.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/utils/getSelectedListItems.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/utils/getSelectedListItems.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/wrapInline.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/wrapInline.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/__tests__/wrapList.test.d.ts +4 -0
- package/dist/types/slate/BlockPlugin/__tests__/wrapList.test.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/clearBlockKeyForDevice.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/constants.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/dedent.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/indent.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/toggleList.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/types.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/unwrapInline.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/unwrapList.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/utils/filterForSubtreeRoots.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/utils/getSelectedListItems.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/utils/location.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/wrapInline.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/wrapList.d.ts.map +1 -0
- package/dist/types/slate/BuilderPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/InlineModePlugin/__tests__/inlineMode.test.d.ts +4 -0
- package/dist/types/slate/InlineModePlugin/__tests__/inlineMode.test.d.ts.map +1 -0
- package/dist/types/slate/InlineModePlugin/index.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/__tests__/getValue.test.d.ts +4 -0
- package/dist/types/slate/InlinePlugin/__tests__/getValue.test.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/__tests__/onChange.test.d.ts +4 -0
- package/dist/types/slate/InlinePlugin/__tests__/onChange.test.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -0
- package/dist/types/slate/InlinePlugin/types.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/__tests__/getValue.test.d.ts +4 -0
- package/dist/types/slate/LinkPlugin/__tests__/getValue.test.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/__tests__/onChange.test.d.ts +4 -0
- package/dist/types/slate/LinkPlugin/__tests__/onChange.test.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/types.d.ts.map +1 -0
- package/dist/types/slate/LocalChangesPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/TextAlignPlugin/__tests__/getValue.test.d.ts +4 -0
- package/dist/types/slate/TextAlignPlugin/__tests__/getValue.test.d.ts.map +1 -0
- package/dist/types/slate/TextAlignPlugin/getValue.d.ts.map +1 -0
- package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/clearActiveTypographyStyle.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/clearActiveTypographyStyle.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/clearDeviceActiveTypography.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/clearDeviceActiveTypography.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/detachActiveTypography.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/detachActiveTypography.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/normalization.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/normalization.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/setActiveTypographyId.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/setActiveTypographyId.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/__tests__/setActiveTypographyStyle.test.d.ts +4 -0
- package/dist/types/slate/TypographyPlugin/__tests__/setActiveTypographyStyle.test.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/normalizeSimilarText.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/normalizeTypographyDown.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/normalizeTypographyUp.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/setActiveTypographyId.d.ts.map +1 -0
- package/dist/types/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -0
- package/dist/types/slate/index.d.ts.map +1 -0
- package/dist/types/slate/selectors.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/editor-v1.d.ts +26 -0
- package/dist/types/slate/test-helpers/editor-v1.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/editor-v2-inline.d.ts +5 -0
- package/dist/types/slate/test-helpers/editor-v2-inline.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/editor-v2.d.ts +5 -0
- package/dist/types/slate/test-helpers/editor-v2.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/index.d.ts +6 -0
- package/dist/types/slate/test-helpers/index.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/slate-test-helper.d.ts +95 -0
- package/dist/types/slate/test-helpers/slate-test-helper.d.ts.map +1 -0
- package/dist/types/slate/test-helpers/test-elements.d.ts +46 -0
- package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -0
- package/dist/types/slate/types.d.ts.map +1 -0
- package/dist/types/slate/utils/editor.d.ts.map +1 -0
- package/dist/types/slate/utils/element.d.ts.map +1 -0
- package/dist/types/slate/utils/filterForSubtreeRoots.d.ts +3 -0
- package/dist/types/slate/utils/filterForSubtreeRoots.d.ts.map +1 -0
- package/dist/types/slate/utils/index.d.ts.map +1 -0
- package/dist/types/slate/utils/location.d.ts +5 -0
- package/dist/types/slate/utils/location.d.ts.map +1 -0
- package/dist/types/slate/utils/responsive.d.ts.map +1 -0
- package/dist/types/slate/utils/toText.d.ts.map +1 -0
- package/dist/types/slate/utils/unhangRange.d.ts.map +1 -0
- package/dist/types/state/actions.d.ts +398 -0
- package/dist/types/state/actions.d.ts.map +1 -0
- package/dist/types/state/makeswift-api-client.d.ts.map +1 -0
- package/dist/types/state/modules/api-resources.d.ts.map +1 -0
- package/dist/types/state/modules/box-models.d.ts.map +1 -0
- package/dist/types/state/modules/breakpoints.d.ts.map +1 -0
- package/dist/types/state/modules/breakpoints.test.d.ts.map +1 -0
- package/dist/types/state/modules/builder-edit-mode.d.ts.map +1 -0
- package/dist/types/state/modules/components-meta.d.ts.map +1 -0
- package/dist/types/state/modules/element-imperative-handles.d.ts.map +1 -0
- package/dist/types/state/modules/is-in-builder.d.ts.map +1 -0
- package/dist/types/state/modules/is-preview.d.ts.map +1 -0
- package/dist/types/state/modules/pointer.d.ts.map +1 -0
- package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -0
- package/dist/types/state/modules/prop-controllers.d.ts.map +1 -0
- package/dist/types/state/modules/react-components.d.ts.map +1 -0
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -0
- package/dist/types/state/modules/read-write-documents.d.ts.map +1 -0
- package/dist/types/state/react-builder-preview.d.ts +58 -0
- package/dist/types/state/react-builder-preview.d.ts.map +1 -0
- package/dist/types/state/react-builder-preview.test.d.ts +2 -0
- package/dist/types/state/react-builder-preview.test.d.ts.map +1 -0
- package/dist/types/state/react-page.d.ts.map +1 -0
- package/dist/types/state/react-page.test.d.ts.map +1 -0
- package/dist/types/utils/clamp.d.ts.map +1 -0
- package/dist/types/utils/coalesce.d.ts.map +1 -0
- package/dist/types/utils/deepEqual.d.ts.map +1 -0
- package/dist/types/utils/intersection.d.ts.map +1 -0
- package/dist/types/utils/is.d.ts.map +1 -0
- package/dist/types/utils/isErrorWithMessage.d.ts.map +1 -0
- package/dist/types/utils/isNonNullable.d.ts.map +1 -0
- package/dist/types/utils/keys.d.ts.map +1 -0
- package/dist/types/utils/shallowEqual.d.ts.map +1 -0
- package/dist/types/utils/shallowMerge.d.ts.map +1 -0
- package/next/package.json +5 -0
- package/next/plugin/index.d.ts +3 -0
- package/next/plugin/package.json +4 -0
- package/next/server/package.json +5 -0
- package/package.json +60 -80
- package/prop-controllers/package.json +5 -0
- package/react/package.json +5 -0
- package/slate/package.json +5 -0
- package/state/breakpoints/package.json +5 -0
- package/api.js +0 -1
- package/box-model.js +0 -1
- package/builder.js +0 -1
- package/components.js +0 -1
- package/controls.js +0 -1
- package/dist/Box.cjs.js +0 -248
- package/dist/Box.cjs.js.map +0 -1
- package/dist/Box.es.js +0 -246
- package/dist/Box.es.js.map +0 -1
- package/dist/Button.cjs.js +0 -290
- package/dist/Button.cjs.js.map +0 -1
- package/dist/Button.es.js +0 -284
- package/dist/Button.es.js.map +0 -1
- package/dist/Carousel.cjs.js +0 -481
- package/dist/Carousel.cjs.js.map +0 -1
- package/dist/Carousel.es.js +0 -479
- package/dist/Carousel.es.js.map +0 -1
- package/dist/Countdown.cjs.js +0 -421
- package/dist/Countdown.cjs.js.map +0 -1
- package/dist/Countdown.es.js +0 -419
- package/dist/Countdown.es.js.map +0 -1
- package/dist/Divider.cjs.js +0 -108
- package/dist/Divider.cjs.js.map +0 -1
- package/dist/Divider.es.js +0 -106
- package/dist/Divider.es.js.map +0 -1
- package/dist/Embed.cjs.js +0 -111
- package/dist/Embed.cjs.js.map +0 -1
- package/dist/Embed.es.js +0 -109
- package/dist/Embed.es.js.map +0 -1
- package/dist/Form.cjs.js +0 -1893
- package/dist/Form.cjs.js.map +0 -1
- package/dist/Form.es.js +0 -1867
- package/dist/Form.es.js.map +0 -1
- package/dist/Image.cjs.js +0 -165
- package/dist/Image.cjs.js.map +0 -1
- package/dist/Image.es.js +0 -159
- package/dist/Image.es.js.map +0 -1
- package/dist/LiveProvider.cjs.js +0 -63
- package/dist/LiveProvider.cjs.js.map +0 -1
- package/dist/LiveProvider.es.js +0 -61
- package/dist/LiveProvider.es.js.map +0 -1
- package/dist/Navigation.cjs.js +0 -846
- package/dist/Navigation.cjs.js.map +0 -1
- package/dist/Navigation.es.js +0 -824
- package/dist/Navigation.es.js.map +0 -1
- package/dist/PreviewProvider.cjs.js +0 -639
- package/dist/PreviewProvider.cjs.js.map +0 -1
- package/dist/PreviewProvider.es.js +0 -633
- package/dist/PreviewProvider.es.js.map +0 -1
- package/dist/ReadOnlyText.cjs.js +0 -342
- package/dist/ReadOnlyText.cjs.js.map +0 -1
- package/dist/ReadOnlyText.es.js +0 -338
- package/dist/ReadOnlyText.es.js.map +0 -1
- package/dist/ReadOnlyTextV2.cjs.js +0 -195
- package/dist/ReadOnlyTextV2.cjs.js.map +0 -1
- package/dist/ReadOnlyTextV2.es.js +0 -192
- package/dist/ReadOnlyTextV2.es.js.map +0 -1
- package/dist/Root.cjs.js +0 -197
- package/dist/Root.cjs.js.map +0 -1
- package/dist/Root.es.js +0 -175
- package/dist/Root.es.js.map +0 -1
- package/dist/SocialLinks.cjs.js +0 -1004
- package/dist/SocialLinks.cjs.js.map +0 -1
- package/dist/SocialLinks.es.js +0 -982
- package/dist/SocialLinks.es.js.map +0 -1
- package/dist/Text.cjs.js +0 -18
- package/dist/Text.cjs.js.map +0 -1
- package/dist/Text.es.js +0 -16
- package/dist/Text.es.js.map +0 -1
- package/dist/Video.cjs.js +0 -106
- package/dist/Video.cjs.js.map +0 -1
- package/dist/Video.es.js +0 -100
- package/dist/Video.es.js.map +0 -1
- package/dist/actions.cjs.js +0 -748
- package/dist/actions.cjs.js.map +0 -1
- package/dist/actions.es.js +0 -708
- package/dist/actions.es.js.map +0 -1
- package/dist/api.cjs.js +0 -397
- package/dist/api.cjs.js.map +0 -1
- package/dist/api.es.js +0 -394
- package/dist/api.es.js.map +0 -1
- package/dist/box-model.cjs.js +0 -10
- package/dist/box-model.cjs.js.map +0 -1
- package/dist/box-model.es.js +0 -5
- package/dist/box-model.es.js.map +0 -1
- package/dist/box-models.cjs.js +0 -108
- package/dist/box-models.cjs.js.map +0 -1
- package/dist/box-models.es.js +0 -99
- package/dist/box-models.es.js.map +0 -1
- package/dist/breakpoints.cjs.js +0 -223
- package/dist/breakpoints.cjs.js.map +0 -1
- package/dist/breakpoints.es.js +0 -206
- package/dist/breakpoints.es.js.map +0 -1
- package/dist/builder.cjs.js +0 -31
- package/dist/builder.cjs.js.map +0 -1
- package/dist/builder.es.js +0 -22
- package/dist/builder.es.js.map +0 -1
- package/dist/combobox.cjs.js +0 -8
- package/dist/combobox.cjs.js.map +0 -1
- package/dist/combobox.es.js +0 -6
- package/dist/combobox.es.js.map +0 -1
- package/dist/components.cjs.js +0 -100
- package/dist/components.cjs.js.map +0 -1
- package/dist/components.es.js +0 -71
- package/dist/components.es.js.map +0 -1
- package/dist/constants.cjs.js +0 -18
- package/dist/constants.cjs.js.map +0 -1
- package/dist/constants.es.js +0 -17
- package/dist/constants.es.js.map +0 -1
- package/dist/control-serialization.cjs.js +0 -640
- package/dist/control-serialization.cjs.js.map +0 -1
- package/dist/control-serialization.es.js +0 -634
- package/dist/control-serialization.es.js.map +0 -1
- package/dist/controls.cjs.js +0 -127
- package/dist/controls.cjs.js.map +0 -1
- package/dist/controls.es.js +0 -22
- package/dist/controls.es.js.map +0 -1
- package/dist/index.cjs.js +0 -4366
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.cjs2.js +0 -807
- package/dist/index.cjs2.js.map +0 -1
- package/dist/index.cjs3.js +0 -146
- package/dist/index.cjs3.js.map +0 -1
- package/dist/index.cjs4.js +0 -60
- package/dist/index.cjs4.js.map +0 -1
- package/dist/index.cjs5.js +0 -48
- package/dist/index.cjs5.js.map +0 -1
- package/dist/index.cjs6.js +0 -87
- package/dist/index.cjs6.js.map +0 -1
- package/dist/index.cjs7.js +0 -22
- package/dist/index.cjs7.js.map +0 -1
- package/dist/index.cjs8.js +0 -386
- package/dist/index.cjs8.js.map +0 -1
- package/dist/index.cjs9.js +0 -349
- package/dist/index.cjs9.js.map +0 -1
- package/dist/index.es.js +0 -4239
- package/dist/index.es.js.map +0 -1
- package/dist/index.es2.js +0 -797
- package/dist/index.es2.js.map +0 -1
- package/dist/index.es3.js +0 -140
- package/dist/index.es3.js.map +0 -1
- package/dist/index.es4.js +0 -59
- package/dist/index.es4.js.map +0 -1
- package/dist/index.es5.js +0 -47
- package/dist/index.es5.js.map +0 -1
- package/dist/index.es6.js +0 -85
- package/dist/index.es6.js.map +0 -1
- package/dist/index.es7.js +0 -21
- package/dist/index.es7.js.map +0 -1
- package/dist/index.es8.js +0 -379
- package/dist/index.es8.js.map +0 -1
- package/dist/index.es9.js +0 -342
- package/dist/index.es9.js.map +0 -1
- package/dist/main.cjs.js +0 -43
- package/dist/main.cjs.js.map +0 -1
- package/dist/main.es.js +0 -21
- package/dist/main.es.js.map +0 -1
- package/dist/next-version.cjs.js +0 -10
- package/dist/next-version.cjs.js.map +0 -1
- package/dist/next-version.es.js +0 -5
- package/dist/next-version.es.js.map +0 -1
- package/dist/next.cjs.js +0 -53
- package/dist/next.cjs.js.map +0 -1
- package/dist/next.es.js +0 -42
- package/dist/next.es.js.map +0 -1
- package/dist/number.cjs.js +0 -23
- package/dist/number.cjs.js.map +0 -1
- package/dist/number.es.js +0 -15
- package/dist/number.es.js.map +0 -1
- package/dist/placeholders.cjs.js +0 -13
- package/dist/placeholders.cjs.js.map +0 -1
- package/dist/placeholders.es.js +0 -12
- package/dist/placeholders.es.js.map +0 -1
- package/dist/prop-controllers.cjs.js +0 -29
- package/dist/prop-controllers.cjs.js.map +0 -1
- package/dist/prop-controllers.es.js +0 -20
- package/dist/prop-controllers.es.js.map +0 -1
- package/dist/react-page.cjs.js +0 -5351
- package/dist/react-page.cjs.js.map +0 -1
- package/dist/react-page.es.js +0 -5128
- package/dist/react-page.es.js.map +0 -1
- package/dist/react.cjs.js +0 -53
- package/dist/react.cjs.js.map +0 -1
- package/dist/react.es.js +0 -42
- package/dist/react.es.js.map +0 -1
- package/dist/slate.cjs.js +0 -75
- package/dist/slate.cjs.js.map +0 -1
- package/dist/slate.es.js +0 -49
- package/dist/slate.es.js.map +0 -1
- package/dist/state/breakpoints.cjs.js +0 -21
- package/dist/state/breakpoints.cjs.js.map +0 -1
- package/dist/state/breakpoints.es.js +0 -4
- package/dist/state/breakpoints.es.js.map +0 -1
- package/dist/toText.cjs.js +0 -74
- package/dist/toText.cjs.js.map +0 -1
- package/dist/toText.es.js +0 -73
- package/dist/toText.es.js.map +0 -1
- package/dist/types/src/api/graphql/client.d.ts.map +0 -1
- package/dist/types/src/api/graphql/documents/fragments.d.ts.map +0 -1
- package/dist/types/src/api/graphql/documents/index.d.ts.map +0 -1
- package/dist/types/src/api/graphql/documents/queries.d.ts.map +0 -1
- package/dist/types/src/api/graphql/fragments.d.ts.map +0 -1
- package/dist/types/src/api/graphql/generated/fragment-document-nodes.d.ts.map +0 -1
- package/dist/types/src/api/graphql/generated/types.d.ts.map +0 -1
- package/dist/types/src/api/graphql/types.d.ts.map +0 -1
- package/dist/types/src/api/index.d.ts.map +0 -1
- package/dist/types/src/api/react.d.ts.map +0 -1
- package/dist/types/src/box-model.d.ts.map +0 -1
- package/dist/types/src/builder/index.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/control-serialization.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/combobox.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/list.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/rich-text-v2.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/shape.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/style-v2.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/controls/types.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/function-serialization.d.ts.map +0 -1
- package/dist/types/src/builder/serialization/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/Box.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/animations.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/constants.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Box/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Button/Button.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Button/contants.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Button/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Button/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Carousel/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Carousel/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Countdown/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Countdown/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Divider/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Divider/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Embed/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Embed/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/Form.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Field/services/responsiveField.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/context/FormContext.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Form/types.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Image/Image.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Image/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Image/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Navigation/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Root/Root.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Root/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Root/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +0 -1
- package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/SocialLinks/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/SocialLinks/options.d.ts.map +0 -1
- package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/Text.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Text/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Video/Video.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Video/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/Video/register.d.ts.map +0 -1
- package/dist/types/src/components/builtin/constants.d.ts.map +0 -1
- package/dist/types/src/components/builtin/index.d.ts.map +0 -1
- package/dist/types/src/components/builtin/register.d.ts.map +0 -1
- package/dist/types/src/components/hooks/index.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useBorder.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useBoxShadow.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useIsomorphicLayoutEffect.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useResponsiveColor.d.ts.map +0 -1
- package/dist/types/src/components/hooks/useTableFormFieldRefs.d.ts.map +0 -1
- package/dist/types/src/components/index.d.ts.map +0 -1
- package/dist/types/src/components/page/BodySnippet.d.ts.map +0 -1
- package/dist/types/src/components/page/Page.d.ts.map +0 -1
- package/dist/types/src/components/page/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +0 -1
- package/dist/types/src/components/shared/FallbackComponent/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/Link/index.d.ts.map +0 -1
- package/dist/types/src/components/shared/grid-item.d.ts.map +0 -1
- package/dist/types/src/components/utils/colorToString.d.ts.map +0 -1
- package/dist/types/src/components/utils/columns.d.ts.map +0 -1
- package/dist/types/src/components/utils/drop-first.d.ts.map +0 -1
- package/dist/types/src/components/utils/isNonNullable.d.ts.map +0 -1
- package/dist/types/src/components/utils/placeholders.d.ts.map +0 -1
- package/dist/types/src/components/utils/responsive-style.d.ts.map +0 -1
- package/dist/types/src/components/utils/types.d.ts.map +0 -1
- package/dist/types/src/controls/__tests__/fixtures/shape.d.ts.map +0 -1
- package/dist/types/src/controls/__tests__/translation.test.d.ts.map +0 -1
- package/dist/types/src/controls/checkbox.d.ts.map +0 -1
- package/dist/types/src/controls/color.d.ts.map +0 -1
- package/dist/types/src/controls/combobox.d.ts.map +0 -1
- package/dist/types/src/controls/control-data-type-key.d.ts.map +0 -1
- package/dist/types/src/controls/control.d.ts.map +0 -1
- package/dist/types/src/controls/icon-radio-group.d.ts.map +0 -1
- package/dist/types/src/controls/image.d.ts.map +0 -1
- package/dist/types/src/controls/index.d.ts.map +0 -1
- package/dist/types/src/controls/link.d.ts.map +0 -1
- package/dist/types/src/controls/list.d.ts.map +0 -1
- package/dist/types/src/controls/number.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/__tests__/copy.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/__tests__/dto.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/__tests__/introspection.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/copy.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/dto-types.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/dto.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/blockquote.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/empty-blocks.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/index.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/list.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/typography.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/fixtures/v2-data-types.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/index.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/introspection.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text/rich-text.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/copy.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/fixtures/simple.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/introspection.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/__tests__/translation.test.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/copy.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/dto.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/index.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/introspection.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/plugin.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/rich-text-v2.d.ts.map +0 -1
- package/dist/types/src/controls/rich-text-v2/translation.d.ts.map +0 -1
- package/dist/types/src/controls/select.d.ts.map +0 -1
- package/dist/types/src/controls/shape.d.ts.map +0 -1
- package/dist/types/src/controls/slot.d.ts.map +0 -1
- package/dist/types/src/controls/style-v2.d.ts.map +0 -1
- package/dist/types/src/controls/style.d.ts.map +0 -1
- package/dist/types/src/controls/text-area.d.ts.map +0 -1
- package/dist/types/src/controls/text-input.d.ts.map +0 -1
- package/dist/types/src/controls/types.d.ts.map +0 -1
- package/dist/types/src/controls/typography.d.ts.map +0 -1
- package/dist/types/src/css/border-radius.d.ts.map +0 -1
- package/dist/types/src/css/border.d.ts.map +0 -1
- package/dist/types/src/css/length-percentage.d.ts.map +0 -1
- package/dist/types/src/css/length.d.ts.map +0 -1
- package/dist/types/src/css/margin.d.ts.map +0 -1
- package/dist/types/src/css/padding.d.ts.map +0 -1
- package/dist/types/src/index.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/element-tree.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/fonts.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/merge-translated-data.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/revalidate.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/handlers/translatable-data.d.ts.map +0 -1
- package/dist/types/src/next/api-handler/index.d.ts.map +0 -1
- package/dist/types/src/next/client.d.ts.map +0 -1
- package/dist/types/src/next/document.d.ts.map +0 -1
- package/dist/types/src/next/dynamic.d.ts.map +0 -1
- package/dist/types/src/next/index.d.ts +0 -27
- package/dist/types/src/next/index.d.ts.map +0 -1
- package/dist/types/src/next/next-version.d.ts.map +0 -1
- package/dist/types/src/next/preview-mode.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/base.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/backgrounds.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/border.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/element-id.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/grid.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/image.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/images.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/link.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/navigation-links.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/responsive-color.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/rich-text.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/shadows.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/table-form-fields.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy/table.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/copy.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/descriptors.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/index.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/instances.d.ts.map +0 -1
- package/dist/types/src/prop-controllers/introspection.d.ts.map +0 -1
- package/dist/types/src/react.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/components/LiveProvider.d.ts +0 -13
- package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts +0 -13
- package/dist/types/src/runtimes/react/components/PreviewProvider.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/components/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/components/render-hook.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/checkbox.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/color.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/combobox.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/control.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/icon-radio-group.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/image.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/link.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/list.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/number.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/Leaf/leaf.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/components/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text/rich-text.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/select.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/shape.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/slot.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/style-v2.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/style.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/text-area.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/text-input.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls/typography.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/controls.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/element-imperative-handle.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/hooks/makeswift-api.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/index.d.ts +0 -77
- package/dist/types/src/runtimes/react/index.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/poll-box-model.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/use-global-style.d.ts.map +0 -1
- package/dist/types/src/runtimes/react/use-style.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/clearBlockKeyForDevice.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/constants.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/dedent.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/indent.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/toggleList.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/types.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/unwrapInline.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/unwrapList.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/utils/filterForSubtreeRoots.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/utils/getSelectedListItems.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/utils/location.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/wrapInline.d.ts.map +0 -1
- package/dist/types/src/slate/BlockPlugin/wrapList.d.ts.map +0 -1
- package/dist/types/src/slate/BuilderPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/InlineModePlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/InlinePlugin/getValue.d.ts.map +0 -1
- package/dist/types/src/slate/InlinePlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/InlinePlugin/onChange.d.ts.map +0 -1
- package/dist/types/src/slate/InlinePlugin/types.d.ts.map +0 -1
- package/dist/types/src/slate/LinkPlugin/getValue.d.ts.map +0 -1
- package/dist/types/src/slate/LinkPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +0 -1
- package/dist/types/src/slate/LinkPlugin/onChange.d.ts.map +0 -1
- package/dist/types/src/slate/LinkPlugin/types.d.ts.map +0 -1
- package/dist/types/src/slate/LocalChangesPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/TextAlignPlugin/getValue.d.ts.map +0 -1
- package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/clearActiveTypographyStyle.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/clearDeviceActiveTypography.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/detachActiveTypography.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/getValue.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/index.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/normalizeSimilarText.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/normalizeTypographyDown.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/normalizeTypographyUp.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/setActiveTypographyId.d.ts.map +0 -1
- package/dist/types/src/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +0 -1
- package/dist/types/src/slate/index.d.ts.map +0 -1
- package/dist/types/src/slate/selectors.d.ts.map +0 -1
- package/dist/types/src/slate/types.d.ts.map +0 -1
- package/dist/types/src/slate/utils/editor.d.ts.map +0 -1
- package/dist/types/src/slate/utils/element.d.ts.map +0 -1
- package/dist/types/src/slate/utils/index.d.ts.map +0 -1
- package/dist/types/src/slate/utils/responsive.d.ts.map +0 -1
- package/dist/types/src/slate/utils/toText.d.ts.map +0 -1
- package/dist/types/src/slate/utils/unhangRange.d.ts.map +0 -1
- package/dist/types/src/state/actions.d.ts +0 -398
- package/dist/types/src/state/actions.d.ts.map +0 -1
- package/dist/types/src/state/makeswift-api-client.d.ts.map +0 -1
- package/dist/types/src/state/modules/api-resources.d.ts.map +0 -1
- package/dist/types/src/state/modules/box-models.d.ts.map +0 -1
- package/dist/types/src/state/modules/breakpoints.d.ts.map +0 -1
- package/dist/types/src/state/modules/breakpoints.test.d.ts.map +0 -1
- package/dist/types/src/state/modules/builder-edit-mode.d.ts.map +0 -1
- package/dist/types/src/state/modules/components-meta.d.ts.map +0 -1
- package/dist/types/src/state/modules/element-imperative-handles.d.ts.map +0 -1
- package/dist/types/src/state/modules/is-in-builder.d.ts.map +0 -1
- package/dist/types/src/state/modules/is-preview.d.ts.map +0 -1
- package/dist/types/src/state/modules/pointer.d.ts.map +0 -1
- package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +0 -1
- package/dist/types/src/state/modules/prop-controllers.d.ts.map +0 -1
- package/dist/types/src/state/modules/react-components.d.ts.map +0 -1
- package/dist/types/src/state/modules/read-only-documents.d.ts.map +0 -1
- package/dist/types/src/state/modules/read-write-documents.d.ts.map +0 -1
- package/dist/types/src/state/react-builder-preview.d.ts +0 -57
- package/dist/types/src/state/react-builder-preview.d.ts.map +0 -1
- package/dist/types/src/state/react-page.d.ts.map +0 -1
- package/dist/types/src/state/react-page.test.d.ts.map +0 -1
- package/dist/types/src/utils/clamp.d.ts.map +0 -1
- package/dist/types/src/utils/coalesce.d.ts.map +0 -1
- package/dist/types/src/utils/deepEqual.d.ts.map +0 -1
- package/dist/types/src/utils/intersection.d.ts.map +0 -1
- package/dist/types/src/utils/is.d.ts.map +0 -1
- package/dist/types/src/utils/isErrorWithMessage.d.ts.map +0 -1
- package/dist/types/src/utils/isNonNullable.d.ts.map +0 -1
- package/dist/types/src/utils/keys.d.ts.map +0 -1
- package/dist/types/src/utils/shallowEqual.d.ts.map +0 -1
- package/dist/types/src/utils/shallowMerge.d.ts.map +0 -1
- package/dist/types/types/locale.d.ts +0 -9
- package/dist/types/types/locale.d.ts.map +0 -1
- package/dist/types.cjs.js +0 -15
- package/dist/types.cjs.js.map +0 -1
- package/dist/types.es.js +0 -14
- package/dist/types.es.js.map +0 -1
- package/dist/useIsomorphicLayoutEffect.cjs.js +0 -6
- package/dist/useIsomorphicLayoutEffect.cjs.js.map +0 -1
- package/dist/useIsomorphicLayoutEffect.es.js +0 -5
- package/dist/useIsomorphicLayoutEffect.es.js.map +0 -1
- package/dist/useMediaQuery.cjs.js +0 -38
- package/dist/useMediaQuery.cjs.js.map +0 -1
- package/dist/useMediaQuery.es.js +0 -37
- package/dist/useMediaQuery.es.js.map +0 -1
- package/next/plugin.js +0 -1
- package/next.js +0 -1
- package/prop-controllers.js +0 -1
- package/react.js +0 -1
- package/slate.js +0 -1
- package/state/breakpoints.js +0 -1
- /package/dist/types/{src/api → api}/graphql/client.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/documents/fragments.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/documents/index.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/documents/queries.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/fragments.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/generated/fragment-document-nodes.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/generated/types.d.ts +0 -0
- /package/dist/types/{src/api → api}/graphql/types.d.ts +0 -0
- /package/dist/types/{src/api → api}/index.d.ts +0 -0
- /package/dist/types/{src/api → api}/react.d.ts +0 -0
- /package/dist/types/{src/box-model.d.ts → box-model.d.ts} +0 -0
- /package/dist/types/{src/builder → builder}/index.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/control-serialization.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/combobox.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/list.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/rich-text-v2.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/shape.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/style-v2.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/controls/types.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/function-serialization.d.ts +0 -0
- /package/dist/types/{src/builder → builder}/serialization/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/Box.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/animations.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/components/Placeholder/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/constants.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Box/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Button/Button.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Button/contants.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Button/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Button/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Carousel/Carousel.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Carousel/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Carousel/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Countdown/Countdown.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Countdown/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Countdown/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Divider/Divider.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Divider/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Divider/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Embed/Embed.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Embed/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Embed/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/Form.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/Checkbox/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/EmailTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/Input/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/Label/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/NumberTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/RadioButton/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/TextArea/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/components/URLTableField/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Field/services/responsiveField.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Placeholder/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/components/Spinner/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/context/FormContext.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Form/types.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Image/Image.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Image/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Image/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/Navigation.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/components/DropDownButton/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/components/LinksPlaceholder/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/components/MobileMenu/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Navigation/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Root/Root.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Root/components/Placeholder/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Root/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Root/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/SocialLinks/SocialLinks.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/SocialLinks/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/SocialLinks/options.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/SocialLinks/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Text/Text.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Text/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Text/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Video/Video.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Video/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/Video/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/constants.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/builtin/register.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useBackgrounds.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useBorder.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useBoxShadow.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useIsomorphicLayoutEffect.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useMediaQuery.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useResponsiveColor.d.ts +0 -0
- /package/dist/types/{src/components → components}/hooks/useTableFormFieldRefs.d.ts +0 -0
- /package/dist/types/{src/components → components}/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/page/BodySnippet.d.ts +0 -0
- /package/dist/types/{src/components → components}/page/Page.d.ts +0 -0
- /package/dist/types/{src/components → components}/page/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/BackgroundsContainer/components/Parallax/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/BackgroundsContainer/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/FallbackComponent/FallbackComponent.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/FallbackComponent/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/GutterContainer/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/Link/index.d.ts +0 -0
- /package/dist/types/{src/components → components}/shared/grid-item.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/colorToString.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/columns.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/drop-first.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/isNonNullable.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/placeholders.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/responsive-style.d.ts +0 -0
- /package/dist/types/{src/components → components}/utils/types.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/__tests__/fixtures/shape.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/__tests__/translation.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/checkbox.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/color.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/combobox.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/control-data-type-key.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/control.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/icon-radio-group.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/image.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/index.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/link.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/list.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/number.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/__tests__/copy.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/__tests__/dto.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/__tests__/introspection.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/copy.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/dto-types.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/dto.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/blockquote.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/empty-blocks.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/index.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/list.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/typography.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/fixtures/v2-data-types.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/index.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/introspection.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text/rich-text.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/copy.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/fixtures/rearranged.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/fixtures/simple.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/introspection.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/__tests__/translation.test.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/copy.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/dto.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/index.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/introspection.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/plugin.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/rich-text-v2.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/rich-text-v2/translation.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/select.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/shape.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/slot.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/style-v2.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/style.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/text-area.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/text-input.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/types.d.ts +0 -0
- /package/dist/types/{src/controls → controls}/typography.d.ts +0 -0
- /package/dist/types/{src/css → css}/border-radius.d.ts +0 -0
- /package/dist/types/{src/css → css}/border.d.ts +0 -0
- /package/dist/types/{src/css → css}/length-percentage.d.ts +0 -0
- /package/dist/types/{src/css → css}/length.d.ts +0 -0
- /package/dist/types/{src/css → css}/margin.d.ts +0 -0
- /package/dist/types/{src/css → css}/padding.d.ts +0 -0
- /package/dist/types/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/element-tree.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/fonts.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/manifest.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/merge-translated-data.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/proxy-preview-mode.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/revalidate.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/handlers/translatable-data.d.ts +0 -0
- /package/dist/types/{src/next → next}/api-handler/index.d.ts +0 -0
- /package/dist/types/{src/next → next}/client.d.ts +0 -0
- /package/dist/types/{src/next → next}/document.d.ts +0 -0
- /package/dist/types/{src/next → next}/dynamic.d.ts +0 -0
- /package/dist/types/{src/next → next}/next-version.d.ts +0 -0
- /package/dist/types/{src/next → next}/preview-mode.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/base.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/backgrounds.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/border.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/element-id.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/grid.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/image.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/images.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/link.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/navigation-links.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/responsive-color.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/rich-text.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/shadows.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/table-form-fields.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy/table.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/copy.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/descriptors.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/index.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/instances.d.ts +0 -0
- /package/dist/types/{src/prop-controllers → prop-controllers}/introspection.d.ts +0 -0
- /package/dist/types/{src/react.d.ts → react.d.ts} +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/components/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/components/render-hook.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/checkbox.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/color.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/combobox.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/control.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/icon-radio-group.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/image.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/link.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/list.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/number.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/EditableText/editable-text.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/EditableText/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/EditableText/useSyncDOMSelection.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/ReadOnlyText.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Element/block.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Element/element.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Element/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Element/inline.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Leaf/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/Leaf/leaf.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/components/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text/rich-text.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/EditableTextV2/useSyncDOMSelection.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/index.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/rich-text-v2/rich-text-v2.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/select.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/shape.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/slot.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/style-v2.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/style.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/text-area.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/text-input.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls/typography.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/controls.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/element-imperative-handle.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/find-dom-node.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/hooks/makeswift-api.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/poll-box-model.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/use-global-style.d.ts +0 -0
- /package/dist/types/{src/runtimes → runtimes}/react/use-style.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/clearBlockKeyForDevice.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/constants.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/dedent.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/indent.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/setBlockKeyForDevice.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/toggleList.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/types.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/unwrapInline.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/unwrapList.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/utils/filterForSubtreeRoots.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/utils/getSelectedListItems.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/utils/location.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/wrapInline.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BlockPlugin/wrapList.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/BuilderPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/InlineModePlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/InlinePlugin/getValue.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/InlinePlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/InlinePlugin/onChange.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/InlinePlugin/types.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LinkPlugin/getValue.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LinkPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LinkPlugin/linkPluginWithoutRenderElement.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LinkPlugin/onChange.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LinkPlugin/types.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/LocalChangesPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TextAlignPlugin/getValue.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TextAlignPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/clearActiveTypographyStyle.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/clearDeviceActiveTypography.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/detachActiveTypography.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/getValue.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/normalizeSimilarText.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/normalizeTypographyDown.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/normalizeTypographyUp.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/setActiveTypographyId.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/TypographyPlugin/setActiveTypographyStyle.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/selectors.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/types.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/editor.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/element.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/index.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/responsive.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/toText.d.ts +0 -0
- /package/dist/types/{src/slate → slate}/utils/unhangRange.d.ts +0 -0
- /package/dist/types/{src/state → state}/makeswift-api-client.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/api-resources.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/box-models.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/breakpoints.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/breakpoints.test.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/builder-edit-mode.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/components-meta.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/element-imperative-handles.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/is-in-builder.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/is-preview.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/pointer.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/prop-controller-handles.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/prop-controllers.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/react-components.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/read-only-documents.d.ts +0 -0
- /package/dist/types/{src/state → state}/modules/read-write-documents.d.ts +0 -0
- /package/dist/types/{src/state → state}/react-page.d.ts +0 -0
- /package/dist/types/{src/state → state}/react-page.test.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/clamp.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/coalesce.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/deepEqual.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/intersection.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/is.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/isErrorWithMessage.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/isNonNullable.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/keys.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/shallowEqual.d.ts +0 -0
- /package/dist/types/{src/utils → utils}/shallowMerge.d.ts +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-page.es.js","sources":["../src/state/modules/components-meta.ts","../src/state/modules/read-only-documents.ts","../src/state/modules/react-components.tsx","../src/state/modules/prop-controllers.ts","../src/state/modules/prop-controller-handles.ts","../src/state/modules/is-in-builder.ts","../src/state/modules/is-preview.ts","../src/state/modules/builder-edit-mode.ts","../src/controls/control-data-type-key.ts","../src/controls/color.ts","../src/prop-controllers/base.ts","../src/controls/style.ts","../src/prop-controllers/descriptors.ts","../src/controls/image.ts","../src/controls/link.ts","../src/prop-controllers/instances.ts","../src/controls/list.ts","../src/controls/shape.ts","../src/controls/text-area.ts","../src/controls/text-input.ts","../src/controls/slot.ts","../src/prop-controllers/copy/backgrounds.ts","../src/prop-controllers/copy/grid.ts","../src/prop-controllers/copy/link.ts","../src/prop-controllers/copy/navigation-links.ts","../src/prop-controllers/copy/shadows.ts","../src/prop-controllers/copy/image.ts","../src/prop-controllers/copy/images.ts","../src/prop-controllers/copy/responsive-color.ts","../src/prop-controllers/copy/table-form-fields.ts","../src/prop-controllers/copy/table.ts","../src/prop-controllers/copy/border.ts","../src/prop-controllers/copy/rich-text.ts","../src/prop-controllers/copy/element-id.ts","../src/prop-controllers/copy.ts","../src/controls/rich-text/copy.ts","../src/controls/rich-text/dto-types.ts","../src/slate/types.ts","../src/controls/rich-text/dto.ts","../src/controls/rich-text/rich-text.ts","../src/controls/rich-text-v2/plugin.ts","../src/slate/utils/element.ts","../src/slate/LinkPlugin/types.ts","../src/slate/utils/unhangRange.ts","../src/utils/is.ts","../src/utils/shallowEqual.ts","../src/utils/isNonNullable.ts","../src/utils/deepEqual.ts","../src/slate/selectors.ts","../src/slate/BlockPlugin/unwrapInline.ts","../src/slate/BlockPlugin/wrapInline.ts","../src/slate/BlockPlugin/utils/filterForSubtreeRoots.ts","../src/slate/LinkPlugin/getValue.ts","../src/slate/LinkPlugin/onChange.ts","../src/slate/LinkPlugin/linkPluginWithoutRenderElement.tsx","../src/controls/icon-radio-group.ts","../src/slate/InlinePlugin/types.ts","../src/slate/InlinePlugin/getValue.ts","../src/slate/InlinePlugin/onChange.ts","../src/slate/InlinePlugin/index.tsx","../src/slate/utils/responsive.ts","../src/slate/TextAlignPlugin/getValue.ts","../src/slate/TextAlignPlugin/index.tsx","../src/slate/BlockPlugin/setBlockKeyForDevice.ts","../src/slate/BlockPlugin/clearBlockKeyForDevice.ts","../src/controls/select.ts","../src/slate/utils/editor.ts","../src/slate/BlockPlugin/constants.ts","../src/slate/BlockPlugin/unwrapList.ts","../src/slate/BlockPlugin/wrapList.ts","../src/slate/BlockPlugin/utils/location.ts","../src/slate/BlockPlugin/utils/getSelectedListItems.ts","../src/slate/BlockPlugin/indent.ts","../src/slate/BlockPlugin/dedent.ts","../src/slate/BlockPlugin/toggleList.ts","../src/runtimes/react/use-style.ts","../src/slate/BlockPlugin/index.tsx","../src/slate/TypographyPlugin/clearActiveTypographyStyle.ts","../src/slate/TypographyPlugin/clearDeviceActiveTypography.ts","../src/slate/TypographyPlugin/detachActiveTypography.ts","../src/slate/TypographyPlugin/setActiveTypographyId.ts","../src/slate/TypographyPlugin/setActiveTypographyStyle.ts","../src/slate/TypographyPlugin/getValue.tsx","../src/slate/TypographyPlugin/normalizeTypographyDown.ts","../src/slate/TypographyPlugin/normalizeTypographyUp.ts","../src/slate/TypographyPlugin/normalizeSimilarText.ts","../src/slate/TypographyPlugin/index.ts","../src/slate/InlineModePlugin/index.tsx","../src/controls/rich-text-v2/rich-text-v2.ts","../src/controls/rich-text-v2/dto.ts","../src/controls/rich-text-v2/copy.ts","../src/controls/rich-text-v2/translation.ts","../src/controls/control.ts","../src/controls/style-v2.ts","../src/controls/typography.ts","../src/controls/rich-text/introspection.ts","../src/controls/rich-text-v2/introspection.ts","../src/prop-controllers/introspection.ts","../src/state/react-page.ts"],"sourcesContent":["import { Action, ActionTypes } from '../actions'\n\nexport const ComponentIcon = {\n Billing: 'billing',\n Bolt: 'bolt',\n Button: 'button',\n Carousel: 'carousel',\n Chats: 'chats',\n Code: 'code',\n Countdown: 'countdown',\n Cube: 'cube',\n Database: 'database',\n Divider: 'divider',\n Form: 'form',\n Gallery: 'gallery',\n Help: 'help',\n Image: 'image',\n Layout: 'layout',\n Lock: 'lock',\n Navigation: 'navigation',\n SocialLinks: 'social-links',\n Star: 'star',\n Text: 'text',\n Users: 'users',\n Video: 'video',\n} as const\n\nexport type ComponentIcon = typeof ComponentIcon[keyof typeof ComponentIcon]\n\nexport type ComponentMeta = { label: string; icon: ComponentIcon; hidden: boolean }\n\nexport type State = Map<string, ComponentMeta>\n\nexport function getInitialState({\n componentsMeta = new Map(),\n}: { componentsMeta?: Map<string, ComponentMeta> } = {}): State {\n return componentsMeta\n}\n\nexport function getComponentsMeta(state: State): Map<string, ComponentMeta> {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.meta)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type Data = undefined | null | boolean | number | string | Data[] | { [key: string]: Data }\n\nexport type ElementData = { type: string; key: string; props: Record<string, Data> }\n\nexport type ElementReference = { type: 'reference'; key: string; value: string }\n\nexport type Element = ElementData | ElementReference\n\nexport function isElementReference(element: Element): element is ElementReference {\n return !('props' in element)\n}\n\nexport type DocumentReference = {\n key: string\n}\n\nexport function createDocumentReference(key: string): DocumentReference {\n return { key }\n}\n\nexport type Document = {\n key: string\n rootElement: Element\n}\n\nexport function createDocument(key: string, rootElement: Element): Document {\n return { key, rootElement }\n}\n\nexport type State = Map<string, Document>\n\nexport function getInitialState({\n rootElements = new Map(),\n}: { rootElements?: Map<string, Element> } = {}): State {\n const initialState = new Map()\n\n rootElements.forEach((rootElement, documentKey) => {\n initialState.set(documentKey, createDocument(documentKey, rootElement))\n })\n\n return initialState\n}\n\nexport function getDocuments(state: State): Map<string, Document> {\n return state\n}\n\nexport function getDocument(state: State, documentKey: string): Document | null {\n return getDocuments(state).get(documentKey) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_DOCUMENT:\n return new Map(state).set(action.payload.documentKey, action.payload.document)\n\n case ActionTypes.UNREGISTER_DOCUMENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.documentKey)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import type { Component, PropsWithoutRef, ReactNode, RefAttributes } from 'react'\n\nimport { Action, ActionTypes } from '../actions'\n\nexport type ComponentType<P = Record<string, any>, T = any> =\n | { new (props: PropsWithoutRef<P> & RefAttributes<T>, context?: any): Component<P> }\n | ((props: PropsWithoutRef<P> & RefAttributes<T>, context?: any) => ReactNode)\n\nexport type State = Map<string, ComponentType>\n\nexport function getInitialState({\n reactComponents = new Map(),\n}: { reactComponents?: Map<string, ComponentType> } = {}): State {\n return reactComponents\n}\n\nfunction getReactComponents(state: State): Map<string, ComponentType> {\n return state\n}\n\nexport function getReactComponent(state: State, type: string): ComponentType | null {\n return getReactComponents(state).get(type) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action) {\n switch (action.type) {\n case ActionTypes.REGISTER_REACT_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.component)\n\n case ActionTypes.UNREGISTER_REACT_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport { PropControllerDescriptor } from '../../prop-controllers'\n\nexport type { PropControllerDescriptor }\n\nexport type State = Map<string, Record<string, PropControllerDescriptor>>\n\nexport function getInitialState({\n propControllerDescriptors = new Map(),\n}: {\n propControllerDescriptors?: Map<string, Record<string, PropControllerDescriptor>>\n} = {}): State {\n return propControllerDescriptors\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllerDescriptor>> {\n return state\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllerDescriptor> | null {\n return getPropControllerDescriptors(state).get(componentType) ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_COMPONENT:\n return new Map(state).set(action.payload.type, action.payload.propControllerDescriptors)\n\n case ActionTypes.UNREGISTER_COMPONENT: {\n const nextState = new Map(state)\n\n const deleted = nextState.delete(action.payload.type)\n\n return deleted ? nextState : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\nimport type { DescriptorsPropControllers } from '../../prop-controllers/instances'\nimport { PropController } from '../../prop-controllers/base'\nimport type { Descriptor } from '../../prop-controllers/descriptors'\n\nexport interface PropControllersHandle<\n T extends Record<string, Descriptor> = Record<string, Descriptor>,\n> {\n setPropControllers(propControllers: DescriptorsPropControllers<T> | null): void\n}\n\nexport function isPropControllersHandle(value: unknown): value is PropControllersHandle {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'setPropControllers' in value &&\n typeof (value as { setPropControllers: unknown }).setPropControllers === 'function'\n ) {\n return true\n }\n\n return false\n}\n\nexport type State = {\n handles: Map<string, Map<string, PropControllersHandle>>\n instances: Map<string, Map<string, Record<string, PropController>>>\n}\n\nexport function getInitialState(): State {\n return { handles: new Map(), instances: new Map() }\n}\n\nexport function getPropControllersHandle(\n state: State,\n documentKey: string,\n elementKey: string,\n): PropControllersHandle | null {\n return state.handles.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropControllers(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropController> | null {\n return state.instances.get(documentKey)?.get(elementKey) ?? null\n}\n\nexport function getPropController(\n state: State,\n documentKey: string,\n elementKey: string,\n propName: string,\n): PropController | null {\n return getPropControllers(state, documentKey, elementKey)?.[propName] ?? null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.REGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey, handle } = action.payload\n\n return {\n ...state,\n handles: new Map(state.handles).set(\n documentKey,\n new Map(state.handles.get(documentKey) ?? []).set(elementKey, handle),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS_HANDLE: {\n const { documentKey, elementKey } = action.payload\n const nextHandles = new Map(state.handles.get(documentKey) ?? [])\n\n const deleted = nextHandles.delete(elementKey)\n\n return deleted\n ? { ...state, handles: new Map(state.handles).set(documentKey, nextHandles) }\n : state\n }\n\n case ActionTypes.REGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey, propControllers } = action.payload\n\n return {\n ...state,\n instances: new Map(state.instances).set(\n documentKey,\n new Map(state.instances.get(documentKey) ?? []).set(elementKey, propControllers),\n ),\n }\n }\n\n case ActionTypes.UNREGISTER_PROP_CONTROLLERS: {\n const { documentKey, elementKey } = action.payload\n const nextInstances = new Map(state.instances.get(documentKey) ?? [])\n\n const deleted = nextInstances.delete(elementKey)\n\n return deleted\n ? { ...state, instances: new Map(state.instances).set(documentKey, nextInstances) }\n : state\n }\n\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(): State {\n return false\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.SET_IS_IN_BUILDER:\n return action.payload\n\n default:\n return state\n }\n}\n","import { Action } from '../actions'\n\nexport type State = boolean\n\nexport function getInitialState(isPreview = false): State {\n return isPreview\n}\n\nexport function getIsPreview(state: State): boolean {\n return state\n}\n\nexport function reducer(state = getInitialState(), action: Action): State {\n switch (action.type) {\n default:\n return state\n }\n}\n","import { Action, ActionTypes } from '../actions'\n\nexport const BuilderEditMode = {\n BUILD: 'build',\n CONTENT: 'content',\n INTERACT: 'interact',\n} as const\n\nexport type BuilderEditMode = typeof BuilderEditMode[keyof typeof BuilderEditMode]\n\nexport type State = BuilderEditMode | null\n\nexport function getInitialState(): State {\n return null\n}\n\nexport function reducer(state: State = getInitialState(), action: Action): State {\n switch (action.type) {\n case ActionTypes.SET_BUILDER_EDIT_MODE:\n return action.payload.editMode\n\n default:\n return state\n }\n}\n","export const ControlDataTypeKey = '@@makeswift/type'\n","import { match } from 'ts-pattern'\nimport type { CopyContext } from '../state/react-page'\nimport type { ColorData } from './types'\nimport { ControlDataTypeKey } from './control-data-type-key'\n\nexport const ColorControlDataTypeKey = ControlDataTypeKey\n\nexport const ColorControlDataTypeValueV1 = 'color::v1'\n\nexport type ColorControlDataV0 = ColorData\n\nexport type ColorControlDataV1 = ColorControlDataV0 & {\n [ColorControlDataTypeKey]: typeof ColorControlDataTypeValueV1\n}\n\nexport type ColorControlData = ColorControlDataV0 | ColorControlDataV1\n\nexport const ColorControlType = 'makeswift::controls::color'\n\ntype ColorControlConfig = {\n label?: string\n labelOrientation?: 'horizontal' | 'vertical'\n defaultValue?: string\n hideAlpha?: boolean\n}\n\nexport type ColorControlDefinition<C extends ColorControlConfig = ColorControlConfig> = {\n type: typeof ColorControlType\n config: C\n version?: 1\n}\n\nexport function Color<C extends ColorControlConfig>(config = {} as C): ColorControlDefinition<C> {\n return { type: ColorControlType, config, version: 1 }\n}\n\nexport function copyColorData(\n value: ColorControlData | undefined,\n context: CopyContext,\n): ColorControlData | undefined {\n if (value == null) return value\n\n return match(value)\n .with({ [ColorControlDataTypeKey]: ColorControlDataTypeValueV1 }, val => ({\n ...val,\n swatchId: context.replacementContext.swatchIds.get(val.swatchId) ?? val.swatchId,\n }))\n .otherwise(val => ({\n ...val,\n swatchId: context.replacementContext.swatchIds.get(val.swatchId) ?? val.swatchId,\n }))\n}\n","import type { PropControllerMessage, Send } from './instances'\n\nexport abstract class PropController<T = PropControllerMessage> {\n protected send: Send<T>\n\n constructor(send: Send<T>) {\n this.send = send\n }\n\n abstract recv(message: T): void\n}\n","import { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { ColorData, ResponsiveValue } from './types'\nimport { CopyContext, ReplacementContext } from '../state/react-page'\nimport { copyColorData } from './color'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('style copy', () => {\n test('colors are replaced', () => {\n // Arrange\n const value: StyleControlData = {\n width: [\n {\n value: {\n unit: 'px',\n value: 100,\n },\n deviceId: 'desktop',\n },\n ],\n border: [\n {\n value: {\n borderTop: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==',\n },\n style: 'solid',\n width: 9,\n },\n borderLeft: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==',\n },\n style: 'solid',\n width: 9,\n },\n borderRight: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==',\n },\n style: 'solid',\n width: 9,\n },\n borderBottom: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==',\n },\n style: 'solid',\n width: 9,\n },\n },\n deviceId: 'desktop',\n },\n ],\n textStyle: [\n {\n value: {\n fontSize: {\n unit: 'px',\n value: 46,\n },\n fontStyle: [],\n fontFamily: 'Oswald',\n fontWeight: 400,\n letterSpacing: 5.2,\n textTransform: [],\n },\n deviceId: 'desktop',\n },\n ],\n borderRadius: [\n {\n value: {\n borderTopLeftRadius: {\n unit: 'px',\n value: 4,\n },\n borderTopRightRadius: {\n unit: 'px',\n value: 4,\n },\n borderBottomLeftRadius: {\n unit: 'px',\n value: 4,\n },\n borderBottomRightRadius: {\n unit: 'px',\n value: 4,\n },\n },\n deviceId: 'desktop',\n },\n ],\n }\n const expected = JSON.parse(\n JSON.stringify(value).replaceAll(\n 'U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOmJjMDkwZWJjLTZkZDUtNDY1NS1hMDY0LTg3ZDAxM2U4YTFhNA==', 'testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copyStyleData(value, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import {\n ResolveBorderControlValue,\n ResolveBorderRadiusControlValue,\n ResolveMarginControlValue,\n ResolvePaddingControlValue,\n ResolveShadowsControlValue,\n ResolveWidthControlValue,\n} from '../runtimes/react/controls'\nimport { StyleControlFormattedValue } from '../runtimes/react/controls/style'\nimport type { Element, Data, MergeTranslatableDataContext } from '../state/react-page'\nimport type { ResponsiveColor } from '../runtimes/react/controls'\nimport { NumberControlDefinition } from '../controls/number'\nimport { NumberControlValue } from '../runtimes/react/controls/number'\nimport { StyleControlType } from '../controls/style'\nimport {\n CheckboxControlDefinition,\n ColorControlDefinition,\n ComboboxControlDefinition,\n ImageControlDefinition,\n LinkControlDefinition,\n ListControlDefinition,\n SelectControlDefinition,\n ShapeControlDefinition,\n SlotControlDefinition,\n TextAreaControlDefinition,\n TextInputControlDefinition,\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, RichTextDTO } 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 { IconRadioGroupControlDefinition } from '../controls/icon-radio-group'\nimport { IconRadioGroupControlValue } from '../runtimes/react/controls/icon-radio-group'\nimport { TypographyControlValue } from '../runtimes/react/controls/typography'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from './introspection'\n\nexport type { Data }\n\n// See https://github.com/microsoft/TypeScript/issues/15300\nexport type IndexSignatureHack<T> = T extends Record<string, any>\n ? { [K in keyof T]: IndexSignatureHack<T[K]> }\n : T\n\nexport type Device = string\n\nexport type DeviceOverride<T> = { deviceId: Device; value: T }\n\nexport type ResponsiveValue<T> = DeviceOverride<T>[]\n\nexport type ResponsiveValueType<T> = T extends ResponsiveValue<infer U> ? U : never\n\ntype Color = { swatchId: string; alpha: number }\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 type Length = { value: number; unit: 'px' | '%' }\n\ntype OpenPageLink = {\n type: 'OPEN_PAGE'\n payload: { pageId: string | null | undefined; openInNewTab: boolean }\n}\n\ntype OpenURLLink = { type: 'OPEN_URL'; payload: { url: string; openInNewTab: boolean } }\n\ntype SendEmailLink = {\n type: 'SEND_EMAIL'\n payload: { to: string; subject?: string; body?: string }\n}\n\ntype CallPhoneLink = { type: 'CALL_PHONE'; payload: { phoneNumber: string } }\n\ntype ScrollToElementLink = {\n type: 'SCROLL_TO_ELEMENT'\n payload: {\n elementIdConfig: { elementKey: string; propName: string } | null | undefined\n block: 'start' | 'center' | 'end'\n }\n}\n\ntype Link = OpenPageLink | OpenURLLink | SendEmailLink | CallPhoneLink | ScrollToElementLink\n\ntype TextStyle = {\n fontFamily?: string | null | undefined\n letterSpacing: number | null | undefined\n fontSize: { value: number; unit: 'px' } | null | undefined\n fontWeight: number | null | undefined\n textTransform: 'uppercase'[]\n fontStyle: 'italic'[]\n}\n\nexport const Types = {\n Backgrounds: 'Backgrounds',\n Border: 'Border',\n BorderRadius: 'BorderRadius',\n Checkbox: 'Checkbox',\n Date: 'Date',\n ElementID: 'ElementID',\n Font: 'Font',\n GapX: 'GapX',\n GapY: 'GapY',\n Grid: 'Grid',\n Image: 'Image',\n Images: 'Images',\n Link: 'Link',\n List: 'List',\n Margin: 'Margin',\n NavigationLinks: 'NavigationLinks',\n Number: 'Number',\n Padding: 'Padding',\n ResponsiveColor: 'ResponsiveColor',\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveLength: 'ResponsiveLength',\n ResponsiveNumber: 'ResponsiveNumber',\n ResponsiveOpacity: 'ResponsiveOpacity',\n ResponsiveSelect: 'ResponsiveSelect',\n RichText: 'RichText',\n Shadows: 'Shadows',\n Shape: 'Shape',\n SocialLinks: 'SocialLinks',\n Table: 'Table',\n TableFormFields: 'TableFormFields',\n Typeahead: 'Typeahead',\n TextArea: 'TextArea',\n TextInput: 'TextInput',\n TextStyle: 'TextStyle',\n Video: 'Video',\n Width: 'Width',\n Style: StyleControlType,\n} as const\n\ntype Options<T> = T | ((props: Record<string, unknown>, deviceMode: Device) => T)\n\nexport type ResolveOptions<T extends Options<unknown>> = T extends Options<infer U> ? U : never\n\ntype ColorBackground = { type: 'color'; id: string; payload: Color | null }\n\ntype GradientStop = { id: string; location: number; color: Color | null }\n\ntype Gradient = { angle?: number; isRadial?: boolean; stops: GradientStop[] }\n\ntype GradientBackground = { type: 'gradient'; id: string; payload: Gradient }\n\ntype BackgroundImagePosition = { x: number; y: number }\n\ntype BackgroundImageSize = 'cover' | 'contain' | 'auto'\n\ntype BackgroundImageRepeat = 'no-repeat' | 'repeat-x' | 'repeat-y' | 'repeat'\n\ntype BackgroundImageV0 = {\n imageId: ImageValueV0\n position: BackgroundImagePosition\n size?: BackgroundImageSize\n repeat?: BackgroundImageRepeat\n opacity?: number\n parallax?: number\n priority?: boolean\n}\n\ntype BackgroundImageV1 = {\n version: 1\n image: ImageValueV1\n position: BackgroundImagePosition\n size?: BackgroundImageSize\n repeat?: BackgroundImageRepeat\n opacity?: number\n parallax?: number\n priority?: boolean\n}\n\nexport type BackgroundImage = BackgroundImageV0 | BackgroundImageV1\n\ntype ImageBackgroundV0 = { type: 'image'; id: string; payload: BackgroundImageV0 }\n\ntype ImageBackgroundV1 = { type: 'image-v1'; id: string; payload: BackgroundImageV1 }\n\nexport type ImageBackground = ImageBackgroundV0 | ImageBackgroundV1\n\ntype BackgroundVideoAspectRatio = 'wide' | 'standard'\n\ntype BackgroundVideo = {\n url?: string\n maskColor?: Color | null\n opacity?: number\n zoom?: number\n aspectRatio?: BackgroundVideoAspectRatio\n parallax?: number\n}\n\ntype VideoBackground = { type: 'video'; id: string; payload: BackgroundVideo }\n\ntype Background = ColorBackground | GradientBackground | ImageBackground | VideoBackground\n\nexport type BackgroundsValue = ResponsiveValue<Background[]>\n\ntype BackgroundsOptions = Options<Record<string, never>>\n\nexport type BackgroundsDescriptor<_T = BackgroundsValue> = {\n type: typeof Types.Backgrounds\n version?: 1\n options: BackgroundsOptions\n}\n\nexport function Backgrounds(options: BackgroundsOptions = {}): BackgroundsDescriptor {\n return { type: Types.Backgrounds, version: 1, options }\n}\n\ntype BorderSideStyle = 'dashed' | 'dotted' | 'solid'\n\nexport type BorderSide = {\n width: number | null | undefined\n style: BorderSideStyle\n color?: Color | null\n}\n\ntype Border = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `border${Capitalize<K>}`]:\n | BorderSide\n | null\n | undefined\n}\n\nexport type BorderValue = ResponsiveValue<Border>\n\nexport const BorderPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::border::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers:border::format::responsive-value',\n} as const\n\nexport type BorderPropControllerFormat =\n typeof BorderPropControllerFormat[keyof typeof BorderPropControllerFormat]\n\ntype BorderOptions = { format?: BorderPropControllerFormat }\n\nexport type BorderDescriptor<_T = BorderValue, U extends BorderOptions = BorderOptions> = {\n type: typeof Types.Border\n options: U\n}\n\nexport function Border<T extends BorderOptions>(\n options: T & BorderOptions = {} as T,\n): BorderDescriptor<BorderValue, T> {\n return { type: Types.Border, options }\n}\n\nBorder.Format = BorderPropControllerFormat\n\ntype BorderRadius = {\n [K in 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' as `border${Capitalize<K>}Radius`]:\n | Length\n | null\n | undefined\n}\n\nexport type BorderRadiusValue = ResponsiveValue<BorderRadius>\n\nexport const BorderRadiusPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::border-radius::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers::border-radius::format::responsive-value',\n} as const\n\nexport type BorderRadiusPropControllerFormat =\n typeof BorderRadiusPropControllerFormat[keyof typeof BorderRadiusPropControllerFormat]\n\ntype BorderRadiusOptions = { format?: BorderRadiusPropControllerFormat }\n\nexport type BorderRadiusDescriptor<\n _T = BorderRadiusValue,\n U extends BorderRadiusOptions = BorderRadiusOptions,\n> = {\n type: typeof Types.BorderRadius\n options: U\n}\n\nexport function BorderRadius<T extends BorderRadiusOptions>(\n options: T & BorderRadiusOptions = {} as T,\n): BorderRadiusDescriptor<BorderRadiusValue, T> {\n return { type: Types.BorderRadius, options }\n}\n\nBorderRadius.Format = BorderRadiusPropControllerFormat\n\nexport type CheckboxValue = boolean\n\nexport type CheckboxOptions = Options<{\n preset?: CheckboxValue\n label: string\n hidden?: boolean\n}>\n\nexport type CheckboxDescriptor<_T = CheckboxValue> = {\n type: typeof Types.Checkbox\n options: CheckboxOptions\n}\n\nexport function Checkbox(options: CheckboxOptions): CheckboxDescriptor {\n return { type: Types.Checkbox, options }\n}\n\nexport type DateValue = string\n\nexport type DateOptions = Options<{ preset?: DateValue }>\n\nexport type DateDescriptor<_T = DateValue> = { type: typeof Types.Date; options: DateOptions }\n\nexport function Date(options: DateOptions = {}): DateDescriptor {\n return { type: Types.Date, options }\n}\n\nexport type ElementIDValue = string\n\ntype ElementIDOptions = Options<Record<string, never>>\n\ntype ElementIDDescriptor<_T = ElementIDValue> = {\n type: typeof Types.ElementID\n options: ElementIDOptions\n}\n\nexport function ElementID(options: ElementIDOptions = {}): ElementIDDescriptor {\n return { type: Types.ElementID, options }\n}\n\nexport type FontValue = ResponsiveValue<string>\n\ntype FontOptions = Options<{ preset?: FontValue; label?: string }>\n\ntype FontDescriptor<_T = FontValue> = { type: typeof Types.Font; options: FontOptions }\n\nexport function Font(options: FontOptions = {}): FontDescriptor {\n return { type: Types.Font, options }\n}\n\nexport type GapXValue = ResponsiveValue<Gap>\n\nexport type GapXOptions = Options<{\n preset?: GapXValue\n label?: string\n defaultValue?: Gap\n min?: number\n max?: number\n step?: number\n hidden?: boolean\n}>\n\nexport type GapXDescriptor<_T = GapXValue> = { type: typeof Types.GapX; options: GapXOptions }\n\nexport function GapX(options: GapXOptions = {}): GapXDescriptor {\n return { type: Types.GapX, options }\n}\n\nexport type GapYValue = ResponsiveValue<Gap>\n\nexport type GapYOptions = Options<{\n preset?: GapYValue\n label?: string\n defaultValue?: Gap\n step?: number\n min?: number\n max?: number\n hidden?: boolean\n}>\n\nexport type GapYDescriptor<_T = GapYValue> = { type: typeof Types.GapY; options: GapYOptions }\n\nexport function GapY(options: GapYOptions = {}): GapYDescriptor {\n return { type: Types.GapY, options }\n}\n\ntype GridColumn = { count: number; spans: number[][] }\n\nexport type GridValue = { elements: Element[]; columns: ResponsiveValue<GridColumn> }\n\ntype GridOptions = Options<Record<string, never>>\n\ntype GridDescriptor<_T = GridValue> = { type: typeof Types.Grid; options: GridOptions }\n\nexport function Grid(options: GridOptions = {}): GridDescriptor {\n return { type: Types.Grid, options }\n}\n\nexport function mergeGridPropControllerTranslatedData(\n data: GridValue,\n context: MergeTranslatableDataContext,\n) {\n return {\n ...data,\n elements: data.elements.map(element => context.mergeTranslatedData(element)),\n }\n}\n\nexport type ImageValueV0 = string\n\ntype ImageValueV1MakeswiftFile = {\n version: 1\n type: 'makeswift-file'\n id: string\n}\n\ntype ImageValueV1ExternalFile = {\n version: 1\n type: 'external-file'\n url: string\n width?: number | null\n height?: number | null\n}\n\nexport type ImageValueV1 = ImageValueV1MakeswiftFile | ImageValueV1ExternalFile\n\nexport type ImageValue = ImageValueV0 | ImageValueV1\n\nexport type ImageOptions = Options<{ label?: string; hidden?: boolean }>\n\nexport type ImageDescriptor<_T = ImageValue> = {\n type: typeof Types.Image\n version?: 1\n options: ImageOptions\n}\n\nexport function Image(options: ImageOptions = {}): ImageDescriptor {\n return { type: Types.Image, version: 1, options }\n}\n\nexport type ImagesValueV0Item = {\n key: string\n props: {\n link?: Link\n file?: ImageValueV0\n altText?: string\n }\n}\n\nexport type ImagesValueV1Item = {\n key: string\n version: 1\n props: {\n link?: Link\n file?: ImageValueV1\n altText?: string\n }\n}\n\nexport type ImagesValueItem = ImagesValueV0Item | ImagesValueV1Item\n\nexport type ImagesValue = ImagesValueItem[]\n\ntype ImagesOptions = Options<{ preset?: ImagesValue }>\n\nexport type ImagesDescriptor<_T = ImagesValue> = {\n type: typeof Types.Images\n version?: 1\n options: ImagesOptions\n}\n\nexport function Images(options: ImagesOptions = {}): ImagesDescriptor {\n return { type: Types.Images, version: 1, options }\n}\n\nexport type LinkValue = Link\n\nexport type LinkOptions = Options<{\n preset?: LinkValue\n label?: string\n defaultValue?: Link\n options?: { value: Link['type']; label: string }[]\n hidden?: boolean\n}>\n\nexport type LinkDescriptor<_T = LinkValue> = { type: typeof Types.Link; options: LinkOptions }\n\nexport function Link(options: LinkOptions = {}): LinkDescriptor {\n return { type: Types.Link, options }\n}\n\ntype ListValueItem<T extends Data> = { id: string; value?: T }\n\nexport type ListValue<T extends Data = Data> = ListValueItem<T>[]\n\nexport type ListOptions<T extends Data> = {\n type: PanelDescriptor<T>\n label?: string\n getItemLabel?: ((value: T | undefined) => string) | ((value: T | undefined) => Promise<string>)\n preset?: ListValue<T>\n defaultValue?: ListValue<T>\n}\n\nexport type ListDescriptor<T extends ListValue = ListValue> = {\n type: typeof Types.List\n options: ListOptions<T extends ListValue<infer U> ? U : never>\n}\n\nexport function List<T extends Data>(options: ListOptions<T>): ListDescriptor<ListValue<T>> {\n return { type: Types.List, options }\n}\n\nexport function introspectListPropControllerData<T>(\n descriptor: ListDescriptor,\n value: ListValue | undefined,\n func: (definition: Descriptor, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return value.flatMap(item => (item.value ? func(descriptor.options.type, item.value) : []))\n}\n\nexport function getListPropControllerElementChildren<T>(\n descriptor: ListDescriptor<T extends ListValue<Data> ? T : ListValue<Data>>,\n value: ListValue | undefined,\n) {\n return introspectListPropControllerData(descriptor, value, getElementChildren)\n}\n\nexport function getListPropControllerSwatchIds<T>(\n descriptor: ListDescriptor<T extends ListValue<Data> ? T : ListValue<Data>>,\n value: ListValue | undefined,\n) {\n return introspectListPropControllerData(descriptor, value, getSwatchIds)\n}\n\nexport function getListPropControllerFileIds<T>(\n descriptor: ListDescriptor<T extends ListValue<Data> ? T : ListValue<Data>>,\n value: ListValue | undefined,\n) {\n return introspectListPropControllerData(descriptor, value, getFileIds)\n}\n\nexport function getListPropControllerTypographyIds<T>(\n descriptor: ListDescriptor<T extends ListValue<Data> ? T : ListValue<Data>>,\n value: ListValue | undefined,\n) {\n return introspectListPropControllerData(descriptor, value, getTypographyIds)\n}\n\nexport function getListPropControllerPageIds<T>(\n descriptor: ListDescriptor<T extends ListValue<Data> ? T : ListValue<Data>>,\n value: ListValue | undefined,\n) {\n return introspectListPropControllerData(descriptor, value, getPageIds)\n}\n\ntype MarginSide = { value: number; unit: 'px' } | 'auto'\n\ntype Margin = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `margin${Capitalize<K>}`]:\n | MarginSide\n | null\n | undefined\n}\n\nexport type MarginValue = ResponsiveValue<Margin>\n\nexport const MarginPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::margin::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers::margin::format::responsive-value',\n} as const\n\nexport type MarginPropControllerFormat =\n typeof MarginPropControllerFormat[keyof typeof MarginPropControllerFormat]\n\ntype MarginOptions = { preset?: MarginValue; format?: MarginPropControllerFormat }\n\nexport type MarginDescriptor<_T = MarginValue, U extends MarginOptions = MarginOptions> = {\n type: typeof Types.Margin\n options: U\n}\n\nexport function Margin<T extends MarginOptions>(\n options: T & MarginOptions = {} as T,\n): MarginDescriptor<MarginValue, T> {\n return { type: Types.Margin, options }\n}\n\nMargin.Format = MarginPropControllerFormat\n\ntype ButtonVariant = 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n\ntype ButtonShape = 'pill' | 'rounded' | 'square'\n\ntype ButtonSize = 'small' | 'medium' | 'large'\n\nexport type NavigationButton = {\n id: string\n type: 'button'\n payload: {\n label: string\n link?: Link\n variant?: ResponsiveValue<ButtonVariant>\n shape?: ResponsiveValue<ButtonShape>\n size?: ResponsiveValue<ButtonSize>\n textColor?: ResponsiveValue<Color>\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\ntype NavigationDropdownCaretType = 'caret' | 'plus' | 'arrow-down' | 'chevron-down'\n\ntype NavigationDropdownLink = {\n id: string\n payload: {\n label: string\n link?: Link\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\ntype NavigationDropdown = {\n id: string\n type: 'dropdown'\n payload: {\n label: string\n caret?: NavigationDropdownCaretType\n links?: NavigationDropdownLink[]\n variant?: ResponsiveValue<ButtonVariant>\n shape?: ResponsiveValue<ButtonShape>\n size?: ResponsiveValue<ButtonSize>\n textColor?: ResponsiveValue<Color>\n color?: ResponsiveValue<Color>\n textStyle?: ResponsiveValue<TextStyle>\n }\n}\n\nexport type NavigationLinksValue = (NavigationButton | NavigationDropdown)[]\n\ntype NavigationLinksOptions = Options<Record<string, never>>\n\ntype NavigationLinksDescriptor<_T = NavigationLinksValue> = {\n type: typeof Types.NavigationLinks\n options: NavigationLinksOptions\n}\n\nexport function NavigationLinks(options: NavigationLinksOptions = {}): NavigationLinksDescriptor {\n return { type: Types.NavigationLinks, options }\n}\n\nexport type NumberValue = number\n\nexport type NumberOptions = Options<{\n preset?: NumberValue\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\nexport type NumberDescriptor<_T = NumberValue> = {\n type: typeof Types.Number\n options: NumberOptions\n}\n\nexport function Number(options: NumberOptions = {}): NumberDescriptor {\n return { type: Types.Number, options }\n}\n\ntype PaddingSide = { value: number; unit: 'px' }\n\ntype Padding = {\n [K in 'top' | 'right' | 'bottom' | 'left' as `padding${Capitalize<K>}`]:\n | PaddingSide\n | null\n | undefined\n}\n\nexport type PaddingValue = ResponsiveValue<Padding>\n\nexport const PaddingPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::padding::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers::padding::format::responsive-value',\n} as const\n\nexport type PaddingPropControllerFormat =\n typeof PaddingPropControllerFormat[keyof typeof PaddingPropControllerFormat]\n\ntype PaddingOptions = { preset?: PaddingValue; format?: PaddingPropControllerFormat }\n\nexport type PaddingDescriptor<_T = PaddingValue, U extends PaddingOptions = PaddingOptions> = {\n type: typeof Types.Padding\n options: U\n}\n\nexport function Padding<T extends PaddingOptions>(\n options: T & PaddingOptions = {} as T,\n): PaddingDescriptor<PaddingValue, T> {\n return { type: Types.Padding, options }\n}\n\nPadding.Format = PaddingPropControllerFormat\n\nexport type ResponsiveColorValue = ResponsiveValue<Color>\n\ntype ResponsiveColorOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\nexport type ResponsiveColorDescriptor<_T = ResponsiveColorValue> = {\n type: typeof Types.ResponsiveColor\n options: ResponsiveColorOptions\n}\n\nexport function ResponsiveColor(options: ResponsiveColorOptions = {}): ResponsiveColorDescriptor {\n return { type: Types.ResponsiveColor, options }\n}\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.\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 ResponsiveLengthValue = ResponsiveValue<Length>\n\nexport type LengthOption =\n | { value: 'px'; label: 'Pixels'; icon: 'Px16' }\n | { value: '%'; label: 'Percentage'; icon: 'Percent16' }\n\nexport type ResponsiveLengthOptions = Options<{\n label?: string\n options?: LengthOption[]\n defaultValue?: Length\n hidden?: boolean\n}>\n\nexport type ResponsiveLengthDescriptor<_T = ResponsiveLengthValue> = {\n type: typeof Types.ResponsiveLength\n options: ResponsiveLengthOptions\n}\n\nexport function ResponsiveLength(\n options: ResponsiveLengthOptions = {},\n): ResponsiveLengthDescriptor {\n return { type: Types.ResponsiveLength, options }\n}\n\nexport type ResponsiveNumberValue = ResponsiveValue<number>\n\nexport type ResponsiveNumberOptions = Options<{\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\nexport type ResponsiveNumberDescriptor<_T = ResponsiveNumberValue> = {\n type: typeof Types.ResponsiveNumber\n options: ResponsiveNumberOptions\n}\n\nexport function ResponsiveNumber(\n options: ResponsiveNumberOptions = {},\n): ResponsiveNumberDescriptor {\n return { type: Types.ResponsiveNumber, options }\n}\n\nexport type ResponsiveOpacityValue = ResponsiveValue<number>\n\ntype ResponsiveOpacityOptions = Options<Record<string, never>>\n\ntype ResponsiveOpacityDescriptor<_T = ResponsiveOpacityValue> = {\n type: typeof Types.ResponsiveOpacity\n options: ResponsiveOpacityOptions\n}\n\nexport function ResponsiveOpacity(\n options: ResponsiveOpacityOptions = {},\n): ResponsiveOpacityDescriptor {\n return { type: Types.ResponsiveOpacity, 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.\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 RichTextValue = IndexSignatureHack<RichTextDTO>\n\nexport type RichTextOptions = Options<{ preset?: RichTextValue }>\n\nexport type RichTextDescriptor<_T extends Data = RichTextValue> = {\n type: typeof Types.RichText\n options: RichTextOptions\n}\n\nexport function RichText(options: RichTextOptions = {}): RichTextDescriptor {\n return { type: Types.RichText, options }\n}\n\ntype Shadow = {\n color?: Color | null\n blurRadius?: number\n spreadRadius?: number\n offsetX?: number\n offsetY?: number\n inset?: boolean\n}\n\ntype Shadows = { id: string; payload: Shadow }[]\n\nexport type ShadowsValue = ResponsiveValue<Shadows>\n\nexport const ShadowsPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::shadows::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers::shadows::format::responsive-value',\n} as const\n\nexport type ShadowsPropControllerFormat =\n typeof ShadowsPropControllerFormat[keyof typeof ShadowsPropControllerFormat]\n\ntype ShadowsOptions = { format?: ShadowsPropControllerFormat }\n\nexport type ShadowsDescriptor<_T = ShadowsValue, U extends ShadowsOptions = ShadowsOptions> = {\n type: typeof Types.Shadows\n options: U\n}\n\nexport function Shadows<T extends ShadowsOptions>(\n options: T & ShadowsOptions = {} as T,\n): ShadowsDescriptor<ShadowsValue, T> {\n return { type: Types.Shadows, options }\n}\n\nShadows.Format = ShadowsPropControllerFormat\n\nexport type ShapeValue<T extends Data = Data> = Record<string, T>\n\ntype ShapeOptions<T extends Record<string, PanelDescriptor>> = {\n type: T\n preset?: { [K in keyof T]?: DescriptorValueType<T[K]> }\n}\n\nexport type ShapeDescriptor<\n _T extends Record<string, Data>,\n U extends Record<string, PanelDescriptor>,\n> = {\n type: typeof Types.Shape\n options: ShapeOptions<U>\n}\n\nexport function Shape<T extends Record<string, PanelDescriptor>>(\n options: ShapeOptions<T>,\n): ShapeDescriptor<{ [K in keyof T]?: DescriptorValueType<T[K]> }, T> {\n return { type: Types.Shape, options }\n}\n\nexport function introspectShapePropControllerData<T>(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n func: (definition: Descriptor, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return Object.entries(descriptor.options.type).flatMap(([key, definition]) =>\n func(definition, value[key]),\n )\n}\n\nexport function getShapePropControllerElementChildren(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n): Element[] {\n return introspectShapePropControllerData(descriptor, value, getElementChildren)\n}\n\nexport function getShapePropControllerFileIds(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n): string[] {\n return introspectShapePropControllerData(descriptor, value, getFileIds)\n}\n\nexport function getShapePropControllerTypographyIds(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n): string[] {\n return introspectShapePropControllerData(descriptor, value, getTypographyIds)\n}\n\nexport function getShapePropControllerPageIds(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n): string[] {\n return introspectShapePropControllerData(descriptor, value, getPageIds)\n}\n\nexport function getShapePropControllerSwatchIds(\n descriptor: ShapeDescriptor<Record<string, Data>, Record<string, PanelDescriptor>>,\n value: ShapeValue | undefined,\n): string[] {\n return introspectShapePropControllerData(descriptor, value, getSwatchIds)\n}\n\ntype SocialLinkType =\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\ntype SocialLink = { type: SocialLinkType; url: string }\n\ntype SocialLinksLink = { id: string; payload: SocialLink }\n\nexport type SocialLinksValue = { links: SocialLinksLink[]; openInNewTab: boolean }\n\ntype SocialLinksOptions = Options<{ preset?: SocialLinksValue }>\n\ntype SocialLinksDescriptor<_T = SocialLinksValue> = {\n type: typeof Types.SocialLinks\n options: SocialLinksOptions\n}\n\nexport function SocialLinks(options: SocialLinksOptions = {}): SocialLinksDescriptor {\n return { type: Types.SocialLinks, options }\n}\n\nexport type TableValue = string\n\ntype TableOptions = Options<{ preset?: TableValue }>\n\ntype TableDescriptor<_T = TableValue> = { type: typeof Types.Table; options: TableOptions }\n\nexport function Table(options: TableOptions = {}): TableDescriptor {\n return { type: Types.Table, options }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n defaultValue?: string | boolean | string[]\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n autofill?: boolean\n}\n\ntype Grid = { count: number; spans: number[][] }\n\nexport type TableFormFieldsValue = { fields: TableFormField[]; grid: ResponsiveValue<Grid> }\n\ntype TableFormFieldsOptions = Options<{ preset?: TableFormFieldsValue }>\n\nexport type TableFormFieldsDescriptor<_T = TableFormFieldsValue> = {\n type: typeof Types.TableFormFields\n options: TableFormFieldsOptions\n}\n\nexport function TableFormFields(options: TableFormFieldsOptions = {}): TableFormFieldsDescriptor {\n return { type: Types.TableFormFields, options }\n}\n\nexport type TypeaheadValue<T extends Data = Data> = {\n id: string\n label: string\n value: T\n}\n\nexport type TypeaheadOptions<T extends Data> = {\n getItems: (query: string) => Promise<TypeaheadValue<T>[]>\n label?: string\n preset?: TypeaheadValue<T>\n defaultValue?: TypeaheadValue<T>\n}\n\nexport type TypeaheadDescriptor<T extends TypeaheadValue = TypeaheadValue> = {\n type: typeof Types.Typeahead\n options: TypeaheadOptions<T extends TypeaheadValue<infer U> ? U : never>\n}\n\nexport function Typeahead<T extends Data>(\n options: TypeaheadOptions<T>,\n): TypeaheadDescriptor<TypeaheadValue<T>> {\n return { type: Types.Typeahead, options }\n}\n\nexport type TextAreaValue = string\n\ntype TextAreaOptions = Options<{ preset?: TextAreaValue; label?: string; rows?: number }>\n\ntype TextAreaDescriptor<_T = TextAreaValue> = {\n type: typeof Types.TextArea\n options: TextAreaOptions\n}\n\nexport function TextArea(options: TextAreaOptions = {}): TextAreaDescriptor {\n return { type: Types.TextArea, options }\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\nexport function TextInput(options: TextInputOptions = {}): TextInputDescriptor {\n return { type: Types.TextInput, options }\n}\n\nexport type TextStyleValue = ResponsiveValue<TextStyle>\n\nexport type TextStyleOptions = Options<{\n preset?: TextStyleValue\n label?: string\n hidden?: boolean\n}>\n\nexport type TextStyleDescriptor<_T = TextStyleValue> = {\n type: typeof Types.TextStyle\n options: TextStyleOptions\n}\n\nexport function TextStyle(options: TextStyleOptions = {}): TextStyleDescriptor {\n return { type: Types.TextStyle, options }\n}\n\ntype Video = {\n url?: string\n muted?: boolean\n playing?: boolean\n loop?: boolean\n controls?: boolean\n}\n\nexport type VideoValue = Video\n\ntype VideoOptions = Options<{ preset?: VideoValue }>\n\ntype VideoDescriptor<_T = VideoValue> = { type: typeof Types.Video; options: VideoOptions }\n\nexport function Video(options: VideoOptions = {}): VideoDescriptor {\n return { type: Types.Video, options }\n}\n\nexport type WidthValue = ResponsiveValue<Length>\n\nexport const WidthPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::width::format::class-name',\n ResponsiveValue: 'makeswift::prop-controllers::width::format::responsive-value',\n} as const\n\ntype WidthControlValueFormat =\n typeof WidthPropControllerFormat[keyof typeof WidthPropControllerFormat]\n\ntype WidthOptions = {\n preset?: WidthValue\n defaultValue?: Length\n format?: WidthControlValueFormat\n}\n\nexport type WidthDescriptor<_T = WidthValue, U extends WidthOptions = WidthOptions> = {\n type: typeof Types.Width\n options: U\n}\n\nexport function Width<T extends WidthOptions>(\n options: T & WidthOptions = {} as T,\n): WidthDescriptor<WidthValue, T> {\n return { type: Types.Width, options }\n}\n\nWidth.Format = WidthPropControllerFormat\n\nexport type Descriptor<T extends Data = Data> =\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | GapXDescriptor<T>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | ListDescriptor<T extends ListValue ? T : ListValue>\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 | ResponsiveNumberDescriptor<T>\n | ResponsiveOpacityDescriptor<T>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | RichTextDescriptor<T>\n | ShadowsDescriptor<T>\n | ShapeDescriptor<T extends ShapeValue ? T : ShapeValue, any>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TypeaheadDescriptor<T extends TypeaheadValue ? T : TypeaheadValue>\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 Types.Backgrounds\n | typeof Types.ResponsiveIconRadioGroup\n | typeof Types.Margin\n | typeof Types.Padding\n | typeof Types.Border\n | typeof Types.Shadows\n | typeof Types.GapY\n | typeof Types.GapX\n | typeof Types.BorderRadius\n | typeof Types.Checkbox\n | typeof Types.TextInput\n | typeof Types.Link\n | typeof Types.List\n | typeof Types.Shape\n | typeof Types.ResponsiveSelect\n | typeof Types.ResponsiveColor\n | typeof Types.TextStyle\n | typeof Types.Images\n | typeof Types.ResponsiveNumber\n | typeof Types.Number\n | typeof Types.Date\n | typeof Types.Font\n | typeof Types.TextArea\n | typeof Types.Table\n | typeof Types.Typeahead\n | typeof Types.RichText\n | typeof Types.Image\n | typeof Types.ResponsiveOpacity\n | typeof Types.SocialLinks\n | typeof Types.Video\n | typeof Types.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 Types.ResponsiveColor\n ? ResponsiveColor | null | undefined\n : T['type'] extends typeof Types.Width\n ? ResolveWidthControlValue<T>\n : T['type'] extends typeof Types.Padding\n ? ResolvePaddingControlValue<T>\n : T['type'] extends typeof Types.Margin\n ? ResolveMarginControlValue<T>\n : T['type'] extends typeof Types.BorderRadius\n ? ResolveBorderRadiusControlValue<T>\n : T['type'] extends typeof Types.Shadows\n ? ResolveShadowsControlValue<T>\n : T['type'] extends typeof Types.Border\n ? ResolveBorderControlValue<T>\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","import { P, match } from 'ts-pattern'\nimport { CopyContext, ReplacementContext } from '../state/react-page'\n\ntype ImageControlDataV0 = string\n\ntype MakeswiftFileImageData = {\n type: 'makeswift-file'\n version: 1,\n id: string\n}\n\ntype ExternalFileImageData = {\n type: 'external-file'\n version: 1,\n url: string\n width?: number | null\n height?: number | null\n}\n\ntype ImageControlDataV1 = MakeswiftFileImageData | ExternalFileImageData\n\nexport type ImageControlData = ImageControlDataV0 | ImageControlDataV1\n\nexport const ImageControlType = 'makeswift::controls::image'\n\nexport const ImageControlValueFormat = {\n URL: 'makeswift::controls::image::format::url',\n WithDimensions: 'makeswift::controls::image::format::with-dimensions',\n} as const\n\ntype ImageControlValueFormat = typeof ImageControlValueFormat[keyof typeof ImageControlValueFormat]\n\ntype ImageControlConfig = { label?: string; format?: ImageControlValueFormat }\n\nexport type ImageControlDefinition<T extends ImageControlConfig = ImageControlConfig> = {\n type: typeof ImageControlType\n config: T\n version?: 1\n}\n\nexport function Image<T extends ImageControlConfig>(\n config: T = {} as T,\n): ImageControlDefinition<T> {\n return { type: ImageControlType, config, version: 1 }\n}\n\nImage.Format = ImageControlValueFormat\n\nexport function copyImageData(\n value: ImageControlData | undefined,\n context: CopyContext,\n): ImageControlData | undefined {\n if (value == null) return value\n\n return match(value)\n .with(P.string, id => context.replacementContext.fileIds.get(id) ?? id)\n .with({ type: 'makeswift-file' }, ({ id }) => context.replacementContext.fileIds.get(id) ?? id)\n .otherwise(val => val)\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('image copy', () => {\n test('image is replaced by a one in replacement context', () => {\n // Arrange\n const data: ImageControlData = 'file-id'\n const expected = 'testing'\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map([['file-id', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copyImageData(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../state/react-page'\n\ntype OpenPageLink = {\n type: 'OPEN_PAGE'\n payload: { pageId: string | null | undefined; openInNewTab: boolean }\n}\n\ntype OpenURLLink = { type: 'OPEN_URL'; payload: { url: string; openInNewTab: boolean } }\n\ntype SendEmailLink = {\n type: 'SEND_EMAIL'\n payload: { to: string; subject?: string; body?: string }\n}\n\ntype CallPhoneLink = { type: 'CALL_PHONE'; payload: { phoneNumber: string } }\n\ntype ScrollToElementLink = {\n type: 'SCROLL_TO_ELEMENT'\n payload: {\n elementIdConfig: { elementKey: string; propName: string } | null | undefined\n block: 'start' | 'center' | 'end'\n }\n}\n\nexport type LinkControlData =\n | OpenPageLink\n | OpenURLLink\n | SendEmailLink\n | CallPhoneLink\n | ScrollToElementLink\n | null\n\nexport const LinkControlType = 'makeswift::controls::link'\n\ntype LinkControlConfig = {\n label?: string\n}\n\nexport type LinkControlDefinition<C extends LinkControlConfig = LinkControlConfig> = {\n type: typeof LinkControlType\n config: C\n}\n\nexport function Link<C extends LinkControlConfig>(config: C = {} as C): LinkControlDefinition<C> {\n return { type: LinkControlType, config }\n}\n\nexport function copyLinkData(\n value: LinkControlData | undefined,\n context: CopyContext,\n): LinkControlData | undefined {\n if (value == null) return value\n\n if (value.type === 'OPEN_PAGE') {\n const pageId = value.payload.pageId\n\n if (pageId != null) {\n return {\n ...value,\n payload: {\n ...value.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? pageId,\n },\n }\n }\n }\n\n return value\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('link', () => {\n test('page id is replaced by one in replacement context', () => {\n // Arrange\n const data: LinkControlData = {\n type: 'OPEN_PAGE',\n payload: {\n pageId: 'UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=',\n openInNewTab: false,\n },\n }\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n pageIds: new Map([['UGFnZTpmNTdmMjQ2MS0wMGY3LTQzZWUtYmIwOS03ODdiNTUyYzUyYWQ=', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n fileIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copyLinkData(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { Editor } from 'slate'\nimport { Descriptor, RichTextDescriptor, TableFormFieldsDescriptor, Types } from './descriptors'\nimport { BuilderEditMode } from '../state/modules/builder-edit-mode'\nimport { BoxModel } from '../state/modules/box-models'\nimport {\n ListControl,\n ListControlMessage,\n ListControlType,\n RichTextControl,\n RichTextControlMessage,\n RichTextControlType,\n ShapeControl,\n ShapeControlMessage,\n ShapeControlType,\n richTextDAOToDTO,\n RichTextDTO,\n SlotControl,\n SlotControlMessage,\n SlotControlType,\n StyleControl,\n StyleControlType,\n StyleControlMessage,\n RichTextV2ControlMessage,\n RichTextV2ControlType,\n RichTextV2Control,\n StyleV2Control,\n StyleV2ControlType,\n StyleV2ControlMessage,\n} from '../controls'\nimport { PropController } from './base'\n\nexport const RichTextPropControllerMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n CHANGE_BOX_MODEL: 'CHANGE_BOX_MODEL',\n} as const\n\ntype ChangeBuilderEditModeRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.INITIALIZE_EDITOR\n value: RichTextDTO\n}\n\ntype ChangeEditorValueRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE\n value: RichTextDTO\n}\n\ntype FocusRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.FOCUS }\n\ntype BlurRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.BLUR }\n\ntype UndoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.UNDO }\n\ntype RedoRichTextPropControllerMessage = { type: typeof RichTextPropControllerMessageType.REDO }\n\ntype ChangeBoxModelRichTextPropControllerMessage = {\n type: typeof RichTextPropControllerMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type RichTextPropControllerMessage =\n | ChangeBuilderEditModeRichTextPropControllerMessage\n | InitializeEditorRichTextPropControllerMessage\n | ChangeEditorValueRichTextPropControllerMessage\n | FocusRichTextPropControllerMessage\n | BlurRichTextPropControllerMessage\n | UndoRichTextPropControllerMessage\n | RedoRichTextPropControllerMessage\n | ChangeBoxModelRichTextPropControllerMessage\n\nexport type PropControllerMessage =\n | RichTextPropControllerMessage\n | TableFormFieldsMessage\n | SlotControlMessage\n | RichTextControlMessage\n | RichTextV2ControlMessage\n | ListControlMessage\n | ShapeControlMessage\n | StyleControlMessage\n\nexport type Send<T = PropControllerMessage> = (message: T) => void\n\nclass DefaultPropController extends PropController {\n recv = (_message: PropControllerMessage) => {\n // Do nothing.\n }\n}\n\nclass RichTextPropController extends PropController<RichTextPropControllerMessage> {\n private editor: Editor | null = null\n\n recv = (message: RichTextPropControllerMessage) => {\n if (!this.editor) return\n switch (message.type) {\n case RichTextPropControllerMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n case BuilderEditMode.INTERACT:\n this.editor.deselectAndBlur()\n }\n break\n }\n case RichTextPropControllerMessageType.FOCUS: {\n this.editor.focusAndSelectAll()\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextPropControllerMessageType.INITIALIZE_EDITOR,\n value: richTextDAOToDTO(editor.children, editor.selection),\n })\n\n const _onChange = editor.onChange\n this.editor.onChange = options => {\n _onChange(options)\n\n // if onChange is local then it will include an operation(s)\n // that is the only case in which we want to push updates\n // this prevent infinite loops that can occur when collaborating\n if (options?.operation != null) {\n this.send({\n type: RichTextPropControllerMessageType.CHANGE_EDITOR_VALUE,\n value: richTextDAOToDTO(editor.children, editor.selection),\n })\n }\n }\n }\n\n focus() {\n this.send({ type: RichTextPropControllerMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextPropControllerMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextPropControllerMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextPropControllerMessageType.REDO })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: RichTextPropControllerMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n}\n\nexport const TableFormFieldsMessageType = {\n TABLE_FORM_LAYOUT_CHANGE: 'TABLE_FORM_LAYOUT_CHANGE',\n TABLE_FORM_FIELD_LAYOUT_CHANGE: 'TABLE_FORM_FIELD_LAYOUT_CHANGE',\n} as const\n\ntype TableLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE\n payload: { layout: BoxModel }\n}\n\ntype TableFieldLayoutTableFormFieldsMessage = {\n type: typeof TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE\n payload: { layout: BoxModel; index: number }\n}\n\nexport type TableFormFieldsMessage =\n | TableLayoutTableFormFieldsMessage\n | TableFieldLayoutTableFormFieldsMessage\n\nexport class TableFormFieldsPropController extends PropController<TableFormFieldsMessage> {\n recv = () => {}\n\n tableFormLayoutChange(payload: { layout: BoxModel }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_LAYOUT_CHANGE, payload })\n }\n\n tableFormFieldLayoutChange(payload: { layout: BoxModel; index: number }) {\n this.send({ type: TableFormFieldsMessageType.TABLE_FORM_FIELD_LAYOUT_CHANGE, payload })\n }\n}\n\ntype DescriptorPropController<T extends Descriptor> = T extends { type: typeof Types.RichText }\n ? RichTextPropController\n : T extends { type: typeof RichTextControlType }\n ? RichTextControl\n : T extends { type: typeof RichTextV2ControlType }\n ? RichTextV2Control\n : T extends { type: typeof Types.TableFormFields }\n ? TableFormFieldsPropController\n : DefaultPropController\n\nexport type DescriptorsPropControllers<T extends Record<string, Descriptor>> = {\n [K in keyof T]: undefined extends T[K]\n ? DescriptorPropController<Exclude<T[K], undefined>>\n : DescriptorPropController<T[K]>\n}\n\nexport type AnyPropController =\n | DefaultPropController\n | RichTextPropController\n | TableFormFieldsPropController\n | SlotControl\n | RichTextControl\n | RichTextV2Control\n | ListControl\n | ShapeControl\n | StyleControl\n | StyleV2Control\n\nexport function createPropController(\n descriptor: RichTextDescriptor,\n send: Send<RichTextPropControllerMessage>,\n): RichTextPropController\nexport function createPropController(\n descriptor: TableFormFieldsDescriptor,\n send: Send<TableFormFieldsMessage>,\n): TableFormFieldsPropController\nexport function createPropController(descriptor: Descriptor, send: Send): DefaultPropController\nexport function createPropController<T extends PropControllerMessage>(\n descriptor: Descriptor,\n send: Send<T>,\n): AnyPropController {\n switch (descriptor.type) {\n case Types.RichText:\n return new RichTextPropController(send as Send<RichTextPropControllerMessage>)\n\n case Types.TableFormFields:\n return new TableFormFieldsPropController(send as Send<TableFormFieldsMessage>)\n\n case SlotControlType:\n return new SlotControl(send as Send<SlotControlMessage>)\n\n case RichTextControlType:\n return new RichTextControl(send as Send<RichTextControlMessage>)\n\n case RichTextV2ControlType:\n return new RichTextV2Control(send as Send<RichTextV2ControlMessage>, descriptor)\n\n case ListControlType:\n return new ListControl(send as Send<ListControlMessage>, descriptor)\n\n case ShapeControlType:\n return new ShapeControl(send as Send<ShapeControlMessage>, descriptor)\n\n case StyleControlType:\n return new StyleControl(send as Send<StyleControlMessage>)\n\n case StyleV2ControlType:\n return new StyleV2Control(send as Send<StyleV2ControlMessage>, descriptor)\n\n default:\n return new DefaultPropController(send as Send)\n }\n}\n","import {\n AnyPropController,\n createPropController,\n PropControllerMessage,\n Send,\n} from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { CopyContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n ControlDefinition,\n ControlDefinitionData,\n getTranslatableData,\n mergeTranslatedData,\n} from './control'\nimport { ColorData, Data } from './types'\n\nimport { copy as controlCopy } from './control'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\nimport { CheckboxControlDefinition } from './checkbox'\nimport { NumberControlDefinition } from './number'\nimport { TextInputControlDefinition } from './text-input'\nimport { TextAreaControlDefinition } from './text-area'\nimport { SelectControlData, SelectControlDefinition } from './select'\nimport { ColorControlDefinition } from './color'\nimport { IconRadioGroupControlData, IconRadioGroupControlDefinition } from './icon-radio-group'\nimport { ImageControlData, ImageControlDefinition } from './image'\nimport { ComboboxControlData, ComboboxControlDefinition } from './combobox'\nimport { ShapeControlDefinition } from './shape'\nimport { LinkControlData, LinkControlDefinition } from './link'\nimport { RichTextControlData, RichTextControlDefinition } from './rich-text'\nimport { IndexSignatureHack } from '../prop-controllers/descriptors'\nimport { RichTextV2ControlData, RichTextV2ControlDefinition } from './rich-text-v2'\nimport { StyleControlData, StyleControlDefinition } from './style'\nimport { StyleV2ControlData, StyleV2ControlDefinition } from './style-v2'\nimport { TypographyControlData, TypographyControlDefinition } from './typography'\n\nexport type GetItemLabelControlData<T extends ControlDefinition> = T extends CheckboxControlDefinition\n ? boolean\n : T extends NumberControlDefinition\n ? number\n : T extends TextInputControlDefinition\n ? string\n : T extends TextAreaControlDefinition\n ? string\n : T extends SelectControlDefinition\n ? SelectControlData<T>\n : T extends ColorControlDefinition\n ? ColorData\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlData<T>\n : T extends ImageControlDefinition\n ? ImageControlData\n : T extends ComboboxControlDefinition\n ? ComboboxControlData<T>\n : T extends ShapeControlDefinition\n ? GetItemLabelShapeControlData<T>\n : T extends ListControlDefinition\n ? GetItemListControlData<T>\n : T extends LinkControlDefinition\n ? LinkControlData\n : T extends RichTextControlDefinition\n ? IndexSignatureHack<RichTextControlData>\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlData\n : T extends StyleControlDefinition\n ? StyleControlData\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlData\n : T extends TypographyControlDefinition\n ? TypographyControlData\n : never\n\nexport type GetItemLabelListControlItemData<T extends ListControlDefinition> = {\n id: string\n type?: T['config']['type']['type']\n value: GetItemLabelControlData<T['config']['type']>\n}\n\nexport type GetItemLabelShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: GetItemLabelControlData<T['config']['type'][K]>\n}\n\nexport type GetItemListControlData<T extends ListControlDefinition = ListControlDefinition> =\n GetItemLabelListControlItemData<T>[]\n\nexport const ListControlType = 'makeswift::controls::list'\n\ntype ListControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n label?: string\n getItemLabel?(item: GetItemLabelControlData<T> | undefined): string\n}\n\nexport type ListControlDefinition<C extends ListControlConfig = ListControlConfig> = {\n type: typeof ListControlType\n config: C\n}\n\nexport function List<T extends ControlDefinition, C extends ListControlConfig<T>>(\n config: C & { type: T },\n): ListControlDefinition<C> {\n return { type: ListControlType, config }\n}\n\nexport type ListControlItemData<T extends ListControlDefinition> = {\n id: string\n type?: T['config']['type']['type']\n value: ControlDefinitionData<T['config']['type']>\n}\n\nexport type ListControlData<T extends ListControlDefinition = ListControlDefinition> =\n ListControlItemData<T>[]\n\nexport const ListControlMessageType = {\n LIST_CONTROL_ITEM_CONTROL_MESSAGE: 'makeswift::controls::list::message::item-control-message',\n} as const\n\ntype ListControlItemControlMessage = {\n type: typeof ListControlMessageType.LIST_CONTROL_ITEM_CONTROL_MESSAGE\n payload: { message: PropControllerMessage; itemId: string }\n}\n\nexport type ListControlMessage = ListControlItemControlMessage\n\nexport class ListControl<\n T extends ListControlDefinition = ListControlDefinition,\n> extends PropController<ListControlMessage> {\n controls: Map<string, AnyPropController>\n descriptor: ListControlDefinition\n send: Send<ListControlMessage>\n\n constructor(send: Send<ListControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n\n this.controls = new Map<string, AnyPropController>()\n }\n\n setItemsControl = (value: ListControlData<T> | undefined) => {\n const controls = new Map<string, AnyPropController>()\n\n if (value == null) return\n\n const shouldUpdate = () => {\n // If the length is different, should update\n if (value.length !== this.controls.size) return true\n // If this.controls does not have an itemId, should update\n if (!value.every(({ id }) => this.controls.has(id))) return true\n\n return false\n }\n\n if (!shouldUpdate()) return this.controls\n\n value.forEach(item => {\n const control = createPropController(this.descriptor.config.type, message =>\n this.send({\n type: ListControlMessageType.LIST_CONTROL_ITEM_CONTROL_MESSAGE,\n payload: { message, itemId: item.id },\n }),\n )\n\n controls.set(item.id, control)\n })\n\n this.controls = controls\n\n return this.controls\n }\n\n recv = (message: ListControlMessage) => {\n switch (message.type) {\n case ListControlMessageType.LIST_CONTROL_ITEM_CONTROL_MESSAGE: {\n const control = this.controls.get(message.payload.itemId)\n\n if (control == null) return\n\n // TODO: We're casting the type here as the arg0 type for control.recv is never\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n\nexport function copyListData(\n definition: ListControlDefinition,\n value: ListControlData | undefined,\n context: CopyContext,\n): ListControlData | undefined {\n if (value == null) return value\n\n return (\n value &&\n value.map(item => ({\n ...item,\n value: controlCopy(definition.config.type, item.value, context),\n }))\n )\n}\n\nfunction introspectListData<T>(\n definition: ListControlDefinition,\n value: ListControlData | undefined,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return value.flatMap(item => func(definition.config.type, item.value))\n}\n\nexport function getListElementChildren(definition: ListControlDefinition, value: ListControlData) {\n return introspectListData(definition, value, getElementChildren)\n}\n\nexport function getListSwatchIds(definition: ListControlDefinition, value: ListControlData) {\n return introspectListData(definition, value, getSwatchIds)\n}\n\nexport function getListFileIds(definition: ListControlDefinition, value: ListControlData) {\n return introspectListData(definition, value, getFileIds)\n}\n\nexport function getListTypographyIds(definition: ListControlDefinition, value: ListControlData) {\n return introspectListData(definition, value, getTypographyIds)\n}\n\nexport function getListPageIds(definition: ListControlDefinition, value: ListControlData) {\n return introspectListData(definition, value, getPageIds)\n}\n\nexport function getListTranslatableData(definition: ListControlDefinition, data: ListControlData) {\n return Object.fromEntries(\n data.map(item => [item.id, getTranslatableData(definition.config.type, item.value)]),\n )\n}\n\nexport type ListControlTranslationDto = Record<string, ListControlData>\n\nexport function mergeListTranslatedData(\n definition: ListControlDefinition,\n data: ListControlData,\n translatedData: ListControlTranslationDto,\n context: MergeTranslatableDataContext,\n) {\n return data.map(item => {\n return {\n ...item,\n value: mergeTranslatedData(\n definition.config.type,\n item.value,\n translatedData[item.id],\n context,\n ),\n }\n })\n}\n","import {\n AnyPropController,\n createPropController,\n Send,\n PropControllerMessage,\n} from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { CopyContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n ControlDefinition,\n ControlDefinitionData,\n getTranslatableData,\n mergeTranslatedData,\n} from './control'\n\nimport { copy as controlCopy } from './control'\nimport { Data } from './types'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\n\nexport const ShapeControlType = 'makeswift::controls::shape'\n\ntype ShapeControlConfig = {\n type: Record<string, ControlDefinition>\n}\n\nexport type ShapeControlDefinition<C extends ShapeControlConfig = ShapeControlConfig> = {\n type: typeof ShapeControlType\n config: C\n}\n\nexport function Shape<C extends ShapeControlConfig>(config: C): ShapeControlDefinition<C> {\n return { type: ShapeControlType, config }\n}\n\nexport type ShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: ControlDefinitionData<T['config']['type'][K]>\n}\n\nexport const ShapeControlMessageType = {\n SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: 'makeswift::controls::shape::message::child-control-message',\n} as const\n\ntype ShapeControlChildControlMessage = {\n type: typeof ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage; key: string }\n}\n\nexport type ShapeControlMessage = ShapeControlChildControlMessage\n\nexport class ShapeControl<\n T extends ShapeControlDefinition = ShapeControlDefinition,\n> extends PropController<ShapeControlMessage> {\n controls: Map<string, AnyPropController>\n descriptor: ShapeControlDefinition\n send: Send<ShapeControlMessage>\n\n constructor(send: Send<ShapeControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n\n this.controls = new Map<string, AnyPropController>()\n this.setControls()\n }\n\n setControls = () => {\n const controls = new Map<string, AnyPropController>()\n const children = this.descriptor.config.type\n\n Object.keys(children).forEach(key => {\n const control = createPropController(children[key], message =>\n this.send({\n type: ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message, key },\n }),\n )\n\n controls.set(key, control)\n })\n\n this.controls = controls\n\n return this.controls\n }\n\n recv = (message: ShapeControlMessage) => {\n switch (message.type) {\n case ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.controls.get(message.payload.key)\n\n if (control == null) return\n\n // TODO: We're casting the type here as the arg0 type for control.recv is never\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n\nexport function copyShapeData(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n context: CopyContext,\n): ShapeControlData | undefined {\n if (value == null) return value\n\n const newValue: ShapeControlData = {}\n\n for (const [key, itemDefinition] of Object.entries(definition.config.type)) {\n const prop = value[key]\n\n newValue[key] = controlCopy(itemDefinition, prop, context)\n }\n\n return newValue\n}\n\nfunction introspectShapeData<T>(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return Object.entries(definition.config.type).flatMap(([key, definition]) =>\n func(definition, value[key]),\n )\n}\n\nexport function getShapeElementChildren(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return introspectShapeData(definition, data, getElementChildren)\n}\n\nexport function getShapeSwatchIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getSwatchIds)\n}\n\nexport function getShapeTypographyIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getTypographyIds)\n}\n\nexport function getShapePageIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getPageIds)\n}\n\nexport function getShapeFileIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getFileIds)\n}\n\nexport function getShapeTranslatableData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n getTranslatableData(definition, data[key]),\n ]),\n )\n}\n\nexport type ShapeControlTranslationDto = Record<string, ShapeControlData>\n\nexport function mergeShapeTranslatedData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n translatedData: ShapeControlTranslationDto,\n context: MergeTranslatableDataContext,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n mergeTranslatedData(definition, data[key], translatedData[key], context),\n ]),\n )\n}\n","import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextAreaControlDataTypeKey = ControlDataTypeKey\n\nexport const TextAreaControlDataTypeValueV1 = 'text-area::v1'\n\nexport type TextAreaControlDataV0 = string\n\nexport type TextAreaControlDataV1 = {\n [TextAreaControlDataTypeKey]: typeof TextAreaControlDataTypeValueV1\n value: string,\n}\n\nexport type TextAreaControlData = TextAreaControlDataV0 | TextAreaControlDataV1\n\nexport const TextAreaControlType = 'makeswift::controls::text-area'\n\ntype TextAreaControlConfig = {\n label?: string\n defaultValue?: string\n rows?: number\n}\n\nexport type TextAreaControlDefinition<C extends TextAreaControlConfig = TextAreaControlConfig> = {\n type: typeof TextAreaControlType\n config: C\n version?: 1\n}\n\nexport function TextArea<C extends TextAreaControlConfig>(\n config: C = {} as C,\n): TextAreaControlDefinition<C> {\n return { type: TextAreaControlType, config, version: 1 }\n}\n","import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextInputControlDataTypeKey = ControlDataTypeKey\n\nexport const TextInputControlDataTypeValueV1 = 'text-input::v1'\n\nexport type TextInputControlDataV0 = string\n\nexport type TextInputControlDataV1 = {\n [ControlDataTypeKey]: typeof TextInputControlDataTypeValueV1\n value: string,\n}\n\nexport type TextInputControlData = TextInputControlDataV0 | TextInputControlDataV1\n\nexport const TextInputControlType = 'makeswift::controls::text-input'\n\ntype TextInputControlConfig = {\n label?: string\n defaultValue?: string\n}\n\nexport type TextInputControlDefinition<C extends TextInputControlConfig = TextInputControlConfig> =\n {\n type: typeof TextInputControlType\n config: C\n version?: 1\n }\n\nexport function TextInput<C extends TextInputControlConfig>(\n config: C = {} as C,\n): TextInputControlDefinition<C> {\n return { type: TextInputControlType, config, version: 1 }\n}\n","import { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\nimport {\n CopyContext,\n Element,\n isElementReference,\n MergeContext,\n MergeTranslatableDataContext,\n} from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: (Element & { deleted?: boolean })[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel | null }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel | null }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv = () => {}\n\n changeContainerBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n\nexport function copySlotData(\n value: SlotControlData | undefined,\n context: CopyContext,\n): SlotControlData | undefined {\n if (value == null) return value\n\n return {\n ...value,\n elements: value.elements.map(element => context.copyElement(element)),\n }\n}\n\n/**\n * @todo\n * - Inserting elements\n * - Moving elements\n * - Merging column data\n */\nexport function mergeSlotData(\n base: SlotControlData | undefined = { columns: [], elements: [] },\n override: SlotControlData | undefined = { columns: [], elements: [] },\n context: MergeContext,\n): SlotControlData {\n const mergedColumns = base.columns\n const mergedElements = base.elements.flatMap(baseElement => {\n const overrideElement = override.elements.find(\n e => baseElement.type === e.type && baseElement.key === e.key,\n )\n\n if (overrideElement == null) return [baseElement]\n\n if (overrideElement.deleted) return []\n\n if (isElementReference(overrideElement)) return [overrideElement]\n\n if (isElementReference(baseElement)) return [baseElement]\n\n return context.mergeElement(baseElement, overrideElement)\n })\n\n return { columns: mergedColumns, elements: mergedElements }\n}\n\nexport function mergeSlotControlTranslatedData(\n data: SlotControlData,\n context: MergeTranslatableDataContext,\n) {\n return {\n ...data,\n elements: data.elements.map(element => context.mergeTranslatedData(element)),\n }\n}\n","import { P, match } from 'ts-pattern'\nimport { CopyContext } from '../../state/react-page'\nimport { BackgroundsDescriptor, BackgroundsValue } from '../descriptors'\n\nexport function copy(\n descriptor: BackgroundsDescriptor,\n value: BackgroundsValue | undefined,\n context: Pick<CopyContext, 'replacementContext'>,\n): BackgroundsValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({\n ...override,\n value: override.value.map(backgroundItem => {\n return match([descriptor, backgroundItem])\n .with([P.any, { type: 'color' }], ([, item]) => {\n return {\n ...item,\n payload:\n item.payload === null\n ? null\n : {\n ...item.payload,\n swatchId:\n context.replacementContext.swatchIds.get(item.payload.swatchId) ??\n item.payload.swatchId,\n },\n }\n })\n .with([P.any, { type: 'gradient' }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n stops: item.payload.stops.map(stop => ({\n ...stop,\n color:\n stop.color == null\n ? null\n : {\n ...stop.color,\n swatchId:\n context.replacementContext.swatchIds.get(stop.color.swatchId) ??\n stop.color.swatchId,\n },\n })),\n },\n }\n })\n .with(\n [\n { version: 1 },\n { type: 'image-v1', version: 1, payload: { image: { type: 'makeswift-file' } } },\n ],\n ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n image: {\n ...item.payload.image,\n id:\n context.replacementContext.fileIds.get(item.payload.image.id) ??\n item.payload.image.id,\n },\n },\n }\n },\n )\n .with([P.any, { type: 'image', payload: { imageId: P.string } }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n imageId:\n context.replacementContext.fileIds.get(item.payload.imageId) ??\n item.payload.imageId,\n },\n }\n })\n .otherwise(() => backgroundItem)\n }),\n }))\n}\n","import { CopyContext, Data } from '../../state/react-page'\nimport { GridValue } from '../descriptors'\n\nexport function copy(value: GridValue | undefined, context: CopyContext): Data | undefined {\n if (value == null) return undefined\n\n return {\n ...value,\n elements: value.elements.map(element => context.copyElement(element)),\n }\n}\n","import { CopyContext } from '../../state/react-page'\nimport { LinkValue } from '../descriptors'\n\nexport function copy(value: LinkValue | undefined, context: CopyContext): LinkValue | undefined {\n if (value == null) return value\n\n switch (value.type) {\n case 'OPEN_PAGE': {\n const pageId = value.payload.pageId\n\n if (pageId == null) return value\n\n return {\n ...value,\n payload: {\n ...value.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? pageId,\n },\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = value.payload.elementIdConfig\n\n if (elementIdConfig == null) return value\n\n return {\n ...value,\n payload: {\n ...value.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n }\n }\n\n default:\n return value\n }\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { copy as linkCopy } from './link'\nimport { NavigationLinksValue } from '../descriptors'\n\nexport function copy(\n value: NavigationLinksValue | undefined,\n context: CopyContext,\n): NavigationLinksValue | undefined {\n if (value == null) return value\n\n return value.map(copyNavigationLinksPanelItem)\n\n function copyNavigationLinksPanelItem(item: any): any {\n switch (item.type) {\n case 'button':\n case 'dropdown': {\n const { color, link } = item.payload\n\n return {\n ...item,\n payload: {\n ...item.payload,\n link: link != null ? linkCopy(link, context) : undefined,\n color:\n color != null\n ? color.map((override: { value: { swatchId: string } }) => ({\n ...override,\n value: {\n ...override.value,\n swatchId:\n context.replacementContext.swatchIds.get(override.value.swatchId) ??\n override.value.swatchId,\n },\n }))\n : undefined,\n },\n }\n }\n\n default:\n return item\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('navigation-links copy', () => {\n test('replace page id from replacement context', () => {\n // Arrange\n const data: NavigationLinksValue = [\n {\n id: 'e1cf2d04-012a-4481-832a-7b4dda62195e',\n type: 'button',\n payload: {\n link: {\n type: 'OPEN_PAGE',\n payload: {\n pageId: 'UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=',\n openInNewTab: true,\n },\n },\n label: 'Fellow Page',\n },\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map([['UGFnZTo2OGMzODZhNC1jYzRkLTQzMzUtYWZiMi05MDdhZGRkYzQ3YTM=', 'testing']]),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ShadowsValue } from '../descriptors'\n\nexport function copy(\n value: ShadowsValue | undefined,\n context: CopyContext,\n): ShadowsValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: override.value.map(copyShadowItem) }))\n\n function copyShadowItem(item: any): any {\n const { color } = item.payload\n\n if (color == null) return item\n\n return {\n ...item,\n payload: {\n ...item.payload,\n color: {\n ...color,\n swatchId: context.replacementContext.swatchIds.get(color.swatchId) ?? color.swatchId,\n },\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('shadow copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: ShadowsValue = [\n {\n value: [\n {\n id: '8575efe6-4d04-4361-b593-e559537c4c3c',\n payload: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n offsetX: -5,\n offsetY: 8.7,\n blurRadius: 17,\n spreadRadius: 16,\n },\n },\n ],\n deviceId: 'desktop',\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ImageDescriptor, ImageValue } from '../descriptors'\nimport { match, P } from 'ts-pattern'\n\nexport function copy(\n descriptor: ImageDescriptor,\n value: ImageValue | undefined,\n context: Pick<CopyContext, 'replacementContext'>,\n): ImageValue | undefined {\n return match([descriptor, value])\n .with([P.any, P.string], ([, v]) => context.replacementContext.fileIds.get(v) ?? v)\n .with(\n [{ version: 1 }, { type: 'makeswift-file', version: 1 }],\n ([, v]) => context.replacementContext.fileIds.get(v.id) ?? v.id,\n )\n .otherwise(([, v]) => v)\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('image copy', () => {\n test('image is replaced by a one in replacement context', () => {\n // Arrange\n const data: ImageValue = 'file-id'\n const expected = JSON.parse(JSON.stringify(data).replace('file-id', 'testing'))\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map([['file-id', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy({ type: 'Image', options: {} }, data, {\n replacementContext: replacementContext as ReplacementContext,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { match, P } from 'ts-pattern'\nimport { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { ImagesDescriptor, ImagesValue, ImagesValueItem } from '../descriptors'\n\nexport function copy(\n descriptor: ImagesDescriptor,\n value: ImagesValue | undefined,\n context: Pick<CopyContext, 'replacementContext'>,\n): ImagesValue | undefined {\n if (value == null) return value\n\n return value.map(copyImagesPanelItem)\n\n function copyImagesPanelItem(imagesPanelItem: ImagesValueItem): any {\n const { file } = imagesPanelItem.props\n\n if (file == null) return imagesPanelItem\n\n return {\n ...imagesPanelItem,\n props: {\n ...imagesPanelItem.props,\n file: match([descriptor, file])\n .with([P.any, P.string], ([, f]) => context.replacementContext.fileIds.get(f) ?? f)\n .with(\n [{version: 1}, {type: 'makeswift-file', version: 1}],\n ([, f]) => context.replacementContext.fileIds.get(f.id) ?? f.id,\n )\n .otherwise(([, f]) => f)\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('images copy', () => {\n test('images are replaced by ones in replacement context', () => {\n // Arrange\n const data: ImagesValue = [\n {\n key: '0ae80f8f-9d4a-43bc-ae7c-007164a19d22',\n props: {\n file: 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n },\n },\n {\n key: '161674c3-8710-4fd6-90e6-6096c4e9bb88',\n props: {\n file: 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n },\n },\n ]\n const expected = JSON.parse(\n JSON.stringify(data).replaceAll(\n 'RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map([['RmlsZTo5ZmU3ZGUzMi1jY2E0LTRkMjktOWVlMC1jNTI2NDYxY2I1YjM=', 'testing']]),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy({type: 'Images', options: {}}, data, {\n replacementContext: replacementContext as ReplacementContext,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext } from '../../state/react-page'\nimport { ResponsiveColorValue } from '../descriptors'\n\nexport function copy(\n value: ResponsiveColorValue | undefined,\n context: CopyContext,\n): ResponsiveColorValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: copyColorValue(override.value) }))\n\n function copyColorValue(colorValue: any): any {\n return {\n ...colorValue,\n swatchId:\n context.replacementContext.swatchIds.get(colorValue.swatchId) ?? colorValue.swatchId,\n }\n }\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { TableFormFieldsValue } from '../descriptors'\n\nexport function copy(\n value: TableFormFieldsValue | undefined,\n context: CopyContext,\n): TableFormFieldsValue | undefined {\n if (value == null) return value\n\n return { ...value, fields: value.fields.map(copyFormFieldsPanelItem) }\n\n function copyFormFieldsPanelItem(item: any): any {\n return {\n ...item,\n tableColumnId:\n context.replacementContext.tableColumnIds.get(item.tableColumnId) ?? item.tableColumnId,\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('table form fields copy', () => {\n test('replaces the table column id', () => {\n // Arrange\n const data: TableFormFieldsValue = {\n grid: [\n {\n value: {\n count: 12,\n spans: [[12], [12]],\n },\n deviceId: 'desktop',\n },\n ],\n fields: [\n {\n id: '8c4b3dcb-d9d2-4199-9a66-c35aa39248f0',\n label: 'hello',\n required: true,\n tableColumnId:\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n },\n ],\n }\n const expected = JSON.parse(\n JSON.stringify(data).replace(\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n 'testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map([\n [\n 'U2luZ2xlTGluZVRleHRUYWJsZUNvbHVtbjphMzQ0Yzk3ZC04MTQ0LTRmMzctYjU2My1hODE5OTQ5OGMyYWI=',\n 'testing',\n ],\n ]),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { TableValue } from '../descriptors'\n\nexport function copy(value: TableValue | undefined, context: CopyContext): TableValue | undefined {\n if (value == null) return value\n\n return context.replacementContext.tableIds.get(value) ?? value\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('table copy', () => {\n test('replaces the table id', () => {\n // Arrange\n const data: TableValue = 'VGFibGU6MTM5NDhlYzMtMjgwNS00Nzk0LTliNzctNDJkN2RhNmQxZWEy'\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map(),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map([\n ['VGFibGU6MTM5NDhlYzMtMjgwNS00Nzk0LTliNzctNDJkN2RhNmQxZWEy', 'testing'],\n ]),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatch('testing')\n })\n })\n}\n","import { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { BorderValue } from '../descriptors'\n\nexport function copy(\n value: BorderValue | undefined,\n context: CopyContext,\n): BorderValue | undefined {\n if (value == null) return value\n\n return value.map(override => ({ ...override, value: copyBorderValue(override.value) }))\n\n function copyBorderValue({ borderTop, borderRight, borderBottom, borderLeft }: any): any {\n return {\n borderTop: borderTop && copyBorderSide(borderTop),\n borderRight: borderRight && copyBorderSide(borderRight),\n borderBottom: borderBottom && copyBorderSide(borderBottom),\n borderLeft: borderLeft && copyBorderSide(borderLeft),\n }\n }\n\n function copyBorderSide(borderSide: any): any {\n const { color } = borderSide\n\n if (color == null) return borderSide\n\n return {\n ...borderSide,\n color: {\n ...color,\n swatchId: context.replacementContext.swatchIds.get(color.swatchId) ?? color.swatchId,\n },\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n describe.concurrent('border copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: BorderValue = [\n {\n value: {\n borderTop: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderLeft: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderRight: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n borderBottom: {\n color: {\n alpha: 1,\n swatchId: 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n style: 'solid',\n width: 5,\n },\n },\n deviceId: 'desktop',\n },\n ]\n const expected: BorderValue = [\n {\n value: {\n borderTop: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderLeft: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderRight: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n borderBottom: {\n color: {\n alpha: 1,\n swatchId: 'testing',\n },\n style: 'solid',\n width: 5,\n },\n },\n deviceId: 'desktop',\n },\n ]\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map(),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { NodeJSON, InlineJSON, MarkJSON } from '../../controls'\nimport { CopyContext, ReplacementContext } from '../../state/react-page'\nimport { RichTextValue } from '../descriptors'\n\nexport function copy(\n value: RichTextValue | undefined,\n context: CopyContext,\n): RichTextValue | undefined {\n if (value == null) return value\n\n return { ...value, document: value.document ? copyNode(value.document) : value.document }\n\n function copyNode<T extends NodeJSON>(node: T): T {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n // @ts-expect-error: TypeScript can't refine the generic type T, even though it can\n // refine NodeJSON.\n return copyInline(node)\n\n case 'text':\n return { ...node, marks: node.marks?.map(copyMark) }\n\n default:\n return node\n }\n }\n\n function copyInline(inline: InlineJSON): InlineJSON {\n switch (inline.type) {\n case 'link':\n return {\n ...inline,\n nodes: inline.nodes?.map(copyNode),\n data: inline.data ? copyLinkData(inline.data as any) : inline.data,\n }\n\n default:\n return { ...inline, nodes: inline.nodes?.map(copyNode) }\n }\n }\n\n function copyLinkData(data: any): any {\n switch (data.type) {\n case 'OPEN_PAGE': {\n const pageId = data.payload.pageId\n\n if (pageId == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? data.payload.pageId,\n },\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = data.payload.elementIdConfig\n\n if (elementIdConfig == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n }\n }\n\n default:\n return data\n }\n }\n\n function copyMark(mark: MarkJSON): MarkJSON {\n switch (mark.type) {\n case 'typography': {\n const typographyId = mark.data?.value.id\n\n return {\n ...mark,\n data: {\n ...mark.data,\n value: {\n ...mark.data?.value,\n id: context.replacementContext.typographyIds.get(typographyId) ?? typographyId,\n style: mark.data?.value.style.map((override: any) => ({\n ...override,\n value: {\n ...override.value,\n color:\n override.value.color == null\n ? override.value.color\n : {\n ...override.value.color,\n swatchId:\n context.replacementContext.swatchIds.get(\n override.value.color?.swatchId,\n ) ?? override.value.color?.swatchId,\n },\n },\n })),\n },\n },\n }\n }\n\n default:\n return mark\n }\n }\n}\n\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest\n\n describe.concurrent('rich text copy', () => {\n test('replaces the swatch id', () => {\n // Arrange\n const data: RichTextValue = {\n object: 'value',\n document: {\n data: {},\n nodes: [\n {\n data: {},\n type: 'paragraph',\n nodes: [\n {\n text: 'Hello world',\n marks: [\n {\n data: {\n value: {\n id: 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n style: [\n {\n value: {\n color: {\n alpha: 1,\n swatchId:\n 'U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==',\n },\n fontSize: {\n unit: 'px',\n value: 23,\n },\n lineHeight: 2.5,\n strikethrough: true,\n },\n deviceId: 'desktop',\n },\n ],\n },\n },\n type: 'typography',\n object: 'mark',\n },\n ],\n object: 'text',\n },\n ],\n object: 'block',\n },\n ],\n object: 'document',\n },\n selection: {\n focus: {\n path: [0, 0],\n object: 'point',\n offset: 0,\n },\n anchor: {\n path: [0, 0],\n object: 'point',\n offset: 0,\n },\n object: 'selection',\n isFocused: false,\n },\n }\n const expected = JSON.parse(\n JSON.stringify(data)\n .replace('U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'swatch-testing')\n .replace(\n 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n 'typography-testing',\n ),\n )\n\n const replacementContext = {\n elementHtmlIds: new Set(),\n elementKeys: new Map(),\n swatchIds: new Map([\n ['U3dhdGNoOjgwMmNmZGMyLTc5ZDgtNDkyNy1hMDUwLWE1NmM1M2EzYzE0Mg==', 'swatch-testing'],\n ]),\n fileIds: new Map(),\n typographyIds: new Map([\n [\n 'VHlwb2dyYXBoeTo5ODE1NWY0Ni1mNmQzLTQ1M2YtODk5OC02ZWY5NzJhNTBlY2U=',\n 'typography-testing',\n ],\n ]),\n tableIds: new Map(),\n tableColumnIds: new Map(),\n pageIds: new Map(),\n globalElementIds: new Map(),\n globalElementData: new Map(),\n }\n\n // Act\n const result = copy(data, {\n replacementContext: replacementContext as ReplacementContext,\n copyElement: node => node,\n })\n\n // Assert\n expect(result).toMatchObject(expected)\n })\n })\n}\n","import { CopyContext } from '../../state/react-page'\n\nexport function copy(value: string | undefined, context: CopyContext): string | undefined {\n if (value == null) return value\n\n if (context.replacementContext.elementHtmlIds.has(value)) return undefined\n\n context.replacementContext.elementHtmlIds.add(value)\n\n return value\n}\n","import { Descriptor } from './descriptors'\nimport { copy as backgroundsCopy } from './copy/backgrounds'\nimport { copy as gridCopy } from './copy/grid'\nimport { copy as navigationLinksCopy } from './copy/navigation-links'\nimport { copy as linkCopy } from './copy/link'\nimport { copy as shadowsCopy } from './copy/shadows'\nimport { copy as imageCopy } from './copy/image'\nimport { copy as imagesCopy } from './copy/images'\nimport { copy as responsiveColorCopy } from './copy/responsive-color'\nimport { copy as tableFormFieldsCopy } from './copy/table-form-fields'\nimport { copy as tableCopy } from './copy/table'\nimport { copy as borderCopy } from './copy/border'\nimport { copy as richTextCopy } from './copy/rich-text'\nimport { copy as elementIdCopy } from './copy/element-id'\nimport { CopyContext } from '../state/react-page'\n\n// @note: note typing value, because would then have to type narrow `Data` per case\nexport function copy(descriptor: Descriptor, value: any, context: CopyContext) {\n switch (descriptor.type) {\n case 'Backgrounds':\n return backgroundsCopy(descriptor, value, context)\n case 'Grid':\n return gridCopy(value, context)\n case 'NavigationLinks':\n return navigationLinksCopy(value, context)\n case 'Link':\n return linkCopy(value, context)\n case 'Shadows':\n return shadowsCopy(value, context)\n case 'Image':\n return imageCopy(descriptor, value, context)\n case 'Images':\n return imagesCopy(descriptor, value, context)\n case 'ResponsiveColor':\n return responsiveColorCopy(value, context)\n case 'TableFormFields':\n return tableFormFieldsCopy(value, context)\n case 'Table':\n return tableCopy(value, context)\n case 'Border':\n return borderCopy(value, context)\n case 'RichText':\n return richTextCopy(value, context)\n case 'ElementID':\n return elementIdCopy(value, context)\n default:\n return value\n }\n}\n\nexport function copyElementReference(value: string, context: CopyContext) {\n return context.replacementContext.globalElementIds.get(value) || value\n}\n","import { CopyContext } from '../../state/react-page'\nimport { NodeJSON, InlineJSON, MarkJSON } from './dto-types'\nimport { RichTextControlData } from './rich-text'\n\nexport function copyRichTextData(\n value: RichTextControlData | undefined,\n context: CopyContext,\n): RichTextControlData | undefined {\n if (value == null) return value\n\n return { ...value, document: value.document ? copyNode(value.document) : value.document }\n\n function copyNode<T extends NodeJSON>(node: T): T {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n // @ts-expect-error: TypeScript can't refine the generic type T, even though it can\n // refine NodeJSON.\n return copyInline(node)\n\n case 'text':\n return { ...node, marks: node.marks?.map(copyMark) }\n\n default:\n return node\n }\n }\n\n function copyInline(inline: InlineJSON): InlineJSON {\n switch (inline.type) {\n case 'link':\n return {\n ...inline,\n nodes: inline.nodes?.map(copyNode),\n data: inline.data ? copyLinkData(inline.data as any) : inline.data,\n }\n\n default:\n return { ...inline, nodes: inline.nodes?.map(copyNode) }\n }\n }\n\n function copyLinkData(data: any): any {\n switch (data.type) {\n case 'OPEN_PAGE': {\n const pageId = data.payload.pageId\n\n if (pageId == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n pageId: context.replacementContext.pageIds.get(pageId) ?? data.payload.pageId,\n },\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = data.payload.elementIdConfig\n\n if (elementIdConfig == null) return data\n\n return {\n ...data,\n payload: {\n ...data.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n }\n }\n\n default:\n return data\n }\n }\n\n function copyMark(mark: MarkJSON): MarkJSON {\n switch (mark.type) {\n case 'typography': {\n const typographyId = mark.data?.value.id\n\n return {\n ...mark,\n data: {\n ...mark.data,\n value: {\n ...mark.data?.value,\n id: context.replacementContext.typographyIds.get(typographyId) ?? typographyId,\n style: mark.data?.value.style.map((override: any) => ({\n ...override,\n value: {\n ...override.value,\n color:\n override.value.color == null\n ? override.value.color\n : {\n ...override.value.color,\n swatchId:\n context.replacementContext.swatchIds.get(\n override.value.color?.swatchId,\n ) ?? override.value.color?.swatchId,\n },\n },\n })),\n },\n },\n }\n }\n\n default:\n return mark\n }\n }\n}\n","import { BlockType, InlineType } from '../../slate'\n\nexport const ObjectType = {\n Value: 'value',\n Text: 'text',\n Inline: 'inline',\n Block: 'block',\n Document: 'document',\n Leaf: 'leaf',\n Selection: 'selection',\n Mark: 'mark',\n Range: 'range',\n Decoration: 'decoration',\n Annotation: 'annotation',\n Point: 'point',\n Operation: 'operation',\n} as const\n\nexport type ObjectType = typeof ObjectType[keyof typeof ObjectType]\n\nexport interface ValueJSON {\n object?: typeof ObjectType.Value | undefined\n document?: DocumentJSON | undefined\n selection?: SelectionJSON | undefined\n annotations?: { [key: string]: AnnotationJSON } | undefined\n data?: { [key: string]: any } | undefined\n}\nexport type RichTextDTO = ValueJSON\n\nexport interface DocumentJSON {\n object?: typeof ObjectType.Document | undefined\n nodes?: NodeJSON[] | undefined\n key?: string | undefined\n data?: { [key: string]: any } | undefined\n}\n\nexport interface BlockJSON {\n object?: typeof ObjectType.Block | undefined\n type: typeof BlockType[keyof typeof BlockType]\n key?: string | undefined\n nodes?: Array<BlockJSON | InlineJSON | TextJSON> | undefined\n data?: { [key: string]: any } | undefined\n}\n\nexport interface InlineJSON {\n object?: typeof ObjectType.Inline | undefined\n type: typeof InlineType[keyof typeof InlineType]\n key?: string | undefined\n nodes?: Array<InlineJSON | TextJSON> | undefined\n data?: { [key: string]: any } | undefined\n}\n\nexport interface TextJSON {\n object?: typeof ObjectType.Text | undefined\n key?: string | undefined\n text?: string | undefined\n marks?: MarkJSON[] | undefined\n}\n\nexport interface LeafJSON {\n object?: typeof ObjectType.Leaf | undefined\n marks?: MarkJSON[] | undefined\n text?: string | undefined\n}\nexport type NodeJSON = DocumentJSON | BlockJSON | InlineJSON | TextJSON\n\nexport interface SelectionJSON {\n object?: typeof ObjectType.Selection | undefined\n anchor?: PointJSON | undefined\n focus?: PointJSON | undefined\n isFocused?: boolean | undefined\n marks?: MarkJSON[] | undefined\n}\n\nexport interface MarkJSON {\n object?: typeof ObjectType.Mark | undefined\n type: string\n data?: { [key: string]: any } | undefined\n}\n\nexport interface RangeJSON {\n object?: typeof ObjectType.Range | undefined\n anchor?: PointJSON | undefined\n focus?: PointJSON | undefined\n}\n\nexport interface DecorationJSON {\n object?: typeof ObjectType.Decoration | undefined\n anchor?: PointJSON | undefined\n focus?: PointJSON | undefined\n type?: string | undefined\n data?: { [key: string]: any } | undefined\n}\n\nexport interface AnnotationJSON {\n object?: typeof ObjectType.Annotation | undefined\n key: string\n type: string\n data?: { [key: string]: any } | undefined\n anchor?: PointJSON | undefined\n focus?: PointJSON | undefined\n}\n\nexport interface PointJSON {\n object?: typeof ObjectType.Point | undefined\n key?: string | undefined\n offset?: number | undefined\n path?: number[] | undefined\n}\n\nexport interface OperationJSON {\n object?: typeof ObjectType.Operation | undefined\n type: string\n text?: string | undefined\n target?: number | undefined\n properties?: NodeJSON | ValueJSON | SelectionJSON | AnnotationJSON | undefined\n position?: number | undefined\n path?: number[] | undefined\n offset?: number | undefined\n node?: Node | undefined\n newProperties?: NodeJSON | ValueJSON | SelectionJSON | MarkJSON | AnnotationJSON | undefined\n newPath?: number[] | undefined\n mark?: MarkJSON | undefined\n data?: { [key: string]: any } | undefined\n annotation?: AnnotationJSON | undefined\n}\n","import { BaseEditor, Descendant } from 'slate'\nimport { ReactEditor } from 'slate-react'\nimport { LinkControlData } from '../controls'\nimport { BuilderEditor, TypographyEditor } from '.'\nimport { ResponsiveValue } from '../prop-controllers'\nimport { ResponsiveColor } from '../runtimes/react/controls'\nimport { LocalChangesEditor } from './LocalChangesPlugin'\n\nexport type RichTextTypography = {\n id?: string\n style: Array<{\n deviceId: string\n value: {\n fontFamily?: string | null\n lineHeight?: number | null\n letterSpacing?: number | null\n fontWeight?: number | null\n textAlign?: string | null\n uppercase?: boolean | null\n underline?: boolean | null\n strikethrough?: boolean | null\n italic?: boolean | null\n fontSize?: { value: number | null; unit: string | null } | null\n color?: { swatchId: string | null; alpha: number | null } | null\n }\n }>\n}\n\nexport type Text = {\n text: string\n typography?: RichTextTypography\n color?: ResponsiveColor\n slice?: boolean\n className?: string\n translationKey?: string\n}\n\nexport const RootBlockType = {\n Default: 'default',\n Paragraph: 'paragraph',\n Heading1: 'heading-one',\n Heading2: 'heading-two',\n Heading3: 'heading-three',\n Heading4: 'heading-four',\n Heading5: 'heading-five',\n Heading6: 'heading-six',\n BlockQuote: 'blockquote',\n UnorderedList: 'unordered-list',\n OrderedList: 'ordered-list',\n} as const\n\nexport type RootBlockType = typeof RootBlockType[keyof typeof RootBlockType]\n\nexport const BlockType = {\n ...RootBlockType,\n ListItem: 'list-item',\n ListItemChild: 'list-item-child',\n} as const\n\nexport type BlockType = typeof BlockType[keyof typeof BlockType]\n\nexport type DefaultElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Default\n}\n\nexport type ParagraphElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Paragraph\n}\n\nexport type Heading1Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading1\n}\n\nexport type Heading2Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading2\n}\n\nexport type Heading3Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading3\n}\n\nexport type Heading4Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading4\n}\n\nexport type Heading5Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading5\n}\n\nexport type Heading6Element = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.Heading6\n}\n\nexport type BlockQuoteElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.BlockQuote\n}\n\nexport type UnorderedListElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.UnorderedList\n}\n\nexport type OrderedListElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.OrderedList\n}\n\nexport type ListElement = OrderedListElement | UnorderedListElement\n\nexport type ListItemElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.ListItem\n}\n\nexport type ListItemChildElement = {\n textAlign?: ResponsiveBlockTextAlignment\n className?: string\n children: Array<Element | Text>\n slice?: boolean\n typography?: RichTextTypography\n type: typeof BlockType.ListItemChild\n}\n\nexport const InlineType = {\n Code: 'code',\n SuperScript: 'superscript',\n SubScript: 'subscript',\n Link: 'link',\n} as const\n\nexport type InlineType = typeof InlineType[keyof typeof InlineType]\n\nexport const BlockTextAlignment = {\n Left: 'left',\n Center: 'center',\n Right: 'right',\n Justify: 'justify',\n} as const\n\nexport type BlockTextAlignment = typeof BlockTextAlignment[keyof typeof BlockTextAlignment]\n\nexport type ResponsiveBlockTextAlignment = ResponsiveValue<BlockTextAlignment>\n\nexport type CodeElement = {\n children: Array<Text | Inline>\n type: typeof InlineType.Code\n className?: string\n slice?: boolean\n typography?: RichTextTypography\n translationKey?: string\n}\n\nexport type SuperElement = {\n children: Array<Text | Inline>\n type: typeof InlineType.SuperScript\n className?: string\n slice?: boolean\n typography?: RichTextTypography\n translationKey?: string\n}\n\nexport type SubElement = {\n children: Array<Text | Inline>\n type: typeof InlineType.SubScript\n className?: string\n slice?: boolean\n typography?: RichTextTypography\n translationKey?: string\n}\n\nexport type LinkElement = {\n children: Array<Text | Inline>\n type: typeof InlineType.Link\n link: LinkControlData\n className?: string\n slice?: boolean\n typography?: RichTextTypography\n translationKey?: string\n}\n\nexport type RootBlock =\n | DefaultElement\n | ParagraphElement\n | Heading1Element\n | Heading2Element\n | Heading3Element\n | Heading4Element\n | Heading5Element\n | Heading6Element\n | BlockQuoteElement\n | ListElement\n\nexport type Block = RootBlock | ListItemElement | ListItemChildElement\n\nexport type Inline = CodeElement | SuperElement | SubElement | LinkElement\n\nexport type Element = Block | Inline\n\nexport type RichTextDAO = Descendant[]\n\nexport type MakeswiftEditor = BaseEditor & ReactEditor & BuilderEditor & LocalChangesEditor & TypographyEditor \n\ndeclare module 'slate' {\n interface CustomTypes {\n Editor: MakeswiftEditor\n Element: Element\n Text: Text\n }\n}\n","import { Descendant, Text, Selection } from 'slate'\nimport { LinkControlData } from '../link'\nimport {\n BlockJSON,\n InlineJSON,\n NodeJSON,\n SelectionJSON,\n TextJSON,\n RichTextDTO,\n ObjectType,\n} from './dto-types'\nimport { Inline, InlineType, RichTextDAO, BlockType } from '../../slate/types'\n\n// reimplemented from slate source for code splitting\nfunction isText(node: any): node is Text {\n if (typeof node === 'object' && 'text' in node) return true\n\n return false\n}\n\nfunction toTextDAO(node: TextJSON): Text[] {\n const typographyMark = node.marks?.find(mark => mark.type === 'typography')\n\n return [\n {\n text: node.text ?? '',\n typography: typographyMark?.data?.value ?? undefined,\n },\n ]\n}\n\nfunction toInlineDAO(node: InlineJSON): Inline[] {\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n [node.type]: node.data as LinkControlData,\n type: node.type,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n type: node.type,\n },\n ]\n default:\n return []\n }\n}\n\nfunction toInlineOrTextDAO(node: InlineJSON | TextJSON): Array<Inline | Text> {\n switch (node.object) {\n case ObjectType.Inline:\n return toInlineDAO(node)\n case ObjectType.Text:\n return toTextDAO(node)\n default:\n return []\n }\n}\n\nfunction toNodeDAO(node: NodeJSON): Descendant[] {\n switch (node.object) {\n case ObjectType.Inline:\n case ObjectType.Text:\n return toInlineOrTextDAO(node)\n case ObjectType.Block:\n /**\n * Prior to 0.50.0 of slate `node.nodes` could be `undefined` or empty. In that situation nothing was rendered.\n * With 0.50.0 slate introduced an normalization that requires all blocks to contain a text node.\n */\n return [\n {\n type: node.type,\n textAlign: node?.data && 'textAlign' in node.data ? node?.data.textAlign : undefined,\n children:\n node.nodes == null || (node.nodes && node.nodes.length === 0)\n ? [{ text: '' }]\n : node.nodes.flatMap(toNodeDAO),\n },\n ]\n default:\n return []\n }\n}\n\nexport function richTextDTOtoSelection(data: RichTextDTO): Selection {\n if (\n data.selection?.anchor?.offset != null &&\n data.selection.anchor.path != null &&\n data.selection?.focus?.offset != null &&\n data.selection.focus.path != null\n )\n return {\n anchor: {\n offset: data.selection.anchor.offset,\n path: data.selection.anchor.path,\n },\n focus: {\n offset: data.selection.focus.offset,\n path: data.selection.focus.path,\n },\n }\n\n return null\n}\n\nexport function richTextDTOtoDAO(data: RichTextDTO): RichTextDAO {\n return (\n data.document?.nodes?.flatMap(toNodeDAO) ?? [\n { type: BlockType.Default, children: [{ text: '' }] },\n ]\n )\n}\n\nfunction toInlineOrTextDTO(node: Inline | Text): Array<InlineJSON | TextJSON> {\n if (isText(node)) {\n return [\n {\n text: node.text,\n object: 'text',\n marks: node.typography\n ? [\n {\n data: {\n value: node.typography,\n },\n type: 'typography',\n object: 'mark',\n },\n ]\n : [],\n },\n ]\n }\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n object: ObjectType.Inline,\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: node.link ?? undefined,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n object: 'inline',\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: {},\n },\n ]\n }\n}\n\nfunction toNodeDTO(node: Descendant): Array<BlockJSON | InlineJSON | TextJSON> {\n if (isText(node)) return toInlineOrTextDTO(node)\n\n switch (node.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return toInlineOrTextDTO(node)\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.Default:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return [\n {\n type: node.type,\n data: node.textAlign\n ? {\n textAlign: node.textAlign,\n }\n : {},\n object: 'block',\n nodes: node.children?.flatMap(toNodeDTO) ?? [],\n },\n ]\n default:\n return []\n }\n}\n\nexport function toSelectionDTO(selection: Selection | null): SelectionJSON | undefined {\n if (selection == null) return undefined\n\n return {\n isFocused: false,\n marks: undefined,\n object: 'selection',\n anchor: {\n offset: selection.anchor.offset,\n path: selection.anchor.path,\n object: 'point',\n },\n focus: {\n offset: selection.focus.offset,\n path: selection.focus.path,\n object: 'point',\n },\n }\n}\n\nexport function richTextDAOToDTO(children: Descendant[], selection: Selection): RichTextDTO {\n return {\n document: {\n data: undefined,\n nodes: children.flatMap(toNodeDTO),\n object: 'document',\n },\n object: 'value',\n selection: toSelectionDTO(selection),\n annotations: undefined,\n data: undefined,\n }\n}\n","import { BuilderEditMode } from '../../state/modules/builder-edit-mode'\nimport { PropController } from '../../prop-controllers/base'\nimport { BoxModel } from '../../box-model'\nimport { RichTextDTO } from './dto-types'\nimport { Editor } from 'slate'\nimport { richTextDAOToDTO } from './dto'\n\nexport type RichTextControlData = RichTextDTO\n\nexport const RichTextControlType = 'makeswift::controls::rich-text'\n\nexport type RichTextControlDefinition = {\n type: typeof RichTextControlType\n}\n\nexport const RichTextControlMessageType = {\n CHANGE_BUILDER_EDIT_MODE: 'CHANGE_BUILDER_EDIT_MODE',\n INITIALIZE_EDITOR: 'INITIALIZE_EDITOR',\n CHANGE_EDITOR_VALUE: 'CHANGE_EDITOR_VALUE',\n FOCUS: 'FOCUS',\n BLUR: 'BLUR',\n UNDO: 'UNDO',\n REDO: 'REDO',\n CHANGE_BOX_MODEL: 'CHANGE_BOX_MODEL',\n} as const\n\ntype ChangeBuilderEditModeRichTextControlMessage = {\n type: typeof RichTextControlMessageType.CHANGE_BUILDER_EDIT_MODE\n editMode: BuilderEditMode\n}\n\ntype InitializeEditorRichTextControlMessage = {\n type: typeof RichTextControlMessageType.INITIALIZE_EDITOR\n value: RichTextDTO\n}\n\ntype ChangeEditorValueRichTextControlMessage = {\n type: typeof RichTextControlMessageType.CHANGE_EDITOR_VALUE\n value: RichTextDTO\n}\n\ntype FocusRichTextControlMessage = { type: typeof RichTextControlMessageType.FOCUS }\n\ntype BlurRichTextControlMessage = { type: typeof RichTextControlMessageType.BLUR }\n\ntype UndoRichTextControlMessage = { type: typeof RichTextControlMessageType.UNDO }\n\ntype RedoRichTextControlMessage = { type: typeof RichTextControlMessageType.REDO }\n\ntype BoxModelChangeRichControlMessage = {\n type: typeof RichTextControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type RichTextControlMessage =\n | ChangeBuilderEditModeRichTextControlMessage\n | InitializeEditorRichTextControlMessage\n | ChangeEditorValueRichTextControlMessage\n | FocusRichTextControlMessage\n | BlurRichTextControlMessage\n | UndoRichTextControlMessage\n | RedoRichTextControlMessage\n | BoxModelChangeRichControlMessage\n\nexport class RichTextControl extends PropController<RichTextControlMessage> {\n private editor: Editor | null = null\n\n recv = (message: RichTextControlMessage): void => {\n if (!this.editor) return\n switch (message.type) {\n case RichTextControlMessageType.CHANGE_BUILDER_EDIT_MODE: {\n switch (message.editMode) {\n case BuilderEditMode.BUILD:\n case BuilderEditMode.INTERACT:\n this.editor.deselectAndBlur()\n }\n break\n }\n case RichTextControlMessageType.FOCUS: {\n this.editor.focusAndSelectAll()\n break\n }\n }\n }\n\n setSlateEditor(editor: Editor) {\n this.editor = editor\n\n this.send({\n type: RichTextControlMessageType.INITIALIZE_EDITOR,\n value: richTextDAOToDTO(editor.children, editor.selection),\n })\n\n const _onChange = editor.onChange\n this.editor.onChange = options => {\n _onChange(options)\n\n // if onChange is local then it will include an operation(s)\n // that is the only case in which we want to push updates\n // this prevent infinite loops that can occur when collaborating\n if (options?.operation != null) {\n this.send({\n type: RichTextControlMessageType.CHANGE_EDITOR_VALUE,\n value: richTextDAOToDTO(editor.children, editor.selection),\n })\n }\n }\n }\n\n focus() {\n this.send({ type: RichTextControlMessageType.FOCUS })\n }\n\n blur() {\n this.send({ type: RichTextControlMessageType.BLUR })\n }\n\n undo() {\n this.send({ type: RichTextControlMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextControlMessageType.REDO })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: RichTextControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n}\n","import { Editor, Element, Text } from 'slate'\nimport { ControlDefinition, ControlDefinitionData } from '../control'\nimport { RenderElementProps, RenderLeafProps } from 'slate-react'\nimport { KeyboardEvent } from 'react'\n\nexport type RichTextV2PluginControlValue<T extends ControlDefinition> =\n | ControlDefinitionData<T>\n | undefined\n\nexport type RichTextV2PluginControlDefinition<T extends ControlDefinition> = {\n definition: T\n getValue(editor: Editor): RichTextV2PluginControlValue<T>\n onChange(editor: Editor, value: RichTextV2PluginControlValue<T>): void\n getElementValue?(element: Element): any\n getLeafValue?(leaf: Text): any\n}\n\nexport type RenderElement = (props: RenderElementProps) => JSX.Element\nexport type RenderLeaf = (props: RenderLeafProps) => JSX.Element\n\nexport type RichTextV2Plugin<T extends ControlDefinition = ControlDefinition> = {\n control?: RichTextV2PluginControlDefinition<T>\n withPlugin?(editor: Editor): Editor\n onKeyDown?(event: KeyboardEvent, editor: Editor): void\n renderElement?: (\n renderElement: RenderElement,\n value: any,\n ) => (props: RenderElementProps) => JSX.Element\n renderLeaf?: (renderLeaf: RenderLeaf, value: any) => (props: RenderLeafProps) => JSX.Element\n}\n\nexport function createRichTextV2Plugin<T extends ControlDefinition>({\n control,\n withPlugin,\n onKeyDown,\n renderElement,\n renderLeaf,\n}: RichTextV2Plugin<T>) {\n return { control, withPlugin, onKeyDown, renderElement, renderLeaf }\n}\n","import { Node, Element } from 'slate'\nimport {\n RootBlock,\n BlockType,\n Block,\n Inline,\n InlineType,\n OrderedListElement,\n UnorderedListElement,\n ListItemElement,\n ListItemChildElement,\n} from '../types'\n\nexport const ElementUtils = {\n isRootBlock(node: Node): node is RootBlock {\n return (\n Element.isElement(node) &&\n (Element.isElementType(node, BlockType.Paragraph) ||\n Element.isElementType(node, BlockType.Heading1) ||\n Element.isElementType(node, BlockType.Heading2) ||\n Element.isElementType(node, BlockType.Heading3) ||\n Element.isElementType(node, BlockType.Heading3) ||\n Element.isElementType(node, BlockType.Heading4) ||\n Element.isElementType(node, BlockType.Heading5) ||\n Element.isElementType(node, BlockType.Heading6) ||\n Element.isElementType(node, BlockType.BlockQuote) ||\n Element.isElementType(node, BlockType.UnorderedList) ||\n Element.isElementType(node, BlockType.OrderedList) ||\n Element.isElementType(node, BlockType.Default))\n )\n },\n isBlock(node: Node): node is Block {\n return (\n Element.isElement(node) &&\n (this.isRootBlock(node) ||\n Element.isElementType(node, BlockType.ListItem) ||\n Element.isElementType(node, BlockType.ListItemChild))\n )\n },\n isInline(node: unknown): node is Inline {\n return (\n Element.isElement(node) &&\n (Element.isElementType(node, InlineType.Code) ||\n Element.isElementType(node, InlineType.Link) ||\n Element.isElementType(node, InlineType.SubScript) ||\n Element.isElementType(node, InlineType.SuperScript))\n )\n },\n isConvertibleToListTextNode(node: Node) {\n return !this.isList(node) && !this.isListItem(node) && !this.isListItemChild(node)\n },\n isList(node: Node): node is OrderedListElement | UnorderedListElement {\n return (\n Element.isElementType(node, BlockType.OrderedList) ||\n Element.isElementType(node, BlockType.UnorderedList)\n )\n },\n isListItem(node: Node): node is ListItemElement {\n return Element.isElementType(node, BlockType.ListItem)\n },\n isListItemChild(node: Node): node is ListItemChildElement {\n return Element.isElementType(node, BlockType.ListItemChild)\n },\n createText() {\n return { text: '' }\n },\n createParagraph() {\n return {\n children: [this.createText()],\n type: BlockType.Paragraph,\n }\n },\n createList(type: BlockType = BlockType.UnorderedList): Block {\n return { children: [this.createText()], type }\n },\n createListItem(): Block {\n return {\n children: [this.createListItemChild()],\n type: BlockType.ListItem,\n }\n },\n createListItemChild(): Block {\n return {\n children: [this.createText()],\n type: BlockType.ListItemChild,\n }\n },\n}\n","import { Node, NodeEntry } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType, LinkElement } from '../types'\n\nexport function isLinkElement(node: Node): node is LinkElement {\n return ElementUtils.isInline(node) && node.type === InlineType.Link\n}\n\nexport function isLinkEntry(inline: NodeEntry<Node>): inline is NodeEntry<LinkElement> {\n return ElementUtils.isInline(inline[0]) && inline[0].type === InlineType.Link\n}\n","import { Editor, Range, Element, Text, Path } from 'slate'\n\n/**\n * The `Editor.unhangeRange` within Slate early exits if `Path.hasPrevious(end.path)` ie if this isn't a root block.\n * Unfortunately when you `setNode(..., {split:true})` or `wrapNodes()` you also have a hanging selection, but not in the root position.\n *\n * This c/p removes the `Path.hasPrevious(end.path)` from the early exit but it the same otherwise\n */\nfunction unhangRange(editor: Editor, range: Range): Range {\n // eslint-disable-next-line prefer-const\n let [start, end] = Range.edges(range)\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range)) {\n return range\n }\n\n const endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n })\n const blockPath = endBlock ? endBlock[1] : []\n const first = Editor.start(editor, start)\n const before = { anchor: first, focus: end }\n let skip = true\n\n for (const [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n })) {\n if (skip) {\n skip = false\n continue\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = { path, offset: node.text.length }\n break\n }\n }\n\n return { anchor: start, focus: end }\n}\n\nexport default unhangRange\n","export default function is(x: unknown, y: unknown): boolean {\n if (x === y) return x !== 0 || y !== 0 || 1 / x === 1 / y\n\n return x !== x && y !== y\n}\n","import is from './is'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst shallowEqual = (a: unknown, b: unknown): boolean => {\n if (is(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n // @ts-expect-error: {}[string] is OK.\n if (!hasOwnProperty.call(b, keysA[i]) || !is(a[keysA[i]], b[keysA[i]])) return false\n }\n\n return true\n}\n\nexport default shallowEqual\n","export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import shallowEqual from './shallowEqual'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst deepEqual = (a: unknown, b: unknown): boolean => {\n if (shallowEqual(a, b)) return true\n\n if (typeof a !== 'object' || a === null || typeof b !== 'object' || b === null) return false\n\n const keysA = Object.keys(a)\n const keysB = Object.keys(b)\n\n if (keysA.length !== keysB.length) return false\n\n for (let i = 0; i < keysA.length; i += 1) {\n if (\n !hasOwnProperty.call(b, keysA[i]) ||\n // @ts-expect-error: {}[string] is OK.\n !deepEqual(a[keysA[i]], b[keysA[i]])\n )\n return false\n }\n\n return true\n}\n\nexport default deepEqual\n","import { Editor, NodeEntry, Range, Text } from 'slate'\nimport { EditableBlockKey } from './BlockPlugin/types'\nimport { ElementUtils } from './utils/element'\n\nimport unhangRange from './utils/unhangRange'\nimport shallowEqual from '../utils/shallowEqual'\nimport { isNonNullable } from '../utils/isNonNullable'\n\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../state/modules/breakpoints'\nimport deepEqual from '../utils/deepEqual'\nimport keys from '../utils/keys'\nimport {\n RootBlock,\n Inline,\n RootBlockType,\n ResponsiveBlockTextAlignment,\n BlockTextAlignment,\n RichTextTypography,\n} from './types'\n\nexport function getSelection(editor: Editor): Range {\n if (editor.selection) return unhangRange(editor, editor.selection)\n return {\n anchor: Editor.start(editor, []),\n focus: Editor.end(editor, []),\n }\n}\n\nexport function getBlocksInSelection(editor: Editor): NodeEntry<RootBlock>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isRootBlock(node),\n }),\n ).filter((entry): entry is NodeEntry<RootBlock> => ElementUtils.isRootBlock(entry[0]))\n}\n\nexport function getInlinesInSelection(editor: Editor): NodeEntry<Inline>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => ElementUtils.isInline(node),\n }),\n ).filter((entry): entry is NodeEntry<Inline> => ElementUtils.isInline(entry[0]))\n}\n\nexport function getActiveBlockType(editor: Editor): RootBlockType | null {\n const rootBlocks = getBlocksInSelection(editor).map(([node]) => node.type)\n\n return rootBlocks.reduce<RootBlockType | null>(\n (a, b) => (a === b ? b : null),\n rootBlocks.at(0) ?? null,\n )\n}\n\nexport function getActiveBlockValue(editor: Editor, key: EditableBlockKey) {\n const blocks = getBlocksInSelection(editor)\n\n const active = blocks.map(\n ([block]) => block[key] ?? null,\n ) as (ResponsiveBlockTextAlignment | null)[]\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\nexport function getActiveBlockDeviceOverrideValue(\n editor: Editor,\n key: EditableBlockKey,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n) {\n const active: (BlockTextAlignment | null)[] = []\n const blocks = getBlocksInSelection(editor)\n\n blocks.forEach(([block]) => {\n const deviceOverride =\n findBreakpointOverride<BlockTextAlignment>(breakpoints, block[key], deviceId) || null\n active.push(deviceOverride?.value ?? null)\n })\n\n return active.length === 0 ? null : active.reduce((a, b) => (shallowEqual(a, b) ? b : null))\n}\n\n// Typography\n\nconst concat = (a: unknown[], b: unknown[]) => a.concat(b)\n\n// TODO: This is more cruft from trying to remove null from the typography type. This optimization is not worth it.\n/**\n * This is a c/p of the intersection of the utils from the root utils folder.\n * The only change is defaulting to undefined instead of to null.\n */\nexport default function intersection<A extends Record<string, unknown>, B extends A>(\n a: A,\n b: B,\n isEqual: (a: unknown, b: unknown) => boolean = deepEqual,\n): { [K in keyof A]: A[K] | undefined } {\n const allKeys = [...new Set([...keys(a), ...keys(b)])] as (keyof A)[]\n\n return allKeys.reduce((acc, k) => {\n if (isEqual(a[k], b[k])) acc[k] = a[k]\n else acc[k] = undefined\n\n return acc\n }, {} as { [K in keyof A]: A[K] | undefined })\n}\n\nconst fuseTypographyMarks = (\n values: Array<RichTextTypography | null | undefined>,\n breakpoints: Breakpoints,\n): RichTextTypography => {\n const devices = [\n ...new Set(\n values\n .filter(isNonNullable)\n .map(({ style }) => style.map(({ deviceId }) => deviceId))\n .reduce(concat, []),\n ),\n ] as BreakpointId[]\n\n return {\n id: values.map(v => v && v.id).reduce((a, b) => (a === b ? a : undefined)) ?? undefined,\n style: devices.map(deviceId =>\n values\n .map(\n v =>\n (v && findBreakpointOverride(breakpoints, v.style, deviceId)) || {\n deviceId,\n value: {},\n },\n )\n .reduce((acc, { value }) => {\n const a = intersection(acc.value, value)\n return {\n deviceId,\n value: a,\n }\n }),\n ),\n }\n}\n\nexport function getActiveTypographyMark(\n editor: Editor,\n breakpoints: Breakpoints,\n): RichTextTypography {\n const active: RichTextTypography[] = []\n\n const textNodes = Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => Text.isText(node),\n })\n\n for (const [node] of textNodes) {\n if (Text.isText(node) && 'typography' in node && node.typography != undefined) {\n active.push(node.typography)\n }\n }\n return active.length === 0 ? { style: [] } : fuseTypographyMarks(active, breakpoints)\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { InlineType } from '../types'\n\nexport function unwrapInline(editor: Editor, type: InlineType) {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node) && node.type === type,\n at: getSelection(editor),\n })\n}\n","import { Editor, Transforms } from 'slate'\nimport { getSelection } from '../selectors'\nimport { Inline } from '../types'\n\nexport function wrapInline(editor: Editor, inline: Inline) {\n Transforms.wrapNodes(editor, inline, {\n at: getSelection(editor),\n split: true,\n })\n}\n","import type { Node, NodeEntry } from 'slate'\nimport { Path } from 'slate'\n\nexport function filterForSubtreeRoots(entries: NodeEntry<Node>[]): NodeEntry<Node>[] {\n return entries.filter(\n ([, nodePath]) =>\n !Path.ancestors(nodePath).some(ancestor => {\n return entries.some(([, path]) => Path.equals(path, ancestor))\n }),\n )\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LinkElement } from '../types'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkElement } from './types'\nimport deepEqual from '../../utils/deepEqual'\n\nexport function getLinksAndTextInSelection(editor: Editor): NodeEntry<LinkElement | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node => (ElementUtils.isInline(node) && isLinkElement(node)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | LinkElement>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n\n const areAllRootsLinks = roots.every(([root]) => isLinkElement(root) || Text.isText(root))\n\n if (!areAllRootsLinks) return undefined\n\n const matchingValues = roots.map(([node]) => node).filter(isLinkElement) as (\n | LinkElement\n | null\n | undefined\n )[]\n\n const match = matchingValues.reduce(\n (a, b) => (deepEqual(a?.link, b?.link) ? b : null),\n matchingValues.at(0) ?? undefined,\n )\n\n return match == null ? match : match.link\n}\n","import { Editor, Transforms } from 'slate'\nimport { LinkControlData } from '../../controls'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { InlineType } from '../types'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { isLinkEntry } from './types'\nimport { getLinksAndTextInSelection } from './getValue'\n\nexport const onChange = (editor: Editor, value: LinkControlData) => {\n if (value == null) return unwrapInline(editor, InlineType.Link)\n\n const roots = filterForSubtreeRoots(getLinksAndTextInSelection(editor))\n const root = roots.at(0)\n\n // If the root of our selection is a link we just want to modify it\n if (roots.length === 1 && root != null && isLinkEntry(root)) {\n Transforms.setNodes(\n editor,\n {\n link: value,\n },\n { at: root[1] },\n )\n }\n // In all other cases we want to remove all existing links and wrap the current selection in a new link\n else {\n unwrapInline(editor, InlineType.Link)\n wrapInline(editor, { type: InlineType.Link, link: value, children: [] })\n }\n}\n","import { Element } from 'slate'\nimport { createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\nimport { Link } from '../../controls/link'\nimport { ElementUtils } from '../utils/element'\nimport { isLinkElement } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\n\n/**\n * The default LinkPlugin uses a renderElement that references -> Link -> useElementId\n * This causes a circular dependency when referencing LinkPlugin in RichTextControl Definition.\n * So I am creating a custom plugin to work around this while circular dependency stuff is worked out.\n */\nexport function LinkPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: Link({\n label: 'On Click',\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) && isLinkElement(element) ? element.link : undefined\n },\n },\n })\n}\n","export const unstable_IconRadioGroupIcon = {\n TextAlignCenter: 'TextAlignCenter',\n TextAlignJustify: 'TextAlignJustify',\n TextAlignLeft: 'TextAlignLeft',\n TextAlignRight: 'TextAlignRight',\n Superscript: 'Superscript16',\n Subscript: 'Subscript16',\n Code: 'Code16',\n} as const\n\nexport type IconRadioGroupIcon =\n typeof unstable_IconRadioGroupIcon[keyof typeof unstable_IconRadioGroupIcon]\n\nexport const IconRadioGroupControlType = 'makeswift::controls::icon-radio-group'\n\nexport type IconRadioGroupOption<T extends string> = {\n value: T\n icon: IconRadioGroupIcon\n label: string\n}\n\ntype IconRadioGroupControlConfig<T extends string = string> = {\n label?: string\n defaultValue?: T\n options: IconRadioGroupOption<T>[]\n}\n\nexport type IconRadioGroupControlDefinition<\n C extends IconRadioGroupControlConfig = IconRadioGroupControlConfig,\n> = {\n type: typeof IconRadioGroupControlType\n config: C\n}\n\nexport type IconRadioGroupControlDefinitionOption<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = T['config'] extends IconRadioGroupControlConfig<infer U> ? U : never\n\nexport type IconRadioGroupControlData<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = IconRadioGroupControlDefinitionOption<T> | null\n\nexport function unstable_IconRadioGroup<T extends string, C extends IconRadioGroupControlConfig<T>>(\n config: C & { options: IconRadioGroupOption<T>[] },\n): IconRadioGroupControlDefinition<C> {\n return { type: IconRadioGroupControlType, config }\n}\n","import { Node, NodeEntry } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { Inline, InlineType, LinkElement } from '../types'\nimport { IconRadioGroupOption, unstable_IconRadioGroupIcon } from '../../controls/icon-radio-group'\n\nexport type SupportedInlineType = Exclude<InlineType, 'link'>\nexport type SupportedInline = Exclude<Inline, LinkElement>\n\nexport const supportedInlineOptions: IconRadioGroupOption<SupportedInlineType>[] = [\n {\n icon: unstable_IconRadioGroupIcon.Superscript,\n label: 'Superscript',\n value: 'superscript',\n },\n {\n icon: unstable_IconRadioGroupIcon.Subscript,\n label: 'Subscript',\n value: 'subscript',\n },\n {\n icon: unstable_IconRadioGroupIcon.Code,\n label: 'Code',\n value: 'code',\n },\n]\n\nexport function isSupportedInlineType(inline: InlineType): inline is SupportedInlineType {\n return supportedInlineOptions.findIndex(option => option.value === inline) !== -1\n}\n\nexport function isSupportedInlineEntry(\n entry: NodeEntry<Node>,\n): entry is NodeEntry<SupportedInline> {\n const node = entry[0]\n return (\n ElementUtils.isInline(node) &&\n supportedInlineOptions.findIndex(option => option.value === node.type) !== -1\n )\n}\n","import { Editor, NodeEntry, Text } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport { SupportedInline, isSupportedInlineType, isSupportedInlineEntry } from './types'\n\nexport function getSupportedInlinesAndTextInSelection(\n editor: Editor,\n): NodeEntry<SupportedInline | Text>[] {\n return Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: node =>\n (ElementUtils.isInline(node) && isSupportedInlineType(node.type)) || Text.isText(node),\n }),\n ) as NodeEntry<Text | SupportedInline>[]\n}\n\nexport const getValue = (editor: Editor) => {\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n\n const areAllRootsSupportedInlineTypesOrText = roots.every(\n entry => isSupportedInlineEntry(entry) || Text.isText(entry[0]),\n )\n\n if (!areAllRootsSupportedInlineTypesOrText) return undefined\n\n const matchingValues = roots.filter(isSupportedInlineEntry).map(([node]) => node) as (\n | SupportedInline\n | null\n | undefined\n )[]\n\n const match = matchingValues.reduce(\n (a, b) => (a?.type === b?.type ? b : null),\n matchingValues.at(0) ?? undefined,\n )\n\n return match == null ? match : match.type\n}\n","import { getSupportedInlinesAndTextInSelection } from './getValue'\nimport { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapInline } from '../BlockPlugin/unwrapInline'\nimport { wrapInline } from '../BlockPlugin/wrapInline'\nimport { getSelection } from '../selectors'\nimport { filterForSubtreeRoots } from '../BlockPlugin/utils/filterForSubtreeRoots'\nimport {\n SupportedInlineType,\n isSupportedInlineEntry,\n isSupportedInlineType,\n supportedInlineOptions,\n} from './types'\n\nexport const onChange = (editor: Editor, value: SupportedInlineType) => {\n function unwrapAllSupportedTypes() {\n supportedInlineOptions.forEach(({ value: optionValue }) => unwrapInline(editor, optionValue))\n }\n\n function unwrapAllInlines() {\n Transforms.unwrapNodes(editor, {\n match: node => ElementUtils.isInline(node),\n at: getSelection(editor),\n })\n }\n\n if (value == null) return unwrapAllSupportedTypes()\n\n if (!isSupportedInlineType(value)) return\n\n const roots = filterForSubtreeRoots(getSupportedInlinesAndTextInSelection(editor))\n const root = roots.at(0)\n\n if (\n roots.length === 1 &&\n root != null &&\n isSupportedInlineEntry(root) &&\n root[0].type === value\n ) {\n unwrapInline(editor, value)\n } else {\n unwrapAllInlines()\n wrapInline(editor, { type: value, children: [] })\n }\n}\n","import { Editor, Element } from 'slate'\nimport { unstable_IconRadioGroup } from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { InlineType } from '../types'\nimport { RenderElementProps } from 'slate-react'\nimport { supportedInlineOptions } from './types'\nimport { onChange } from './onChange'\nimport { getValue } from './getValue'\nimport { RenderElement, createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\n\nexport const withInline = (editor: Editor) => {\n const { isInline } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry) && isInline(entry)\n }\n\n return editor\n}\n\nexport function InlinePlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_IconRadioGroup({\n label: 'Inline',\n options: supportedInlineOptions,\n }),\n onChange,\n getValue,\n getElementValue: (element: Element) => {\n return ElementUtils.isInline(element) ? element.type : undefined\n },\n },\n withPlugin: withInline,\n renderElement: renderElement => props => {\n return <InlinePluginComponent {...props} renderElement={renderElement} />\n },\n })\n}\n\nfunction InlinePluginComponent({\n renderElement,\n ...props\n}: RenderElementProps & { renderElement: RenderElement }) {\n switch (props.element.type) {\n case InlineType.Code:\n return <code {...props.attributes}>{renderElement(props)}</code>\n case InlineType.SuperScript:\n return <sup {...props.attributes}>{renderElement(props)}</sup>\n case InlineType.SubScript:\n return <sub {...props.attributes}>{renderElement(props)}</sub>\n\n default:\n return <>{renderElement(props)}</>\n }\n}\n","import { Editor, Transforms, NodeMatch, Descendant, NodeEntry } from 'slate'\nimport { getSelection } from '../selectors'\nimport { ResponsiveValue } from '../../prop-controllers'\nimport shallowEqual from '../../utils/shallowEqual'\nimport { BlockTextAlignment } from '../types'\n\ntype SetResponsiveValueOptions<T extends Descendant> = {\n match: NodeMatch<T>\n split: boolean\n}\n\nexport function setResponsiveValue<T extends Descendant, K extends keyof T>(\n editor: Editor,\n key: K,\n value: T[K] | undefined | null,\n options: SetResponsiveValueOptions<T>,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = getSelection(editor)\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes<Descendant>(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: options.match,\n split: options.split,\n },\n )\n }\n\n if (atRef.current) {\n const nodesToUpdate = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: (node, path) => options.match(node, path) && (node as T).slice === true,\n }),\n )\n\n for (const [, path] of nodesToUpdate) {\n Transforms.setNodes(\n editor,\n {\n [key]: value,\n },\n { at: path },\n )\n }\n }\n\n atRef.unref()\n })\n}\n\ntype NormalizeResponsiveValueOptions<T extends Descendant> = {\n match: NodeMatch<T>\n}\n\nexport function normalizeResponsiveValue<T extends Descendant, K extends keyof T & string>(\n editor: Editor,\n key: K,\n options: NormalizeResponsiveValueOptions<T>,\n) {\n return (entry: NodeEntry<T>) => {\n const [node, path] = entry\n\n if (!options.match(node, path)) {\n return false\n }\n\n const responsiveValue = node?.[key]\n\n if (Array.isArray(responsiveValue) && responsiveValue.length === 0) {\n Transforms.unsetNodes(editor, key, { at: path })\n return true\n }\n\n if (node?.slice != null) {\n Transforms.unsetNodes(editor, 'slice', { at: path })\n return true\n }\n\n return false\n }\n}\n\nexport function responsiveShallowEqual<T>(\n a: ResponsiveValue<T> = [],\n b: ResponsiveValue<T> = [],\n): ResponsiveValue<T> {\n const aObject: Record<string, BlockTextAlignment> = a.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.deviceId]: curr.value,\n }),\n {},\n )\n const bObject: Record<string, BlockTextAlignment> = b.reduce(\n (acc, curr) => ({\n ...acc,\n [curr.deviceId]: curr.value,\n }),\n {},\n )\n\n const definedDevices = new Set([...a.map(a => a.deviceId), ...b.map(b => b.deviceId)])\n\n return Array.from(definedDevices).map(deviceId => {\n const aVal = aObject[deviceId]\n const bVal = bObject[deviceId]\n\n if (aVal === undefined && bVal === undefined) return { deviceId, value: undefined }\n\n return shallowEqual(aVal, bVal) ? { deviceId, value: aVal } : { deviceId, value: null }\n }) as ResponsiveValue<T>\n}\n","import { Editor } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { ResponsiveBlockTextAlignment } from '../types'\nimport { getSelection } from '../selectors'\nimport { responsiveShallowEqual } from '../utils/responsive'\n\nexport function getValue(editor: Editor): ResponsiveBlockTextAlignment | undefined {\n const matchingValues = Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: ElementUtils.isRootBlock,\n }),\n ).map(([node]) => node['textAlign']) as (ResponsiveBlockTextAlignment | undefined)[]\n\n return matchingValues.length === 0\n ? undefined\n : matchingValues.reduce((a, b) => {\n return responsiveShallowEqual(a, b)\n })\n}\n","import { Editor, Element, NodeEntry } from 'slate'\nimport {\n unstable_IconRadioGroup,\n unstable_IconRadioGroupIcon,\n unstable_StyleV2,\n} from '../../controls'\nimport { ElementUtils } from '../utils/element'\nimport { normalizeResponsiveValue, setResponsiveValue } from '../utils/responsive'\nimport { getValue } from './getValue'\nimport { RootBlock } from '../types'\nimport { createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\n\nconst TEXT_ALIGN_KEY = 'textAlign'\n\nexport const withTextAlign = (editor: Editor) => {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n if (\n normalizeResponsiveValue(editor, TEXT_ALIGN_KEY, { match: ElementUtils.isRootBlock })(\n entry as NodeEntry<RootBlock>,\n )\n ) {\n return\n }\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function TextAlignPlugin() {\n return createRichTextV2Plugin({\n control: {\n definition: unstable_StyleV2({\n type: unstable_IconRadioGroup({\n label: 'Alignment',\n options: [\n {\n icon: unstable_IconRadioGroupIcon.TextAlignLeft,\n label: 'Left Align',\n value: 'left',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignCenter,\n label: 'Center Align',\n value: 'center',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignRight,\n label: 'Right Align',\n value: 'right',\n },\n {\n icon: unstable_IconRadioGroupIcon.TextAlignJustify,\n label: 'Justify',\n value: 'justify',\n },\n ],\n defaultValue: 'left',\n }),\n getStyle(textAlign: 'left' | 'center' | 'right' | 'justify' | undefined) {\n return { textAlign }\n },\n }),\n onChange: (editor, value) =>\n setResponsiveValue(editor, TEXT_ALIGN_KEY, value, {\n match: ElementUtils.isRootBlock,\n split: false,\n }),\n getValue: editor => getValue(editor),\n getElementValue: (element: Element) => {\n return ElementUtils.isRootBlock(element) ? element.textAlign : undefined\n },\n },\n withPlugin: withTextAlign,\n renderElement: (renderElement, className) => props => {\n return renderElement({\n ...props,\n element: {\n ...props.element,\n className,\n },\n })\n },\n })\n}\n","import { Editor, Transforms, Location } from 'slate'\nimport { getBlocksInSelection } from '../selectors'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey, EditableBlockValue } from './types'\nimport { Breakpoints, BreakpointId, findBreakpointOverride } from '../../state/modules/breakpoints'\n\ntype SetBlockKeyForDeviceOptions = {\n at?: Location\n}\n\nexport function setBlockKeyForDevice(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n value: EditableBlockValue[number]['value'],\n options?: SetBlockKeyForDeviceOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceValues = node[key] ?? []\n const currentDeviceValue = findBreakpointOverride(breakpoints, deviceValues, deviceId, v => v)\n const nextDeviceValue = {\n ...currentDeviceValue,\n deviceId,\n value,\n }\n Transforms.setNodes(\n editor,\n {\n [key]: [...deviceValues.filter(v => v.deviceId !== deviceId), nextDeviceValue],\n },\n { at: path },\n )\n }\n }\n}\n","import { Editor, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { EditableBlockKey } from './types'\nimport { getBlocksInSelection } from '../selectors'\nimport { BreakpointId } from '../../state/modules/breakpoints'\n\nexport function clearBlockKeyForDevice(\n editor: Editor,\n deviceId: BreakpointId,\n key: EditableBlockKey,\n) {\n const rootElements = getBlocksInSelection(editor)\n\n for (const [node, path] of rootElements) {\n if (ElementUtils.isBlock(node)) {\n const deviceOverrides = node[key] ?? []\n Transforms.setNodes(\n editor,\n {\n [key]: deviceOverrides.filter(v => v.deviceId !== deviceId),\n },\n { at: path },\n )\n }\n }\n}\n","export const SelectControlType = 'makeswift::controls::select'\n\ntype SelectControlOption<T extends string> = { value: T; label: string }\n\ntype SelectControlConfig<T extends string = string> = {\n label?: string\n labelOrientation?: 'horizontal' | 'vertical'\n options: SelectControlOption<T>[]\n defaultValue?: T\n}\n\nexport type SelectControlDefinition<C extends SelectControlConfig = SelectControlConfig> = {\n type: typeof SelectControlType\n config: C\n}\n\nexport type SelectControlDefinitionOption<T extends SelectControlDefinition> =\n T['config'] extends SelectControlConfig<infer U> ? U : never\n\nexport type SelectControlData<T extends SelectControlDefinition = SelectControlDefinition> =\n SelectControlDefinitionOption<T> | null\n\nexport function Select<T extends string, C extends SelectControlConfig<T>>(\n config: C & { options: SelectControlOption<T>[] },\n): SelectControlDefinition<C> {\n return { type: SelectControlType, config }\n}\n","import { Path, Editor, NodeEntry } from 'slate'\n\nimport { ElementUtils } from './element'\nimport { ListElement, ListItemElement } from '../types'\n\nexport const EditorUtils = {\n getFirstAncestorList(editor: Editor, path: Path): NodeEntry<ListElement> | null {\n try {\n const parentList = Editor.above(editor, {\n at: path,\n match: (node): node is ListElement => ElementUtils.isList(node),\n })\n return parentList ?? null\n } catch (e) {\n return null\n }\n },\n getFirstAncestorListItem(editor: Editor, path: Path): NodeEntry<ListItemElement> | null {\n try {\n const parentListItem = Editor.above(editor, {\n at: path,\n match: (node): node is ListItemElement => ElementUtils.isListItem(node),\n })\n\n return parentListItem ?? null\n } catch (e) {\n return null\n }\n },\n}\n","export const LIST_ITEM_CHILD_POSITION = 0\nexport const LIST_ITEM_LIST_POSITION = 1\n","import { Editor, Element, Transforms, Path, Node, Location, Span } from 'slate'\nimport { EditorUtils } from '../utils/editor'\nimport { LIST_ITEM_CHILD_POSITION, LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\nexport function unwrapPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n //if this is a nested item we don't want to unwrap it\n if (!parentList || listItemContainingParentList) return\n\n Editor.withoutNormalizing(editor, () => {\n const listItemTextPath = [...listItemPath, LIST_ITEM_CHILD_POSITION]\n const listItemNestedListPath = [...listItemPath, LIST_ITEM_LIST_POSITION]\n\n if (Node.has(editor, listItemNestedListPath)) {\n Transforms.setNodes(editor, { type: parentList[0].type }, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: listItemNestedListPath })\n Transforms.liftNodes(editor, { at: Path.next(listItemPath) })\n }\n\n if (Node.has(editor, listItemTextPath)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.Paragraph },\n {\n at: listItemTextPath,\n },\n )\n Transforms.liftNodes(editor, { at: listItemTextPath })\n Transforms.liftNodes(editor, { at: listItemPath })\n }\n })\n}\n\ntype UnwrapListOptions = {\n at?: Location | Span\n}\n\nexport function unwrapList(editor: Editor, options?: UnwrapListOptions) {\n const at = options?.at ?? editor.selection\n if (!at) return\n\n const listItems = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isListItem(node)\n },\n }),\n )\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n unwrapPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Element, Location, Span, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\n\ntype WrapListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location | Span\n}\n\nexport function wrapList(\n editor: Editor,\n options: WrapListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (!at) return\n\n const nonListEntries = Array.from(\n Editor.nodes(editor, {\n at,\n match: node => {\n return Element.isElement(node) && ElementUtils.isConvertibleToListTextNode(node)\n },\n }),\n )\n\n const refs = nonListEntries.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n const path = ref.current\n if (path) {\n Editor.withoutNormalizing(editor, () => {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: path,\n },\n )\n Transforms.wrapNodes(editor, ElementUtils.createListItem(), {\n match: node => ElementUtils.isListItemChild(node),\n at: path,\n })\n Transforms.wrapNodes(editor, ElementUtils.createList(options.type), {\n at: path,\n })\n })\n }\n ref.unref()\n })\n}\n","import { Range, Point, Path, Location } from 'slate'\n\nexport const LocationUtils = {\n getStartPath(location: Location): Path {\n if (Range.isRange(location)) return Range.start(location).path\n if (Point.isPoint(location)) return location.path\n return location\n },\n}\n","import type { Element, NodeEntry } from 'slate'\nimport { Editor, Path } from 'slate'\nimport { EditorUtils } from '../../utils/editor'\nimport { ElementUtils } from '../../utils/element'\nimport { LocationUtils } from './location'\n\nexport function getSelectedListItems(editor: Editor): NodeEntry<Element>[] {\n if (!editor.selection) return []\n\n const start = LocationUtils.getStartPath(editor.selection)\n const listItems = Editor.nodes(editor, {\n at: editor.selection,\n match: node => ElementUtils.isListItem(node),\n })\n const firstAncestorPath = EditorUtils.getFirstAncestorListItem(editor, start)?.[1] ?? []\n\n return Array.from(listItems).filter((node): node is NodeEntry<Element> =>\n Path.isDescendant(start, node[1])\n ? Path.equals(node[1], firstAncestorPath)\n : !Path.isAfter(start, node[1]),\n )\n}\n","import { Editor, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { LIST_ITEM_LIST_POSITION } from './constants'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\n\nexport function indentPath(editor: Editor, path: Path) {\n const parent = Node.parent(editor, path)\n if (!path || !Path.hasPrevious(path) || !ElementUtils.isList(parent)) return\n\n const previosPath = Path.previous(path)\n\n const previousChildListPath = [...previosPath, LIST_ITEM_LIST_POSITION]\n const previousHasChildList = Node.has(editor, previousChildListPath)\n\n Editor.withoutNormalizing(editor, () => {\n if (!previousHasChildList) {\n Transforms.insertNodes(editor, ElementUtils.createList(parent.type), {\n at: previousChildListPath,\n })\n }\n\n const previousChildList = Node.get(editor, previousChildListPath)\n\n if (ElementUtils.isList(previousChildList)) {\n const index = previousHasChildList ? previousChildList.children.length : 0\n Transforms.moveNodes(editor, {\n at: path,\n to: [...previousChildListPath, index],\n })\n }\n })\n}\n\nexport function indent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n indentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Path, Transforms } from 'slate'\nimport { indentPath } from './indent'\nimport { getSelectedListItems } from './utils/getSelectedListItems'\nimport { filterForSubtreeRoots } from './utils/filterForSubtreeRoots'\nimport { EditorUtils } from '../utils/editor'\n\nfunction dedentPath(editor: Editor, listItemPath: Path) {\n const parentList = EditorUtils.getFirstAncestorList(editor, listItemPath)\n const listItemContainingParentList = EditorUtils.getFirstAncestorListItem(editor, listItemPath)\n if (!parentList || !listItemContainingParentList) return\n\n const [parentListNode, parentListPath] = parentList\n const [_, listItemContainingParentListPath] = listItemContainingParentList\n\n const listItemPosition = listItemPath[listItemPath.length - 1]\n const previousSiblings = parentListNode.children.slice(0, listItemPosition)\n const nextSiblings = parentListNode.children.slice(listItemPosition + 1)\n\n Editor.withoutNormalizing(editor, () => {\n // put next siblings into list item\n nextSiblings.forEach(() => {\n const nextSiblingPath = [...parentListPath, listItemPosition + 1]\n indentPath(editor, nextSiblingPath)\n })\n // move list item to parent list\n Transforms.moveNodes(editor, {\n at: listItemPath,\n to: Path.next(listItemContainingParentListPath),\n })\n // delete old parent list if there are no other list items\n if (previousSiblings.length === 0) {\n Transforms.removeNodes(editor, { at: parentListPath })\n }\n })\n}\n\nexport function dedent(editor: Editor) {\n if (!editor.selection) return\n\n const listItems = getSelectedListItems(editor)\n const subRoots = filterForSubtreeRoots(listItems)\n const refs = subRoots.map(([_, path]) => Editor.pathRef(editor, path))\n\n refs.forEach(ref => {\n if (ref.current) {\n dedentPath(editor, ref.current)\n }\n ref.unref()\n })\n}\n","import { Editor, Location, Node, Path, Transforms } from 'slate'\nimport { ElementUtils } from '../utils/element'\nimport { unwrapList } from './unwrapList'\nimport { LocationUtils } from './utils/location'\nimport { wrapList } from './wrapList'\nimport { BlockType } from '../types'\n\ntype ToggleListOptions = {\n type: typeof BlockType.UnorderedList | typeof BlockType.OrderedList\n at?: Location\n}\n\nexport function toggleList(\n editor: Editor,\n options: ToggleListOptions = { type: BlockType.UnorderedList },\n) {\n const at = options.at ?? editor.selection\n if (at == null) return\n const start = LocationUtils.getStartPath(at)\n const ancestorPath = Path.ancestors(start).at(1)\n if (!ancestorPath || !Node.has(editor, ancestorPath)) return\n const ancestor = Node.get(editor, ancestorPath)\n\n if (!ElementUtils.isList(ancestor)) {\n return wrapList(editor, { type: options.type, at })\n }\n\n if (ancestor.type === options.type) {\n unwrapList(editor, { at })\n } else {\n Transforms.setNodes(editor, { type: options.type }, { at: ancestorPath })\n }\n}\n","import React from 'react'\nimport { cache, CSSObject } from '@emotion/css'\nimport { serializeStyles } from '@emotion/serialize'\nimport { registerStyles, insertStyles } from '@emotion/utils'\n\nconst isServer = typeof window === 'undefined'\nconst useInsertionEffectSpecifier = 'useInsertionEffect'\nconst useInsertionEffect = React[useInsertionEffectSpecifier] ?? React.useLayoutEffect\n\nexport function useStyle(style: CSSObject): string {\n const serialized = serializeStyles([style], cache.registered)\n\n registerStyles(cache, serialized, false)\n\n useInsertionEffect(() => {\n insertStyles(cache, serialized, false)\n })\n\n if (isServer) insertStyles(cache, serialized, false)\n\n return `${cache.key}-${serialized.name}`\n}\n","import type { KeyboardEvent } from 'react'\nimport { Editor, Transforms, Range, Node, PathRef, Text } from 'slate'\nimport { setBlockKeyForDevice } from './setBlockKeyForDevice'\nimport { clearBlockKeyForDevice } from './clearBlockKeyForDevice'\nimport { wrapInline } from './wrapInline'\nimport { unwrapInline } from './unwrapInline'\nimport { getSelection } from '../selectors'\nimport { ElementUtils } from '../utils/element'\nimport { Select } from '../../controls/select'\nimport { getActiveBlockType } from '../selectors'\nimport { BlockType, RootBlockType } from '../types'\nimport { unwrapList } from './unwrapList'\nimport { wrapList } from './wrapList'\nimport { indent } from './indent'\nimport { dedent } from './dedent'\nimport { toggleList } from './toggleList'\nimport { EditorUtils } from '../utils/editor'\nimport isHotkey from 'is-hotkey'\nimport { LIST_ITEM_CHILD_POSITION } from './constants'\nimport { useStyle } from '../../runtimes/react/use-style'\nimport { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { RenderElement, createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\n\nexport const BlockActions = {\n setBlockKeyForDevice,\n clearBlockKeyForDevice,\n wrapInline,\n unwrapInline,\n}\n\n// TODO: This API is still litered with artifacts from the list plugin being seperated out.\n// This plugin needs to be rewritten to be assumptionless.\nexport const ListActions = {\n unwrapList,\n wrapList,\n indent,\n dedent,\n toggleList,\n}\n\nexport function onKeyDown(e: KeyboardEvent, editor: Editor) {\n if (\n !editor.selection ||\n Array.from(Editor.nodes(editor, { match: node => ElementUtils.isListItem(node) })).length === 0\n )\n return\n\n if (isHotkey('shift+tab', e)) {\n e.preventDefault()\n ListActions.dedent(editor)\n }\n\n if (isHotkey('tab', e)) {\n e.preventDefault()\n ListActions.indent(editor)\n }\n\n if (isHotkey('backspace', e)) {\n if (!editor.selection) return\n if (Range.isExpanded(editor.selection)) return\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (editor.selection.anchor.offset === 0 && listItem) {\n e.preventDefault()\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n const list = EditorUtils.getFirstAncestorList(editor, listItem[1])\n\n if (parentListItem) {\n ListActions.dedent(editor)\n } else if (list) {\n ListActions.unwrapList(editor)\n }\n return\n }\n }\n\n if (isHotkey('enter', e)) {\n e.preventDefault()\n\n if (!editor.selection) return\n\n if (Range.isExpanded(editor.selection)) {\n Transforms.delete(editor)\n return\n }\n\n const listItem = EditorUtils.getFirstAncestorListItem(editor, editor.selection.anchor.path)\n if (\n editor.selection.anchor.offset === 0 &&\n listItem &&\n Editor.string(editor, listItem[1]) === ''\n ) {\n const parentListItem = EditorUtils.getFirstAncestorListItem(editor, listItem[1])\n\n if (parentListItem) {\n ListActions.dedent(editor)\n } else {\n ListActions.unwrapList(editor)\n }\n return\n }\n\n Transforms.splitNodes(editor, {\n at: editor.selection,\n always: true,\n match: node => ElementUtils.isListItem(node),\n })\n }\n\n if (isHotkey('shift+enter', e)) {\n e.preventDefault()\n editor.insertText('\\n')\n }\n}\n\nexport function withBlock(editor: Editor) {\n const { normalizeNode } = editor\n\n editor.isInline = entry => {\n return ElementUtils.isInline(entry)\n }\n\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n // Normalization textAlign with empty array of values\n if (ElementUtils.isBlock(normalizationNode) && normalizationNode?.textAlign?.length == 0) {\n Transforms.unsetNodes(editor, 'textAlign', { at: normalizationPath })\n return\n }\n\n // Normalization for preventing non-list root blocks from being nested.\n if (\n normalizationPath.length === 1 &&\n ElementUtils.isRootBlock(normalizationNode) &&\n !ElementUtils.isList(normalizationNode)\n ) {\n const children = Array.from(Node.children(editor, normalizationPath))\n if (children.findIndex(([child]) => ElementUtils.isRootBlock(child)) !== -1) {\n Transforms.unwrapNodes(editor, { at: normalizationPath })\n return\n }\n }\n\n // Normalization for converting children of list items to list item children\n // In the case of backspace from position 0 of node into a list this converts the node into a list item.\n if (ElementUtils.isListItem(normalizationNode)) {\n const pathToListItemText = [...normalizationPath, LIST_ITEM_CHILD_POSITION]\n\n if (Node.has(editor, pathToListItemText)) {\n const nodeInListItemTextPosition = Node.get(editor, pathToListItemText)\n if (ElementUtils.isRootBlock(nodeInListItemTextPosition)) {\n Transforms.setNodes(\n editor,\n { type: BlockType.ListItemChild },\n {\n at: pathToListItemText,\n },\n )\n return\n }\n } else {\n Transforms.insertNodes(editor, ElementUtils.createListItem(), {\n at: pathToListItemText,\n })\n return\n }\n }\n\n // Normalization for merging adjacent lists of the same type\n if (!Text.isText(normalizationNode)) {\n const mergeableChildren = Array.from(Node.children(editor, normalizationPath))\n .map((child, index, children) => {\n const potentialNodeToBeMerged = children.at(index + 1)\n if (\n !potentialNodeToBeMerged ||\n !ElementUtils.isList(potentialNodeToBeMerged[0]) ||\n !ElementUtils.isList(child[0]) ||\n potentialNodeToBeMerged[0].type !== child[0].type\n ) {\n return null\n }\n return [\n Editor.pathRef(editor, child[1]),\n Editor.pathRef(editor, potentialNodeToBeMerged[1]),\n ]\n })\n .filter((mergeableNodes): mergeableNodes is PathRef[] => Boolean(mergeableNodes))\n\n if (mergeableChildren.length !== 0) {\n mergeableChildren.reverse().forEach(([nodePathRef, nodeToBeMergedPathRef]) => {\n const nodePath = nodePathRef.current\n const nodeToBeMergedPath = nodeToBeMergedPathRef.current\n if (nodePath == null || nodeToBeMergedPath == null) return\n const nodeChildren = Array.from(Node.children(editor, nodePath))\n const childrenToBeMerged = Array.from(Node.children(editor, nodeToBeMergedPath))\n Editor.withoutNormalizing(editor, () => {\n childrenToBeMerged.reverse().forEach(([_, childPath]) => {\n Transforms.moveNodes(editor, {\n at: childPath,\n to: [...nodePath, nodeChildren.length],\n })\n })\n Transforms.removeNodes(editor, { at: nodeToBeMergedPath })\n })\n nodePathRef.unref()\n nodeToBeMergedPathRef.unref()\n })\n return\n }\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nconst definition = Select({\n label: 'Block',\n labelOrientation: 'horizontal',\n options: [\n {\n value: BlockType.Paragraph,\n label: 'Paragraph',\n },\n {\n value: BlockType.Heading1,\n label: 'Heading 1',\n },\n {\n value: BlockType.Heading2,\n label: 'Heading 2',\n },\n {\n value: BlockType.Heading3,\n label: 'Heading 3',\n },\n {\n value: BlockType.Heading4,\n label: 'Heading 4',\n },\n {\n value: BlockType.Heading5,\n label: 'Heading 5',\n },\n {\n value: BlockType.Heading6,\n label: 'Heading 6',\n },\n {\n value: BlockType.UnorderedList,\n label: 'Bulleted list',\n },\n {\n value: BlockType.OrderedList,\n label: 'Numbered list',\n },\n {\n value: BlockType.BlockQuote,\n label: 'Quote',\n },\n ],\n defaultValue: BlockType.Paragraph,\n})\n\nexport function BlockPlugin() {\n return createRichTextV2Plugin({\n withPlugin: withBlock,\n onKeyDown: onKeyDown,\n control: {\n definition,\n onChange: (editor, value) => {\n // TODO: This onChange being so complex is an artifact of how the List plugin used to be seperated out from the block plugin.\n // Would be great to refactor and simplify here.\n\n const activeBlockType = getActiveBlockType(editor)\n if (value === BlockType.UnorderedList || value === BlockType.OrderedList) {\n ListActions.toggleList(editor, {\n type: value,\n at: getSelection(editor),\n })\n } else if (activeBlockType === value) {\n Transforms.setNodes(\n editor,\n {\n type: BlockType.Default,\n },\n { at: getSelection(editor) },\n )\n } else {\n ListActions.unwrapList(editor, {\n at: getSelection(editor),\n })\n Transforms.setNodes(\n editor,\n {\n type: value ?? BlockType.Default,\n },\n { at: getSelection(editor) },\n )\n }\n },\n getValue: editor => {\n const activeBlock = getActiveBlockType(editor)\n\n if (activeBlock === RootBlockType.Default) return undefined\n\n return activeBlock\n },\n },\n renderElement: renderElement => props =>\n <BlockPluginComponent {...props} renderElement={renderElement} />,\n })\n}\n\nfunction BlockPluginComponent({\n renderElement,\n ...props\n}: RenderElementProps & { renderElement: RenderElement }) {\n const blockStyles = [useStyle({ margin: 0 }), props.element.className]\n const quoteStyles = useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n })\n\n const unorderedListStyles = useStyle({\n listStylePosition: 'inside',\n paddingInlineStart: '20px',\n listStyleType: 'disc',\n ul: {\n listStyleType: 'circle',\n },\n 'ul ul': {\n listStyleType: 'square',\n },\n })\n\n const orderedListStyles = useStyle({\n listStylePosition: 'inside',\n paddingInlineStart: '20px',\n listStyleType: 'decimal',\n })\n\n switch (props.element.type) {\n case BlockType.Default:\n case BlockType.Paragraph:\n return (\n <p {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote {...props.attributes} className={cx(...blockStyles, quoteStyles)}>\n {renderElement(props)}\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol {...props.attributes} className={cx(...blockStyles, orderedListStyles)}>\n {renderElement(props)}\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul {...props.attributes} className={cx(...blockStyles, unorderedListStyles)}>\n {renderElement(props)}\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span {...props.attributes} className={cx(...blockStyles)}>\n {renderElement(props)}\n </span>\n )\n default:\n return <>{renderElement(props)}</>\n }\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype ClearActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function clearActiveTypographyStyle(\n editor: Editor,\n options?: ClearActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style: [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype ClearDeviceActiveTypographyOptions = {\n at?: Range\n}\n\nexport function clearDeviceActiveTypography(\n editor: Editor,\n currentDeviceId: string,\n options?: ClearDeviceActiveTypographyOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const typography: RichTextTypography = {\n ...node.typography,\n style:\n node?.typography?.style.filter(({ deviceId }) => deviceId !== currentDeviceId) ?? [],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { RichTextTypography } from '../types'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function detachActiveTypography(\n editor: Editor,\n value: RichTextTypography['style'],\n options?: SetActiveTypographyIdOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n Transforms.setNodes(\n editor,\n {\n typography: {\n style: value,\n },\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\n\ntype SetActiveTypographyIdOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyId(\n editor: Editor,\n id?: string,\n options?: SetActiveTypographyIdOptions,\n) {\n const at = options?.at ?? editor.selection\n if (!at) return\n Transforms.setNodes(\n editor,\n {\n typography: {\n id,\n style: [],\n },\n },\n {\n at,\n match: node => Text.isText(node),\n split: Range.isExpanded(at),\n },\n )\n}\n","import { Editor, Transforms, Text, Range } from 'slate'\nimport { Breakpoints, findBreakpointOverride, BreakpointId } from '../../state/modules/breakpoints'\nimport { RichTextTypography } from '../types'\n\ntype SetActiveTypographyStyleOptions = {\n at?: Range\n}\n\nexport function setActiveTypographyStyle(\n editor: Editor,\n breakpoints: Breakpoints,\n deviceId: string,\n prop: string,\n value?: unknown,\n options?: SetActiveTypographyStyleOptions,\n) {\n Editor.withoutNormalizing(editor, () => {\n const at = options?.at ?? editor.selection\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n\n if (atRef.current) {\n Transforms.setNodes(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: node => Text.isText(node),\n split: Range.isExpanded(atRef.current),\n },\n )\n }\n\n if (atRef.current) {\n const textNodes = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n )\n\n for (const [node, path] of textNodes) {\n if (Text.isText(node)) {\n const deviceOverrides = node?.typography?.style ?? []\n const deviceStyle = findBreakpointOverride(\n breakpoints,\n deviceOverrides,\n deviceId as BreakpointId,\n v => v,\n ) || {\n value: {},\n }\n const nextDeviceStyle = {\n deviceId,\n value: { ...deviceStyle.value, [prop]: value },\n }\n\n const nextTypography: RichTextTypography = {\n ...node.typography,\n style: [...deviceOverrides.filter(v => v.deviceId !== deviceId), nextDeviceStyle],\n }\n\n Transforms.setNodes(\n editor,\n {\n typography: nextTypography,\n },\n { at: path },\n )\n }\n }\n }\n\n atRef.unref()\n })\n}\n","import { Editor, Text } from 'slate'\nimport { RichTextTypography } from '../types'\nimport { getSelection } from '../selectors'\n\nexport function getValue(editor: Editor) {\n const matchingValues = Array.from(\n Editor.nodes(editor, {\n at: getSelection(editor),\n match: Text.isText,\n }),\n ).map(([node]) => node['typography']) as (RichTextTypography | undefined)[]\n\n return matchingValues\n}\n","import { Editor, Element, NodeEntry, Transforms } from 'slate'\nimport { MakeswiftEditor, RichTextTypography } from '../types'\nimport shallowMerge from '../../utils/shallowMerge'\nimport { TYPOGRAPHY_KEY } from '.'\n\nexport function shallowMergeTypographies(\n commonTypography?: RichTextTypography,\n typography?: RichTextTypography,\n) {\n const devices = [\n ...new Set(\n commonTypography?.style\n .map(node => node.deviceId)\n .concat(typography?.style.map(node => node.deviceId) ?? []),\n ),\n ]\n\n return {\n id: commonTypography?.id ?? typography?.id,\n style: devices.map(deviceId => {\n const commonDevice = commonTypography?.style.find(s => s.deviceId === deviceId)\n const existingDeviceStyle = typography?.style.find(s => s.deviceId === deviceId)\n\n return {\n deviceId,\n value: shallowMerge(existingDeviceStyle?.value ?? {}, commonDevice?.value ?? {}),\n }\n }),\n }\n}\n\nexport function normalizeTypographyDown(editor: MakeswiftEditor, entry: NodeEntry): boolean {\n const [normalizationNode, normalizationPath] = entry\n\n if (\n Element.isElement(normalizationNode) &&\n normalizationNode.typography != null &&\n normalizationNode.children.length\n ) {\n Editor.withoutNormalizing(editor, () => {\n Transforms.unsetNodes(editor, TYPOGRAPHY_KEY, { at: normalizationPath })\n for (let i = 0; i < normalizationNode.children.length; i++) {\n const resultingTypography = shallowMergeTypographies(\n normalizationNode.typography,\n normalizationNode.children.at(i)?.typography,\n )\n Transforms.setNodes(\n editor,\n { typography: resultingTypography },\n { at: [...normalizationPath, i] },\n )\n }\n })\n return true\n }\n\n return false\n}\n","import { MakeswiftEditor } from '../types'\nimport { Editor, Element, NodeEntry, Transforms, Node, Text } from 'slate'\nimport { RichTextTypography } from '../types'\nimport keys from '../../utils/keys'\nimport deepEqual from '../../utils/deepEqual'\nimport { shallowMergeTypographies } from './normalizeTypographyDown'\n\nfunction shallowAnd<A extends Record<string, unknown>, B extends Record<string, unknown>>(\n a: A,\n b: B,\n): A & B {\n const bKeys = keys(b)\n const aPrime = { ...a } as A & B\n const and = {} as A & B\n\n bKeys.forEach(key => {\n if (deepEqual(aPrime[key], b[key])) and[key] = aPrime[key]\n })\n\n return and\n}\n\nfunction shallowAndTypographies(...typographies: RichTextTypography[]): RichTextTypography {\n return {\n id: typographies.every(typography => typography?.id === typographies.at(0)?.id)\n ? typographies.at(0)?.id\n : undefined,\n style: [\n ...new Set(\n typographies.flatMap(typography => typography?.style.map(node => node.deviceId) ?? []),\n ),\n ].flatMap(deviceId => {\n const stylesForThisDevice = typographies\n .map(typography => typography.style.find(s => s.deviceId === deviceId)?.value)\n .filter((typography): typography is RichTextTypography['style'][number]['value'] =>\n Boolean(typography),\n )\n\n if (typographies.length !== stylesForThisDevice.length) return []\n\n const value = stylesForThisDevice.reduce((acc, curr) => {\n return shallowAnd(acc, curr)\n }, stylesForThisDevice.at(0) as RichTextTypography['style'][number]['value'])\n\n if (value == null || Object.keys(value).length === 0) {\n return []\n }\n\n return [\n {\n deviceId,\n value,\n },\n ]\n }),\n }\n}\n\nfunction shallowInverseAnd<A extends Record<string, unknown>, B extends Record<string, unknown>>(\n a: A,\n b: B,\n): A & B {\n const bKeys = Array.from(new Set([...keys(b), ...keys(a)]))\n const aPrime = { ...a } as A & B\n const bPrime = { ...b } as A & B\n const xor = {} as A & B\n\n bKeys.forEach(key => {\n if ((aPrime[key] == null && bPrime[key] == null) || !deepEqual(aPrime[key], bPrime[key as any]))\n xor[key] = aPrime[key]\n })\n\n return xor\n}\n\nfunction shallowInverseAndTypographies(\n a: RichTextTypography,\n b: RichTextTypography,\n): RichTextTypography {\n const typography = { style: [] } as RichTextTypography\n if (a?.id !== b.id) {\n typography.id = a?.id\n }\n\n if (a && a.style.length > 0) {\n const styles: RichTextTypography['style'] = []\n for (const style of a.style) {\n const bDeviceTypography = b.style.find(s => s.deviceId === style.deviceId)\n if (bDeviceTypography == null) {\n styles.push(style)\n } else {\n const uniquePropertiesOfA = shallowInverseAnd(style.value, bDeviceTypography.value)\n\n if (Object.keys(uniquePropertiesOfA).length > 0) {\n styles.push({\n deviceId: style.deviceId,\n value: uniquePropertiesOfA,\n })\n }\n }\n }\n typography.style = styles\n }\n\n return typography\n}\n\n/**\n * If a text is empty then don't include it in our comparison.\n */\nfunction isException(node: Node): boolean {\n return Text.isText(node) && node.text === ''\n}\n\nexport function normalizeTypographyUp(editor: MakeswiftEditor, entry: NodeEntry): boolean {\n const [node, path] = entry\n if (Element.isElement(node) && node.children.length) {\n const typographiesOfChildren = node.children\n .filter(child => !isException(child))\n .map(child => child.typography)\n\n const definedTypographiesOfChildren = typographiesOfChildren.filter(\n (typography): typography is RichTextTypography => Boolean(typography),\n )\n if (typographiesOfChildren.length === definedTypographiesOfChildren.length) {\n let sharedTypography: RichTextTypography = shallowAndTypographies(\n ...definedTypographiesOfChildren,\n )\n\n if (sharedTypography.style.length > 0 || sharedTypography.id != null) {\n const rootTypography: RichTextTypography = shallowMergeTypographies(\n sharedTypography,\n node.typography,\n )\n Editor.withoutNormalizing(editor, () => {\n Transforms.setNodes(editor, { typography: rootTypography }, { at: path })\n for (let i = 0; i < node.children.length; i++) {\n const typography: RichTextTypography = shallowInverseAndTypographies(\n node.children.at(i)?.typography ?? { style: [] },\n sharedTypography,\n )\n\n Transforms.setNodes(editor, { typography }, { at: [...path, i] })\n }\n })\n return true\n }\n }\n }\n return false\n}\n","import { NodeEntry, Descendant, Transforms, Text, Node } from 'slate'\nimport { MakeswiftEditor } from '../types'\nimport deepEqual from '../../utils/deepEqual'\n\nfunction isTextEqual(a: Text, b: Text): boolean {\n const { text: aText, ...aRest } = a\n const { text: bText, ...bRest } = b\n\n return deepEqual(aRest, bRest)\n}\n\n/**\n * This normalization is necessary because while slate appears to use deepEqual,\n * it actually only supports a subset of deepEqual's functionality.\n * It doesn't support comparing arrays of objects.\n * This function is a copy of slate implemntation with the usage of our own deepEqual.\n */\nexport function normalizeSimilarText(editor: MakeswiftEditor, entry: NodeEntry): boolean {\n const [node, path] = entry\n\n if (Text.isText(node)) return false\n\n // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n let hasMergedNodes = false\n for (let i = node.children.length; i > 0; i--) {\n const currentNode = Node.get(editor, path)\n if (Text.isText(currentNode)) continue\n const child = currentNode.children[i] as Descendant\n const prev = currentNode.children[i - 1] as Descendant\n\n // Merge adjacent text nodes match.\n if (Text.isText(child) && prev != null && Text.isText(prev) && isTextEqual(child, prev)) {\n Transforms.mergeNodes(editor, { at: path.concat(i), voids: true })\n hasMergedNodes = true\n }\n }\n return hasMergedNodes\n}\n","import { BaseEditor, Descendant, Editor, NodeEntry, Text, Transforms } from 'slate'\nimport { clearActiveTypographyStyle } from './clearActiveTypographyStyle'\nimport { clearDeviceActiveTypography } from './clearDeviceActiveTypography'\nimport { detachActiveTypography } from './detachActiveTypography'\nimport { setActiveTypographyId } from './setActiveTypographyId'\nimport { setActiveTypographyStyle } from './setActiveTypographyStyle'\nimport { unstable_Typography } from '../../controls'\nimport { getValue } from './getValue'\nimport { getSelection } from '../selectors'\nimport { createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\nimport { normalizeTypographyUp } from './normalizeTypographyUp'\nimport { normalizeTypographyDown } from './normalizeTypographyDown'\nimport { normalizeSimilarText } from './normalizeSimilarText'\n\nexport const TypographyActions = {\n setActiveTypographyId,\n setActiveTypographyStyle,\n clearActiveTypographyStyle,\n clearDeviceActiveTypography,\n detachActiveTypography,\n}\n\nexport const TYPOGRAPHY_KEY = 'typography'\n\nexport interface TypographyEditor extends BaseEditor {\n typographyNormalizationDirection?: 'up' | 'neutral' | 'down'\n}\n\nexport function withTypography(editor: Editor) {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n if (\n 'typography' in normalizationNode &&\n normalizationNode?.typography?.id == null &&\n normalizationNode?.typography?.style.length === 0\n ) {\n Transforms.unsetNodes(editor, TYPOGRAPHY_KEY, { at: normalizationPath })\n return\n }\n\n if ('slice' in normalizationNode && normalizationNode?.slice != null) {\n Transforms.unsetNodes(editor, 'slice', { at: normalizationPath })\n return\n }\n\n if (normalizeSimilarText(editor, entry)) return\n\n if (editor.typographyNormalizationDirection === 'up' && normalizeTypographyUp(editor, entry))\n return\n\n if (\n (editor.typographyNormalizationDirection === 'down' ||\n editor.typographyNormalizationDirection == null) &&\n normalizeTypographyDown(editor, entry)\n )\n return\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function TypographyPlugin() {\n return createRichTextV2Plugin({\n withPlugin: withTypography,\n control: {\n definition: unstable_Typography(),\n onChange: (editor, value) => {\n Editor.withoutNormalizing(editor, () => {\n const at = getSelection(editor)\n if (!at) return\n const atRef = Editor.rangeRef(editor, at)\n if (atRef.current) {\n Transforms.setNodes<Descendant>(\n editor,\n {\n slice: true,\n },\n {\n at: atRef.current,\n match: Text.isText,\n split: true,\n },\n )\n }\n\n if (atRef.current) {\n const nodesToUpdate = Array.from(\n Editor.nodes(editor, {\n at: atRef.current,\n match: node => Text.isText(node) && node.slice === true,\n }),\n ) as NodeEntry<Text>[]\n\n if (nodesToUpdate.length !== value?.length)\n return console.error(\n `TypographyControl.onChange received the wrong number of arguments.\nCalled with ${value?.length} values mapping to ${nodesToUpdate.length} nodes.`,\n )\n\n for (const [index, [, path]] of nodesToUpdate.entries()) {\n Transforms.setNodes(\n editor,\n {\n typography: value?.at(index),\n },\n { at: path, match: Text.isText },\n )\n }\n }\n\n atRef.unref()\n })\n },\n getValue: editor => getValue(editor),\n getLeafValue: (text: Text) => {\n return Text.isText(text) ? text.typography : undefined\n },\n },\n renderLeaf: (renderLeaf, className) => props => {\n return renderLeaf({\n ...props,\n leaf: {\n ...props.leaf,\n className: `${props.leaf.className} ${className}`,\n },\n })\n },\n })\n}\n","import { Editor, Path, Text, Transforms } from 'slate'\nimport { KeyboardEvent } from 'react'\nimport isHotkey from 'is-hotkey'\nimport { RenderElement, createRichTextV2Plugin } from '../../controls/rich-text-v2/plugin'\nimport { ElementUtils } from '../utils/element'\nimport { BlockType } from '../types'\nimport { RenderElementProps } from 'slate-react'\n\nconst BLOCK_ONE_PATH = [0]\nconst BLOCK_TWO_PATH = [1]\n\nexport function withInlineMode(editor: Editor): Editor {\n const { normalizeNode } = editor\n editor.normalizeNode = entry => {\n const [normalizationNode, normalizationPath] = entry\n\n /**\n * Merge root nodes past the first one\n */\n if (Path.equals(BLOCK_TWO_PATH, normalizationPath)) {\n Transforms.mergeNodes(editor, { at: BLOCK_TWO_PATH })\n return\n }\n /**\n * Unwrap non text nodes of first root node\n */\n if (\n Path.isAncestor(BLOCK_ONE_PATH, normalizationPath) &&\n ElementUtils.isBlock(normalizationNode)\n ) {\n Transforms.unwrapNodes(editor, {\n at: normalizationPath,\n })\n return\n }\n /**\n * Update type of root nodes to be `text-block`\n */\n if (Path.equals(BLOCK_ONE_PATH, normalizationPath)) {\n Transforms.setNodes(editor, { type: BlockType.Default }, { at: normalizationPath })\n return\n }\n\n normalizeNode(entry)\n }\n\n return editor\n}\n\nexport function InlineModePlugin() {\n return createRichTextV2Plugin({\n onKeyDown: (e: KeyboardEvent) => {\n if (isHotkey('enter', e)) e.preventDefault()\n },\n withPlugin: withInlineMode,\n renderElement: renderElement => props =>\n <InlineModePluginComponent {...props} renderElement={renderElement} />,\n })\n}\n\nconst minWidth = `${'Write some text...'.length}ch`\n\nfunction InlineModePluginComponent({\n renderElement,\n ...props\n}: RenderElementProps & { renderElement: RenderElement }) {\n if (props.element.children.length === 1) {\n const text = props.element.children[0]\n\n if (Text.isText(text) && text.text === '') {\n return (\n <span style={{ display: 'inline-block', minWidth }} {...props.attributes}>\n {renderElement(props)}\n </span>\n )\n }\n }\n\n return (\n <span style={{ minWidth }} {...props.attributes}>\n {renderElement(props)}\n </span>\n )\n}\n","// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport { PropController } from '../../prop-controllers/base'\nimport { Descendant, Editor } from 'slate'\nimport { BoxModel } from '../../box-model'\nimport { Send } from '../../prop-controllers/instances'\nimport { ControlDefinition } from '../control'\nimport { RichTextControlData } from '../rich-text/rich-text'\nimport { richTextV2DescendentsToData } from './dto'\nimport { LinkPlugin } from '../../slate/LinkPlugin/linkPluginWithoutRenderElement'\nimport { InlinePlugin } from '../../slate/InlinePlugin'\nimport { TextAlignPlugin } from '../../slate/TextAlignPlugin'\nimport { BlockPlugin } from '../../slate/BlockPlugin'\nimport { TypographyPlugin } from '../../slate/TypographyPlugin'\nimport { InlineModePlugin } from '../../slate/InlineModePlugin'\nimport { RichTextV2Plugin, RichTextV2PluginControlValue } from './plugin'\n\nexport const RichTextV2ControlType = 'makeswift::controls::rich-text-v2'\n\nexport type RichTextV2ControlData = {\n version: 2\n type: typeof RichTextV2ControlType\n descendants: Descendant[]\n key: string\n}\n\nexport const RichTextV2Mode = {\n Inline: 'makeswift::controls::rich-text-v2::mode::inline',\n Block: 'makeswift::controls::rich-text-v2::mode::block',\n} as const\n\nexport type RichTextV2Mode = typeof RichTextV2Mode[keyof typeof RichTextV2Mode]\n\nexport type RichTextMode = RichTextV2Mode\n\nexport type RichTextV2Config = {\n mode?: RichTextV2Mode\n plugins?: RichTextV2Plugin[]\n defaultValue?: string\n}\n\ntype ExternalRichTextV2Config = Omit<RichTextV2Config, 'plugins'>\n\nexport type RichTextV2ControlDefinition<T extends RichTextV2Config = RichTextV2Config> = {\n type: typeof RichTextV2ControlType\n config: T\n}\n\nexport function RichText<T extends ExternalRichTextV2Config>(\n config: T = {} as T,\n): RichTextV2ControlDefinition {\n return {\n type: RichTextV2ControlType,\n config: {\n mode: config.mode,\n defaultValue:\n config.defaultValue ??\n (config?.mode === RichTextV2Mode.Inline ? 'Edit this text' : ipsum(3)),\n plugins:\n config?.mode === RichTextV2Mode.Inline\n ? [InlineModePlugin()]\n : // Note: this plugin references a `renderElement`-less LinkPlugin to prevent a circular dependency\n [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin(), LinkPlugin()],\n },\n }\n}\n\nRichText.Mode = RichTextV2Mode\n\nexport const RichTextV2ControlMessageType = {\n // COSMOS -> HOST\n RESET_VALUE: 'makeswift::controls::rich-text-v2::control-message::reset-value',\n FOCUS: 'makeswift::controls::rich-text-v2::control-message::focus',\n RUN_PLUGIN_CONTROL_ACTION:\n 'makeswift::controls::rich-text-v2::control-message::run-plugin-control-action',\n\n // HOST -> COSMOS\n SET_DEFAULT_VALUE: 'makeswift::controls::rich-text-v2::control-message::set-default-value',\n SET_PLUGIN_CONTROL_VALUE:\n 'makeswift::controls::rich-text-v2::control-message::set-plugin-control-value',\n ON_CHANGE: 'makeswift::controls::rich-text-v2::control-message::on-change',\n SELECT: 'makeswift::controls::rich-text-v2::control-message::select',\n SWITCH_TO_BUILD_MODE: 'makeswift::controls::rich-text-v2::control-message::switch-to-build-mode',\n CHANGE_BOX_MODEL: 'makeswift::controls::rich-text-v2::control-message::change-box-model',\n\n REDO: 'makeswift::controls::rich-text-v2::control-message::redo',\n UNDO: 'makeswift::controls::rich-text-v2::control-message::undo',\n} as const\n\ntype OnChangeRichTextControlMessage = {\n type: typeof RichTextV2ControlMessageType.ON_CHANGE\n value: RichTextV2ControlData\n}\n\ntype SetDefaultValueRichTextControlMessage = {\n type: typeof RichTextV2ControlMessageType.SET_DEFAULT_VALUE\n value: Descendant[]\n}\n\ntype SetPluginControlValueRichTextControlMessage = {\n type: typeof RichTextV2ControlMessageType.SET_PLUGIN_CONTROL_VALUE\n value: RichTextV2PluginControlValue<ControlDefinition>[]\n}\n\ntype ResetValueRichTextControlMessage = { type: typeof RichTextV2ControlMessageType.RESET_VALUE }\n\ntype SelectRichTextControlMessage = { type: typeof RichTextV2ControlMessageType.SELECT }\n\ntype RunPluginControlActionRichTextControlMessage = {\n type: typeof RichTextV2ControlMessageType.RUN_PLUGIN_CONTROL_ACTION\n pluginIndex: number\n value: RichTextV2PluginControlValue<ControlDefinition>\n}\n\ntype FocusRichTextControlMessage = { type: typeof RichTextV2ControlMessageType.FOCUS }\n\ntype SwitchToBuildModeRichTextControlMessage = {\n type: typeof RichTextV2ControlMessageType.SWITCH_TO_BUILD_MODE\n}\n\ntype BoxModelChangeRichControlMessage = {\n type: typeof RichTextV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\ntype UndoRichTextControlMessage = { type: typeof RichTextV2ControlMessageType.UNDO }\n\ntype RedoRichTextControlMessage = { type: typeof RichTextV2ControlMessageType.REDO }\n\nexport type RichTextV2ControlMessage =\n | OnChangeRichTextControlMessage\n | SetDefaultValueRichTextControlMessage\n | SetPluginControlValueRichTextControlMessage\n | ResetValueRichTextControlMessage\n | FocusRichTextControlMessage\n | RunPluginControlActionRichTextControlMessage\n | SelectRichTextControlMessage\n | SwitchToBuildModeRichTextControlMessage\n | BoxModelChangeRichControlMessage\n | UndoRichTextControlMessage\n | RedoRichTextControlMessage\n\nexport class RichTextV2Control<\n T extends RichTextV2ControlDefinition = RichTextV2ControlDefinition,\n> extends PropController<RichTextV2ControlMessage> {\n private editor: Editor | null = null\n private defaultValue: Descendant[] | null = null\n descriptor: RichTextV2ControlDefinition\n\n constructor(send: Send<RichTextV2ControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n }\n\n recv = (message: RichTextV2ControlMessage): void => {\n if (!this.editor) return\n switch (message.type) {\n case RichTextV2ControlMessageType.FOCUS: {\n this.editor.focusAndSelectAll()\n break\n }\n case RichTextV2ControlMessageType.RESET_VALUE: {\n if (this.defaultValue) {\n this.editor.resetValue(this.defaultValue)\n setTimeout(() => {\n this.onLocalUserChange()\n })\n }\n break\n }\n case RichTextV2ControlMessageType.RUN_PLUGIN_CONTROL_ACTION: {\n this.descriptor.config.plugins\n ?.at(message.pluginIndex)\n ?.control?.onChange(this.editor, message.value)\n break\n }\n }\n }\n\n setEditor(editor: Editor) {\n this.editor = editor\n this.send({\n type: RichTextV2ControlMessageType.SET_PLUGIN_CONTROL_VALUE,\n value:\n this.descriptor.config?.plugins?.map(plugin => plugin?.control?.getValue(editor)) ?? [],\n })\n\n const _onChange = editor.onChange\n this.editor.onChange = options => {\n _onChange(options)\n this.updatePluginValues()\n if (this.editor == null || options?.operation == null) return\n this.onLocalUserChange()\n }\n }\n\n setDefaultValue(defaultValue: Descendant[]) {\n this.defaultValue = defaultValue\n this.send({\n type: RichTextV2ControlMessageType.SET_DEFAULT_VALUE,\n value: defaultValue,\n })\n }\n\n onLocalUserChange() {\n if (this.editor == null) return\n this.send({\n type: RichTextV2ControlMessageType.ON_CHANGE,\n value: richTextV2DescendentsToData(this.editor.children, this.editor.currentKey),\n })\n }\n\n updatePluginValues() {\n const editor = this.editor\n if (editor == null) return\n this.send({\n type: RichTextV2ControlMessageType.SET_PLUGIN_CONTROL_VALUE,\n value:\n this.descriptor.config?.plugins?.map(plugin => plugin?.control?.getValue(editor)) ?? [],\n })\n }\n\n select() {\n this.send({ type: RichTextV2ControlMessageType.SELECT })\n }\n\n switchToBuildMode() {\n this.send({ type: RichTextV2ControlMessageType.SWITCH_TO_BUILD_MODE })\n }\n\n undo() {\n this.send({ type: RichTextV2ControlMessageType.UNDO })\n }\n\n redo() {\n this.send({ type: RichTextV2ControlMessageType.REDO })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: RichTextV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n}\n\nexport function isRichTextV1Data(\n value: RichTextControlData | RichTextV2ControlData | undefined,\n): value is RichTextControlData {\n return (\n value !== undefined && typeof value === 'object' && !Array.isArray(value) && 'document' in value\n )\n}\n","import { Descendant } from 'slate'\nimport { RichTextV2ControlData, RichTextV2ControlType } from './rich-text-v2'\nimport { v4 as uuid } from 'uuid'\nimport { BlockType } from '../../slate/types'\n\nexport function richTextV2DataToDescendents(data: RichTextV2ControlData): Descendant[] {\n return data.descendants.length === 0\n ? [{ type: BlockType.Default, children: [{ text: '' }] }]\n : data.descendants\n}\n\nexport function richTextV2DescendentsToData(\n descendants: Descendant[],\n key?: string,\n): RichTextV2ControlData {\n return {\n type: RichTextV2ControlType,\n version: 2,\n descendants,\n key: key ?? uuid(),\n }\n}\n","import { Descendant, Element, Text } from 'slate'\nimport { Inline } from '../../slate'\nimport { ElementUtils } from '../../slate/utils/element'\nimport { CopyContext } from '../../state/react-page'\nimport { RichTextV2ControlData } from './rich-text-v2'\nimport { richTextV2DescendentsToData } from './dto'\n\nexport function copyRichTextV2Data(\n data: RichTextV2ControlData | undefined,\n context: CopyContext,\n): RichTextV2ControlData | undefined {\n if (data == null) return data\n\n return richTextV2DescendentsToData(data.descendants?.flatMap(d => copyNode(d)))\n\n function copyNode(descendant: Descendant): Descendant {\n if (Element.isElement(descendant) && ElementUtils.isInline(descendant)) {\n return copyLinkData(descendant)\n }\n\n if (Text.isText(descendant)) {\n return copyTypographyData(descendant)\n }\n\n return { ...descendant, children: descendant.children.map(copyNode) }\n }\n\n function copyLinkData(descendant: Inline): Inline {\n if (descendant.type !== 'link') {\n return { ...descendant, children: descendant.children.map(copyNode) as (Inline | Text)[] }\n }\n\n if (descendant.link == null) return descendant\n\n switch (descendant.link.type) {\n case 'OPEN_PAGE': {\n const pageId = descendant.link.payload.pageId\n\n if (pageId == null) return descendant\n\n return {\n ...descendant,\n link: {\n ...descendant.link,\n payload: {\n ...descendant.link.payload,\n pageId:\n context.replacementContext.pageIds.get(pageId) ?? descendant.link.payload.pageId,\n },\n },\n children: descendant.children.map(copyNode) as (Inline | Text)[],\n }\n }\n\n case 'SCROLL_TO_ELEMENT': {\n const elementIdConfig = descendant.link.payload.elementIdConfig\n\n if (elementIdConfig == null) return descendant\n\n return {\n ...descendant,\n link: {\n ...descendant.link,\n payload: {\n ...descendant.link.payload,\n elementIdConfig: {\n ...elementIdConfig,\n elementKey:\n context.replacementContext.elementKeys.get(elementIdConfig.elementKey) ??\n elementIdConfig.elementKey,\n },\n },\n },\n children: descendant.children.map(copyNode) as (Inline | Text)[],\n }\n }\n\n default:\n return descendant\n }\n }\n\n function copyTypographyData(descendant: Text): Text {\n return {\n ...descendant,\n\n ...(descendant.typography == null\n ? {}\n : {\n typography: {\n id:\n context.replacementContext.typographyIds.get(descendant.typography?.id ?? '') ??\n descendant.typography?.id,\n style: descendant.typography?.style.map(override => ({\n ...override,\n value: {\n ...override.value,\n ...(override.value.color == null\n ? {}\n : {\n color: {\n ...override.value.color,\n swatchId:\n context.replacementContext.swatchIds.get(\n override.value.color?.swatchId ?? '',\n ) ?? override.value.color?.swatchId,\n },\n }),\n },\n })),\n },\n }),\n }\n }\n}\n","import escapeHtml from 'escape-html'\nimport { BlockType, InlineType } from '../../slate/types'\nimport { Descendant, Editor, Element, Node, Text, Transforms, createEditor } from 'slate'\nimport { jsx } from 'slate-hyperscript'\nimport { parseFragment } from 'parse5'\nimport { ChildNode, DocumentFragment } from 'parse5/dist/tree-adapters/default'\n\nimport { RichTextV2ControlData, RichTextV2ControlDefinition, RichTextV2Mode } from './rich-text-v2'\nimport { RichTextV2Plugin } from './plugin'\nimport { InlineModePlugin } from '../../slate/InlineModePlugin'\nimport { BlockPlugin } from '../../slate/BlockPlugin'\nimport { TypographyPlugin } from '../../slate/TypographyPlugin'\nimport { TextAlignPlugin } from '../../slate/TextAlignPlugin'\nimport { InlinePlugin } from '../../slate/InlinePlugin'\nimport { MakeswiftEditor } from '../../slate/types'\nimport { ElementUtils } from '../../slate/utils/element'\nimport { TranslationDto } from '../../state/react-page'\n\nfunction pathToString(path: number[]): string {\n return path.join(':')\n}\n\nfunction stringToPath(s: string): number[] {\n return s.split(':').map(a => parseInt(a))\n}\n\nfunction getDescendantTranslatableData(descendant: Descendant, path: number[]): TranslationDto {\n if (Text.isText(descendant)) {\n return {}\n }\n\n switch (descendant.type) {\n case BlockType.UnorderedList:\n case BlockType.OrderedList:\n case BlockType.ListItem:\n return descendant.children.reduce(\n (acc, d, j) => ({ ...acc, ...getDescendantTranslatableData(d, [...path, j]) }),\n {},\n )\n\n default:\n const text = getInlineOrTextTranslatableData(descendant)\n\n if (text == null) return {}\n\n return { [pathToString(path)]: text }\n }\n}\n\nfunction getInlineOrTextTranslatableData(\n descendant: Descendant,\n path: number[] = [],\n): string | null {\n if (Text.isText(descendant)) {\n let string = escapeHtml(descendant.text)\n\n if (string === '') return null\n\n if (descendant.typography === undefined) return string\n\n return `<span key=\"${pathToString(path)}\">${string}</span>`\n }\n\n const children = descendant.children\n .map((child: Descendant, i: number) => getInlineOrTextTranslatableData(child, [...path, i]))\n .join('')\n\n if (children === '') return null\n\n switch (descendant.type) {\n case InlineType.Link:\n return `<a key=\"${pathToString(path)}\">${children}</a>`\n case InlineType.SuperScript:\n return `<sup key=\"${pathToString(path)}\">${children}</sup>`\n case InlineType.SubScript:\n return `<sub key=\"${pathToString(path)}\">${children}</sub>`\n case InlineType.Code:\n return `<code key=\"${pathToString(path)}\">${children}</code>`\n default:\n return children\n }\n}\n\nexport function getRichTextV2TranslatableData(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n): Record<string, string> {\n const plugins: RichTextV2Plugin[] =\n definition?.config?.mode === RichTextV2Mode.Inline\n ? [InlineModePlugin()]\n : [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin()]\n\n const editor: MakeswiftEditor = plugins.reduceRight(\n (editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,\n createEditor(),\n )\n\n editor.children = data.descendants\n editor.typographyNormalizationDirection = 'up'\n Editor.normalize(editor, { force: true })\n\n return editor.children.reduce(\n (acc, descendant: Descendant, i) => ({\n ...acc,\n ...getDescendantTranslatableData(descendant, [i]),\n }),\n {},\n )\n}\n\nfunction deserializeTranslationHtmlString(\n el: ChildNode | DocumentFragment,\n translationKey?: string,\n): Descendant[] {\n if (el.nodeName === '#document-fragment') {\n const children = Array.from(el.childNodes)\n .map(element => deserializeTranslationHtmlString(element))\n .flat()\n\n if (children.length === 0) {\n children.push(jsx('text', {}, ''))\n }\n\n return children\n } else if (el.nodeName === '#text' && 'value' in el) {\n return [jsx('text', { translationKey: translationKey ?? undefined }, el.value)]\n } else if ('namespaceURI' in el) {\n const translationKey = el.attrs.find(a => a.name === 'key')?.value ?? undefined\n const children = Array.from(el.childNodes)\n .map(element => deserializeTranslationHtmlString(element, translationKey))\n .flat()\n\n if (children.length === 0) {\n children.push(jsx('text', {}, ''))\n }\n\n switch (el.nodeName) {\n case 'code':\n return [jsx('element', { type: InlineType.Code, translationKey }, children)]\n case 'sub':\n return [jsx('element', { type: InlineType.SubScript, translationKey }, children)]\n case 'sup':\n return [jsx('element', { type: InlineType.SuperScript, translationKey }, children)]\n case 'a':\n return [jsx('element', { type: InlineType.Link, translationKey }, children)]\n default:\n return children\n }\n }\n return []\n}\n\nexport type RichTextV2ControlTranslationDto = Record<string, string>\n\nexport function mergeRichTextV2TranslatedData(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n translatedData: RichTextV2ControlTranslationDto,\n): RichTextV2ControlData {\n const plugins: RichTextV2Plugin[] =\n definition?.config?.mode === RichTextV2Mode.Inline\n ? [InlineModePlugin()]\n : [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin()]\n\n const sourceEditor: MakeswiftEditor = plugins.reduceRight(\n (editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,\n createEditor(),\n )\n\n const targetEditor: MakeswiftEditor = plugins.reduceRight(\n (editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,\n createEditor(),\n )\n\n sourceEditor.children = data.descendants\n sourceEditor.typographyNormalizationDirection = 'up'\n Editor.normalize(sourceEditor, { force: true })\n\n Object.entries(translatedData)\n .reverse()\n .forEach(([blockStringPath, htmlString]) => {\n const blockPath = stringToPath(blockStringPath)\n if (blockPath.length === 0) return\n\n const html = parseFragment(htmlString)\n const inlineDescendants = deserializeTranslationHtmlString(html)\n\n targetEditor.children = [{ type: BlockType.Default, children: inlineDescendants }]\n\n targetEditor.typographyNormalizationDirection = 'neutral'\n Editor.normalize(targetEditor, { force: true })\n\n for (const [descendant, absolutePathToTargetNode] of Node.descendants(targetEditor)) {\n if (\n (!Text.isText(descendant) && !ElementUtils.isInline(descendant)) ||\n descendant.translationKey == null ||\n descendant.translationKey === ''\n ) {\n continue\n }\n\n const relativePathToSourceNode = stringToPath(descendant.translationKey)\n\n const absolutePathToSourceNode = [...blockPath, ...relativePathToSourceNode]\n\n const [sourceNode] = Editor.node(sourceEditor, absolutePathToSourceNode)\n\n if (Text.isText(sourceNode) && Text.isText(descendant)) {\n const { translationKey, text, ...rest } = sourceNode\n Transforms.setNodes(targetEditor, rest, { at: absolutePathToTargetNode })\n Transforms.unsetNodes(targetEditor, 'translationKey', { at: absolutePathToTargetNode })\n } else if (ElementUtils.isInline(sourceNode) && ElementUtils.isInline(descendant)) {\n const { translationKey, children, ...rest } = sourceNode\n Transforms.setNodes(targetEditor, rest, { at: absolutePathToTargetNode })\n Transforms.unsetNodes(targetEditor, 'translationKey', { at: absolutePathToTargetNode })\n }\n }\n const translatedChildren = (targetEditor.children.at(0) as Element)?.children\n\n Editor.withoutNormalizing(sourceEditor, () => {\n Array.from(Node.children(sourceEditor, blockPath))\n .reverse()\n .forEach(([_, path]) => {\n Transforms.removeNodes(sourceEditor, { at: path })\n })\n\n Transforms.insertNodes(sourceEditor, translatedChildren, { at: [...blockPath, 0] })\n })\n })\n\n sourceEditor.typographyNormalizationDirection = 'down'\n Editor.normalize(sourceEditor, { force: true })\n\n return { ...data, descendants: sourceEditor.children }\n}\n","import { CheckboxControlData, CheckboxControlDefinition } from './checkbox'\nimport { ColorControlData, ColorControlDefinition, ColorControlType, copyColorData } from './color'\nimport { ComboboxControlData, ComboboxControlDefinition } from './combobox'\nimport { ImageControlData, ImageControlDefinition, copyImageData, ImageControlType } from './image'\nimport { LinkControlData, LinkControlDefinition, copyLinkData, LinkControlType } from './link'\nimport {\n ListControlData,\n ListControlDefinition,\n copyListData,\n ListControlType,\n getListTranslatableData,\n mergeListTranslatedData,\n ListControlTranslationDto,\n} from './list'\nimport { NumberControlData, NumberControlDefinition } from './number'\nimport { SelectControlData, SelectControlDefinition } from './select'\nimport {\n ShapeControlData,\n ShapeControlDefinition,\n copyShapeData,\n ShapeControlType,\n getShapeTranslatableData,\n mergeShapeTranslatedData,\n ShapeControlTranslationDto,\n} from './shape'\nimport { TextAreaControlData, TextAreaControlDefinition, TextAreaControlType } from './text-area'\nimport {\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n} from './text-input'\nimport { copyStyleData, StyleControlData, StyleControlDefinition, StyleControlType } from './style'\nimport {\n copySlotData,\n mergeSlotControlTranslatedData,\n mergeSlotData,\n SlotControlData,\n SlotControlDefinition,\n SlotControlType,\n} from './slot'\n\nimport {\n Descriptor,\n GridValue,\n IndexSignatureHack,\n Types,\n mergeGridPropControllerTranslatedData,\n} from '../prop-controllers/descriptors'\nimport { copy as propControllerCopy } from '../prop-controllers/copy'\nimport { CopyContext, Data, MergeContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n RichTextControlData,\n RichTextControlDefinition,\n RichTextControlType,\n copyRichTextData,\n richTextDTOtoDAO,\n} from './rich-text'\nimport { PropControllerDescriptor } from '../prop-controllers'\n\nimport { richTextV2DescendentsToData } from './rich-text-v2/dto'\nimport { copyRichTextV2Data } from './rich-text-v2/copy'\nimport {\n RichTextV2ControlData,\n RichTextV2ControlDefinition,\n RichTextV2ControlType,\n isRichTextV1Data,\n} from './rich-text-v2/rich-text-v2'\n\nimport { StyleV2ControlData, StyleV2ControlDefinition } from './style-v2'\nimport { IconRadioGroupControlData, IconRadioGroupControlDefinition } from './icon-radio-group'\nimport { TypographyControlData, TypographyControlDefinition } from './typography'\nimport {\n RichTextV2ControlTranslationDto,\n getRichTextV2TranslatableData,\n mergeRichTextV2TranslatedData,\n} from './rich-text-v2/translation'\n\nexport type ControlDefinition =\n | CheckboxControlDefinition\n | NumberControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | IconRadioGroupControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition<any>\n | LinkControlDefinition\n | SlotControlDefinition\n | ShapeControlDefinition\n | RichTextControlDefinition\n | RichTextV2ControlDefinition\n | StyleControlDefinition\n | StyleV2ControlDefinition\n | TypographyControlDefinition\n\nexport type ControlDefinitionData<T extends ControlDefinition> = T extends CheckboxControlDefinition\n ? CheckboxControlData\n : T extends NumberControlDefinition\n ? NumberControlData\n : T extends TextInputControlDefinition\n ? TextInputControlData\n : T extends TextAreaControlDefinition\n ? TextAreaControlData\n : T extends SelectControlDefinition\n ? SelectControlData<T>\n : T extends ColorControlDefinition\n ? ColorControlData\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlData<T>\n : T extends ImageControlDefinition\n ? ImageControlData\n : T extends ComboboxControlDefinition\n ? ComboboxControlData<T>\n : T extends ShapeControlDefinition\n ? ShapeControlData<T>\n : T extends ListControlDefinition\n ? ListControlData<T>\n : T extends LinkControlDefinition\n ? LinkControlData\n : T extends RichTextControlDefinition\n ? IndexSignatureHack<RichTextControlData>\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlData\n : T extends StyleControlDefinition\n ? StyleControlData\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlData\n : T extends TypographyControlDefinition\n ? TypographyControlData\n : never\n\nexport function copy(definition: Descriptor | ControlDefinition, value: any, context: CopyContext) {\n switch (definition.type) {\n case Types.Backgrounds:\n case Types.Grid:\n case Types.NavigationLinks:\n case Types.Link:\n case Types.Shadows:\n case Types.Image:\n case Types.Images:\n case Types.ResponsiveColor:\n case Types.TableFormFields:\n case Types.Table:\n case Types.Border:\n case Types.RichText:\n case Types.ElementID:\n return propControllerCopy(definition, value, context)\n case RichTextControlType:\n return copyRichTextData(value, context)\n case RichTextV2ControlType:\n return copyRichTextV2Data(\n isRichTextV1Data(value) ? richTextV2DescendentsToData(richTextDTOtoDAO(value)) : value,\n context,\n )\n case ColorControlType:\n return copyColorData(value, context)\n case ImageControlType:\n return copyImageData(value, context)\n case LinkControlType:\n return copyLinkData(value, context)\n case ShapeControlType:\n return copyShapeData(definition, value, context)\n case ListControlType:\n return copyListData(definition, value, context)\n case StyleControlType:\n return copyStyleData(value, context)\n case SlotControlType:\n return copySlotData(value, context)\n default:\n return value\n }\n}\n\nexport function merge(\n definition: PropControllerDescriptor,\n a: Data,\n b: Data = a,\n context: MergeContext,\n): Data {\n switch (definition.type) {\n case SlotControlType:\n return mergeSlotData(a as SlotControlData, b as SlotControlData, context)\n\n default:\n return b\n }\n}\n\nexport function getTranslatableData(definition: Descriptor | ControlDefinition, data: Data): Data {\n switch (definition.type) {\n case Types.TextInput:\n case Types.TextArea:\n case TextInputControlType:\n case TextAreaControlType:\n return data\n\n case RichTextV2ControlType:\n const richTextData = data as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(richTextData)) return null\n\n return getRichTextV2TranslatableData(definition, richTextData as RichTextV2ControlData)\n\n case ListControlType:\n if (data == null) return null\n\n return getListTranslatableData(definition, data as ListControlData)\n\n case ShapeControlType:\n if (data == null) return null\n\n return getShapeTranslatableData(definition, data as ShapeControlData)\n\n default:\n return null\n }\n}\n\nexport function mergeTranslatedData(\n definition: PropControllerDescriptor,\n data: Data,\n translatedData: Data,\n context: MergeTranslatableDataContext,\n): Data {\n if (data == null) return data\n\n switch (definition.type) {\n case Types.TextInput:\n case Types.TextArea:\n case TextInputControlType:\n case TextAreaControlType:\n if (translatedData == null) return data\n\n return translatedData\n\n case Types.Grid:\n return mergeGridPropControllerTranslatedData(data as GridValue, context)\n\n case SlotControlType:\n return mergeSlotControlTranslatedData(data as SlotControlData, context)\n\n case RichTextV2ControlType:\n if (translatedData == null) return data\n\n return mergeRichTextV2TranslatedData(\n definition,\n data as RichTextV2ControlData,\n translatedData as RichTextV2ControlTranslationDto,\n )\n\n case ListControlType:\n if (translatedData == null) return data\n\n return mergeListTranslatedData(\n definition,\n data as ListControlData,\n translatedData as ListControlTranslationDto,\n context,\n )\n\n case ShapeControlType:\n if (translatedData == null) return data\n\n return mergeShapeTranslatedData(\n definition,\n data as ShapeControlData,\n translatedData as ShapeControlTranslationDto,\n context,\n )\n\n default:\n return data\n }\n}\n","import { BoxModel } from 'css-box-model'\nimport { ControlDefinition } from './control'\nimport { PropController } from '../prop-controllers/base'\nimport {\n AnyPropController,\n PropControllerMessage,\n Send,\n createPropController,\n} from '../prop-controllers/instances'\nimport { ResponsiveValue } from './types'\nimport { CSSObject } from '@emotion/serialize'\nimport { useStyle } from '../runtimes/react/use-style'\nimport { ControlDefinitionValue } from '../runtimes/react/controls/control'\n\nexport const StyleV2ControlType = 'makeswift::controls::style-v2'\n\nexport type StyleV2CSSObject = CSSObject\nexport const unstable_useStyleV2ClassName = useStyle\n\ntype StyleV2ControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n getStyle(item: ControlDefinitionValue<T> | undefined): CSSObject\n}\n\nexport type StyleV2ControlDefinition = {\n type: typeof StyleV2ControlType\n config: StyleV2ControlConfig\n}\n\nexport function unstable_StyleV2<C extends StyleV2ControlConfig>(\n config: C,\n): StyleV2ControlDefinition {\n return { type: StyleV2ControlType, config }\n}\n\n/**\n * TODO: Rewrite `ControlDefinitionData` as a tail recursive type.\n *\n * Explanation: Making `StyleV2ControlData` generic causes us to hit a limitation of TS conditional types for the definition of `ControlDefinitionData`.\n * We get \"Type instantiation is excessively deep and possibly infinite.\"\n *\n * Helpful links:\n * * The PR changing the limit of conditional types: https://github.com/microsoft/TypeScript/pull/45711\n * * TS 4.5 docs releasing this limitation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types\n * * A SO user implementing a tail recursive type: https://stackoverflow.com/questions/72370456/tail-recursion-elimination-on-conditional-types-doesnt-work\n *\n *\n * This is what the type should be:\n * ```\n * export type StyleV2ControlData<T extends StyleV2ControlDefinition = StyleV2ControlDefinition> =\n * ResponsiveValue<ControlDefinitionData<T['config']['type']>>\n * ```\n */\nexport type StyleV2ControlData = ResponsiveValue<any>\n\nexport const StyleV2ControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE:\n 'makeswift::controls::style-v2::message::child-control-message',\n} as const\n\ntype StyleV2ControlItemBoxModelChangeMessage = {\n type: typeof StyleV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\ntype StyleV2ControlChildControlMessage = {\n type: typeof StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage }\n}\n\nexport type StyleV2ControlMessage =\n | StyleV2ControlItemBoxModelChangeMessage\n | StyleV2ControlChildControlMessage\n\nexport class StyleV2Control<\n T extends StyleV2ControlDefinition = StyleV2ControlDefinition,\n> extends PropController<StyleV2ControlMessage> {\n control?: AnyPropController\n constructor(send: Send<StyleV2ControlMessage>, descriptor: T) {\n super(send)\n this.control = createPropController(descriptor.config.type, message => {\n this.send({\n type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message },\n })\n })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv(message: StyleV2ControlMessage) {\n switch (message.type) {\n case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.control\n\n if (control == null) return\n\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n","import { isNonNullable } from '../utils/isNonNullable'\n\nexport type TypographyControlData = (\n | {\n id?: string\n style: Array<{\n deviceId: string\n value: {\n fontFamily?: string | null\n lineHeight?: number | null\n letterSpacing?: number | null\n fontWeight?: number | null\n textAlign?: string | null\n uppercase?: boolean | null\n underline?: boolean | null\n strikethrough?: boolean | null\n italic?: boolean | null\n fontSize?: { value: number | null; unit: string | null } | null\n color?: { swatchId: string | null; alpha: number | null } | null\n }\n }>\n }\n | undefined\n)[]\n\nexport const TypographyControlType = 'makeswift::controls::typography'\n\nexport type TypographyControlDefinition = {\n type: typeof TypographyControlType\n}\n\nexport function unstable_Typography(): TypographyControlDefinition {\n return {\n type: TypographyControlType,\n }\n}\n\nexport function getTypographySwatchIds(value: TypographyControlData[number]) {\n return (\n value?.style.flatMap(style => style.value.color?.swatchId ?? []).filter(isNonNullable) ?? []\n )\n}\n\nexport function getTypographyTypographyIds(value: TypographyControlData[number]) {\n return [value?.id].filter(isNonNullable)\n}\n","import { RichTextControlData } from './rich-text'\nimport { InlineJSON, MarkJSON, NodeJSON } from './dto-types'\nimport { Typography } from '../../api'\nimport { isNonNullable } from '../../utils/isNonNullable'\nimport { LinkValue } from '../../prop-controllers'\n\nexport function getRichTextSwatchIds(value: RichTextControlData) {\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getTypographyStyleSwatchIds(style: Typography['style'] | null | undefined): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return getTypographyStyleSwatchIds(mark.data?.value?.style)\n }\n}\n\nexport function getRichTextTypographyIds(value: RichTextControlData) {\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(isNonNullable)\n }\n}\n\nexport function getRichTextPageIds(value: RichTextControlData) {\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n case 'inline':\n return getInlinePageIds(node)\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n}\n","import { getPageIds, getSwatchIds, getTypographyIds } from '../../prop-controllers/introspection'\nimport { ControlDefinition } from '../control'\nimport { Data } from '../types'\nimport { RichTextV2ControlData, RichTextV2ControlDefinition } from './rich-text-v2'\nimport { Descendant, Element as SlateElement, Text } from 'slate'\n\nfunction introspectRichTextV2Data<T>(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n const plugins = definition.config.plugins\n\n return data.descendants.flatMap(d => getDescendantTypographyIds(d))\n\n function getDescendantTypographyIds(descendant: Descendant): T[] {\n if (SlateElement.isElement(descendant)) {\n return [\n ...getElementTypographyIds(descendant),\n ...descendant.children.flatMap(d => getDescendantTypographyIds(d)),\n ]\n }\n\n if (Text.isText(descendant)) {\n return getTextTypographyIds(descendant)\n }\n\n return []\n }\n\n function getElementTypographyIds(descendant: SlateElement) {\n return (\n plugins?.flatMap(plugin =>\n plugin.control?.definition && plugin.control.getElementValue\n ? func(plugin.control.definition, plugin.control.getElementValue(descendant))\n : [],\n ) ?? []\n )\n }\n\n function getTextTypographyIds(text: Text) {\n return (\n plugins?.flatMap(plugin => {\n return plugin.control?.definition && plugin.control.getLeafValue\n ? func(plugin.control.definition, plugin.control.getLeafValue(text))\n : []\n }) ?? []\n )\n }\n}\n\nexport function getRichTextV2SwatchIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getSwatchIds)\n}\n\nexport function getRichTextV2TypographyIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getTypographyIds)\n}\n\nexport function getRichTextV2PageIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getPageIds)\n}\n","import {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n getListPropControllerElementChildren,\n getListPropControllerFileIds,\n getListPropControllerPageIds,\n getListPropControllerSwatchIds,\n getListPropControllerTypographyIds,\n getShapePropControllerElementChildren,\n getShapePropControllerFileIds,\n getShapePropControllerPageIds,\n getShapePropControllerSwatchIds,\n getShapePropControllerTypographyIds,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n ListValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n ShapeValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n getListElementChildren,\n getListFileIds,\n getListPageIds,\n getListSwatchIds,\n getListTypographyIds,\n getShapeElementChildren,\n getShapeFileIds,\n getShapePageIds,\n getShapeSwatchIds,\n getShapeTypographyIds,\n getTypographySwatchIds,\n getTypographyTypographyIds,\n ImageControlData,\n ImageControlType,\n LinkControlData,\n LinkControlType,\n ListControlData,\n ListControlType,\n RichTextControlData,\n RichTextControlType,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n StyleV2ControlData,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlType,\n} from '../controls'\nimport {\n getRichTextPageIds,\n getRichTextSwatchIds,\n getRichTextTypographyIds,\n} from '../controls/rich-text/introspection'\nimport {\n getRichTextV2PageIds,\n getRichTextV2SwatchIds,\n getRichTextV2TypographyIds,\n} from '../controls/rich-text-v2/introspection'\nimport {\n RichTextV2ControlType,\n RichTextV2ControlData,\n isRichTextV1Data,\n} from '../controls/rich-text-v2/rich-text-v2'\nimport { match, P } from 'ts-pattern'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n return getShapeElementChildren(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListElementChildren(descriptor, prop as ListControlData)\n }\n\n case Types.Shape: {\n return getShapePropControllerElementChildren(descriptor, prop as ShapeValue)\n }\n\n case Types.List: {\n return getListPropControllerElementChildren(descriptor, prop as ListValue)\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getBackgroundsSwatchIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null ? [] : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getBorderSwatchIds(value: BorderValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n}\n\nexport function getBoxShadowsSwatchIds(value: ShadowsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n}\n\nexport function getResponsiveColorSwatchIds(\n value: ResponsiveColorValue | null | undefined,\n): string[] {\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsSwatchIds(prop as BackgroundsValue)\n\n case Types.Border:\n return getBorderSwatchIds(prop as BorderValue)\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n case Types.ResponsiveColor:\n return getResponsiveColorSwatchIds(prop as ResponsiveColorValue)\n\n case Types.Shadows:\n return getBoxShadowsSwatchIds(prop as ShadowsValue)\n\n case RichTextControlType:\n case Types.RichText: {\n return getRichTextSwatchIds(prop as RichTextValue)\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n case TypographyControlType: {\n return getTypographySwatchIds(prop as TypographyControlData[number])\n }\n\n case StyleV2ControlType: {\n const value = prop as StyleV2ControlData\n\n return value?.flatMap(value => getSwatchIds(descriptor.config.type, value.value)) ?? []\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextSwatchIds(data)\n\n return getRichTextV2SwatchIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeSwatchIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListSwatchIds(descriptor, prop as ListControlData)\n }\n\n case Types.Shape: {\n return getShapePropControllerSwatchIds(descriptor, prop as ShapeValue)\n }\n\n case Types.List: {\n return getListPropControllerSwatchIds(descriptor, prop as ListValue)\n }\n\n default:\n return []\n }\n}\n\nexport function getBackgroundsFileIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n return match(backgroundItem)\n .with({ type: 'image-v1', payload: { image: { type: 'makeswift-file' } } }, item => [\n item.payload.image.id,\n ])\n .with({ type: 'image', payload: { imageId: P.string } }, item => [item.payload.imageId])\n .otherwise(() => [])\n }) ?? []\n )\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsFileIds(prop as BackgroundsValue)\n\n case Types.Image: {\n return match(prop as ImageValue)\n .with(P.string, v => [v])\n .with({ type: 'makeswift-file', version: 1 }, v => [v.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .exhaustive()\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return (\n value?.flatMap(item =>\n match(item.props.file)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file', version: 1 }, f => [f.id])\n .with({ type: 'external-file', version: 1 }, () => [])\n .with(P.nullish, () => [])\n .otherwise(() => []),\n ) ?? []\n )\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return match(value)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file' }, f => [f.id])\n .with({ type: 'external-file' }, () => [])\n .otherwise(() => [])\n }\n\n case ShapeControlType: {\n return getShapeFileIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListFileIds(descriptor, prop as ListControlData)\n }\n\n case Types.Shape: {\n return getShapePropControllerFileIds(descriptor, prop as ShapeValue)\n }\n\n case Types.List: {\n return getListPropControllerFileIds(descriptor, prop as ListValue)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case TypographyControlType: {\n return getTypographyTypographyIds(prop as TypographyControlData[number])\n }\n case RichTextControlType:\n case Types.RichText: {\n return getRichTextTypographyIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextTypographyIds(data)\n\n return getRichTextV2TypographyIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeTypographyIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListTypographyIds(descriptor, prop as ListControlData)\n }\n\n case Types.Shape: {\n return getShapePropControllerTypographyIds(descriptor, prop as ShapeValue)\n }\n\n case Types.List: {\n return getListPropControllerTypographyIds(descriptor, prop as ListValue)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case LinkControlType: {\n const value = prop as LinkControlData\n\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case RichTextControlType:\n case Types.RichText: {\n return getRichTextPageIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextPageIds(data)\n\n return getRichTextV2PageIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapePageIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListPageIds(descriptor, prop as ListControlData)\n }\n\n case Types.Shape: {\n return getShapePropControllerPageIds(descriptor, prop as ShapeValue)\n }\n\n case Types.List: {\n return getListPropControllerPageIds(descriptor, prop as ListValue)\n }\n default:\n return []\n }\n}\n","import {\n applyMiddleware,\n combineReducers,\n createStore,\n PreloadedState,\n Store as ReduxStore,\n} from 'redux'\nimport thunk, { ThunkDispatch } from 'redux-thunk'\n\nimport * as Documents from './modules/read-only-documents'\nimport * as ReactComponents from './modules/react-components'\nimport * as ComponentsMeta from './modules/components-meta'\nimport * as PropControllers from './modules/prop-controllers'\nimport * as PropControllerHandles from './modules/prop-controller-handles'\nimport * as IsInBuilder from './modules/is-in-builder'\nimport * as IsPreview from './modules/is-preview'\nimport * as BuilderEditMode from './modules/builder-edit-mode'\nimport * as Breakpoints from './modules/breakpoints'\nimport * as Introspection from '../prop-controllers/introspection'\nimport { Action } from './actions'\nimport { copyElementReference } from '../prop-controllers/copy'\nimport {\n copy as copyFromControl,\n getTranslatableData,\n merge,\n mergeTranslatedData,\n} from '../controls/control'\n\nexport type {\n Data,\n Document,\n DocumentReference,\n Element,\n ElementData,\n ElementReference,\n} from './modules/read-only-documents'\nexport {\n createDocument,\n createDocumentReference,\n isElementReference,\n} from './modules/read-only-documents'\nexport type { ComponentType } from './modules/react-components'\n\nconst reducer = combineReducers({\n documents: Documents.reducer,\n reactComponents: ReactComponents.reducer,\n componentsMeta: ComponentsMeta.reducer,\n propControllers: PropControllers.reducer,\n propControllerHandles: PropControllerHandles.reducer,\n isInBuilder: IsInBuilder.reducer,\n isPreview: IsPreview.reducer,\n builderEditMode: BuilderEditMode.reducer,\n breakpoints: Breakpoints.reducer,\n})\n\nexport type State = ReturnType<typeof reducer>\n\nfunction getDocumentsStateSlice(state: State): Documents.State {\n return state.documents\n}\n\nexport function getDocument(state: State, documentKey: string): Documents.Document | null {\n return Documents.getDocument(getDocumentsStateSlice(state), documentKey)\n}\n\nfunction getReactComponentsStateSlice(state: State): ReactComponents.State {\n return state.reactComponents\n}\n\nexport function getReactComponent(\n state: State,\n type: string,\n): ReactComponents.ComponentType | null {\n return ReactComponents.getReactComponent(getReactComponentsStateSlice(state), type)\n}\n\nfunction getPropControllersStateSlice(state: State): PropControllers.State {\n return state.propControllers\n}\n\nexport function getPropControllerDescriptors(\n state: State,\n): Map<string, Record<string, PropControllers.PropControllerDescriptor>> {\n return PropControllers.getPropControllerDescriptors(getPropControllersStateSlice(state))\n}\n\nexport function getComponentPropControllerDescriptors(\n state: State,\n componentType: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n return PropControllers.getComponentPropControllerDescriptors(\n getPropControllersStateSlice(state),\n componentType,\n )\n}\n\nfunction getPropControllerHandlesStateSlice(state: State): PropControllerHandles.State {\n return state.propControllerHandles\n}\n\nexport function getPropControllers(state: State, documentKey: string, elementKey: string) {\n return PropControllerHandles.getPropControllers(\n getPropControllerHandlesStateSlice(state),\n documentKey,\n elementKey,\n )\n}\n\nfunction normalizeElement(\n element: Documents.Element,\n descriptors: Map<string, Record<string, PropControllers.PropControllerDescriptor>>,\n): Map<string, Documents.Element> {\n const elements = new Map<string, Documents.Element>()\n const remaining = [element]\n let current: Documents.Element | undefined\n\n while ((current = remaining.pop())) {\n elements.set(current.key, current)\n\n if (Documents.isElementReference(current)) continue\n\n const elementDescriptors = descriptors.get(current.type)\n\n if (elementDescriptors == null) continue\n\n const parent = current\n const children = Object.entries(elementDescriptors).reduce((acc, [propName, descriptor]) => {\n return [...acc, ...Introspection.getElementChildren(descriptor, parent.props[propName])]\n }, [] as Documents.Element[])\n\n remaining.push(...children)\n }\n\n return elements\n}\n\nfunction getDocumentElements(state: State, documentKey: string): Map<string, Documents.Element> {\n const document = getDocument(state, documentKey)\n const descriptors = getPropControllerDescriptors(state)\n\n if (document == null) return new Map()\n\n return normalizeElement(document.rootElement, descriptors)\n}\n\n/**\n * Returns all document keys sorted by depth, i.e., parent documents come before child documents.\n *\n * @todo Make this selector more efficient.\n */\nexport function getDocumentKeysSortedByDepth(state: State): string[] {\n const documents = Documents.getDocuments(getDocumentsStateSlice(state))\n const keys = Array.from(documents.keys())\n\n if (keys.length < 2) return keys\n\n const elements = new Map<string, Map<string, Documents.Element>>()\n\n keys.forEach(key => {\n elements.set(key, getDocumentElements(state, key))\n })\n\n keys.sort((a, b) => (elements.get(a)?.has(b) ? -1 : 1))\n\n return keys\n}\n\nexport function getElement(\n state: State,\n documentKey: string,\n elementKey: string,\n): Documents.Element | null {\n return getDocumentElements(state, documentKey).get(elementKey) ?? null\n}\n\nexport function getElementPropControllerDescriptors(\n state: State,\n documentKey: string,\n elementKey: string,\n): Record<string, PropControllers.PropControllerDescriptor> | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n return getComponentPropControllerDescriptors(state, element.type)\n}\n\nexport function getElementId(state: State, documentKey: string, elementKey: string): string | null {\n const element = getElement(state, documentKey, elementKey)\n\n if (element == null || Documents.isElementReference(element)) return null\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) return null\n\n const elementId = Object.entries(descriptors).reduce((acc, [propName, descriptor]) => {\n if (acc != null) return acc\n\n return Introspection.getElementId(descriptor, element.props[propName])\n }, null as string | null)\n\n return elementId\n}\n\nexport type ReplacementContext = {\n elementHtmlIds: Set<string>\n elementKeys: Map<string, string>\n swatchIds: Map<string, string>\n fileIds: Map<string, string>\n typographyIds: Map<string, string>\n tableIds: Map<string, string>\n tableColumnIds: Map<string, string>\n pageIds: Map<string, string>\n globalElementIds: Map<string, string>\n globalElementData: Map<string, Documents.ElementData>\n}\n\nexport type SerializableReplacementContext = {\n elementHtmlIds: string[]\n elementKeys: { [s: string]: string }\n swatchIds: { [s: string]: string }\n fileIds: { [s: string]: string }\n typographyIds: { [s: string]: string }\n tableIds: { [s: string]: string }\n tableColumnIds: { [s: string]: string }\n pageIds: { [s: string]: string }\n globalElementIds: { [s: string]: string }\n globalElementData: { [s: string]: Documents.ElementData }\n}\n\nexport function createReplacementContext(\n serializableReplacementContext: SerializableReplacementContext,\n): ReplacementContext {\n const rc: ReplacementContext = {\n elementHtmlIds: new Set(serializableReplacementContext.elementHtmlIds),\n elementKeys: new Map(\n serializableReplacementContext.elementKeys &&\n Object.entries(serializableReplacementContext.elementKeys),\n ),\n swatchIds: new Map(\n serializableReplacementContext.swatchIds &&\n Object.entries(serializableReplacementContext.swatchIds),\n ),\n fileIds: new Map(\n serializableReplacementContext.fileIds &&\n Object.entries(serializableReplacementContext.fileIds),\n ),\n typographyIds: new Map(\n serializableReplacementContext.typographyIds &&\n Object.entries(serializableReplacementContext.typographyIds),\n ),\n tableIds: new Map(\n serializableReplacementContext.tableIds &&\n Object.entries(serializableReplacementContext.tableIds),\n ),\n tableColumnIds: new Map(\n serializableReplacementContext.tableColumnIds &&\n Object.entries(serializableReplacementContext.tableColumnIds),\n ),\n pageIds: new Map(\n serializableReplacementContext.pageIds &&\n Object.entries(serializableReplacementContext.pageIds),\n ),\n globalElementIds: new Map(\n serializableReplacementContext.globalElementIds &&\n Object.entries(serializableReplacementContext.globalElementIds),\n ),\n globalElementData: new Map(\n serializableReplacementContext.globalElementData &&\n Object.entries(serializableReplacementContext.globalElementData),\n ),\n }\n\n return rc\n}\n\nexport type CopyContext = {\n replacementContext: ReplacementContext\n copyElement: (node: Documents.Element) => Documents.Element\n}\n\nexport function copyElementTree(\n state: State,\n elementTree: Documents.ElementData,\n replacementContext: SerializableReplacementContext,\n) {\n /*\n * This is structured a bit weird.\n *\n * This is done so that we can pass a callable function into some of the copy functions\n * themselves, to enable mutual recursion.\n *\n * Consider the slot control. It has to iterate through its elements, and for each of them,\n * call some version of the below function.\n *\n * That is how the recursing through the tree happens.\n */\n function copyElementTreeNode(state: State, replacementContext: ReplacementContext) {\n return function (node: Documents.Element) {\n const context = {\n replacementContext,\n copyElement: copyElementTreeNode(state, replacementContext),\n }\n\n if (Documents.isElementReference(node)) {\n return { ...node, value: copyElementReference(node.value, context) }\n }\n\n const descriptors = getComponentPropControllerDescriptors(state, node.type)\n\n if (descriptors == null) return node\n\n for (const [propKey, descriptor] of Object.entries(descriptors)) {\n node.props[propKey] = copyFromControl(descriptor, node.props[propKey], context)\n }\n\n return node\n }\n }\n\n const copy = JSON.parse(JSON.stringify(elementTree)) as Documents.ElementData\n\n return copyElementTreeNode(state, createReplacementContext(replacementContext))(copy)\n}\n\nfunction* traverseElementTree(\n state: State,\n elementTree: Documents.ElementData,\n): Generator<Documents.Element> {\n yield elementTree\n\n if (Documents.isElementReference(elementTree)) return\n\n const descriptors = getComponentPropControllerDescriptors(state, elementTree.type)\n\n if (descriptors == null) return\n\n for (const [propKey, descriptor] of Object.entries(descriptors)) {\n const children = Introspection.getElementChildren(descriptor, elementTree.props[propKey])\n\n for (const child of children) {\n if (!Documents.isElementReference(child)) yield* traverseElementTree(state, child)\n\n yield child\n }\n }\n}\n\nexport function getElementTreeTranslatableData(\n state: State,\n elementTree: Documents.ElementData,\n): Record<string, Documents.Data> {\n const translatableData: Record<string, Documents.Data> = {}\n\n for (const element of traverseElementTree(state, elementTree)) {\n if (Documents.isElementReference(element)) continue\n\n const descriptors = getComponentPropControllerDescriptors(state, element.type)\n\n if (descriptors == null) continue\n\n Object.entries(descriptors).forEach(([propName, descriptor]) => {\n const translatablePropData = getTranslatableData(descriptor, element.props[propName])\n\n if (translatablePropData != null) {\n translatableData[`${element.key}:${propName}`] = translatablePropData\n }\n })\n }\n\n return translatableData\n}\n\nexport type TranslationDto = Record<string, Documents.Data>\n\nexport type MergeTranslatableDataContext = {\n translatedData: TranslationDto\n mergeTranslatedData: (node: Documents.Element) => Documents.Element\n}\n\nexport function mergeElementTreeTranslatedData(\n state: State,\n elementTree: Documents.ElementData,\n translatedData: TranslationDto,\n): Documents.Element {\n function merge(state: State, translatedData: TranslationDto) {\n return function (node: Documents.Element): Documents.Element {\n if (Documents.isElementReference(node)) return node\n\n const elementDescriptors = getPropControllerDescriptors(state)\n const descriptors = elementDescriptors.get(node.type)\n\n if (descriptors == null) {\n throw new Error(`Can't merge element of type \"${node.type}\" because it has no descriptors`)\n }\n\n const context: MergeTranslatableDataContext = {\n translatedData,\n mergeTranslatedData: merge(state, translatedData),\n }\n const props = {} as Record<string, Documents.Data>\n\n for (const propName of Object.keys(descriptors)) {\n const descriptor = descriptors[propName]\n\n props[propName] = mergeTranslatedData(\n descriptor,\n node.props[propName],\n translatedData[`${node.key}:${propName}`],\n context,\n )\n }\n\n return { ...node, props }\n }\n }\n return merge(state, translatedData)(elementTree)\n}\n\nexport type MergeContext = {\n mergeElement(a: Documents.Element, b: Documents.Element): Documents.Element\n}\n\nexport function mergeElement(\n state: State,\n baseElement: Documents.Element,\n overrideElement: Documents.Element,\n): Documents.Element {\n if (baseElement.type !== overrideElement.type || baseElement.key !== overrideElement.key) {\n throw new Error(`Can't merge elements of different types or keys`)\n }\n\n if (Documents.isElementReference(overrideElement)) return overrideElement\n\n if (Documents.isElementReference(baseElement)) return baseElement\n\n const elementDescriptors = getPropControllerDescriptors(state)\n const descriptors = elementDescriptors.get(baseElement.type)\n\n if (descriptors == null) {\n throw new Error(\n `Can't merge element of type \"${baseElement.type}\" because it has no descriptors`,\n )\n }\n\n const mergedProps = {} as Record<string, Documents.Data>\n\n for (const propName of Object.keys(descriptors)) {\n const descriptor = descriptors[propName]\n const context: MergeContext = {\n mergeElement(base, override) {\n return mergeElement(state, base, override)\n },\n }\n\n mergedProps[propName] = merge(\n descriptor,\n baseElement.props[propName],\n overrideElement.props[propName],\n context,\n )\n }\n\n return { ...baseElement, props: mergedProps }\n}\n\nexport function getIsInBuilder(state: State): boolean {\n return state.isInBuilder\n}\n\nexport function getIsPreview(state: State): boolean {\n return IsPreview.getIsPreview(state.isPreview)\n}\n\nexport function getBuilderEditMode(state: State): BuilderEditMode.State {\n return state.builderEditMode\n}\n\nexport function getBreakpoints(state: State): Breakpoints.State {\n return state.breakpoints\n}\n\nexport type Dispatch = ThunkDispatch<State, unknown, Action>\n\nexport type Store = ReduxStore<State, Action> & { dispatch: Dispatch }\n\nexport function configureStore({\n rootElements,\n preloadedState,\n breakpoints,\n}: {\n rootElements?: Map<string, Documents.Element>\n preloadedState?: PreloadedState<State>\n breakpoints?: Breakpoints.State\n} = {}): Store {\n return createStore(\n reducer,\n {\n ...preloadedState,\n documents: Documents.getInitialState({ rootElements }),\n breakpoints: Breakpoints.getInitialState(breakpoints ?? preloadedState?.breakpoints),\n },\n applyMiddleware(thunk),\n )\n}\n"],"names":["getInitialState","reactComponents","Map","state","type","getReactComponents","get","action","ActionTypes","REGISTER_REACT_COMPONENT","set","payload","component","UNREGISTER_REACT_COMPONENT","nextState","deleted","delete","getPropControllerDescriptors","getPropControllers","controlCopy","linkCopy","copy","backgroundsCopy","gridCopy","navigationLinksCopy","shadowsCopy","imageCopy","imagesCopy","responsiveColorCopy","tableFormFieldsCopy","tableCopy","borderCopy","richTextCopy","elementIdCopy","hasOwnProperty","getValue","onChange","createRichTextV2Plugin","control","definition","Link","label","getElementValue","element","ElementUtils","isInline","isLinkElement","link","undefined","withInline","editor","entry","unstable_IconRadioGroup","options","supportedInlineOptions","withPlugin","renderElement","props","InlineType","Code","attributes","SuperScript","SubScript","_Fragment","TEXT_ALIGN_KEY","withTextAlign","normalizeNode","normalizeResponsiveValue","match","isRootBlock","unstable_StyleV2","icon","unstable_IconRadioGroupIcon","TextAlignLeft","value","TextAlignCenter","TextAlignRight","TextAlignJustify","defaultValue","getStyle","textAlign","setResponsiveValue","split","className","React","BlockActions","setBlockKeyForDevice","clearBlockKeyForDevice","wrapInline","unwrapInline","ListActions","unwrapList","wrapList","indent","dedent","toggleList","e","selection","Array","from","Editor","nodes","node","isListItem","length","isHotkey","preventDefault","Range","isExpanded","listItem","EditorUtils","getFirstAncestorListItem","anchor","path","offset","parentListItem","list","getFirstAncestorList","Transforms","string","splitNodes","at","always","insertText","normalizationNode","normalizationPath","isBlock","unsetNodes","isList","children","Node","findIndex","child","unwrapNodes","pathToListItemText","LIST_ITEM_CHILD_POSITION","has","nodeInListItemTextPosition","setNodes","BlockType","ListItemChild","insertNodes","createListItem","Text","isText","mergeableChildren","map","index","potentialNodeToBeMerged","pathRef","filter","mergeableNodes","Boolean","reverse","forEach","nodePathRef","nodeToBeMergedPathRef","nodePath","current","nodeToBeMergedPath","nodeChildren","childrenToBeMerged","withoutNormalizing","_","childPath","moveNodes","to","removeNodes","unref","Select","labelOrientation","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","UnorderedList","OrderedList","BlockQuote","withBlock","onKeyDown","activeBlockType","getActiveBlockType","getSelection","Default","activeBlock","RootBlockType","_jsx","blockStyles","useStyle","margin","quoteStyles","padding","fontSize","fontWeight","borderLeft","unorderedListStyles","listStylePosition","paddingInlineStart","listStyleType","ul","orderedListStyles","cx","ListItem","matchingValues","BLOCK_ONE_PATH","BLOCK_TWO_PATH","Path","equals","mergeNodes","isAncestor","withInlineMode","minWidth","text","display","uuid","jsx","propControllerCopy","SlateElement","Documents.reducer","ReactComponents.reducer","ComponentsMeta.reducer","PropControllers.reducer","PropControllerHandles.reducer","IsInBuilder.reducer","IsPreview.reducer","BuilderEditMode.reducer","Breakpoints.reducer","Documents.getDocument","ReactComponents.getReactComponent","PropControllers.getPropControllerDescriptors","PropControllers.getComponentPropControllerDescriptors","PropControllerHandles.getPropControllers","Documents.isElementReference","Introspection.getElementChildren","Documents.getDocuments","Introspection.getElementId","copyFromControl","IsPreview.getIsPreview","Documents.getInitialState","Breakpoints.getInitialState"],"mappings":"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"}
|