@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
|
@@ -8,115 +8,109 @@ export type ItemAny = Item<ArticleItemType>;
|
|
|
8
8
|
export interface Item<T extends ArticleItemType> {
|
|
9
9
|
id: string;
|
|
10
10
|
type: T;
|
|
11
|
-
area:
|
|
12
|
-
hidden:
|
|
11
|
+
area: ItemArea;
|
|
12
|
+
hidden: boolean;
|
|
13
13
|
link?: Link;
|
|
14
14
|
items?: T extends (ArticleItemType.Group | ArticleItemType.Compound) ? ItemAny[] : never;
|
|
15
|
-
sticky:
|
|
16
|
-
compoundSettings?:
|
|
17
|
-
commonParams: ItemCommonParamsMap[T];
|
|
15
|
+
sticky: StickyParams | null;
|
|
16
|
+
compoundSettings?: CompoundSettings;
|
|
18
17
|
state: ItemState<T>;
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
export interface
|
|
22
|
-
[ArticleItemType.Image]:
|
|
23
|
-
[ArticleItemType.Video]:
|
|
24
|
-
[ArticleItemType.RichText]:
|
|
25
|
-
[ArticleItemType.Rectangle]:
|
|
26
|
-
[ArticleItemType.VimeoEmbed]:
|
|
27
|
-
[ArticleItemType.YoutubeEmbed]:
|
|
28
|
-
[ArticleItemType.Custom]:
|
|
29
|
-
[ArticleItemType.Group]:
|
|
30
|
-
[ArticleItemType.Compound]:
|
|
31
|
-
[ArticleItemType.CodeEmbed]:
|
|
32
|
-
[ArticleItemType.Component]:
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
[ArticleItemType.Image]: ImageLayoutParams;
|
|
36
|
-
[ArticleItemType.Video]: VideoLayoutParams;
|
|
37
|
-
[ArticleItemType.RichText]: RichTextLayoutParams;
|
|
38
|
-
[ArticleItemType.Rectangle]: RectangleLayoutParams;
|
|
39
|
-
[ArticleItemType.VimeoEmbed]: VimeoEmbedLayoutParams;
|
|
40
|
-
[ArticleItemType.YoutubeEmbed]: YoutubeEmbedLayoutParams;
|
|
41
|
-
[ArticleItemType.Custom]: CustomLayoutParams;
|
|
42
|
-
[ArticleItemType.Group]: GroupLayoutParams;
|
|
43
|
-
[ArticleItemType.Compound]: CompoundLayoutParams;
|
|
44
|
-
[ArticleItemType.CodeEmbed]: CodeEmbedLayoutParams;
|
|
45
|
-
[ArticleItemType.Component]: ComponentLayoutParams;
|
|
46
|
-
}
|
|
47
|
-
interface CommonParamsBase {
|
|
18
|
+
params: ItemParamsMap[T];
|
|
19
|
+
}
|
|
20
|
+
export interface ItemParamsMap {
|
|
21
|
+
[ArticleItemType.Image]: ImageParams;
|
|
22
|
+
[ArticleItemType.Video]: VideoParams;
|
|
23
|
+
[ArticleItemType.RichText]: RichTextParams;
|
|
24
|
+
[ArticleItemType.Rectangle]: RectangleParams;
|
|
25
|
+
[ArticleItemType.VimeoEmbed]: VimeoEmbedParams;
|
|
26
|
+
[ArticleItemType.YoutubeEmbed]: YoutubeEmbedParams;
|
|
27
|
+
[ArticleItemType.Custom]: CustomParams;
|
|
28
|
+
[ArticleItemType.Group]: GroupParams;
|
|
29
|
+
[ArticleItemType.Compound]: CompoundParams;
|
|
30
|
+
[ArticleItemType.CodeEmbed]: CodeEmbedParams;
|
|
31
|
+
[ArticleItemType.Component]: ComponentParams;
|
|
32
|
+
}
|
|
33
|
+
interface ParamsBase {
|
|
48
34
|
pointerEvents?: 'never' | 'when_visible' | 'always';
|
|
49
35
|
}
|
|
50
|
-
interface
|
|
36
|
+
interface ImageParams extends MediaParams {
|
|
37
|
+
}
|
|
38
|
+
interface MediaParams extends ParamsBase {
|
|
51
39
|
url: string;
|
|
52
40
|
hasGLEffect?: boolean;
|
|
53
41
|
fragmentShader: string | null;
|
|
54
42
|
FXControls?: FXControlAny[];
|
|
43
|
+
opacity: number;
|
|
44
|
+
radius: number;
|
|
45
|
+
strokeWidth: number;
|
|
46
|
+
strokeFill: FillLayer[];
|
|
47
|
+
blur: number;
|
|
48
|
+
isDraggable?: boolean;
|
|
55
49
|
}
|
|
56
|
-
interface
|
|
50
|
+
interface VideoParams extends MediaParams {
|
|
57
51
|
coverUrl: string | null;
|
|
52
|
+
play: 'on-hover' | 'on-click' | 'auto';
|
|
53
|
+
muted: boolean;
|
|
54
|
+
controls: boolean;
|
|
55
|
+
scrollPlayback: ScrollPlaybackParams | null;
|
|
58
56
|
}
|
|
59
|
-
interface
|
|
60
|
-
}
|
|
61
|
-
interface RichTextCommonParams extends CommonParamsBase {
|
|
57
|
+
interface RichTextParams extends ParamsBase {
|
|
62
58
|
text: string;
|
|
63
59
|
blocks?: RichTextBlock[];
|
|
60
|
+
rangeStyles?: RichTextStyle[];
|
|
61
|
+
textAlign: TextAlign;
|
|
62
|
+
sizing: string;
|
|
63
|
+
blur: number;
|
|
64
|
+
fontSize: number;
|
|
65
|
+
lineHeight: number;
|
|
66
|
+
letterSpacing: number;
|
|
67
|
+
wordSpacing: number;
|
|
68
|
+
textTransform: TextTransform;
|
|
69
|
+
verticalAlign: VerticalAlign;
|
|
70
|
+
color: string;
|
|
71
|
+
typeFace: string;
|
|
72
|
+
fontStyle: string;
|
|
73
|
+
fontWeight: number;
|
|
74
|
+
fontVariant: string;
|
|
75
|
+
isDraggable?: boolean;
|
|
64
76
|
}
|
|
65
|
-
interface
|
|
77
|
+
interface RectangleParams extends ParamsBase {
|
|
66
78
|
ratioLock: boolean;
|
|
67
|
-
}
|
|
68
|
-
interface CustomCommonParams extends CommonParamsBase {
|
|
69
|
-
name: string;
|
|
70
|
-
}
|
|
71
|
-
interface GroupCommonParams extends CommonParamsBase {
|
|
72
|
-
}
|
|
73
|
-
interface CompoundCommonParams extends CommonParamsBase {
|
|
74
|
-
overflow: 'hidden' | 'visible';
|
|
75
|
-
}
|
|
76
|
-
interface CodeEmbedCommonParams extends CommonParamsBase {
|
|
77
|
-
html: string;
|
|
78
|
-
scale: boolean;
|
|
79
|
-
iframe: boolean;
|
|
80
|
-
}
|
|
81
|
-
interface VimeoEmbedCommonParams extends CommonParamsBase {
|
|
82
|
-
url: string;
|
|
83
|
-
coverUrl: string | null;
|
|
84
|
-
}
|
|
85
|
-
interface YoutubeEmbedCommonParams extends CommonParamsBase {
|
|
86
|
-
url: string;
|
|
87
|
-
coverUrl: string | null;
|
|
88
|
-
}
|
|
89
|
-
interface ComponentCommonParams extends CommonParamsBase {
|
|
90
|
-
componentId: string;
|
|
91
|
-
content?: any;
|
|
92
|
-
}
|
|
93
|
-
interface MediaLayoutParams {
|
|
94
|
-
opacity: number;
|
|
95
79
|
radius: number;
|
|
96
80
|
strokeWidth: number;
|
|
81
|
+
fill: FillLayer[];
|
|
97
82
|
strokeFill: FillLayer[];
|
|
98
83
|
blur: number;
|
|
84
|
+
backdropBlur: number;
|
|
85
|
+
blurMode: 'default' | 'backdrop';
|
|
99
86
|
isDraggable?: boolean;
|
|
100
87
|
}
|
|
101
|
-
interface
|
|
88
|
+
interface CustomParams extends ParamsBase {
|
|
89
|
+
name: string;
|
|
102
90
|
isDraggable?: boolean;
|
|
103
91
|
}
|
|
104
|
-
interface
|
|
92
|
+
interface GroupParams extends ParamsBase {
|
|
105
93
|
opacity: number;
|
|
106
94
|
blur: number;
|
|
107
95
|
isDraggable?: boolean;
|
|
108
96
|
}
|
|
109
|
-
interface
|
|
97
|
+
interface CompoundParams extends ParamsBase {
|
|
98
|
+
overflow: 'hidden' | 'visible';
|
|
110
99
|
opacity: number;
|
|
111
100
|
isDraggable?: boolean;
|
|
112
101
|
}
|
|
113
|
-
interface
|
|
102
|
+
interface CodeEmbedParams extends ParamsBase {
|
|
103
|
+
html: string;
|
|
104
|
+
scale: boolean;
|
|
105
|
+
iframe: boolean;
|
|
114
106
|
areaAnchor: AreaAnchor;
|
|
115
107
|
opacity: number;
|
|
116
108
|
blur: number;
|
|
117
109
|
isDraggable?: boolean;
|
|
118
110
|
}
|
|
119
|
-
interface
|
|
111
|
+
interface VimeoEmbedParams extends ParamsBase {
|
|
112
|
+
url: string;
|
|
113
|
+
coverUrl: string | null;
|
|
120
114
|
play: 'on-hover' | 'on-click' | 'auto';
|
|
121
115
|
controls: boolean;
|
|
122
116
|
loop: boolean;
|
|
@@ -126,7 +120,9 @@ interface VimeoEmbedLayoutParams {
|
|
|
126
120
|
blur: number;
|
|
127
121
|
opacity: number;
|
|
128
122
|
}
|
|
129
|
-
interface
|
|
123
|
+
interface YoutubeEmbedParams extends ParamsBase {
|
|
124
|
+
url: string;
|
|
125
|
+
coverUrl: string | null;
|
|
130
126
|
play: 'on-hover' | 'on-click' | 'auto';
|
|
131
127
|
controls: boolean;
|
|
132
128
|
loop: boolean;
|
|
@@ -134,41 +130,12 @@ interface YoutubeEmbedLayoutParams {
|
|
|
134
130
|
blur: number;
|
|
135
131
|
opacity: number;
|
|
136
132
|
}
|
|
137
|
-
interface
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
controls: boolean;
|
|
143
|
-
scrollPlayback: ScrollPlaybackParams | null;
|
|
144
|
-
}
|
|
145
|
-
interface RichTextLayoutParams {
|
|
146
|
-
rangeStyles?: RichTextStyle[];
|
|
147
|
-
textAlign: TextAlign;
|
|
148
|
-
sizing: string;
|
|
149
|
-
blur: number;
|
|
150
|
-
fontSize: number;
|
|
151
|
-
lineHeight: number;
|
|
152
|
-
letterSpacing: number;
|
|
153
|
-
wordSpacing: number;
|
|
154
|
-
textTransform: TextTransform;
|
|
155
|
-
verticalAlign: VerticalAlign;
|
|
156
|
-
color: string;
|
|
157
|
-
typeFace: string;
|
|
158
|
-
fontStyle: string;
|
|
159
|
-
fontWeight: number;
|
|
160
|
-
fontVariant: string;
|
|
161
|
-
isDraggable?: boolean;
|
|
162
|
-
}
|
|
163
|
-
interface RectangleLayoutParams {
|
|
164
|
-
radius: number;
|
|
165
|
-
strokeWidth: number;
|
|
166
|
-
fill: FillLayer[];
|
|
167
|
-
strokeFill: FillLayer[];
|
|
133
|
+
interface ComponentParams extends ParamsBase {
|
|
134
|
+
componentId: string;
|
|
135
|
+
content?: any;
|
|
136
|
+
parameters?: any;
|
|
137
|
+
opacity: number;
|
|
168
138
|
blur: number;
|
|
169
|
-
backdropBlur: number;
|
|
170
|
-
blurMode: 'default' | 'backdrop';
|
|
171
|
-
isDraggable?: boolean;
|
|
172
139
|
}
|
|
173
140
|
export type FillLayer = SolidFillLayer | LinearGradientFillLayer | RadialGradientFillLayer | ConicGradientFillLayer | ImageLayer;
|
|
174
141
|
type ColorPoint = {
|
|
@@ -230,12 +197,6 @@ export interface Link {
|
|
|
230
197
|
url: string;
|
|
231
198
|
target: string;
|
|
232
199
|
}
|
|
233
|
-
type LayoutIdentifier = string;
|
|
234
|
-
interface ComponentLayoutParams {
|
|
235
|
-
parameters?: any;
|
|
236
|
-
opacity: number;
|
|
237
|
-
blur: number;
|
|
238
|
-
}
|
|
239
200
|
export type VideoItem = Item<ArticleItemType.Video>;
|
|
240
201
|
export type RectangleItem = Item<ArticleItemType.Rectangle>;
|
|
241
202
|
export type ImageItem = Item<ArticleItemType.Image>;
|
|
@@ -28,10 +28,9 @@ export type SectionMedia = SectionVideo | SectionImage;
|
|
|
28
28
|
export interface Section {
|
|
29
29
|
id: string;
|
|
30
30
|
name?: string;
|
|
31
|
-
height:
|
|
32
|
-
hidden:
|
|
31
|
+
height: SectionHeight;
|
|
32
|
+
hidden: boolean;
|
|
33
33
|
items: ItemAny[];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
media?: Record<string, SectionMedia>;
|
|
34
|
+
color: string | null;
|
|
35
|
+
media?: SectionMedia;
|
|
37
36
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { FillLayer } from
|
|
1
|
+
import { FillLayer } from "../article/Item";
|
|
2
2
|
export type KeyframeAny = Keyframe<KeyframeType>;
|
|
3
3
|
export interface Keyframe<T extends KeyframeType> {
|
|
4
4
|
id: string;
|
|
5
5
|
type: T;
|
|
6
|
-
layoutId: string;
|
|
7
6
|
itemId: string;
|
|
8
7
|
position: number;
|
|
9
8
|
value: KeyframeValueMap[T];
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Layout } from './Layout';
|
|
2
1
|
import { Fonts } from './Fonts';
|
|
3
2
|
import { Meta } from './Meta';
|
|
4
3
|
import { Page } from './Page';
|
|
@@ -11,7 +10,7 @@ export interface Project {
|
|
|
11
10
|
id: string;
|
|
12
11
|
html: AdditionalHTML;
|
|
13
12
|
meta: Meta;
|
|
14
|
-
|
|
13
|
+
exemplary: number;
|
|
15
14
|
pages: Page[];
|
|
16
15
|
fonts: Fonts;
|
|
17
16
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useExemplary = void 0;
|
|
4
|
+
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
+
const useExemplary = () => {
|
|
6
|
+
const { exemplary } = (0, useCntrlContext_1.useCntrlContext)();
|
|
7
|
+
return exemplary;
|
|
8
|
+
};
|
|
9
|
+
exports.useExemplary = useExemplary;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useItemFXData = useItemFXData;
|
|
4
|
+
const Keyframe_1 = require("../../sdk/types/keyframe/Keyframe");
|
|
5
|
+
const useKeyframeValue_1 = require("./useKeyframeValue");
|
|
6
|
+
const baseVariables = `precision mediump float;
|
|
7
|
+
uniform sampler2D u_image;
|
|
8
|
+
uniform sampler2D u_pattern;
|
|
9
|
+
uniform vec2 u_imgDimensions;
|
|
10
|
+
uniform vec2 u_patternDimensions;
|
|
11
|
+
uniform float u_time;
|
|
12
|
+
uniform vec2 u_cursor;
|
|
13
|
+
varying vec2 v_texCoord;`;
|
|
14
|
+
function useItemFXData(item, sectionId) {
|
|
15
|
+
const { fragmentShader: shaderBody, FXControls } = item.params;
|
|
16
|
+
const controls = FXControls !== null && FXControls !== void 0 ? FXControls : [];
|
|
17
|
+
const controlsVariables = controls.map((c) => `uniform ${c.type} ${c.shaderParam};`)
|
|
18
|
+
.join('\n');
|
|
19
|
+
const fragmentShader = `${baseVariables}\n${controlsVariables}\n${shaderBody}`;
|
|
20
|
+
const controlsValues = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.FXParams, () => {
|
|
21
|
+
const defaultValue = controls.reduce((acc, control) => {
|
|
22
|
+
if (Array.isArray(control.value)) {
|
|
23
|
+
acc[control.shaderParam] = control.value[0];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
acc[control.shaderParam] = control.value;
|
|
27
|
+
}
|
|
28
|
+
return acc;
|
|
29
|
+
}, {});
|
|
30
|
+
return defaultValue;
|
|
31
|
+
}, (animator, scroll, value) => animator.getFXParams(value, scroll), sectionId);
|
|
32
|
+
return {
|
|
33
|
+
fragmentShader,
|
|
34
|
+
controlsValues
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -3,6 +3,6 @@ import { Animator } from '../utils/Animator/Animator';
|
|
|
3
3
|
import { ItemAny } from '../../sdk/types/article/Item';
|
|
4
4
|
import { KeyframeType } from '../../sdk/types/keyframe/Keyframe';
|
|
5
5
|
export type AnimatorGetter<T> = (animator: Animator, scroll: number, value: T) => T;
|
|
6
|
-
type ItemParamGetter<T> = (item: ItemAny
|
|
6
|
+
type ItemParamGetter<T> = (item: ItemAny) => T;
|
|
7
7
|
export declare function useKeyframeValue<T>(item: ItemAny, type: KeyframeType, itemParamsGetter: ItemParamGetter<T>, animatorGetter: AnimatorGetter<T>, sectionId: string, deps?: DependencyList): T;
|
|
8
8
|
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
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.useKeyframeValue = useKeyframeValue;
|
|
7
|
+
const lodash_isequal_1 = __importDefault(require("lodash.isequal"));
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
10
|
+
const KeyframesContext_1 = require("../provider/KeyframesContext");
|
|
11
|
+
const Animator_1 = require("../utils/Animator/Animator");
|
|
12
|
+
const emptyDeps = [];
|
|
13
|
+
function useKeyframeValue(item, type, itemParamsGetter, animatorGetter, sectionId, deps = emptyDeps) {
|
|
14
|
+
const animatorGetterRef = (0, react_1.useRef)(animatorGetter);
|
|
15
|
+
const itemParamsGetterRef = (0, react_1.useRef)(itemParamsGetter);
|
|
16
|
+
animatorGetterRef.current = animatorGetter;
|
|
17
|
+
itemParamsGetterRef.current = itemParamsGetter;
|
|
18
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
19
|
+
const keyframesRepo = (0, react_1.useContext)(KeyframesContext_1.KeyframesContext);
|
|
20
|
+
const keyframes = (0, react_1.useMemo)(() => keyframesRepo.getItemKeyframes(item.id).filter(kf => kf.type === type), [item.id, keyframesRepo, type]);
|
|
21
|
+
const paramValue = (0, react_1.useMemo)(() => {
|
|
22
|
+
return itemParamsGetterRef.current(item);
|
|
23
|
+
}, [item, ...deps]);
|
|
24
|
+
const [adjustedValue, setAdjustedValue] = (0, react_1.useState)(paramValue);
|
|
25
|
+
const adjustedValueRef = (0, react_1.useRef)(adjustedValue);
|
|
26
|
+
adjustedValueRef.current = adjustedValue;
|
|
27
|
+
const animator = (0, react_1.useMemo)(() => {
|
|
28
|
+
if (!keyframes.length)
|
|
29
|
+
return;
|
|
30
|
+
const animationData = keyframes
|
|
31
|
+
.map(({ position, type, value }) => ({
|
|
32
|
+
position,
|
|
33
|
+
type,
|
|
34
|
+
value
|
|
35
|
+
}));
|
|
36
|
+
return new Animator_1.Animator(animationData);
|
|
37
|
+
}, [keyframes]);
|
|
38
|
+
const handleKeyframeValue = (0, react_1.useCallback)((scroll) => {
|
|
39
|
+
if (!animator)
|
|
40
|
+
return;
|
|
41
|
+
const newValue = animatorGetterRef.current(animator, scroll, paramValue);
|
|
42
|
+
if (!(0, lodash_isequal_1.default)(newValue, adjustedValueRef.current)) {
|
|
43
|
+
setAdjustedValue(newValue);
|
|
44
|
+
}
|
|
45
|
+
}, [animator, paramValue]);
|
|
46
|
+
(0, react_1.useEffect)(() => {
|
|
47
|
+
setAdjustedValue(paramValue);
|
|
48
|
+
}, [paramValue]);
|
|
49
|
+
(0, react_1.useEffect)(() => {
|
|
50
|
+
if (!articleRectObserver || !animator)
|
|
51
|
+
return;
|
|
52
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
53
|
+
handleKeyframeValue(scroll);
|
|
54
|
+
}, [articleRectObserver, handleKeyframeValue, animator]);
|
|
55
|
+
(0, react_1.useEffect)(() => {
|
|
56
|
+
if (!articleRectObserver || !animator)
|
|
57
|
+
return;
|
|
58
|
+
return articleRectObserver.on('resize', () => {
|
|
59
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
60
|
+
handleKeyframeValue(scroll);
|
|
61
|
+
});
|
|
62
|
+
}, [handleKeyframeValue, articleRectObserver, animator]);
|
|
63
|
+
(0, react_1.useEffect)(() => {
|
|
64
|
+
if (!articleRectObserver || !animator)
|
|
65
|
+
return;
|
|
66
|
+
return articleRectObserver.on('scroll', () => {
|
|
67
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
68
|
+
handleKeyframeValue(scroll);
|
|
69
|
+
});
|
|
70
|
+
}, [handleKeyframeValue, articleRectObserver, animator]);
|
|
71
|
+
return keyframes.length ? adjustedValue : paramValue;
|
|
72
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLayoutDeviation = useLayoutDeviation;
|
|
4
|
+
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
7
|
+
function useLayoutDeviation() {
|
|
8
|
+
const { exemplary } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
10
|
+
const [deviation, setDeviation] = (0, react_1.useState)(1);
|
|
11
|
+
(0, react_1.useEffect)(() => {
|
|
12
|
+
if (!articleRectObserver)
|
|
13
|
+
return;
|
|
14
|
+
return articleRectObserver.on('resize', () => {
|
|
15
|
+
const articleWidth = articleRectObserver.width;
|
|
16
|
+
setDeviation(articleWidth / exemplary);
|
|
17
|
+
});
|
|
18
|
+
}, [articleRectObserver, exemplary]);
|
|
19
|
+
return { layoutDeviation: deviation };
|
|
20
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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.useRegisterResize = useRegisterResize;
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const resize_observer_polyfill_1 = __importDefault(require("resize-observer-polyfill"));
|
|
9
|
+
function useRegisterResize(ref, onResize) {
|
|
10
|
+
(0, react_1.useEffect)(() => {
|
|
11
|
+
if (!ref || !onResize)
|
|
12
|
+
return;
|
|
13
|
+
const observer = new resize_observer_polyfill_1.default((entries) => {
|
|
14
|
+
const [entry] = entries;
|
|
15
|
+
onResize(entry.target.clientHeight / window.innerWidth);
|
|
16
|
+
});
|
|
17
|
+
observer.observe(ref);
|
|
18
|
+
return () => {
|
|
19
|
+
observer.unobserve(ref);
|
|
20
|
+
};
|
|
21
|
+
}, [ref, onResize]);
|
|
22
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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.Article = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const style_1 = __importDefault(require("styled-jsx/style"));
|
|
10
|
+
const Section_1 = require("./Section/Section");
|
|
11
|
+
const Item_1 = require("./items/Item");
|
|
12
|
+
const useArticleRectObserver_1 = require("../utils/ArticleRectManager/useArticleRectObserver");
|
|
13
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
14
|
+
const ArticleWrapper_1 = require("./ArticleWrapper");
|
|
15
|
+
const InteractionsContext_1 = require("../provider/InteractionsContext");
|
|
16
|
+
const WebGLContextManagerContext_1 = require("../provider/WebGLContextManagerContext");
|
|
17
|
+
const effects_1 = require("@cntrl-site/effects");
|
|
18
|
+
const Article = ({ article, sectionData }) => {
|
|
19
|
+
const articleRef = (0, react_1.useRef)(null);
|
|
20
|
+
const articleRectObserver = (0, useArticleRectObserver_1.useArticleRectObserver)(articleRef.current);
|
|
21
|
+
const id = (0, react_1.useId)();
|
|
22
|
+
const [articleHeight, setArticleHeight] = (0, react_1.useState)(1);
|
|
23
|
+
(0, react_1.useEffect)(() => {
|
|
24
|
+
if (!articleRectObserver)
|
|
25
|
+
return;
|
|
26
|
+
return articleRectObserver.on('resize', (rect) => {
|
|
27
|
+
setArticleHeight(rect.height / rect.width);
|
|
28
|
+
});
|
|
29
|
+
}, [articleRectObserver]);
|
|
30
|
+
const webglContextManager = (0, react_1.useMemo)(() => new effects_1.WebGLContextManager(), []);
|
|
31
|
+
return ((0, jsx_runtime_1.jsx)(ArticleRectContext_1.ArticleRectContext.Provider, { value: articleRectObserver, children: (0, jsx_runtime_1.jsxs)(InteractionsContext_1.InteractionsProvider, { article: article, children: [(0, jsx_runtime_1.jsx)(ArticleWrapper_1.ArticleWrapper, { children: (0, jsx_runtime_1.jsx)("div", { className: "article", ref: articleRef, children: (0, jsx_runtime_1.jsx)(WebGLContextManagerContext_1.WebglContextManagerContext.Provider, { value: webglContextManager, children: article.sections.map((section, i) => {
|
|
32
|
+
const data = section.name ? sectionData[section.name] : {};
|
|
33
|
+
return ((0, jsx_runtime_1.jsx)(Section_1.Section, { section: section, data: data, children: article.sections[i].items.map(item => ((0, jsx_runtime_1.jsx)(Item_1.Item, { item: item, sectionId: section.id, articleHeight: articleHeight }, item.id))) }, section.id));
|
|
34
|
+
}) }) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
|
|
35
|
+
.article {
|
|
36
|
+
position: relative;
|
|
37
|
+
overflow: clip;
|
|
38
|
+
}
|
|
39
|
+
` })] }) }));
|
|
40
|
+
};
|
|
41
|
+
exports.Article = Article;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArticleWrapper = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const useLayoutDeviation_1 = require("../common/useLayoutDeviation");
|
|
6
|
+
const ArticleWrapper = ({ children }) => {
|
|
7
|
+
const { layoutDeviation } = (0, useLayoutDeviation_1.useLayoutDeviation)();
|
|
8
|
+
const layoutDeviationStyle = { '--layout-deviation': layoutDeviation };
|
|
9
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "article-wrapper", style: Object.assign({}, layoutDeviationStyle), children: children }));
|
|
10
|
+
};
|
|
11
|
+
exports.ArticleWrapper = ArticleWrapper;
|
|
@@ -0,0 +1,32 @@
|
|
|
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.CNTRLHead = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const html_react_parser_1 = __importDefault(require("html-react-parser"));
|
|
9
|
+
const head_1 = __importDefault(require("next/head"));
|
|
10
|
+
const FontFaceGenerator_1 = require("../../sdk/FontFaceGenerator/FontFaceGenerator");
|
|
11
|
+
const CNTRLHead = ({ meta, project }) => {
|
|
12
|
+
const googleFonts = (0, html_react_parser_1.default)(project.fonts.google);
|
|
13
|
+
const adobeFonts = (0, html_react_parser_1.default)(project.fonts.adobe);
|
|
14
|
+
const parsedFonts = Object.assign(Object.assign({}, (typeof googleFonts === 'object' ? googleFonts : {})), (typeof adobeFonts === 'object' ? adobeFonts : {}));
|
|
15
|
+
const customFonts = project.fonts.custom;
|
|
16
|
+
const htmlHead = (0, html_react_parser_1.default)(project.html.head);
|
|
17
|
+
const ffGenerator = new FontFaceGenerator_1.FontFaceGenerator(customFonts);
|
|
18
|
+
const links = Object.values(parsedFonts).map((value) => {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
if (!value)
|
|
21
|
+
return;
|
|
22
|
+
const rel = (value === null || value === void 0 ? void 0 : value.rel) || ((_a = value.props) === null || _a === void 0 ? void 0 : _a.rel);
|
|
23
|
+
const href = (value === null || value === void 0 ? void 0 : value.href) || ((_b = value.props) === null || _b === void 0 ? void 0 : _b.href);
|
|
24
|
+
if (!rel || !href)
|
|
25
|
+
return;
|
|
26
|
+
return ((0, jsx_runtime_1.jsx)("link", { rel: rel, href: href }, `link-${rel}-${href}`));
|
|
27
|
+
});
|
|
28
|
+
return ((0, jsx_runtime_1.jsxs)(head_1.default, { children: [(0, jsx_runtime_1.jsx)("title", { children: meta.title }), (0, jsx_runtime_1.jsx)("meta", { name: "description", content: meta.description }), (0, jsx_runtime_1.jsx)("meta", { name: "keywords", content: meta.keywords }), (0, jsx_runtime_1.jsx)("meta", { name: "og:title", content: meta.title }), (0, jsx_runtime_1.jsx)("meta", { name: "og:image", content: meta.opengraphThumbnail }), (0, jsx_runtime_1.jsx)("meta", { name: "og:description", content: meta.description }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:title", content: meta.title }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:image", content: meta.opengraphThumbnail }), (0, jsx_runtime_1.jsx)("meta", { name: "twitter:description", content: meta.description }), (0, jsx_runtime_1.jsx)("meta", { property: "twitter:card", content: "summary_large_image" }), (0, jsx_runtime_1.jsx)("meta", { name: "generator", content: "https://cntrl.site" }), (0, jsx_runtime_1.jsx)("link", { rel: "icon", href: meta.favicon }), customFonts.length > 0 && ((0, jsx_runtime_1.jsx)("style", { dangerouslySetInnerHTML: {
|
|
29
|
+
__html: ffGenerator.generate()
|
|
30
|
+
} })), links, htmlHead] }));
|
|
31
|
+
};
|
|
32
|
+
exports.CNTRLHead = CNTRLHead;
|
|
@@ -0,0 +1,20 @@
|
|
|
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.Page = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const html_react_parser_1 = __importDefault(require("html-react-parser"));
|
|
10
|
+
const Article_1 = require("./Article");
|
|
11
|
+
const KeyframesContext_1 = require("../provider/KeyframesContext");
|
|
12
|
+
const Head_1 = require("./Head");
|
|
13
|
+
const Keyframes_1 = require("../provider/Keyframes");
|
|
14
|
+
const Page = ({ article, project, meta, keyframes, sectionData }) => {
|
|
15
|
+
const afterBodyOpen = (0, html_react_parser_1.default)(project.html.afterBodyOpen);
|
|
16
|
+
const beforeBodyClose = (0, html_react_parser_1.default)(project.html.beforeBodyClose);
|
|
17
|
+
const keyframesRepo = (0, react_1.useMemo)(() => new Keyframes_1.Keyframes(keyframes), [keyframes]);
|
|
18
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Head_1.CNTRLHead, { project: project, meta: meta }), afterBodyOpen, (0, jsx_runtime_1.jsx)(KeyframesContext_1.KeyframesContext.Provider, { value: keyframesRepo, children: (0, jsx_runtime_1.jsx)(Article_1.Article, { article: article, sectionData: sectionData }) }), beforeBodyClose] }));
|
|
19
|
+
};
|
|
20
|
+
exports.Page = Page;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScrollPlaybackVideo = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const rangeMap_1 = require("../utils/rangeMap");
|
|
7
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
8
|
+
const ScrollPlaybackVideoManager_1 = require("../../sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager");
|
|
9
|
+
const ScrollPlaybackVideo = ({ sectionId, src, playbackParams, style, className }) => {
|
|
10
|
+
const [containerElement, setContainerElement] = (0, react_1.useState)(null);
|
|
11
|
+
const [time, setTime] = (0, react_1.useState)(0);
|
|
12
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
13
|
+
(0, react_1.useEffect)(() => {
|
|
14
|
+
if (!playbackParams || !articleRectObserver)
|
|
15
|
+
return;
|
|
16
|
+
return articleRectObserver.on('scroll', () => {
|
|
17
|
+
const scrollPos = articleRectObserver.getSectionScroll(sectionId);
|
|
18
|
+
const time = (0, rangeMap_1.rangeMap)(scrollPos, playbackParams.from, playbackParams.to, 0, 1, true);
|
|
19
|
+
setTime(toFixed(time));
|
|
20
|
+
});
|
|
21
|
+
}, [playbackParams === null || playbackParams === void 0 ? void 0 : playbackParams.from, playbackParams === null || playbackParams === void 0 ? void 0 : playbackParams.to, time]);
|
|
22
|
+
const scrollVideoManager = (0, react_1.useMemo)(() => {
|
|
23
|
+
if (!containerElement)
|
|
24
|
+
return null;
|
|
25
|
+
const manager = new ScrollPlaybackVideoManager_1.ScrollPlaybackVideoManager({
|
|
26
|
+
src,
|
|
27
|
+
videoContainer: containerElement
|
|
28
|
+
});
|
|
29
|
+
return manager;
|
|
30
|
+
}, [containerElement, src]);
|
|
31
|
+
(0, react_1.useEffect)(() => {
|
|
32
|
+
return () => {
|
|
33
|
+
scrollVideoManager === null || scrollVideoManager === void 0 ? void 0 : scrollVideoManager.destroy();
|
|
34
|
+
};
|
|
35
|
+
}, [scrollVideoManager]);
|
|
36
|
+
(0, react_1.useEffect)(() => {
|
|
37
|
+
if (scrollVideoManager && time >= 0 && time <= 1) {
|
|
38
|
+
scrollVideoManager.setTargetTimePercent(time);
|
|
39
|
+
}
|
|
40
|
+
}, [time, scrollVideoManager]);
|
|
41
|
+
return (0, jsx_runtime_1.jsx)("div", { className: className, style: style, ref: setContainerElement });
|
|
42
|
+
};
|
|
43
|
+
exports.ScrollPlaybackVideo = ScrollPlaybackVideo;
|
|
44
|
+
function toFixed(num) {
|
|
45
|
+
return Number(num.toFixed(3));
|
|
46
|
+
}
|