@makeswift/runtime 0.19.4 → 0.20.0
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/builder/rich-text/package.json +5 -0
- package/core/package.json +5 -0
- package/dist/cjs/api/graphql/generated/types.js.map +1 -1
- package/dist/cjs/api/react.js.map +1 -1
- package/dist/cjs/{prop-controllers/base.js → builder/rich-text/index.js} +7 -12
- package/dist/cjs/builder/rich-text/index.js.map +1 -0
- package/dist/cjs/builder/serialization/control-serialization.js +51 -27
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
- package/dist/cjs/components/builtin/Button/Button.js.map +1 -1
- package/dist/cjs/components/builtin/Carousel/Carousel.js +2 -2
- package/dist/cjs/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/cjs/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/cjs/components/builtin/Divider/Divider.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/builtin/Form/context/FormContext.js.map +1 -1
- package/dist/cjs/components/builtin/Image/Image.js +2 -2
- package/dist/cjs/components/builtin/Image/Image.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/cjs/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
- package/dist/cjs/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/cjs/components/builtin/Text/register.js.map +1 -1
- package/dist/cjs/components/builtin/register.js.map +1 -1
- package/dist/cjs/components/hooks/useMediaQuery.js +2 -2
- package/dist/cjs/components/hooks/useMediaQuery.js.map +1 -1
- package/dist/cjs/components/hooks/useResponsiveColor.js +1 -1
- package/dist/cjs/components/hooks/useResponsiveColor.js.map +1 -1
- package/dist/cjs/components/shared/Link/index.js +2 -2
- package/dist/cjs/components/shared/Link/index.js.map +1 -1
- package/dist/cjs/components/utils/responsive-style.js +9 -9
- package/dist/cjs/components/utils/responsive-style.js.map +1 -1
- package/dist/cjs/components/utils/types.js.map +1 -1
- package/dist/cjs/controls/control.js +14 -78
- package/dist/cjs/controls/control.js.map +1 -1
- package/dist/cjs/controls/index.js +99 -21
- package/dist/cjs/controls/index.js.map +1 -1
- package/dist/cjs/controls/{image.js → link.js} +20 -11
- package/dist/cjs/controls/link.js.map +1 -0
- package/dist/cjs/controls/rich-text/control.js +97 -0
- package/dist/cjs/controls/rich-text/control.js.map +1 -0
- package/dist/cjs/controls/rich-text/index.js +1 -7
- package/dist/cjs/controls/rich-text/index.js.map +1 -1
- package/dist/cjs/controls/rich-text/rich-text.js +16 -69
- package/dist/cjs/controls/rich-text/rich-text.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/control.js +138 -0
- package/dist/cjs/controls/rich-text-v2/control.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/index.js +1 -5
- package/dist/cjs/controls/rich-text-v2/index.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/plugin.js +3 -3
- package/dist/cjs/controls/rich-text-v2/plugin.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js +105 -121
- package/dist/cjs/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/cjs/controls/rich-text-v2/translation.js +35 -48
- package/dist/cjs/controls/rich-text-v2/translation.js.map +1 -1
- package/dist/cjs/controls/slot.js +13 -59
- package/dist/cjs/controls/slot.js.map +1 -1
- package/dist/cjs/controls/{rich-text/fixtures → style-v2}/index.js +4 -8
- package/dist/cjs/controls/style-v2/index.js.map +1 -0
- package/dist/cjs/controls/style-v2/style-v2.js +50 -0
- package/dist/cjs/controls/style-v2/style-v2.js.map +1 -0
- package/dist/cjs/{controls/select.js → core/index.js} +11 -12
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/jest-setup.js +3 -0
- package/dist/cjs/jest-setup.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +18 -5
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/cjs/prop-controllers/copy.js +20 -18
- package/dist/cjs/prop-controllers/copy.js.map +1 -1
- package/dist/cjs/prop-controllers/deleted.js.map +1 -1
- package/dist/cjs/prop-controllers/descriptors.js +6 -6
- package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
- package/dist/cjs/prop-controllers/index.js +0 -2
- package/dist/cjs/prop-controllers/index.js.map +1 -1
- package/dist/cjs/prop-controllers/instances.js +12 -90
- package/dist/cjs/prop-controllers/instances.js.map +1 -1
- package/dist/cjs/prop-controllers/introspection.js +26 -97
- package/dist/cjs/prop-controllers/introspection.js.map +1 -1
- package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/checkbox.js +1 -4
- package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/color.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/combobox.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/control.js +48 -39
- package/dist/cjs/runtimes/react/controls/control.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/image.js +6 -10
- package/dist/cjs/runtimes/react/controls/image.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/link.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/list.js +3 -1
- package/dist/cjs/runtimes/react/controls/list.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/number.js +1 -4
- package/dist/cjs/runtimes/react/controls/number.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js +4 -2
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js +2 -7
- package/dist/cjs/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js +14 -14
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js +7 -23
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +3 -16
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +8 -8
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +2 -2
- package/dist/cjs/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +7 -13
- package/dist/cjs/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -2
- package/dist/cjs/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/select.js +1 -1
- package/dist/cjs/runtimes/react/controls/select.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/shape.js +2 -7
- package/dist/cjs/runtimes/react/controls/shape.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/slot.js +13 -5
- package/dist/cjs/runtimes/react/controls/slot.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/style-v2.js +6 -11
- package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/style.js +8 -8
- package/dist/cjs/runtimes/react/controls/style.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/text-area.js +1 -4
- package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/text-input.js +1 -4
- package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/typography.js.map +1 -1
- package/dist/cjs/runtimes/react/controls.js +79 -73
- package/dist/cjs/runtimes/react/controls.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-store.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/cjs/runtimes/react/poll-box-model.js +1 -1
- package/dist/cjs/runtimes/react/poll-box-model.js.map +1 -1
- package/dist/cjs/runtimes/react/react-runtime.js +3 -32
- package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
- package/dist/cjs/runtimes/react/runtime-core.js +67 -0
- package/dist/cjs/runtimes/react/runtime-core.js.map +1 -0
- package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js +2 -2
- package/dist/cjs/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/indent.js +3 -2
- package/dist/cjs/slate/BlockPlugin/indent.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/index.js +17 -15
- package/dist/cjs/slate/BlockPlugin/index.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js +2 -2
- package/dist/cjs/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/toggleList.js +2 -2
- package/dist/cjs/slate/BlockPlugin/toggleList.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/types.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/unwrapInline.js +2 -2
- package/dist/cjs/slate/BlockPlugin/unwrapInline.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/unwrapList.js +3 -4
- package/dist/cjs/slate/BlockPlugin/unwrapList.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js +2 -2
- package/dist/cjs/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/wrapInline.js.map +1 -1
- package/dist/cjs/slate/BlockPlugin/wrapList.js +4 -3
- package/dist/cjs/slate/BlockPlugin/wrapList.js.map +1 -1
- package/dist/cjs/slate/BuilderPlugin/index.js +3 -3
- package/dist/cjs/slate/BuilderPlugin/index.js.map +1 -1
- package/dist/cjs/slate/InlineModePlugin/index.js +4 -5
- package/dist/cjs/slate/InlineModePlugin/index.js.map +1 -1
- package/dist/cjs/slate/InlinePlugin/getValue.js +4 -4
- package/dist/cjs/slate/InlinePlugin/getValue.js.map +1 -1
- package/dist/cjs/slate/InlinePlugin/index.js +10 -14
- package/dist/cjs/slate/InlinePlugin/index.js.map +1 -1
- package/dist/cjs/slate/InlinePlugin/onChange.js +3 -3
- package/dist/cjs/slate/InlinePlugin/onChange.js.map +1 -1
- package/dist/cjs/slate/InlinePlugin/types.js +9 -6
- package/dist/cjs/slate/InlinePlugin/types.js.map +1 -1
- package/dist/cjs/slate/LinkPlugin/getValue.js +4 -5
- package/dist/cjs/slate/LinkPlugin/getValue.js.map +1 -1
- package/dist/cjs/slate/LinkPlugin/index.js +8 -10
- package/dist/cjs/slate/LinkPlugin/index.js.map +1 -1
- package/dist/cjs/slate/LinkPlugin/onChange.js +6 -6
- package/dist/cjs/slate/LinkPlugin/onChange.js.map +1 -1
- package/dist/cjs/slate/LinkPlugin/types.js +3 -8
- package/dist/cjs/slate/LinkPlugin/types.js.map +1 -1
- package/dist/cjs/slate/TextAlignPlugin/getValue.js +2 -2
- package/dist/cjs/slate/TextAlignPlugin/getValue.js.map +1 -1
- package/dist/cjs/slate/TextAlignPlugin/index.js +12 -12
- package/dist/cjs/slate/TextAlignPlugin/index.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/detachActiveTypography.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/getValue.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/index.js +4 -4
- package/dist/cjs/slate/TypographyPlugin/index.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js +6 -3
- package/dist/cjs/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -1
- package/dist/cjs/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -1
- package/dist/cjs/slate/index.js +8 -8
- package/dist/cjs/slate/index.js.map +1 -1
- package/dist/cjs/slate/selectors.js +15 -12
- package/dist/cjs/slate/selectors.js.map +1 -1
- package/dist/cjs/slate/types.js +5 -36
- package/dist/cjs/slate/types.js.map +1 -1
- package/dist/cjs/slate/utils/editor.js +3 -3
- package/dist/cjs/slate/utils/editor.js.map +1 -1
- package/dist/cjs/slate/utils/element.js +5 -27
- package/dist/cjs/slate/utils/element.js.map +1 -1
- package/dist/cjs/slate/utils/responsive.js.map +1 -1
- package/dist/cjs/slate/utils/toText.js +16 -52
- package/dist/cjs/slate/utils/toText.js.map +1 -1
- package/dist/cjs/state/actions.js.map +1 -1
- package/dist/cjs/state/modules/box-models.js.map +1 -1
- package/dist/cjs/state/modules/breakpoints.js +1 -1
- package/dist/cjs/state/modules/breakpoints.js.map +1 -1
- package/dist/cjs/state/modules/prop-controller-handles.js.map +1 -1
- package/dist/cjs/state/modules/read-only-documents.js +2 -4
- package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
- package/dist/cjs/state/react-builder-preview.js +10 -7
- package/dist/cjs/state/react-builder-preview.js.map +1 -1
- package/dist/cjs/state/react-page.js +10 -41
- package/dist/cjs/state/react-page.js.map +1 -1
- package/dist/esm/api/graphql/generated/types.js.map +1 -1
- package/dist/esm/api/react.js.map +1 -1
- package/dist/esm/builder/rich-text/index.js +5 -0
- package/dist/esm/builder/rich-text/index.js.map +1 -0
- package/dist/esm/builder/serialization/control-serialization.js +66 -37
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
- package/dist/esm/components/builtin/Button/Button.js.map +1 -1
- package/dist/esm/components/builtin/Carousel/Carousel.js +1 -1
- package/dist/esm/components/builtin/Carousel/Carousel.js.map +1 -1
- package/dist/esm/components/builtin/Countdown/Countdown.js.map +1 -1
- package/dist/esm/components/builtin/Divider/Divider.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/builtin/Form/context/FormContext.js.map +1 -1
- package/dist/esm/components/builtin/Image/Image.js +1 -1
- package/dist/esm/components/builtin/Image/Image.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/Navigation.js.map +1 -1
- package/dist/esm/components/builtin/Navigation/components/MobileMenu/index.js.map +1 -1
- package/dist/esm/components/builtin/SocialLinks/SocialLinks.js.map +1 -1
- package/dist/esm/components/builtin/Text/register.js.map +1 -1
- package/dist/esm/components/builtin/register.js.map +1 -1
- package/dist/esm/components/hooks/useMediaQuery.js +1 -1
- package/dist/esm/components/hooks/useMediaQuery.js.map +1 -1
- package/dist/esm/components/hooks/useResponsiveColor.js +3 -1
- package/dist/esm/components/hooks/useResponsiveColor.js.map +1 -1
- package/dist/esm/components/shared/Link/index.js +1 -1
- package/dist/esm/components/shared/Link/index.js.map +1 -1
- package/dist/esm/components/utils/responsive-style.js +1 -1
- package/dist/esm/components/utils/responsive-style.js.map +1 -1
- package/dist/esm/controls/control.js +14 -109
- package/dist/esm/controls/control.js.map +1 -1
- package/dist/esm/controls/index.js +82 -10
- package/dist/esm/controls/index.js.map +1 -1
- package/dist/esm/controls/link.js +18 -0
- package/dist/esm/controls/link.js.map +1 -0
- package/dist/esm/controls/rich-text/control.js +76 -0
- package/dist/esm/controls/rich-text/control.js.map +1 -0
- package/dist/esm/controls/rich-text/index.js +0 -3
- package/dist/esm/controls/rich-text/index.js.map +1 -1
- package/dist/esm/controls/rich-text/rich-text.js +14 -66
- package/dist/esm/controls/rich-text/rich-text.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/control.js +117 -0
- package/dist/esm/controls/rich-text-v2/control.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/index.js +0 -2
- package/dist/esm/controls/rich-text-v2/index.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/plugin.js +2 -2
- package/dist/esm/controls/rich-text-v2/plugin.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js +111 -116
- package/dist/esm/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/esm/controls/rich-text-v2/translation.js +33 -46
- package/dist/esm/controls/rich-text-v2/translation.js.map +1 -1
- package/dist/esm/controls/slot.js +13 -54
- package/dist/esm/controls/slot.js.map +1 -1
- package/dist/esm/controls/style-v2/index.js +2 -0
- package/dist/esm/controls/style-v2/index.js.map +1 -0
- package/dist/esm/controls/style-v2/style-v2.js +28 -0
- package/dist/esm/controls/style-v2/style-v2.js.map +1 -0
- package/dist/esm/core/index.js +11 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/jest-setup.js +3 -0
- package/dist/esm/jest-setup.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +19 -6
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/esm/prop-controllers/copy.js +7 -5
- package/dist/esm/prop-controllers/copy.js.map +1 -1
- package/dist/esm/prop-controllers/deleted.js.map +1 -1
- package/dist/esm/prop-controllers/descriptors.js +7 -5
- package/dist/esm/prop-controllers/descriptors.js.map +1 -1
- package/dist/esm/prop-controllers/index.js +1 -2
- package/dist/esm/prop-controllers/index.js.map +1 -1
- package/dist/esm/prop-controllers/instances.js +15 -107
- package/dist/esm/prop-controllers/instances.js.map +1 -1
- package/dist/esm/prop-controllers/introspection.js +28 -131
- package/dist/esm/prop-controllers/introspection.js.map +1 -1
- package/dist/esm/runtimes/react/components/Element.js.map +1 -1
- package/dist/esm/runtimes/react/controls/checkbox.js +1 -7
- package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -1
- package/dist/esm/runtimes/react/controls/color.js.map +1 -1
- package/dist/esm/runtimes/react/controls/combobox.js.map +1 -1
- package/dist/esm/runtimes/react/controls/control.js +66 -58
- package/dist/esm/runtimes/react/controls/control.js.map +1 -1
- package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -1
- package/dist/esm/runtimes/react/controls/image.js +6 -12
- package/dist/esm/runtimes/react/controls/image.js.map +1 -1
- package/dist/esm/runtimes/react/controls/link.js.map +1 -1
- package/dist/esm/runtimes/react/controls/list.js +3 -1
- package/dist/esm/runtimes/react/controls/list.js.map +1 -1
- package/dist/esm/runtimes/react/controls/number.js +1 -7
- package/dist/esm/runtimes/react/controls/number.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js +7 -11
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/editable-text.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js +2 -7
- package/dist/esm/runtimes/react/controls/rich-text/ReadOnlyText.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/block.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js +7 -23
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/element.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/components/Element/inline.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text/rich-text.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js +5 -27
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js +7 -7
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js +2 -2
- package/dist/esm/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js +9 -25
- package/dist/esm/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js +2 -4
- package/dist/esm/runtimes/react/controls/rich-text-v2/rich-text-v2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/select.js +1 -1
- package/dist/esm/runtimes/react/controls/select.js.map +1 -1
- package/dist/esm/runtimes/react/controls/shape.js +2 -7
- package/dist/esm/runtimes/react/controls/shape.js.map +1 -1
- package/dist/esm/runtimes/react/controls/slot.js +14 -6
- package/dist/esm/runtimes/react/controls/slot.js.map +1 -1
- package/dist/esm/runtimes/react/controls/style-v2.js +6 -11
- package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -1
- package/dist/esm/runtimes/react/controls/style.js +10 -10
- package/dist/esm/runtimes/react/controls/style.js.map +1 -1
- package/dist/esm/runtimes/react/controls/text-area.js +1 -7
- package/dist/esm/runtimes/react/controls/text-area.js.map +1 -1
- package/dist/esm/runtimes/react/controls/text-input.js +1 -7
- package/dist/esm/runtimes/react/controls/text-input.js.map +1 -1
- package/dist/esm/runtimes/react/controls/typography.js.map +1 -1
- package/dist/esm/runtimes/react/controls.js +96 -91
- package/dist/esm/runtimes/react/controls.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-store.js +2 -2
- package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/esm/runtimes/react/poll-box-model.js +1 -1
- package/dist/esm/runtimes/react/poll-box-model.js.map +1 -1
- package/dist/esm/runtimes/react/react-runtime.js +3 -40
- package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
- package/dist/esm/runtimes/react/runtime-core.js +51 -0
- package/dist/esm/runtimes/react/runtime-core.js.map +1 -0
- package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js +2 -2
- package/dist/esm/slate/BlockPlugin/clearBlockKeyForDevice.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/indent.js +3 -2
- package/dist/esm/slate/BlockPlugin/indent.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/index.js +17 -15
- package/dist/esm/slate/BlockPlugin/index.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js +2 -2
- package/dist/esm/slate/BlockPlugin/setBlockKeyForDevice.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/toggleList.js +2 -2
- package/dist/esm/slate/BlockPlugin/toggleList.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/unwrapInline.js +2 -2
- package/dist/esm/slate/BlockPlugin/unwrapInline.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/unwrapList.js +3 -4
- package/dist/esm/slate/BlockPlugin/unwrapList.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js +2 -2
- package/dist/esm/slate/BlockPlugin/utils/getSelectedListItems.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/wrapInline.js.map +1 -1
- package/dist/esm/slate/BlockPlugin/wrapList.js +4 -3
- package/dist/esm/slate/BlockPlugin/wrapList.js.map +1 -1
- package/dist/esm/slate/BuilderPlugin/index.js +3 -3
- package/dist/esm/slate/BuilderPlugin/index.js.map +1 -1
- package/dist/esm/slate/InlineModePlugin/index.js +5 -6
- package/dist/esm/slate/InlineModePlugin/index.js.map +1 -1
- package/dist/esm/slate/InlinePlugin/getValue.js +4 -4
- package/dist/esm/slate/InlinePlugin/getValue.js.map +1 -1
- package/dist/esm/slate/InlinePlugin/index.js +9 -13
- package/dist/esm/slate/InlinePlugin/index.js.map +1 -1
- package/dist/esm/slate/InlinePlugin/onChange.js +3 -3
- package/dist/esm/slate/InlinePlugin/onChange.js.map +1 -1
- package/dist/esm/slate/InlinePlugin/types.js +9 -7
- package/dist/esm/slate/InlinePlugin/types.js.map +1 -1
- package/dist/esm/slate/LinkPlugin/getValue.js +4 -5
- package/dist/esm/slate/LinkPlugin/getValue.js.map +1 -1
- package/dist/esm/slate/LinkPlugin/index.js +8 -10
- package/dist/esm/slate/LinkPlugin/index.js.map +1 -1
- package/dist/esm/slate/LinkPlugin/onChange.js +4 -4
- package/dist/esm/slate/LinkPlugin/onChange.js.map +1 -1
- package/dist/esm/slate/LinkPlugin/types.js +3 -7
- package/dist/esm/slate/LinkPlugin/types.js.map +1 -1
- package/dist/esm/slate/TextAlignPlugin/getValue.js +2 -2
- package/dist/esm/slate/TextAlignPlugin/getValue.js.map +1 -1
- package/dist/esm/slate/TextAlignPlugin/index.js +12 -16
- package/dist/esm/slate/TextAlignPlugin/index.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/clearActiveTypographyStyle.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/clearDeviceActiveTypography.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/detachActiveTypography.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/getValue.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/index.js +5 -5
- package/dist/esm/slate/TypographyPlugin/index.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyDown.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js +6 -3
- package/dist/esm/slate/TypographyPlugin/normalizeTypographyUp.js.map +1 -1
- package/dist/esm/slate/TypographyPlugin/setActiveTypographyStyle.js.map +1 -1
- package/dist/esm/slate/index.js +4 -4
- package/dist/esm/slate/index.js.map +1 -1
- package/dist/esm/slate/selectors.js +15 -12
- package/dist/esm/slate/selectors.js.map +1 -1
- package/dist/esm/slate/types.js +4 -33
- package/dist/esm/slate/types.js.map +1 -1
- package/dist/esm/slate/utils/editor.js +3 -3
- package/dist/esm/slate/utils/editor.js.map +1 -1
- package/dist/esm/slate/utils/element.js +5 -30
- package/dist/esm/slate/utils/element.js.map +1 -1
- package/dist/esm/slate/utils/responsive.js.map +1 -1
- package/dist/esm/slate/utils/toText.js +16 -52
- package/dist/esm/slate/utils/toText.js.map +1 -1
- package/dist/esm/state/actions.js.map +1 -1
- package/dist/esm/state/modules/box-models.js.map +1 -1
- package/dist/esm/state/modules/breakpoints.js +1 -1
- package/dist/esm/state/modules/breakpoints.js.map +1 -1
- package/dist/esm/state/modules/prop-controller-handles.js.map +1 -1
- package/dist/esm/state/modules/read-only-documents.js +3 -3
- package/dist/esm/state/modules/read-only-documents.js.map +1 -1
- package/dist/esm/state/react-builder-preview.js +10 -7
- package/dist/esm/state/react-builder-preview.js.map +1 -1
- package/dist/esm/state/react-page.js +13 -41
- package/dist/esm/state/react-page.js.map +1 -1
- package/dist/types/api/graphql/generated/types.d.ts +1 -1
- package/dist/types/api/graphql/generated/types.d.ts.map +1 -1
- package/dist/types/api/react.d.ts +1 -1
- package/dist/types/builder/rich-text/index.d.ts +3 -0
- package/dist/types/builder/rich-text/index.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts +12 -7
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
- package/dist/types/components/builtin/Box/Box.d.ts +23 -1
- package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
- package/dist/types/components/builtin/Button/Button.d.ts +3 -3
- package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts +1 -1
- package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts +1 -1
- package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
- package/dist/types/components/builtin/Divider/Divider.d.ts +1 -1
- package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
- package/dist/types/components/builtin/Form/context/FormContext.d.ts +7 -8
- package/dist/types/components/builtin/Form/context/FormContext.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts +1 -1
- package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts +2 -2
- package/dist/types/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +1 -1
- package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
- package/dist/types/components/builtin/Text/register.d.ts +1 -1
- package/dist/types/components/builtin/Text/register.d.ts.map +1 -1
- package/dist/types/components/builtin/register.d.ts +1 -1
- package/dist/types/components/builtin/register.d.ts.map +1 -1
- package/dist/types/components/hooks/useResponsiveColor.d.ts +1 -2
- package/dist/types/components/hooks/useResponsiveColor.d.ts.map +1 -1
- package/dist/types/components/utils/responsive-style.d.ts +2 -1
- package/dist/types/components/utils/responsive-style.d.ts.map +1 -1
- package/dist/types/components/utils/types.d.ts +2 -0
- package/dist/types/components/utils/types.d.ts.map +1 -1
- package/dist/types/controls/__tests__/fixtures/shape.d.ts +19 -8
- package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
- package/dist/types/controls/control.d.ts +28 -17
- package/dist/types/controls/control.d.ts.map +1 -1
- package/dist/types/controls/index.d.ts +6 -10
- package/dist/types/controls/index.d.ts.map +1 -1
- package/dist/types/controls/link.d.ts +9 -0
- package/dist/types/controls/link.d.ts.map +1 -0
- package/dist/types/controls/rich-text/control.d.ts +57 -0
- package/dist/types/controls/rich-text/control.d.ts.map +1 -0
- package/dist/types/controls/rich-text/index.d.ts +0 -3
- package/dist/types/controls/rich-text/index.d.ts.map +1 -1
- package/dist/types/controls/rich-text/rich-text.d.ts +9 -61
- package/dist/types/controls/rich-text/rich-text.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts +3 -2
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/nested-paragraph-edge-case-3728.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts +4 -3
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/rearranged.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/simple.d.ts +4 -3
- package/dist/types/controls/rich-text-v2/__tests__/fixtures/simple.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/__tests__/serialization.test.d.ts +2 -0
- package/dist/types/controls/rich-text-v2/__tests__/serialization.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/control.d.ts +102 -0
- package/dist/types/controls/rich-text-v2/control.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/index.d.ts +0 -2
- package/dist/types/controls/rich-text-v2/index.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/plugin.d.ts +9 -17
- package/dist/types/controls/rich-text-v2/plugin.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +863 -103
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/translation.d.ts +5 -4
- package/dist/types/controls/rich-text-v2/translation.d.ts.map +1 -1
- package/dist/types/controls/slot.d.ts +8 -54
- package/dist/types/controls/slot.d.ts.map +1 -1
- package/dist/types/controls/style-v2/index.d.ts +2 -0
- package/dist/types/controls/style-v2/index.d.ts.map +1 -0
- package/dist/types/controls/style-v2/style-v2.d.ts +10 -0
- package/dist/types/controls/style-v2/style-v2.d.ts.map +1 -0
- package/dist/types/controls/style-v2/style-v2.test.d.ts +2 -0
- package/dist/types/controls/style-v2/style-v2.test.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +2 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/locale.d.ts +1 -1
- package/dist/types/next/client.d.ts +16 -16
- package/dist/types/next/components/tests/controls/combobox-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/combobox-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/icon-radio-group-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/icon-radio-group-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/image-control.test.d.ts +3 -0
- package/dist/types/next/components/tests/controls/image-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/link-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/link-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/list-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/list-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/number-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/number-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +9 -5
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
- package/dist/types/next/components/tests/controls/select-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/select-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/shape-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/shape-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/slot-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/slot-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/style-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/style-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/text-area-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/text-area-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/text-input-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/text-input-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts +15 -2
- package/dist/types/next/components/tests/prop-controllers/page-prop-controller.d.ts.map +1 -1
- package/dist/types/prop-controllers/copy.d.ts +2 -2
- package/dist/types/prop-controllers/copy.d.ts.map +1 -1
- package/dist/types/prop-controllers/deleted.d.ts +1 -1
- package/dist/types/prop-controllers/deleted.d.ts.map +1 -1
- package/dist/types/prop-controllers/descriptors.d.ts +8 -27
- package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
- package/dist/types/prop-controllers/index.d.ts +3 -3
- package/dist/types/prop-controllers/index.d.ts.map +1 -1
- package/dist/types/prop-controllers/instances.d.ts +10 -72
- package/dist/types/prop-controllers/instances.d.ts.map +1 -1
- package/dist/types/prop-controllers/introspection.d.ts +2 -2
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/Element.d.ts +2 -2
- package/dist/types/runtimes/react/controls/checkbox.d.ts +3 -3
- package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/color.d.ts +3 -3
- package/dist/types/runtimes/react/controls/color.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/combobox.d.ts +3 -3
- package/dist/types/runtimes/react/controls/combobox.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/control.d.ts +7 -28
- package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/icon-radio-group.d.ts +3 -3
- package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/image.d.ts +3 -12
- package/dist/types/runtimes/react/controls/image.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/link.d.ts +3 -10
- package/dist/types/runtimes/react/controls/link.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/list.d.ts +7 -9
- package/dist/types/runtimes/react/controls/list.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/number.d.ts +3 -3
- package/dist/types/runtimes/react/controls/number.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts +1 -1
- package/dist/types/runtimes/react/controls/rich-text/EditableText/editable-text.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text/EditableText/useSyncWithBuilder.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts +3 -4
- package/dist/types/runtimes/react/controls/rich-text/ReadOnlyText.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text/components/Element/block.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/element.d.ts +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/element.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text/components/Element/inline.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text/rich-text.d.ts +4 -3
- package/dist/types/runtimes/react/controls/rich-text/rich-text.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts +4 -4
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/editable-text-v2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-element.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/render-leaf.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/usePresetValue.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts +2 -2
- package/dist/types/runtimes/react/controls/rich-text-v2/EditableTextV2/useRemoteChanges.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts +4 -3
- package/dist/types/runtimes/react/controls/rich-text-v2/ReadOnlyTextV2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts +4 -3
- package/dist/types/runtimes/react/controls/rich-text-v2/rich-text-v2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/select.d.ts +3 -3
- package/dist/types/runtimes/react/controls/select.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/shape.d.ts +7 -10
- package/dist/types/runtimes/react/controls/shape.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/slot.d.ts +3 -4
- package/dist/types/runtimes/react/controls/slot.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/style-v2.d.ts +7 -7
- package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/style.d.ts +2 -2
- package/dist/types/runtimes/react/controls/style.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/text-area.d.ts +3 -3
- package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/text-input.d.ts +3 -3
- package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/typography.d.ts +6 -6
- package/dist/types/runtimes/react/controls/typography.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
- package/dist/types/runtimes/react/poll-box-model.d.ts +1 -1
- package/dist/types/runtimes/react/poll-box-model.d.ts.map +1 -1
- package/dist/types/runtimes/react/react-runtime.d.ts +9 -18
- package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
- package/dist/types/runtimes/react/runtime-core.d.ts +19 -0
- package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -0
- package/dist/types/slate/BlockPlugin/clearBlockKeyForDevice.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/indent.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/index.d.ts +19 -41
- package/dist/types/slate/BlockPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/setBlockKeyForDevice.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/toggleList.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/types.d.ts +2 -2
- package/dist/types/slate/BlockPlugin/types.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/unwrapInline.d.ts +2 -2
- package/dist/types/slate/BlockPlugin/unwrapInline.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/utils/getSelectedListItems.d.ts +3 -2
- package/dist/types/slate/BlockPlugin/utils/getSelectedListItems.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/wrapInline.d.ts +2 -2
- package/dist/types/slate/BlockPlugin/wrapInline.d.ts.map +1 -1
- package/dist/types/slate/BlockPlugin/wrapList.d.ts +1 -1
- package/dist/types/slate/BlockPlugin/wrapList.d.ts.map +1 -1
- package/dist/types/slate/BuilderPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/InlineModePlugin/index.d.ts +79 -7
- package/dist/types/slate/InlineModePlugin/index.d.ts.map +1 -1
- package/dist/types/slate/InlinePlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/InlinePlugin/index.d.ts +22 -11
- package/dist/types/slate/InlinePlugin/index.d.ts.map +1 -1
- package/dist/types/slate/InlinePlugin/onChange.d.ts.map +1 -1
- package/dist/types/slate/InlinePlugin/types.d.ts +18 -6
- package/dist/types/slate/InlinePlugin/types.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/getValue.d.ts +36 -3
- package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/index.d.ts +40 -9
- package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/onChange.d.ts +4 -3
- package/dist/types/slate/LinkPlugin/onChange.d.ts.map +1 -1
- package/dist/types/slate/LinkPlugin/types.d.ts +3 -4
- package/dist/types/slate/LinkPlugin/types.d.ts.map +1 -1
- package/dist/types/slate/TextAlignPlugin/getValue.d.ts +2 -2
- package/dist/types/slate/TextAlignPlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/TextAlignPlugin/index.d.ts +21 -6
- package/dist/types/slate/TextAlignPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/detachActiveTypography.d.ts +1 -1
- package/dist/types/slate/TypographyPlugin/detachActiveTypography.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/getValue.d.ts +25 -2
- package/dist/types/slate/TypographyPlugin/getValue.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/index.d.ts +27 -3
- package/dist/types/slate/TypographyPlugin/index.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/normalizeTypographyDown.d.ts +2 -1
- package/dist/types/slate/TypographyPlugin/normalizeTypographyDown.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/normalizeTypographyUp.d.ts +1 -1
- package/dist/types/slate/TypographyPlugin/normalizeTypographyUp.d.ts.map +1 -1
- package/dist/types/slate/TypographyPlugin/setActiveTypographyStyle.d.ts.map +1 -1
- package/dist/types/slate/index.d.ts +4 -4
- package/dist/types/slate/index.d.ts.map +1 -1
- package/dist/types/slate/selectors.d.ts +7 -7
- package/dist/types/slate/selectors.d.ts.map +1 -1
- package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
- package/dist/types/slate/test-helpers/test-elements.d.ts +61 -5
- package/dist/types/slate/test-helpers/test-elements.d.ts.map +1 -1
- package/dist/types/slate/types.d.ts +1 -206
- package/dist/types/slate/types.d.ts.map +1 -1
- package/dist/types/slate/utils/editor.d.ts +4 -4
- package/dist/types/slate/utils/editor.d.ts.map +1 -1
- package/dist/types/slate/utils/element.d.ts +4 -12
- package/dist/types/slate/utils/element.d.ts.map +1 -1
- package/dist/types/slate/utils/responsive.d.ts +1 -1
- package/dist/types/slate/utils/responsive.d.ts.map +1 -1
- package/dist/types/slate/utils/toText.d.ts +3 -3
- package/dist/types/slate/utils/toText.d.ts.map +1 -1
- package/dist/types/state/actions.d.ts +3 -3
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/modules/box-models.d.ts +2 -1
- package/dist/types/state/modules/box-models.d.ts.map +1 -1
- package/dist/types/state/modules/breakpoints.d.ts +2 -4
- package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
- package/dist/types/state/modules/prop-controller-handles.d.ts +4 -4
- package/dist/types/state/modules/prop-controller-handles.d.ts.map +1 -1
- package/dist/types/state/modules/read-only-documents.d.ts +2 -15
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +55 -57
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/utils/tests/element-data-test-test.d.ts +29 -1
- package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
- package/package.json +16 -4
- package/dist/cjs/builder/serialization/controls/combobox.js +0 -45
- package/dist/cjs/builder/serialization/controls/combobox.js.map +0 -1
- package/dist/cjs/builder/serialization/controls/list.js +0 -50
- package/dist/cjs/builder/serialization/controls/list.js.map +0 -1
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js +0 -106
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js.map +0 -1
- package/dist/cjs/builder/serialization/controls/shape.js +0 -54
- package/dist/cjs/builder/serialization/controls/shape.js.map +0 -1
- package/dist/cjs/builder/serialization/controls/style-v2.js +0 -62
- package/dist/cjs/builder/serialization/controls/style-v2.js.map +0 -1
- package/dist/cjs/controls/image.js.map +0 -1
- package/dist/cjs/controls/list.js +0 -156
- package/dist/cjs/controls/list.js.map +0 -1
- package/dist/cjs/controls/rich-text/copy.js +0 -121
- package/dist/cjs/controls/rich-text/copy.js.map +0 -1
- package/dist/cjs/controls/rich-text/dto-types.js +0 -43
- package/dist/cjs/controls/rich-text/dto-types.js.map +0 -1
- package/dist/cjs/controls/rich-text/dto.js +0 -228
- package/dist/cjs/controls/rich-text/dto.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js +0 -77
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js +0 -176
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/index.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/list.js +0 -137
- package/dist/cjs/controls/rich-text/fixtures/list.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/typography.js +0 -926
- package/dist/cjs/controls/rich-text/fixtures/typography.js.map +0 -1
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js +0 -114
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js.map +0 -1
- package/dist/cjs/controls/rich-text/introspection.js +0 -104
- package/dist/cjs/controls/rich-text/introspection.js.map +0 -1
- package/dist/cjs/controls/rich-text-v2/copy.js +0 -115
- package/dist/cjs/controls/rich-text-v2/copy.js.map +0 -1
- package/dist/cjs/controls/rich-text-v2/dto.js +0 -44
- package/dist/cjs/controls/rich-text-v2/dto.js.map +0 -1
- package/dist/cjs/controls/rich-text-v2/introspection.js +0 -69
- package/dist/cjs/controls/rich-text-v2/introspection.js.map +0 -1
- package/dist/cjs/controls/select.js.map +0 -1
- package/dist/cjs/controls/shape.js +0 -149
- package/dist/cjs/controls/shape.js.map +0 -1
- package/dist/cjs/controls/style-v2.js +0 -74
- package/dist/cjs/controls/style-v2.js.map +0 -1
- package/dist/cjs/controls/style.js +0 -125
- package/dist/cjs/controls/style.js.map +0 -1
- package/dist/cjs/controls/typography.js +0 -47
- package/dist/cjs/controls/typography.js.map +0 -1
- package/dist/cjs/prop-controllers/base.js.map +0 -1
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +0 -48
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +0 -1
- package/dist/cjs/utils/index-signature-hack.js +0 -17
- package/dist/cjs/utils/index-signature-hack.js.map +0 -1
- package/dist/esm/builder/serialization/controls/combobox.js +0 -20
- package/dist/esm/builder/serialization/controls/combobox.js.map +0 -1
- package/dist/esm/builder/serialization/controls/list.js +0 -25
- package/dist/esm/builder/serialization/controls/list.js.map +0 -1
- package/dist/esm/builder/serialization/controls/rich-text-v2.js +0 -81
- package/dist/esm/builder/serialization/controls/rich-text-v2.js.map +0 -1
- package/dist/esm/builder/serialization/controls/shape.js +0 -32
- package/dist/esm/builder/serialization/controls/shape.js.map +0 -1
- package/dist/esm/builder/serialization/controls/style-v2.js +0 -37
- package/dist/esm/builder/serialization/controls/style-v2.js.map +0 -1
- package/dist/esm/controls/image.js +0 -10
- package/dist/esm/controls/image.js.map +0 -1
- package/dist/esm/controls/list.js +0 -132
- package/dist/esm/controls/list.js.map +0 -1
- package/dist/esm/controls/rich-text/copy.js +0 -97
- package/dist/esm/controls/rich-text/copy.js.map +0 -1
- package/dist/esm/controls/rich-text/dto-types.js +0 -19
- package/dist/esm/controls/rich-text/dto-types.js.map +0 -1
- package/dist/esm/controls/rich-text/dto.js +0 -203
- package/dist/esm/controls/rich-text/dto.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/blockquote.js +0 -53
- package/dist/esm/controls/rich-text/fixtures/blockquote.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js +0 -151
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/index.js +0 -4
- package/dist/esm/controls/rich-text/fixtures/index.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/list.js +0 -113
- package/dist/esm/controls/rich-text/fixtures/list.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/typography.js +0 -902
- package/dist/esm/controls/rich-text/fixtures/typography.js.map +0 -1
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js +0 -90
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js.map +0 -1
- package/dist/esm/controls/rich-text/introspection.js +0 -78
- package/dist/esm/controls/rich-text/introspection.js.map +0 -1
- package/dist/esm/controls/rich-text-v2/copy.js +0 -91
- package/dist/esm/controls/rich-text-v2/copy.js.map +0 -1
- package/dist/esm/controls/rich-text-v2/dto.js +0 -19
- package/dist/esm/controls/rich-text-v2/dto.js.map +0 -1
- package/dist/esm/controls/rich-text-v2/introspection.js +0 -43
- package/dist/esm/controls/rich-text-v2/introspection.js.map +0 -1
- package/dist/esm/controls/select.js +0 -9
- package/dist/esm/controls/select.js.map +0 -1
- package/dist/esm/controls/shape.js +0 -125
- package/dist/esm/controls/shape.js.map +0 -1
- package/dist/esm/controls/style-v2.js +0 -48
- package/dist/esm/controls/style-v2.js.map +0 -1
- package/dist/esm/controls/style.js +0 -95
- package/dist/esm/controls/style.js.map +0 -1
- package/dist/esm/controls/typography.js +0 -20
- package/dist/esm/controls/typography.js.map +0 -1
- package/dist/esm/prop-controllers/base.js +0 -10
- package/dist/esm/prop-controllers/base.js.map +0 -1
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +0 -24
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +0 -1
- package/dist/esm/utils/index-signature-hack.js +0 -1
- package/dist/esm/utils/index-signature-hack.js.map +0 -1
- package/dist/types/builder/serialization/controls/combobox.d.ts +0 -5
- package/dist/types/builder/serialization/controls/combobox.d.ts.map +0 -1
- package/dist/types/builder/serialization/controls/list.d.ts +0 -5
- package/dist/types/builder/serialization/controls/list.d.ts.map +0 -1
- package/dist/types/builder/serialization/controls/rich-text-v2.d.ts +0 -5
- package/dist/types/builder/serialization/controls/rich-text-v2.d.ts.map +0 -1
- package/dist/types/builder/serialization/controls/shape.d.ts +0 -5
- package/dist/types/builder/serialization/controls/shape.d.ts.map +0 -1
- package/dist/types/builder/serialization/controls/style-v2.d.ts +0 -5
- package/dist/types/builder/serialization/controls/style-v2.d.ts.map +0 -1
- package/dist/types/controls/image.d.ts +0 -4
- package/dist/types/controls/image.d.ts.map +0 -1
- package/dist/types/controls/image.test.d.ts +0 -2
- package/dist/types/controls/image.test.d.ts.map +0 -1
- package/dist/types/controls/link.test.d.ts +0 -2
- package/dist/types/controls/link.test.d.ts.map +0 -1
- package/dist/types/controls/list.d.ts +0 -78
- package/dist/types/controls/list.d.ts.map +0 -1
- package/dist/types/controls/rich-text/__tests__/copy.test.d.ts +0 -2
- package/dist/types/controls/rich-text/__tests__/copy.test.d.ts.map +0 -1
- package/dist/types/controls/rich-text/__tests__/dto.test.d.ts +0 -2
- package/dist/types/controls/rich-text/__tests__/dto.test.d.ts.map +0 -1
- package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts +0 -2
- package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts.map +0 -1
- package/dist/types/controls/rich-text/copy.d.ts +0 -4
- package/dist/types/controls/rich-text/copy.d.ts.map +0 -1
- package/dist/types/controls/rich-text/dto-types.d.ts +0 -132
- package/dist/types/controls/rich-text/dto-types.d.ts.map +0 -1
- package/dist/types/controls/rich-text/dto.d.ts +0 -8
- package/dist/types/controls/rich-text/dto.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/blockquote.d.ts +0 -3
- package/dist/types/controls/rich-text/fixtures/blockquote.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts +0 -4
- package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/index.d.ts +0 -4
- package/dist/types/controls/rich-text/fixtures/index.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/list.d.ts +0 -3
- package/dist/types/controls/rich-text/fixtures/list.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/typography.d.ts +0 -3
- package/dist/types/controls/rich-text/fixtures/typography.d.ts.map +0 -1
- package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts +0 -3
- package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts.map +0 -1
- package/dist/types/controls/rich-text/introspection.d.ts +0 -5
- package/dist/types/controls/rich-text/introspection.d.ts.map +0 -1
- package/dist/types/controls/rich-text-v2/copy.d.ts +0 -4
- package/dist/types/controls/rich-text-v2/copy.d.ts.map +0 -1
- package/dist/types/controls/rich-text-v2/dto.d.ts +0 -5
- package/dist/types/controls/rich-text-v2/dto.d.ts.map +0 -1
- package/dist/types/controls/rich-text-v2/introspection.d.ts +0 -5
- package/dist/types/controls/rich-text-v2/introspection.d.ts.map +0 -1
- package/dist/types/controls/select.d.ts +0 -22
- package/dist/types/controls/select.d.ts.map +0 -1
- package/dist/types/controls/shape.d.ts +0 -50
- package/dist/types/controls/shape.d.ts.map +0 -1
- package/dist/types/controls/style-v2.d.ts +0 -64
- package/dist/types/controls/style-v2.d.ts.map +0 -1
- package/dist/types/controls/style.d.ts +0 -179
- package/dist/types/controls/style.d.ts.map +0 -1
- package/dist/types/controls/typography.d.ts +0 -33
- package/dist/types/controls/typography.d.ts.map +0 -1
- package/dist/types/prop-controllers/base.d.ts +0 -7
- package/dist/types/prop-controllers/base.d.ts.map +0 -1
- package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +0 -16
- package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +0 -1
- package/dist/types/utils/index-signature-hack.d.ts +0 -4
- package/dist/types/utils/index-signature-hack.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/controls/rich-text-v2/plugin.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../src/controls/rich-text-v2/plugin.ts"],"sourcesContent":["import { type KeyboardEvent } from 'react'\nimport { type Editor } from 'slate'\nimport { type RenderElementProps, type RenderLeafProps } from 'slate-react'\nimport { ControlDefinition, type Data, type RichTextPluginControl } from '@makeswift/controls'\n\nexport type RenderElement = (props: RenderElementProps) => JSX.Element\nexport type RenderLeaf = (props: RenderLeafProps) => JSX.Element\n\nexport type RichTextV2Plugin<C extends RichTextPluginControl = RichTextPluginControl> = {\n control?: C\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 Plugin<Def extends ControlDefinition, ValueType extends Data>({\n control,\n withPlugin,\n onKeyDown,\n renderElement,\n renderLeaf,\n}: RichTextV2Plugin<RichTextPluginControl<Def, ValueType>>) {\n return { control, withPlugin, onKeyDown, renderElement, renderLeaf }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,OAA8D;AAAA,EAC5E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA4D;AAC1D,SAAO,EAAE,SAAS,YAAY,WAAW,eAAe,WAAW;AACrE;","names":[]}
|
|
@@ -29,153 +29,137 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var rich_text_v2_exports = {};
|
|
30
30
|
__export(rich_text_v2_exports, {
|
|
31
31
|
RichText: () => RichText,
|
|
32
|
-
RichTextV2Control: () => RichTextV2Control,
|
|
33
|
-
|
|
34
|
-
RichTextV2ControlType: () => RichTextV2ControlType,
|
|
35
|
-
RichTextV2Mode: () => RichTextV2Mode,
|
|
36
|
-
isRichTextV1Data: () => isRichTextV1Data
|
|
32
|
+
RichTextV2Control: () => import_control.RichTextV2Control,
|
|
33
|
+
RichTextV2Definition: () => RichTextV2Definition
|
|
37
34
|
});
|
|
38
35
|
module.exports = __toCommonJS(rich_text_v2_exports);
|
|
36
|
+
var import_zod = require("zod");
|
|
39
37
|
var import_corporate_ipsum = __toESM(require("corporate-ipsum"));
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var import_linkPluginWithoutRenderElement = require("../../slate/LinkPlugin/linkPluginWithoutRenderElement");
|
|
38
|
+
var import_controls = require("@makeswift/controls");
|
|
39
|
+
var import_LinkPlugin = require("../../slate/LinkPlugin");
|
|
43
40
|
var import_InlinePlugin = require("../../slate/InlinePlugin");
|
|
44
41
|
var import_TextAlignPlugin = require("../../slate/TextAlignPlugin");
|
|
45
42
|
var import_BlockPlugin = require("../../slate/BlockPlugin");
|
|
46
43
|
var import_TypographyPlugin = require("../../slate/TypographyPlugin");
|
|
47
44
|
var import_InlineModePlugin = require("../../slate/InlineModePlugin");
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
mode:
|
|
58
|
-
|
|
59
|
-
plugins: config?.mode === RichTextV2Mode.Inline ? [(0, import_InlineModePlugin.InlineModePlugin)()] : (
|
|
60
|
-
// Note: this plugin references a `renderElement`-less LinkPlugin to prevent a circular dependency
|
|
61
|
-
[(0, import_BlockPlugin.BlockPlugin)(), (0, import_TypographyPlugin.TypographyPlugin)(), (0, import_TextAlignPlugin.TextAlignPlugin)(), (0, import_InlinePlugin.InlinePlugin)(), (0, import_linkPluginWithoutRenderElement.LinkPlugin)()]
|
|
62
|
-
)
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
RichText.Mode = RichTextV2Mode;
|
|
67
|
-
const RichTextV2ControlMessageType = {
|
|
68
|
-
// COSMOS -> HOST
|
|
69
|
-
RESET_VALUE: "makeswift::controls::rich-text-v2::control-message::reset-value",
|
|
70
|
-
FOCUS: "makeswift::controls::rich-text-v2::control-message::focus",
|
|
71
|
-
RUN_PLUGIN_CONTROL_ACTION: "makeswift::controls::rich-text-v2::control-message::run-plugin-control-action",
|
|
72
|
-
// HOST -> COSMOS
|
|
73
|
-
SET_DEFAULT_VALUE: "makeswift::controls::rich-text-v2::control-message::set-default-value",
|
|
74
|
-
SET_PLUGIN_CONTROL_VALUE: "makeswift::controls::rich-text-v2::control-message::set-plugin-control-value",
|
|
75
|
-
ON_CHANGE: "makeswift::controls::rich-text-v2::control-message::on-change",
|
|
76
|
-
SELECT: "makeswift::controls::rich-text-v2::control-message::select",
|
|
77
|
-
SWITCH_TO_BUILD_MODE: "makeswift::controls::rich-text-v2::control-message::switch-to-build-mode",
|
|
78
|
-
CHANGE_BOX_MODEL: "makeswift::controls::rich-text-v2::control-message::change-box-model",
|
|
79
|
-
REDO: "makeswift::controls::rich-text-v2::control-message::redo",
|
|
80
|
-
UNDO: "makeswift::controls::rich-text-v2::control-message::undo"
|
|
81
|
-
};
|
|
82
|
-
class RichTextV2Control extends import_base.PropController {
|
|
83
|
-
editor = null;
|
|
84
|
-
defaultValue = null;
|
|
85
|
-
descriptor;
|
|
86
|
-
constructor(send, descriptor) {
|
|
87
|
-
super(send);
|
|
88
|
-
this.descriptor = descriptor;
|
|
89
|
-
this.send = send;
|
|
45
|
+
var import_slate = require("../../slate");
|
|
46
|
+
var import_plugin = require("./plugin");
|
|
47
|
+
var import_control = require("./control");
|
|
48
|
+
var import_translation = require("./translation");
|
|
49
|
+
class Definition extends import_controls.RichTextDefinition {
|
|
50
|
+
constructor({ mode, defaultValue }, plugins) {
|
|
51
|
+
super({
|
|
52
|
+
mode,
|
|
53
|
+
defaultValue: defaultValue ?? (mode === Definition.Mode.Inline ? "Edit this text" : Definition.generateParagraph()),
|
|
54
|
+
plugins: plugins ?? (mode === Definition.Mode.Inline ? [(0, import_InlineModePlugin.InlineModePlugin)()] : [(0, import_BlockPlugin.BlockPlugin)(), (0, import_TypographyPlugin.TypographyPlugin)(), (0, import_TextAlignPlugin.TextAlignPlugin)(), (0, import_InlinePlugin.InlinePlugin)(), (0, import_LinkPlugin.LinkPlugin)()])
|
|
55
|
+
});
|
|
90
56
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
case RichTextV2ControlMessageType.RESET_VALUE: {
|
|
100
|
-
if (this.defaultValue) {
|
|
101
|
-
this.editor.resetValue(this.defaultValue);
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
this.onLocalUserChange();
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
case RichTextV2ControlMessageType.RUN_PLUGIN_CONTROL_ACTION: {
|
|
109
|
-
this.descriptor.config.plugins?.at(message.pluginIndex)?.control?.onChange(this.editor, message.value);
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
57
|
+
static generateParagraph() {
|
|
58
|
+
return (0, import_corporate_ipsum.default)(3);
|
|
59
|
+
}
|
|
60
|
+
static deserialize(data, deserializeCallback) {
|
|
61
|
+
if (data.type !== Definition.type) {
|
|
62
|
+
throw new Error(`RichText: expected type ${Definition.type}, got ${data.type}`);
|
|
112
63
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
64
|
+
const { config } = Definition.fullSchema({
|
|
65
|
+
pluginDef: import_controls.SerializationSchema.deserializedRecord
|
|
66
|
+
}).definition.parse(data);
|
|
67
|
+
const { plugins, ...userConfig } = config;
|
|
68
|
+
return new RichTextV2Definition(
|
|
69
|
+
userConfig,
|
|
70
|
+
plugins.map(
|
|
71
|
+
({ control }) => control ? { control: { definition: deserializeCallback(control?.definition) } } : {}
|
|
72
|
+
)
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
static fullSchema({ pluginDef }) {
|
|
76
|
+
const baseSchema = super.schema;
|
|
77
|
+
const plugin = import_zod.z.object({
|
|
78
|
+
control: import_zod.z.object({
|
|
79
|
+
definition: pluginDef
|
|
80
|
+
}).optional()
|
|
81
|
+
});
|
|
82
|
+
const config = baseSchema.userConfig.extend({
|
|
83
|
+
defaultValue: import_zod.z.string(),
|
|
84
|
+
plugins: import_zod.z.array(plugin)
|
|
119
85
|
});
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
86
|
+
return {
|
|
87
|
+
...baseSchema,
|
|
88
|
+
config,
|
|
89
|
+
definition: import_zod.z.object({
|
|
90
|
+
type: baseSchema.type,
|
|
91
|
+
config
|
|
92
|
+
})
|
|
127
93
|
};
|
|
128
94
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
this.send({
|
|
132
|
-
type: RichTextV2ControlMessageType.SET_DEFAULT_VALUE,
|
|
133
|
-
value: defaultValue
|
|
134
|
-
});
|
|
95
|
+
get configSchema() {
|
|
96
|
+
return Definition.fullSchema({ pluginDef: import_zod.z.any() }).config;
|
|
135
97
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
return;
|
|
139
|
-
this.send({
|
|
140
|
-
type: RichTextV2ControlMessageType.ON_CHANGE,
|
|
141
|
-
value: (0, import_dto.richTextV2DescendentsToData)(this.editor.children, this.editor.currentKey)
|
|
142
|
-
});
|
|
98
|
+
createInstance(sendMessage) {
|
|
99
|
+
return new import_control.RichTextV2Control(sendMessage, this);
|
|
143
100
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (editor == null)
|
|
147
|
-
return;
|
|
148
|
-
this.send({
|
|
149
|
-
type: RichTextV2ControlMessageType.SET_PLUGIN_CONTROL_VALUE,
|
|
150
|
-
value: this.descriptor.config?.plugins?.map((plugin) => plugin?.control?.getValue(editor)) ?? []
|
|
151
|
-
});
|
|
101
|
+
getTranslatableData(data) {
|
|
102
|
+
return (0, import_translation.getTranslatableData)(Definition.dataToNodes(data), this.config.plugins);
|
|
152
103
|
}
|
|
153
|
-
|
|
154
|
-
|
|
104
|
+
mergeTranslatedData(data, translatedData, _context) {
|
|
105
|
+
if (translatedData == null)
|
|
106
|
+
return data;
|
|
107
|
+
const { descendants, ...rest } = Definition.normalizeData(data);
|
|
108
|
+
return {
|
|
109
|
+
...rest,
|
|
110
|
+
descendants: (0, import_translation.mergeTranslatedNodes)(
|
|
111
|
+
descendants,
|
|
112
|
+
translatedData,
|
|
113
|
+
this.config.plugins
|
|
114
|
+
)
|
|
115
|
+
};
|
|
155
116
|
}
|
|
156
|
-
|
|
157
|
-
|
|
117
|
+
serialize() {
|
|
118
|
+
const { plugins, ...config } = this.config;
|
|
119
|
+
const pluginDefs = plugins.map(
|
|
120
|
+
({ control }) => control ? {
|
|
121
|
+
control: {
|
|
122
|
+
definition: control.definition,
|
|
123
|
+
// FIXME: remove getValue/onChange stubs once we released a version of the builder
|
|
124
|
+
// built against the runtime where these can be optional
|
|
125
|
+
getValue: () => void 0,
|
|
126
|
+
onChange: () => {
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
} : {}
|
|
130
|
+
);
|
|
131
|
+
return (0, import_controls.serialize)(
|
|
132
|
+
{ ...config, plugins: pluginDefs },
|
|
133
|
+
{
|
|
134
|
+
type: Definition.type
|
|
135
|
+
}
|
|
136
|
+
);
|
|
158
137
|
}
|
|
159
|
-
|
|
160
|
-
this.
|
|
138
|
+
get pluginControls() {
|
|
139
|
+
return this.config.plugins.map((plugin) => plugin.control).filter(import_controls.isNotNil);
|
|
161
140
|
}
|
|
162
|
-
|
|
163
|
-
this.
|
|
141
|
+
pluginControlAt(index) {
|
|
142
|
+
return this.pluginControls[index];
|
|
164
143
|
}
|
|
165
|
-
|
|
166
|
-
|
|
144
|
+
toText(data) {
|
|
145
|
+
if (data == null)
|
|
146
|
+
return "";
|
|
147
|
+
return (0, import_slate.toText)(Definition.dataToNodes(data), this.config.mode ?? Definition.Mode.Block);
|
|
167
148
|
}
|
|
168
149
|
}
|
|
169
|
-
|
|
170
|
-
|
|
150
|
+
class RichTextV2Definition extends Definition {
|
|
151
|
+
}
|
|
152
|
+
function RichText(config) {
|
|
153
|
+
return new RichTextV2Definition(config ?? {});
|
|
171
154
|
}
|
|
155
|
+
RichText.Mode = Definition.Mode;
|
|
156
|
+
RichText.isV1Data = Definition.isV1Data;
|
|
157
|
+
RichText.dataToNodes = Definition.dataToNodes;
|
|
158
|
+
RichText.Plugin = import_plugin.Plugin;
|
|
172
159
|
// Annotate the CommonJS export names for ESM import in node:
|
|
173
160
|
0 && (module.exports = {
|
|
174
161
|
RichText,
|
|
175
162
|
RichTextV2Control,
|
|
176
|
-
|
|
177
|
-
RichTextV2ControlType,
|
|
178
|
-
RichTextV2Mode,
|
|
179
|
-
isRichTextV1Data
|
|
163
|
+
RichTextV2Definition
|
|
180
164
|
});
|
|
181
165
|
//# sourceMappingURL=rich-text-v2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/controls/rich-text-v2/rich-text-v2.ts"],"sourcesContent":["// @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"],"mappings":"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","names":["ipsum"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/controls/rich-text-v2/rich-text-v2.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { z } from 'zod'\n// @ts-expect-error: there are no types for 'corporate-ipsum'\nimport ipsum from 'corporate-ipsum'\n\nimport {\n RichTextDefinition as BaseRichTextDefinition,\n type Data,\n type SendMessage,\n type SerializedRecord,\n type DeserializedRecord,\n type SchemaType,\n type SchemaTypeAny,\n type MergeTranslatableDataContext,\n type RichTextPluginControl,\n type RichTextMode,\n isNotNil,\n ControlDefinition,\n SerializationSchema,\n serialize,\n} from '@makeswift/controls'\n\nimport { LinkPlugin } from '../../slate/LinkPlugin'\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 { toText } from '../../slate'\n\nimport { RichTextV2Plugin, Plugin } from './plugin'\nimport { RichTextV2Control } from './control'\nimport {\n getTranslatableData,\n mergeTranslatedNodes,\n type RichTextTranslationDto,\n} from './translation'\n\ntype DataType = z.infer<typeof Definition.schema.data>\ntype DataV2Type = z.infer<typeof Definition.schema.dataV2>\ntype InstanceType = RichTextV2Control\ntype UserConfig = z.infer<typeof Definition.schema.userConfig>\ntype Config = UserConfig & {\n defaultValue: string\n plugins: RichTextV2Plugin[]\n}\n\nclass Definition extends BaseRichTextDefinition<ReactNode, Config, InstanceType> {\n constructor({ mode, defaultValue }: UserConfig, plugins?: RichTextV2Plugin[]) {\n super({\n mode,\n defaultValue:\n defaultValue ??\n (mode === Definition.Mode.Inline ? 'Edit this text' : Definition.generateParagraph()),\n plugins:\n plugins ??\n (mode === Definition.Mode.Inline\n ? [InlineModePlugin()]\n : [BlockPlugin(), TypographyPlugin(), TextAlignPlugin(), InlinePlugin(), LinkPlugin()]),\n })\n }\n\n static generateParagraph(): string {\n return ipsum(3)\n }\n\n static deserialize(\n data: DeserializedRecord,\n deserializeCallback: (r: DeserializedRecord) => ControlDefinition,\n ): RichTextV2Definition {\n if (data.type !== Definition.type) {\n throw new Error(`RichText: expected type ${Definition.type}, got ${data.type}`)\n }\n\n const { config } = Definition.fullSchema({\n pluginDef: SerializationSchema.deserializedRecord,\n }).definition.parse(data)\n\n const { plugins, ...userConfig } = config\n\n return new RichTextV2Definition(\n userConfig,\n plugins.map(({ control }) =>\n control ? { control: { definition: deserializeCallback(control?.definition) } } : {},\n ),\n )\n }\n\n static fullSchema<S extends SchemaTypeAny>({ pluginDef }: { pluginDef: S }) {\n const baseSchema = super.schema\n const plugin = z.object({\n control: z\n .object({\n definition: pluginDef,\n })\n .optional(),\n })\n\n const config = baseSchema.userConfig.extend({\n defaultValue: z.string(),\n plugins: z.array(plugin),\n })\n\n return {\n ...baseSchema,\n config,\n definition: z.object({\n type: baseSchema.type,\n config,\n }),\n }\n }\n\n get configSchema(): SchemaType<Config> {\n return Definition.fullSchema({ pluginDef: z.any() as SchemaType<ControlDefinition> }).config\n }\n\n createInstance(sendMessage: SendMessage): InstanceType {\n return new RichTextV2Control(sendMessage, this)\n }\n\n getTranslatableData(data: DataType): Data {\n return getTranslatableData(Definition.dataToNodes(data), this.config.plugins)\n }\n\n mergeTranslatedData(\n data: DataType,\n translatedData: Data,\n _context: MergeTranslatableDataContext,\n ): Data {\n if (translatedData == null) return data as Data\n\n const { descendants, ...rest } = Definition.normalizeData(data)\n return {\n ...rest,\n descendants: mergeTranslatedNodes(\n descendants,\n translatedData as RichTextTranslationDto,\n this.config.plugins,\n ),\n }\n }\n\n serialize(): [SerializedRecord, Transferable[]] {\n const { plugins, ...config } = this.config\n\n // serialize only the plugin control definition, if any\n const pluginDefs = plugins.map(({ control }) =>\n control\n ? {\n control: {\n definition: control.definition,\n // FIXME: remove getValue/onChange stubs once we released a version of the builder\n // built against the runtime where these can be optional\n getValue: () => undefined,\n onChange: () => {},\n },\n }\n : {},\n )\n\n return serialize(\n { ...config, plugins: pluginDefs },\n {\n type: Definition.type,\n },\n )\n }\n\n get pluginControls(): RichTextPluginControl[] {\n return this.config.plugins.map(plugin => plugin.control).filter(isNotNil)\n }\n\n pluginControlAt(index: number): RichTextPluginControl | undefined {\n return this.pluginControls[index]\n }\n\n toText(data: DataType | undefined): string {\n if (data == null) return ''\n return toText(Definition.dataToNodes(data), this.config.mode ?? Definition.Mode.Block)\n }\n}\n\nexport class RichTextV2Definition extends Definition {}\n\nexport function RichText(config?: UserConfig): RichTextV2Definition {\n return new RichTextV2Definition(config ?? {})\n}\n\nRichText.Mode = Definition.Mode\nRichText.isV1Data = Definition.isV1Data\nRichText.dataToNodes = Definition.dataToNodes\nRichText.Plugin = Plugin\n\nexport { RichTextMode as RichTextV2Mode, type DataV2Type as RichTextDataV2, RichTextV2Control }\n"],"mappings":"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","names":["BaseRichTextDefinition","ipsum"]}
|
|
@@ -28,22 +28,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var translation_exports = {};
|
|
30
30
|
__export(translation_exports, {
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
getTranslatableData: () => getTranslatableData,
|
|
32
|
+
mergeTranslatedNodes: () => mergeTranslatedNodes
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(translation_exports);
|
|
35
35
|
var import_escape_html = __toESM(require("escape-html"));
|
|
36
|
-
var import_types = require("../../slate/types");
|
|
37
36
|
var import_slate = require("slate");
|
|
38
37
|
var import_slate_hyperscript = require("slate-hyperscript");
|
|
39
38
|
var import_parse5 = require("parse5");
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
var import_controls = require("@makeswift/controls");
|
|
40
|
+
var import_types = require("../../slate/types");
|
|
41
|
+
function createEditorWithPlugins(plugins) {
|
|
42
|
+
return plugins.reduceRight(
|
|
43
|
+
(editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,
|
|
44
|
+
(0, import_slate.createEditor)()
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
47
|
function pathToString(path) {
|
|
48
48
|
return path.join(":");
|
|
49
49
|
}
|
|
@@ -54,20 +54,16 @@ function getDescendantTranslatableData(descendant, path) {
|
|
|
54
54
|
if (import_slate.Text.isText(descendant)) {
|
|
55
55
|
return {};
|
|
56
56
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
(acc, d, j) => ({ ...acc, ...getDescendantTranslatableData(d, [...path, j]) }),
|
|
63
|
-
{}
|
|
64
|
-
);
|
|
65
|
-
default:
|
|
66
|
-
const text = getInlineOrTextTranslatableData(descendant);
|
|
67
|
-
if (text == null)
|
|
68
|
-
return {};
|
|
69
|
-
return { [pathToString(path)]: text };
|
|
57
|
+
if (import_controls.Slate.isList(descendant) || import_controls.Slate.isListItem(descendant)) {
|
|
58
|
+
return descendant.children.reduce(
|
|
59
|
+
(acc, d, j) => ({ ...acc, ...getDescendantTranslatableData(d, [...path, j]) }),
|
|
60
|
+
{}
|
|
61
|
+
);
|
|
70
62
|
}
|
|
63
|
+
const text = getInlineOrTextTranslatableData(descendant);
|
|
64
|
+
if (text == null)
|
|
65
|
+
return {};
|
|
66
|
+
return { [pathToString(path)]: text };
|
|
71
67
|
}
|
|
72
68
|
function getInlineOrTextTranslatableData(descendant, path = []) {
|
|
73
69
|
if (import_slate.Text.isText(descendant)) {
|
|
@@ -94,13 +90,9 @@ function getInlineOrTextTranslatableData(descendant, path = []) {
|
|
|
94
90
|
return children;
|
|
95
91
|
}
|
|
96
92
|
}
|
|
97
|
-
function
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
(editor2, plugin) => plugin?.withPlugin?.(editor2) ?? editor2,
|
|
101
|
-
(0, import_slate.createEditor)()
|
|
102
|
-
);
|
|
103
|
-
editor.children = data.descendants;
|
|
93
|
+
function getTranslatableData(nodes, plugins) {
|
|
94
|
+
const editor = createEditorWithPlugins(plugins);
|
|
95
|
+
editor.children = nodes;
|
|
104
96
|
editor.typographyNormalizationDirection = "up";
|
|
105
97
|
import_slate.Editor.normalize(editor, { force: true });
|
|
106
98
|
return editor.children.reduce(
|
|
@@ -118,9 +110,11 @@ function deserializeTranslationHtmlString(el, translationKey) {
|
|
|
118
110
|
children.push((0, import_slate_hyperscript.jsx)("text", {}, ""));
|
|
119
111
|
}
|
|
120
112
|
return children;
|
|
121
|
-
}
|
|
113
|
+
}
|
|
114
|
+
if (el.nodeName === "#text" && "value" in el) {
|
|
122
115
|
return [(0, import_slate_hyperscript.jsx)("text", { translationKey: translationKey ?? void 0 }, el.value)];
|
|
123
|
-
}
|
|
116
|
+
}
|
|
117
|
+
if ("namespaceURI" in el) {
|
|
124
118
|
const translationKey2 = el.attrs.find((a) => a.name === "key")?.value ?? void 0;
|
|
125
119
|
const children = Array.from(el.childNodes).map((element) => deserializeTranslationHtmlString(element, translationKey2)).flat();
|
|
126
120
|
if (children.length === 0) {
|
|
@@ -141,17 +135,10 @@ function deserializeTranslationHtmlString(el, translationKey) {
|
|
|
141
135
|
}
|
|
142
136
|
return [];
|
|
143
137
|
}
|
|
144
|
-
function
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
(0, import_slate.createEditor)()
|
|
149
|
-
);
|
|
150
|
-
const targetEditor = plugins.reduceRight(
|
|
151
|
-
(editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,
|
|
152
|
-
(0, import_slate.createEditor)()
|
|
153
|
-
);
|
|
154
|
-
sourceEditor.children = data.descendants;
|
|
138
|
+
function mergeTranslatedNodes(nodes, translatedData, plugins) {
|
|
139
|
+
const sourceEditor = createEditorWithPlugins(plugins);
|
|
140
|
+
const targetEditor = createEditorWithPlugins(plugins);
|
|
141
|
+
sourceEditor.children = nodes;
|
|
155
142
|
sourceEditor.typographyNormalizationDirection = "up";
|
|
156
143
|
import_slate.Editor.normalize(sourceEditor, { force: true });
|
|
157
144
|
Object.entries(translatedData).reverse().forEach(([blockStringPath, htmlString]) => {
|
|
@@ -164,7 +151,7 @@ function mergeRichTextV2TranslatedData(definition, data, translatedData) {
|
|
|
164
151
|
targetEditor.typographyNormalizationDirection = "neutral";
|
|
165
152
|
import_slate.Editor.normalize(targetEditor, { force: true });
|
|
166
153
|
for (const [descendant, absolutePathToTargetNode] of import_slate.Node.descendants(targetEditor)) {
|
|
167
|
-
if (!import_slate.Text.isText(descendant) && !
|
|
154
|
+
if (!import_slate.Text.isText(descendant) && !import_controls.Slate.isInline(descendant) || descendant.translationKey == null || descendant.translationKey === "") {
|
|
168
155
|
continue;
|
|
169
156
|
}
|
|
170
157
|
const relativePathToSourceNode = stringToPath(descendant.translationKey);
|
|
@@ -174,7 +161,7 @@ function mergeRichTextV2TranslatedData(definition, data, translatedData) {
|
|
|
174
161
|
const { translationKey, text, ...rest } = sourceNode;
|
|
175
162
|
import_slate.Transforms.setNodes(targetEditor, rest, { at: absolutePathToTargetNode });
|
|
176
163
|
import_slate.Transforms.unsetNodes(targetEditor, "translationKey", { at: absolutePathToTargetNode });
|
|
177
|
-
} else if (
|
|
164
|
+
} else if (import_controls.Slate.isInline(sourceNode) && import_controls.Slate.isInline(descendant)) {
|
|
178
165
|
const { translationKey, children, ...rest } = sourceNode;
|
|
179
166
|
import_slate.Transforms.setNodes(targetEditor, rest, { at: absolutePathToTargetNode });
|
|
180
167
|
import_slate.Transforms.unsetNodes(targetEditor, "translationKey", { at: absolutePathToTargetNode });
|
|
@@ -190,11 +177,11 @@ function mergeRichTextV2TranslatedData(definition, data, translatedData) {
|
|
|
190
177
|
});
|
|
191
178
|
sourceEditor.typographyNormalizationDirection = "down";
|
|
192
179
|
import_slate.Editor.normalize(sourceEditor, { force: true });
|
|
193
|
-
return
|
|
180
|
+
return sourceEditor.children;
|
|
194
181
|
}
|
|
195
182
|
// Annotate the CommonJS export names for ESM import in node:
|
|
196
183
|
0 && (module.exports = {
|
|
197
|
-
|
|
198
|
-
|
|
184
|
+
getTranslatableData,
|
|
185
|
+
mergeTranslatedNodes
|
|
199
186
|
});
|
|
200
187
|
//# sourceMappingURL=translation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/controls/rich-text-v2/translation.ts"],"sourcesContent":["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"],"mappings":"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","names":["escapeHtml","editor","translationKey"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/controls/rich-text-v2/translation.ts"],"sourcesContent":["import escapeHtml from 'escape-html'\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 { type TranslationDto, Slate } from '@makeswift/controls'\n\nimport { RichTextV2Plugin } from './plugin'\nimport { type MakeswiftEditor, BlockType, InlineType } from '../../slate/types'\n\nfunction createEditorWithPlugins(plugins: RichTextV2Plugin[]): MakeswiftEditor {\n return plugins.reduceRight(\n (editor, plugin) => plugin?.withPlugin?.(editor) ?? editor,\n createEditor(),\n )\n}\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 if (Slate.isList(descendant) || Slate.isListItem(descendant)) {\n return descendant.children.reduce(\n (acc, d, j) => ({ ...acc, ...getDescendantTranslatableData(d, [...path, j]) }),\n {},\n )\n }\n\n const text = getInlineOrTextTranslatableData(descendant)\n if (text == null) return {}\n\n return { [pathToString(path)]: text }\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\n case InlineType.SuperScript:\n return `<sup key=\"${pathToString(path)}\">${children}</sup>`\n\n case InlineType.SubScript:\n return `<sub key=\"${pathToString(path)}\">${children}</sub>`\n\n case InlineType.Code:\n return `<code key=\"${pathToString(path)}\">${children}</code>`\n\n default:\n return children\n }\n}\n\nexport type RichTextTranslationDto = Record<string, string>\n\nexport function getTranslatableData(\n nodes: Slate.Descendant[],\n plugins: RichTextV2Plugin[],\n): RichTextTranslationDto {\n const editor = createEditorWithPlugins(plugins)\n\n editor.children = nodes\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 }\n\n if (el.nodeName === '#text' && 'value' in el) {\n return [jsx('text', { translationKey: translationKey ?? undefined }, el.value)]\n }\n\n 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\n case 'sub':\n return [jsx('element', { type: InlineType.SubScript, translationKey }, children)]\n\n case 'sup':\n return [jsx('element', { type: InlineType.SuperScript, translationKey }, children)]\n\n case 'a':\n return [jsx('element', { type: InlineType.Link, translationKey }, children)]\n\n default:\n return children\n }\n }\n\n return []\n}\n\nexport function mergeTranslatedNodes(\n nodes: Slate.Descendant[],\n translatedData: RichTextTranslationDto,\n plugins: RichTextV2Plugin[],\n): Slate.Descendant[] {\n const sourceEditor = createEditorWithPlugins(plugins)\n const targetEditor = createEditorWithPlugins(plugins)\n\n sourceEditor.children = nodes\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) && !Slate.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 (Slate.isInline(sourceNode) && Slate.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 sourceEditor.children\n}\n"],"mappings":"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","names":["escapeHtml","translationKey"]}
|
|
@@ -19,74 +19,28 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var slot_exports = {};
|
|
20
20
|
__export(slot_exports, {
|
|
21
21
|
Slot: () => Slot,
|
|
22
|
-
SlotControl: () => SlotControl,
|
|
23
|
-
|
|
24
|
-
SlotControlType: () => SlotControlType,
|
|
25
|
-
copySlotData: () => copySlotData,
|
|
26
|
-
mergeSlotControlTranslatedData: () => mergeSlotControlTranslatedData,
|
|
27
|
-
mergeSlotData: () => mergeSlotData
|
|
22
|
+
SlotControl: () => import_controls.SlotControl,
|
|
23
|
+
SlotDefinition: () => SlotDefinition
|
|
28
24
|
});
|
|
29
25
|
module.exports = __toCommonJS(slot_exports);
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
const SlotControlType = "makeswift::controls::slot";
|
|
33
|
-
function Slot() {
|
|
34
|
-
return { type: SlotControlType };
|
|
26
|
+
var import_controls = require("@makeswift/controls");
|
|
27
|
+
class BaseDefinition extends import_controls.SlotDefinition {
|
|
35
28
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
43
|
-
changeContainerBoxModel(boxModel) {
|
|
44
|
-
this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } });
|
|
45
|
-
}
|
|
46
|
-
changeItemBoxModel(index, boxModel) {
|
|
47
|
-
this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } });
|
|
29
|
+
class SlotDefinition extends BaseDefinition {
|
|
30
|
+
static deserialize(data) {
|
|
31
|
+
if (data.type !== SlotDefinition.type) {
|
|
32
|
+
throw new Error(`Slot: expected type ${SlotDefinition.type}, got ${data.type}`);
|
|
33
|
+
}
|
|
34
|
+
return Slot();
|
|
48
35
|
}
|
|
49
36
|
}
|
|
50
|
-
function
|
|
51
|
-
|
|
52
|
-
return value;
|
|
53
|
-
return {
|
|
54
|
-
...value,
|
|
55
|
-
elements: value.elements.map((element) => context.copyElement(element))
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function mergeSlotData(base = { columns: [], elements: [] }, override = { columns: [], elements: [] }, context) {
|
|
59
|
-
const mergedColumns = base.columns;
|
|
60
|
-
const mergedElements = base.elements.flatMap((baseElement) => {
|
|
61
|
-
const overrideElement = override.elements.find(
|
|
62
|
-
(e) => baseElement.type === e.type && baseElement.key === e.key
|
|
63
|
-
);
|
|
64
|
-
if (overrideElement == null)
|
|
65
|
-
return [baseElement];
|
|
66
|
-
if (overrideElement.deleted)
|
|
67
|
-
return [];
|
|
68
|
-
if ((0, import_react_page.isElementReference)(overrideElement))
|
|
69
|
-
return [overrideElement];
|
|
70
|
-
if ((0, import_react_page.isElementReference)(baseElement))
|
|
71
|
-
return [baseElement];
|
|
72
|
-
return context.mergeElement(baseElement, overrideElement);
|
|
73
|
-
});
|
|
74
|
-
return { columns: mergedColumns, elements: mergedElements };
|
|
75
|
-
}
|
|
76
|
-
function mergeSlotControlTranslatedData(data, context) {
|
|
77
|
-
return {
|
|
78
|
-
...data,
|
|
79
|
-
elements: data.elements.map((element) => context.mergeTranslatedData(element))
|
|
80
|
-
};
|
|
37
|
+
function Slot() {
|
|
38
|
+
return new SlotDefinition();
|
|
81
39
|
}
|
|
82
40
|
// Annotate the CommonJS export names for ESM import in node:
|
|
83
41
|
0 && (module.exports = {
|
|
84
42
|
Slot,
|
|
85
43
|
SlotControl,
|
|
86
|
-
|
|
87
|
-
SlotControlType,
|
|
88
|
-
copySlotData,
|
|
89
|
-
mergeSlotControlTranslatedData,
|
|
90
|
-
mergeSlotData
|
|
44
|
+
SlotDefinition
|
|
91
45
|
});
|
|
92
46
|
//# sourceMappingURL=slot.js.map
|