@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.
Files changed (286) hide show
  1. package/{dist → lib}/index.d.ts +4 -8
  2. package/lib/index.js +1 -4
  3. package/{dist → lib}/sdk/Client/Client.d.ts +0 -2
  4. package/{dist → lib}/sdk/Client/Client.js +0 -11
  5. package/lib/sdk/FontFaceGenerator/FontFaceGenerator.js +28 -0
  6. package/lib/sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager.js +221 -0
  7. package/lib/sdk/VideoDecoder/VideoDecoder.js +184 -0
  8. package/{dist → lib}/sdk/schemas/article/Article.schema.d.ts +52 -57
  9. package/{dist → lib}/sdk/schemas/article/Article.schema.js +1 -1
  10. package/{dist → lib}/sdk/schemas/article/Item.schema.js +64 -84
  11. package/{dist → lib}/sdk/schemas/article/ItemBase.schema.d.ts +25 -28
  12. package/{dist → lib}/sdk/schemas/article/ItemBase.schema.js +3 -4
  13. package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.d.ts +102 -110
  14. package/{dist → lib}/sdk/schemas/article/RichTextItem.schema.js +9 -11
  15. package/{dist → lib}/sdk/schemas/article/Section.schema.d.ts +23 -26
  16. package/{dist → lib}/sdk/schemas/article/Section.schema.js +4 -5
  17. package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.d.ts +0 -90
  18. package/{dist → lib}/sdk/schemas/keyframe/Keyframes.schema.js +0 -1
  19. package/{dist → lib}/sdk/schemas/project/Project.schema.d.ts +3 -28
  20. package/{dist → lib}/sdk/schemas/project/Project.schema.js +1 -2
  21. package/{dist → lib}/sdk/types/article/Article.d.ts +1 -1
  22. package/{dist → lib}/sdk/types/article/Item.d.ts +75 -114
  23. package/{dist → lib}/sdk/types/article/Section.d.ts +4 -5
  24. package/{dist → lib}/sdk/types/keyframe/Keyframe.d.ts +1 -2
  25. package/{dist → lib}/sdk/types/project/Project.d.ts +1 -2
  26. package/lib/sdk/types/project/Project.js +2 -0
  27. package/lib/sdk-nextjs/common/useExemplary.js +9 -0
  28. package/lib/sdk-nextjs/common/useItemFXData.js +36 -0
  29. package/{dist → lib}/sdk-nextjs/common/useKeyframeValue.d.ts +1 -1
  30. package/lib/sdk-nextjs/common/useKeyframeValue.js +72 -0
  31. package/lib/sdk-nextjs/common/useLayoutDeviation.d.ts +5 -0
  32. package/lib/sdk-nextjs/common/useLayoutDeviation.js +20 -0
  33. package/lib/sdk-nextjs/common/useRegisterResize.js +22 -0
  34. package/lib/sdk-nextjs/components/Article.js +41 -0
  35. package/lib/sdk-nextjs/components/ArticleWrapper.js +11 -0
  36. package/lib/sdk-nextjs/components/Head.js +32 -0
  37. package/lib/sdk-nextjs/components/Page.js +20 -0
  38. package/{dist → lib}/sdk-nextjs/components/ScrollPlaybackVideo.d.ts +1 -1
  39. package/lib/sdk-nextjs/components/ScrollPlaybackVideo.js +46 -0
  40. package/lib/sdk-nextjs/components/Section/Section.js +66 -0
  41. package/lib/sdk-nextjs/components/Section/SectionImage.js +24 -0
  42. package/lib/sdk-nextjs/components/Section/SectionVideo.js +91 -0
  43. package/lib/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +1 -0
  44. package/lib/sdk-nextjs/components/Section/useSectionHeightMap.js +12 -0
  45. package/lib/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.js +101 -0
  46. package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +5 -0
  47. package/lib/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.js +10 -0
  48. package/lib/sdk-nextjs/components/items/ComponentItem/ComponentItem.js +41 -0
  49. package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/useComponentItem.d.ts +2 -2
  50. package/lib/sdk-nextjs/components/items/ComponentItem/useComponentItem.js +13 -0
  51. package/lib/sdk-nextjs/components/items/CompoundItem/CompoundChild.js +96 -0
  52. package/lib/sdk-nextjs/components/items/CompoundItem/CompoundItem.js +47 -0
  53. package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/useCompoundItem.d.ts +1 -1
  54. package/lib/sdk-nextjs/components/items/CompoundItem/useCompoundItem.js +9 -0
  55. package/lib/sdk-nextjs/components/items/CustomItem/CustomItem.js +35 -0
  56. package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.d.ts +2 -2
  57. package/lib/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.js +161 -0
  58. package/lib/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.js +154 -0
  59. package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.d.ts +3 -3
  60. package/lib/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.js +12 -0
  61. package/lib/sdk-nextjs/components/items/FileItem/ImageItem.js +134 -0
  62. package/lib/sdk-nextjs/components/items/FileItem/VideoItem.js +216 -0
  63. package/lib/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +8 -0
  64. package/lib/sdk-nextjs/components/items/FileItem/useFileItem.js +21 -0
  65. package/lib/sdk-nextjs/components/items/GroupItem/GroupItem.js +45 -0
  66. package/{dist → lib}/sdk-nextjs/components/items/GroupItem/useGroupItem.d.ts +2 -2
  67. package/lib/sdk-nextjs/components/items/GroupItem/useGroupItem.js +10 -0
  68. package/lib/sdk-nextjs/components/items/Item.js +150 -0
  69. package/{dist → lib}/sdk-nextjs/components/items/LinkWrapper.d.ts +1 -1
  70. package/lib/sdk-nextjs/components/items/LinkWrapper.js +27 -0
  71. package/lib/sdk-nextjs/components/items/RectangleItem/RectangleItem.js +120 -0
  72. package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +9 -0
  73. package/lib/sdk-nextjs/components/items/RectangleItem/useRectangleItem.js +22 -0
  74. package/lib/sdk-nextjs/components/items/RichTextItem/RichTextItem.js +75 -0
  75. package/lib/sdk-nextjs/components/items/RichTextItem/useRichTextItem.js +12 -0
  76. package/lib/sdk-nextjs/components/items/RichTextWrapper.js +10 -0
  77. package/lib/sdk-nextjs/components/items/itemsMap.js +28 -0
  78. package/lib/sdk-nextjs/components/items/useDraggable.js +177 -0
  79. package/{dist → lib}/sdk-nextjs/components/items/useItemAngle.d.ts +1 -1
  80. package/lib/sdk-nextjs/components/items/useItemAngle.js +10 -0
  81. package/{dist → lib}/sdk-nextjs/components/items/useItemArea.d.ts +4 -4
  82. package/lib/sdk-nextjs/components/items/useItemArea.js +15 -0
  83. package/lib/sdk-nextjs/components/items/useItemPointerEvents.js +23 -0
  84. package/{dist → lib}/sdk-nextjs/components/items/useItemScale.d.ts +1 -1
  85. package/lib/sdk-nextjs/components/items/useItemScale.js +10 -0
  86. package/lib/sdk-nextjs/components/items/useItemTriggers.js +16 -0
  87. package/lib/sdk-nextjs/components/items/useRichTextItemValues.d.ts +9 -0
  88. package/lib/sdk-nextjs/components/items/useRichTextItemValues.js +16 -0
  89. package/lib/sdk-nextjs/components/items/useSizing.js +20 -0
  90. package/lib/sdk-nextjs/components/items/useStickyItemTop.js +11 -0
  91. package/{dist → lib}/sdk-nextjs/interactions/CSSPropertyNameMap.d.ts +2 -2
  92. package/lib/sdk-nextjs/interactions/CSSPropertyNameMap.js +38 -0
  93. package/{dist → lib}/sdk-nextjs/interactions/InteractionsRegistry.d.ts +1 -1
  94. package/lib/sdk-nextjs/interactions/InteractionsRegistry.js +355 -0
  95. package/lib/sdk-nextjs/interactions/ItemInteractionCtrl.js +72 -0
  96. package/lib/sdk-nextjs/interactions/getTransition.js +20 -0
  97. package/{dist → lib}/sdk-nextjs/interactions/types.d.ts +3 -3
  98. package/lib/sdk-nextjs/interactions/useItemInteractionCtrl.js +16 -0
  99. package/{dist → lib}/sdk-nextjs/provider/ArticleRectContext.d.ts +1 -1
  100. package/lib/sdk-nextjs/provider/ArticleRectContext.js +5 -0
  101. package/{dist → lib}/sdk-nextjs/provider/CntrlContext.d.ts +1 -1
  102. package/lib/sdk-nextjs/provider/CntrlContext.js +6 -0
  103. package/lib/sdk-nextjs/provider/CntrlProvider.js +10 -0
  104. package/{dist → lib}/sdk-nextjs/provider/CntrlSdkContext.d.ts +5 -6
  105. package/lib/sdk-nextjs/provider/CntrlSdkContext.js +76 -0
  106. package/lib/sdk-nextjs/provider/CustomItemRegistry.js +16 -0
  107. package/{dist → lib}/sdk-nextjs/provider/CustomSectionRegistry.d.ts +1 -1
  108. package/lib/sdk-nextjs/provider/CustomSectionRegistry.js +21 -0
  109. package/{dist → lib}/sdk-nextjs/provider/InteractionsContext.d.ts +1 -1
  110. package/lib/sdk-nextjs/provider/InteractionsContext.js +48 -0
  111. package/{dist → lib}/sdk-nextjs/provider/Keyframes.d.ts +1 -1
  112. package/lib/sdk-nextjs/provider/Keyframes.js +12 -0
  113. package/lib/sdk-nextjs/provider/KeyframesContext.d.ts +2 -0
  114. package/lib/sdk-nextjs/provider/KeyframesContext.js +6 -0
  115. package/{dist → lib}/sdk-nextjs/provider/WebGLContextManagerContext.d.ts +1 -1
  116. package/lib/sdk-nextjs/provider/WebGLContextManagerContext.js +6 -0
  117. package/lib/sdk-nextjs/provider/defaultContext.js +9 -0
  118. package/lib/sdk-nextjs/provider/useCntrlContext.js +9 -0
  119. package/lib/sdk-nextjs/utils/Animator/Animator.js +443 -0
  120. package/lib/sdk-nextjs/utils/ArticleRectManager/ArticleRectObserver.js +88 -0
  121. package/lib/sdk-nextjs/utils/ArticleRectManager/useArticleRectObserver.js +18 -0
  122. package/lib/sdk-nextjs/utils/ArticleRectManager/useSectionRegistry.js +14 -0
  123. package/lib/sdk-nextjs/utils/EventEmitter.js +37 -0
  124. package/{dist → lib}/sdk-nextjs/utils/RichTextConverter/RichTextConverter.d.ts +1 -2
  125. package/lib/sdk-nextjs/utils/RichTextConverter/RichTextConverter.js +263 -0
  126. package/lib/sdk-nextjs/utils/ScaleAnchorMap.js +15 -0
  127. package/lib/sdk-nextjs/utils/Youtube/YouTubeIframeApiLoader.js +64 -0
  128. package/lib/sdk-nextjs/utils/Youtube/YoutubeIframeApi.js +12 -0
  129. package/lib/sdk-nextjs/utils/Youtube/useYouTubeIframeApi.js +13 -0
  130. package/lib/sdk-nextjs/utils/areFillsVisible/areFillsVisible.js +22 -0
  131. package/lib/sdk-nextjs/utils/binSearchInsertAt.js +35 -0
  132. package/lib/sdk-nextjs/utils/checkOverflowClipSupport.js +18 -0
  133. package/lib/sdk-nextjs/utils/effects/useImageFx.js +114 -0
  134. package/lib/sdk-nextjs/utils/effects/useVideoFx.js +117 -0
  135. package/lib/sdk-nextjs/utils/getAnchoredItemTop.js +14 -0
  136. package/lib/sdk-nextjs/utils/getCompoundBoundaryStyles.js +60 -0
  137. package/lib/sdk-nextjs/utils/getFill.js +42 -0
  138. package/lib/sdk-nextjs/utils/getFontFamilyValue.js +6 -0
  139. package/lib/sdk-nextjs/utils/getItemTopStyle.js +17 -0
  140. package/lib/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +1 -0
  141. package/lib/sdk-nextjs/utils/getStyleFromItemStateAndParams.js +8 -0
  142. package/lib/sdk-nextjs/utils/getValidYoutubeUrl.js +33 -0
  143. package/lib/sdk-nextjs/utils/isItemType.js +6 -0
  144. package/lib/sdk-nextjs/utils/rangeMap.js +11 -0
  145. package/lib/sdk-nextjs/utils/useElementRect.js +24 -0
  146. package/package.json +3 -3
  147. package/dist/cli.d.ts +0 -10
  148. package/dist/cli.js +0 -64
  149. package/dist/index.js +0 -7765
  150. package/dist/index.mjs +0 -7748
  151. package/dist/sdk/Client/Client.test.d.ts +0 -1
  152. package/dist/sdk/Client/__mock__/articleMock.d.ts +0 -2
  153. package/dist/sdk/Client/__mock__/keyframesMock.d.ts +0 -2
  154. package/dist/sdk/Client/__mock__/projectMock.d.ts +0 -2
  155. package/dist/sdk/Components/ControlSlider/ControlSlider.d.ts +0 -90
  156. package/dist/sdk/Components/ControlSlider/ControlSliderComponent.d.ts +0 -519
  157. package/dist/sdk/Components/ImageRevealSlider/ControlImageRevealSliderComponent.d.ts +0 -209
  158. package/dist/sdk/Components/ImageRevealSlider/ImageRevealSlider.d.ts +0 -38
  159. package/dist/sdk/Components/components.d.ts +0 -2
  160. package/dist/sdk/Components/helpers/RichTextRenderer/RichTextRenderer.d.ts +0 -6
  161. package/dist/sdk/Components/helpers/SvgImage/SvgImage.d.ts +0 -9
  162. package/dist/sdk/Components/utils/scalingValue.d.ts +0 -1
  163. package/dist/sdk/FontFaceGenerator/FontFaceGenerator.test.d.ts +0 -1
  164. package/dist/sdk/schemas/project/Layout.schema.d.ts +0 -17
  165. package/dist/sdk/schemas/project/Layout.schema.js +0 -10
  166. package/dist/sdk/schemas/shared/FillLayer.schema.d.ts +0 -186
  167. package/dist/sdk/types/component/Component.d.ts +0 -15
  168. package/dist/sdk/types/project/Layout.d.ts +0 -6
  169. package/dist/sdk-nextjs/common/useCurrentLayout.d.ts +0 -6
  170. package/dist/sdk-nextjs/components/LayoutStyle.d.ts +0 -9
  171. package/dist/sdk-nextjs/components/Section/useSectionColor.d.ts +0 -4
  172. package/dist/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +0 -3
  173. package/dist/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +0 -7
  174. package/dist/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +0 -8
  175. package/dist/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +0 -9
  176. package/dist/sdk-nextjs/components/items/useRichTextItemValues.d.ts +0 -9
  177. package/dist/sdk-nextjs/components/useLayoutContext.d.ts +0 -1
  178. package/dist/sdk-nextjs/provider/KeyframesContext.d.ts +0 -2
  179. package/dist/sdk-nextjs/provider/LayoutContext.d.ts +0 -1
  180. package/dist/sdk-nextjs/utils/StickyManager/StickyManager.d.ts +0 -10
  181. package/dist/sdk-nextjs/utils/areFillsVisible/areFillsVisible.test.d.ts +0 -1
  182. package/dist/sdk-nextjs/utils/castObject.d.ts +0 -5
  183. package/dist/sdk-nextjs/utils/getInvertedRanges.d.ts +0 -10
  184. package/dist/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +0 -1
  185. package/dist/sdk.css +0 -1
  186. package/dist/utils.d.ts +0 -3
  187. package/lib/cli.js +0 -64
  188. package/{dist → lib}/sdk/FontFaceGenerator/FontFaceGenerator.d.ts +0 -0
  189. package/{dist → lib}/sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager.d.ts +0 -0
  190. package/{dist → lib}/sdk/VideoDecoder/VideoDecoder.d.ts +0 -0
  191. package/{dist → lib}/sdk/schemas/article/FillLayer.schema.d.ts +0 -0
  192. package/{dist → lib}/sdk/schemas/article/FillLayer.schema.js +0 -0
  193. package/{dist → lib}/sdk/schemas/article/Interaction.schema.d.ts +0 -0
  194. package/{dist → lib}/sdk/schemas/article/Interaction.schema.js +0 -0
  195. package/{dist → lib}/sdk/schemas/article/Item.schema.d.ts +0 -0
  196. package/{dist → lib}/sdk/schemas/article/ItemArea.schema.d.ts +0 -0
  197. package/{dist → lib}/sdk/schemas/article/ItemArea.schema.js +0 -0
  198. package/{dist → lib}/sdk/schemas/article/ItemState.schema.d.ts +76 -76
  199. /package/{dist → lib}/sdk/schemas/article/ItemState.schema.js +0 -0
  200. /package/{dist/sdk/types/article/FX.js → lib/sdk/types/article/Article.js} +0 -0
  201. /package/{dist → lib}/sdk/types/article/ArticleItemType.d.ts +0 -0
  202. /package/{dist → lib}/sdk/types/article/ArticleItemType.js +0 -0
  203. /package/{dist → lib}/sdk/types/article/CompoundSettings.d.ts +0 -0
  204. /package/{dist/sdk/types/article/Interaction.js → lib/sdk/types/article/CompoundSettings.js} +0 -0
  205. /package/{dist → lib}/sdk/types/article/FX.d.ts +0 -0
  206. /package/{dist/sdk/types/project/Layout.js → lib/sdk/types/article/FX.js} +0 -0
  207. /package/{dist → lib}/sdk/types/article/Interaction.d.ts +0 -0
  208. /package/{dist/sdk/types/project/Meta.js → lib/sdk/types/article/Interaction.js} +0 -0
  209. /package/{dist → lib}/sdk/types/article/Item.js +0 -0
  210. /package/{dist → lib}/sdk/types/article/ItemArea.d.ts +0 -0
  211. /package/{dist → lib}/sdk/types/article/ItemArea.js +0 -0
  212. /package/{dist → lib}/sdk/types/article/ItemState.d.ts +0 -0
  213. /package/{dist → lib}/sdk/types/article/ItemState.js +0 -0
  214. /package/{dist → lib}/sdk/types/article/RichText.d.ts +0 -0
  215. /package/{dist → lib}/sdk/types/article/RichText.js +0 -0
  216. /package/{dist → lib}/sdk/types/article/Section.js +0 -0
  217. /package/{dist → lib}/sdk/types/keyframe/Keyframe.js +0 -0
  218. /package/{dist → lib}/sdk/types/project/Fonts.d.ts +0 -0
  219. /package/{dist → lib}/sdk/types/project/Fonts.js +0 -0
  220. /package/{dist → lib}/sdk/types/project/Meta.d.ts +0 -0
  221. /package/{dist/sdk/types/project/Page.js → lib/sdk/types/project/Meta.js} +0 -0
  222. /package/{dist → lib}/sdk/types/project/Page.d.ts +0 -0
  223. /package/{dist/sdk/types/project/Project.js → lib/sdk/types/project/Page.js} +0 -0
  224. /package/{dist → lib}/sdk-nextjs/common/useExemplary.d.ts +0 -0
  225. /package/{dist → lib}/sdk-nextjs/common/useItemFXData.d.ts +0 -0
  226. /package/{dist → lib}/sdk-nextjs/common/useRegisterResize.d.ts +0 -0
  227. /package/{dist → lib}/sdk-nextjs/components/Article.d.ts +0 -0
  228. /package/{dist → lib}/sdk-nextjs/components/ArticleWrapper.d.ts +0 -0
  229. /package/{dist → lib}/sdk-nextjs/components/Head.d.ts +0 -0
  230. /package/{dist → lib}/sdk-nextjs/components/Page.d.ts +0 -0
  231. /package/{dist → lib}/sdk-nextjs/components/Section/Section.d.ts +0 -0
  232. /package/{dist → lib}/sdk-nextjs/components/Section/SectionImage.d.ts +0 -0
  233. /package/{dist → lib}/sdk-nextjs/components/Section/SectionVideo.d.ts +0 -0
  234. /package/{dist → lib}/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.d.ts +0 -0
  235. /package/{dist → lib}/sdk-nextjs/components/items/ComponentItem/ComponentItem.d.ts +0 -0
  236. /package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/CompoundChild.d.ts +0 -0
  237. /package/{dist → lib}/sdk-nextjs/components/items/CompoundItem/CompoundItem.d.ts +0 -0
  238. /package/{dist → lib}/sdk-nextjs/components/items/CustomItem/CustomItem.d.ts +0 -0
  239. /package/{dist → lib}/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.d.ts +0 -0
  240. /package/{dist → lib}/sdk-nextjs/components/items/FileItem/ImageItem.d.ts +0 -0
  241. /package/{dist → lib}/sdk-nextjs/components/items/FileItem/VideoItem.d.ts +0 -0
  242. /package/{dist → lib}/sdk-nextjs/components/items/GroupItem/GroupItem.d.ts +0 -0
  243. /package/{dist → lib}/sdk-nextjs/components/items/Item.d.ts +0 -0
  244. /package/{dist → lib}/sdk-nextjs/components/items/RectangleItem/RectangleItem.d.ts +0 -0
  245. /package/{dist → lib}/sdk-nextjs/components/items/RichTextItem/RichTextItem.d.ts +0 -0
  246. /package/{dist → lib}/sdk-nextjs/components/items/RichTextItem/useRichTextItem.d.ts +0 -0
  247. /package/{dist → lib}/sdk-nextjs/components/items/RichTextWrapper.d.ts +0 -0
  248. /package/{dist → lib}/sdk-nextjs/components/items/itemsMap.d.ts +0 -0
  249. /package/{dist → lib}/sdk-nextjs/components/items/useDraggable.d.ts +0 -0
  250. /package/{dist → lib}/sdk-nextjs/components/items/useItemPointerEvents.d.ts +0 -0
  251. /package/{dist → lib}/sdk-nextjs/components/items/useItemTriggers.d.ts +0 -0
  252. /package/{dist → lib}/sdk-nextjs/components/items/useSizing.d.ts +0 -0
  253. /package/{dist → lib}/sdk-nextjs/components/items/useStickyItemTop.d.ts +0 -0
  254. /package/{dist → lib}/sdk-nextjs/interactions/ItemInteractionCtrl.d.ts +0 -0
  255. /package/{dist → lib}/sdk-nextjs/interactions/getTransition.d.ts +0 -0
  256. /package/{dist/sdk/types/article/Article.js → lib/sdk-nextjs/interactions/types.js} +0 -0
  257. /package/{dist → lib}/sdk-nextjs/interactions/useItemInteractionCtrl.d.ts +0 -0
  258. /package/{dist → lib}/sdk-nextjs/provider/CntrlProvider.d.ts +0 -0
  259. /package/{dist → lib}/sdk-nextjs/provider/CustomItemRegistry.d.ts +0 -0
  260. /package/{dist → lib}/sdk-nextjs/provider/CustomItemTypes.d.ts +0 -0
  261. /package/{dist/sdk/types/article/CompoundSettings.js → lib/sdk-nextjs/provider/CustomItemTypes.js} +0 -0
  262. /package/{dist → lib}/sdk-nextjs/provider/defaultContext.d.ts +0 -0
  263. /package/{dist → lib}/sdk-nextjs/provider/useCntrlContext.d.ts +0 -0
  264. /package/{dist → lib}/sdk-nextjs/utils/Animator/Animator.d.ts +0 -0
  265. /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/ArticleRectObserver.d.ts +0 -0
  266. /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/useArticleRectObserver.d.ts +0 -0
  267. /package/{dist → lib}/sdk-nextjs/utils/ArticleRectManager/useSectionRegistry.d.ts +0 -0
  268. /package/{dist → lib}/sdk-nextjs/utils/EventEmitter.d.ts +0 -0
  269. /package/{dist → lib}/sdk-nextjs/utils/ScaleAnchorMap.d.ts +0 -0
  270. /package/{dist → lib}/sdk-nextjs/utils/Youtube/YouTubeIframeApiLoader.d.ts +0 -0
  271. /package/{dist → lib}/sdk-nextjs/utils/Youtube/YoutubeIframeApi.d.ts +0 -0
  272. /package/{dist → lib}/sdk-nextjs/utils/Youtube/useYouTubeIframeApi.d.ts +0 -0
  273. /package/{dist → lib}/sdk-nextjs/utils/areFillsVisible/areFillsVisible.d.ts +0 -0
  274. /package/{dist → lib}/sdk-nextjs/utils/binSearchInsertAt.d.ts +0 -0
  275. /package/{dist → lib}/sdk-nextjs/utils/checkOverflowClipSupport.d.ts +0 -0
  276. /package/{dist → lib}/sdk-nextjs/utils/effects/useImageFx.d.ts +0 -0
  277. /package/{dist → lib}/sdk-nextjs/utils/effects/useVideoFx.d.ts +0 -0
  278. /package/{dist → lib}/sdk-nextjs/utils/getAnchoredItemTop.d.ts +0 -0
  279. /package/{dist → lib}/sdk-nextjs/utils/getCompoundBoundaryStyles.d.ts +0 -0
  280. /package/{dist → lib}/sdk-nextjs/utils/getFill.d.ts +0 -0
  281. /package/{dist → lib}/sdk-nextjs/utils/getFontFamilyValue.d.ts +0 -0
  282. /package/{dist → lib}/sdk-nextjs/utils/getItemTopStyle.d.ts +0 -0
  283. /package/{dist → lib}/sdk-nextjs/utils/getValidYoutubeUrl.d.ts +0 -0
  284. /package/{dist → lib}/sdk-nextjs/utils/isItemType.d.ts +0 -0
  285. /package/{dist → lib}/sdk-nextjs/utils/rangeMap.d.ts +0 -0
  286. /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: Record<LayoutIdentifier, ItemArea>;
