@wix/editor-react-components 1.2187.0 → 1.2189.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.
@@ -49,6 +49,7 @@ export type ButtonProps = {
49
49
  link?: ButtonLinkProps;
50
50
  type?: 'button' | 'submit';
51
51
  label?: string;
52
+ labelContent?: React.ReactNode;
52
53
  disabled?: boolean;
53
54
  className?: string;
54
55
  direction?: Direction;
@@ -9,6 +9,8 @@ type NavigationButtonsProps = {
9
9
  parentDirection?: Direction;
10
10
  siteDirection?: Direction;
11
11
  navigationButtonsProps?: Partial<ButtonProps>;
12
+ nextButtonLabel?: string;
13
+ prevButtonLabel?: string;
12
14
  };
13
- export declare const NavigationButtons: ({ nextDisabled, onNextClick, prevDisabled, onPrevClick, parentDirection, navigationButtonsProps, siteDirection, }: NavigationButtonsProps) => React.JSX.Element | null;
15
+ export declare const NavigationButtons: ({ nextDisabled, onNextClick, prevDisabled, onPrevClick, parentDirection, navigationButtonsProps, siteDirection, nextButtonLabel, prevButtonLabel, }: NavigationButtonsProps) => React.JSX.Element | null;
14
16
  export {};
@@ -29,6 +29,8 @@ type SlideshowDataProps = SdkFunctionClickableProps & SdkFunctionMouseHoverProps
29
29
  onChange?: (event?: React.SyntheticEvent) => void;
30
30
  onPlay?: () => void;
31
31
  onPause?: () => void;
32
+ nextButtonLabel?: string;
33
+ prevButtonLabel?: string;
32
34
  /** Utility prop that is not stored in the manifest data namespace. */
33
35
  rawAutoplay?: boolean;
34
36
  };
@@ -1,7 +1,7 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { useState, useRef, useEffect, useCallback, useMemo } from "react";
3
3
  import { c as clsx } from "../chunks/clsx.js";
4
- import { M as MOVEMENT_DIRECTION, A as AUTOPLAY_STATE, s as semanticClassNames, a as slideshowDataDefaults, S as SLIDESHOW_SLIDE_LTR_DIRECTION_EXPERIMENT } from "../chunks/Slideshow.semanticClassNames.js";
4
+ import { M as MOVEMENT_DIRECTION, A as AUTOPLAY_STATE, s as slideshowDataDefaults, a as semanticClassNames, S as SLIDESHOW_SLIDE_LTR_DIRECTION_EXPERIMENT } from "../chunks/Slideshow.semanticClassNames.js";
5
5
  import { B as Button } from "../chunks/Button.js";
6
6
  import { p as presetWrapperStyles } from "../chunks/presetWrapper.module.js";
7
7
  import { d as directionStyles } from "../chunks/direction.module.js";
@@ -145,6 +145,7 @@ const fadeIn = "fadeIn__CsW3Y";
145
145
  const fadeOut = "fadeOut__w2xZR";
146
146
  const transitionTypeInOut = "transition-type-in-out__W25dJ";
147
147
  const buttons = "buttons__Fx7T8";
148
+ const labelSizer = "labelSizer__RyeL0";
148
149
  const btnWrapper = "btnWrapper__T0ETG";
149
150
  const button = "button__y4atu";
150
151
  const prev = "prev__qz5A6";
