@gxpl/sdk 0.0.6 → 0.0.8
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 +3 -4
- package/lib/index.js +45 -0
- 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 +12 -12
- package/{dist → lib}/sdk/schemas/article/ItemBase.schema.d.ts +10 -10
- package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.d.ts +30 -30
- package/{dist → lib}/sdk/schemas/article/Section.schema.d.ts +3 -3
- package/{dist → lib}/sdk/types/component/Component.d.ts +1 -1
- package/{dist → lib}/sdk/types/keyframe/Keyframe.d.ts +1 -1
- package/lib/sdk/types/project/Meta.js +2 -0
- package/lib/sdk/types/project/Page.js +2 -0
- package/lib/sdk/types/project/Project.js +2 -0
- package/lib/sdk-nextjs/common/useCurrentLayout.js +42 -0
- package/lib/sdk-nextjs/common/useExemplary.js +13 -0
- package/lib/sdk-nextjs/common/useItemFXData.js +36 -0
- package/lib/sdk-nextjs/common/useKeyframeValue.js +75 -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 +12 -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 +85 -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.js +20 -0
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.js +120 -0
- package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.js +24 -0
- package/lib/sdk-nextjs/components/items/ComponentItem/ComponentItem.js +51 -0
- package/lib/sdk-nextjs/components/items/ComponentItem/useComponentItem.js +25 -0
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundChild.js +102 -0
- package/lib/sdk-nextjs/components/items/CompoundItem/CompoundItem.js +53 -0
- package/lib/sdk-nextjs/components/items/CompoundItem/useCompoundItem.js +16 -0
- package/lib/sdk-nextjs/components/items/CustomItem/CustomItem.js +40 -0
- package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.d.ts +2 -2
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.js +170 -0
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.js +166 -0
- package/lib/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.js +29 -0
- package/lib/sdk-nextjs/components/items/FileItem/ImageItem.js +140 -0
- package/lib/sdk-nextjs/components/items/FileItem/VideoItem.js +227 -0
- package/{dist → lib}/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +1 -1
- package/lib/sdk-nextjs/components/items/FileItem/useFileItem.js +48 -0
- package/lib/sdk-nextjs/components/items/GroupItem/GroupItem.js +55 -0
- package/lib/sdk-nextjs/components/items/GroupItem/useGroupItem.js +22 -0
- package/lib/sdk-nextjs/components/items/Item.js +175 -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 +130 -0
- package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.js +54 -0
- package/lib/sdk-nextjs/components/items/RichTextItem/RichTextItem.js +83 -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/lib/sdk-nextjs/components/items/useItemAngle.js +10 -0
- package/lib/sdk-nextjs/components/items/useItemArea.js +21 -0
- package/lib/sdk-nextjs/components/items/useItemPointerEvents.js +23 -0
- package/lib/sdk-nextjs/components/items/useItemScale.js +12 -0
- package/lib/sdk-nextjs/components/items/useItemTriggers.js +16 -0
- package/lib/sdk-nextjs/components/items/useRichTextItemValues.js +38 -0
- package/lib/sdk-nextjs/components/items/useSizing.js +22 -0
- package/lib/sdk-nextjs/components/items/useStickyItemTop.js +17 -0
- package/lib/sdk-nextjs/components/useLayoutContext.js +9 -0
- package/{dist → lib}/sdk-nextjs/interactions/CSSPropertyNameMap.d.ts +2 -2
- package/lib/sdk-nextjs/interactions/CSSPropertyNameMap.js +38 -0
- 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/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 +52 -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/lib/sdk-nextjs/provider/LayoutContext.d.ts +1 -0
- package/lib/sdk-nextjs/provider/LayoutContext.js +5 -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/lib/sdk-nextjs/utils/RichTextConverter/RichTextConverter.js +288 -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.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/lib/utils.js +30 -0
- package/package.json +15 -27
- 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/shared/FillLayer.schema.d.ts +0 -186
- 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/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.css +0 -1
- /package/{dist → lib}/cli.d.ts +0 -0
- /package/{dist → lib}/cli.js +0 -0
- /package/{dist → lib}/sdk/Client/Client.d.ts +0 -0
- /package/{dist → lib}/sdk/Client/Client.js +0 -0
- /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/Article.schema.js +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/Item.schema.js +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/ItemBase.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/article/ItemState.schema.d.ts +0 -0
- /package/{dist → lib}/sdk/schemas/article/ItemState.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/article/Section.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.d.ts +0 -0
- /package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/project/Layout.schema.d.ts +0 -0
- /package/{dist → lib}/sdk/schemas/project/Layout.schema.js +0 -0
- /package/{dist → lib}/sdk/schemas/project/Project.schema.d.ts +0 -0
- /package/{dist → lib}/sdk/schemas/project/Project.schema.js +0 -0
- /package/{dist → lib}/sdk/types/article/Article.d.ts +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.d.ts +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.d.ts +0 -0
- /package/{dist → lib}/sdk/types/article/Section.js +0 -0
- /package/{dist/sdk/types/project/Page.js → lib/sdk/types/component/Component.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/Layout.d.ts +0 -0
- /package/{dist/sdk/types/project/Project.js → lib/sdk/types/project/Layout.js} +0 -0
- /package/{dist → lib}/sdk/types/project/Meta.d.ts +0 -0
- /package/{dist → lib}/sdk/types/project/Page.d.ts +0 -0
- /package/{dist → lib}/sdk/types/project/Project.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/common/useCurrentLayout.d.ts +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/useKeyframeValue.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/Section/useSectionHeightMap.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/ComponentItem.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/useComponentItem.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/CompoundItem/useCompoundItem.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/EmbedVideoItem/useEmbedVideoItem.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/GroupItem/useGroupItem.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/RectangleItem/useRectangleItem.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/useItemAngle.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemArea.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemPointerEvents.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemScale.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useItemTriggers.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/components/items/useRichTextItemValues.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/components/useLayoutContext.d.ts +0 -0
- /package/{dist → lib}/sdk-nextjs/interactions/InteractionsRegistry.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/CntrlSdkContext.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/RichTextConverter/RichTextConverter.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/getStyleFromItemStateAndParams.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
- /package/{dist → lib}/utils.d.ts +0 -0
|
@@ -43,10 +43,10 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
43
43
|
height: z.ZodNumber;
|
|
44
44
|
zIndex: z.ZodNumber;
|
|
45
45
|
angle: z.ZodNumber;
|
|
46
|
-
anchorSide: z.ZodOptional<z.ZodNativeEnum<typeof import(
|
|
46
|
+
anchorSide: z.ZodOptional<z.ZodNativeEnum<typeof import("../../..").AnchorSide>>;
|
|
47
47
|
scale: z.ZodNumber;
|
|
48
|
-
positionType: z.ZodNativeEnum<typeof import(
|
|
49
|
-
scaleAnchor: z.ZodNativeEnum<typeof import(
|
|
48
|
+
positionType: z.ZodNativeEnum<typeof import("../../..").PositionType>;
|
|
49
|
+
scaleAnchor: z.ZodNativeEnum<typeof import("../../..").AreaAnchor>;
|
|
50
50
|
}, "strip", z.ZodTypeAny, {
|
|
51
51
|
left: number;
|
|
52
52
|
top: number;
|
|
@@ -55,9 +55,9 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
55
55
|
width: number;
|
|
56
56
|
height: number;
|
|
57
57
|
zIndex: number;
|
|
58
|
-
positionType: import(
|
|
59
|
-
scaleAnchor: import(
|
|
60
|
-
anchorSide?: import(
|
|
58
|
+
positionType: import("../../..").PositionType;
|
|
59
|
+
scaleAnchor: import("../../..").AreaAnchor;
|
|
60
|
+
anchorSide?: import("../../..").AnchorSide | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
left: number;
|
|
63
63
|
top: number;
|
|
@@ -66,9 +66,9 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
66
66
|
width: number;
|
|
67
67
|
height: number;
|
|
68
68
|
zIndex: number;
|
|
69
|
-
positionType: import(
|
|
70
|
-
scaleAnchor: import(
|
|
71
|
-
anchorSide?: import(
|
|
69
|
+
positionType: import("../../..").PositionType;
|
|
70
|
+
scaleAnchor: import("../../..").AreaAnchor;
|
|
71
|
+
anchorSide?: import("../../..").AnchorSide | undefined;
|
|
72
72
|
}>>;
|
|
73
73
|
hidden: z.ZodRecord<z.ZodString, z.ZodBoolean>;
|
|
74
74
|
link: z.ZodOptional<z.ZodObject<{
|
|
@@ -82,17 +82,17 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
82
82
|
target: string;
|
|
83
83
|
}>>;
|
|
84
84
|
compoundSettings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
85
|
-
positionAnchor: z.ZodNativeEnum<typeof import(
|
|
86
|
-
widthMode: z.ZodNativeEnum<typeof import(
|
|
87
|
-
heightMode: z.ZodNativeEnum<typeof import(
|
|
85
|
+
positionAnchor: z.ZodNativeEnum<typeof import("../../..").AreaAnchor>;
|
|
86
|
+
widthMode: z.ZodNativeEnum<typeof import("../../..").DimensionMode>;
|
|
87
|
+
heightMode: z.ZodNativeEnum<typeof import("../../..").DimensionMode>;
|
|
88
88
|
}, "strip", z.ZodTypeAny, {
|
|
89
|
-
positionAnchor: import(
|
|
90
|
-
widthMode: import(
|
|
91
|
-
heightMode: import(
|
|
89
|
+
positionAnchor: import("../../..").AreaAnchor;
|
|
90
|
+
widthMode: import("../../..").DimensionMode;
|
|
91
|
+
heightMode: import("../../..").DimensionMode;
|
|
92
92
|
}, {
|
|
93
|
-
positionAnchor: import(
|
|
94
|
-
widthMode: import(
|
|
95
|
-
heightMode: import(
|
|
93
|
+
positionAnchor: import("../../..").AreaAnchor;
|
|
94
|
+
widthMode: import("../../..").DimensionMode;
|
|
95
|
+
heightMode: import("../../..").DimensionMode;
|
|
96
96
|
}>>>;
|
|
97
97
|
} & {
|
|
98
98
|
type: z.ZodLiteral<ArticleItemType.RichText>;
|
|
@@ -1003,9 +1003,9 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
1003
1003
|
width: number;
|
|
1004
1004
|
height: number;
|
|
1005
1005
|
zIndex: number;
|
|
1006
|
-
positionType: import(
|
|
1007
|
-
scaleAnchor: import(
|
|
1008
|
-
anchorSide?: import(
|
|
1006
|
+
positionType: import("../../..").PositionType;
|
|
1007
|
+
scaleAnchor: import("../../..").AreaAnchor;
|
|
1008
|
+
anchorSide?: import("../../..").AnchorSide | undefined;
|
|
1009
1009
|
}>;
|
|
1010
1010
|
layoutParams: Record<string, {
|
|
1011
1011
|
color: string;
|
|
@@ -1176,9 +1176,9 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
1176
1176
|
target: string;
|
|
1177
1177
|
} | undefined;
|
|
1178
1178
|
compoundSettings?: Record<string, {
|
|
1179
|
-
positionAnchor: import(
|
|
1180
|
-
widthMode: import(
|
|
1181
|
-
heightMode: import(
|
|
1179
|
+
positionAnchor: import("../../..").AreaAnchor;
|
|
1180
|
+
widthMode: import("../../..").DimensionMode;
|
|
1181
|
+
heightMode: import("../../..").DimensionMode;
|
|
1182
1182
|
}> | undefined;
|
|
1183
1183
|
}, {
|
|
1184
1184
|
hidden: Record<string, boolean>;
|
|
@@ -1192,9 +1192,9 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
1192
1192
|
width: number;
|
|
1193
1193
|
height: number;
|
|
1194
1194
|
zIndex: number;
|
|
1195
|
-
positionType: import(
|
|
1196
|
-
scaleAnchor: import(
|
|
1197
|
-
anchorSide?: import(
|
|
1195
|
+
positionType: import("../../..").PositionType;
|
|
1196
|
+
scaleAnchor: import("../../..").AreaAnchor;
|
|
1197
|
+
anchorSide?: import("../../..").AnchorSide | undefined;
|
|
1198
1198
|
}>;
|
|
1199
1199
|
layoutParams: Record<string, {
|
|
1200
1200
|
color: string;
|
|
@@ -1365,8 +1365,8 @@ export declare const RichTextItemSchema: z.ZodObject<{
|
|
|
1365
1365
|
target: string;
|
|
1366
1366
|
} | undefined;
|
|
1367
1367
|
compoundSettings?: Record<string, {
|
|
1368
|
-
positionAnchor: import(
|
|
1369
|
-
widthMode: import(
|
|
1370
|
-
heightMode: import(
|
|
1368
|
+
positionAnchor: import("../../..").AreaAnchor;
|
|
1369
|
+
widthMode: import("../../..").DimensionMode;
|
|
1370
|
+
heightMode: import("../../..").DimensionMode;
|
|
1371
1371
|
}> | undefined;
|
|
1372
1372
|
}>;
|
|
@@ -58,7 +58,7 @@ export declare const SectionMediaSchema: z.ZodDiscriminatedUnion<"type", [z.ZodO
|
|
|
58
58
|
}>]>;
|
|
59
59
|
export declare const SectionSchema: z.ZodObject<{
|
|
60
60
|
id: z.ZodString;
|
|
61
|
-
items: z.ZodArray<z.ZodType<import(
|
|
61
|
+
items: z.ZodArray<z.ZodType<import("../../..").ItemAny, z.ZodTypeDef, import("../../..").ItemAny>, "many">;
|
|
62
62
|
name: z.ZodOptional<z.ZodString>;
|
|
63
63
|
height: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
64
64
|
mode: z.ZodNativeEnum<typeof SectionHeightMode>;
|
|
@@ -129,7 +129,7 @@ export declare const SectionSchema: z.ZodObject<{
|
|
|
129
129
|
units: number;
|
|
130
130
|
vhUnits?: number | undefined;
|
|
131
131
|
}>;
|
|
132
|
-
items: import(
|
|
132
|
+
items: import("../../..").ItemAny[];
|
|
133
133
|
name?: string | undefined;
|
|
134
134
|
media?: Record<string, {
|
|
135
135
|
url: string;
|
|
@@ -156,7 +156,7 @@ export declare const SectionSchema: z.ZodObject<{
|
|
|
156
156
|
units: number;
|
|
157
157
|
vhUnits?: number | undefined;
|
|
158
158
|
}>;
|
|
159
|
-
items: import(
|
|
159
|
+
items: import("../../..").ItemAny[];
|
|
160
160
|
name?: string | undefined;
|
|
161
161
|
media?: Record<string, {
|
|
162
162
|
url: string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCurrentLayout = useCurrentLayout;
|
|
4
|
+
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const ArticleRectContext_1 = require("../provider/ArticleRectContext");
|
|
7
|
+
function useCurrentLayout() {
|
|
8
|
+
const { layouts } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
10
|
+
const layoutRanges = (0, react_1.useMemo)(() => {
|
|
11
|
+
const sorted = layouts.slice().sort((la, lb) => la.startsWith - lb.startsWith);
|
|
12
|
+
return sorted.reduce((acc, layout, i, layouts) => {
|
|
13
|
+
const next = layouts[i + 1];
|
|
14
|
+
return [
|
|
15
|
+
...acc,
|
|
16
|
+
{
|
|
17
|
+
layoutId: layout.id,
|
|
18
|
+
exemplary: layout.exemplary,
|
|
19
|
+
start: layout.startsWith,
|
|
20
|
+
end: next ? next.startsWith : Number.MAX_SAFE_INTEGER
|
|
21
|
+
}
|
|
22
|
+
];
|
|
23
|
+
}, []);
|
|
24
|
+
}, [layouts]);
|
|
25
|
+
const getCurrentLayout = (0, react_1.useCallback)((articleWidth) => {
|
|
26
|
+
const range = layoutRanges.find(l => articleWidth >= l.start && articleWidth < l.end);
|
|
27
|
+
return range;
|
|
28
|
+
}, [layoutRanges]);
|
|
29
|
+
const [layoutId, setLayoutId] = (0, react_1.useState)(undefined);
|
|
30
|
+
const [deviation, setDeviation] = (0, react_1.useState)(1);
|
|
31
|
+
(0, react_1.useEffect)(() => {
|
|
32
|
+
if (!articleRectObserver)
|
|
33
|
+
return;
|
|
34
|
+
return articleRectObserver.on('resize', () => {
|
|
35
|
+
const articleWidth = articleRectObserver.width;
|
|
36
|
+
const { layoutId, exemplary } = getCurrentLayout(articleWidth);
|
|
37
|
+
setLayoutId(layoutId);
|
|
38
|
+
setDeviation(articleWidth / exemplary);
|
|
39
|
+
});
|
|
40
|
+
}, [articleRectObserver, getCurrentLayout]);
|
|
41
|
+
return { layoutId, layoutDeviation: deviation };
|
|
42
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useExemplary = void 0;
|
|
4
|
+
const useCntrlContext_1 = require("../provider/useCntrlContext");
|
|
5
|
+
const useLayoutContext_1 = require("../components/useLayoutContext");
|
|
6
|
+
const useExemplary = () => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
const { layouts } = (0, useCntrlContext_1.useCntrlContext)();
|
|
9
|
+
const layout = (0, useLayoutContext_1.useLayoutContext)();
|
|
10
|
+
const exemplary = (_b = (_a = layouts.find(l => l.id === layout)) === null || _a === void 0 ? void 0 : _a.exemplary) !== null && _b !== void 0 ? _b : 1;
|
|
11
|
+
return exemplary;
|
|
12
|
+
};
|
|
13
|
+
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.commonParams;
|
|
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
|
+
}
|
|
@@ -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.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 useLayoutContext_1 = require("../components/useLayoutContext");
|
|
13
|
+
const emptyDeps = [];
|
|
14
|
+
function useKeyframeValue(item, type, itemParamsGetter, animatorGetter, sectionId, deps = emptyDeps) {
|
|
15
|
+
const animatorGetterRef = (0, react_1.useRef)(animatorGetter);
|
|
16
|
+
const itemParamsGetterRef = (0, react_1.useRef)(itemParamsGetter);
|
|
17
|
+
animatorGetterRef.current = animatorGetter;
|
|
18
|
+
itemParamsGetterRef.current = itemParamsGetter;
|
|
19
|
+
const articleRectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
|
|
20
|
+
const layoutId = (0, useLayoutContext_1.useLayoutContext)();
|
|
21
|
+
const keyframesRepo = (0, react_1.useContext)(KeyframesContext_1.KeyframesContext);
|
|
22
|
+
const keyframes = (0, react_1.useMemo)(() => keyframesRepo.getItemKeyframes(item.id).filter(kf => kf.type === type), [item.id, keyframesRepo, type]);
|
|
23
|
+
const paramValue = (0, react_1.useMemo)(() => {
|
|
24
|
+
return itemParamsGetterRef.current(item, layoutId);
|
|
25
|
+
}, [item, layoutId, ...deps]);
|
|
26
|
+
const [adjustedValue, setAdjustedValue] = (0, react_1.useState)(paramValue);
|
|
27
|
+
const adjustedValueRef = (0, react_1.useRef)(adjustedValue);
|
|
28
|
+
adjustedValueRef.current = adjustedValue;
|
|
29
|
+
const animator = (0, react_1.useMemo)(() => {
|
|
30
|
+
if (!layoutId || !keyframes.length)
|
|
31
|
+
return;
|
|
32
|
+
const animationData = keyframes
|
|
33
|
+
.filter(k => k.layoutId === layoutId)
|
|
34
|
+
.map(({ position, type, value }) => ({
|
|
35
|
+
position,
|
|
36
|
+
type,
|
|
37
|
+
value
|
|
38
|
+
}));
|
|
39
|
+
return new Animator_1.Animator(animationData);
|
|
40
|
+
}, [keyframes, layoutId]);
|
|
41
|
+
const handleKeyframeValue = (0, react_1.useCallback)((scroll) => {
|
|
42
|
+
if (!animator)
|
|
43
|
+
return;
|
|
44
|
+
const newValue = animatorGetterRef.current(animator, scroll, paramValue);
|
|
45
|
+
if (!(0, lodash_isequal_1.default)(newValue, adjustedValueRef.current)) {
|
|
46
|
+
setAdjustedValue(newValue);
|
|
47
|
+
}
|
|
48
|
+
}, [animator, paramValue]);
|
|
49
|
+
(0, react_1.useEffect)(() => {
|
|
50
|
+
setAdjustedValue(paramValue);
|
|
51
|
+
}, [paramValue]);
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
if (!articleRectObserver || !animator)
|
|
54
|
+
return;
|
|
55
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
56
|
+
handleKeyframeValue(scroll);
|
|
57
|
+
}, [articleRectObserver, handleKeyframeValue, animator]);
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
if (!articleRectObserver || !animator)
|
|
60
|
+
return;
|
|
61
|
+
return articleRectObserver.on('resize', () => {
|
|
62
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
63
|
+
handleKeyframeValue(scroll);
|
|
64
|
+
});
|
|
65
|
+
}, [handleKeyframeValue, articleRectObserver, animator]);
|
|
66
|
+
(0, react_1.useEffect)(() => {
|
|
67
|
+
if (!articleRectObserver || !animator)
|
|
68
|
+
return;
|
|
69
|
+
return articleRectObserver.on('scroll', () => {
|
|
70
|
+
const scroll = articleRectObserver.getSectionScroll(sectionId);
|
|
71
|
+
handleKeyframeValue(scroll);
|
|
72
|
+
});
|
|
73
|
+
}, [handleKeyframeValue, articleRectObserver, animator]);
|
|
74
|
+
return keyframes.length ? adjustedValue : paramValue;
|
|
75
|
+
}
|
|
@@ -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,12 @@
|
|
|
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 useCurrentLayout_1 = require("../common/useCurrentLayout");
|
|
6
|
+
const LayoutContext_1 = require("../provider/LayoutContext");
|
|
7
|
+
const ArticleWrapper = ({ children }) => {
|
|
8
|
+
const { layoutId, layoutDeviation } = (0, useCurrentLayout_1.useCurrentLayout)();
|
|
9
|
+
const layoutDeviationStyle = { '--layout-deviation': layoutDeviation };
|
|
10
|
+
return ((0, jsx_runtime_1.jsx)(LayoutContext_1.LayoutContext.Provider, { value: layoutId, children: (0, jsx_runtime_1.jsx)("div", { className: "article-wrapper", style: Object.assign({}, layoutDeviationStyle), children: children }) }));
|
|
11
|
+
};
|
|
12
|
+
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
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
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.Section = void 0;
|
|
7
|
+
exports.getSectionHeight = getSectionHeight;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const style_1 = __importDefault(require("styled-jsx/style"));
|
|
11
|
+
const useCntrlContext_1 = require("../../provider/useCntrlContext");
|
|
12
|
+
const useSectionRegistry_1 = require("../../utils/ArticleRectManager/useSectionRegistry");
|
|
13
|
+
const color_1 = require("@cntrl-site/color");
|
|
14
|
+
const useLayoutContext_1 = require("../useLayoutContext");
|
|
15
|
+
const SectionVideo_1 = require("./SectionVideo");
|
|
16
|
+
const SectionImage_1 = require("./SectionImage");
|
|
17
|
+
const checkOverflowClipSupport_1 = require("../../utils/checkOverflowClipSupport");
|
|
18
|
+
const Section_1 = require("../../../sdk/types/article/Section");
|
|
19
|
+
const utils_1 = require("../../../utils");
|
|
20
|
+
const DEFAULT_COLOR = 'rgba(0, 0, 0, 0)';
|
|
21
|
+
const Section = ({ section, data, children }) => {
|
|
22
|
+
var _a;
|
|
23
|
+
const id = (0, react_1.useId)();
|
|
24
|
+
const sectionRef = (0, react_1.useRef)(null);
|
|
25
|
+
const { layouts, customSections } = (0, useCntrlContext_1.useCntrlContext)();
|
|
26
|
+
const layout = (0, useLayoutContext_1.useLayoutContext)();
|
|
27
|
+
const layoutValues = [section.height, section.color, (_a = section.media) !== null && _a !== void 0 ? _a : {}];
|
|
28
|
+
const SectionComponent = section.name ? customSections.getComponent(section.name) : undefined;
|
|
29
|
+
(0, useSectionRegistry_1.useSectionRegistry)(section.id, sectionRef.current);
|
|
30
|
+
const sectionHeight = layout && section.height[layout] ? section.height[layout] : undefined;
|
|
31
|
+
const layoutMedia = layout && section.media && section.media[layout] ? section.media[layout] : undefined;
|
|
32
|
+
const media = (0, react_1.useMemo)(() => {
|
|
33
|
+
if (layoutMedia && !(0, checkOverflowClipSupport_1.isOverflowClipSupported)()) {
|
|
34
|
+
return Object.assign(Object.assign({}, layoutMedia), { position: 'local' });
|
|
35
|
+
}
|
|
36
|
+
return layoutMedia;
|
|
37
|
+
}, [layoutMedia]);
|
|
38
|
+
const getSectionVisibilityStyles = () => {
|
|
39
|
+
return layouts
|
|
40
|
+
.sort((a, b) => a.startsWith - b.startsWith)
|
|
41
|
+
.reduce((acc, layout) => {
|
|
42
|
+
const isHidden = section.hidden[layout.id];
|
|
43
|
+
return `
|
|
44
|
+
${acc}
|
|
45
|
+
${(0, utils_1.getLayoutMediaQuery)(layout.id, layouts)} {
|
|
46
|
+
.section-${section.id} {
|
|
47
|
+
display: ${isHidden ? 'none' : 'block'};
|
|
48
|
+
}
|
|
49
|
+
}`;
|
|
50
|
+
}, '');
|
|
51
|
+
};
|
|
52
|
+
if (SectionComponent)
|
|
53
|
+
return (0, jsx_runtime_1.jsx)("div", { ref: sectionRef, children: (0, jsx_runtime_1.jsx)(SectionComponent, { data: data, children: children }) });
|
|
54
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `section-${section.id}`, id: section.name, ref: sectionRef, children: [media && media.size !== 'none' && sectionRef.current && ((0, jsx_runtime_1.jsx)("div", { className: `section-background-overlay-${section.id}`, children: (0, jsx_runtime_1.jsxs)("div", { className: `section-background-wrapper-${section.id}`, style: Object.assign({ transform: media.position === 'fixed' ? 'translateY(-100vh)' : 'unset' }, (sectionHeight && { height: media.position === 'fixed' ? `calc(${getSectionHeight(sectionHeight)} + 200vh)` : getSectionHeight(sectionHeight) })), children: [media.type === 'video' && ((0, jsx_runtime_1.jsx)(SectionVideo_1.SectionVideo, { container: sectionRef.current, sectionId: section.id, media: media })), media.type === 'image' && ((0, jsx_runtime_1.jsx)(SectionImage_1.SectionImage, { media: media, sectionId: section.id }))] }, `section-background-wrapper-${section.id}`) })), children] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
|
|
55
|
+
${(0, utils_1.getLayoutStyles)(layouts, layoutValues, ([height, color, media]) => (`
|
|
56
|
+
.section-${section.id} {
|
|
57
|
+
height: ${getSectionHeight(height)};
|
|
58
|
+
position: relative;
|
|
59
|
+
background-color: ${color_1.CntrlColor.parse(color !== null && color !== void 0 ? color : DEFAULT_COLOR).fmt('rgba')};
|
|
60
|
+
}
|
|
61
|
+
.section-background-overlay-${section.id} {
|
|
62
|
+
height: ${getSectionHeight(height)};
|
|
63
|
+
width: 100%;
|
|
64
|
+
position: relative;
|
|
65
|
+
overflow: clip;
|
|
66
|
+
}
|
|
67
|
+
.section-background-wrapper-${section.id} {
|
|
68
|
+
transform: ${(media === null || media === void 0 ? void 0 : media.position) === 'fixed' ? 'translateY(-100vh)' : 'unset'};
|
|
69
|
+
position: relative;
|
|
70
|
+
height: ${(media === null || media === void 0 ? void 0 : media.position) === 'fixed' ? `calc(${getSectionHeight(height)} + 200vh)` : getSectionHeight(height)};
|
|
71
|
+
width: 100%;
|
|
72
|
+
}
|
|
73
|
+
`))}
|
|
74
|
+
${getSectionVisibilityStyles()}
|
|
75
|
+
` })] }));
|
|
76
|
+
};
|
|
77
|
+
exports.Section = Section;
|
|
78
|
+
function getSectionHeight(heightData) {
|
|
79
|
+
const { units, vhUnits, mode } = heightData;
|
|
80
|
+
if (mode === Section_1.SectionHeightMode.ViewportHeightUnits)
|
|
81
|
+
return `${vhUnits}vh`;
|
|
82
|
+
if (mode === Section_1.SectionHeightMode.ControlUnits)
|
|
83
|
+
return `${units * 100}vw`;
|
|
84
|
+
return '0';
|
|
85
|
+
}
|