@wix/editor-react-components 1.2761.0 → 1.2763.0

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 (163) hide show
  1. package/dist/site/components/AccordionComponent/component.js +1 -1
  2. package/dist/site/components/AccordionComponent/manifest.js +1 -1
  3. package/dist/site/components/AnimatedIcon/manifest.js +1 -1
  4. package/dist/site/components/AudioPlayer/component.js +1 -1
  5. package/dist/site/components/AudioPlayer/manifest.js +1 -1
  6. package/dist/site/components/BoxContainer/component.js +3 -3
  7. package/dist/site/components/BoxContainer/manifest.js +1 -1
  8. package/dist/site/components/Breadcrumbs/component.js +3 -3
  9. package/dist/site/components/Breadcrumbs/manifest.js +1 -1
  10. package/dist/site/components/Button/manifest.js +1 -1
  11. package/dist/site/components/Checkbox/component.js +1 -1
  12. package/dist/site/components/Checkbox/manifest.js +1 -1
  13. package/dist/site/components/CheckboxGroup/component.js +1 -1
  14. package/dist/site/components/CheckboxGroup/manifest.js +1 -1
  15. package/dist/site/components/CollapsibleText/component.js +2 -2
  16. package/dist/site/components/CollapsibleText/manifest.js +1 -1
  17. package/dist/site/components/DatePicker/component.js +2 -2
  18. package/dist/site/components/DatePicker/manifest.js +1 -1
  19. package/dist/site/components/Dropdown/component.js +2 -2
  20. package/dist/site/components/Dropdown/manifest.js +1 -1
  21. package/dist/site/components/GoogleMap/component.js +3 -3
  22. package/dist/site/components/HTMLComponent/component.js +2 -2
  23. package/dist/site/components/HeadingTextBlock/component.js +1 -1
  24. package/dist/site/components/HeadingTextBlock/manifest.js +1 -1
  25. package/dist/site/components/HipaaIcon/component.js +2 -2
  26. package/dist/site/components/HipaaIcon/manifest.js +1 -1
  27. package/dist/site/components/Image3/component.js +2 -2
  28. package/dist/site/components/ImageReveal/component.js +2 -2
  29. package/dist/site/components/ImageReveal/manifest.js +1 -1
  30. package/dist/site/components/Line/component.js +1 -1
  31. package/dist/site/components/LinkBar/component.js +2 -2
  32. package/dist/site/components/LinkBar/manifest.js +1 -1
  33. package/dist/site/components/Logo/component.js +1 -1
  34. package/dist/site/components/Logo/manifest.js +1 -1
  35. package/dist/site/components/Logo/sdk.js +1 -1
  36. package/dist/site/components/Lottie/component.js +3 -3
  37. package/dist/site/components/Lottie/manifest.js +1 -1
  38. package/dist/site/components/MarkdownBlock/component.js +2 -2
  39. package/dist/site/components/MarkdownBlock/manifest.js +1 -1
  40. package/dist/site/components/Menu/component.js +3 -3
  41. package/dist/site/components/Menu/manifest.js +2 -3
  42. package/dist/site/components/MultiStateBox/component.js +1 -1
  43. package/dist/site/components/MultiStateBox/manifest.js +1 -1
  44. package/dist/site/components/ProgressBar/component.js +1 -1
  45. package/dist/site/components/ProgressBar/manifest.js +1 -1
  46. package/dist/site/components/ProgressBar/sdk.js +1 -1
  47. package/dist/site/components/RadioButtons/component.js +1 -1
  48. package/dist/site/components/RadioButtons/manifest.js +1 -1
  49. package/dist/site/components/Repeater/component.js +2 -2
  50. package/dist/site/components/Repeater/manifest.js +1 -1
  51. package/dist/site/components/ShareButtons/component.js +2 -2
  52. package/dist/site/components/ShareButtons/manifest.js +1 -1
  53. package/dist/site/components/Slideshow/component.js +1 -1
  54. package/dist/site/components/Tabs/component.js +1 -1
  55. package/dist/site/components/Tabs/manifest.js +1 -1
  56. package/dist/site/components/TextBox/component.js +1 -1
  57. package/dist/site/components/TextBox/manifest.js +1 -1
  58. package/dist/site/components/TextEffects3d/component.js +1 -1
  59. package/dist/site/components/TextEffects3d/manifest.js +1 -1
  60. package/dist/site/components/TextEffectsBauhaus/component.js +1 -1
  61. package/dist/site/components/TextEffectsBauhaus/manifest.js +1 -1
  62. package/dist/site/components/TextEffectsGlass/component.js +1 -1
  63. package/dist/site/components/TextEffectsGlass/manifest.js +1 -1
  64. package/dist/site/components/TextEffectsGlitch/component.js +1 -1
  65. package/dist/site/components/TextEffectsGlitch/manifest.js +1 -1
  66. package/dist/site/components/TextEffectsLetterPress/component.js +1 -1
  67. package/dist/site/components/TextEffectsLetterPress/manifest.js +1 -1
  68. package/dist/site/components/TextEffectsMatrix/component.js +1 -1
  69. package/dist/site/components/TextEffectsMatrix/manifest.js +1 -1
  70. package/dist/site/components/TextEffectsNeonSign/component.js +1 -1
  71. package/dist/site/components/TextEffectsNeonSign/manifest.js +1 -1
  72. package/dist/site/components/TextEffectsNoisy/component.js +1 -1
  73. package/dist/site/components/TextEffectsNoisy/manifest.js +1 -1
  74. package/dist/site/components/TextEffectsOutlineOut/component.js +2 -2
  75. package/dist/site/components/TextEffectsOutlineOut/manifest.js +1 -1
  76. package/dist/site/components/TextEffectsRetro/component.js +1 -1
  77. package/dist/site/components/TextEffectsRetro/manifest.js +1 -1
  78. package/dist/site/components/TextEffectsShook/component.js +1 -1
  79. package/dist/site/components/TextEffectsShook/manifest.js +1 -1
  80. package/dist/site/components/TextEffectsSticker/component.js +1 -1
  81. package/dist/site/components/TextEffectsSticker/manifest.js +2 -2
  82. package/dist/site/components/TextEffectsStriped/component.js +1 -1
  83. package/dist/site/components/TextEffectsStriped/manifest.js +1 -1
  84. package/dist/site/components/TextInput/component.js +2 -2
  85. package/dist/site/components/TextInput/manifest.js +1 -1
  86. package/dist/site/components/TextMarquee/component.js +1 -1
  87. package/dist/site/components/TimePicker/component.js +2 -2
  88. package/dist/site/components/TimePicker/manifest.js +1 -1
  89. package/dist/site/components/TransparentVideo/component.js +2 -2
  90. package/dist/site/components/VideoScrub/VideoScrub.types.d.ts +37 -0
  91. package/dist/site/components/VideoScrub/component.js +334 -34
  92. package/dist/site/components/VideoScrub/constants.d.ts +8 -3
  93. package/dist/site/components/VideoScrub/css.css +75 -2
  94. package/dist/site/components/VideoScrub/hooks/useScrubProgress.d.ts +4 -2
  95. package/dist/site/components/VideoScrub/hooks/useTimeframes.d.ts +23 -0
  96. package/dist/site/components/VideoScrub/manifest.js +268 -6
  97. package/dist/site/components/VideoScrub/timeframes/index.d.ts +1 -1
  98. package/dist/site/components/VideoScrub/timeframes/types.d.ts +1 -1
  99. package/dist/site/components/VideoScrub/timeframes/useActiveTimeframeIndex.d.ts +2 -0
  100. package/dist/site/components/VideoScrub/utils.d.ts +19 -5
  101. package/dist/site/components/chunks/AnimatedIcon.js +1 -1
  102. package/dist/site/components/chunks/Button.js +2 -2
  103. package/dist/site/components/chunks/Image.js +1 -1
  104. package/dist/site/components/chunks/Link.js +1 -1
  105. package/dist/site/components/chunks/Patterns.js +1 -1
  106. package/dist/site/components/chunks/ResponsiveBox.js +1 -1
  107. package/dist/site/components/chunks/TextEffectsShared.js +2 -2
  108. package/dist/site/components/chunks/a11y.js +4 -4
  109. package/dist/site/components/chunks/constants10.js +20 -65
  110. package/dist/site/components/chunks/constants11.js +12 -14
  111. package/dist/site/components/chunks/constants12.js +9 -9
  112. package/dist/site/components/chunks/constants13.js +8 -10
  113. package/dist/site/components/chunks/constants14.js +13 -9
  114. package/dist/site/components/chunks/constants15.js +17 -14
  115. package/dist/site/components/chunks/constants16.js +12 -17
  116. package/dist/site/components/chunks/constants17.js +13 -11
  117. package/dist/site/components/chunks/constants18.js +96 -21
  118. package/dist/site/components/chunks/constants19.js +50 -92
  119. package/dist/site/components/chunks/constants2.js +126 -47
  120. package/dist/site/components/chunks/constants20.js +50 -54
  121. package/dist/site/components/chunks/constants21.js +52 -49
  122. package/dist/site/components/chunks/constants22.js +310 -43
  123. package/dist/site/components/chunks/constants23.js +65 -310
  124. package/dist/site/components/chunks/constants24.js +99 -70
  125. package/dist/site/components/chunks/constants25.js +30 -101
  126. package/dist/site/components/chunks/constants26.js +17 -35
  127. package/dist/site/components/chunks/constants27.js +447 -16
  128. package/dist/site/components/chunks/constants28.js +29 -441
  129. package/dist/site/components/chunks/constants29.js +78 -26
  130. package/dist/site/components/chunks/constants3.js +84 -118
  131. package/dist/site/components/chunks/constants30.js +15 -85
  132. package/dist/site/components/chunks/constants31.js +42 -11
  133. package/dist/site/components/chunks/constants32.js +45 -41
  134. package/dist/site/components/chunks/constants33.js +24 -49
  135. package/dist/site/components/chunks/constants34.js +56 -25
  136. package/dist/site/components/chunks/constants35.js +13 -58
  137. package/dist/site/components/chunks/constants36.js +206 -14
  138. package/dist/site/components/chunks/constants37.js +153 -182
  139. package/dist/site/components/chunks/constants38.js +49 -162
  140. package/dist/site/components/chunks/constants39.js +102 -51
  141. package/dist/site/components/chunks/constants4.js +13 -88
  142. package/dist/site/components/chunks/constants40.js +39 -69
  143. package/dist/site/components/chunks/constants41.js +79 -72
  144. package/dist/site/components/chunks/constants42.js +77 -83
  145. package/dist/site/components/chunks/constants43.js +56 -75
  146. package/dist/site/components/chunks/constants5.js +19 -10
  147. package/dist/site/components/chunks/constants6.js +14 -14
  148. package/dist/site/components/chunks/constants7.js +10 -11
  149. package/dist/site/components/chunks/constants8.js +14 -14
  150. package/dist/site/components/chunks/constants9.js +65 -22
  151. package/dist/site/components/chunks/customElementInit.js +1 -1
  152. package/dist/site/components/chunks/index4.js +3 -2133
  153. package/dist/site/components/chunks/index5.js +2080 -1414
  154. package/dist/site/components/chunks/index6.js +1467 -3
  155. package/dist/site/components/chunks/manifestBase.js +1 -1
  156. package/dist/site/components/chunks/parseHtml.js +1 -1
  157. package/dist/site/components/chunks/parseSvg.js +1 -1
  158. package/dist/site/components/chunks/types.js +61 -0
  159. package/dist/site/components/chunks/useConsentPolicyProps.js +2 -2
  160. package/dist/site/components/chunks/utils2.js +1 -1
  161. package/dist/site/components/extensions.js +1 -1
  162. package/package.json +2 -2
  163. package/dist/site/components/chunks/constants44.js +0 -72