@@ -195,6 +196,7 @@ const styles = {
195
196
  "transition-type-in-out": "transition-type-in-out__W25dJ",
196
197
  transitionTypeInOut,
197
198
  buttons,
199
+ labelSizer,
198
200
  btnWrapper,
199
201
  button,
200
202
  prev,
@@ -211,6 +213,10 @@ const styles = {
211
213
  controlsWrapper,
212
214
  controlsWrapperContent
213
215
  };
216
+ const LabelWithSizer = ({ visibleLabel, sizerLabel }) => /* @__PURE__ */ jsxs(Fragment, { children: [
217
+ /* @__PURE__ */ jsx("span", { children: visibleLabel }),
218
+ /* @__PURE__ */ jsx("span", { className: styles.labelSizer, "aria-hidden": "true", children: sizerLabel })
219
+ ] });
214
220
  const NavigationButtons = ({
215
221
  nextDisabled,
216
222
  onNextClick,
@@ -218,7 +224,9 @@ const NavigationButtons = ({
218
224
  onPrevClick,
219
225
  parentDirection,
220
226
  navigationButtonsProps,
221
- siteDirection
227
+ siteDirection,
228
+ nextButtonLabel = slideshowDataDefaults.nextButtonLabel,
229
+ prevButtonLabel = slideshowDataDefaults.prevButtonLabel
222
230
  }) => {
223
231
  var _a;
224
232
  const direction = navigationButtonsProps == null ? void 0 : navigationButtonsProps.direction;
@@ -248,8 +256,17 @@ const NavigationButtons = ({
248
256
  ),
249
257
  disabled: prevDisabled,
250
258
  ...navigationButtonsProps,
259
+ label: prevButtonLabel || void 0,
260
+ labelContent: prevButtonLabel ? /* @__PURE__ */ jsx(
261
+ LabelWithSizer,
262
+ {
263
+ visibleLabel: prevButtonLabel,
264
+ sizerLabel: nextButtonLabel
265
+ }
266
+ ) : void 0,
251
267
  a11y: {
252
- ariaLabel: "Previous"
268
+ ...navigationButtonsProps == null ? void 0 : navigationButtonsProps.a11y,
269
+ ariaLabel: prevButtonLabel || slideshowDataDefaults.prevButtonLabel
253
270
  }
254
271
  }
255
272
  ),
@@ -263,8 +280,17 @@ const NavigationButtons = ({
263
280
  ),
264
281
  disabled: nextDisabled,
265
282
  ...navigationButtonsProps,
283
+ label: nextButtonLabel || void 0,
284
+ labelContent: nextButtonLabel ? /* @__PURE__ */ jsx(
285
+ LabelWithSizer,
286
+ {
287
+ visibleLabel: nextButtonLabel,
288
+ sizerLabel: prevButtonLabel
289
+ }
290
+ ) : void 0,
266
291
  a11y: {
267
- ariaLabel: "Next"
292
+ ...navigationButtonsProps == null ? void 0 : navigationButtonsProps.a11y,
293
+ ariaLabel: nextButtonLabel || slideshowDataDefaults.nextButtonLabel
268
294
  }
269
295
  }
270
296
  )
@@ -508,6 +534,8 @@ const Slideshow = (props) => {
508
534
  showPauseButton = slideshowDataDefaults.showPauseButton,
509
535
  rawAutoplay = true,
510
536
  a11y,
537
+ nextButtonLabel,
538
+ prevButtonLabel,
511
539
  onChange: onChangeCallback,
512
540
  onPlay: onPlayCallback,
513
541
  onPause: onPauseCallback,
@@ -696,7 +724,9 @@ const Slideshow = (props) => {
696
724
  prevDisabled: !loop && activeSlideIndex === 0,
697
725
  parentDirection: direction,
698
726
  siteDirection,
699
- navigationButtonsProps
727
+ navigationButtonsProps,
728
+ nextButtonLabel,
729
+ prevButtonLabel
700
730
  }
701
731
  ),
702
732
  /* @__PURE__ */ jsx(
@@ -1,96 +1,112 @@
1
1
  export declare const DisplayNames: {
2
- root: {
3
- elementDisplayName: string;
4
- actions: {
5
- manageItems: string;
6
- };
7
- customActions: {
8
- animatedIcon: string;
9
- };
10
- data: {
11
- content: string;
12
- autoplay: string;
13
- loop: string;
14
- autoplayDelay: string;
15
- pauseOnHover: string;
16
- transitionType: string;
17
- transitionDirection: string;
18
- transitionDuration: string;
19
- slides: string;
20
- activeSlide: string;
21
- showPauseButton: string;
22
- };
23
- displayGroups: {
24
- slides: string;
25
- };
26
- cssCustomProperties: {
27
- 'animation-duration': string;
28
- orientation: string;
29
- 'navigation-buttons-position': string;
30
- 'navigation-buttons-arrangement': string;
31
- 'navigation-buttons-alignment': string;
32
- 'slide-indicators-position': string;
33
- 'controls-padding': string;
2
+ readonly root: {
3
+ readonly elementDisplayName: "Slideshow";
4
+ readonly actions: {
5
+ readonly manageItems: "Manage Slideshow";
6
+ };
7
+ readonly customActions: {
8
+ readonly animatedIcon: "Customize Icon";
9
+ };
10
+ readonly data: {
11
+ readonly content: "Box";
12
+ readonly autoplay: "Autoplay";
13
+ readonly loop: "Continuous loop";
14
+ readonly autoplayDelay: "Time on each slide (seconds)";
15
+ readonly pauseOnHover: "Pause on hover";
16
+ readonly transitionType: "Transitions";
17
+ readonly transitionDirection: "Transition direction";
18
+ readonly transitionDuration: "Transition duration (seconds)";
19
+ readonly slides: "Slide";
20
+ readonly activeSlide: "Active slide";
21
+ readonly showPauseButton: "Show pause & play button";
22
+ readonly nextButtonLabel: "Next navigation button text";
23
+ readonly prevButtonLabel: "Previous navigation button text";
24
+ };
25
+ readonly displayGroups: {
26
+ readonly slides: "Slides";
27
+ readonly buttonsText: "Buttons text";
28
+ };
29
+ readonly cssCustomProperties: {
30
+ readonly 'animation-duration': "Transition duration";
31
+ readonly orientation: "Orientation";
32
+ readonly 'icon-placement': "Icon placement";
33
+ readonly 'navigation-buttons-position': "Navigation button position";
34
+ readonly 'navigation-buttons-arrangement': "Navigation button arrangement";
35
+ readonly 'navigation-buttons-alignment': "Navigation button alignment";
36
+ readonly 'slide-indicators-position': "Slide indicator position";
37
+ readonly 'controls-padding': "Padding";
34
38
  };
35
39
  };
36
- transitionType: {
37
- options: {
38
- none: string;
39
- slide: string;
40
- crossFade: string;
41
- inOut: string;
40
+ readonly transitionType: {
41
+ readonly options: {
42
+ readonly none: "None";
43
+ readonly slide: "Slide";
44
+ readonly crossFade: "Cross-fade";
45
+ readonly inOut: "In-and-out";
42
46
  };
43
47
  };
44
- transitionDirection: {
45
- options: {
46
- rtl: string;
47
- ltr: string;
48
- ttb: string;
49
- btt: string;
48
+ readonly transitionDirection: {
49
+ readonly options: {
50
+ readonly rtl: "Right-to-left";
51
+ readonly ltr: "Left-to-right";
52
+ readonly ttb: "Top-to-bottom";
53
+ readonly btt: "Bottom-to-top";
50
54
  };
51
55
  };
52
- orientation: {
53
- options: {
54
- horizontal: string;
55
- vertical: string;
56
+ readonly orientation: {
57
+ readonly options: {
58
+ readonly horizontal: "Horizontal";
59
+ readonly vertical: "Vertical";
60
+ };
61
+ };
62
+ readonly iconPlacement: {
63
+ readonly horizontal: {
64
+ readonly nextToText: "Next to text";
65
+ readonly aboveText: "Above text";
66
+ readonly belowText: "Below text";
67
+ };
68
+ readonly vertical: {
69
+ readonly verticallyStacked: "Vertically stacked";
70
+ readonly beforeText: "Before text";
71
+ readonly afterText: "After text";
56
72
  };
57
73
  };
58
- position: {
59
- options: {
60
- top: string;
61
- center: string;
62
- bottom: string;
63
- end: string;
64
- middle: string;
65
- start: string;
74
+ readonly position: {
75
+ readonly options: {
76
+ readonly top: "Top";
77
+ readonly center: "Center";
78
+ readonly bottom: "Bottom";
79
+ readonly end: "End";
80
+ readonly middle: "Middle";
81
+ readonly start: "Start";
66
82
  };
67
83
  };
68
- arrangement: {
69
- options: {
70
- separated: string;
71
- together: string;
84
+ readonly arrangement: {
85
+ readonly options: {
86
+ readonly separated: "Separated";
87
+ readonly together: "Together";
72
88
  };
73
89
  };
74
- navigationButtons: {
75
- elementDisplayName: string;
76
- data: {
77
- icon: string;
90
+ readonly navigationButtons: {
91
+ readonly elementDisplayName: "Navigation buttons";
92
+ readonly data: {
93
+ readonly icon: "Icon";
78
94
  };
79
95
  };
80
- slideIndicators: {
81
- elementDisplayName: string;
82
- data: {
83
- indicatorMode: string;
96
+ readonly slideIndicators: {
97
+ readonly elementDisplayName: "Slide indicators";
98
+ readonly data: {
99
+ readonly indicatorMode: "Display slide indicators";
84
100
  };
85
- cssCustomProperties: {
86
- 'dot-width': string;
87
- 'dot-gap': string;
101
+ readonly cssCustomProperties: {
102
+ readonly 'dot-width': "Width";
103
+ readonly 'dot-gap': "Space between slide indicators";
88
104
  };
89
105
  };
90
- indicatorMode: {
91
- options: {
92
- max5: string;
93
- all: string;
106
+ readonly indicatorMode: {
107
+ readonly options: {
108
+ readonly max5: "Max 5";
109
+ readonly all: "All";
94
110
  };
95
111
  };
96
112
  };
@@ -104,6 +120,8 @@ export declare const slideshowDataDefaults: {
104
120
  readonly activeSlide: 0;
105
121
  readonly transitionDuration: 0;
106
122
  readonly showPauseButton: true;
123
+ readonly nextButtonLabel: "Next";
124
+ readonly prevButtonLabel: "Previous";
107
125
  };
108
126
  export declare const slideshowCssPropertiesDefaults: {
109
127
  readonly border: "none";
@@ -113,6 +131,8 @@ export declare const slideshowCssPropertiesDefaults: {
113
131
  export declare const slideshowCssCustomPropertiesDefaults: {
114
132
  readonly 'animation-duration': "0.5s";
115
133
  readonly orientation: "horizontal";
134
+ readonly 'icon-placement-horizontal': "next-to-text";
135
+ readonly 'icon-placement-vertical': "vertically-stacked";
116
136
  readonly 'navigation-buttons-position': "center";
117
137
  readonly 'navigation-buttons-arrangement': "separated";
118
138
  readonly 'navigation-buttons-alignment': "center";
@@ -124,6 +144,7 @@ export declare const navigationButtonsPositionFields: readonly ["navigation-butt
124
144
  export declare const navigationButtonsArrangementFields: readonly ["navigation-buttons-arrangement"];
125
145
  export declare const navigationButtonsAlignmentFields: readonly ["navigation-buttons-alignment"];
126
146
  export declare const slideIndicatorsPositionFields: readonly ["slide-indicators-position-horizontal", "slide-indicators-position-vertical"];
147
+ export declare const iconPlacementFields: readonly ["icon-placement-horizontal", "icon-placement-vertical"];
127
148
  export declare const AUTOPLAY_STATE: {
128
149
  readonly RUNNING: "running";
129
150
  readonly CANCELLED: "cancelled";
@@ -195,9 +195,11 @@
195
195
  height: var(--navigation-height, auto);
196
196
  flex-direction: var(--navigation-flex-direction, row);
197
197
  justify-content: var(--navigation-justify-content, space-between);
198
- align-items: var(--navigation-align-items, center);
198
+ align-items: var(--navigation-align-items, stretch);
199
199
  gap: var(--gap, 20px);
200
200
  isolation: isolate;
201
+ min-width: 0;
202
+ max-width: 100%;
201
203
  --base-font: var(--font, 14px sans-serif);
202
204
  --base-color: var(--color, rgba(0, 0, 0, 1));
203
205
  --base-alpha-color: var(--alpha-color, 1);
@@ -260,6 +262,12 @@
260
262
  --base-btn-min-width: var(--btn-min-width, min-content);
261
263
  --icon-direction-offset: 0deg;
262
264
  }
265
+ .buttons__Fx7T8 .labelSizer__RyeL0 {
266
+ display: block;
267
+ visibility: hidden;
268
+ height: 0;
269
+ overflow: hidden;
270
+ }
263
271
  .buttons__Fx7T8 .btnWrapper__T0ETG {
264
272
  display: flex;
265
273
  justify-content: var(--base-container-justify-content);
@@ -298,7 +306,7 @@
298
306
  --label-white-space: var(--base-label-white-space);
299
307
  --label-overflow: var(--base-label-overflow);
300
308
  --label-text-overflow: var(--base-label-text-overflow);
301
- --container-flex-direction: var(--base-container-flex-direction);
309
+ --container-flex-direction: var(--base-container-flex-direction) !important;
302
310
  --container-align-items: var(--base-container-align-items);
303
311
  --container-justify-content: var(--base-container-justify-content);
304
312
  --icon-order: var(--base-icon-order);
@@ -308,6 +316,11 @@
308
316
  );
309
317
  --btn-min-width: var(--base-btn-min-width);
310
318
  pointer-events: auto;
319
+ overflow: hidden;
320
+ overflow-wrap: break-word;
321
+ min-width: 0 !important;
322
+ max-width: 100%;
323
+ justify-content: center;
311
324
  }
312
325
  .buttons__Fx7T8 .button__y4atu svg {
313
326
  --computed-icon-rotation: calc(
@@ -323,7 +336,9 @@
323
336
  --border-start-end-radius: var(--base-border-start-start-radius);
324
337
  --border-end-start-radius: var(--base-border-end-end-radius);
325
338
  --border-end-end-radius: var(--base-border-end-start-radius);
326
- --container-flex-direction: var(--base-prev-container-flex-direction);
339
+ --container-flex-direction: var(
340
+ --base-prev-container-flex-direction
341
+ ) !important;
327
342
  }
328
343
  .buttons__Fx7T8 .prev__qz5A6 svg {
329
344
  --computed-icon-rotation: calc(
@@ -1,6 +1,6 @@
1
1
  import { E as ELEMENTS, C as CSS_PROPERTIES, D as DATA, a as ACTIONS, I as INTERACTIONS, b as DISPLAY_GROUPS, L as LAYOUT, c as ContainerType, A as Archetype } from "../chunks/chunk-JPMZBG44.js";
2
2
  import { g as getSelector } from "../chunks/manifest.js";
3
- import { D as DisplayNames, s as semanticClassNames, b as slideshowCssCustomPropertiesDefaults, c as slideshowCssPropertiesDefaults, a as slideshowDataDefaults } from "../chunks/Slideshow.semanticClassNames.js";
3
+ import { D as DisplayNames, a as semanticClassNames, b as slideshowCssCustomPropertiesDefaults, c as slideshowCssPropertiesDefaults, s as slideshowDataDefaults } from "../chunks/Slideshow.semanticClassNames.js";
4
4
  import { a as manifestMouseHover, b as manifestClickable, c as manifestChangeable } from "../chunks/manifestSdkMixins.js";
5
5
  const navigationButtons = {
6
6
  elementType: ELEMENTS.ELEMENT_TYPE.refElement,
@@ -9,15 +9,9 @@ const navigationButtons = {
9
9
  type: "wixEditorElements.Button",
10
10
  displayName: DisplayNames.navigationButtons.elementDisplayName,
11
11
  displayFilters: {
12
- elements: {
13
- hide: ["label"]
14
- },
15
12
  data: {
16
13
  hide: ["a11y", "link", "label", "iconCollapsed", "disabled"]
17
14
  },
18
- cssProperties: {
19
- hide: ["rowGap", "columnGap"]
20
- },
21
15
  cssCustomProperties: {
22
16
  hide: ["icon-position", "content-horizontal-alignment"]
23
17
  }
@@ -31,10 +25,6 @@ const navigationButtons = {
31
25
  iconCollapsed: { disableEditing: true },
32
26
  disabled: { disableEditing: true }
33
27
  },
34
- cssProperties: {
35
- rowGap: { disableEditing: true },
36
- columnGap: { disableEditing: true }
37
- },
38
28
  cssCustomProperties: {
39
29
  "icon-position": { disableEditing: true },
40
30
  "content-horizontal-alignment": { disableEditing: true }
@@ -139,7 +129,39 @@ const manifest = {
139
129
  presets: {
140
130
  [basePresetName]: {
141
131
  presetCssUrl: `./site/components/Slideshow/presets/${basePresetName}.css`,
142
- displayName: basePresetName
132
+ displayName: basePresetName,
133
+ presetDefaults: {
134
+ elements: {
135
+ navigationButtons: {
136
+ cssProperties: {
137
+ rowGap: { defaultValue: "4px" },
138
+ columnGap: { defaultValue: "4px" }
139
+ },
140
+ elements: {
141
+ label: {
142
+ cssProperties: {
143
+ display: { defaultValue: "none" },
144
+ font: {
145
+ defaultValue: "var(--wst-paragraph-3-font)"
146
+ },
147
+ color: {
148
+ defaultValue: "#650000"
149
+ },
150
+ letterSpacing: {
151
+ defaultValue: "0em"
152
+ },
153
+ lineHeight: {
154
+ defaultValue: "0em"
155
+ },
156
+ textTransform: {
157
+ defaultValue: "none"
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
143
165
  }
144
166
  },
145
167
  layout: {
@@ -285,6 +307,16 @@ const manifest = {
285
307
  displayName: DisplayNames.root.data.showPauseButton,
286
308
  defaultValue: slideshowDataDefaults.showPauseButton
287
309
  },
310
+ nextButtonLabel: {
311
+ dataType: DATA.DATA_TYPE.text,
312
+ displayName: DisplayNames.root.data.nextButtonLabel,
313
+ defaultValue: slideshowDataDefaults.nextButtonLabel
314
+ },
315
+ prevButtonLabel: {
316
+ dataType: DATA.DATA_TYPE.text,
317
+ displayName: DisplayNames.root.data.prevButtonLabel,
318
+ defaultValue: slideshowDataDefaults.prevButtonLabel
319
+ },
288
320
  ...manifestChangeable(),
289
321
  onPlay: {
290
322
  dataType: DATA.DATA_TYPE.function,
@@ -327,6 +359,8 @@ const manifest = {
327
359
  cssDataType: {
328
360
  items: [
329
361
  "orientation",
362
+ "icon-placement-horizontal",
363
+ "icon-placement-vertical",
330
364
  "navigation-buttons-arrangement",
331
365
  "navigation-buttons-position-together-horizontal",
332
366
  "navigation-buttons-position-together-vertical",
@@ -388,18 +422,21 @@ const manifest = {
388
422
  },
389
423
  { property: "--navigation-width", value: "100%" },
390
424
  { property: "--navigation-height", value: "auto" },
391
- { property: "--container-flex-direction", value: "row" },
425
+ {
426
+ property: "--container-flex-direction",
427
+ value: "var(--icon-placement-h-flex-direction, row)"
428
+ },
392
429
  {
393
430
  property: "--container-rtl-flex-direction",
394
- value: "row-reverse"
431
+ value: "var(--icon-placement-h-rtl-flex-direction, row-reverse)"
395
432
  },
396
433
  {
397
434
  property: "--prev-container-flex-direction",
398
- value: "row-reverse"
435
+ value: "var(--icon-placement-h-prev-flex-direction, row-reverse)"
399
436
  },
400
437
  {
401
438
  property: "--prev-container-rtl-flex-direction",
402
- value: "row"
439
+ value: "var(--icon-placement-h-prev-rtl-flex-direction, row)"
403
440
  },
404
441
  {
405
442
  property: "--container-justify-content",
@@ -409,6 +446,10 @@ const manifest = {
409
446
  { property: "--icon-orientation-offset", value: "0deg" },
410
447
  { property: "--icon-orientation-scale", value: "scaleX(-1)" },
411
448
  { property: "--icon-rtl-offset", value: "180deg" },
449
+ {
450
+ property: "--icon-order",
451
+ value: "var(--icon-placement-h-icon-order, initial)"
452
+ },
412
453
  {
413
454
  property: "--slide-indicators-separated-align-self",
414
455
  value: "var(--slide-indicators-horizontal-align-self)"
@@ -449,15 +490,21 @@ const manifest = {
449
490
  },
450
491
  { property: "--navigation-width", value: "auto" },
451
492
  { property: "--navigation-height", value: "100%" },
452
- { property: "--container-flex-direction", value: "column" },
453
- { property: "--container-rtl-flex-direction", value: "column" },
493
+ {
494
+ property: "--container-flex-direction",
495
+ value: "var(--icon-placement-v-flex-direction, column)"
496
+ },
497
+ {
498
+ property: "--container-rtl-flex-direction",
499
+ value: "var(--icon-placement-v-rtl-flex-direction, column)"
500
+ },
454
501
  {
455
502
  property: "--prev-container-flex-direction",
456
- value: "column-reverse"
503
+ value: "var(--icon-placement-v-prev-flex-direction, column-reverse)"
457
504
  },
458
505
  {
459
506
  property: "--prev-container-rtl-flex-direction",
460
- value: "column-reverse"
507
+ value: "var(--icon-placement-v-prev-rtl-flex-direction, column-reverse)"
461
508
  },
462
509
  { property: "--container-justify-content", value: "center" },
463
510
  {
@@ -467,6 +514,10 @@ const manifest = {
467
514
  { property: "--icon-orientation-offset", value: "90deg" },
468
515
  { property: "--icon-orientation-scale", value: "scaleY(-1)" },
469
516
  { property: "--icon-rtl-offset", value: "0deg" },
517
+ {
518
+ property: "--icon-order",
519
+ value: "var(--icon-placement-v-icon-order, initial)"
520
+ },
470
521
  {
471
522
  property: "--slide-indicators-separated-align-self",
472
523
  value: "var(--slide-indicators-vertical-align-self)"
@@ -488,6 +539,118 @@ const manifest = {
488
539
  ]
489
540
  }
490
541
  },
542
+ "icon-placement-horizontal": {
543
+ displayName: DisplayNames.root.cssCustomProperties["icon-placement"],
544
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.customEnum,
545
+ defaultValue: slideshowCssCustomPropertiesDefaults["icon-placement-horizontal"],
546
+ customEnum: {
547
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.string,
548
+ options: [
549
+ {
550
+ value: "next-to-text",
551
+ displayName: DisplayNames.iconPlacement.horizontal.nextToText
552
+ },
553
+ {
554
+ value: "above-text",
555
+ displayName: DisplayNames.iconPlacement.horizontal.aboveText,
556
+ appliedStyles: [
557
+ {
558
+ property: "--icon-placement-h-flex-direction",
559
+ value: "column-reverse"
560
+ },
561
+ {
562
+ property: "--icon-placement-h-prev-flex-direction",
563
+ value: "column-reverse"
564
+ },
565
+ {
566
+ property: "--icon-placement-h-rtl-flex-direction",
567
+ value: "column-reverse"
568
+ },
569
+ {
570
+ property: "--icon-placement-h-prev-rtl-flex-direction",
571
+ value: "column-reverse"
572
+ }
573
+ ]
574
+ },
575
+ {
576
+ value: "below-text",
577
+ displayName: DisplayNames.iconPlacement.horizontal.belowText,
578
+ appliedStyles: [
579
+ {
580
+ property: "--icon-placement-h-flex-direction",
581
+ value: "column"
582
+ },
583
+ {
584
+ property: "--icon-placement-h-prev-flex-direction",
585
+ value: "column"
586
+ },
587
+ {
588
+ property: "--icon-placement-h-rtl-flex-direction",
589
+ value: "column"
590
+ },
591
+ {
592
+ property: "--icon-placement-h-prev-rtl-flex-direction",
593
+ value: "column"
594
+ }
595
+ ]
596
+ }
597
+ ]
598
+ }
599
+ },
600
+ "icon-placement-vertical": {
601
+ displayName: DisplayNames.root.cssCustomProperties["icon-placement"],
602
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.customEnum,
603
+ defaultValue: slideshowCssCustomPropertiesDefaults["icon-placement-vertical"],
604
+ customEnum: {
605
+ cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.string,
606
+ options: [
607
+ {
608
+ value: "vertically-stacked",
609
+ displayName: DisplayNames.iconPlacement.vertical.verticallyStacked
610
+ },
611
+ {
612
+ value: "before-text",
613
+ displayName: DisplayNames.iconPlacement.vertical.beforeText,
614
+ appliedStyles: [
615
+ { property: "--icon-placement-v-flex-direction", value: "row" },
616
+ {
617
+ property: "--icon-placement-v-prev-flex-direction",
618
+ value: "row"
619
+ },
620
+ {
621
+ property: "--icon-placement-v-rtl-flex-direction",
622
+ value: "row-reverse"
623
+ },
624
+ {
625
+ property: "--icon-placement-v-prev-rtl-flex-direction",
626
+ value: "row-reverse"
627
+ },
628
+ { property: "--icon-placement-v-icon-order", value: "-1" }
629
+ ]
630
+ },
631
+ {
632
+ value: "after-text",
633
+ displayName: DisplayNames.iconPlacement.vertical.afterText,
634
+ appliedStyles: [
635
+ { property: "--icon-placement-v-flex-direction", value: "row" },
636
+ {
637
+ property: "--icon-placement-v-prev-flex-direction",
638
+ value: "row"
639
+ },
640
+ {
641
+ property: "--icon-placement-v-rtl-flex-direction",
642
+ value: "row-reverse"
643
+ },
644
+ {
645
+ property: "--icon-placement-v-prev-rtl-flex-direction",
646
+ value: "row-reverse"
647
+ },
648
+ { property: "--icon-placement-v-icon-order", value: "initial" }
649
+ ]
650
+ }
651
+ ]
652
+ }
653
+ },
491
654
  "navigation-buttons-position-together-horizontal": {
492
655
  cssPropertyType: CSS_PROPERTIES.CSS_PROPERTY_TYPE.customEnum,
493
656
  displayName: DisplayNames.root.cssCustomProperties["navigation-buttons-position"],
@@ -173,6 +173,7 @@ const Button = (props) => {
173
173
  link: link2,
174
174
  type = "button",
175
175
  label: label2 = "",
176
+ labelContent,
176
177
  disabled: isDisabled = false,
177
178
  onClick: propsOnClick,
178
179
  className,
@@ -238,6 +239,7 @@ const Button = (props) => {
238
239
  onBlur
239
240
  });
240
241
  const a11yAttr = useButtonA11y({ propsA11y, ariaAttributes, label: label2 });
242
+ const renderedLabel = labelContent ?? label2;
241
243
  const wrapperAttributes = {
242
244
  id,
243
245
  ...getDataAttributes(props),
@@ -247,7 +249,7 @@ const Button = (props) => {
247
249
  ...direction && { dir: direction }
248
250
  };
249
251
  const renderButtonContent = () => /* @__PURE__ */ jsxs(Fragment, { children: [
250
- label2 && /* @__PURE__ */ jsx("span", { className: labelClassName, "data-testid": TestIds.buttonLabel, children: label2 }),
252
+ renderedLabel && /* @__PURE__ */ jsx("span", { className: labelClassName, "data-testid": TestIds.buttonLabel, children: renderedLabel }),
251
253
  /* @__PURE__ */ jsx(
252
254
  AnimatedButtonIcon,
253
255
  {
@@ -18,7 +18,9 @@ const DisplayNames = {
18
18
  transitionDuration: "Transition duration (seconds)",
19
19
  slides: "Slide",
20
20
  activeSlide: "Active slide",
21
- showPauseButton: "Show pause & play button"
21
+ showPauseButton: "Show pause & play button",
22
+ nextButtonLabel: "Next navigation button text",
23
+ prevButtonLabel: "Previous navigation button text"
22
24
  },
23
25
  displayGroups: {
24
26
  slides: "Slides"
@@ -26,6 +28,7 @@ const DisplayNames = {
26
28
  cssCustomProperties: {
27
29
  "animation-duration": "Transition duration",
28
30
  orientation: "Orientation",
31
+ "icon-placement": "Icon placement",
29
32
  "navigation-buttons-position": "Navigation button position",
30
33
  "navigation-buttons-arrangement": "Navigation button arrangement",
31
34
  "navigation-buttons-alignment": "Navigation button alignment",
@@ -55,6 +58,18 @@ const DisplayNames = {
55
58
  vertical: "Vertical"
56
59
  }
57
60
  },
61
+ iconPlacement: {
62
+ horizontal: {
63
+ nextToText: "Next to text",
64
+ aboveText: "Above text",
65
+ belowText: "Below text"
66
+ },
67
+ vertical: {
68
+ verticallyStacked: "Vertically stacked",
69
+ beforeText: "Before text",
70
+ afterText: "After text"
71
+ }
72
+ },
58
73
  position: {
59
74
  options: {
60
75
  top: "Top",
@@ -100,7 +115,9 @@ const slideshowDataDefaults = {
100
115
  transitionDirection: "rtl",
101
116
  activeSlide: 0,
102
117
  transitionDuration: 0,
103
- showPauseButton: true
118
+ showPauseButton: true,
119
+ nextButtonLabel: "Next",
120
+ prevButtonLabel: "Previous"
104
121
  };
105
122
  const slideshowCssPropertiesDefaults = {
106
123
  border: "none",
@@ -110,6 +127,8 @@ const slideshowCssPropertiesDefaults = {
110
127
  const slideshowCssCustomPropertiesDefaults = {
111
128
  "animation-duration": "0.5s",
112
129
  orientation: "horizontal",
130
+ "icon-placement-horizontal": "next-to-text",
131
+ "icon-placement-vertical": "vertically-stacked",
113
132
  "navigation-buttons-arrangement": "separated",
114
133
  "navigation-buttons-alignment": "center",
115
134
  "controls-padding": "0px"
@@ -137,8 +156,8 @@ export {
137
156
  DisplayNames as D,
138
157
  MOVEMENT_DIRECTION as M,
139
158
  SLIDESHOW_SLIDE_LTR_DIRECTION_EXPERIMENT as S,
140
- slideshowDataDefaults as a,
159
+ semanticClassNames as a,
141
160
  slideshowCssCustomPropertiesDefaults as b,
142
161
  slideshowCssPropertiesDefaults as c,
143
- semanticClassNames as s
162
+ slideshowDataDefaults as s
144
163
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/editor-react-components",
3
- "version": "1.2187.0",
3
+ "version": "1.2189.0",
4
4
  "description": "React components for the Wix Editor",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -144,7 +144,6 @@
144
144
  "astro": "^5.16.6",
145
145
  "clsx": "2.0.0",
146
146
  "esbuild-sass-plugin": "^3.3.1",
147
- "eslint-plugin-storybook": "^9.1.19",
148
147
  "glob": "^13.0.6",
149
148
  "postcss-modules": "^6.0.1",
150
149
  "react-aria-components": "^1.11.0",
@@ -189,5 +188,5 @@
189
188
  "registry": "https://registry.npmjs.org/",
190
189
  "access": "public"
191
190
  },
192
- "falconPackageHash": "113d33acfee397d4ddb45e77c5a44c06485fdc513ad11f03b570be69"
191
+ "falconPackageHash": "7996c30b4962897958963bdb07f124d59259c82a87f16f422dd95a0e"
193
192
  }