12
- hidden: Record<LayoutIdentifier, boolean>;
11
+ area: ItemArea;
12
+ hidden: boolean;
13
13
  link?: Link;
14
14
  items?: T extends (ArticleItemType.Group | ArticleItemType.Compound) ? ItemAny[] : never;
15
- sticky: Record<LayoutIdentifier, StickyParams | null>;
16
- compoundSettings?: Record<LayoutIdentifier, CompoundSettings>;
17
- commonParams: ItemCommonParamsMap[T];
15
+ sticky: StickyParams | null;
16
+ compoundSettings?: CompoundSettings;
18
17
  state: ItemState<T>;
19
- layoutParams: Record<LayoutIdentifier, ItemLayoutParamsMap[T]>;
20
- }
21
- export interface ItemCommonParamsMap {
22
- [ArticleItemType.Image]: ImageCommonParams;
23
- [ArticleItemType.Video]: VideoCommonParams;
24
- [ArticleItemType.RichText]: RichTextCommonParams;
25
- [ArticleItemType.Rectangle]: RectangleCommonParams;
26
- [ArticleItemType.VimeoEmbed]: VimeoEmbedCommonParams;
27
- [ArticleItemType.YoutubeEmbed]: YoutubeEmbedCommonParams;
28
- [ArticleItemType.Custom]: CustomCommonParams;
29
- [ArticleItemType.Group]: GroupCommonParams;
30
- [ArticleItemType.Compound]: CompoundCommonParams;
31
- [ArticleItemType.CodeEmbed]: CodeEmbedCommonParams;
32
- [ArticleItemType.Component]: ComponentCommonParams;
33
- }
34
- export interface ItemLayoutParamsMap {
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 MediaCommonParams extends CommonParamsBase {
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 VideoCommonParams extends MediaCommonParams {
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 ImageCommonParams extends MediaCommonParams {
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 RectangleCommonParams extends CommonParamsBase {
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 CustomLayoutParams {
88
+ interface CustomParams extends ParamsBase {
89
+ name: string;
102
90
  isDraggable?: boolean;
103
91
  }
104
- interface GroupLayoutParams {
92
+ interface GroupParams extends ParamsBase {
105
93
  opacity: number;
106
94
  blur: number;
107
95
  isDraggable?: boolean;
108
96
  }
109
- interface CompoundLayoutParams {
97
+ interface CompoundParams extends ParamsBase {
98
+ overflow: 'hidden' | 'visible';
110
99
  opacity: number;
111
100
  isDraggable?: boolean;
112
101
  }
113
- interface CodeEmbedLayoutParams {
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 VimeoEmbedLayoutParams {
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 YoutubeEmbedLayoutParams {
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 ImageLayoutParams extends MediaLayoutParams {
138
- }
139
- interface VideoLayoutParams extends MediaLayoutParams {
140
- play: 'on-hover' | 'on-click' | 'auto';
141
- muted: boolean;
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: Record<string, SectionHeight>;
32
- hidden: Record<string, boolean>;
31
+ height: SectionHeight;
32
+ hidden: boolean;
33
33
  items: ItemAny[];
34
- position: Record<string, number>;
35
- color: Record<string, string | null>;
36
- media?: Record<string, SectionMedia>;
34
+ color: string | null;
35
+ media?: SectionMedia;
37
36
  }
@@ -1,9 +1,8 @@
1
- import { FillLayer } from '../article/Item';
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
- layouts: Layout[];
13
+ exemplary: number;
15
14
  pages: Page[];
16
15
  fonts: Fonts;
17
16
  }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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, layoutId: string | undefined) => T;
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,5 @@
1
+ type UseCurrentLayoutReturn = {
2
+ layoutDeviation: number;
3
+ };
4
+ export declare function useLayoutDeviation(): UseCurrentLayoutReturn;
5
+ export {};
@@ -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;
@@ -1,4 +1,4 @@
1
- import { default as React, FC } from 'react';
1
+ import React, { FC } from 'react';
2
2
  type PlaybackParams = {
3
3
  from: number;
4
4
  to: number;
@@ -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
+ }