@@ -1,10 +1,10 @@
1
- import { D as DATA, A as Archetype, L as LAYOUT } from "../chunks/chunk-EVX7ZUBD.js";
1
+ import { b as DISPLAY_GROUPS, C as CSS_PROPERTIES, M as MEDIA, D as DATA, E as ELEMENTS, L as LAYOUT, c as ContainerType, A as Archetype } from "../chunks/chunk-EVX7ZUBD.js";
2
2
  import { V as VideoCategoryTypes } from "../chunks/types.impl.js";
3
- import { S as ScrollSpeed, R as ROOT_CLASS } from "../chunks/constants2.js";
3
+ import { k as TIMEFRAMES_GROUP_KEY, a as ScrollSpeed, j as ScrubStart, h as TIMEFRAMES_LAYER_CLASS, T as TIMEFRAME_CONTENT_CLASS, l as MAX_COUNT, R as ROOT_CLASS } from "../chunks/types.js";
4
4
  const manifest = {
5
- id: "c3bdf192-6423-4d70-a0f5-d5542d6a3e3f",
6
- type: "wixEditorElements.VideoScrub__DEV__v1",
7
- description: "A video that plays by page scroll: while the visitor scrolls past it, the video stays on screen and its time follows the scroll.",
5
+ id: "f67effcb-a591-4156-adee-445134fe12da",
6
+ type: "wixEditorElements.VideoScrub__DEV__v5",
7
+ description: "A video that plays by page scroll: while the visitor scrolls past it, the video stays on screen and its time follows the scroll. Timeframes show elements over the video during parts of it.",
8
8
  installation: {
9
9
  initialSize: {
10
10
  width: {
@@ -29,6 +29,18 @@ const manifest = {
29
29
  },
30
30
  disableDeletion: true
31
31
  },
32
+ scrubStart: {
33
+ displayName: "Starts when video reaches",
34
+ dataType: DATA.DATA_TYPE.textEnum,
35
+ defaultValue: ScrubStart.top,
36
+ [DATA.DATA_TYPE.textEnum]: {
37
+ options: [
38
+ { value: ScrubStart.bottom, displayName: "Bottom of screen" },
39
+ { value: ScrubStart.center, displayName: "Center of screen" },
40
+ { value: ScrubStart.top, displayName: "Top of screen" }
41
+ ]
42
+ }
43
+ },
32
44
  scrollSpeed: {
33
45
  displayName: "Scroll speed",
34
46
  dataType: DATA.DATA_TYPE.textEnum,
@@ -40,6 +52,252 @@ const manifest = {
40
52
  { value: ScrollSpeed.fast, displayName: "Fast" }
41
53
  ]
42
54
  }
55
+ },
56
+ // Time ranges on the video. Each one owns a container of elements, shown over the video while
57
+ // the time is inside it. The Timeframes panel edits them (TimelineBox rules, renamed).
58
+ timeframes: {
59
+ displayName: "Timeframes",
60
+ dataType: DATA.DATA_TYPE.arrayItems,
61
+ [DATA.DATA_TYPE.arrayItems]: {
62
+ maxSize: MAX_COUNT,
63
+ data: {
64
+ items: {
65
+ // Our own stable id: runtime items have no `_id`. A name ending in `Id` stops the
66
+ // editor from making `_id` (TimelineBox finding), so it is `Identifier`.
67
+ timeframeIdentifier: {
68
+ displayName: "Timeframe Identifier",
69
+ dataType: DATA.DATA_TYPE.text
70
+ },
71
+ // The editor's item list reads `item.name`.
72
+ name: {
73
+ displayName: "Name",
74
+ dataType: DATA.DATA_TYPE.text
75
+ },
76
+ startMs: {
77
+ displayName: "Start Ms",
78
+ dataType: DATA.DATA_TYPE.number
79
+ },
80
+ endMs: {
81
+ displayName: "End Ms",
82
+ dataType: DATA.DATA_TYPE.number
83
+ },
84
+ container: {
85
+ displayName: "Timeframe",
86
+ dataType: DATA.DATA_TYPE.container,
87
+ [DATA.DATA_TYPE.container]: {
88
+ selector: `.${TIMEFRAME_CONTENT_CLASS}`,
89
+ containerType: ContainerType.simple,
90
+ simple: {
91
+ displayName: "Timeframe",
92
+ behaviors: { selectable: true },
93
+ // Always the size of the stage, like MultiStateBox's state container.
94
+ layout: {
95
+ resizeDirection: LAYOUT.RESIZE_DIRECTION.none
96
+ }
97
+ }
98
+ }
99
+ },
100
+ // Stored only for now: missing means 1.
101
+ scrollSensitivity: {
102
+ displayName: "Scroll Sensitivity",
103
+ dataType: DATA.DATA_TYPE.number
104
+ }
105
+ }
106
+ }
107
+ }
108
+ },
109
+ activeTimeframeIndex: {
110
+ displayName: "Active Timeframe Index",
111
+ dataType: DATA.DATA_TYPE.number,
112
+ defaultValue: 0
113
+ }
114
+ },
115
+ displayFilters: {
116
+ data: { hide: ["activeTimeframeIndex"] }
117
+ },
118
+ elements: {
119
+ // The layer over the video that holds the timeframes. Only its label is set here.
120
+ timeframesLayer: {
121
+ elementType: ELEMENTS.ELEMENT_TYPE.inlineElement,
122
+ inlineElement: {
123
+ displayName: "Timeframes",
124
+ selector: `.${TIMEFRAMES_LAYER_CLASS}`,
125
+ behaviors: {
126
+ selectable: false
127
+ },
128
+ data: {
129
+ a11y: {
130
+ dataType: DATA.DATA_TYPE.a11y,
131
+ [DATA.DATA_TYPE.a11y]: {
132
+ attributes: [DATA.A11Y_ATTRIBUTES.ariaLabel]
133
+ }
134
+ }
135
+ }
136
+ }
137
+ }
138
+ },
139
+ // Custom properties, not cssProperties: Studio puts cssProperties on the root, and the root is
140
+ // the tall scroll track. The sticky stage reads these (VideoScrub.module.scss). Same set as
141
+ // VideoUpload, but the borders are per side (Tabs pattern).
142
+ cssCustomProperties: {
143
+ maskImage: {
144
+ displayName: "Mask",
145
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.maskImage,
146
+ defaultValue: "none",
147
+ maskImage: {
148
+ vectorArtCategory: MEDIA.VECTOR_ART_CATEGORY.SHAPE_LOCATION,
149
+ imageTypes: [CSS_PROPERTIES.IMAGE_TYPE.url]
150
+ }
151
+ },
152
+ boxShadow: {
153
+ displayName: "Shadow",
154
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.boxShadow,
155
+ defaultValue: "none"
156
+ },
157
+ "border-width-top": {
158
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderTopWidth,
159
+ displayName: "Border Width Top",
160
+ defaultValue: "0px"
161
+ },
162
+ "border-width-inline-end": {
163
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineEndWidth,
164
+ displayName: "Border Width End",
165
+ defaultValue: "0px"
166
+ },
167
+ "border-width-bottom": {
168
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderBottomWidth,
169
+ displayName: "Border Width Bottom",
170
+ defaultValue: "0px"
171
+ },
172
+ "border-width-inline-start": {
173
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineStartWidth,
174
+ displayName: "Border Width Start",
175
+ defaultValue: "0px"
176
+ },
177
+ "border-color-top": {
178
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderTopColor,
179
+ displayName: "Border Color Top",
180
+ defaultValue: "transparent"
181
+ },
182
+ "border-color-inline-end": {
183
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineEndColor,
184
+ displayName: "Border Color End",
185
+ defaultValue: "transparent"
186
+ },
187
+ "border-color-bottom": {
188
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderBottomColor,
189
+ displayName: "Border Color Bottom",
190
+ defaultValue: "transparent"
191
+ },
192
+ "border-color-inline-start": {
193
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineStartColor,
194
+ displayName: "Border Color Start",
195
+ defaultValue: "transparent"
196
+ },
197
+ "border-style-top": {
198
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderTopStyle,
199
+ displayName: "Border Style Top",
200
+ defaultValue: "solid"
201
+ },
202
+ "border-style-inline-end": {
203
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineEndStyle,
204
+ displayName: "Border Style End",
205
+ defaultValue: "solid"
206
+ },
207
+ "border-style-bottom": {
208
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderBottomStyle,
209
+ displayName: "Border Style Bottom",
210
+ defaultValue: "solid"
211
+ },
212
+ "border-style-inline-start": {
213
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderInlineStartStyle,
214
+ displayName: "Border Style Start",
215
+ defaultValue: "solid"
216
+ },
217
+ borderStartStartRadius: {
218
+ displayName: "Top Start Corner",
219
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderStartStartRadius,
220
+ defaultValue: "0px"
221
+ },
222
+ borderStartEndRadius: {
223
+ displayName: "Top End Corner",
224
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderStartEndRadius,
225
+ defaultValue: "0px"
226
+ },
227
+ borderEndStartRadius: {
228
+ displayName: "Bottom Start Corner",
229
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderEndStartRadius,
230
+ defaultValue: "0px"
231
+ },
232
+ borderEndEndRadius: {
233
+ displayName: "Bottom End Corner",
234
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.borderEndEndRadius,
235
+ defaultValue: "0px"
236
+ }
237
+ },
238
+ displayGroups: {
239
+ [TIMEFRAMES_GROUP_KEY]: {
240
+ displayName: "Timeframe",
241
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.arrayItems,
242
+ arrayItems: {
243
+ arrayItems: "timeframes",
244
+ selectedItemIndex: "activeTimeframeIndex",
245
+ // A new VideoScrub has no timeframes, so "nothing selected" is a normal state.
246
+ allowNoSelection: true
247
+ }
248
+ },
249
+ borderColorGroup: {
250
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.borderColor,
251
+ [DISPLAY_GROUPS.GROUP_TYPE.borderColor]: {
252
+ top: "border-color-top",
253
+ right: "border-color-inline-end",
254
+ bottom: "border-color-bottom",
255
+ left: "border-color-inline-start"
256
+ }
257
+ },
258
+ borderWidthGroup: {
259
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.borderWidth,
260
+ [DISPLAY_GROUPS.GROUP_TYPE.borderWidth]: {
261
+ top: "border-width-top",
262
+ right: "border-width-inline-end",
263
+ bottom: "border-width-bottom",
264
+ left: "border-width-inline-start"
265
+ }
266
+ },
267
+ borderStyleGroup: {
268
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.borderStyle,
269
+ [DISPLAY_GROUPS.GROUP_TYPE.borderStyle]: {
270
+ top: "border-style-top",
271
+ right: "border-style-inline-end",
272
+ bottom: "border-style-bottom",
273
+ left: "border-style-inline-start"
274
+ }
275
+ },
276
+ // Per side, so a breakpoint can override one side only (like Tabs).
277
+ borderGroup: {
278
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.border,
279
+ [DISPLAY_GROUPS.GROUP_TYPE.border]: {
280
+ color: "displayGroups.borderColorGroup",
281
+ width: "displayGroups.borderWidthGroup",
282
+ style: "displayGroups.borderStyleGroup"
283
+ }
284
+ },
285
+ cornersGroup: {
286
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.borderRadius,
287
+ displayName: "Corner radius",
288
+ borderRadius: {
289
+ topLeft: "borderStartStartRadius",
290
+ topRight: "borderStartEndRadius",
291
+ bottomLeft: "borderEndStartRadius",
292
+ bottomRight: "borderEndEndRadius"
293
+ }
294
+ },
295
+ // The Settings panel does not follow the `data` key order.
296
+ orderedDataGroup: {
297
+ groupType: DISPLAY_GROUPS.GROUP_TYPE.data,
298
+ data: {
299
+ items: ["video", "scrubStart", "scrollSpeed"]
300
+ }
43
301
  }
44
302
  }
45
303
  },
