@cntrl-site/components 0.0.1

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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/cli.d.ts +10 -0
  4. package/dist/components.css +1 -0
  5. package/dist/index.d.ts +33 -0
  6. package/dist/index.js +7765 -0
  7. package/dist/index.mjs +7748 -0
  8. package/dist/sdk/Client/Client.d.ts +32 -0
  9. package/dist/sdk/Client/Client.test.d.ts +1 -0
  10. package/dist/sdk/Client/__mock__/articleMock.d.ts +2 -0
  11. package/dist/sdk/Client/__mock__/keyframesMock.d.ts +2 -0
  12. package/dist/sdk/Client/__mock__/projectMock.d.ts +2 -0
  13. package/dist/sdk/Components/ControlSlider/ControlSlider.d.ts +90 -0
  14. package/dist/sdk/Components/ControlSlider/ControlSliderComponent.d.ts +519 -0
  15. package/dist/sdk/Components/ImageRevealSlider/ControlImageRevealSliderComponent.d.ts +209 -0
  16. package/dist/sdk/Components/ImageRevealSlider/ImageRevealSlider.d.ts +38 -0
  17. package/dist/sdk/Components/components.d.ts +2 -0
  18. package/dist/sdk/Components/helpers/RichTextRenderer/RichTextRenderer.d.ts +6 -0
  19. package/dist/sdk/Components/helpers/SvgImage/SvgImage.d.ts +9 -0
  20. package/dist/sdk/Components/utils/scalingValue.d.ts +1 -0
  21. package/dist/sdk/FontFaceGenerator/FontFaceGenerator.d.ts +6 -0
  22. package/dist/sdk/FontFaceGenerator/FontFaceGenerator.test.d.ts +1 -0
  23. package/dist/sdk/ScrollPlaybackVideoManager/ScrollPlaybackVideoManager.d.ts +31 -0
  24. package/dist/sdk/VideoDecoder/VideoDecoder.d.ts +12 -0
  25. package/dist/sdk/schemas/article/Article.schema.d.ts +328 -0
  26. package/dist/sdk/schemas/article/FillLayer.schema.d.ts +186 -0
  27. package/dist/sdk/schemas/article/Interaction.schema.d.ts +103 -0
  28. package/dist/sdk/schemas/article/Item.schema.d.ts +40 -0
  29. package/dist/sdk/schemas/article/ItemArea.schema.d.ts +36 -0
  30. package/dist/sdk/schemas/article/ItemBase.schema.d.ts +137 -0
  31. package/dist/sdk/schemas/article/ItemState.schema.d.ts +15723 -0
  32. package/dist/sdk/schemas/article/RichTextItem.schema.d.ts +1372 -0
  33. package/dist/sdk/schemas/article/Section.schema.d.ts +176 -0
  34. package/dist/sdk/schemas/keyframe/Keyframes.schema.d.ts +2000 -0
  35. package/dist/sdk/schemas/project/Layout.schema.d.ts +17 -0
  36. package/dist/sdk/schemas/project/Project.schema.d.ts +253 -0
  37. package/dist/sdk/schemas/shared/FillLayer.schema.d.ts +186 -0
  38. package/dist/sdk/types/article/Article.d.ts +7 -0
  39. package/dist/sdk/types/article/ArticleItemType.d.ts +13 -0
  40. package/dist/sdk/types/article/CompoundSettings.d.ts +6 -0
  41. package/dist/sdk/types/article/FX.d.ts +23 -0
  42. package/dist/sdk/types/article/Interaction.d.ts +28 -0
  43. package/dist/sdk/types/article/Item.d.ts +250 -0
  44. package/dist/sdk/types/article/ItemArea.d.ts +36 -0
  45. package/dist/sdk/types/article/ItemState.d.ts +78 -0
  46. package/dist/sdk/types/article/RichText.d.ts +40 -0
  47. package/dist/sdk/types/article/Section.d.ts +37 -0
  48. package/dist/sdk/types/component/Component.d.ts +15 -0
  49. package/dist/sdk/types/keyframe/Keyframe.d.ts +86 -0
  50. package/dist/sdk/types/project/Fonts.d.ts +22 -0
  51. package/dist/sdk/types/project/Layout.d.ts +6 -0
  52. package/dist/sdk/types/project/Meta.d.ts +9 -0
  53. package/dist/sdk/types/project/Page.d.ts +11 -0
  54. package/dist/sdk/types/project/Project.d.ts +17 -0
  55. package/dist/sdk-nextjs/common/useCurrentLayout.d.ts +6 -0
  56. package/dist/sdk-nextjs/common/useExemplary.d.ts +1 -0
  57. package/dist/sdk-nextjs/common/useItemFXData.d.ts +8 -0
  58. package/dist/sdk-nextjs/common/useKeyframeValue.d.ts +8 -0
  59. package/dist/sdk-nextjs/common/useRegisterResize.d.ts +1 -0
  60. package/dist/sdk-nextjs/components/Article.d.ts +9 -0
  61. package/dist/sdk-nextjs/components/ArticleWrapper.d.ts +2 -0
  62. package/dist/sdk-nextjs/components/Head.d.ts +9 -0
  63. package/dist/sdk-nextjs/components/LayoutStyle.d.ts +9 -0
  64. package/dist/sdk-nextjs/components/Page.d.ts +15 -0
  65. package/dist/sdk-nextjs/components/ScrollPlaybackVideo.d.ts +14 -0
  66. package/dist/sdk-nextjs/components/Section/Section.d.ts +11 -0
  67. package/dist/sdk-nextjs/components/Section/SectionImage.d.ts +14 -0
  68. package/dist/sdk-nextjs/components/Section/SectionVideo.d.ts +17 -0
  69. package/dist/sdk-nextjs/components/Section/useSectionColor.d.ts +4 -0
  70. package/dist/sdk-nextjs/components/Section/useSectionHeightMap.d.ts +3 -0
  71. package/dist/sdk-nextjs/components/items/CodeEmbedItem/CodeEmbedItem.d.ts +5 -0
  72. package/dist/sdk-nextjs/components/items/CodeEmbedItem/useCodeEmbedItem.d.ts +7 -0
  73. package/dist/sdk-nextjs/components/items/ComponentItem/ComponentItem.d.ts +4 -0
  74. package/dist/sdk-nextjs/components/items/ComponentItem/useComponentItem.d.ts +5 -0
  75. package/dist/sdk-nextjs/components/items/CompoundItem/CompoundChild.d.ts +9 -0
  76. package/dist/sdk-nextjs/components/items/CompoundItem/CompoundItem.d.ts +4 -0
  77. package/dist/sdk-nextjs/components/items/CompoundItem/useCompoundItem.d.ts +4 -0
  78. package/dist/sdk-nextjs/components/items/CustomItem/CustomItem.d.ts +4 -0
  79. package/dist/sdk-nextjs/components/items/EmbedVideoItem/VimeoEmbed.d.ts +4 -0
  80. package/dist/sdk-nextjs/components/items/EmbedVideoItem/YoutubeEmbed.d.ts +4 -0
  81. package/dist/sdk-nextjs/components/items/EmbedVideoItem/useEmbedVideoItem.d.ts +6 -0
  82. package/dist/sdk-nextjs/components/items/FileItem/ImageItem.d.ts +4 -0
  83. package/dist/sdk-nextjs/components/items/FileItem/VideoItem.d.ts +4 -0
  84. package/dist/sdk-nextjs/components/items/FileItem/useFileItem.d.ts +8 -0
  85. package/dist/sdk-nextjs/components/items/GroupItem/GroupItem.d.ts +4 -0
  86. package/dist/sdk-nextjs/components/items/GroupItem/useGroupItem.d.ts +5 -0
  87. package/dist/sdk-nextjs/components/items/Item.d.ts +20 -0
  88. package/dist/sdk-nextjs/components/items/LinkWrapper.d.ts +8 -0
  89. package/dist/sdk-nextjs/components/items/RectangleItem/RectangleItem.d.ts +4 -0
  90. package/dist/sdk-nextjs/components/items/RectangleItem/useRectangleItem.d.ts +9 -0
  91. package/dist/sdk-nextjs/components/items/RichTextItem/RichTextItem.d.ts +4 -0
  92. package/dist/sdk-nextjs/components/items/RichTextItem/useRichTextItem.d.ts +3 -0
  93. package/dist/sdk-nextjs/components/items/RichTextWrapper.d.ts +7 -0
  94. package/dist/sdk-nextjs/components/items/itemsMap.d.ts +4 -0
  95. package/dist/sdk-nextjs/components/items/useDraggable.d.ts +17 -0
  96. package/dist/sdk-nextjs/components/items/useItemAngle.d.ts +2 -0
  97. package/dist/sdk-nextjs/components/items/useItemArea.d.ts +12 -0
  98. package/dist/sdk-nextjs/components/items/useItemPointerEvents.d.ts +4 -0
  99. package/dist/sdk-nextjs/components/items/useItemScale.d.ts +2 -0
  100. package/dist/sdk-nextjs/components/items/useItemTriggers.d.ts +6 -0
  101. package/dist/sdk-nextjs/components/items/useRichTextItemValues.d.ts +9 -0
  102. package/dist/sdk-nextjs/components/items/useSizing.d.ts +8 -0
  103. package/dist/sdk-nextjs/components/items/useStickyItemTop.d.ts +2 -0
  104. package/dist/sdk-nextjs/components/useLayoutContext.d.ts +1 -0
  105. package/dist/sdk-nextjs/interactions/CSSPropertyNameMap.d.ts +4 -0
  106. package/dist/sdk-nextjs/interactions/InteractionsRegistry.d.ts +39 -0
  107. package/dist/sdk-nextjs/interactions/ItemInteractionCtrl.d.ts +21 -0
  108. package/dist/sdk-nextjs/interactions/getTransition.d.ts +9 -0
  109. package/dist/sdk-nextjs/interactions/types.d.ts +34 -0
  110. package/dist/sdk-nextjs/interactions/useItemInteractionCtrl.d.ts +2 -0
  111. package/dist/sdk-nextjs/provider/ArticleRectContext.d.ts +2 -0
  112. package/dist/sdk-nextjs/provider/CntrlContext.d.ts +2 -0
  113. package/dist/sdk-nextjs/provider/CntrlProvider.d.ts +2 -0
  114. package/dist/sdk-nextjs/provider/CntrlSdkContext.d.ts +31 -0
  115. package/dist/sdk-nextjs/provider/CustomItemRegistry.d.ts +6 -0
  116. package/dist/sdk-nextjs/provider/CustomItemTypes.d.ts +2 -0
  117. package/dist/sdk-nextjs/provider/CustomSectionRegistry.d.ts +15 -0
  118. package/dist/sdk-nextjs/provider/InteractionsContext.d.ts +10 -0
  119. package/dist/sdk-nextjs/provider/Keyframes.d.ts +6 -0
  120. package/dist/sdk-nextjs/provider/KeyframesContext.d.ts +2 -0
  121. package/dist/sdk-nextjs/provider/LayoutContext.d.ts +1 -0
  122. package/dist/sdk-nextjs/provider/WebGLContextManagerContext.d.ts +2 -0
  123. package/dist/sdk-nextjs/provider/defaultContext.d.ts +2 -0
  124. package/dist/sdk-nextjs/provider/useCntrlContext.d.ts +2 -0
  125. package/dist/sdk-nextjs/utils/Animator/Animator.d.ts +43 -0
  126. package/dist/sdk-nextjs/utils/ArticleRectManager/ArticleRectObserver.d.ts +25 -0
  127. package/dist/sdk-nextjs/utils/ArticleRectManager/useArticleRectObserver.d.ts +2 -0
  128. package/dist/sdk-nextjs/utils/ArticleRectManager/useSectionRegistry.d.ts +1 -0
  129. package/dist/sdk-nextjs/utils/EventEmitter.d.ts +11 -0
  130. package/dist/sdk-nextjs/utils/RichTextConverter/RichTextConverter.d.ts +11 -0
  131. package/dist/sdk-nextjs/utils/ScaleAnchorMap.d.ts +11 -0
  132. package/dist/sdk-nextjs/utils/StickyManager/StickyManager.d.ts +10 -0
  133. package/dist/sdk-nextjs/utils/Youtube/YouTubeIframeApiLoader.d.ts +10 -0
  134. package/dist/sdk-nextjs/utils/Youtube/YoutubeIframeApi.d.ts +89 -0
  135. package/dist/sdk-nextjs/utils/Youtube/useYouTubeIframeApi.d.ts +2 -0
  136. package/dist/sdk-nextjs/utils/areFillsVisible/areFillsVisible.d.ts +23 -0
  137. package/dist/sdk-nextjs/utils/areFillsVisible/areFillsVisible.test.d.ts +1 -0
  138. package/dist/sdk-nextjs/utils/binSearchInsertAt.d.ts +5 -0
  139. package/dist/sdk-nextjs/utils/castObject.d.ts +5 -0
  140. package/dist/sdk-nextjs/utils/checkOverflowClipSupport.d.ts +1 -0
  141. package/dist/sdk-nextjs/utils/effects/useImageFx.d.ts +7 -0
  142. package/dist/sdk-nextjs/utils/effects/useVideoFx.d.ts +7 -0
  143. package/dist/sdk-nextjs/utils/getAnchoredItemTop.d.ts +2 -0
  144. package/dist/sdk-nextjs/utils/getCompoundBoundaryStyles.d.ts +12 -0
  145. package/dist/sdk-nextjs/utils/getFill.d.ts +2 -0
  146. package/dist/sdk-nextjs/utils/getFontFamilyValue.d.ts +1 -0
  147. package/dist/sdk-nextjs/utils/getInvertedRanges.d.ts +10 -0
  148. package/dist/sdk-nextjs/utils/getItemTopStyle.d.ts +2 -0
  149. package/dist/sdk-nextjs/utils/getStyleFromItemStateAndParams.d.ts +1 -0
  150. package/dist/sdk-nextjs/utils/getValidYoutubeUrl.d.ts +1 -0
  151. package/dist/sdk-nextjs/utils/isItemType.d.ts +3 -0
  152. package/dist/sdk-nextjs/utils/rangeMap.d.ts +1 -0
  153. package/dist/sdk-nextjs/utils/useElementRect.d.ts +1 -0
  154. package/dist/utils.d.ts +3 -0
  155. package/package.json +92 -0
