@cntrl-site/sdk-nextjs 1.8.40-0 → 1.8.40

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 (125) 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 +27 -27
  10. package/lib/components/items/CodeEmbedItem/CodeEmbedItem.js +36 -36
  11. package/lib/components/items/ComponentItem/ComponentItem.js +13 -13
  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 +24 -24
  16. package/lib/components/items/EmbedVideoItem/YoutubeEmbed.js +27 -27
  17. package/lib/components/items/FileItem/ImageItem.js +39 -39
  18. package/lib/components/items/FileItem/VideoItem.js +63 -63
  19. package/lib/components/items/GroupItem/GroupItem.js +14 -14
  20. package/lib/components/items/Item.js +30 -30
  21. package/lib/components/items/RectangleItem/RectangleItem.js +21 -21
  22. package/lib/components/items/RichTextItem/RichTextItem.js +22 -22
  23. package/lib/utils/RichTextConverter/RichTextConverter.js +21 -21
  24. package/package.json +57 -58
  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 +16 -16
  30. package/src/components/Article.tsx +73 -73
  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 +127 -127
  37. package/src/components/Section/SectionImage.tsx +48 -48
  38. package/src/components/Section/SectionVideo.tsx +144 -144
  39. package/src/components/Section/useSectionColor.ts +19 -19
  40. package/src/components/Section/useSectionHeightMap.ts +19 -19
  41. package/src/components/items/CodeEmbedItem/CodeEmbedItem.tsx +145 -145
  42. package/src/components/items/CodeEmbedItem/useCodeEmbedItem.ts +36 -36
  43. package/src/components/items/ComponentItem/ComponentItem.tsx +67 -67
  44. package/src/components/items/ComponentItem/useComponentItem.ts +35 -35
  45. package/src/components/items/CompoundItem/CompoundChild.tsx +150 -150
  46. package/src/components/items/CompoundItem/CompoundItem.tsx +70 -70
  47. package/src/components/items/CompoundItem/useCompoundItem.ts +21 -21
  48. package/src/components/items/CustomItem/CustomItem.tsx +48 -48
  49. package/src/components/items/EmbedVideoItem/VimeoEmbed.tsx +206 -206
  50. package/src/components/items/EmbedVideoItem/YoutubeEmbed.tsx +193 -193
  51. package/src/components/items/EmbedVideoItem/useEmbedVideoItem.ts +46 -46
  52. package/src/components/items/FileItem/ImageItem.tsx +158 -158
  53. package/src/components/items/FileItem/VideoItem.tsx +275 -275
  54. package/src/components/items/FileItem/useFileItem.ts +73 -73
  55. package/src/components/items/GroupItem/GroupItem.tsx +81 -81
  56. package/src/components/items/GroupItem/useGroupItem.ts +34 -34
  57. package/src/components/items/Item.tsx +251 -251
  58. package/src/components/items/LinkWrapper.tsx +39 -39
  59. package/src/components/items/RectangleItem/RectangleItem.tsx +97 -97
  60. package/src/components/items/RectangleItem/useRectangleItem.ts +82 -82
  61. package/src/components/items/RichTextItem/RichTextItem.tsx +107 -107
  62. package/src/components/items/RichTextItem/useRichTextItem.ts +12 -12
  63. package/src/components/items/RichTextWrapper.tsx +15 -15
  64. package/src/components/items/itemsMap.ts +28 -28
  65. package/src/components/items/useDraggable.ts +252 -252
  66. package/src/components/items/useItemAngle.ts +13 -13
  67. package/src/components/items/useItemArea.ts +35 -35
  68. package/src/components/items/useItemPointerEvents.ts +23 -23
  69. package/src/components/items/useItemScale.ts +17 -17
  70. package/src/components/items/useItemTriggers.ts +15 -15
  71. package/src/components/items/useRichTextItemValues.ts +65 -65
  72. package/src/components/items/useSizing.ts +25 -25
  73. package/src/components/items/useStickyItemTop.ts +21 -21
  74. package/src/components/useLayoutContext.ts +7 -7
  75. package/src/index.ts +24 -24
  76. package/src/interactions/CSSPropertyNameMap.ts +38 -38
  77. package/src/interactions/InteractionsRegistry.ts +380 -380
  78. package/src/interactions/ItemInteractionCtrl.ts +78 -78
  79. package/src/interactions/getTransition.ts +27 -27
  80. package/src/interactions/types.ts +36 -36
  81. package/src/interactions/useItemInteractionCtrl.ts +18 -18
  82. package/src/provider/ArticleRectContext.ts +4 -4
  83. package/src/provider/CntrlContext.ts +5 -5
  84. package/src/provider/CntrlProvider.tsx +11 -11
  85. package/src/provider/CntrlSdkContext.ts +83 -83
  86. package/src/provider/CustomItemRegistry.ts +14 -14
  87. package/src/provider/CustomItemTypes.ts +3 -3
  88. package/src/provider/CustomSectionRegistry.ts +25 -25
  89. package/src/provider/InteractionsContext.old.tsx +66 -66
  90. package/src/provider/InteractionsContext.test.tsx +97 -97
  91. package/src/provider/InteractionsContext.tsx +59 -59
  92. package/src/provider/Keyframes.ts +11 -11
  93. package/src/provider/KeyframesContext.ts +5 -5
  94. package/src/provider/LayoutContext.ts +3 -3
  95. package/src/provider/WebGLContextManagerContext.tsx +4 -4
  96. package/src/provider/defaultContext.ts +8 -8
  97. package/src/provider/useCntrlContext.ts +8 -8
  98. package/src/styled-jsx.d.ts +1 -1
  99. package/src/utils/Animator/Animator.ts +371 -371
  100. package/src/utils/ArticleRectManager/ArticleRectObserver.ts +93 -93
  101. package/src/utils/ArticleRectManager/useArticleRectObserver.ts +17 -17
  102. package/src/utils/ArticleRectManager/useSectionRegistry.ts +11 -11
  103. package/src/utils/EventEmitter.ts +41 -41
  104. package/src/utils/RichTextConverter/RichTextConverter.tsx +326 -326
  105. package/src/utils/ScaleAnchorMap.ts +13 -13
  106. package/src/utils/StickyManager/StickyManager.ts +23 -23
  107. package/src/utils/Youtube/YouTubeIframeApiLoader.ts +58 -58
  108. package/src/utils/Youtube/YoutubeIframeApi.ts +101 -101
  109. package/src/utils/Youtube/useYouTubeIframeApi.ts +12 -12
  110. package/src/utils/binSearchInsertAt.ts +33 -33
  111. package/src/utils/castObject.ts +10 -10
  112. package/src/utils/checkOverflowClipSupport.ts +13 -13
  113. package/src/utils/effects/useImageFx.ts +156 -156
  114. package/src/utils/effects/useVideoFx.ts +158 -158
  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.40.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
+ }