@@ -47,7 +305,10 @@ const manifest = {
47
305
  client: {
48
306
  componentUrl: "./site/components/VideoScrub/component.tsx",
49
307
  dependencies: {
50
- serviceDependencies: ["@wix/viewer-service-environment"]
308
+ serviceDependencies: [
309
+ "@wix/viewer-service-environment",
310
+ "@wix/viewer-service-translations"
311
+ ]
51
312
  }
52
313
  },
53
314
  editor: {
@@ -55,6 +316,7 @@ const manifest = {
55
316
  dependencies: {
56
317
  serviceDependencies: [
57
318
  "@wix/viewer-service-environment",
319
+ "@wix/viewer-service-translations",
58
320
  "@wix/site-service-editor-context"
59
321
  ]
60
322
  }
@@ -8,6 +8,6 @@ export { add, createInitial, edgeLimits, fitToDuration, moveTimeframe, moveLimit
8
8
  export type { Edge } from './edit';
9
9
  export { activeAt } from './query';
10
10
  export { watchVideoTime } from './watchVideoTime';
11
- export { useActiveTimeframeIndex } from './useActiveTimeframeIndex';
11
+ export { indexAt, useActiveTimeframeIndex } from './useActiveTimeframeIndex';
12
12
  export { TimeframeLayer } from './TimeframeLayer';
13
13
  export type { TimeframeLayerItem, TimeframeLayerProps } from './TimeframeLayer';
@@ -36,7 +36,7 @@ export declare const MAX_COUNT = 40;
36
36
  * `selector` points at it, like Accordion's `.item-content`. The editor needs this selector to find
37
37
  * each container. (Saves can still fail with SCHEMA_REFERENCES_NOT_FOUND; that is a server bug.)
38
38
  */
39
- export declare const TIMEFRAME_CONTENT_CLASS = "timeframe-content";
39
+ export declare const TIMEFRAME_CONTENT_CLASS = "video-scrub-timeframe-content";
40
40
  /** Length of a new timeframe from createInitial and add, when there is room. */
41
41
  export declare const DEFAULT_TIMEFRAME_MS = 5000;
42
42
  export type TimeframeErrorCode = 'badTime' | 'tooShort' | 'outOfRange' | 'notSorted' | 'overlap' | 'tooMany' | 'notFound' | 'onBoundary' | 'inGap' | 'insideTimeframe' | 'noRoom' | 'badSensitivity' | 'badItem' | 'badKey' | 'duplicateKey' | 'duplicateId';
@@ -1,4 +1,6 @@
1
1
  import { TimeframeTiming } from './types';
2
+ /** The index of the timeframe at `timeMs`, or undefined in a gap or for a bad duration. */
3
+ export declare function indexAt<T extends TimeframeTiming>(timeframes: ReadonlyArray<T>, timeMs: number, durationMs: number | undefined): number | undefined;
2
4
  /**
3
5
  * The index of the timeframe showing in `video` now. It re-renders only when the index changes.
4
6
  * `durationMs` comes from the data. Undefined or invalid gives undefined.
@@ -1,6 +1,6 @@
1
1
  import { VideoMedia } from '@wix/video';
2
- import { ScrollSpeed } from './VideoScrub.types';
3
- /** How far the visitor scrolls while the stage is stuck, in vh. */
2
+ import { ScrubStart, ScrollSpeed } from './VideoScrub.types';
3
+ /** How far the visitor scrolls from the first frame to the last, in vh. */
4
4
  export declare const getScrollLengthVh: (duration: number, speed?: ScrollSpeed) => number;
5
5
  /**
6
6
  * The video's height / width, from its saved sources (or poster). The stage falls back to it when
@@ -8,7 +8,21 @@ export declare const getScrollLengthVh: (duration: number, speed?: ScrollSpeed)
8
8
  */
9
9
  export declare const getVideoRatio: (video?: VideoMedia) => number | undefined;
10
10
  /**
11
- * Scroll progress through the tall root, 0 to 1: how far the sticky stage has moved down its
12
- * root. 0 until it sticks, 1 once it lets go, so the header and Wix Ads offsets need no math here.
11
+ * The scroll space under the stage, as a CSS height. An earlier start uses part of the scroll
12
+ * length before the stage sticks (the pre-roll), so the stuck part gets that much shorter. The
13
+ * video moves the same amount per scroll for every start.
13
14
  */
14
- export declare const getScrubProgress: (root: Element, stage: Element) => number;
15
+ export declare const getScrollSpaceHeight: (duration: number, speed: ScrollSpeed, start: ScrubStart) => string;
16
+ /**
17
+ * Scroll progress, 0 to 1. 0 while the top of the root is below the start line, 1 once the
18
+ * sticky stage lets go. In between it follows the scroll at the same rate: first the pre-roll,
19
+ * while the stage moves up to its sticky top, then while it is stuck and moves down its root.
20
+ *
21
+ * The stuck part is how far the stage moved down its root, so the header and Wix Ads offsets need
22
+ * no math there. `viewportHeight` and `stickyTop` are used only for the pre-roll of an early start.
23
+ */
24
+ export declare const getScrubProgress: (root: Element, stage: Element, { start, viewportHeight, stickyTop, }: {
25
+ start: ScrubStart;
26
+ viewportHeight: number;
27
+ stickyTop: number;
28
+ }) => number;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useRef, useImperativeHandle, useCallback, useMemo } from "react";
3
3
  import { p as parseSvg } from "./parseSvg.js";
4
- import { A as AnimatedSvgIds, a as AnimatedDataAttributes, b as AnimationDirection, T as TestIds, D as DEFAULT_ANIMATION_DURATION } from "./constants20.js";
4
+ import { A as AnimatedSvgIds, a as AnimatedDataAttributes, b as AnimationDirection, T as TestIds, D as DEFAULT_ANIMATION_DURATION } from "./constants19.js";
5
5
  import { c as cn } from "./index9.js";
6
6
  const AnimatedSvg = forwardRef(
7
7
  ({ svgContent, reducedMotion = false, duration }, ref) => {
@@ -7,8 +7,8 @@ import { a as getDataAttributes, g as getQaDataAttributes } from "./dataUtils.js
7
7
  import { f as formatClassNames } from "./classNames.js";
8
8
  import { I as IconAnimationTriggers } from "./Button.types.js";
9
9
  import AnimatedIconWithReducedMotion from "../AnimatedIcon/component.js";
10
- import { T as TRANSITION_DURATION, D as DesignStates, S as SEMANTIC_CLASS_NAMES, a as TestIds, C as COMPONENT_TYPE } from "./constants22.js";
11
- import { d as activateByEnterButton, a as activateBySpaceOrEnterButton, r as removeAriaPrefix, g as getAccessibilityAttributesSpread } from "./a11y.js";
10
+ import { T as TRANSITION_DURATION, D as DesignStates, S as SEMANTIC_CLASS_NAMES, a as TestIds, C as COMPONENT_TYPE } from "./constants21.js";
11
+ import { e as activateByEnterButton, a as activateBySpaceOrEnterButton, r as removeAriaPrefix, g as getAccessibilityAttributesSpread } from "./a11y.js";
12
12
  import { i as isValidLink } from "./Link.js";
13
13
  import { d as defineStaticService } from "./staticService.js";
14
14
  import { d as defineService } from "./index8.js";
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { i as imageKit, g as getPlaceholder } from "./index5.js";
2
+ import { i as imageKit, g as getPlaceholder } from "./index6.js";
3
3
  const image = "image__WopE9";
4
4
  const styles = {
5
5
  image
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
- import { a as activateBySpaceOrEnterButton, c as activateBySpaceButton, d as activateByEnterButton } from "./a11y.js";
3
+ import { a as activateBySpaceOrEnterButton, d as activateBySpaceButton, e as activateByEnterButton } from "./a11y.js";
4
4
  import { a as getDataAttributes } from "./dataUtils.js";
5
5
  const TestIds = {
6
6
  root: "linkElement"
@@ -2,7 +2,7 @@ import React__default from "react";
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { c as clsx } from "./clsx.js";
4
4
  import { a as getDataAttributes } from "./dataUtils.js";
5
- import { T as TestIds } from "./constants10.js";
5
+ import { T as TestIds } from "./constants9.js";
6
6
  function bidiFactory() {
7
7
  var bidi2 = (function(exports$1) {
8
8
  var DATA = {
@@ -2,7 +2,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { c as clsx } from "./clsx.js";
4
4
  import { f as formatClassNames } from "./classNames.js";
5
- import { e as getTabIndexAttribute, h as getAriaAttributes } from "./a11y.js";
5
+ import { f as getTabIndexAttribute, h as getAriaAttributes } from "./a11y.js";
6
6
  import { a as getDataAttributes } from "./dataUtils.js";
7
7
  const clickable = "clickable__Nql0c";
8
8
  const commonStyles = {
@@ -2,8 +2,8 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import React__default from "react";
3
3
  import { f as formatClassNames } from "./classNames.js";
4
4
  import { a as getDataAttributes } from "./dataUtils.js";
5
- import { e as getTabIndexAttribute } from "./a11y.js";
6
- import { D as DEFAULT_TEXT_DIRECTION, a as DEFAULT_HTML_TAG, d as dataHooks, T as TestIds } from "./constants10.js";
5
+ import { f as getTabIndexAttribute } from "./a11y.js";
6
+ import { D as DEFAULT_TEXT_DIRECTION, a as DEFAULT_HTML_TAG, d as dataHooks, T as TestIds } from "./constants9.js";
7
7
  import { c as clsx } from "./clsx.js";
8
8
  import { L as Link } from "./Link.js";
9
9
  const semanticClassNames = {
@@ -110,10 +110,10 @@ export {
110
110
  HAS_CUSTOM_FOCUS_CLASSNAME as H,
111
111
  activateBySpaceOrEnterButton as a,
112
112
  getAccessibilityAttributes as b,
113
- activateBySpaceButton as c,
114
- activateByEnterButton as d,
115
- getTabIndexAttribute as e,
116
- convertA11yKeysToHtmlFormat as f,
113
+ convertA11yKeysToHtmlFormat as c,
114
+ activateBySpaceButton as d,
115
+ activateByEnterButton as e,
116
+ getTabIndexAttribute as f,
117
117
  getAccessibilityAttributesSpread as g,
118
118
  getAriaAttributes as h,
119
119
  removeAriaPrefix as r
@@ -1,73 +1,28 @@
1
- const SharedDisplayNames = {
2
- root: {
3
- displayName: "Text Effects"
4
- },
5
- data: {
6
- text: "Text",
7
- link: "Link",
8
- isDecorative: "Decorative",
9
- textDirection: "Text Direction",
10
- patternScope: "Pattern Scope",
11
- a11y: "Accessibility"
12
- },
13
- cssProperties: {
14
- font: "Font",
15
- color: "Color",
16
- textLineHeight: "Line spacing",
17
- letterSpacing: "Letter spacing"
18
- },
19
- patternCssCustomProperties: {
20
- rotationIntensity: "Rotation Intensity",
21
- offsetIntensity: "Offset Intensity",
22
- patternPreset: "Pattern Preset",
23
- isCapitalize: "Capitalize"
24
- },
25
- textDirection: {
26
- inherit: "Inherit",
27
- ltr: "Left to Right",
28
- rtl: "Right to Left"
29
- },
30
- patternScope: {
31
- none: "None",
32
- character: "Character",
33
- word: "Word"
34
- }
35
- };
1
+ import { S as SharedDisplayNames } from "./constants9.js";
36
2
  const TestIds = {
37
3
  viewer: {
38
- link: "text-effects-shared-link",
39
- visuallyHidden: "text-effects-shared-visually-hidden",
40
- patternUnit: "text-effects-shared-pattern-unit"
4
+ container: "TextEffectsNoisy-container",
5
+ text: "TextEffectsNoisy-text"
41
6
  }
42
7
  };
43
- const DEFAULT_HTML_TAG = "div";
44
- const DEFAULT_TEXT_DIRECTION = "inherit";
45
- const dataHooks = {
46
- root: "text-effect"
8
+ const noiseIntensityConfig = {
9
+ start: 1,
10
+ end: 53,
11
+ step: 1
12
+ };
13
+ const COMPONENT_ID = "3f9c1e82-a7d6-4b5e-8c2a-9d4f6e3b7a1c";
14
+ const TEXT_TWIST_PANEL_ID = "0bba51ec-ca53-4662-acf6-ea71ffbb4f55";
15
+ const DisplayNames = {
16
+ ...SharedDisplayNames,
17
+ cssCustomProperties: {
18
+ textEffectsColor1: "Color",
19
+ squigglyLevel: "Noise intensity"
20
+ }
47
21
  };
48
- const blendModes = [
49
- "normal",
50
- "color",
51
- "color-burn",
52
- "color-dodge",
53
- "darken",
54
- "difference",
55
- "exclusion",
56
- "hard-light",
57
- "hue",
58
- "lighten",
59
- "luminosity",
60
- "multiply",
61
- "overlay",
62
- "saturation",
63
- "screen",
64
- "soft-light"
65
- ];
66
22
  export {
67
- DEFAULT_TEXT_DIRECTION as D,
68
- SharedDisplayNames as S,
23
+ COMPONENT_ID as C,
24
+ DisplayNames as D,
69
25
  TestIds as T,
70
- DEFAULT_HTML_TAG as a,
71
- blendModes as b,
72
- dataHooks as d
26
+ TEXT_TWIST_PANEL_ID as a,
27
+ noiseIntensityConfig as n
73
28
  };
@@ -1,28 +1,26 @@
1
- import { S as SharedDisplayNames } from "./constants10.js";
1
+ import { S as SharedDisplayNames } from "./constants9.js";
2
2
  const TestIds = {
3
3
  viewer: {
4
- container: "TextEffectsNoisy-container",
5
- text: "TextEffectsNoisy-text"
4
+ container: "TextEffectsNeonSign-container",
5
+ text: "TextEffectsNeonSign-text"
6
6
  }
7
7
  };
8
- const noiseIntensityConfig = {
9
- start: 1,
10
- end: 53,
11
- step: 1
12
- };
13
- const COMPONENT_ID = "3f9c1e82-a7d6-4b5e-8c2a-9d4f6e3b7a1c";
14
- const TEXT_TWIST_PANEL_ID = "0bba51ec-ca53-4662-acf6-ea71ffbb4f55";
8
+ const COMPONENT_ID = "8c1f4b9e-d3a7-4e2c-a5b8-7d9f1e6c4a2b";
9
+ const TEXT_TWIST_PANEL_ID = "37855762-0e6d-4818-85ed-73c9a844825f";
15
10
  const DisplayNames = {
16
11
  ...SharedDisplayNames,
17
12
  cssCustomProperties: {
18
- textEffectsColor1: "Color",
19
- squigglyLevel: "Noise intensity"
13
+ textColor: "Color",
14
+ shadowColor: "Color",
15
+ shadowOpacity: "Opacity",
16
+ shadowBlur: "Blur",
17
+ innerAnimationSpeed: "Speed",
18
+ disableInnerAnimation: "Animation"
20
19
  }
21
20
  };
22
21
  export {
23
22
  COMPONENT_ID as C,
24
23
  DisplayNames as D,
25
24
  TestIds as T,
26
- TEXT_TWIST_PANEL_ID as a,
27
- noiseIntensityConfig as n
25
+ TEXT_TWIST_PANEL_ID as a
28
26
  };
@@ -1,19 +1,19 @@
1
- import { S as SharedDisplayNames } from "./constants10.js";
1
+ import { S as SharedDisplayNames } from "./constants9.js";
2
2
  const TestIds = {
3
3
  viewer: {
4
- container: "TextEffectsNeonSign-container",
5
- text: "TextEffectsNeonSign-text"
4
+ container: "TextEffectsMatrix-container",
5
+ text: "TextEffectsMatrix-text"
6
6
  }
7
7
  };
8
- const COMPONENT_ID = "8c1f4b9e-d3a7-4e2c-a5b8-7d9f1e6c4a2b";
9
- const TEXT_TWIST_PANEL_ID = "37855762-0e6d-4818-85ed-73c9a844825f";
8
+ const COMPONENT_ID = "45e26ded-fab2-4208-b6ae-3514ddea4cb0";
9
+ const TEXT_TWIST_PANEL_ID = "ea4f3040-ce0b-44e3-a90b-7fcb74ba1a7b";
10
10
  const DisplayNames = {
11
11
  ...SharedDisplayNames,
12
12
  cssCustomProperties: {
13
- textColor: "Color",
14
- shadowColor: "Color",
15
- shadowOpacity: "Opacity",
16
- shadowBlur: "Blur",
13
+ textEffectsColor1: "Color",
14
+ maskPosition: "Position",
15
+ maskBlur: "Blur",
16
+ textBlur: "Spread",
17
17
  innerAnimationSpeed: "Speed",
18
18
  disableInnerAnimation: "Animation"
19
19
  }
@@ -1,21 +1,19 @@
1
- import { S as SharedDisplayNames } from "./constants10.js";
1
+ import { S as SharedDisplayNames } from "./constants9.js";
2
2
  const TestIds = {
3
3
  viewer: {
4
- container: "TextEffectsMatrix-container",
5
- text: "TextEffectsMatrix-text"
4
+ container: "TextEffectsLetterPress-container",
5
+ text: "TextEffectsLetterPress-text"
6
6
  }
7
7
  };
8
- const COMPONENT_ID = "45e26ded-fab2-4208-b6ae-3514ddea4cb0";
9
- const TEXT_TWIST_PANEL_ID = "ea4f3040-ce0b-44e3-a90b-7fcb74ba1a7b";
8
+ const COMPONENT_ID = "9d2a5c8f-e4b1-4f6d-b7a3-8e1c9f5d2b4a";
9
+ const TEXT_TWIST_PANEL_ID = "4f36b4fa-893a-4eb2-a1b3-7c82351f063b";
10
10
  const DisplayNames = {
11
11
  ...SharedDisplayNames,
12
12
  cssCustomProperties: {
13
+ shadow: "Shadow",
14
+ layerBlendMode: "Blend mode",
13
15
  textEffectsColor1: "Color",
14
- maskPosition: "Position",
15
- maskBlur: "Blur",
16
- textBlur: "Spread",
17
- innerAnimationSpeed: "Speed",
18
- disableInnerAnimation: "Animation"
16
+ textEffectsOpacityColor1: "opacity"
19
17
  }
20
18
  };
21
19
  export {