@cntrl-site/sdk-nextjs 1.8.14 → 1.8.16

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 (127) 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 +11 -8
  8. package/lib/components/LayoutStyle.js +4 -4
  9. package/lib/components/Section/Section.js +43 -43
  10. package/lib/components/items/CodeEmbedItem/CodeEmbedItem.js +35 -35
  11. package/lib/components/items/ComponentItem/ComponentItem.js +12 -12
  12. package/lib/components/items/CompoundItem/CompoundChild.js +20 -20
  13. package/lib/components/items/CompoundItem/CompoundItem.js +14 -14
  14. package/lib/components/items/CustomItem/CustomItem.js +9 -9
  15. package/lib/components/items/EmbedVideoItem/VimeoEmbed.js +23 -23
  16. package/lib/components/items/EmbedVideoItem/YoutubeEmbed.js +26 -26
  17. package/lib/components/items/FileItem/ImageItem.js +38 -38
  18. package/lib/components/items/FileItem/VideoItem.js +45 -45
  19. package/lib/components/items/GroupItem/GroupItem.js +13 -13
  20. package/lib/components/items/Item.js +30 -30
  21. package/lib/components/items/RectangleItem/RectangleItem.js +20 -20
  22. package/lib/components/items/RichTextItem/RichTextItem.js +21 -21
  23. package/lib/provider/WebGLContextManagerContext.js +6 -0
  24. package/lib/utils/RichTextConverter/RichTextConverter.js +21 -21
  25. package/lib/utils/effects/useImageFx.js +56 -29
  26. package/lib/utils/effects/useVideoFx.js +56 -29
  27. package/package.json +57 -57
  28. package/src/common/useCurrentLayout.ts +52 -52
  29. package/src/common/useExemplary.ts +9 -9
  30. package/src/common/useItemFXData.ts +47 -47
  31. package/src/common/useKeyframeValue.ts +85 -85
  32. package/src/common/useRegisterResize.ts +16 -16
  33. package/src/components/Article.tsx +73 -66
  34. package/src/components/ArticleWrapper.tsx +21 -21
  35. package/src/components/Head.tsx +56 -56
  36. package/src/components/LayoutStyle.tsx +21 -21
  37. package/src/components/Page.tsx +33 -33
  38. package/src/components/ScrollPlaybackVideo.tsx +56 -56
  39. package/src/components/Section/Section.tsx +164 -164
  40. package/src/components/Section/useSectionColor.ts +19 -19
  41. package/src/components/Section/useSectionHeightMap.ts +19 -19
  42. package/src/components/items/CodeEmbedItem/CodeEmbedItem.tsx +137 -137
  43. package/src/components/items/CodeEmbedItem/useCodeEmbedItem.ts +36 -36
  44. package/src/components/items/ComponentItem/ComponentItem.tsx +65 -65
  45. package/src/components/items/ComponentItem/useComponentItem.ts +35 -35
  46. package/src/components/items/CompoundItem/CompoundChild.tsx +150 -150
  47. package/src/components/items/CompoundItem/CompoundItem.tsx +70 -70
  48. package/src/components/items/CompoundItem/useCompoundItem.ts +21 -21
  49. package/src/components/items/CustomItem/CustomItem.tsx +48 -48
  50. package/src/components/items/EmbedVideoItem/VimeoEmbed.tsx +202 -202
  51. package/src/components/items/EmbedVideoItem/YoutubeEmbed.tsx +187 -187
  52. package/src/components/items/EmbedVideoItem/useEmbedVideoItem.ts +46 -46
  53. package/src/components/items/FileItem/ImageItem.tsx +156 -156
  54. package/src/components/items/FileItem/VideoItem.tsx +185 -185
  55. package/src/components/items/FileItem/useFileItem.ts +73 -73
  56. package/src/components/items/GroupItem/GroupItem.tsx +79 -79
  57. package/src/components/items/GroupItem/useGroupItem.ts +34 -34
  58. package/src/components/items/Item.tsx +251 -251
  59. package/src/components/items/LinkWrapper.tsx +39 -39
  60. package/src/components/items/RectangleItem/RectangleItem.tsx +95 -95
  61. package/src/components/items/RectangleItem/useRectangleItem.ts +82 -82
  62. package/src/components/items/RichTextItem/RichTextItem.tsx +105 -105
  63. package/src/components/items/RichTextItem/useRichTextItem.ts +12 -12
  64. package/src/components/items/RichTextWrapper.tsx +15 -15
  65. package/src/components/items/itemsMap.ts +28 -28
  66. package/src/components/items/useDraggable.ts +252 -252
  67. package/src/components/items/useItemAngle.ts +13 -13
  68. package/src/components/items/useItemArea.ts +35 -35
  69. package/src/components/items/useItemPointerEvents.ts +23 -23
  70. package/src/components/items/useItemScale.ts +17 -17
  71. package/src/components/items/useItemTriggers.ts +15 -15
  72. package/src/components/items/useRichTextItemValues.ts +65 -65
  73. package/src/components/items/useSizing.ts +25 -25
  74. package/src/components/items/useStickyItemTop.ts +21 -21
  75. package/src/components/useLayoutContext.ts +7 -7
  76. package/src/index.ts +24 -24
  77. package/src/interactions/CSSPropertyNameMap.ts +38 -38
  78. package/src/interactions/InteractionsRegistry.ts +283 -283
  79. package/src/interactions/ItemInteractionCtrl.ts +77 -77
  80. package/src/interactions/getTransition.ts +27 -27
  81. package/src/interactions/types.ts +36 -36
  82. package/src/interactions/useItemInteractionCtrl.ts +18 -18
  83. package/src/provider/ArticleRectContext.ts +4 -4
  84. package/src/provider/CntrlContext.ts +5 -5
  85. package/src/provider/CntrlProvider.tsx +11 -11
  86. package/src/provider/CntrlSdkContext.ts +83 -83
  87. package/src/provider/CustomItemRegistry.ts +14 -14
  88. package/src/provider/CustomItemTypes.ts +3 -3
  89. package/src/provider/CustomSectionRegistry.ts +25 -25
  90. package/src/provider/InteractionsContext.old.tsx +66 -66
  91. package/src/provider/InteractionsContext.test.tsx +97 -97
  92. package/src/provider/InteractionsContext.tsx +28 -28
  93. package/src/provider/Keyframes.ts +11 -11
  94. package/src/provider/KeyframesContext.ts +5 -5
  95. package/src/provider/LayoutContext.ts +3 -3
  96. package/src/provider/WebGLContextManagerContext.tsx +4 -0
  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 +156 -113
  114. package/src/utils/effects/useVideoFx.ts +158 -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
  125. package/cntrl-site-sdk-nextjs-1.8.12.tgz +0 -0
  126. package/cntrl-site-sdk-nextjs-1.8.13.tgz +0 -0
  127. package/cntrl-site-sdk-nextjs-1.8.14.tgz +0 -0
@@ -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
+ }