@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
@@ -0,0 +1,216 @@
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.VideoItem = 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 LinkWrapper_1 = require("../LinkWrapper");
11
+ const useFileItem_1 = require("./useFileItem");
12
+ const useItemAngle_1 = require("../useItemAngle");
13
+ const useRegisterResize_1 = require("../../../common/useRegisterResize");
14
+ const ScrollPlaybackVideo_1 = require("../../ScrollPlaybackVideo");
15
+ const getStyleFromItemStateAndParams_1 = require("../../../utils/getStyleFromItemStateAndParams");
16
+ const useVideoFx_1 = require("../../../utils/effects/useVideoFx");
17
+ const useElementRect_1 = require("../../../utils/useElementRect");
18
+ const useItemFXData_1 = require("../../../common/useItemFXData");
19
+ const getFill_1 = require("../../../utils/getFill");
20
+ const useExemplary_1 = require("../../../common/useExemplary");
21
+ const VideoItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange }) => {
22
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
23
+ const id = (0, react_1.useId)();
24
+ const { radius: itemRadius, strokeWidth: itemStrokeWidth, strokeFill: itemStrokeFill, opacity: itemOpacity, blur: itemBlur } = (0, useFileItem_1.useFileItem)(item, sectionId);
25
+ const [isVideoPlaying, setIsVideoPlaying] = (0, react_1.useState)(false);
26
+ const isScrollPausedRef = (0, react_1.useRef)(false);
27
+ const [userPaused, setUserPaused] = (0, react_1.useState)(false);
28
+ const [isVideoInteracted, setIsVideoInteracted] = (0, react_1.useState)(false);
29
+ const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
30
+ const [ref, setRef] = (0, react_1.useState)(null);
31
+ const [videoRef, setVideoRef] = (0, react_1.useState)(null);
32
+ const fxCanvas = (0, react_1.useRef)(null);
33
+ const { url, hasGLEffect } = item.params;
34
+ const isInitialRef = (0, react_1.useRef)(true);
35
+ const area = item.area;
36
+ const params = item.params;
37
+ const exemplary = (0, useExemplary_1.useExemplary)();
38
+ const width = area && exemplary ? area.width * exemplary : 0;
39
+ const height = area && exemplary ? area.height * exemplary : 0;
40
+ const { controlsValues, fragmentShader } = (0, useItemFXData_1.useItemFXData)(item, sectionId);
41
+ const rect = (0, useElementRect_1.useElementRect)(ref);
42
+ const rectWidth = Math.floor((_a = rect === null || rect === void 0 ? void 0 : rect.width) !== null && _a !== void 0 ? _a : 0);
43
+ const rectHeight = Math.floor((_b = rect === null || rect === void 0 ? void 0 : rect.height) !== null && _b !== void 0 ? _b : 0);
44
+ const scrollPlayback = params.scrollPlayback;
45
+ const hasScrollPlayback = scrollPlayback !== null;
46
+ const wrapperStateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'opacity', 'blur']);
47
+ const videoStateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['strokeWidth', 'radius']);
48
+ const stateStrokeFillParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['strokeFill']);
49
+ const stateStrokeFillLayers = (_c = stateStrokeFillParams === null || stateStrokeFillParams === void 0 ? void 0 : stateStrokeFillParams.styles) === null || _c === void 0 ? void 0 : _c.strokeFill;
50
+ const strokeSolidTransition = (_d = stateStrokeFillParams === null || stateStrokeFillParams === void 0 ? void 0 : stateStrokeFillParams.transition) !== null && _d !== void 0 ? _d : 'none';
51
+ const angle = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_e = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.styles) === null || _e === void 0 ? void 0 : _e.angle, itemAngle);
52
+ const opacity = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_f = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.styles) === null || _f === void 0 ? void 0 : _f.opacity, itemOpacity);
53
+ const blur = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_g = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.styles) === null || _g === void 0 ? void 0 : _g.blur, itemBlur);
54
+ const strokeWidth = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_h = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.styles) === null || _h === void 0 ? void 0 : _h.strokeWidth, itemStrokeWidth);
55
+ const radius = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_j = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.styles) === null || _j === void 0 ? void 0 : _j.radius, itemRadius);
56
+ const strokeValue = stateStrokeFillLayers
57
+ ? (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStrokeFillLayers[0], itemStrokeFill === null || itemStrokeFill === void 0 ? void 0 : itemStrokeFill[0])
58
+ : itemStrokeFill === null || itemStrokeFill === void 0 ? void 0 : itemStrokeFill[0];
59
+ const stroke = strokeValue
60
+ ? (_k = (0, getFill_1.getFill)(strokeValue)) !== null && _k !== void 0 ? _k : 'transparent'
61
+ : 'transparent';
62
+ (0, react_1.useEffect)(() => {
63
+ isInitialRef.current = false;
64
+ }, []);
65
+ const isFXAllowed = (0, useVideoFx_1.useVideoFx)(fxCanvas.current, !!(hasGLEffect && !isInitialRef.current), {
66
+ videoUrl: url,
67
+ fragmentShader,
68
+ controls: controlsValues
69
+ }, width, height);
70
+ (0, useRegisterResize_1.useRegisterResize)(ref, onResize);
71
+ const inlineStyles = {
72
+ borderRadius: `${radius * 100}vw`,
73
+ borderWidth: `${strokeWidth * 100}vw`,
74
+ transition: (_l = videoStateParams === null || videoStateParams === void 0 ? void 0 : videoStateParams.transition) !== null && _l !== void 0 ? _l : 'none'
75
+ };
76
+ const isInteractive = opacity !== 0;
77
+ (0, react_1.useEffect)(() => {
78
+ onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
79
+ }, [isInteractive, onVisibilityChange]);
80
+ (0, react_1.useEffect)(() => {
81
+ if (!videoRef || params.play !== 'on-click' || !ref)
82
+ return;
83
+ const observer = new IntersectionObserver(([entry]) => {
84
+ if (userPaused || !isVideoInteracted)
85
+ return;
86
+ if (entry.isIntersecting) {
87
+ isScrollPausedRef.current = false;
88
+ videoRef.play();
89
+ }
90
+ else {
91
+ isScrollPausedRef.current = true;
92
+ videoRef.pause();
93
+ }
94
+ });
95
+ observer.observe(ref);
96
+ return () => observer.disconnect();
97
+ }, [videoRef, ref, userPaused, isVideoInteracted]);
98
+ return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_m = item.link) === null || _m === void 0 ? void 0 : _m.url, target: (_o = item.link) === null || _o === void 0 ? void 0 : _o.target, children: [(0, jsx_runtime_1.jsxs)("div", { className: `video-wrapper-${item.id}`, ref: setRef, style: Object.assign(Object.assign({ opacity, transform: `rotate(${angle}deg)`, filter: `blur(${blur * 100}vw)` }, (strokeValue ? Object.assign({ '--stroke-background': stroke }, (strokeValue.type === 'image' ? {
99
+ '--stroke-background-position': 'center',
100
+ '--stroke-background-size': strokeValue.behavior === 'repeat' ? `${strokeValue.backgroundSize}%` : strokeValue.behavior,
101
+ '--stroke-background-repeat': strokeValue.behavior === 'repeat' ? 'repeat' : 'no-repeat'
102
+ } : {})) : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset', transition: (_p = wrapperStateParams === null || wrapperStateParams === void 0 ? void 0 : wrapperStateParams.transition) !== null && _p !== void 0 ? _p : 'none' }), children: [hasScrollPlayback && ((0, jsx_runtime_1.jsx)(ScrollPlaybackVideo_1.ScrollPlaybackVideo, { sectionId: sectionId, src: item.params.url, playbackParams: scrollPlayback, style: inlineStyles, className: `video video-playback-wrapper video-${item.id}` })), hasGLEffect && isFXAllowed && ((0, jsx_runtime_1.jsx)("canvas", { style: inlineStyles, ref: fxCanvas, className: `video-canvas video-${item.id}`, width: rectWidth, height: rectHeight })), !hasScrollPlayback && !hasGLEffect && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("video", { poster: (_q = item.params.coverUrl) !== null && _q !== void 0 ? _q : '', ref: setVideoRef, autoPlay: params.play === 'auto', preload: "auto", onClick: () => {
103
+ setIsVideoInteracted(true);
104
+ }, muted: params.muted, onPlay: () => {
105
+ setIsVideoPlaying(true);
106
+ setUserPaused(false);
107
+ }, onPause: () => {
108
+ if (!isScrollPausedRef.current) {
109
+ setUserPaused(true);
110
+ }
111
+ setIsVideoPlaying(false);
112
+ }, onMouseEnter: () => {
113
+ if (!videoRef || params.play !== 'on-hover')
114
+ return;
115
+ videoRef.play();
116
+ }, onMouseLeave: () => {
117
+ if (!videoRef || params.play !== 'on-hover')
118
+ return;
119
+ videoRef.pause();
120
+ }, loop: true, controls: params.controls, playsInline: true, className: `video video-${item.id}`, style: inlineStyles, children: (0, jsx_runtime_1.jsx)("source", { src: item.params.url }) }), (params.play === 'on-click' || params.play === 'on-hover') && item.params.coverUrl && !isVideoInteracted && ((0, jsx_runtime_1.jsx)("img", { onMouseEnter: () => {
121
+ if (!videoRef || params.play !== 'on-hover')
122
+ return;
123
+ setIsVideoInteracted(true);
124
+ videoRef.play();
125
+ }, src: (_r = item.params.coverUrl) !== null && _r !== void 0 ? _r : '', className: `video-cover-${item.id}`, onClick: () => {
126
+ if (!videoRef)
127
+ return;
128
+ setIsVideoInteracted(true);
129
+ videoRef.play();
130
+ } })), (params.play === 'on-click' && !params.controls && ((0, jsx_runtime_1.jsx)("div", { className: `video-overlay-${item.id}`, onClick: () => {
131
+ if (!videoRef)
132
+ return;
133
+ setIsVideoInteracted(true);
134
+ if (isVideoPlaying) {
135
+ videoRef.pause();
136
+ }
137
+ else {
138
+ videoRef.play();
139
+ }
140
+ } })))] })), (0, jsx_runtime_1.jsx)("div", { className: `video-border-${item.id}`, style: Object.assign({ position: 'absolute', inset: 0, borderRadius: 'inherit', pointerEvents: 'none', zIndex: 2, WebkitMask: 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)', WebkitMaskComposite: 'xor', maskComposite: 'exclude' }, (strokeWidth !== 0 && strokeValue ? Object.assign(Object.assign(Object.assign({}, (strokeWidth ? { padding: `${strokeWidth * 100}vw` } : {})), (strokeValue.type === 'solid' ? { transition: strokeSolidTransition, background: stroke } : {})), (strokeValue.type === 'image' ? {
141
+ backgroundPosition: 'center',
142
+ backgroundSize: strokeValue.behavior === 'repeat' ? `${strokeValue.backgroundSize}%` : strokeValue.behavior,
143
+ backgroundRepeat: strokeValue.behavior === 'repeat' ? 'repeat' : 'no-repeat'
144
+ } : {
145
+ background: stroke,
146
+ })) : { background: stroke })) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
147
+ .video-wrapper-${item.id} {
148
+ position: absolute;
149
+ overflow: hidden;
150
+ width: 100%;
151
+ height: 100%;
152
+ box-sizing: border-box;
153
+ opacity: ${params.opacity};
154
+ transform: rotate(${item.area.angle}deg);
155
+ filter: ${params.blur !== 0 ? `blur(${params.blur * 100}vw)` : 'unset'};
156
+ ${params.blur !== 0 ? 'will-change: transform;' : ''}
157
+ }
158
+ .video-overlay-${item.id} {
159
+ position: absolute;
160
+ top: 0;
161
+ left: 0;
162
+ cursor: pointer;
163
+ width: 100%;
164
+ height: 100%;
165
+ }
166
+ .video-border-${item.id} {
167
+ position: absolute;
168
+ inset: 0;
169
+ border-radius: inherit;
170
+ pointer-events: none;
171
+ z-index: 2;
172
+ -webkit-mask:
173
+ linear-gradient(#fff 0 0) content-box,
174
+ linear-gradient(#fff 0 0);
175
+ -webkit-mask-composite: xor;
176
+ mask-composite: exclude;
177
+ }
178
+ .video-cover-${item.id} {
179
+ position: absolute;
180
+ top: 0;
181
+ left: 0;
182
+ cursor: pointer;
183
+ width: 100%;
184
+ height: 100%;
185
+ object-fit: cover;
186
+ }
187
+ .video {
188
+ width: 100%;
189
+ height: 100%;
190
+ box-sizing: border-box;
191
+ opacity: 1;
192
+ object-fit: cover;
193
+ overflow: hidden;
194
+ border-style: solid;
195
+ }
196
+ .video-${item.id} {
197
+ border: solid;
198
+ border-color: transparent;
199
+ border-width: ${params.strokeWidth * 100}vw;
200
+ border-radius: ${params.radius * 100}vw;
201
+ }
202
+ .video-playback-wrapper {
203
+ display: flex;
204
+ justify-content: center;
205
+ }
206
+ .video-canvas {
207
+ border: solid;
208
+ width: 100%;
209
+ height: 100%;
210
+ pointer-events: none;
211
+ border-width: 0;
212
+ box-sizing: border-box;
213
+ }
214
+ ` })] }));
215
+ };
216
+ exports.VideoItem = VideoItem;
@@ -0,0 +1,8 @@
1
+ import { FillLayer, ImageItem, VideoItem } from '../../../../sdk/types/article/Item';
2
+ export declare function useFileItem(item: ImageItem | VideoItem, sectionId: string): {
3
+ radius: number;
4
+ strokeWidth: number;
5
+ opacity: number;
6
+ strokeFill: FillLayer[];
7
+ blur: number;
8
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFileItem = useFileItem;
4
+ const Keyframe_1 = require("../../../../sdk/types/keyframe/Keyframe");
5
+ const useKeyframeValue_1 = require("../../../common/useKeyframeValue");
6
+ const DEFAULT_FILL = [
7
+ {
8
+ id: 'default',
9
+ type: 'solid',
10
+ value: 'rgba(0, 0, 0, 1)',
11
+ blendMode: 'normal'
12
+ }
13
+ ];
14
+ function useFileItem(item, sectionId) {
15
+ const radius = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderRadius, (item) => 'radius' in item.params ? item.params.radius : 0, (animator, scroll, value) => animator.getRadius({ radius: value }, scroll).radius, sectionId);
16
+ const strokeWidth = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderWidth, (item) => 'strokeWidth' in item.params ? item.params.strokeWidth : 0, (animator, scroll, value) => animator.getBorderWidth({ borderWidth: value }, scroll).borderWidth, sectionId);
17
+ const opacity = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Opacity, (item) => 'opacity' in item.params ? item.params.opacity : 1, (animator, scroll, value) => animator.getOpacity({ opacity: value }, scroll).opacity, sectionId);
18
+ const strokeFill = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.BorderFill, (item) => 'strokeFill' in item.params ? item.params.strokeFill : DEFAULT_FILL, (animator, scroll, value) => animator.getBorderFill(value, scroll), sectionId);
19
+ const blur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Blur, (item) => 'blur' in item.params ? item.params.blur : 0, (animator, scroll, value) => animator.getBlur({ blur: value }, scroll).blur, sectionId);
20
+ return { radius, strokeWidth, opacity, strokeFill, blur };
21
+ }
@@ -0,0 +1,45 @@
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.GroupItem = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const Item_1 = require("../Item");
10
+ const style_1 = __importDefault(require("styled-jsx/style"));
11
+ const LinkWrapper_1 = require("../LinkWrapper");
12
+ const useRegisterResize_1 = require("../../../common/useRegisterResize");
13
+ const useItemAngle_1 = require("../useItemAngle");
14
+ const useGroupItem_1 = require("./useGroupItem");
15
+ const getStyleFromItemStateAndParams_1 = require("../../../utils/getStyleFromItemStateAndParams");
16
+ const CompoundChild_1 = require("../CompoundItem/CompoundChild");
17
+ const GroupItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange, isInCompound }) => {
18
+ var _a, _b, _c, _d, _e, _f;
19
+ const id = (0, react_1.useId)();
20
+ const { items } = item;
21
+ const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
22
+ const { opacity: itemOpacity, blur: itemBlur } = (0, useGroupItem_1.useGroupItem)(item, sectionId);
23
+ const [ref, setRef] = (0, react_1.useState)(null);
24
+ (0, useRegisterResize_1.useRegisterResize)(ref, onResize);
25
+ const stateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['opacity', 'angle', 'blur']);
26
+ const angle = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_a = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _a === void 0 ? void 0 : _a.angle, itemAngle);
27
+ const opacity = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_b = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _b === void 0 ? void 0 : _b.opacity, itemOpacity);
28
+ const blur = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)((_c = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _c === void 0 ? void 0 : _c.blur, itemBlur);
29
+ const isInteractive = opacity !== 0 && opacity !== undefined;
30
+ (0, react_1.useEffect)(() => {
31
+ onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
32
+ }, [isInteractive, onVisibilityChange]);
33
+ return ((0, jsx_runtime_1.jsx)(LinkWrapper_1.LinkWrapper, { url: (_d = item.link) === null || _d === void 0 ? void 0 : _d.url, target: (_e = item.link) === null || _e === void 0 ? void 0 : _e.target, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `group-${item.id}`, ref: setRef, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { transition: (_f = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _f !== void 0 ? _f : 'none', willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset' }), children: items && items.map(item => isInCompound ? ((0, jsx_runtime_1.jsx)(CompoundChild_1.CompoundChild, { item: item, sectionId: sectionId, isParentVisible: isInteractive }, item.id)) : ((0, jsx_runtime_1.jsx)(Item_1.Item, { item: item, sectionId: sectionId, isParentVisible: isInteractive, isInGroup: true }, item.id))) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
34
+ .group-${item.id} {
35
+ position: absolute;
36
+ width: 100%;
37
+ height: 100%;
38
+ box-sizing: border-box;
39
+ opacity: ${item.params.opacity};
40
+ filter: ${item.params.blur !== 0 ? `blur(${item.params.blur * 100}vw)` : 'unset'};
41
+ transform: rotate(${item.area.angle}deg);
42
+ }
43
+ ` })] }) }));
44
+ };
45
+ exports.GroupItem = GroupItem;
@@ -1,5 +1,5 @@
1
1
  import { GroupItem } from '../../../../sdk/types/article/Item';