@@ -0,0 +1,250 @@
1
+ import { RichTextBlock, RichTextStyle, TextAlign, TextTransform, VerticalAlign } from './RichText';
2
+ import { ArticleItemType } from './ArticleItemType';
3
+ import { AreaAnchor, ItemArea } from './ItemArea';
4
+ import { ItemState } from './ItemState';
5
+ import { FXControlAny } from './FX';
6
+ import { CompoundSettings } from './CompoundSettings';
7
+ export type ItemAny = Item<ArticleItemType>;
8
+ export interface Item<T extends ArticleItemType> {
9
+ id: string;
10
+ type: T;
11
+ area: Record<LayoutIdentifier, ItemArea>;
12
+ hidden: Record<LayoutIdentifier, boolean>;
13
+ link?: Link;
14
+ items?: T extends (ArticleItemType.Group | ArticleItemType.Compound) ? ItemAny[] : never;
15
+ sticky: Record<LayoutIdentifier, StickyParams | null>;
16
+ compoundSettings?: Record<LayoutIdentifier, CompoundSettings>;
17
+ commonParams: ItemCommonParamsMap[T];
18
+ state: ItemState<T>;
19
+ layoutParams: Record<LayoutIdentifier, ItemLayoutParamsMap[T]>;
20
+ }
21
+ export interface ItemCommonParamsMap {
22
+ [ArticleItemType.Image]: ImageCommonParams;
23
+ [ArticleItemType.Video]: VideoCommonParams;
24
+ [ArticleItemType.RichText]: RichTextCommonParams;
25
+ [ArticleItemType.Rectangle]: RectangleCommonParams;
26
+ [ArticleItemType.VimeoEmbed]: VimeoEmbedCommonParams;
27
+ [ArticleItemType.YoutubeEmbed]: YoutubeEmbedCommonParams;
28
+ [ArticleItemType.Custom]: CustomCommonParams;
29
+ [ArticleItemType.Group]: GroupCommonParams;
30
+ [ArticleItemType.Compound]: CompoundCommonParams;
31
+ [ArticleItemType.CodeEmbed]: CodeEmbedCommonParams;
32
+ [ArticleItemType.Component]: ComponentCommonParams;
33
+ }
34
+ export interface ItemLayoutParamsMap {
35
+ [ArticleItemType.Image]: ImageLayoutParams;
36
+ [ArticleItemType.Video]: VideoLayoutParams;
37
+ [ArticleItemType.RichText]: RichTextLayoutParams;
38
+ [ArticleItemType.Rectangle]: RectangleLayoutParams;
39
+ [ArticleItemType.VimeoEmbed]: VimeoEmbedLayoutParams;
40
+ [ArticleItemType.YoutubeEmbed]: YoutubeEmbedLayoutParams;
41
+ [ArticleItemType.Custom]: CustomLayoutParams;
42
+ [ArticleItemType.Group]: GroupLayoutParams;
43
+ [ArticleItemType.Compound]: CompoundLayoutParams;
44
+ [ArticleItemType.CodeEmbed]: CodeEmbedLayoutParams;
45
+ [ArticleItemType.Component]: ComponentLayoutParams;
46
+ }
47
+ interface CommonParamsBase {
48
+ pointerEvents?: 'never' | 'when_visible' | 'always';
49
+ }
50
+ interface MediaCommonParams extends CommonParamsBase {
51
+ url: string;
52
+ hasGLEffect?: boolean;
53
+ fragmentShader: string | null;
54
+ FXControls?: FXControlAny[];
55
+ }
56
+ interface VideoCommonParams extends MediaCommonParams {
57
+ coverUrl: string | null;
58
+ }
59
+ interface ImageCommonParams extends MediaCommonParams {
60
+ }
61
+ interface RichTextCommonParams extends CommonParamsBase {
62
+ text: string;
63
+ blocks?: RichTextBlock[];
64
+ }
65
+ interface RectangleCommonParams extends CommonParamsBase {
66
+ ratioLock: boolean;
67
+ }
68
+ interface CustomCommonParams extends CommonParamsBase {
69
+ name: string;
70
+ }
71
+ interface GroupCommonParams extends CommonParamsBase {
72
+ }
73
+ interface CompoundCommonParams extends CommonParamsBase {
74
+ overflow: 'hidden' | 'visible';
75
+ }
76
+ interface CodeEmbedCommonParams extends CommonParamsBase {
77
+ html: string;
78
+ scale: boolean;
79
+ iframe: boolean;
80
+ }
81
+ interface VimeoEmbedCommonParams extends CommonParamsBase {
82
+ url: string;
83
+ coverUrl: string | null;
84
+ }
85
+ interface YoutubeEmbedCommonParams extends CommonParamsBase {
86
+ url: string;
87
+ coverUrl: string | null;
88
+ }
89
+ interface ComponentCommonParams extends CommonParamsBase {
90
+ componentId: string;
91
+ content?: any;
92
+ }
93
+ interface MediaLayoutParams {
94
+ opacity: number;
95
+ radius: number;
96
+ strokeWidth: number;
97
+ strokeFill: FillLayer[];
98
+ blur: number;
99
+ isDraggable?: boolean;
100
+ }
101
+ interface CustomLayoutParams {
102
+ isDraggable?: boolean;
103
+ }
104
+ interface GroupLayoutParams {
105
+ opacity: number;
106
+ blur: number;
107
+ isDraggable?: boolean;
108
+ }
109
+ interface CompoundLayoutParams {
110
+ opacity: number;
111
+ isDraggable?: boolean;
112
+ }
113
+ interface CodeEmbedLayoutParams {
114
+ areaAnchor: AreaAnchor;
115
+ opacity: number;
116
+ blur: number;
117
+ isDraggable?: boolean;
118
+ }
119
+ interface VimeoEmbedLayoutParams {
120
+ play: 'on-hover' | 'on-click' | 'auto';
121
+ controls: boolean;
122
+ loop: boolean;
123
+ muted: boolean;
124
+ pictureInPicture: boolean;
125
+ radius: number;
126
+ blur: number;
127
+ opacity: number;
128
+ }
129
+ interface YoutubeEmbedLayoutParams {
130
+ play: 'on-hover' | 'on-click' | 'auto';
131
+ controls: boolean;
132
+ loop: boolean;
133
+ radius: number;
134
+ blur: number;
135
+ opacity: number;
136
+ }
137
+ interface ImageLayoutParams extends MediaLayoutParams {
138
+ }
139
+ interface VideoLayoutParams extends MediaLayoutParams {
140
+ play: 'on-hover' | 'on-click' | 'auto';
141
+ muted: boolean;
142
+ controls: boolean;
143
+ scrollPlayback: ScrollPlaybackParams | null;
144
+ }
145
+ interface RichTextLayoutParams {
146
+ rangeStyles?: RichTextStyle[];
147
+ textAlign: TextAlign;
148
+ sizing: string;
149
+ blur: number;
150
+ fontSize: number;
151
+ lineHeight: number;
152
+ letterSpacing: number;
153
+ wordSpacing: number;
154
+ textTransform: TextTransform;
155
+ verticalAlign: VerticalAlign;
156
+ color: string;
157
+ typeFace: string;
158
+ fontStyle: string;
159
+ fontWeight: number;
160
+ fontVariant: string;
161
+ isDraggable?: boolean;
162
+ }
163
+ interface RectangleLayoutParams {
164
+ radius: number;
165
+ strokeWidth: number;
166
+ fill: FillLayer[];
167
+ strokeFill: FillLayer[];
168
+ blur: number;
169
+ backdropBlur: number;
170
+ blurMode: 'default' | 'backdrop';
171
+ isDraggable?: boolean;
172
+ }
173
+ export type FillLayer = SolidFillLayer | LinearGradientFillLayer | RadialGradientFillLayer | ConicGradientFillLayer | ImageLayer;
174
+ type ColorPoint = {
175
+ id: string;
176
+ value: string;
177
+ position: number;
178
+ };
179
+ export type SolidFillLayer = {
180
+ id: string;
181
+ type: 'solid';
182
+ value: string;
183
+ blendMode: string;
184
+ };
185
+ export type LinearGradientFillLayer = {
186
+ id: string;
187
+ type: 'linear-gradient';
188
+ colors: ColorPoint[];
189
+ start: [number, number];
190
+ end: [number, number];
191
+ angle: number;
192
+ blendMode: string;
193
+ };
194
+ export type RadialGradientFillLayer = {
195
+ id: string;
196
+ type: 'radial-gradient';
197
+ colors: ColorPoint[];
198
+ diameter: number;
199
+ center: [number, number];
200
+ angle: number;
201
+ blendMode: string;
202
+ };
203
+ export type ConicGradientFillLayer = {
204
+ id: string;
205
+ type: 'conic-gradient';
206
+ colors: ColorPoint[];
207
+ center: [number, number];
208
+ angle: number;
209
+ blendMode: string;
210
+ };
211
+ export type ImageLayer = {
212
+ id: string;
213
+ type: 'image';
214
+ src: string;
215
+ behavior: string;
216
+ backgroundSize: number;
217
+ opacity: number;
218
+ blendMode: string;
219
+ rotation?: number;
220
+ };
221
+ export interface ScrollPlaybackParams {
222
+ from: number;
223
+ to: number;
224
+ }
225
+ export interface StickyParams {
226
+ from: number;
227
+ to?: number;
228
+ }
229
+ export interface Link {
230
+ url: string;
231
+ target: string;
232
+ }
233
+ type LayoutIdentifier = string;
234
+ interface ComponentLayoutParams {
235
+ parameters?: any;
236
+ opacity: number;
237
+ blur: number;
238
+ }
239
+ export type VideoItem = Item<ArticleItemType.Video>;
240
+ export type RectangleItem = Item<ArticleItemType.Rectangle>;
241
+ export type ImageItem = Item<ArticleItemType.Image>;
242
+ export type RichTextItem = Item<ArticleItemType.RichText>;
243
+ export type VimeoEmbedItem = Item<ArticleItemType.VimeoEmbed>;
244
+ export type YoutubeEmbedItem = Item<ArticleItemType.YoutubeEmbed>;
245
+ export type CustomItem = Item<ArticleItemType.Custom>;
246
+ export type GroupItem = Item<ArticleItemType.Group>;
247
+ export type CodeEmbedItem = Item<ArticleItemType.CodeEmbed>;
248
+ export type CompoundItem = Item<ArticleItemType.Compound>;
249
+ export type ComponentItem = Item<ArticleItemType.Component>;
250
+ export {};
@@ -0,0 +1,36 @@
1
+ export declare enum AnchorSide {
2
+ Top = "top",
3
+ Bottom = "bottom",
4
+ Center = "center"
5
+ }
6
+ export declare enum PositionType {
7
+ SectionBased = "section-based",
8
+ ScreenBased = "screen-based"
9
+ }
10
+ export declare enum AreaAnchor {
11
+ TopLeft = "top-left",
12
+ TopCenter = "top-center",
13
+ TopRight = "top-right",
14
+ MiddleLeft = "middle-left",
15
+ MiddleCenter = "middle-center",
16
+ MiddleRight = "middle-right",
17
+ BottomLeft = "bottom-left",
18
+ BottomCenter = "bottom-center",
19
+ BottomRight = "bottom-right"
20
+ }
21
+ export declare enum DimensionMode {
22
+ ControlUnits = "control-units",
23
+ Relative = "relative"
24
+ }
25
+ export interface ItemArea {
26
+ top: number;
27
+ left: number;
28
+ width: number;
29
+ height: number;
30
+ positionType: PositionType;
31
+ zIndex: number;
32
+ angle: number;
33
+ anchorSide?: AnchorSide;
34
+ scale: number;
35
+ scaleAnchor: AreaAnchor;
36
+ }
@@ -0,0 +1,78 @@
1
+ import { ArticleItemType } from './ArticleItemType';
2
+ import { FillLayer } from './Item';
3
+ type StateId = string;
4
+ export type ItemState<T extends ArticleItemType> = Record<StateId, ItemStatesMap[T]>;
5
+ export type ItemStateParams = ItemStatesMap[ArticleItemType];
6
+ export interface ItemStatesMap {
7
+ [ArticleItemType.Image]: MediaStateParams;
8
+ [ArticleItemType.Video]: MediaStateParams;
9
+ [ArticleItemType.RichText]: RichTextStateParams;
10
+ [ArticleItemType.Rectangle]: RectangleStateParams;
11
+ [ArticleItemType.VimeoEmbed]: VideoEmbedStateParams;
12
+ [ArticleItemType.YoutubeEmbed]: VideoEmbedStateParams;
13
+ [ArticleItemType.Custom]: CustomItemStateParams;
14
+ [ArticleItemType.Group]: GroupStateParams;
15
+ [ArticleItemType.CodeEmbed]: CodeEmbedStateParams;
16
+ [ArticleItemType.Compound]: CompoundStateParams;
17
+ [ArticleItemType.Component]: ComponentStateParams;
18
+ }
19
+ export interface StateParams<T> {
20
+ value: T;
21
+ in: {
22
+ timing: string;
23
+ duration: number;
24
+ delay: number;
25
+ };
26
+ out: {
27
+ timing: string;
28
+ duration: number;
29
+ delay: number;
30
+ };
31
+ }
32
+ interface ItemStatesBaseMap {
33
+ width?: StateParams<number>;
34
+ height?: StateParams<number>;
35
+ angle?: StateParams<number>;
36
+ top?: StateParams<number>;
37
+ left?: StateParams<number>;
38
+ scale?: StateParams<number>;
39
+ blur?: StateParams<number>;
40
+ }
41
+ export interface MediaStateParams extends ItemStatesBaseMap {
42
+ opacity?: StateParams<number>;
43
+ radius?: StateParams<number>;
44
+ strokeWidth?: StateParams<number>;
45
+ strokeFill?: StateParams<FillLayer[]>;
46
+ }
47
+ export interface RichTextStateParams extends ItemStatesBaseMap {
48
+ color?: StateParams<string>;
49
+ letterSpacing?: StateParams<number>;
50
+ wordSpacing?: StateParams<number>;
51
+ }
52
+ export interface RectangleStateParams extends ItemStatesBaseMap {
53
+ radius?: StateParams<number>;
54
+ strokeWidth?: StateParams<number>;
55
+ fill?: StateParams<FillLayer[]>;
56
+ strokeFill?: StateParams<FillLayer[]>;
57
+ backdropBlur?: StateParams<number>;
58
+ }
59
+ export interface VideoEmbedStateParams extends ItemStatesBaseMap {
60
+ radius?: StateParams<number>;
61
+ opacity?: StateParams<number>;
62
+ }
63
+ export interface CustomItemStateParams extends ItemStatesBaseMap {
64
+ }
65
+ export interface GroupStateParams extends ItemStatesBaseMap {
66
+ opacity?: StateParams<number>;
67
+ blur?: StateParams<number>;
68
+ }
69
+ export interface CompoundStateParams extends ItemStatesBaseMap {
70
+ opacity?: StateParams<number>;
71
+ }
72
+ export interface CodeEmbedStateParams extends ItemStatesBaseMap {
73
+ opacity?: StateParams<number>;
74
+ }
75
+ export interface ComponentStateParams extends ItemStatesBaseMap {
76
+ opacity?: StateParams<number>;
77
+ }
78
+ export {};
@@ -0,0 +1,40 @@
1
+ export interface RichTextEntity {
2
+ start: number;
3
+ end: number;
4
+ type: string;
5
+ data?: any;
6
+ }
7
+ export interface RichTextStyle {
8
+ start: number;
9
+ end: number;
10
+ style: string;
11
+ value?: string;
12
+ }
13
+ export interface RichTextBlock {
14
+ start: number;
15
+ end: number;
16
+ type: string;
17
+ entities?: RichTextEntity[];
18
+ children?: RichTextBlock[];
19
+ data?: any;
20
+ }
21
+ export declare enum TextAlign {
22
+ Left = "left",
23
+ Right = "right",
24
+ Center = "center",
25
+ Justify = "justify"
26
+ }
27
+ export declare enum TextTransform {
28
+ None = "none",
29
+ Uppercase = "uppercase",
30
+ Lowercase = "lowercase"
31
+ }
32
+ export declare enum VerticalAlign {
33
+ Super = "super",
34
+ Sub = "sub",
35
+ Unset = "unset"
36
+ }
37
+ export declare enum TextDecoration {
38
+ Underline = "underline",
39
+ None = "none"
40
+ }
@@ -0,0 +1,37 @@
1
+ import { ItemAny } from './Item';
2
+ export declare enum SectionHeightMode {
3
+ ControlUnits = "control-units",
4
+ ViewportHeightUnits = "viewport-height-units"
5
+ }
6
+ export interface SectionHeight {
7
+ mode: SectionHeightMode;
8
+ units: number;
9
+ vhUnits?: number;
10
+ }
11
+ export type SectionVideo = {
12
+ url: string;
13
+ size: string;
14
+ type: 'video';
15
+ play: 'on-click' | 'auto';
16
+ position: string;
17
+ coverUrl: string | null;
18
+ offsetX: number | null;
19
+ };
20
+ export type SectionImage = {
21
+ url: string;
22
+ type: 'image';
23
+ size: string;
24
+ position: string;
25
+ offsetX: number | null;
26
+ };
27
+ export type SectionMedia = SectionVideo | SectionImage;
28
+ export interface Section {
29
+ id: string;
30
+ name?: string;
31
+ height: Record<string, SectionHeight>;
32
+ hidden: Record<string, boolean>;
33
+ items: ItemAny[];
34
+ position: Record<string, number>;
35
+ color: Record<string, string | null>;
36
+ media?: Record<string, SectionMedia>;
37
+ }
@@ -0,0 +1,15 @@
1
+ import { default as React } from 'react';
2
+ export type Component = {
3
+ element: (props: any) => React.ReactElement;
4
+ id: string;
5
+ name: string;
6
+ defaultSize: {
7
+ width: number;
8
+ height: number;
9
+ };
10
+ schema: any;
11
+ preview?: {
12
+ type: 'image' | 'video';
13
+ url: string;
14
+ };
15
+ };
@@ -0,0 +1,86 @@
1
+ import { FillLayer } from '../article/Item';
2
+ export type KeyframeAny = Keyframe<KeyframeType>;
3
+ export interface Keyframe<T extends KeyframeType> {
4
+ id: string;
5
+ type: T;
6
+ layoutId: string;
7
+ itemId: string;
8
+ position: number;
9
+ value: KeyframeValueMap[T];
10
+ }
11
+ export declare enum KeyframeType {
12
+ Dimensions = "dimensions",
13
+ Position = "position",
14
+ Rotation = "rotation",
15
+ BorderRadius = "border-radius",
16
+ BorderWidth = "border-width",
17
+ Opacity = "opacity",
18
+ Scale = "scale",
19
+ TextColor = "text-color",
20
+ LetterSpacing = "letter-spacing",
21
+ WordSpacing = "word-spacing",
22
+ Blur = "blur",
23
+ BackdropBlur = "backdrop-blur",
24
+ FXParams = "fx-params",
25
+ BorderFill = "border-fill",
26
+ Fill = "fill"
27
+ }
28
+ export interface KeyframeValueMap {
29
+ [KeyframeType.Dimensions]: DimensionsValue;
30
+ [KeyframeType.Position]: PositionValue;
31
+ [KeyframeType.Rotation]: RotationValue;
32
+ [KeyframeType.BorderRadius]: BorderRadiusValue;
33
+ [KeyframeType.BorderWidth]: BorderWidthValue;
34
+ [KeyframeType.Opacity]: OpacityValue;
35
+ [KeyframeType.Scale]: ScaleValue;
36
+ [KeyframeType.Blur]: BlurValue;
37
+ [KeyframeType.BackdropBlur]: BackdropBlurValue;
38
+ [KeyframeType.TextColor]: TextColorValue;
39
+ [KeyframeType.LetterSpacing]: LetterSpacingValue;
40
+ [KeyframeType.WordSpacing]: WordSpacingValue;
41
+ [KeyframeType.FXParams]: FXParamsValue;
42
+ [KeyframeType.BorderFill]: BorderFillValue;
43
+ [KeyframeType.Fill]: FillValue;
44
+ }
45
+ interface DimensionsValue {
46
+ width: number;
47
+ height: number;
48
+ }
49
+ interface PositionValue {
50
+ top: number;
51
+ left: number;
52
+ }
53
+ interface RotationValue {
54
+ angle: number;
55
+ }
56
+ interface BorderRadiusValue {
57
+ radius: number;
58
+ }
59
+ interface BorderWidthValue {
60
+ borderWidth: number;
61
+ }
62
+ interface OpacityValue {
63
+ opacity: number;
64
+ }
65
+ interface ScaleValue {
66
+ scale: number;
67
+ }
68
+ interface BlurValue {
69
+ blur: number;
70
+ }
71
+ interface BackdropBlurValue {
72
+ backdropBlur: number;
73
+ }
74
+ interface TextColorValue {
75
+ color: string;
76
+ }
77
+ interface LetterSpacingValue {
78
+ letterSpacing: number;
79
+ }
80
+ interface WordSpacingValue {
81
+ wordSpacing: number;
82
+ }
83
+ type BorderFillValue = FillLayer[];
84
+ type FXParamsValue = Record<string, number>;
85
+ type FillValue = FillLayer[];
86
+ export {};
@@ -0,0 +1,22 @@
1
+ export declare enum FontFileTypes {
2
+ OTF = "otf",
3
+ TTF = "ttf",
4
+ WOFF = "woff",
5
+ WOFF2 = "woff2",
6
+ EOT = "eot"
7
+ }
8
+ export interface CustomFontFile {
9
+ type: FontFileTypes;
10
+ url: string;
11
+ }
12
+ export interface CustomFont {
13
+ name: string;
14
+ style: string;
15
+ weight: number;
16
+ files: CustomFontFile[];
17
+ }
18
+ export interface Fonts {
19
+ google: string;
20
+ adobe: string;
21
+ custom: CustomFont[];
22
+ }
@@ -0,0 +1,6 @@
1
+ export interface Layout {
2
+ id: string;
3
+ title: string;
4
+ startsWith: number;
5
+ exemplary: number;
6
+ }
@@ -0,0 +1,9 @@
1
+ export interface Meta extends GenericMeta {
2
+ favicon?: string;
3
+ }
4
+ export interface GenericMeta {
5
+ title?: string;
6
+ description?: string;
7
+ opengraphThumbnail?: string;
8
+ keywords?: string;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { GenericMeta } from './Meta';
2
+ export interface PageMeta extends GenericMeta {
3
+ enabled?: boolean;
4
+ }
5
+ export interface Page {
6
+ id: string;
7
+ title: string;
8
+ articleId: string;
9
+ slug: string;
10
+ meta?: PageMeta;
11
+ }
@@ -0,0 +1,17 @@
1
+ import { Layout } from './Layout';
2
+ import { Fonts } from './Fonts';
3
+ import { Meta } from './Meta';
4
+ import { Page } from './Page';
5
+ export interface AdditionalHTML {
6
+ head: string;
7
+ afterBodyOpen: string;
8
+ beforeBodyClose: string;
9
+ }
10
+ export interface Project {
11
+ id: string;
12
+ html: AdditionalHTML;
13
+ meta: Meta;
14
+ layouts: Layout[];
15
+ pages: Page[];
16
+ fonts: Fonts;
17
+ }
@@ -0,0 +1,6 @@
1
+ type UseCurrentLayoutReturn = {
2
+ layoutId: string | undefined;
3
+ layoutDeviation: number;
4
+ };
5
+ export declare function useCurrentLayout(): UseCurrentLayoutReturn;
6
+ export {};
@@ -0,0 +1 @@
1
+ export declare const useExemplary: () => number;
@@ -0,0 +1,8 @@
1
+ import { ImageItem, VideoItem } from '../../sdk/types/article/Item';
2
+ export declare function useItemFXData(item: ImageItem | VideoItem, sectionId: string): FXData;
3
+ type FXData = {
4
+ fragmentShader: string;
5
+ controlsValues: Record<string, ControlValue>;
6
+ };
7
+ type ControlValue = number;
8
+ export {};
@@ -0,0 +1,8 @@
1
+ import { DependencyList } from 'react';
2
+ import { Animator } from '../utils/Animator/Animator';
3
+ import { ItemAny } from '../../sdk/types/article/Item';
4
+ import { KeyframeType } from '../../sdk/types/keyframe/Keyframe';
5
+ export type AnimatorGetter<T> = (animator: Animator, scroll: number, value: T) => T;
6
+ type ItemParamGetter<T> = (item: ItemAny, layoutId: string | undefined) => T;
7
+ export declare function useKeyframeValue<T>(item: ItemAny, type: KeyframeType, itemParamsGetter: ItemParamGetter<T>, animatorGetter: AnimatorGetter<T>, sectionId: string, deps?: DependencyList): T;
8
+ export {};
@@ -0,0 +1 @@
1
+ export declare function useRegisterResize(ref: HTMLElement | null, onResize?: (height: number) => void): void;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { Article as TArticle } from '../../sdk/types/article/Article';
3
+ interface Props {
4
+ article: TArticle;
5
+ sectionData: Record<SectionName, any>;
6
+ }
7
+ export declare const Article: FC<Props>;
8
+ type SectionName = string;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ import { FC, PropsWithChildren } from 'react';
2
+ export declare const ArticleWrapper: FC<PropsWithChildren<{}>>;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { Meta } from '../../sdk/types/project/Meta';
3
+ import { Project } from '../../sdk/types/project/Project';
4
+ interface Props {
5
+ project: Project;
6
+ meta: Meta;
7
+ }
8
+ export declare const CNTRLHead: FC<Props>;
9
+ export {};
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ import { Layout } from '../../sdk/types/project/Layout';
3
+ export interface LayoutStyleProps {
4
+ id: string;
5
+ layouts: Layout[];
6
+ layoutId: string;
7
+ children?: (layout: Layout) => string;
8
+ }
9
+ export declare const LayoutStyle: FC<LayoutStyleProps>;