@gxpl/sdk 0.0.7 → 0.0.9
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/{dist → lib}/index.d.ts +4 -8
- package/lib/index.js +1 -4
- package/{dist → lib}/sdk/Client/Client.d.ts +0 -2
- package/{dist → lib}/sdk/Client/Client.js +0 -11
- package/lib/sdk/FontFaceGenerator/FontFaceGenerator.js +28 -0
- package/lib/sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager.js +221 -0
- package/lib/sdk/VideoDecoder/VideoDecoder.js +184 -0
- package/{dist → lib}/sdk/schemas/article/Article.schema.d.ts +52 -57
- package/{dist → lib}/sdk/schemas/article/Article.schema.js +1 -1
- package/{dist → lib}/sdk/schemas/article/Item.schema.js +64 -84
- package/{dist → lib}/sdk/schemas/article/ItemBase.schema.d.ts +25 -28
- package/{dist → lib}/sdk/schemas/article/ItemBase.schema.js +3 -4
- package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.d.ts +102 -110
- package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.js +9 -11
- package/{dist → lib}/sdk/schemas/article/Section.schema.d.ts +23 -26
- package/{dist → lib}/sdk/schemas/article/Section.schema.js +4 -5
- package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.d.ts +0 -90
- package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.js +0 -1
- package/{dist → lib}/sdk/schemas/project/Project.schema.d.ts +3 -28
- package/{dist → lib}/sdk/schemas/project/Project.schema.js +1 -2
- package/{dist → lib}/sdk/types/article/Article.d.ts +1 -1
- package/{dist → lib}/sdk/types/article/Item.d.ts +75 -114
- package/{dist → lib}/sdk/types/article/Section.d.ts +4 -5
- package/{dist → lib}/sdk/types/keyframe/Keyframe.d.ts +1 -2
- package/{dist → lib}/sdk/types/project/Project.d.ts +1 -2
- package/lib/sdk/types/project/Project.js +2 -0
- package/lib/sdk-nextjs/common/useExemplary.js +9 -0
- package/lib/sdk-nextjs/common/useItemFXData.js +36 -0
- package/{dist → lib}/sdk-nextjs/common/useKeyframeValue.d.ts +1 -1
- package/lib/sdk-nextjs/common/useKeyframeValue.js +72 -0
- package/lib/sdk-nextjs/common/useLayoutDeviation.d.ts +5 -0
- package/lib/sdk-nextjs/common/useLayoutDeviation.js +20 -0
- package/lib/sdk-nextjs/common/useRegisterResize.js +22 -0
- package/lib/sdk-nextjs/components/Article.js +41 -0
- package/lib/sdk-nextjs/components/ArticleWrapper.js +11 -0
- package/lib/sdk-nextjs/components/Head.js +32 -0
- package/lib/sdk-nextjs/components/Page.js +20 -0
- package/{dist → lib}/sdk-nextjs/components/ScrollPlaybackVideo.d.ts +1 -1
- package/lib/sdk-nextjs/components/ScrollPlaybackVideo.js +46 -0
- package/lib/sdk-nextjs/components/Section/Section.js +66 -0
- package/lib/sdk-nextjs/components/Section/SectionImage.js +24 -0
- package/lib/sdk-nextjs/components/Section/SectionVideo.js +91 -0
- package/lib/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +1 -0
- package/lib/sdk-nextjs/components/Section/useSectionHeightMap.js +12 -0
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.js +101 -0
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +5 -0
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.js +10 -0
- package/lib/sdk-nextjs/components/items/ComponentItem/ComponentItem.js +41 -0
- package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/useComponentItem.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/ComponentItem/useComponentItem.js +13 -0
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundChild.js +96 -0
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundItem.js +47 -0
- package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/useCompoundItem.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/CompoundItem/useCompoundItem.js +9 -0
- package/lib/sdk-nextjs/components/items/CustomItem/CustomItem.js +35 -0
- package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.js +161 -0
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.js +154 -0
- package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.d.ts +3 -3
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.js +12 -0
- package/lib/sdk-nextjs/components/items/FileItem/ImageItem.js +134 -0
- package/lib/sdk-nextjs/components/items/FileItem/VideoItem.js +216 -0
- package/lib/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +8 -0
- package/lib/sdk-nextjs/components/items/FileItem/useFileItem.js +21 -0
- package/lib/sdk-nextjs/components/items/GroupItem/GroupItem.js +45 -0
- package/{dist → lib}/sdk-nextjs/components/items/GroupItem/useGroupItem.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/GroupItem/useGroupItem.js +10 -0
- package/lib/sdk-nextjs/components/items/Item.js +150 -0
- package/{dist → lib}/sdk-nextjs/components/items/LinkWrapper.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/LinkWrapper.js +27 -0
- package/lib/sdk-nextjs/components/items/RectangleItem/RectangleItem.js +120 -0
- package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +9 -0
- package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.js +22 -0
- package/lib/sdk-nextjs/components/items/RichTextItem/RichTextItem.js +75 -0
- package/lib/sdk-nextjs/components/items/RichTextItem/useRichTextItem.js +12 -0
- package/lib/sdk-nextjs/components/items/RichTextWrapper.js +10 -0
- package/lib/sdk-nextjs/components/items/itemsMap.js +28 -0
- package/lib/sdk-nextjs/components/items/useDraggable.js +177 -0
- package/{dist → lib}/sdk-nextjs/components/items/useItemAngle.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/useItemAngle.js +10 -0
- package/{dist → lib}/sdk-nextjs/components/items/useItemArea.d.ts +4 -4
- package/lib/sdk-nextjs/components/items/useItemArea.js +15 -0
- package/lib/sdk-nextjs/components/items/useItemPointerEvents.js +23 -0
- package/{dist → lib}/sdk-nextjs/components/items/useItemScale.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/useItemScale.js +10 -0
- package/lib/sdk-nextjs/components/items/useItemTriggers.js +16 -0
- package/lib/sdk-nextjs/components/items/useRichTextItemValues.d.ts +9 -0
- package/lib/sdk-nextjs/components/items/useRichTextItemValues.js +16 -0
- package/lib/sdk-nextjs/components/items/useSizing.js +20 -0
- package/lib/sdk-nextjs/components/items/useStickyItemTop.js +11 -0
- package/{dist → lib}/sdk-nextjs/interactions/CSSPropertyNameMap.d.ts +2 -2
- package/lib/sdk-nextjs/interactions/CSSPropertyNameMap.js +38 -0
- package/{dist → lib}/sdk-nextjs/interactions/InteractionsRegistry.d.ts +1 -1
- package/lib/sdk-nextjs/interactions/InteractionsRegistry.js +355 -0
- package/lib/sdk-nextjs/interactions/ItemInteractionCtrl.js +72 -0
- package/lib/sdk-nextjs/interactions/getTransition.js +20 -0
- package/{dist → lib}/sdk-nextjs/interactions/types.d.ts +3 -3
- package/lib/sdk-nextjs/interactions/useItemInteractionCtrl.js +16 -0
- package/{dist → lib}/sdk-nextjs/provider/ArticleRectContext.d.ts +1 -1
- package/lib/sdk-nextjs/provider/ArticleRectContext.js +5 -0
- package/{dist → lib}/sdk-nextjs/provider/CntrlContext.d.ts +1 -1
- package/lib/sdk-nextjs/provider/CntrlContext.js +6 -0
- package/lib/sdk-nextjs/provider/CntrlProvider.js +10 -0
- package/{dist → lib}/sdk-nextjs/provider/CntrlSdkContext.d.ts +5 -6
- package/lib/sdk-nextjs/provider/CntrlSdkContext.js +76 -0
- package/lib/sdk-nextjs/provider/CustomItemRegistry.js +16 -0
- package/{dist → lib}/sdk-nextjs/provider/CustomSectionRegistry.d.ts +1 -1
- package/lib/sdk-nextjs/provider/CustomSectionRegistry.js +21 -0
- package/{dist → lib}/sdk-nextjs/provider/InteractionsContext.d.ts +1 -1
- package/lib/sdk-nextjs/provider/InteractionsContext.js +48 -0
- package/{dist → lib}/sdk-nextjs/provider/Keyframes.d.ts +1 -1
- package/lib/sdk-nextjs/provider/Keyframes.js +12 -0
- package/lib/sdk-nextjs/provider/KeyframesContext.d.ts +2 -0
- package/lib/sdk-nextjs/provider/KeyframesContext.js +6 -0
- package/{dist → lib}/sdk-nextjs/provider/WebGLContextManagerContext.d.ts +1 -1
- package/lib/sdk-nextjs/provider/WebGLContextManagerContext.js +6 -0
- package/lib/sdk-nextjs/provider/defaultContext.js +9 -0
- package/lib/sdk-nextjs/provider/useCntrlContext.js +9 -0
- package/lib/sdk-nextjs/utils/Animator/Animator.js +443 -0
- package/lib/sdk-nextjs/utils/ArticleRectManager/ArticleRectObserver.js +88 -0
- package/lib/sdk-nextjs/utils/ArticleRectManager/useArticleRectObserver.js +18 -0
- package/lib/sdk-nextjs/utils/ArticleRectManager/useSectionRegistry.js +14 -0
- package/lib/sdk-nextjs/utils/EventEmitter.js +37 -0
- package/{dist → lib}/sdk-nextjs/utils/RichTextConverter/RichTextConverter.d.ts +1 -2
- package/lib/sdk-nextjs/utils/RichTextConverter/RichTextConverter.js +263 -0
- package/lib/sdk-nextjs/utils/ScaleAnchorMap.js +15 -0
- package/lib/sdk-nextjs/utils/Youtube/YouTubeIframeApiLoader.js +64 -0
- package/lib/sdk-nextjs/utils/Youtube/YoutubeIframeApi.js +12 -0
- package/lib/sdk-nextjs/utils/Youtube/useYouTubeIframeApi.js +13 -0
- package/lib/sdk-nextjs/utils/areFillsVisible/areFillsVisible.js +22 -0
- package/lib/sdk-nextjs/utils/binSearchInsertAt.js +35 -0
- package/lib/sdk-nextjs/utils/checkOverflowClipSupport.js +18 -0
- package/lib/sdk-nextjs/utils/effects/useImageFx.js +114 -0
- package/lib/sdk-nextjs/utils/effects/useVideoFx.js +117 -0
- package/lib/sdk-nextjs/utils/getAnchoredItemTop.js +14 -0
- package/lib/sdk-nextjs/utils/getCompoundBoundaryStyles.js +60 -0
- package/lib/sdk-nextjs/utils/getFill.js +42 -0
- package/lib/sdk-nextjs/utils/getFontFamilyValue.js +6 -0
- package/lib/sdk-nextjs/utils/getItemTopStyle.js +17 -0
- package/lib/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +1 -0
- package/lib/sdk-nextjs/utils/getStyleFromItemStateAndParams.js +8 -0
- package/lib/sdk-nextjs/utils/getValidYoutubeUrl.js +33 -0
- package/lib/sdk-nextjs/utils/isItemType.js +6 -0
- package/lib/sdk-nextjs/utils/rangeMap.js +11 -0
- package/lib/sdk-nextjs/utils/useElementRect.js +24 -0
- package/package.json +3 -3
- package/dist/cli.d.ts +0 -10
- package/dist/cli.js +0 -64
- package/dist/index.js +0 -7765
- package/dist/index.mjs +0 -7748
- package/dist/sdk/Client/Client.test.d.ts +0 -1
- package/dist/sdk/Client/__mock__/articleMock.d.ts +0 -2
- package/dist/sdk/Client/__mock__/keyframesMock.d.ts +0 -2
- package/dist/sdk/Client/__mock__/projectMock.d.ts +0 -2
- package/dist/sdk/Components/ControlSlider/ControlSlider.d.ts +0 -90
- package/dist/sdk/Components/ControlSlider/ControlSliderComponent.d.ts +0 -519
- package/dist/sdk/Components/ImageRevealSlider/ControlImageRevealSliderComponent.d.ts +0 -209
- package/dist/sdk/Components/ImageRevealSlider/ImageRevealSlider.d.ts +0 -38
- package/dist/sdk/Components/components.d.ts +0 -2
- package/dist/sdk/Components/helpers/RichTextRenderer/RichTextRenderer.d.ts +0 -6
- package/dist/sdk/Components/helpers/SvgImage/SvgImage.d.ts +0 -9
- package/dist/sdk/Components/utils/scalingValue.d.ts +0 -1
- package/dist/sdk/FontFaceGenerator/FontFaceGenerator.test.d.ts +0 -1
- package/dist/sdk/schemas/project/Layout.schema.d.ts +0 -17
- package/dist/sdk/schemas/project/Layout.schema.js +0 -10
- package/dist/sdk/schemas/shared/FillLayer.schema.d.ts +0 -186
- package/dist/sdk/types/component/Component.d.ts +0 -15
- package/dist/sdk/types/project/Layout.d.ts +0 -6
- package/dist/sdk-nextjs/common/useCurrentLayout.d.ts +0 -6
- package/dist/sdk-nextjs/components/LayoutStyle.d.ts +0 -9
- package/dist/sdk-nextjs/components/Section/useSectionColor.d.ts +0 -4
- package/dist/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +0 -3
- package/dist/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +0 -7
- package/dist/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +0 -8
- package/dist/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +0 -9
- package/dist/sdk-nextjs/components/items/useRichTextItemValues.d.ts +0 -9
- package/dist/sdk-nextjs/components/useLayoutContext.d.ts +0 -1
- package/dist/sdk-nextjs/provider/KeyframesContext.d.ts +0 -2
- package/dist/sdk-nextjs/provider/LayoutContext.d.ts +0 -1
- package/dist/sdk-nextjs/utils/StickyManager/StickyManager.d.ts +0 -10
- package/dist/sdk-nextjs/utils/areFillsVisible/areFillsVisible.test.d.ts +0 -1
- package/dist/sdk-nextjs/utils/castObject.d.ts +0 -5
- package/dist/sdk-nextjs/utils/getInvertedRanges.d.ts +0 -10
- package/dist/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +0 -1
- package/dist/sdk.css +0 -1
- package/dist/utils.d.ts +0 -3
- package/lib/cli.js +0 -64
- package/{dist → lib}/sdk/FontFaceGenerator/FontFaceGenerator.d.ts +0 -0
- package/{dist → lib}/sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager.d.ts +0 -0
- package/{dist → lib}/sdk/VideoDecoder/VideoDecoder.d.ts +0 -0
- package/{dist → lib}/sdk/schemas/article/FillLayer.schema.d.ts +0 -0
- package/{dist → lib}/sdk/schemas/article/FillLayer.schema.js +0 -0
- package/{dist → lib}/sdk/schemas/article/Interaction.schema.d.ts +0 -0
- package/{dist → lib}/sdk/schemas/article/Interaction.schema.js +0 -0
- package/{dist → lib}/sdk/schemas/article/Item.schema.d.ts +0 -0
- package/{dist → lib}/sdk/schemas/article/ItemArea.schema.d.ts +0 -0
- package/{dist → lib}/sdk/schemas/article/ItemArea.schema.js +0 -0
- package/{dist → lib}/sdk/schemas/article/ItemState.schema.d.ts +76 -76
- /package/{dist → lib}/sdk/schemas/article/ItemState.schema.js +0 -0
- /package/{dist/sdk/types/article/FX.js → lib/sdk/types/article/Article.js} +0 -0
- /package/{dist → lib}/sdk/types/article/ArticleItemType.d.ts +0 -0
- /package/{dist → lib}/sdk/types/article/ArticleItemType.js +0 -0
- /package/{dist → lib}/sdk/types/article/CompoundSettings.d.ts +0 -0
- /package/{dist/sdk/types/article/Interaction.js → lib/sdk/types/article/CompoundSettings.js} +0 -0
- /package/{dist → lib}/sdk/types/article/FX.d.ts +0 -0
- /package/{dist/sdk/types/project/Layout.js → lib/sdk/types/article/FX.js} +0 -0
- /package/{dist → lib}/sdk/types/article/Interaction.d.ts +0 -0
- /package/{dist/sdk/types/project/Meta.js → lib/sdk/types/article/Interaction.js} +0 -0
- /package/{dist → lib}/sdk/types/article/Item.js +0 -0
- /package/{dist → lib}/sdk/types/article/ItemArea.d.ts +0 -0
- /package/{dist → lib}/sdk/types/article/ItemArea.js +0 -0
- /package/{dist → lib}/sdk/types/article/ItemState.d.ts +0 -0
- /package/{dist → lib}/sdk/types/article/ItemState.js +0 -0
- /package/{dist → lib}/sdk/types/article/RichText.d.ts +0 -0
- /package/{dist → lib}/sdk/types/article/RichText.js +0 -0
- /package/{dist → lib}/sdk/types/article/Section.js +0 -0
- /package/{dist → lib}/sdk/types/keyframe/Keyframe.js +0 -0
- /package/{dist → lib}/sdk/types/project/Fonts.d.ts +0 -0
- /package/{dist → lib}/sdk/types/project/Fonts.js +0 -0
- /package/{dist → lib}/sdk/types/project/Meta.d.ts +0 -0
- /package/{dist/sdk/types/project/Page.js → lib/sdk/types/project/Meta.js} +0 -0
- /package/{dist → lib}/sdk/types/project/Page.d.ts +0 -0
- /package/{dist/sdk/types/project/Project.js → lib/sdk/types/project/Page.js} +0 -0
- /package/{dist → lib}/sdk-nextjs/common/useExemplary.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/common/useItemFXData.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/common/useRegisterResize.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Article.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/ArticleWrapper.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Head.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Page.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Section/Section.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Section/SectionImage.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/Section/SectionVideo.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/ComponentItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/CompoundChild.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/CompoundItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CustomItem/CustomItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/FileItem/ImageItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/FileItem/VideoItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/GroupItem/GroupItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/Item.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/RectangleItem/RectangleItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/RichTextItem/RichTextItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/RichTextItem/useRichTextItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/RichTextWrapper.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/itemsMap.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useDraggable.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemPointerEvents.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemTriggers.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useSizing.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useStickyItemTop.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/interactions/ItemInteractionCtrl.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/interactions/getTransition.d.ts +0 -0
- /package/{dist/sdk/types/article/Article.js → lib/sdk-nextjs/interactions/types.js} +0 -0
- /package/{dist → lib}/sdk-nextjs/interactions/useItemInteractionCtrl.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/provider/CntrlProvider.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/provider/CustomItemRegistry.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/provider/CustomItemTypes.d.ts +0 -0
- /package/{dist/sdk/types/article/CompoundSettings.js → lib/sdk-nextjs/provider/CustomItemTypes.js} +0 -0
- /package/{dist → lib}/sdk-nextjs/provider/defaultContext.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/provider/useCntrlContext.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/Animator/Animator.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/ArticleRectObserver.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/useArticleRectObserver.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/useSectionRegistry.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/EventEmitter.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/ScaleAnchorMap.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/Youtube/YouTubeIframeApiLoader.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/Youtube/YoutubeIframeApi.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/Youtube/useYouTubeIframeApi.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/areFillsVisible/areFillsVisible.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/binSearchInsertAt.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/checkOverflowClipSupport.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/effects/useImageFx.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/effects/useVideoFx.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getAnchoredItemTop.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getCompoundBoundaryStyles.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getFill.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getFontFamilyValue.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getItemTopStyle.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/getValidYoutubeUrl.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/isItemType.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/rangeMap.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/utils/useElementRect.d.ts +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FillLayer, RectangleItem } from '../../../../sdk/types/article/Item';
|
|
2
|
+
export declare function useRectangleItem(item: RectangleItem, sectionId: string): {
|
|
3
|
+
fill: FillLayer[];
|
|
4
|
+
strokeWidth: number;
|
|
5
|
+
radius: number;
|
|
6
|
+
strokeFill: FillLayer[];
|
|
7
|
+
blur: number;
|
|
8
|
+
backdropBlur: number;
|
|
9
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRectangleItem = useRectangleItem;
|
|
4
|
+
const Keyframe_1 = require("../../../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("../../../common/useKeyframeValue");
|
|
6
|
+
const defaultFill = [
|
|
7
|
+
{
|
|
8
|
+
id: 'default',
|
|
9
|
+
type: 'solid',
|
|
10
|
+
value: 'rgba(0, 0, 0, 1)',
|
|
11
|
+
blendMode: 'normal'
|
|
12
|
+
}
|
|
13
|
+
];
|
|
14
|
+
function useRectangleItem(item, sectionId) {
|
|
15
|
+
const radius = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderRadius, (item) => 'radius' in item.params ? item.params.radius : 0, (animator, scroll, value) => animator.getRadius({ radius: value }, scroll).radius, sectionId);
|
|
16
|
+
const strokeWidth = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderWidth, (item) => 'strokeWidth' in item.params ? item.params.strokeWidth : 0, (animator, scroll, value) => animator.getBorderWidth({ borderWidth: value }, scroll).borderWidth, sectionId);
|
|
17
|
+
const fill = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Fill, (item) => 'fill' in item.params ? item.params.fill : defaultFill, (animator, scroll, value) => animator.getFill(value, scroll), sectionId);
|
|
18
|
+
const strokeFill = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderFill, (item) => 'strokeFill' in item.params ? item.params.strokeFill : defaultFill, (animator, scroll, value) => animator.getBorderFill(value, scroll), sectionId);
|
|
19
|
+
const blur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Blur, (item) => 'blur' in item.params ? item.params.blur : 0, (animator, scroll, value) => animator.getBlur({ blur: value }, scroll).blur, sectionId);
|
|
20
|
+
const backdropBlur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BackdropBlur, (item) => 'backdropBlur' in item.params ? item.params.backdropBlur : 0, (animator, scroll, value) => animator.getBackdropBlur({ backdropBlur: value }, scroll).backdropBlur, sectionId);
|
|
21
|
+
return { fill, strokeWidth, radius, strokeFill, blur, backdropBlur };
|
|
22
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RichTextItem = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const color_1 = require("@cntrl-site/color");
|
|
10
|
+
const style_1 = __importDefault(require("styled-jsx/style"));
|
|
11
|
+
const useRichTextItem_1 = require("./useRichTextItem");
|
|
12
|
+
const useRichTextItemValues_1 = require("../useRichTextItemValues");
|
|
13
|
+
const useRegisterResize_1 = require("../../../common/useRegisterResize");
|
|
14
|
+
const getFontFamilyValue_1 = require("../../../utils/getFontFamilyValue");
|
|
15
|
+
const useExemplary_1 = require("../../../common/useExemplary");
|
|
16
|
+
const useItemAngle_1 = require("../useItemAngle");
|
|
17
|
+
const getStyleFromItemStateAndParams_1 = require("../../../utils/getStyleFromItemStateAndParams");
|
|
18
|
+
const RichTextItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange }) => {
|
|
19
|
+
var _a, _b, _c;
|
|
20
|
+
const id = (0, react_1.useId)();
|
|
21
|
+
const [ref, setRef] = (0, react_1.useState)(null);
|
|
22
|
+
const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
|
|
23
|
+
const { blur: itemBlur, wordSpacing: itemWordSpacing, letterSpacing: itemLetterSpacing, color: itemColor, fontSize, lineHeight } = (0, useRichTextItemValues_1.useRichTextItemValues)(item, sectionId);
|
|
24
|
+
const exemplary = (0, useExemplary_1.useExemplary)();
|
|
25
|
+
(0, useRegisterResize_1.useRegisterResize)(ref, onResize);
|
|
26
|
+
const stateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'blur', 'letterSpacing', 'wordSpacing', 'color']);
|
|
27
|
+
const stateStyles = (_a = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) !== null && _a !== void 0 ? _a : {};
|
|
28
|
+
const transition = (_b = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _b !== void 0 ? _b : 'none';
|
|
29
|
+
const textColor = (0, react_1.useMemo)(() => {
|
|
30
|
+
var _a;
|
|
31
|
+
const color = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_a = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _a === void 0 ? void 0 : _a.color, itemColor);
|
|
32
|
+
return color ? color_1.CntrlColor.parse(color) : undefined;
|
|
33
|
+
}, [itemColor, stateStyles.color]);
|
|
34
|
+
const angle = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStyles.angle, itemAngle);
|
|
35
|
+
const blur = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStyles.blur, itemBlur);
|
|
36
|
+
const letterSpacing = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStyles.letterSpacing, itemLetterSpacing);
|
|
37
|
+
const wordSpacing = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStyles.wordSpacing, itemWordSpacing);
|
|
38
|
+
const colorAlpha = textColor === null || textColor === void 0 ? void 0 : textColor.getAlpha();
|
|
39
|
+
const rangeStyles = (_c = item.params.rangeStyles) !== null && _c !== void 0 ? _c : [];
|
|
40
|
+
const rangeColors = rangeStyles.filter((style) => style.style === 'COLOR');
|
|
41
|
+
const hasVisibleRangeColors = rangeColors.some((color) => {
|
|
42
|
+
const alpha = color_1.CntrlColor.parse(color.value).getAlpha();
|
|
43
|
+
return alpha > 0;
|
|
44
|
+
});
|
|
45
|
+
const isInteractive = colorAlpha !== 0 || hasVisibleRangeColors;
|
|
46
|
+
const [content, styles] = (0, useRichTextItem_1.useRichTextItem)(item);
|
|
47
|
+
(0, react_1.useEffect)(() => {
|
|
48
|
+
onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
|
|
49
|
+
}, [isInteractive, onVisibilityChange]);
|
|
50
|
+
const color = color_1.CntrlColor.parse(item.params.color);
|
|
51
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { ref: setRef, className: `rich-text-wrapper-${item.id}`, style: Object.assign(Object.assign({ filter: `blur(${blur * 100}vw)` }, (textColor ? { color: `${textColor.fmt('rgba')}` } : {})), { transform: `rotate(${angle}deg)`, letterSpacing: `${letterSpacing * exemplary}px`, wordSpacing: `${wordSpacing * exemplary}px`, fontSize: `${Math.round(fontSize * exemplary)}px`, lineHeight: `${lineHeight * exemplary}px`, willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition }), children: content }), (0, jsx_runtime_1.jsxs)(style_1.default, { id: id, children: [styles, `
|
|
52
|
+
.rich-text-wrapper-${item.id} {
|
|
53
|
+
font-size: ${item.params.fontSize * 100}vw;
|
|
54
|
+
line-height: ${item.params.lineHeight * 100}vw;
|
|
55
|
+
letter-spacing: ${item.params.letterSpacing * 100}vw;
|
|
56
|
+
word-spacing: ${item.params.wordSpacing * 100}vw;
|
|
57
|
+
font-family: ${(0, getFontFamilyValue_1.getFontFamilyValue)(item.params.typeFace)};
|
|
58
|
+
font-weight: ${item.params.fontWeight};
|
|
59
|
+
font-style: ${item.params.fontStyle ? item.params.fontStyle : 'normal'};
|
|
60
|
+
vertical-align: ${item.params.verticalAlign};
|
|
61
|
+
font-variant: ${item.params.fontVariant};
|
|
62
|
+
color: ${color.fmt('rgba')};
|
|
63
|
+
transform: rotate(${item.area.angle}deg);
|
|
64
|
+
filter: ${item.params.blur !== 0 ? `blur(${item.params.blur * 100}vw)` : 'unset'};
|
|
65
|
+
text-transform: ${item.params.textTransform};
|
|
66
|
+
${item.params.blur !== 0 ? 'will-change: transform;' : ''}
|
|
67
|
+
}
|
|
68
|
+
@supports not (color: oklch(42% 0.3 90 / 1)) {
|
|
69
|
+
.rich-text-wrapper-${item.id} {
|
|
70
|
+
color: ${color.fmt('rgba')};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
`] })] }));
|
|
74
|
+
};
|
|
75
|
+
exports.RichTextItem = RichTextItem;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRichTextItem = void 0;
|
|
4
|
+
const RichTextConverter_1 = require("../../../utils/RichTextConverter/RichTextConverter");
|
|
5
|
+
const useCntrlContext_1 = require("../../../provider/useCntrlContext");
|
|
6
|
+
const richTextConverter = new RichTextConverter_1.RichTextConverter();
|
|
7
|
+
const useRichTextItem = (item) => {
|
|
8
|
+
const { exemplary } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
+
const [content, styles] = richTextConverter.toHtml(item, exemplary);
|
|
10
|
+
return [content, styles];
|
|
11
|
+
};
|
|
12
|
+
exports.useRichTextItem = useRichTextItem;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RichTextWrapper = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const RichTextWrapper = ({ isRichText, children, transformOrigin = 'top left' }) => {
|
|
6
|
+
if (!isRichText)
|
|
7
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
8
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { transformOrigin, transform: 'scale(var(--layout-deviation))' }, children: children }));
|
|
9
|
+
};
|
|
10
|
+
exports.RichTextWrapper = RichTextWrapper;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.itemsMap = void 0;
|
|
4
|
+
const RectangleItem_1 = require("./RectangleItem/RectangleItem");
|
|
5
|
+
const ImageItem_1 = require("./FileItem/ImageItem");
|
|
6
|
+
const VideoItem_1 = require("./FileItem/VideoItem");
|
|
7
|
+
const RichTextItem_1 = require("./RichTextItem/RichTextItem");
|
|
8
|
+
const YoutubeEmbed_1 = require("./EmbedVideoItem/YoutubeEmbed");
|
|
9
|
+
const VimeoEmbed_1 = require("./EmbedVideoItem/VimeoEmbed");
|
|
10
|
+
const CustomItem_1 = require("./CustomItem/CustomItem");
|
|
11
|
+
const GroupItem_1 = require("./GroupItem/GroupItem");
|
|
12
|
+
const CodeEmbedItem_1 = require("./CodeEmbedItem/CodeEmbedItem");
|
|
13
|
+
const CompoundItem_1 = require("./CompoundItem/CompoundItem");
|
|
14
|
+
const ComponentItem_1 = require("./ComponentItem/ComponentItem");
|
|
15
|
+
const ArticleItemType_1 = require("../../../sdk/types/article/ArticleItemType");
|
|
16
|
+
exports.itemsMap = {
|
|
17
|
+
[ArticleItemType_1.ArticleItemType.Rectangle]: RectangleItem_1.RectangleItem,
|
|
18
|
+
[ArticleItemType_1.ArticleItemType.Image]: ImageItem_1.ImageItem,
|
|
19
|
+
[ArticleItemType_1.ArticleItemType.Video]: VideoItem_1.VideoItem,
|
|
20
|
+
[ArticleItemType_1.ArticleItemType.RichText]: RichTextItem_1.RichTextItem,
|
|
21
|
+
[ArticleItemType_1.ArticleItemType.YoutubeEmbed]: YoutubeEmbed_1.YoutubeEmbedItem,
|
|
22
|
+
[ArticleItemType_1.ArticleItemType.VimeoEmbed]: VimeoEmbed_1.VimeoEmbedItem,
|
|
23
|
+
[ArticleItemType_1.ArticleItemType.Custom]: CustomItem_1.CustomItem,
|
|
24
|
+
[ArticleItemType_1.ArticleItemType.Group]: GroupItem_1.GroupItem,
|
|
25
|
+
[ArticleItemType_1.ArticleItemType.Compound]: CompoundItem_1.CompoundItem,
|
|
26
|
+
[ArticleItemType_1.ArticleItemType.CodeEmbed]: CodeEmbedItem_1.CodeEmbedItem,
|
|
27
|
+
[ArticleItemType_1.ArticleItemType.Component]: ComponentItem_1.ComponentItem
|
|
28
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useDraggable = useDraggable;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const INITIAL_STATE = {
|
|
6
|
+
drag: false,
|
|
7
|
+
startX: 0,
|
|
8
|
+
startY: 0,
|
|
9
|
+
currentX: 0,
|
|
10
|
+
currentY: 0,
|
|
11
|
+
pivotX: 0,
|
|
12
|
+
pivotY: 0,
|
|
13
|
+
lastX: 0,
|
|
14
|
+
lastY: 0
|
|
15
|
+
};
|
|
16
|
+
function useDraggable(data, dragHandler, preventDragOnChildren = false) {
|
|
17
|
+
const dragStateRef = (0, react_1.useRef)(INITIAL_STATE);
|
|
18
|
+
const prevDragStateRef = (0, react_1.useRef)();
|
|
19
|
+
const dragHandlerRef = (0, react_1.useRef)();
|
|
20
|
+
const untrackMouseMoveRef = (0, react_1.useRef)();
|
|
21
|
+
const animationFrameRef = (0, react_1.useRef)();
|
|
22
|
+
dragHandlerRef.current = dragHandler;
|
|
23
|
+
const setDragState = (0, react_1.useCallback)(action => {
|
|
24
|
+
const state = isStateGetter(action)
|
|
25
|
+
? action(dragStateRef.current)
|
|
26
|
+
: action;
|
|
27
|
+
if (!prevDragStateRef.current) {
|
|
28
|
+
prevDragStateRef.current = dragStateRef.current;
|
|
29
|
+
}
|
|
30
|
+
dragStateRef.current = state;
|
|
31
|
+
if (animationFrameRef.current !== undefined)
|
|
32
|
+
return;
|
|
33
|
+
animationFrameRef.current = window.requestAnimationFrame(() => {
|
|
34
|
+
var _a;
|
|
35
|
+
animationFrameRef.current = undefined;
|
|
36
|
+
(_a = dragHandlerRef.current) === null || _a === void 0 ? void 0 : _a.call(dragHandlerRef, dragStateRef.current, prevDragStateRef.current);
|
|
37
|
+
prevDragStateRef.current = dragStateRef.current;
|
|
38
|
+
});
|
|
39
|
+
}, []);
|
|
40
|
+
const handleMouseMove = (0, react_1.useCallback)(event => {
|
|
41
|
+
event.stopPropagation();
|
|
42
|
+
const el = event.target;
|
|
43
|
+
if (!(el instanceof HTMLElement))
|
|
44
|
+
return;
|
|
45
|
+
setDragState(state => {
|
|
46
|
+
if (!state.drag) {
|
|
47
|
+
const clientRect = el.getBoundingClientRect();
|
|
48
|
+
return {
|
|
49
|
+
drag: true,
|
|
50
|
+
startX: event.clientX,
|
|
51
|
+
startY: event.clientY,
|
|
52
|
+
currentX: event.clientX,
|
|
53
|
+
currentY: event.clientY,
|
|
54
|
+
pivotX: event.clientX - clientRect.x,
|
|
55
|
+
pivotY: event.clientY - clientRect.y,
|
|
56
|
+
lastX: state.lastX,
|
|
57
|
+
lastY: state.lastY
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return Object.assign(Object.assign({}, state), { currentX: state.currentX + event.movementX, currentY: state.currentY + event.movementY });
|
|
61
|
+
});
|
|
62
|
+
}, [setDragState, data.draggableRef, preventDragOnChildren]);
|
|
63
|
+
const handleMouseUp = (0, react_1.useCallback)(event => {
|
|
64
|
+
var _a;
|
|
65
|
+
event.stopPropagation();
|
|
66
|
+
setDragState(state => (Object.assign(Object.assign({}, state), { drag: false, lastX: state.currentX - state.startX + state.lastX, lastY: state.currentY - state.startY + state.lastY })));
|
|
67
|
+
(_a = untrackMouseMoveRef.current) === null || _a === void 0 ? void 0 : _a.call(untrackMouseMoveRef);
|
|
68
|
+
}, [setDragState]);
|
|
69
|
+
const handleScroll = (0, react_1.useCallback)(() => {
|
|
70
|
+
setDragState(state => state);
|
|
71
|
+
}, [setDragState]);
|
|
72
|
+
const trackMouseMove = (0, react_1.useCallback)(() => {
|
|
73
|
+
window.addEventListener('mousemove', handleMouseMove, { capture: true });
|
|
74
|
+
window.addEventListener('mouseup', handleMouseUp, { capture: true });
|
|
75
|
+
window.addEventListener('scroll', handleScroll, { capture: true, passive: true });
|
|
76
|
+
return () => {
|
|
77
|
+
window.removeEventListener('mousemove', handleMouseMove, { capture: true });
|
|
78
|
+
window.removeEventListener('mouseup', handleMouseUp, { capture: true });
|
|
79
|
+
window.removeEventListener('scroll', handleScroll, { capture: true });
|
|
80
|
+
};
|
|
81
|
+
}, [handleMouseMove, handleMouseUp, handleScroll]);
|
|
82
|
+
const handleMouseDown = (0, react_1.useCallback)(event => {
|
|
83
|
+
var _a;
|
|
84
|
+
event.stopPropagation();
|
|
85
|
+
if (preventDragOnChildren && event.target instanceof Node && data.draggableRef instanceof Node) {
|
|
86
|
+
if (event.target !== data.draggableRef && data.draggableRef.contains(event.target))
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (event.button !== 0)
|
|
90
|
+
return;
|
|
91
|
+
(_a = untrackMouseMoveRef.current) === null || _a === void 0 ? void 0 : _a.call(untrackMouseMoveRef);
|
|
92
|
+
untrackMouseMoveRef.current = trackMouseMove();
|
|
93
|
+
}, [trackMouseMove]);
|
|
94
|
+
const handleTouchMove = (0, react_1.useCallback)(event => {
|
|
95
|
+
event.stopPropagation();
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
const touch = event.touches[0];
|
|
98
|
+
const el = event.target;
|
|
99
|
+
if (!(el instanceof HTMLElement))
|
|
100
|
+
return;
|
|
101
|
+
setDragState(state => {
|
|
102
|
+
if (!state.drag) {
|
|
103
|
+
const clientRect = el.getBoundingClientRect();
|
|
104
|
+
return {
|
|
105
|
+
drag: true,
|
|
106
|
+
startX: touch.clientX,
|
|
107
|
+
startY: touch.clientY,
|
|
108
|
+
currentX: touch.clientX,
|
|
109
|
+
currentY: touch.clientY,
|
|
110
|
+
pivotX: touch.clientX - clientRect.x,
|
|
111
|
+
pivotY: touch.clientY - clientRect.y,
|
|
112
|
+
lastX: state.lastX,
|
|
113
|
+
lastY: state.lastY
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const movementX = touch.clientX - state.currentX;
|
|
117
|
+
const movementY = touch.clientY - state.currentY;
|
|
118
|
+
return Object.assign(Object.assign({}, state), { currentX: state.currentX + movementX, currentY: state.currentY + movementY });
|
|
119
|
+
});
|
|
120
|
+
}, [setDragState]);
|
|
121
|
+
const handleTouchEnd = (0, react_1.useCallback)(event => {
|
|
122
|
+
var _a;
|
|
123
|
+
event.stopPropagation();
|
|
124
|
+
document.body.style.overflow = '';
|
|
125
|
+
document.documentElement.style.overflow = '';
|
|
126
|
+
setDragState(state => (Object.assign(Object.assign({}, state), { drag: false, lastX: state.currentX - state.startX + state.lastX, lastY: state.currentY - state.startY + state.lastY })));
|
|
127
|
+
(_a = untrackMouseMoveRef.current) === null || _a === void 0 ? void 0 : _a.call(untrackMouseMoveRef);
|
|
128
|
+
}, [setDragState]);
|
|
129
|
+
const trackTouchMove = (0, react_1.useCallback)(() => {
|
|
130
|
+
window.addEventListener('touchmove', handleTouchMove, { capture: true, passive: false });
|
|
131
|
+
window.addEventListener('touchend', handleTouchEnd, { capture: true });
|
|
132
|
+
window.addEventListener('touchcancel', handleTouchEnd, { capture: true });
|
|
133
|
+
return () => {
|
|
134
|
+
window.removeEventListener('touchmove', handleTouchMove, { capture: true });
|
|
135
|
+
window.removeEventListener('touchend', handleTouchEnd, { capture: true });
|
|
136
|
+
window.removeEventListener('touchcancel', handleTouchEnd, { capture: true });
|
|
137
|
+
};
|
|
138
|
+
}, [handleTouchMove, handleTouchEnd]);
|
|
139
|
+
const handleTouchStart = (0, react_1.useCallback)(event => {
|
|
140
|
+
var _a;
|
|
141
|
+
event.stopPropagation();
|
|
142
|
+
if (preventDragOnChildren && event.target instanceof Node && data.draggableRef instanceof Node) {
|
|
143
|
+
if (event.target !== data.draggableRef && data.draggableRef.contains(event.target))
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
document.body.style.overflow = 'hidden';
|
|
147
|
+
document.documentElement.style.overflow = 'hidden';
|
|
148
|
+
const selection = document.getSelection();
|
|
149
|
+
if (selection) {
|
|
150
|
+
selection.removeAllRanges();
|
|
151
|
+
}
|
|
152
|
+
(_a = untrackMouseMoveRef.current) === null || _a === void 0 ? void 0 : _a.call(untrackMouseMoveRef);
|
|
153
|
+
untrackMouseMoveRef.current = trackTouchMove();
|
|
154
|
+
}, [trackTouchMove]);
|
|
155
|
+
(0, react_1.useEffect)(() => {
|
|
156
|
+
if (!data.draggableRef || !data.isEnabled)
|
|
157
|
+
return;
|
|
158
|
+
const mouseHandler = handleMouseDown;
|
|
159
|
+
const touchHandler = handleTouchStart;
|
|
160
|
+
data.draggableRef.addEventListener('mousedown', mouseHandler);
|
|
161
|
+
data.draggableRef.addEventListener('touchstart', touchHandler);
|
|
162
|
+
return () => {
|
|
163
|
+
var _a, _b, _c;
|
|
164
|
+
(_a = data.draggableRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('mousedown', mouseHandler);
|
|
165
|
+
(_b = data.draggableRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchstart', touchHandler);
|
|
166
|
+
(_c = untrackMouseMoveRef.current) === null || _c === void 0 ? void 0 : _c.call(untrackMouseMoveRef);
|
|
167
|
+
if (animationFrameRef.current !== undefined) {
|
|
168
|
+
window.cancelAnimationFrame(animationFrameRef.current);
|
|
169
|
+
}
|
|
170
|
+
document.body.style.overflow = '';
|
|
171
|
+
document.documentElement.style.overflow = '';
|
|
172
|
+
};
|
|
173
|
+
}, [data.draggableRef, data.isEnabled, handleMouseDown, handleTouchStart]);
|
|
174
|
+
}
|
|
175
|
+
function isStateGetter(action) {
|
|
176
|
+
return typeof action === 'function';
|
|
177
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemAny } from '../../../sdk/types/article/Item';
|
|
2
|
-
export declare const useItemAngle: (item: ItemAny, sectionId: string) => number
|
|
2
|
+
export declare const useItemAngle: (item: ItemAny, sectionId: string) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemAngle = void 0;
|
|
4
|
+
const Keyframe_1 = require("../../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("../../common/useKeyframeValue");
|
|
6
|
+
const useItemAngle = (item, sectionId) => {
|
|
7
|
+
const angle = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Rotation, (item) => item.area.angle, (animator, scroll, value) => animator.getRotation({ angle: value }, scroll).angle, sectionId);
|
|
8
|
+
return angle;
|
|
9
|
+
};
|
|
10
|
+
exports.useItemAngle = useItemAngle;
|
|
@@ -5,8 +5,8 @@ export declare function useItemArea(item: ItemAny, sectionId: string, stateValue
|
|
|
5
5
|
width?: number;
|
|
6
6
|
height?: number;
|
|
7
7
|
}): {
|
|
8
|
-
width: number
|
|
9
|
-
height: number
|
|
10
|
-
top: number
|
|
11
|
-
left: number
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
top: number;
|
|
11
|
+
left: number;
|
|
12
12
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemArea = useItemArea;
|
|
4
|
+
const useKeyframeValue_1 = require("../../common/useKeyframeValue");
|
|
5
|
+
const Keyframe_1 = require("../../../sdk/types/keyframe/Keyframe");
|
|
6
|
+
function useItemArea(item, sectionId, stateValues) {
|
|
7
|
+
var _a, _b, _c, _d;
|
|
8
|
+
const position = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Position, (item) => item.area, (animator, scroll, value) => animator.getPositions(value, scroll), sectionId);
|
|
9
|
+
const dimensions = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Dimensions, (item) => item.area, (animator, scroll, value) => animator.getDimensions(value, scroll), sectionId);
|
|
10
|
+
const width = ((_a = stateValues.width) !== null && _a !== void 0 ? _a : dimensions === null || dimensions === void 0 ? void 0 : dimensions.width);
|
|
11
|
+
const height = ((_b = stateValues.height) !== null && _b !== void 0 ? _b : dimensions === null || dimensions === void 0 ? void 0 : dimensions.height);
|
|
12
|
+
const top = ((_c = stateValues.top) !== null && _c !== void 0 ? _c : position === null || position === void 0 ? void 0 : position.top);
|
|
13
|
+
const left = ((_d = stateValues.left) !== null && _d !== void 0 ? _d : position === null || position === void 0 ? void 0 : position.left);
|
|
14
|
+
return { width, height, top, left };
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemPointerEvents = useItemPointerEvents;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useItemPointerEvents(pointerEvents, isParentVisible) {
|
|
6
|
+
const getAllowPointerEvents = () => {
|
|
7
|
+
switch (pointerEvents) {
|
|
8
|
+
case 'never':
|
|
9
|
+
return false;
|
|
10
|
+
case 'when_visible':
|
|
11
|
+
return isParentVisible;
|
|
12
|
+
case 'always':
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const [allowPointerEvents, setAllowPointerEvents] = (0, react_1.useState)(getAllowPointerEvents());
|
|
17
|
+
const handleVisibilityChange = (0, react_1.useCallback)((isVisible) => {
|
|
18
|
+
if (!isParentVisible || pointerEvents !== 'when_visible')
|
|
19
|
+
return;
|
|
20
|
+
setAllowPointerEvents(isVisible);
|
|
21
|
+
}, [isParentVisible, pointerEvents]);
|
|
22
|
+
return { allowPointerEvents, handleVisibilityChange };
|
|
23
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ItemAny } from '../../../sdk/types/article/Item';
|
|
2
|
-
export declare const useItemScale: (item: ItemAny, sectionId: string) => number
|
|
2
|
+
export declare const useItemScale: (item: ItemAny, sectionId: string) => number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemScale = void 0;
|
|
4
|
+
const Keyframe_1 = require("../../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("../../common/useKeyframeValue");
|
|
6
|
+
const useItemScale = (item, sectionId) => {
|
|
7
|
+
const scale = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Scale, (item) => item.area.scale, (animator, scroll, value) => animator.getScale({ scale: value }, scroll).scale, sectionId);
|
|
8
|
+
return scale;
|
|
9
|
+
};
|
|
10
|
+
exports.useItemScale = useItemScale;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemTriggers = useItemTriggers;
|
|
4
|
+
function useItemTriggers(interactionCtrl) {
|
|
5
|
+
return {
|
|
6
|
+
onClick: () => {
|
|
7
|
+
interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.sendTrigger('click');
|
|
8
|
+
},
|
|
9
|
+
onMouseEnter: () => {
|
|
10
|
+
interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.sendTrigger('hover-in');
|
|
11
|
+
},
|
|
12
|
+
onMouseLeave: () => {
|
|
13
|
+
interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.sendTrigger('hover-out');
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RichTextItem } from '../../../sdk/types/article/Item';
|
|
2
|
+
export declare const useRichTextItemValues: (item: RichTextItem, sectionId: string) => {
|
|
3
|
+
blur: number;
|
|
4
|
+
letterSpacing: number;
|
|
5
|
+
wordSpacing: number;
|
|
6
|
+
color: string;
|
|
7
|
+
fontSize: number;
|
|
8
|
+
lineHeight: number;
|
|
9
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRichTextItemValues = void 0;
|
|
4
|
+
const Keyframe_1 = require("../../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("../../common/useKeyframeValue");
|
|
6
|
+
const DEFAULT_COLOR = 'rgba(0, 0, 0, 1)';
|
|
7
|
+
const useRichTextItemValues = (item, sectionId) => {
|
|
8
|
+
const blur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Blur, (item) => 'blur' in item.params ? item.params.blur : 0, (animator, scroll, value) => animator.getBlur({ blur: value }, scroll).blur, sectionId);
|
|
9
|
+
const letterSpacing = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.LetterSpacing, (item) => 'letterSpacing' in item.params ? item.params.letterSpacing : 0, (animator, scroll, value) => animator.getLetterSpacing({ letterSpacing: value }, scroll).letterSpacing, sectionId);
|
|
10
|
+
const wordSpacing = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.WordSpacing, (item) => 'wordSpacing' in item.params ? item.params.wordSpacing : 0, (animator, scroll, value) => animator.getWordSpacing({ wordSpacing: value }, scroll).wordSpacing, sectionId);
|
|
11
|
+
const color = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.TextColor, (item) => 'color' in item.params ? item.params.color : DEFAULT_COLOR, (animator, scroll, value) => animator.getTextColor({ color: value }, scroll).color, sectionId);
|
|
12
|
+
const fontSize = item.params.fontSize;
|
|
13
|
+
const lineHeight = item.params.lineHeight;
|
|
14
|
+
return { blur, letterSpacing, wordSpacing, color, fontSize, lineHeight };
|
|
15
|
+
};
|
|
16
|
+
exports.useRichTextItemValues = useRichTextItemValues;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSizing = useSizing;
|
|
4
|
+
exports.parseSizing = parseSizing;
|
|
5
|
+
const ArticleItemType_1 = require("../../../sdk/types/article/ArticleItemType");
|
|
6
|
+
const isItemType_1 = require("../../utils/isItemType");
|
|
7
|
+
function useSizing(item) {
|
|
8
|
+
const sizing = (0, isItemType_1.isItemType)(item, ArticleItemType_1.ArticleItemType.RichText)
|
|
9
|
+
? item.params.sizing
|
|
10
|
+
: undefined;
|
|
11
|
+
const sizingAxis = parseSizing(sizing);
|
|
12
|
+
return sizingAxis;
|
|
13
|
+
}
|
|
14
|
+
function parseSizing(sizing = 'manual') {
|
|
15
|
+
const axisSizing = sizing.split(' ');
|
|
16
|
+
return {
|
|
17
|
+
y: axisSizing[0],
|
|
18
|
+
x: axisSizing[1] ? axisSizing[1] : axisSizing[0]
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useStickyItemTop = useStickyItemTop;
|
|
4
|
+
const Keyframe_1 = require("../../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("../../common/useKeyframeValue");
|
|
6
|
+
function useStickyItemTop(item, sectionId, stateTop) {
|
|
7
|
+
const data = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Position, (item) => item.area, (animator, scroll, value) => animator.getPositions(value, scroll), sectionId);
|
|
8
|
+
const top = data.top;
|
|
9
|
+
const sticky = item.sticky;
|
|
10
|
+
return sticky ? (stateTop !== null && stateTop !== void 0 ? stateTop : top) - sticky.from : 0;
|
|
11
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArticleItemType } from
|
|
2
|
-
import { ItemState } from
|
|
1
|
+
import { ArticleItemType } from "../../sdk/types/article/ArticleItemType";
|
|
2
|
+
import { ItemState } from "../../sdk/types/article/ItemState";
|
|
3
3
|
export declare const CSSPropertyNameMap: Record<keyof ItemState<ArticleItemType>, string>;
|
|
4
4
|
export declare function getStyleKeysFromCSSProperty(cssProp: string): string[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CSSPropertyNameMap = void 0;
|
|
4
|
+
exports.getStyleKeysFromCSSProperty = getStyleKeysFromCSSProperty;
|
|
5
|
+
exports.CSSPropertyNameMap = {
|
|
6
|
+
width: 'width',
|
|
7
|
+
height: 'height',
|
|
8
|
+
top: 'top',
|
|
9
|
+
left: 'left',
|
|
10
|
+
scale: 'transform',
|
|
11
|
+
angle: 'transform',
|
|
12
|
+
opacity: 'opacity',
|
|
13
|
+
radius: 'border-radius',
|
|
14
|
+
strokeWidth: 'border-width',
|
|
15
|
+
strokeFill: 'border-color',
|
|
16
|
+
fill: 'background',
|
|
17
|
+
blur: 'filter',
|
|
18
|
+
backdropBlur: 'backdrop-filter',
|
|
19
|
+
letterSpacing: 'letter-spacing',
|
|
20
|
+
wordSpacing: 'word-spacing',
|
|
21
|
+
color: 'color'
|
|
22
|
+
};
|
|
23
|
+
const PropertyNameCSSMap = {
|
|
24
|
+
'transform': ['angle', 'scale'],
|
|
25
|
+
'border-radius': ['radius'],
|
|
26
|
+
'border-width': ['strokeWidth'],
|
|
27
|
+
'border-color': ['strokeFill'],
|
|
28
|
+
'background': ['fill'],
|
|
29
|
+
'filter': ['blur'],
|
|
30
|
+
'backdrop-filter': ['backdrop-blur'],
|
|
31
|
+
'letter-spacing': ['letterSpacing'],
|
|
32
|
+
'word-spacing': ['wordSpacing'],
|
|
33
|
+
};
|
|
34
|
+
function getStyleKeysFromCSSProperty(cssProp) {
|
|
35
|
+
var _a;
|
|
36
|
+
const key = (_a = PropertyNameCSSMap[cssProp]) !== null && _a !== void 0 ? _a : [cssProp];
|
|
37
|
+
return key;
|
|
38
|
+
}
|
|
@@ -9,7 +9,7 @@ export declare class InteractionsRegistry implements InteractionsRegistryPort {
|
|
|
9
9
|
private interactionStateMap;
|
|
10
10
|
private itemsStages;
|
|
11
11
|
private activeStateIdInteractionIdMap;
|
|
12
|
-
constructor(article: Article
|
|
12
|
+
constructor(article: Article);
|
|
13
13
|
register(itemId: ItemId, ctrl: ItemInteractionCtrl): void;
|
|
14
14
|
getStatePropsForItem(itemId: string): StateProps;
|
|
15
15
|
getItemAvailableTriggers(itemId: string): Set<InteractionItemTrigger['type']>;
|