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