@cntrl-site/sdk-nextjs 1.8.11 → 1.8.13

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 (124) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +4 -4
  3. package/TODO.md +1 -1
  4. package/cntrl-site-sdk-nextjs-1.8.12.tgz +0 -0
  5. package/cntrl-site-sdk-nextjs-1.8.13.tgz +0 -0
  6. package/eslint.config.mjs +35 -35
  7. package/jest.config.js +6 -6
  8. package/lib/common/useItemFXData.js +7 -7
  9. package/lib/common/useRegisterResize.js +2 -2
  10. package/lib/components/Article.js +5 -5
  11. package/lib/components/LayoutStyle.js +4 -4
  12. package/lib/components/Section/Section.js +43 -43
  13. package/lib/components/items/CodeEmbedItem/CodeEmbedItem.js +35 -35
  14. package/lib/components/items/ComponentItem/ComponentItem.js +16 -14
  15. package/lib/components/items/ComponentItem/useComponentItem.js +8 -1
  16. package/lib/components/items/CompoundItem/CompoundChild.js +20 -20
  17. package/lib/components/items/CompoundItem/CompoundItem.js +14 -14
  18. package/lib/components/items/CustomItem/CustomItem.js +9 -9
  19. package/lib/components/items/EmbedVideoItem/VimeoEmbed.js +23 -23
  20. package/lib/components/items/EmbedVideoItem/YoutubeEmbed.js +26 -26
  21. package/lib/components/items/FileItem/ImageItem.js +38 -38
  22. package/lib/components/items/FileItem/VideoItem.js +45 -45
  23. package/lib/components/items/GroupItem/GroupItem.js +13 -13
  24. package/lib/components/items/Item.js +30 -30
  25. package/lib/components/items/RectangleItem/RectangleItem.js +20 -20
  26. package/lib/components/items/RichTextItem/RichTextItem.js +21 -21
  27. package/lib/utils/RichTextConverter/RichTextConverter.js +21 -21
  28. package/package.json +57 -58
  29. package/src/common/useCurrentLayout.ts +52 -52
  30. package/src/common/useExemplary.ts +9 -9
  31. package/src/common/useItemFXData.ts +47 -47
  32. package/src/common/useKeyframeValue.ts +85 -85
  33. package/src/common/useRegisterResize.ts +16 -17
  34. package/src/components/Article.tsx +66 -66
  35. package/src/components/ArticleWrapper.tsx +21 -21
  36. package/src/components/Head.tsx +56 -56
  37. package/src/components/LayoutStyle.tsx +21 -21
  38. package/src/components/Page.tsx +33 -33
  39. package/src/components/ScrollPlaybackVideo.tsx +56 -56
  40. package/src/components/Section/Section.tsx +164 -164
  41. package/src/components/Section/useSectionColor.ts +19 -19
  42. package/src/components/Section/useSectionHeightMap.ts +19 -19
  43. package/src/components/items/CodeEmbedItem/CodeEmbedItem.tsx +137 -137
  44. package/src/components/items/CodeEmbedItem/useCodeEmbedItem.ts +36 -36
  45. package/src/components/items/ComponentItem/ComponentItem.tsx +65 -62
  46. package/src/components/items/ComponentItem/useComponentItem.ts +35 -23
  47. package/src/components/items/CompoundItem/CompoundChild.tsx +150 -150
  48. package/src/components/items/CompoundItem/CompoundItem.tsx +70 -70
  49. package/src/components/items/CompoundItem/useCompoundItem.ts +21 -21
  50. package/src/components/items/CustomItem/CustomItem.tsx +48 -48
  51. package/src/components/items/EmbedVideoItem/VimeoEmbed.tsx +202 -202
  52. package/src/components/items/EmbedVideoItem/YoutubeEmbed.tsx +187 -187
  53. package/src/components/items/EmbedVideoItem/useEmbedVideoItem.ts +46 -46
  54. package/src/components/items/FileItem/ImageItem.tsx +156 -156
  55. package/src/components/items/FileItem/VideoItem.tsx +185 -185
  56. package/src/components/items/FileItem/useFileItem.ts +73 -73
  57. package/src/components/items/GroupItem/GroupItem.tsx +79 -79
  58. package/src/components/items/GroupItem/useGroupItem.ts +34 -34
  59. package/src/components/items/Item.tsx +251 -251
  60. package/src/components/items/LinkWrapper.tsx +39 -39
  61. package/src/components/items/RectangleItem/RectangleItem.tsx +95 -95
  62. package/src/components/items/RectangleItem/useRectangleItem.ts +82 -82
  63. package/src/components/items/RichTextItem/RichTextItem.tsx +105 -105
  64. package/src/components/items/RichTextItem/useRichTextItem.ts +12 -12
  65. package/src/components/items/RichTextWrapper.tsx +15 -15
  66. package/src/components/items/itemsMap.ts +28 -28
  67. package/src/components/items/useDraggable.ts +252 -252
  68. package/src/components/items/useItemAngle.ts +13 -13
  69. package/src/components/items/useItemArea.ts +35 -35
  70. package/src/components/items/useItemPointerEvents.ts +23 -23
  71. package/src/components/items/useItemScale.ts +17 -17
  72. package/src/components/items/useItemTriggers.ts +15 -15
  73. package/src/components/items/useRichTextItemValues.ts +65 -65
  74. package/src/components/items/useSizing.ts +25 -25
  75. package/src/components/items/useStickyItemTop.ts +21 -21
  76. package/src/components/useLayoutContext.ts +7 -7
  77. package/src/index.ts +24 -24
  78. package/src/interactions/CSSPropertyNameMap.ts +38 -38
  79. package/src/interactions/InteractionsRegistry.ts +283 -283
  80. package/src/interactions/ItemInteractionCtrl.ts +77 -77
  81. package/src/interactions/getTransition.ts +27 -27
  82. package/src/interactions/types.ts +36 -36
  83. package/src/interactions/useItemInteractionCtrl.ts +18 -18
  84. package/src/provider/ArticleRectContext.ts +4 -4
  85. package/src/provider/CntrlContext.ts +5 -5
  86. package/src/provider/CntrlProvider.tsx +11 -11
  87. package/src/provider/CntrlSdkContext.ts +83 -83
  88. package/src/provider/CustomItemRegistry.ts +14 -14
  89. package/src/provider/CustomItemTypes.ts +3 -3
  90. package/src/provider/CustomSectionRegistry.ts +25 -25
  91. package/src/provider/InteractionsContext.old.tsx +66 -66
  92. package/src/provider/InteractionsContext.test.tsx +97 -97
  93. package/src/provider/InteractionsContext.tsx +28 -28
  94. package/src/provider/Keyframes.ts +11 -11
  95. package/src/provider/KeyframesContext.ts +5 -5
  96. package/src/provider/LayoutContext.ts +3 -3
  97. package/src/provider/defaultContext.ts +8 -8
  98. package/src/provider/useCntrlContext.ts +8 -8
  99. package/src/styled-jsx.d.ts +1 -1
  100. package/src/utils/Animator/Animator.ts +371 -371
  101. package/src/utils/ArticleRectManager/ArticleRectObserver.ts +93 -93
  102. package/src/utils/ArticleRectManager/useArticleRectObserver.ts +17 -17
  103. package/src/utils/ArticleRectManager/useSectionRegistry.ts +11 -11
  104. package/src/utils/EventEmitter.ts +41 -41
  105. package/src/utils/RichTextConverter/RichTextConverter.tsx +326 -326
  106. package/src/utils/ScaleAnchorMap.ts +13 -13
  107. package/src/utils/StickyManager/StickyManager.ts +23 -23
  108. package/src/utils/Youtube/YouTubeIframeApiLoader.ts +58 -58
  109. package/src/utils/Youtube/YoutubeIframeApi.ts +101 -101
  110. package/src/utils/Youtube/useYouTubeIframeApi.ts +12 -12
  111. package/src/utils/binSearchInsertAt.ts +33 -33
  112. package/src/utils/castObject.ts +10 -10
  113. package/src/utils/effects/useImageFx.ts +113 -113
  114. package/src/utils/effects/useVideoFx.ts +116 -116
  115. package/src/utils/getAnchoredItemTop.ts +12 -12
  116. package/src/utils/getCompoundBoundaryStyles.ts +60 -60
  117. package/src/utils/getFontFamilyValue.ts +3 -3
  118. package/src/utils/getInvertedRanges.ts +43 -43
  119. package/src/utils/getItemTopStyle.ts +14 -14
  120. package/src/utils/getStyleFromItemStateAndParams.ts +8 -8
  121. package/src/utils/getValidYoutubeUrl.ts +29 -29
  122. package/src/utils/isItemType.ts +5 -5
  123. package/src/utils/rangeMap.ts +13 -13
  124. package/src/utils/useElementRect.ts +23 -23