2
2
  export declare function useGroupItem(item: GroupItem, sectionId: string): {
3
- opacity: number | undefined;
4
- blur: number | undefined;
3
+ opacity: number;
4
+ blur: number;
5
5
  };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useGroupItem = useGroupItem;
4
+ const Keyframe_1 = require("../../../../sdk/types/keyframe/Keyframe");
5
+ const useKeyframeValue_1 = require("../../../common/useKeyframeValue");
6
+ function useGroupItem(item, sectionId) {
7
+ const opacity = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Opacity, (item) => 'opacity' in item.params ? item.params.opacity : 1, (animator, scroll, value) => animator.getOpacity({ opacity: value }, scroll).opacity, sectionId);
8
+ const blur = (0, useKeyframeValue_1.useKeyframeValue)(item, Keyframe_1.KeyframeType.Blur, (item) => 'blur' in item.params ? item.params.blur : 0, (animator, scroll, value) => animator.getBlur({ blur: value }, scroll).blur, sectionId);
9
+ return { opacity, blur };
10
+ }
@@ -0,0 +1,150 @@
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.Item = 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 useItemScale_1 = require("./useItemScale");
11
+ const ScaleAnchorMap_1 = require("../../utils/ScaleAnchorMap");
12
+ const useSectionHeightMap_1 = require("../Section/useSectionHeightMap");
13
+ const getItemTopStyle_1 = require("../../utils/getItemTopStyle");
14
+ const useStickyItemTop_1 = require("./useStickyItemTop");
15
+ const getAnchoredItemTop_1 = require("../../utils/getAnchoredItemTop");
16
+ const ArticleRectContext_1 = require("../../provider/ArticleRectContext");
17
+ const useExemplary_1 = require("../../common/useExemplary");
18
+ const useItemInteractionCtrl_1 = require("../../interactions/useItemInteractionCtrl");
19
+ const isItemType_1 = require("../../utils/isItemType");
20
+ const RichTextWrapper_1 = require("./RichTextWrapper");
21
+ const itemsMap_1 = require("./itemsMap");
22
+ const useItemTriggers_1 = require("./useItemTriggers");
23
+ const useSizing_1 = require("./useSizing");
24
+ const useItemPointerEvents_1 = require("./useItemPointerEvents");
25
+ const useItemArea_1 = require("./useItemArea");
26
+ const useDraggable_1 = require("./useDraggable");
27
+ const ArticleItemType_1 = require("../../../sdk/types/article/ArticleItemType");
28
+ const ItemArea_1 = require("../../../sdk/types/article/ItemArea");
29
+ const stickyFix = `
30
+ -webkit-transform: translate3d(0, 0, 0);
31
+ transform: translate3d(0, 0, 0);
32
+ `;
33
+ const noop = () => null;
34
+ const Item = ({ item, sectionId, articleHeight, isParentVisible = true, isInGroup = false }) => {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
36
+ const itemWrapperRef = (0, react_1.useRef)(null);
37
+ const itemInnerRef = (0, react_1.useRef)(null);
38
+ const rectObserver = (0, react_1.useContext)(ArticleRectContext_1.ArticleRectContext);
39
+ const id = (0, react_1.useId)();
40
+ const exemplary = (0, useExemplary_1.useExemplary)();
41
+ const { handleVisibilityChange, allowPointerEvents } = (0, useItemPointerEvents_1.useItemPointerEvents)((_a = item.params.pointerEvents) !== null && _a !== void 0 ? _a : 'when_visible', isParentVisible);
42
+ const [wrapperHeight, setWrapperHeight] = (0, react_1.useState)(undefined);
43
+ const [itemHeight, setItemHeight] = (0, react_1.useState)(undefined);
44
+ const itemScale = (0, useItemScale_1.useItemScale)(item, sectionId);
45
+ const interactionCtrl = (0, useItemInteractionCtrl_1.useItemInteractionCtrl)(item.id);
46
+ const triggers = (0, useItemTriggers_1.useItemTriggers)(interactionCtrl);
47
+ const [position, setPosition] = (0, react_1.useState)({ x: 0, y: 0 });
48
+ const [isDraggingActive, setIsDraggingActive] = (0, react_1.useState)(false);
49
+ const wrapperStateProps = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['top', 'left']);
50
+ const innerStateProps = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['width', 'height', 'scale']);
51
+ const { width, height, top, left } = (0, useItemArea_1.useItemArea)(item, sectionId, {
52
+ top: (_b = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.styles) === null || _b === void 0 ? void 0 : _b.top,
53
+ left: (_c = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.styles) === null || _c === void 0 ? void 0 : _c.left,
54
+ width: (_d = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.styles) === null || _d === void 0 ? void 0 : _d.width,
55
+ height: (_e = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.styles) === null || _e === void 0 ? void 0 : _e.height
56
+ });
57
+ const sectionHeight = (0, useSectionHeightMap_1.useSectionHeightData)(sectionId);
58
+ const stickyTop = (0, useStickyItemTop_1.useStickyItemTop)(item, sectionId, (_f = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.styles) === null || _f === void 0 ? void 0 : _f.top);
59
+ const sizingAxis = (0, useSizing_1.useSizing)(item);
60
+ const ItemComponent = itemsMap_1.itemsMap[item.type] || noop;
61
+ const sectionTop = rectObserver ? rectObserver.getSectionTop(sectionId) : 0;
62
+ const isDraggable = 'isDraggable' in item.params ? item.params.isDraggable : false;
63
+ (0, useDraggable_1.useDraggable)({ draggableRef: itemInnerRef.current, isEnabled: isDraggable !== null && isDraggable !== void 0 ? isDraggable : false }, ({ startX, startY, currentX, currentY, lastX, lastY, drag }) => {
64
+ const item = itemInnerRef.current;
65
+ if (!item)
66
+ return;
67
+ if (drag) {
68
+ setIsDraggingActive(true);
69
+ setPosition({
70
+ x: (currentX - startX) + lastX,
71
+ y: (currentY - startY) + lastY
72
+ });
73
+ }
74
+ else {
75
+ setIsDraggingActive(false);
76
+ }
77
+ });
78
+ const handleItemResize = (height) => {
79
+ const sticky = item.sticky;
80
+ if (!sticky || stickyTop === undefined || !articleHeight) {
81
+ setWrapperHeight(undefined);
82
+ return;
83
+ }
84
+ const itemArticleOffset = sectionTop / window.innerWidth + stickyTop;
85
+ const maxStickyTo = articleHeight - itemArticleOffset - height;
86
+ const end = sticky.to !== undefined
87
+ ? Math.min(maxStickyTo, sticky.to)
88
+ : articleHeight - itemArticleOffset - height;
89
+ const wrapperHeight = end - sticky.from + height;
90
+ setItemHeight(height);
91
+ setWrapperHeight(wrapperHeight);
92
+ };
93
+ const isRichText = (0, isItemType_1.isItemType)(item, ArticleItemType_1.ArticleItemType.RichText);
94
+ const anchorSide = (_g = item.area.anchorSide) !== null && _g !== void 0 ? _g : ItemArea_1.AnchorSide.Top;
95
+ const positionType = (_h = item.area.positionType) !== null && _h !== void 0 ? _h : ItemArea_1.PositionType.ScreenBased;
96
+ const isScreenBasedBottom = positionType === ItemArea_1.PositionType.ScreenBased && anchorSide === ItemArea_1.AnchorSide.Bottom;
97
+ const scale = (_k = (_j = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.styles) === null || _j === void 0 ? void 0 : _j.scale) !== null && _k !== void 0 ? _k : itemScale;
98
+ const hasClickTriggers = (_l = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getHasTrigger(item.id, 'click')) !== null && _l !== void 0 ? _l : false;
99
+ return ((0, jsx_runtime_1.jsxs)("div", { className: `item-wrapper-${item.id}`, ref: itemWrapperRef, onTransitionEnd: (e) => {
100
+ var _a;
101
+ e.stopPropagation();
102
+ (_a = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.handleTransitionEnd) === null || _a === void 0 ? void 0 : _a.call(interactionCtrl, e.propertyName);
103
+ }, style: Object.assign(Object.assign({ top: isScreenBasedBottom ? 'unset' : (0, getItemTopStyle_1.getItemTopStyle)(top, anchorSide), left: `${left * 100}vw`, bottom: isScreenBasedBottom ? `${-top * 100}vw` : 'unset' }, (wrapperHeight !== undefined ? { height: `${wrapperHeight * 100}vw` } : {})), { transition: (_m = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.transition) !== null && _m !== void 0 ? _m : 'none' }), children: [(0, jsx_runtime_1.jsx)("div", { suppressHydrationWarning: true, className: `item-${item.id}`, style: {
104
+ top: `${stickyTop * 100}vw`,
105
+ height: isRichText && itemHeight !== undefined ? `${itemHeight * 100}vw` : 'unset',
106
+ }, children: (0, jsx_runtime_1.jsx)(RichTextWrapper_1.RichTextWrapper, { isRichText: isRichText, children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: `item-${item.id}-inner`, ref: itemInnerRef, style: Object.assign(Object.assign(Object.assign({ top: `${position.y}px`, left: `${position.x}px` }, ((width !== undefined && height !== undefined)
107
+ ? {
108
+ width: `${sizingAxis.x === 'manual'
109
+ ? isRichText
110
+ ? `${width * exemplary}px`
111
+ : `${width * 100}vw`
112
+ : 'max-content'}`,
113
+ height: `${sizingAxis.y === 'manual' ? `${height * 100}vw` : 'unset'}`
114
+ }
115
+ : {})), (scale !== undefined ? { transform: `scale(${scale})`, WebkitTransform: `scale(${scale})` } : {})), { transition: (_o = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.transition) !== null && _o !== void 0 ? _o : 'none', cursor: isDraggingActive
116
+ ? 'grabbing'
117
+ : isDraggable
118
+ ? 'grab'
119
+ : hasClickTriggers
120
+ ? 'pointer'
121
+ : 'unset', pointerEvents: allowPointerEvents ? 'auto' : 'none', userSelect: isDraggable ? 'none' : 'unset', WebkitUserSelect: isDraggable ? 'none' : 'unset', MozUserSelect: isDraggable ? 'none' : 'unset', msUserSelect: isDraggable ? 'none' : 'unset' }) }, triggers, { children: (0, jsx_runtime_1.jsx)(ItemComponent, { item: item, sectionId: sectionId, onResize: handleItemResize, articleHeight: articleHeight, interactionCtrl: interactionCtrl, onVisibilityChange: handleVisibilityChange }) })) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
122
+ .item-${item.id} {
123
+ position: ${item.sticky ? 'sticky' : 'absolute'};
124
+ top: ${item.sticky ? `${(0, getAnchoredItemTop_1.getAnchoredItemTop)(item.area.top - item.sticky.from, sectionHeight, item.area.anchorSide)}` : 0};
125
+ transition: opacity 0.2s linear 0.1s;
126
+ pointer-events: none;
127
+ display: ${item.hidden ? 'none' : 'block'};
128
+ height: fit-content;
129
+ }
130
+ .item-${item.id}-inner {
131
+ width: ${sizingAxis.x === 'manual'
132
+ ? `${item.area.width * 100}vw`
133
+ : 'max-content'};
134
+ height: ${sizingAxis.y === 'manual' ? `${item.area.height * 100}vw` : 'unset'};
135
+ transform-origin: ${ScaleAnchorMap_1.ScaleAnchorMap[item.area.scaleAnchor]};
136
+ transform: scale(${item.area.scale});
137
+ position: relative;
138
+ }
139
+ .item-wrapper-${item.id} {
140
+ position: ${item.area.positionType === ItemArea_1.PositionType.ScreenBased ? 'fixed' : 'absolute'};
141
+ z-index: ${item.area.zIndex};
142
+ ${!isInGroup && stickyFix}
143
+ pointer-events: none;
144
+ bottom: ${isScreenBasedBottom ? `${-item.area.top * 100}vw` : 'unset'};
145
+ top: ${isScreenBasedBottom ? 'unset' : (0, getItemTopStyle_1.getItemTopStyle)(item.area.top, item.area.anchorSide)};
146
+ left: ${item.area.left * 100}vw;
147
+ }
148
+ ` })] }));
149
+ };
150
+ exports.Item = Item;
@@ -1,4 +1,4 @@
1
- import { default as React, ReactElement, ReactNode } from 'react';
1
+ import React, { ReactElement, ReactNode } from 'react';
2
2
  interface Props {
3
3
  url?: string;
4
4
  children: ReactElement | ReactNode[];
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LinkWrapper = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const LinkWrapper = ({ url, children, target }) => {
6
+ const validUrl = url && buildValidUrl(url);
7
+ const targetParams = target === '_blank' ? { target, rel: 'noreferrer' } : {};
8
+ return url ? ((0, jsx_runtime_1.jsx)("a", Object.assign({ href: validUrl }, targetParams, { children: children }))) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }));
9
+ };
10
+ exports.LinkWrapper = LinkWrapper;
11
+ function buildValidUrl(url) {
12
+ const prefixes = [
13
+ 'http://',
14
+ 'https://',
15
+ '/',
16
+ 'mailto:',
17
+ 'tel:',
18
+ 'file:',
19
+ 'ftp:',
20
+ 'javascript',
21
+ '#'
22
+ ];
23
+ const protocolCheck = prefixes.some(prefix => url.startsWith(prefix));
24
+ if (protocolCheck)
25
+ return url;
26
+ return `//${url}`;
27
+ }
@@ -0,0 +1,120 @@
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.RectangleItem = 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 LinkWrapper_1 = require("../LinkWrapper");
11
+ const useRectangleItem_1 = require("./useRectangleItem");
12
+ const useItemAngle_1 = require("../useItemAngle");
13
+ const useRegisterResize_1 = require("../../../common/useRegisterResize");
14
+ const getStyleFromItemStateAndParams_1 = require("../../../utils/getStyleFromItemStateAndParams");
15
+ const getFill_1 = require("../../../utils/getFill");
16
+ const areFillsVisible_1 = require("../../../utils/areFillsVisible/areFillsVisible");
17
+ const RectangleItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange }) => {
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
19
+ const id = (0, react_1.useId)();
20
+ const { fill: itemFill, radius: itemRadius, strokeWidth: itemStrokeWidth, strokeFill: itemStrokeFill, blur: itemBlur, backdropBlur: itemBackdropBlur } = (0, useRectangleItem_1.useRectangleItem)(item, sectionId);
21
+ const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
22
+ const stateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'strokeWidth', 'radius', 'blur', 'backdropBlur']);
23
+ const stateFillParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['fill']);
24
+ const stateFillLayers = (_a = stateFillParams === null || stateFillParams === void 0 ? void 0 : stateFillParams.styles) === null || _a === void 0 ? void 0 : _a.fill;
25
+ const solidTransition = (_b = stateFillParams === null || stateFillParams === void 0 ? void 0 : stateFillParams.transition) !== null && _b !== void 0 ? _b : 'none';
26
+ const stateStrokeFillParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['strokeFill']);
27
+ const stateStrokeFillLayers = (_c = stateStrokeFillParams === null || stateStrokeFillParams === void 0 ? void 0 : stateStrokeFillParams.styles) === null || _c === void 0 ? void 0 : _c.strokeFill;
28
+ const strokeSolidTransition = (_d = stateStrokeFillParams === null || stateStrokeFillParams === void 0 ? void 0 : stateStrokeFillParams.transition) !== null && _d !== void 0 ? _d : 'none';
29
+ const styles = (_e = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) !== null && _e !== void 0 ? _e : {};
30
+ const [ref, setRef] = (0, react_1.useState)(null);
31
+ (0, useRegisterResize_1.useRegisterResize)(ref, onResize);
32
+ const backdropBlur = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(styles === null || styles === void 0 ? void 0 : styles.backdropBlur, itemBackdropBlur);
33
+ const radius = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(styles === null || styles === void 0 ? void 0 : styles.radius, itemRadius);
34
+ const strokeWidth = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(styles === null || styles === void 0 ? void 0 : styles.strokeWidth, itemStrokeWidth);
35
+ const angle = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(styles === null || styles === void 0 ? void 0 : styles.angle, itemAngle);
36
+ const blur = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(styles === null || styles === void 0 ? void 0 : styles.blur, itemBlur);
37
+ const backdropFilterValue = backdropBlur ? `blur(${backdropBlur * 100}vw)` : undefined;
38
+ const isInteractive = (0, areFillsVisible_1.areFillsVisible)((_f = stateFillLayers !== null && stateFillLayers !== void 0 ? stateFillLayers : itemFill) !== null && _f !== void 0 ? _f : []) || (strokeWidth !== 0 && (0, areFillsVisible_1.areFillsVisible)((_g = stateStrokeFillLayers !== null && stateStrokeFillLayers !== void 0 ? stateStrokeFillLayers : itemStrokeFill) !== null && _g !== void 0 ? _g : []));
39
+ (0, react_1.useEffect)(() => {
40
+ onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
41
+ }, [isInteractive, onVisibilityChange]);
42
+ const strokeValue = stateStrokeFillLayers
43
+ ? (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateStrokeFillLayers[0], itemStrokeFill === null || itemStrokeFill === void 0 ? void 0 : itemStrokeFill[0])
44
+ : itemStrokeFill === null || itemStrokeFill === void 0 ? void 0 : itemStrokeFill[0];
45
+ const stroke = strokeValue
46
+ ? (_h = (0, getFill_1.getFill)(strokeValue)) !== null && _h !== void 0 ? _h : 'transparent'
47
+ : 'transparent';
48
+ return ((0, jsx_runtime_1.jsx)(LinkWrapper_1.LinkWrapper, { url: (_j = item.link) === null || _j === void 0 ? void 0 : _j.url, target: (_k = item.link) === null || _k === void 0 ? void 0 : _k.target, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: `rectangle-${item.id}`, ref: setRef, style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (strokeValue ? Object.assign({ '--stroke-background': stroke }, (strokeValue.type === 'image' ? {
49
+ backgroundPosition: 'center',
50
+ backgroundSize: strokeValue.behavior === 'repeat' ? `${strokeValue.backgroundSize}%` : strokeValue.behavior,
51
+ backgroundRepeat: strokeValue.behavior === 'repeat' ? 'repeat' : 'no-repeat'
52
+ } : {})) : {})), { borderRadius: `${radius * 100}vw` }), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), { willChange: blur !== 0 && blur !== undefined ? 'transform' : 'unset' }), (backdropFilterValue !== undefined
53
+ ? { backdropFilter: backdropFilterValue, WebkitBackdropFilter: backdropFilterValue }
54
+ : {})), { transition: (_l = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _l !== void 0 ? _l : 'none' }), children: [(0, jsx_runtime_1.jsx)("div", { className: `rectangle-border-${item.id}`, style: Object.assign({ position: 'absolute', inset: 0, borderRadius: 'inherit', pointerEvents: 'none', zIndex: 2, WebkitMask: 'linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)', WebkitMaskComposite: 'xor', maskComposite: 'exclude' }, (strokeWidth !== 0 && strokeValue ? Object.assign(Object.assign(Object.assign({}, (strokeWidth ? { padding: `${strokeWidth * 100}vw` } : {})), (strokeValue.type === 'solid' ? { transition: strokeSolidTransition, background: stroke } : {})), (strokeValue.type === 'image' ? {
55
+ backgroundPosition: 'center',
56
+ backgroundSize: strokeValue.behavior === 'repeat' ? `${strokeValue.backgroundSize}%` : strokeValue.behavior,
57
+ backgroundRepeat: strokeValue.behavior === 'repeat' ? 'repeat' : 'no-repeat'
58
+ } : {
59
+ background: stroke,
60
+ })) : { background: stroke })) }), itemFill && itemFill.map((fill) => {
61
+ var _a, _b;
62
+ const stateFillLayer = stateFillLayers === null || stateFillLayers === void 0 ? void 0 : stateFillLayers.find((layer) => layer.id === fill.id);
63
+ const value = stateFillLayer
64
+ ? ((_a = (0, getStyleFromItemStateAndParams_1.getStyleFromItemStateAndParams)(stateFillLayer, fill)) !== null && _a !== void 0 ? _a : fill)
65
+ : fill;
66
+ const background = value
67
+ ? (_b = (0, getFill_1.getFill)(value)) !== null && _b !== void 0 ? _b : 'transparent'
68
+ : 'transparent';
69
+ return ((0, jsx_runtime_1.jsx)(Fill, { fill: value, itemId: item.id, background: background, solidTransition: solidTransition }));
70
+ })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
71
+ .rectangle-${item.id} {
72
+ position: absolute;
73
+ width: 100%;
74
+ height: 100%;
75
+ box-sizing: border-box;
76
+ border-radius: ${item.params.radius * 100}vw
77
+ transform: rotate(${item.area.angle}deg);
78
+ filter: ${item.params.blur !== 0 ? `blur(${item.params.blur * 100}vw)` : 'unset'};
79
+ ${item.params.blur !== 0 ? 'will-change: transform;' : ''}
80
+ backdrop-filter: ${item.params.backdropBlur !== 0 ? `blur(${item.params.backdropBlur * 100}vw)` : 'unset'};
81
+ -webkit-backdrop-filter: ${item.params.backdropBlur !== 0 ? `blur(${item.params.backdropBlur * 100}vw)` : 'unset'};
82
+ },
83
+ .image-fill-${item.id} {
84
+ position: absolute;
85
+ top: 0;
86
+ left: 0;
87
+ width: 100%;
88
+ height: 100%;
89
+ transform-origin: center center;
90
+ z-index: 1;
91
+ background-position: center;
92
+ },
93
+ .rectangle-border-${item.id} {
94
+ position: absolute;
95
+ inset: 0;
96
+ border-radius: inherit;
97
+ pointer-events: none;
98
+ z-index: 2;
99
+ -webkit-mask:
100
+ linear-gradient(#fff 0 0) content-box,
101
+ linear-gradient(#fff 0 0);
102
+ -webkit-mask-composite: xor;
103
+ mask-composite: exclude;
104
+ }
105
+ ` })] }) }));
106
+ };
107
+ exports.RectangleItem = RectangleItem;
108
+ function Fill({ fill, itemId, background, solidTransition }) {
109
+ const isRotatedImage = fill.type === 'image' && fill.rotation && fill.rotation !== 0;
110
+ return ((0, jsx_runtime_1.jsx)("div", { className: fill.type === 'image' ? `image-fill-${itemId}` : `fill-${itemId}`, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (fill.type === 'solid' ? { background, transition: solidTransition } : {})), (fill.type === 'image'
111
+ ? {
112
+ transform: `rotate(${fill.rotation}deg)`,
113
+ backgroundImage: `url(${fill.src})`,
114
+ backgroundSize: fill.behavior === 'repeat' ? `${fill.backgroundSize}%` : fill.behavior,
115
+ backgroundRepeat: fill.behavior === 'repeat' ? 'repeat' : 'no-repeat',
116
+ opacity: fill.opacity
117
+ }
118
+ : { background })), { position: 'absolute', borderRadius: 'inherit', mixBlendMode: fill.blendMode, top: 0, left: 0, width: '100%', height: '100%', pointerEvents: 'none' }), (isRotatedImage ? { overflow: 'hidden' } : {})) }, fill.id));
119
+ }
120
+ ;