@cntrl-site/sdk-nextjs 1.6.11-alpha.1 → 1.6.12

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 (122) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +4 -4
  3. package/TODO.md +1 -1
  4. package/eslint.config.mjs +35 -35
  5. package/jest.config.js +6 -6
  6. package/lib/common/useItemFXData.js +7 -7
  7. package/lib/components/Article.js +5 -5
  8. package/lib/components/LayoutStyle.js +4 -4
  9. package/lib/components/Section/Section.js +14 -14
  10. package/lib/components/items/CodeEmbedItem/CodeEmbedItem.js +40 -29
  11. package/lib/components/items/CompoundItem/CompoundChild.js +20 -20
  12. package/lib/components/items/CompoundItem/CompoundItem.js +14 -14
  13. package/lib/components/items/CustomItem/CustomItem.js +9 -9
  14. package/lib/components/items/EmbedVideoItem/VimeoEmbed.js +23 -23
  15. package/lib/components/items/EmbedVideoItem/YoutubeEmbed.js +26 -26
  16. package/lib/components/items/FileItem/ImageItem.js +38 -38
  17. package/lib/components/items/FileItem/VideoItem.js +45 -45
  18. package/lib/components/items/GroupItem/GroupItem.js +13 -13
  19. package/lib/components/items/Item.js +30 -30
  20. package/lib/components/items/RectangleItem/RectangleItem.js +20 -20
  21. package/lib/components/items/RichTextItem/RichTextItem.js +21 -21
  22. package/lib/provider/CntrlSdkContext.js +8 -0
  23. package/lib/utils/RichTextConverter/RichTextConverter.js +21 -21
  24. package/package.json +57 -57
  25. package/src/common/useCurrentLayout.ts +52 -52
  26. package/src/common/useExemplary.ts +9 -9
  27. package/src/common/useItemFXData.ts +47 -47
  28. package/src/common/useKeyframeValue.ts +85 -85
  29. package/src/common/useRegisterResize.ts +17 -17
  30. package/src/components/Article.tsx +66 -66
  31. package/src/components/ArticleWrapper.tsx +21 -21
  32. package/src/components/Head.tsx +56 -56
  33. package/src/components/LayoutStyle.tsx +21 -21
  34. package/src/components/Page.tsx +33 -33
  35. package/src/components/ScrollPlaybackVideo.tsx +56 -56
  36. package/src/components/Section/Section.tsx +77 -77
  37. package/src/components/Section/useSectionColor.ts +19 -19
  38. package/src/components/Section/useSectionHeightMap.ts +19 -19
  39. package/src/components/items/CodeEmbedItem/CodeEmbedItem.tsx +132 -120
  40. package/src/components/items/CodeEmbedItem/useCodeEmbedItem.ts +36 -36
  41. package/src/components/items/CompoundItem/CompoundChild.tsx +150 -150
  42. package/src/components/items/CompoundItem/CompoundItem.tsx +71 -71
  43. package/src/components/items/CompoundItem/useCompoundItem.ts +21 -21
  44. package/src/components/items/CustomItem/CustomItem.tsx +47 -47
  45. package/src/components/items/EmbedVideoItem/VimeoEmbed.tsx +202 -202
  46. package/src/components/items/EmbedVideoItem/YoutubeEmbed.tsx +187 -187
  47. package/src/components/items/EmbedVideoItem/useEmbedVideoItem.ts +46 -46
  48. package/src/components/items/FileItem/ImageItem.tsx +156 -156
  49. package/src/components/items/FileItem/VideoItem.tsx +185 -185
  50. package/src/components/items/FileItem/useFileItem.ts +73 -73
  51. package/src/components/items/GroupItem/GroupItem.tsx +79 -79
  52. package/src/components/items/GroupItem/useGroupItem.ts +34 -34
  53. package/src/components/items/Item.tsx +251 -251
  54. package/src/components/items/LinkWrapper.tsx +39 -39
  55. package/src/components/items/RectangleItem/RectangleItem.tsx +95 -95
  56. package/src/components/items/RectangleItem/useRectangleItem.ts +82 -82
  57. package/src/components/items/RichTextItem/RichTextItem.tsx +105 -105
  58. package/src/components/items/RichTextItem/useRichTextItem.ts +12 -12
  59. package/src/components/items/RichTextWrapper.tsx +15 -15
  60. package/src/components/items/itemsMap.ts +26 -26
  61. package/src/components/items/useDraggable.ts +252 -252
  62. package/src/components/items/useItemAngle.ts +13 -13
  63. package/src/components/items/useItemArea.ts +35 -35
  64. package/src/components/items/useItemPointerEvents.ts +23 -23
  65. package/src/components/items/useItemScale.ts +17 -17
  66. package/src/components/items/useItemTriggers.ts +15 -15
  67. package/src/components/items/useRichTextItemValues.ts +65 -65
  68. package/src/components/items/useSizing.ts +25 -25
  69. package/src/components/items/useStickyItemTop.ts +21 -21
  70. package/src/components/useLayoutContext.ts +7 -7
  71. package/src/index.ts +24 -24
  72. package/src/interactions/CSSPropertyNameMap.ts +38 -38
  73. package/src/interactions/InteractionsRegistry.ts +275 -275
  74. package/src/interactions/ItemInteractionCtrl.ts +77 -77
  75. package/src/interactions/getTransition.ts +27 -27
  76. package/src/interactions/types.ts +36 -36
  77. package/src/interactions/useItemInteractionCtrl.ts +18 -18
  78. package/src/provider/ArticleRectContext.ts +4 -4
  79. package/src/provider/CntrlContext.ts +5 -5
  80. package/src/provider/CntrlProvider.tsx +11 -11
  81. package/src/provider/CntrlSdkContext.ts +69 -59
  82. package/src/provider/CustomItemRegistry.ts +14 -14
  83. package/src/provider/CustomItemTypes.ts +3 -3
  84. package/src/provider/CustomSectionRegistry.ts +25 -25
  85. package/src/provider/InteractionsContext.old.tsx +65 -65
  86. package/src/provider/InteractionsContext.test.tsx +97 -97
  87. package/src/provider/InteractionsContext.tsx +28 -28
  88. package/src/provider/Keyframes.ts +11 -11
  89. package/src/provider/KeyframesContext.ts +5 -5
  90. package/src/provider/LayoutContext.ts +3 -3
  91. package/src/provider/defaultContext.ts +8 -8
  92. package/src/provider/useCntrlContext.ts +8 -8
  93. package/src/styled-jsx.d.ts +1 -1
  94. package/src/utils/Animator/Animator.ts +371 -371
  95. package/src/utils/ArticleRectManager/ArticleRectObserver.ts +93 -93
  96. package/src/utils/ArticleRectManager/useArticleRectObserver.ts +17 -17
  97. package/src/utils/ArticleRectManager/useSectionRegistry.ts +11 -11
  98. package/src/utils/EventEmitter.ts +41 -41
  99. package/src/utils/RichTextConverter/RichTextConverter.tsx +326 -326
  100. package/src/utils/ScaleAnchorMap.ts +13 -13
  101. package/src/utils/StickyManager/StickyManager.ts +23 -23
  102. package/src/utils/Youtube/YouTubeIframeApiLoader.ts +58 -58
  103. package/src/utils/Youtube/YoutubeIframeApi.ts +101 -101
  104. package/src/utils/Youtube/useYouTubeIframeApi.ts +12 -12
  105. package/src/utils/binSearchInsertAt.ts +33 -33
  106. package/src/utils/castObject.ts +10 -10
  107. package/src/utils/effects/useImageFx.ts +113 -113
  108. package/src/utils/effects/useVideoFx.ts +116 -116
  109. package/src/utils/getAnchoredItemTop.ts +12 -12
  110. package/src/utils/getCompoundBondaryStyles.ts +62 -62
  111. package/src/utils/getFontFamilyValue.ts +3 -3
  112. package/src/utils/getInvertedRanges.ts +43 -43
  113. package/src/utils/getItemTopStyle.ts +14 -14
  114. package/src/utils/getStyleFromItemStateAndParams.ts +8 -8
  115. package/src/utils/getValidYoutubeUrl.ts +29 -29
  116. package/src/utils/isItemType.ts +6 -6
  117. package/src/utils/rangeMap.ts +13 -13
  118. package/src/utils/useElementRect.ts +23 -23
  119. package/.idea/modules.xml +0 -8
  120. package/.idea/sdk-nextjs.iml +0 -12
  121. package/.idea/vcs.xml +0 -6
  122. package/cntrl-site-sdk-nextjs-1.6.11-alpha.0.tgz +0 -0
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 CNTRL
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2022 CNTRL
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # sdk-nextjs
2
- SDK is the code that transforms the raw data from the API
3
- into React components. In Control this happens at build time,
4
- when users hit the "Publish" button from the Project Dashboard.
1
+ # sdk-nextjs
2
+ SDK is the code that transforms the raw data from the API
3
+ into React components. In Control this happens at build time,
4
+ when users hit the "Publish" button from the Project Dashboard.
package/TODO.md CHANGED
@@ -1 +1 @@
1
- 1. Uninstall `@types/isomorphic-fetch` package and run `npm run build` - results in a TS compile error
1
+ 1. Uninstall `@types/isomorphic-fetch` package and run `npm run build` - results in a TS compile error
package/eslint.config.mjs CHANGED
@@ -1,35 +1,35 @@
1
- import antfu from '@antfu/eslint-config';
2
-
3
- export default antfu(
4
- {
5
- ignores: [],
6
- },
7
- {
8
- rules: {
9
- 'import/order': 'off',
10
- 'style/semi': 'off',
11
- 'antfu/if-newline': 'off',
12
- 'style/comma-dangle': 'off',
13
- 'style/member-delimiter-style': 'off',
14
- 'semi': ['error', 'always'],
15
- 'no-alert': 'off',
16
- 'ts/consistent-type-definitions': 'off',
17
- 'perfectionist/sort-imports': 'off',
18
- 'perfectionist/sort-named-imports': 'off',
19
- 'ts/consistent-type-imports': 'off',
20
- 'jsonc/sort-keys': 'off',
21
- 'node/prefer-global/process': 'off',
22
- 'style/arrow-parens': 'off',
23
- 'ts/method-signature-style': 'off',
24
- 'style/brace-style': 'off',
25
- 'style/jsx-one-expression-per-line': 'off',
26
- 'test/prefer-lowercase-title': 'off',
27
- 'perfectionist/sort-exports': 'off',
28
- 'no-extra-boolean-cast': 'off',
29
- 'prefer-promise-reject-errors': 'off',
30
- 'new-cap': 'off',
31
- 'perfectionist/sort-named-exports': 'off',
32
- 'style/multiline-ternary': 'off'
33
- },
34
- },
35
- );
1
+ import antfu from '@antfu/eslint-config';
2
+
3
+ export default antfu(
4
+ {
5
+ ignores: [],
6
+ },
7
+ {
8
+ rules: {
9
+ 'import/order': 'off',
10
+ 'style/semi': 'off',
11
+ 'antfu/if-newline': 'off',
12
+ 'style/comma-dangle': 'off',
13
+ 'style/member-delimiter-style': 'off',
14
+ 'semi': ['error', 'always'],
15
+ 'no-alert': 'off',
16
+ 'ts/consistent-type-definitions': 'off',
17
+ 'perfectionist/sort-imports': 'off',
18
+ 'perfectionist/sort-named-imports': 'off',
19
+ 'ts/consistent-type-imports': 'off',
20
+ 'jsonc/sort-keys': 'off',
21
+ 'node/prefer-global/process': 'off',
22
+ 'style/arrow-parens': 'off',
23
+ 'ts/method-signature-style': 'off',
24
+ 'style/brace-style': 'off',
25
+ 'style/jsx-one-expression-per-line': 'off',
26
+ 'test/prefer-lowercase-title': 'off',
27
+ 'perfectionist/sort-exports': 'off',
28
+ 'no-extra-boolean-cast': 'off',
29
+ 'prefer-promise-reject-errors': 'off',
30
+ 'new-cap': 'off',
31
+ 'perfectionist/sort-named-exports': 'off',
32
+ 'style/multiline-ternary': 'off'
33
+ },
34
+ },
35
+ );
package/jest.config.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2
- module.exports = {
3
- preset: 'ts-jest',
4
- testEnvironment: 'jsdom',
5
- rootDir: './src'
6
- };
1
+ /** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2
+ module.exports = {
3
+ preset: 'ts-jest',
4
+ testEnvironment: 'jsdom',
5
+ rootDir: './src'
6
+ };
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useItemFXData = void 0;
4
4
  const sdk_1 = require("@cntrl-site/sdk");
5
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;
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
13
  varying vec2 v_texCoord;`;
14
14
  function useItemFXData(item, sectionId) {
15
15
  const { fragmentShader: shaderBody, FXControls } = item.commonParams;
@@ -28,11 +28,11 @@ const Article = ({ article, sectionData }) => {
28
28
  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: article.sections.map((section, i) => {
29
29
  const data = section.name ? sectionData[section.name] : {};
30
30
  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));
31
- }) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
32
- .article {
33
- position: relative;
34
- overflow: clip;
35
- }
31
+ }) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
32
+ .article {
33
+ position: relative;
34
+ overflow: clip;
35
+ }
36
36
  ` })] }) }));
37
37
  };
38
38
  exports.Article = Article;
@@ -9,10 +9,10 @@ const sdk_1 = require("@cntrl-site/sdk");
9
9
  const style_1 = __importDefault(require("styled-jsx/style"));
10
10
  const LayoutStyle = ({ id, layouts, layoutId, children }) => {
11
11
  const layout = layouts.find(l => l.id === layoutId);
12
- return ((0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
13
- ${(0, sdk_1.getLayoutMediaQuery)(layoutId, layouts)} {
14
- ${children === null || children === void 0 ? void 0 : children(layout)}
15
- }
12
+ return ((0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
13
+ ${(0, sdk_1.getLayoutMediaQuery)(layoutId, layouts)} {
14
+ ${children === null || children === void 0 ? void 0 : children(layout)}
15
+ }
16
16
  ` }));
17
17
  };
18
18
  exports.LayoutStyle = LayoutStyle;
@@ -24,25 +24,25 @@ const Section = ({ section, data, children }) => {
24
24
  .sort((a, b) => a.startsWith - b.startsWith)
25
25
  .reduce((acc, layout) => {
26
26
  const isHidden = section.hidden[layout.id];
27
- return `
28
- ${acc}
29
- ${(0, sdk_1.getLayoutMediaQuery)(layout.id, layouts)} {
30
- .section-${section.id} {
31
- display: ${isHidden ? 'none' : 'block'};
32
- }
27
+ return `
28
+ ${acc}
29
+ ${(0, sdk_1.getLayoutMediaQuery)(layout.id, layouts)} {
30
+ .section-${section.id} {
31
+ display: ${isHidden ? 'none' : 'block'};
32
+ }
33
33
  }`;
34
34
  }, '');
35
35
  };
36
36
  if (SectionComponent)
37
37
  return (0, jsx_runtime_1.jsx)("div", { ref: sectionRef, children: (0, jsx_runtime_1.jsx)(SectionComponent, { data: data, children: children }) });
38
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `section-${section.id}`, id: section.name, ref: sectionRef, children: children }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
39
- ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([height, color]) => (`
40
- .section-${section.id} {
41
- height: ${getSectionHeight(height)};
42
- position: relative;
43
- background-color: ${color_1.CntrlColor.parse(color !== null && color !== void 0 ? color : DEFAULT_COLOR).fmt('rgba')};
44
- }`))}
45
- ${getSectionVisibilityStyles()}
38
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `section-${section.id}`, id: section.name, ref: sectionRef, children: children }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
39
+ ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([height, color]) => (`
40
+ .section-${section.id} {
41
+ height: ${getSectionHeight(height)};
42
+ position: relative;
43
+ background-color: ${color_1.CntrlColor.parse(color !== null && color !== void 0 ? color : DEFAULT_COLOR).fmt('rgba')};
44
+ }`))}
45
+ ${getSectionVisibilityStyles()}
46
46
  ` })] }));
47
47
  };
48
48
  exports.Section = Section;
@@ -25,9 +25,12 @@ const stylesMap = {
25
25
  [sdk_1.AreaAnchor.BottomRight]: { justifyContent: 'flex-end', alignItems: 'flex-end' }
26
26
  };
27
27
  const CodeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilityChange }) => {
28
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
28
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
29
29
  const id = (0, react_1.useId)();
30
- const { layouts } = (0, useCntrlContext_1.useCntrlContext)();
30
+ const { layouts, fonts } = (0, useCntrlContext_1.useCntrlContext)();
31
+ const fontGoogleTags = fonts === null || fonts === void 0 ? void 0 : fonts.google;
32
+ const fontAdobeTags = fonts === null || fonts === void 0 ? void 0 : fonts.adobe;
33
+ const fontCustomTags = new sdk_1.FontFaceGenerator((_a = fonts === null || fonts === void 0 ? void 0 : fonts.custom) !== null && _a !== void 0 ? _a : []).generate();
31
34
  const { anchor, blur: itemBlur, opacity: itemOpacity } = (0, useCodeEmbedItem_1.useCodeEmbedItem)(item, sectionId);
32
35
  const itemAngle = (0, useItemAngle_1.useItemAngle)(item, sectionId);
33
36
  const { html } = item.commonParams;
@@ -36,9 +39,9 @@ const CodeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilit
36
39
  const pos = stylesMap[anchor];
37
40
  const layoutValues = [item.area, item.layoutParams];
38
41
  const stateParams = interactionCtrl === null || interactionCtrl === void 0 ? void 0 : interactionCtrl.getState(['angle', 'blur', 'opacity']);
39
- const blur = ((_b = (_a = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _a === void 0 ? void 0 : _a.blur) !== null && _b !== void 0 ? _b : itemBlur);
40
- const opacity = (_d = (_c = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _c === void 0 ? void 0 : _c.opacity) !== null && _d !== void 0 ? _d : itemOpacity;
41
- const angle = (_f = (_e = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _e === void 0 ? void 0 : _e.angle) !== null && _f !== void 0 ? _f : itemAngle;
42
+ const blur = ((_c = (_b = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _b === void 0 ? void 0 : _b.blur) !== null && _c !== void 0 ? _c : itemBlur);
43
+ const opacity = (_e = (_d = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _d === void 0 ? void 0 : _d.opacity) !== null && _e !== void 0 ? _e : itemOpacity;
44
+ const angle = (_g = (_f = stateParams === null || stateParams === void 0 ? void 0 : stateParams.styles) === null || _f === void 0 ? void 0 : _f.angle) !== null && _g !== void 0 ? _g : itemAngle;
42
45
  (0, react_1.useEffect)(() => {
43
46
  if (!ref)
44
47
  return;
@@ -59,37 +62,45 @@ const CodeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibilit
59
62
  const iframe = ref.querySelector(`[data-embed="${item.id}"]`);
60
63
  if (!iframe)
61
64
  return;
62
- iframe.srcdoc = item.commonParams.html;
65
+ const htmlWithStyles = `
66
+ ${fontGoogleTags}
67
+ ${fontAdobeTags}
68
+ <style>
69
+ ${fontCustomTags}
70
+ </style>
71
+ ${item.commonParams.html}
72
+ `;
73
+ iframe.srcdoc = htmlWithStyles;
63
74
  }, [item.commonParams.html, item.commonParams.iframe, ref]);
64
75
  const isInteractive = opacity !== 0;
65
76
  (0, react_1.useEffect)(() => {
66
77
  onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
67
78
  }, [isInteractive, onVisibilityChange]);
68
- return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_g = item.link) === null || _g === void 0 ? void 0 : _g.url, target: (_h = item.link) === null || _h === void 0 ? void 0 : _h.target, children: [(0, jsx_runtime_1.jsx)("div", { className: `embed-wrapper-${item.id}`, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), (opacity !== undefined ? { opacity } : {})), { transition: (_j = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _j !== void 0 ? _j : 'none' }), ref: setRef, children: item.commonParams.iframe ? ((0, jsx_runtime_1.jsx)("iframe", { "data-embed": item.id, className: `embed-${item.id}`, style: Object.assign(Object.assign({}, pos), { border: 'unset' }) })) : ((0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, style: Object.assign({}, pos), dangerouslySetInnerHTML: { __html: html } })) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
69
- .embed-wrapper-${item.id} {
70
- position: absolute;
71
- width: 100%;
72
- height: 100%;
73
- }
74
- .embed-${item.id} {
75
- transform: ${item.commonParams.scale ? 'scale(var(--layout-deviation))' : 'none'};
76
- transform-origin: top left;
77
- z-index: 1;
78
- border: none;
79
- }
79
+ return ((0, jsx_runtime_1.jsxs)(LinkWrapper_1.LinkWrapper, { url: (_h = item.link) === null || _h === void 0 ? void 0 : _h.url, target: (_j = item.link) === null || _j === void 0 ? void 0 : _j.target, children: [(0, jsx_runtime_1.jsx)("div", { className: `embed-wrapper-${item.id}`, style: Object.assign(Object.assign(Object.assign(Object.assign({}, (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), (blur !== undefined ? { filter: `blur(${blur * 100}vw)` } : {})), (opacity !== undefined ? { opacity } : {})), { transition: (_k = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _k !== void 0 ? _k : 'none' }), ref: setRef, children: item.commonParams.iframe ? ((0, jsx_runtime_1.jsx)("iframe", { "data-embed": item.id, className: `embed-${item.id}`, style: Object.assign(Object.assign({}, pos), { border: 'unset' }) })) : ((0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, style: Object.assign({}, pos), dangerouslySetInnerHTML: { __html: html } })) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
80
+ .embed-wrapper-${item.id} {
81
+ position: absolute;
82
+ width: 100%;
83
+ height: 100%;
84
+ }
85
+ .embed-${item.id} {
86
+ transform: ${item.commonParams.scale ? 'scale(var(--layout-deviation))' : 'none'};
87
+ transform-origin: top left;
88
+ z-index: 1;
89
+ border: none;
90
+ }
80
91
  ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area, layoutParams], exemplary) => {
81
- return (`
82
- .embed-wrapper-${item.id} {
83
- opacity: ${layoutParams.opacity};
84
- transform: rotate(${area.angle}deg);
85
- filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
86
- }
87
- .embed-${item.id} {
88
- width: ${item.commonParams.scale ? `${area.width * exemplary}px` : '100%'};
89
- height: ${item.commonParams.scale ? `${area.height * exemplary}px` : '100%'};
90
- }
92
+ return (`
93
+ .embed-wrapper-${item.id} {
94
+ opacity: ${layoutParams.opacity};
95
+ transform: rotate(${area.angle}deg);
96
+ filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
97
+ }
98
+ .embed-${item.id} {
99
+ width: ${item.commonParams.scale ? `${area.width * exemplary}px` : '100%'};
100
+ height: ${item.commonParams.scale ? `${area.height * exemplary}px` : '100%'};
101
+ }
91
102
  `);
92
- })}
103
+ })}
93
104
  ` })] }));
94
105
  };
95
106
  exports.CodeEmbedItem = CodeEmbedItem;
@@ -70,32 +70,32 @@ const CompoundChild = ({ item, sectionId, isParentVisible = true }) => {
70
70
  ? { height: `${sizingAxis.y === 'manual'
71
71
  ? (0, getCompoundBondaryStyles_1.getCompoundHeight)(compoundSettings, height)
72
72
  : 'unset'}` }
73
- : {})), (compoundSettings ? { transform: `${(0, getCompoundBondaryStyles_1.getCompoundTransform)(compoundSettings)}` } : {})), { transition: (_k = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.transition) !== null && _k !== void 0 ? _k : 'none', cursor: hasClickTriggers ? 'pointer' : 'unset', pointerEvents: allowPointerEvents ? 'auto' : 'none' }) }, triggers, { children: [(0, jsx_runtime_1.jsx)("div", { className: `item-${item.id}-inner`, style: Object.assign({ transition: (_l = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.transition) !== null && _l !== void 0 ? _l : 'none' }, (scale !== undefined ? { transform: `scale(${scale})` } : {})), children: (0, jsx_runtime_1.jsx)(RichTextWrapper_1.RichTextWrapper, { isRichText: isRichText, transformOrigin: transformOrigin, children: (0, jsx_runtime_1.jsx)(ItemComponent, { item: item, sectionId: sectionId, interactionCtrl: interactionCtrl, onVisibilityChange: handleVisibilityChange, isInCompound: true }) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
73
+ : {})), (compoundSettings ? { transform: `${(0, getCompoundBondaryStyles_1.getCompoundTransform)(compoundSettings)}` } : {})), { transition: (_k = wrapperStateProps === null || wrapperStateProps === void 0 ? void 0 : wrapperStateProps.transition) !== null && _k !== void 0 ? _k : 'none', cursor: hasClickTriggers ? 'pointer' : 'unset', pointerEvents: allowPointerEvents ? 'auto' : 'none' }) }, triggers, { children: [(0, jsx_runtime_1.jsx)("div", { className: `item-${item.id}-inner`, style: Object.assign({ transition: (_l = innerStateProps === null || innerStateProps === void 0 ? void 0 : innerStateProps.transition) !== null && _l !== void 0 ? _l : 'none' }, (scale !== undefined ? { transform: `scale(${scale})` } : {})), children: (0, jsx_runtime_1.jsx)(RichTextWrapper_1.RichTextWrapper, { isRichText: isRichText, transformOrigin: transformOrigin, children: (0, jsx_runtime_1.jsx)(ItemComponent, { item: item, sectionId: sectionId, interactionCtrl: interactionCtrl, onVisibilityChange: handleVisibilityChange, isInCompound: true }) }) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
74
74
  ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area, hidden, compoundSettings, layoutParams]) => {
75
75
  const sizingAxis = (0, useSizing_1.parseSizing)(layoutParams.sizing);
76
76
  const scaleAnchor = area.scaleAnchor;
77
- return (`
78
- .item-${item.id}-inner {
79
- width: 100%;
80
- height: 100%;
81
- transform-origin: ${ScaleAnchorMap_1.ScaleAnchorMap[scaleAnchor]};
82
- transform: scale(${area.scale});
83
- }
84
- .item-${item.id} {
85
- position: absolute;
86
- top: ${(0, getCompoundBondaryStyles_1.getCompoundTop)(compoundSettings, area.top)};
87
- left: ${(0, getCompoundBondaryStyles_1.getCompoundLeft)(compoundSettings, area.left)};
88
- transition: opacity 0.2s linear 0.1s;
89
- display: ${hidden ? 'none' : 'block'};
77
+ return (`
78
+ .item-${item.id}-inner {
79
+ width: 100%;
80
+ height: 100%;
81
+ transform-origin: ${ScaleAnchorMap_1.ScaleAnchorMap[scaleAnchor]};
82
+ transform: scale(${area.scale});
83
+ }
84
+ .item-${item.id} {
85
+ position: absolute;
86
+ top: ${(0, getCompoundBondaryStyles_1.getCompoundTop)(compoundSettings, area.top)};
87
+ left: ${(0, getCompoundBondaryStyles_1.getCompoundLeft)(compoundSettings, area.left)};
88
+ transition: opacity 0.2s linear 0.1s;
89
+ display: ${hidden ? 'none' : 'block'};
90
90
  width: ${sizingAxis.x === 'manual'
91
91
  ? `${(0, getCompoundBondaryStyles_1.getCompoundWidth)(compoundSettings, area.width, isRichText)}`
92
- : 'max-content'};
93
- height: ${sizingAxis.y === 'manual' ? `${(0, getCompoundBondaryStyles_1.getCompoundHeight)(compoundSettings, area.height)}` : 'unset'};
94
- transform: ${(0, getCompoundBondaryStyles_1.getCompoundTransform)(compoundSettings)};
95
- z-index: ${area.zIndex};
96
- }
92
+ : 'max-content'};
93
+ height: ${sizingAxis.y === 'manual' ? `${(0, getCompoundBondaryStyles_1.getCompoundHeight)(compoundSettings, area.height)}` : 'unset'};
94
+ transform: ${(0, getCompoundBondaryStyles_1.getCompoundTransform)(compoundSettings)};
95
+ z-index: ${area.zIndex};
96
+ }
97
97
  `);
98
- })}
98
+ })}
99
99
  ` })] })));
100
100
  };
101
101
  exports.CompoundChild = CompoundChild;
@@ -32,22 +32,22 @@ const CompoundItem = ({ item, sectionId, onResize, interactionCtrl, onVisibility
32
32
  (0, react_1.useEffect)(() => {
33
33
  onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(isInteractive);
34
34
  }, [isInteractive, onVisibilityChange]);
35
- return ((0, jsx_runtime_1.jsx)(LinkWrapper_1.LinkWrapper, { url: (_c = item.link) === null || _c === void 0 ? void 0 : _c.url, target: (_d = item.link) === null || _d === void 0 ? void 0 : _d.target, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `compound-${item.id}`, ref: setRef, style: Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), { transition: (_e = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _e !== void 0 ? _e : 'none' }), children: items && items.map(item => ((0, jsx_runtime_1.jsx)(CompoundChild_1.CompoundChild, { item: item, sectionId: sectionId, isParentVisible: isInteractive }, item.id))) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
36
- .compound-${item.id} {
37
- overflow: ${item.commonParams.overflow};
38
- position: absolute;
39
- width: 100%;
40
- height: 100%;
41
- box-sizing: border-box;
42
- }
35
+ return ((0, jsx_runtime_1.jsx)(LinkWrapper_1.LinkWrapper, { url: (_c = item.link) === null || _c === void 0 ? void 0 : _c.url, target: (_d = item.link) === null || _d === void 0 ? void 0 : _d.target, children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `compound-${item.id}`, ref: setRef, style: Object.assign(Object.assign(Object.assign({}, (opacity !== undefined ? { opacity } : {})), (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), { transition: (_e = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _e !== void 0 ? _e : 'none' }), children: items && items.map(item => ((0, jsx_runtime_1.jsx)(CompoundChild_1.CompoundChild, { item: item, sectionId: sectionId, isParentVisible: isInteractive }, item.id))) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
36
+ .compound-${item.id} {
37
+ overflow: ${item.commonParams.overflow};
38
+ position: absolute;
39
+ width: 100%;
40
+ height: 100%;
41
+ box-sizing: border-box;
42
+ }
43
43
  ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area, layoutParams]) => {
44
- return (`
45
- .compound-${item.id} {
46
- opacity: ${layoutParams.opacity};
47
- transform: rotate(${area.angle}deg);
48
- }
44
+ return (`
45
+ .compound-${item.id} {
46
+ opacity: ${layoutParams.opacity};
47
+ transform: rotate(${area.angle}deg);
48
+ }
49
49
  `);
50
- })}
50
+ })}
51
51
  ` })] }) }));
52
52
  };
53
53
  exports.CompoundItem = CompoundItem;
@@ -25,15 +25,15 @@ const CustomItem = ({ item, onResize, sectionId, interactionCtrl }) => {
25
25
  if (!component)
26
26
  return null;
27
27
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: `custom-component-${item.id}`, ref: setRef, style: Object.assign(Object.assign({}, (angle !== undefined ? { transform: `rotate(${angle}deg)` } : {})), { transition: (_c = stateParams === null || stateParams === void 0 ? void 0 : stateParams.transition) !== null && _c !== void 0 ? _c : 'none' }), children: component({}) }), (0, jsx_runtime_1.jsx)(style_1.default, { id: item.id, children: `${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area]) => {
28
- return (`
29
- .custom-component-${item.id} {
30
- transform: rotate(${area.angle}deg);
31
- height: 100%;
32
- width: 100%;
33
- position: absolute;
34
- left: 0;
35
- top: 0;
36
- }
28
+ return (`
29
+ .custom-component-${item.id} {
30
+ transform: rotate(${area.angle}deg);
31
+ height: 100%;
32
+ width: 100%;
33
+ position: absolute;
34
+ left: 0;
35
+ top: 0;
36
+ }
37
37
  `);
38
38
  })}` })] }));
39
39
  };
@@ -135,31 +135,31 @@ const VimeoEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibili
135
135
  width: '100%',
136
136
  top: '0',
137
137
  left: '0'
138
- } })), (0, jsx_runtime_1.jsx)("iframe", { ref: setIframeRef, className: "embed-video", src: validUrl || '', allow: "autoplay; fullscreen; picture-in-picture;", allowFullScreen: true, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
139
- .embed-video-wrapper-${item.id} {
140
- position: absolute;
141
- width: 100%;
142
- height: 100%;
143
- }
144
- .embed-video {
145
- width: 100%;
146
- height: 100%;
147
- z-index: 1;
148
- border: none;
149
- overflow: hidden;
150
- }
138
+ } })), (0, jsx_runtime_1.jsx)("iframe", { ref: setIframeRef, className: "embed-video", src: validUrl || '', allow: "autoplay; fullscreen; picture-in-picture;", allowFullScreen: true, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
139
+ .embed-video-wrapper-${item.id} {
140
+ position: absolute;
141
+ width: 100%;
142
+ height: 100%;
143
+ }
144
+ .embed-video {
145
+ width: 100%;
146
+ height: 100%;
147
+ z-index: 1;
148
+ border: none;
149
+ overflow: hidden;
150
+ }
151
151
  ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area, layoutParams]) => {
152
- return (`
153
- .embed-video-wrapper-${item.id} {
154
- opacity: ${layoutParams.opacity};
155
- transform: rotate(${area.angle}deg);
156
- filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
157
- }
158
- .embed-video-wrapper-${item.id} .embed-video {
159
- border-radius: ${layoutParams.radius * 100}vw;
160
- }
152
+ return (`
153
+ .embed-video-wrapper-${item.id} {
154
+ opacity: ${layoutParams.opacity};
155
+ transform: rotate(${area.angle}deg);
156
+ filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
157
+ }
158
+ .embed-video-wrapper-${item.id} .embed-video {
159
+ border-radius: ${layoutParams.radius * 100}vw;
160
+ }
161
161
  `);
162
- })}
162
+ })}
163
163
  ` })] }));
164
164
  };
165
165
  exports.VimeoEmbedItem = VimeoEmbedItem;
@@ -128,34 +128,34 @@ const YoutubeEmbedItem = ({ item, sectionId, onResize, interactionCtrl, onVisibi
128
128
  top: '0',
129
129
  left: '0',
130
130
  zIndex: 1
131
- }, alt: "Cover img" })), (0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, ref: setDiv, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
132
- .embed-youtube-video-wrapper-${item.id},
133
- .embed-${item.id} {
134
- position: absolute;
135
- width: 100%;
136
- height: 100%;
137
- }
138
- .embed-${item.id} {
139
- overflow: hidden;
140
- }
141
- .embed-youtube-video-wrapper-${item.id} iframe {
142
- width: 100%;
143
- height: 100%;
144
- z-index: 1;
145
- border: none;
146
- }
131
+ }, alt: "Cover img" })), (0, jsx_runtime_1.jsx)("div", { className: `embed-${item.id}`, ref: setDiv, style: Object.assign(Object.assign({}, (radius !== undefined ? { borderRadius: `${radius * 100}vw` } : {})), { transition: (_j = frameStateParams === null || frameStateParams === void 0 ? void 0 : frameStateParams.transition) !== null && _j !== void 0 ? _j : 'none' }) })] }), (0, jsx_runtime_1.jsx)(style_1.default, { id: id, children: `
132
+ .embed-youtube-video-wrapper-${item.id},
133
+ .embed-${item.id} {
134
+ position: absolute;
135
+ width: 100%;
136
+ height: 100%;
137
+ }
138
+ .embed-${item.id} {
139
+ overflow: hidden;
140
+ }
141
+ .embed-youtube-video-wrapper-${item.id} iframe {
142
+ width: 100%;
143
+ height: 100%;
144
+ z-index: 1;
145
+ border: none;
146
+ }
147
147
  ${(0, sdk_1.getLayoutStyles)(layouts, layoutValues, ([area, layoutParams]) => {
148
- return (`
149
- .embed-youtube-video-wrapper-${item.id} {
150
- opacity: ${layoutParams.opacity};
151
- transform: rotate(${area.angle}deg);
152
- filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
153
- }
154
- .embed-youtube-video-wrapper-${item.id} .embed-${item.id} {
155
- border-radius: ${layoutParams.radius * 100}vw;
156
- }
148
+ return (`
149
+ .embed-youtube-video-wrapper-${item.id} {
150
+ opacity: ${layoutParams.opacity};
151
+ transform: rotate(${area.angle}deg);
152
+ filter: ${layoutParams.blur !== 0 ? `blur(${layoutParams.blur * 100}vw)` : 'unset'};
153
+ }
154
+ .embed-youtube-video-wrapper-${item.id} .embed-${item.id} {
155
+ border-radius: ${layoutParams.radius * 100}vw;
156
+ }
157
157
  `);
158
- })}
158
+ })}
159
159
  ` })] }));
160
160
  };
161
161
  exports.YoutubeEmbedItem = YoutubeEmbedItem;