@@ -1,23 +1,23 @@
1
- import { useCallback, useState } from 'react';
2
-
3
- export function useItemPointerEvents(
4
- pointerEvents: 'never' | 'when_visible' | 'always',
5
- isParentVisible: boolean
6
- ) {
7
- const getAllowPointerEvents = () => {
8
- switch (pointerEvents) {
9
- case 'never':
10
- return false;
11
- case 'when_visible':
12
- return isParentVisible;
13
- case 'always':
14
- return true;
15
- }
16
- };
17
- const [allowPointerEvents, setAllowPointerEvents] = useState<boolean>(getAllowPointerEvents());
18
- const handleVisibilityChange = useCallback((isVisible: boolean) => {
19
- if (!isParentVisible || pointerEvents !== 'when_visible') return;
20
- setAllowPointerEvents(isVisible);
21
- }, [isParentVisible, pointerEvents]);
22
- return { allowPointerEvents, handleVisibilityChange };
23
- }
1
+ import { useCallback, useState } from 'react';
2
+
3
+ export function useItemPointerEvents(
4
+ pointerEvents: 'never' | 'when_visible' | 'always',
5
+ isParentVisible: boolean
6
+ ) {
7
+ const getAllowPointerEvents = () => {
8
+ switch (pointerEvents) {
9
+ case 'never':
10
+ return false;
11
+ case 'when_visible':
12
+ return isParentVisible;
13
+ case 'always':
14
+ return true;
15
+ }
16
+ };
17
+ const [allowPointerEvents, setAllowPointerEvents] = useState<boolean>(getAllowPointerEvents());
18
+ const handleVisibilityChange = useCallback((isVisible: boolean) => {
19
+ if (!isParentVisible || pointerEvents !== 'when_visible') return;
20
+ setAllowPointerEvents(isVisible);
21
+ }, [isParentVisible, pointerEvents]);
22
+ return { allowPointerEvents, handleVisibilityChange };
23
+ }
@@ -1,17 +1,17 @@
1
- import { ItemAny, KeyframeType } from '@cntrl-site/sdk';
2
- import { useKeyframeValue } from '../../common/useKeyframeValue';
3
- import { useLayoutContext } from '../useLayoutContext';
4
-
5
- export const useItemScale = (item: ItemAny, sectionId: string) => {
6
- const layoutId = useLayoutContext();
7
- const scale = useKeyframeValue(
8
- item,
9
- KeyframeType.Scale,
10
- (item, layoutId) => (layoutId ? item.area[layoutId].scale : undefined),
11
- (animator, scroll, value) => value !== undefined ? animator.getScale({ scale: value }, scroll).scale : undefined,
12
- sectionId,
13
- [layoutId]
14
- );
15
-
16
- return scale;
17
- };
1
+ import { ItemAny, KeyframeType } from '@cntrl-site/sdk';
2
+ import { useKeyframeValue } from '../../common/useKeyframeValue';
3
+ import { useLayoutContext } from '../useLayoutContext';
4
+
5
+ export const useItemScale = (item: ItemAny, sectionId: string) => {
6
+ const layoutId = useLayoutContext();
7
+ const scale = useKeyframeValue(
8
+ item,
9
+ KeyframeType.Scale,
10
+ (item, layoutId) => (layoutId ? item.area[layoutId].scale : undefined),
11
+ (animator, scroll, value) => value !== undefined ? animator.getScale({ scale: value }, scroll).scale : undefined,
12
+ sectionId,
13
+ [layoutId]
14
+ );
15
+
16
+ return scale;
17
+ };
@@ -1,15 +1,15 @@
1
- import { ItemInteractionCtrl } from '../../interactions/types';
2
-
3
- export function useItemTriggers(interactionCtrl: ItemInteractionCtrl | undefined) {
4
- return {
5
- onClick: () => {
6
- interactionCtrl?.sendTrigger('click');
7
- },
8
- onMouseEnter: () => {
9
- interactionCtrl?.sendTrigger('hover-in');
10
- },
11
- onMouseLeave: () => {
12
- interactionCtrl?.sendTrigger('hover-out');
13
- }
14
- };
15
- }
1
+ import { ItemInteractionCtrl } from '../../interactions/types';
2
+
3
+ export function useItemTriggers(interactionCtrl: ItemInteractionCtrl | undefined) {
4
+ return {
5
+ onClick: () => {
6
+ interactionCtrl?.sendTrigger('click');
7
+ },
8
+ onMouseEnter: () => {
9
+ interactionCtrl?.sendTrigger('hover-in');
10
+ },
11
+ onMouseLeave: () => {
12
+ interactionCtrl?.sendTrigger('hover-out');
13
+ }
14
+ };
15
+ }
@@ -1,65 +1,65 @@
1
- import { useKeyframeValue } from '../../common/useKeyframeValue';
2
- import { KeyframeType, RichTextItem } from '@cntrl-site/sdk';
3
- import { useLayoutContext } from '../useLayoutContext';
4
-
5
- const DEFAULT_COLOR = 'rgba(0, 0, 0, 1)';
6
-
7
- export const useRichTextItemValues = (item: RichTextItem, sectionId: string) => {
8
- const layoutId = useLayoutContext();
9
- const blur = useKeyframeValue(
10
- item,
11
- KeyframeType.Blur,
12
- (item, layoutId) => {
13
- if (!layoutId) return;
14
- const layoutParams = item.layoutParams[layoutId];
15
- return 'blur' in layoutParams ? layoutParams.blur : 0;
16
- },
17
- (animator, scroll, value) => value !== undefined ? animator.getBlur({ blur: value }, scroll).blur : undefined,
18
- sectionId,
19
- [layoutId]
20
- );
21
-
22
- const letterSpacing = useKeyframeValue(
23
- item,
24
- KeyframeType.LetterSpacing,
25
- (item, layoutId) => {
26
- if (!layoutId) return;
27
- const layoutParams = item.layoutParams[layoutId];
28
- return 'letterSpacing' in layoutParams ? layoutParams.letterSpacing : 0;
29
- },
30
- (animator, scroll, value) => value !== undefined ? animator.getLetterSpacing({ letterSpacing: value }, scroll).letterSpacing : undefined,
31
- sectionId,
32
- [layoutId]
33
- );
34
-
35
- const wordSpacing = useKeyframeValue(
36
- item,
37
- KeyframeType.WordSpacing,
38
- (item, layoutId) => {
39
- if (!layoutId) return;
40
- const layoutParams = item.layoutParams[layoutId];
41
- return 'wordSpacing' in layoutParams ? layoutParams.wordSpacing : 0;
42
- },
43
- (animator, scroll, value) => value !== undefined ? animator.getWordSpacing({ wordSpacing: value }, scroll).wordSpacing : undefined,
44
- sectionId,
45
- [layoutId]
46
- );
47
-
48
- const color = useKeyframeValue(
49
- item,
50
- KeyframeType.TextColor,
51
- (item, layoutId) => {
52
- if (!layoutId) return;
53
- const layoutParams = item.layoutParams[layoutId];
54
- return 'color' in layoutParams ? layoutParams.color : DEFAULT_COLOR;
55
- },
56
- (animator, scroll, value) => value ? animator.getTextColor({ color: value }, scroll).color : undefined,
57
- sectionId,
58
- [layoutId]
59
- );
60
-
61
- const fontSize = layoutId ? item.layoutParams[layoutId].fontSize : undefined;
62
- const lineHeight = layoutId ? item.layoutParams[layoutId].lineHeight : undefined;
63
-
64
- return { blur, letterSpacing, wordSpacing, color, fontSize, lineHeight };
65
- };
1
+ import { useKeyframeValue } from '../../common/useKeyframeValue';
2
+ import { KeyframeType, RichTextItem } from '@cntrl-site/sdk';
3
+ import { useLayoutContext } from '../useLayoutContext';
4
+
5
+ const DEFAULT_COLOR = 'rgba(0, 0, 0, 1)';
6
+
7
+ export const useRichTextItemValues = (item: RichTextItem, sectionId: string) => {
8
+ const layoutId = useLayoutContext();
9
+ const blur = useKeyframeValue(
10
+ item,
11
+ KeyframeType.Blur,
12
+ (item, layoutId) => {
13
+ if (!layoutId) return;
14
+ const layoutParams = item.layoutParams[layoutId];
15
+ return 'blur' in layoutParams ? layoutParams.blur : 0;
16
+ },
17
+ (animator, scroll, value) => value !== undefined ? animator.getBlur({ blur: value }, scroll).blur : undefined,
18
+ sectionId,
19
+ [layoutId]
20
+ );
21
+
22
+ const letterSpacing = useKeyframeValue(
23
+ item,
24
+ KeyframeType.LetterSpacing,
25
+ (item, layoutId) => {
26
+ if (!layoutId) return;
27
+ const layoutParams = item.layoutParams[layoutId];
28
+ return 'letterSpacing' in layoutParams ? layoutParams.letterSpacing : 0;
29
+ },
30
+ (animator, scroll, value) => value !== undefined ? animator.getLetterSpacing({ letterSpacing: value }, scroll).letterSpacing : undefined,
31
+ sectionId,
32
+ [layoutId]
33
+ );
34
+
35
+ const wordSpacing = useKeyframeValue(
36
+ item,
37
+ KeyframeType.WordSpacing,
38
+ (item, layoutId) => {
39
+ if (!layoutId) return;
40
+ const layoutParams = item.layoutParams[layoutId];
41
+ return 'wordSpacing' in layoutParams ? layoutParams.wordSpacing : 0;
42
+ },
43
+ (animator, scroll, value) => value !== undefined ? animator.getWordSpacing({ wordSpacing: value }, scroll).wordSpacing : undefined,
44
+ sectionId,
45
+ [layoutId]
46
+ );
47
+
48
+ const color = useKeyframeValue(
49
+ item,
50
+ KeyframeType.TextColor,
51
+ (item, layoutId) => {
52
+ if (!layoutId) return;
53
+ const layoutParams = item.layoutParams[layoutId];
54
+ return 'color' in layoutParams ? layoutParams.color : DEFAULT_COLOR;
55
+ },
56
+ (animator, scroll, value) => value ? animator.getTextColor({ color: value }, scroll).color : undefined,
57
+ sectionId,
58
+ [layoutId]
59
+ );
60
+
61
+ const fontSize = layoutId ? item.layoutParams[layoutId].fontSize : undefined;
62
+ const lineHeight = layoutId ? item.layoutParams[layoutId].lineHeight : undefined;
63
+
64
+ return { blur, letterSpacing, wordSpacing, color, fontSize, lineHeight };
65
+ };
@@ -1,25 +1,25 @@
1
- import { isItemType } from '../../utils/isItemType';
2
- import { ArticleItemType, ItemAny } from '@cntrl-site/sdk';
3
- import { useLayoutContext } from '../useLayoutContext';
4
-
5
- export function useSizing(item: ItemAny) {
6
- const layout = useLayoutContext();
7
- const sizing = layout && isItemType(item, ArticleItemType.RichText)
8
- ? item.layoutParams[layout].sizing
9
- : undefined;
10
- const sizingAxis = parseSizing(sizing);
11
- return sizingAxis;
12
- }
13
-
14
- export function parseSizing(sizing: string = 'manual'): Axis {
15
- const axisSizing = sizing.split(' ');
16
- return {
17
- y: axisSizing[0],
18
- x: axisSizing[1] ? axisSizing[1] : axisSizing[0]
19
- } as Axis;
20
- }
21
-
22
- interface Axis {
23
- x: 'manual' | 'auto';
24
- y: 'manual' | 'auto';
25
- }
1
+ import { isItemType } from '../../utils/isItemType';
2
+ import { ArticleItemType, ItemAny } from '@cntrl-site/sdk';
3
+ import { useLayoutContext } from '../useLayoutContext';
4
+
5
+ export function useSizing(item: ItemAny) {
6
+ const layout = useLayoutContext();
7
+ const sizing = layout && isItemType(item, ArticleItemType.RichText)
8
+ ? item.layoutParams[layout].sizing
9
+ : undefined;
10
+ const sizingAxis = parseSizing(sizing);
11
+ return sizingAxis;
12
+ }
13
+
14
+ export function parseSizing(sizing: string = 'manual'): Axis {
15
+ const axisSizing = sizing.split(' ');
16
+ return {
17
+ y: axisSizing[0],
18
+ x: axisSizing[1] ? axisSizing[1] : axisSizing[0]
19
+ } as Axis;
20
+ }
21
+
22
+ interface Axis {
23
+ x: 'manual' | 'auto';
24
+ y: 'manual' | 'auto';
25
+ }
@@ -1,21 +1,21 @@
1
- import { ItemAny, KeyframeType } from '@cntrl-site/sdk';
2
- import { useKeyframeValue } from '../../common/useKeyframeValue';
3
- import { useLayoutContext } from '../useLayoutContext';
4
-
5
- export function useStickyItemTop(item: ItemAny, sectionId: string, stateTop?: number) {
6
- const layoutId = useLayoutContext();
7
- const data = useKeyframeValue<{ top: number; left: number } | undefined>(
8
- item,
9
- KeyframeType.Position,
10
- (item, layoutId) => {
11
- if (!layoutId) return;
12
- return item.area[layoutId];
13
- },
14
- (animator, scroll, value) => value ? animator.getPositions(value, scroll) : undefined,
15
- sectionId,
16
- [layoutId]
17
- );
18
- const top = data ? data.top : layoutId ? item.area[layoutId].top : 0;
19
- const sticky = layoutId ? item.sticky[layoutId] : undefined;
20
- return sticky ? (stateTop ?? top) - sticky.from : 0;
21
- }
1
+ import { ItemAny, KeyframeType } from '@cntrl-site/sdk';
2
+ import { useKeyframeValue } from '../../common/useKeyframeValue';
3
+ import { useLayoutContext } from '../useLayoutContext';
4
+
5
+ export function useStickyItemTop(item: ItemAny, sectionId: string, stateTop?: number) {
6
+ const layoutId = useLayoutContext();
7
+ const data = useKeyframeValue<{ top: number; left: number } | undefined>(
8
+ item,
9
+ KeyframeType.Position,
10
+ (item, layoutId) => {
11
+ if (!layoutId) return;
12
+ return item.area[layoutId];
13
+ },
14
+ (animator, scroll, value) => value ? animator.getPositions(value, scroll) : undefined,
15
+ sectionId,
16
+ [layoutId]
17
+ );
18
+ const top = data ? data.top : layoutId ? item.area[layoutId].top : 0;
19
+ const sticky = layoutId ? item.sticky[layoutId] : undefined;
20
+ return sticky ? (stateTop ?? top) - sticky.from : 0;
21
+ }
@@ -1,7 +1,7 @@
1
- import { useContext } from 'react';
2
- import { LayoutContext } from '../provider/LayoutContext';
3
-
4
- export function useLayoutContext() {
5
- const layoutId = useContext(LayoutContext);
6
- return layoutId;
7
- }
1
+ import { useContext } from 'react';
2
+ import { LayoutContext } from '../provider/LayoutContext';
3
+
4
+ export function useLayoutContext() {
5
+ const layoutId = useContext(LayoutContext);
6
+ return layoutId;
7
+ }
package/src/index.ts CHANGED
@@ -1,24 +1,24 @@
1
- import { cntrlSdkContext as sdk } from './provider/defaultContext';
2
-
3
- export * from '@cntrl-site/sdk';
4
- export { RichTextConverter } from './utils/RichTextConverter/RichTextConverter';
5
- export { Page } from './components/Page';
6
- export type { PageProps } from './components/Page';
7
- export { CNTRLHead as Head } from './components/Head';
8
- export { Article } from './components/Article';
9
- export { Section } from './components/Section/Section';
10
- export { Item } from './components/items/Item';
11
- export { ImageItem } from './components/items/FileItem/ImageItem';
12
- export { RectangleItem } from './components/items/RectangleItem/RectangleItem';
13
- export { RichTextItem } from './components/items/RichTextItem/RichTextItem';
14
- export { VideoItem } from './components/items/FileItem/VideoItem';
15
- export { LayoutStyle } from './components/LayoutStyle';
16
- export { VimeoEmbedItem } from './components/items/EmbedVideoItem/VimeoEmbed';
17
- export { YoutubeEmbedItem } from './components/items/EmbedVideoItem/YoutubeEmbed';
18
-
19
- export { CntrlProvider } from './provider/CntrlProvider';
20
- export type { CustomItemComponent } from './provider/CustomItemTypes';
21
- export { useCntrlContext } from './provider/useCntrlContext';
22
- export const customItems = sdk.customItems;
23
- export const customSections = sdk.customSections;
24
- export const cntrlSdkContext = sdk;
1
+ import { cntrlSdkContext as sdk } from './provider/defaultContext';
2
+
3
+ export * from '@cntrl-site/sdk';
4
+ export { RichTextConverter } from './utils/RichTextConverter/RichTextConverter';
5
+ export { Page } from './components/Page';
6
+ export type { PageProps } from './components/Page';
7
+ export { CNTRLHead as Head } from './components/Head';
8
+ export { Article } from './components/Article';
9
+ export { Section } from './components/Section/Section';
10
+ export { Item } from './components/items/Item';
11
+ export { ImageItem } from './components/items/FileItem/ImageItem';
12
+ export { RectangleItem } from './components/items/RectangleItem/RectangleItem';
13
+ export { RichTextItem } from './components/items/RichTextItem/RichTextItem';
14
+ export { VideoItem } from './components/items/FileItem/VideoItem';
15
+ export { LayoutStyle } from './components/LayoutStyle';
16
+ export { VimeoEmbedItem } from './components/items/EmbedVideoItem/VimeoEmbed';
17
+ export { YoutubeEmbedItem } from './components/items/EmbedVideoItem/YoutubeEmbed';
18
+
19
+ export { CntrlProvider } from './provider/CntrlProvider';
20
+ export type { CustomItemComponent } from './provider/CustomItemTypes';
21
+ export { useCntrlContext } from './provider/useCntrlContext';
22
+ export const customItems = sdk.customItems;
23
+ export const customSections = sdk.customSections;
24
+ export const cntrlSdkContext = sdk;
@@ -1,38 +1,38 @@
1
- import { ArticleItemType, ItemState } from '@cntrl-site/sdk';
2
-
3
- export const CSSPropertyNameMap: Record<keyof ItemState<ArticleItemType>, string> = {
4
- 'width': 'width',
5
- 'height': 'height',
6
- 'top': 'top',
7
- 'left': 'left',
8
- 'scale': 'transform',
9
- 'angle': 'transform',
10
- 'opacity': 'opacity',
11
- 'radius': 'border-radius',
12
- 'strokeWidth': 'border-width',
13
- 'strokeColor': 'border-color',
14
- 'fillColor': 'background-color',
15
- 'blur': 'filter',
16
- 'backdropBlur': 'backdrop-filter',
17
- 'letterSpacing': 'letter-spacing',
18
- 'wordSpacing': 'word-spacing',
19
- 'color': 'color'
20
- };
21
-
22
- const PropertyNameCSSMap: Record<string, string[]> = {
23
- 'transform': ['angle', 'scale'],
24
- 'border-radius': ['radius'],
25
- 'border-width': ['strokeWidth'],
26
- 'border-color': ['strokeColor'],
27
- 'background-color': ['fillColor'],
28
- 'filter': ['blur'],
29
- 'backdrop-filter': ['backdrop-blur'],
30
- 'letter-spacing': ['letterSpacing'],
31
- 'word-spacing': ['wordSpacing'],
32
- };
33
-
34
-
35
- export function getStyleKeysFromCSSProperty(cssProp: string): string[] {
36
- const key = PropertyNameCSSMap[cssProp] ?? [cssProp];
37
- return key;
38
- }
1
+ import { ArticleItemType, ItemState } from '@cntrl-site/sdk';
2
+
3
+ export const CSSPropertyNameMap: Record<keyof ItemState<ArticleItemType>, string> = {
4
+ 'width': 'width',
5
+ 'height': 'height',
6
+ 'top': 'top',
7
+ 'left': 'left',
8
+ 'scale': 'transform',
9
+ 'angle': 'transform',
10
+ 'opacity': 'opacity',
11
+ 'radius': 'border-radius',
12
+ 'strokeWidth': 'border-width',
13
+ 'strokeColor': 'border-color',
14
+ 'fillColor': 'background-color',
15
+ 'blur': 'filter',
16
+ 'backdropBlur': 'backdrop-filter',
17
+ 'letterSpacing': 'letter-spacing',
18
+ 'wordSpacing': 'word-spacing',
19
+ 'color': 'color'
20
+ };
21
+
22
+ const PropertyNameCSSMap: Record<string, string[]> = {
23
+ 'transform': ['angle', 'scale'],
24
+ 'border-radius': ['radius'],
25
+ 'border-width': ['strokeWidth'],
26
+ 'border-color': ['strokeColor'],
27
+ 'background-color': ['fillColor'],
28
+ 'filter': ['blur'],
29
+ 'backdrop-filter': ['backdrop-blur'],
30
+ 'letter-spacing': ['letterSpacing'],
31
+ 'word-spacing': ['wordSpacing'],
32
+ };
33
+
34
+
35
+ export function getStyleKeysFromCSSProperty(cssProp: string): string[] {
36
+ const key = PropertyNameCSSMap[cssProp] ?? [cssProp];
37
+ return key;
38
+ }