@faststore/ui 2.0.117-alpha.0 → 2.0.128-alpha.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.
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/atoms/Logo/styles.scss +12 -0
- package/src/components/molecules/Banner/styles.scss +125 -0
- package/src/components/molecules/Carousel/styles.scss +171 -0
- package/src/components/molecules/NavbarLinks/styles.scss +1 -3
- package/src/components/molecules/ProductCardSkeleton/styles.scss +56 -0
- package/src/components/molecules/ProductTile/styles.scss +79 -0
- package/src/components/organisms/BannerNewsletter/styles.scss +21 -0
- package/src/components/organisms/FilterSkeleton/styles.scss +49 -0
- package/src/components/organisms/Footer/styles.scss +218 -0
- package/src/components/organisms/Incentives/styles.scss +120 -0
- package/src/components/organisms/Navbar/styles.scss +1 -3
- package/src/components/organisms/Newsletter/styles.scss +133 -0
- package/src/components/organisms/ProductDetails/styles.scss +183 -0
- package/src/components/organisms/ProductGallery/styles.scss +180 -0
- package/src/components/organisms/ProductShelf/styles.scss +2 -3
- package/src/components/organisms/Tiles/styles.scss +56 -0
- package/src/index.ts +0 -16
- package/src/styles/components.scss +14 -1
- package/src/styles/global.scss +0 -1
- package/dist/components/molecules/Bullets/Bullets.d.ts +0 -35
- package/dist/components/molecules/Bullets/Bullets.js +0 -12
- package/dist/components/molecules/Bullets/Bullets.js.map +0 -1
- package/dist/components/molecules/Bullets/index.d.ts +0 -2
- package/dist/components/molecules/Bullets/index.js +0 -2
- package/dist/components/molecules/Bullets/index.js.map +0 -1
- package/dist/components/molecules/Carousel/Arrows.d.ts +0 -12
- package/dist/components/molecules/Carousel/Arrows.js +0 -6
- package/dist/components/molecules/Carousel/Arrows.js.map +0 -1
- package/dist/components/molecules/Carousel/Carousel.d.ts +0 -54
- package/dist/components/molecules/Carousel/Carousel.js +0 -183
- package/dist/components/molecules/Carousel/Carousel.js.map +0 -1
- package/dist/components/molecules/Carousel/CarouselItem.d.ts +0 -11
- package/dist/components/molecules/Carousel/CarouselItem.js +0 -18
- package/dist/components/molecules/Carousel/CarouselItem.js.map +0 -1
- package/dist/components/molecules/Carousel/hooks/useSlideVisibility.d.ts +0 -9
- package/dist/components/molecules/Carousel/hooks/useSlideVisibility.js +0 -29
- package/dist/components/molecules/Carousel/hooks/useSlideVisibility.js.map +0 -1
- package/dist/components/molecules/Carousel/index.d.ts +0 -2
- package/dist/components/molecules/Carousel/index.js +0 -3
- package/dist/components/molecules/Carousel/index.js.map +0 -1
- package/dist/hooks/useSlider/index.d.ts +0 -2
- package/dist/hooks/useSlider/index.js +0 -3
- package/dist/hooks/useSlider/index.js.map +0 -1
- package/dist/hooks/useSlider/useSlider.d.ts +0 -64
- package/dist/hooks/useSlider/useSlider.js +0 -103
- package/dist/hooks/useSlider/useSlider.js.map +0 -1
- package/src/components/molecules/Bullets/Bullets.tsx +0 -88
- package/src/components/molecules/Bullets/index.ts +0 -2
- package/src/components/molecules/Carousel/Arrows.tsx +0 -58
- package/src/components/molecules/Carousel/Carousel.tsx +0 -387
- package/src/components/molecules/Carousel/CarouselItem.tsx +0 -54
- package/src/components/molecules/Carousel/hooks/useSlideVisibility.ts +0 -59
- package/src/components/molecules/Carousel/index.ts +0 -2
- package/src/hooks/useSlider/index.ts +0 -2
- package/src/hooks/useSlider/useSlider.ts +0 -209
- /package/src/components/{molecules → organisms}/NavbarSlider/styles.scss +0 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
[data-fs-product-listing] {
|
|
2
|
+
--product-listing-row-height: var(--fs-spacing-6);
|
|
3
|
+
|
|
4
|
+
height: 100%;
|
|
5
|
+
padding-top: 0;
|
|
6
|
+
|
|
7
|
+
[data-fs-empty-state] {
|
|
8
|
+
margin: var(--fs-spacing-3) 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@include media(">=notebook") {
|
|
12
|
+
[data-fs-empty-state] {
|
|
13
|
+
margin: 0 0 var(--fs-spacing-5);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
[data-fs-product-listing-search-term] {
|
|
18
|
+
@include media(">=notebook") {
|
|
19
|
+
padding-bottom: var(--fs-spacing-6);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
h1 {
|
|
23
|
+
font-size: var(--fs-text-size-4);
|
|
24
|
+
|
|
25
|
+
@include media(">=tablet") { font-size: var(--fs-text-size-5); }
|
|
26
|
+
|
|
27
|
+
span {
|
|
28
|
+
font-weight: var(--fs-text-weight-bold);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[data-fs-product-listing-content-grid] {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
height: 100%;
|
|
37
|
+
padding-right: 0;
|
|
38
|
+
padding-left: 0;
|
|
39
|
+
|
|
40
|
+
@include media(">=notebook") {
|
|
41
|
+
display: grid;
|
|
42
|
+
grid-template-rows: var(--product-listing-row-height) auto;
|
|
43
|
+
grid-template-columns: repeat(12, 1fr);
|
|
44
|
+
row-gap: var(--fs-spacing-0);
|
|
45
|
+
column-gap: var(--fs-spacing-4);
|
|
46
|
+
padding-right: var(--fs-grid-padding);
|
|
47
|
+
padding-left: var(--fs-grid-padding);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
[data-fs-product-listing-filters] {
|
|
52
|
+
@include media(">=notebook") {
|
|
53
|
+
position: sticky;
|
|
54
|
+
top: var(--fs-grid-gap-2);
|
|
55
|
+
grid-row: span 2;
|
|
56
|
+
grid-column: 1 / span 3;
|
|
57
|
+
align-self: start;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
[data-fs-product-listing-sort] {
|
|
62
|
+
display: flex;
|
|
63
|
+
align-items: center;
|
|
64
|
+
justify-content: space-between;
|
|
65
|
+
order: 1;
|
|
66
|
+
width: 100%;
|
|
67
|
+
min-height: rem(68px);
|
|
68
|
+
padding: var(--fs-spacing-1) var(--fs-spacing-3) var(--fs-spacing-2);
|
|
69
|
+
background-color: var(--fs-color-body-bkg);
|
|
70
|
+
|
|
71
|
+
[data-fs-product-listing-sort-skeleton] {
|
|
72
|
+
min-width: rem(225px);
|
|
73
|
+
min-height: var(--fs-spacing-5);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@include media(">=notebook") {
|
|
77
|
+
grid-column: 6 / span 7;
|
|
78
|
+
justify-content: flex-end;
|
|
79
|
+
order: unset;
|
|
80
|
+
min-height: initial;
|
|
81
|
+
padding: 0;
|
|
82
|
+
|
|
83
|
+
[data-fs-button] {
|
|
84
|
+
display: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
[data-fs-product-listing-filter-button-skeleton] {
|
|
88
|
+
display: none;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
[data-fs-product-listing-results-count] {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
justify-content: center;
|
|
97
|
+
order: 2;
|
|
98
|
+
min-height: rem(45px);
|
|
99
|
+
padding: var(--fs-spacing-2) var(--fs-spacing-3);
|
|
100
|
+
background-color: var(--fs-color-neutral-bkg);
|
|
101
|
+
|
|
102
|
+
@include media(">=notebook") {
|
|
103
|
+
grid-column: 4 /span 2;
|
|
104
|
+
justify-content: left;
|
|
105
|
+
order: unset;
|
|
106
|
+
min-height: initial;
|
|
107
|
+
padding: 0;
|
|
108
|
+
background-color: unset;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
[data-fs-product-listing-results-count-skeleton] {
|
|
112
|
+
min-width: rem(130px);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[data-fs-product-listing-results] {
|
|
117
|
+
--padding: var(--fs-spacing-1);
|
|
118
|
+
|
|
119
|
+
order: 3;
|
|
120
|
+
padding: var(--padding) var(--padding) 0;
|
|
121
|
+
background-color: var(--fs-color-neutral-bkg);
|
|
122
|
+
|
|
123
|
+
@include media(">=notebook") {
|
|
124
|
+
grid-column: 4 / span 9;
|
|
125
|
+
order: unset;
|
|
126
|
+
padding: 0;
|
|
127
|
+
background-color: unset;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
[data-fs-product-card] { min-width: 100%; }
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
[data-fs-product-listing-sponsored] {
|
|
134
|
+
padding: var(--fs-spacing-4) var(--fs-spacing-3);
|
|
135
|
+
margin: var(--fs-spacing-1) calc(-1 * var(--padding));
|
|
136
|
+
background-color: var(--fs-color-body-bkg);
|
|
137
|
+
|
|
138
|
+
@include media(">=notebook") {
|
|
139
|
+
padding: 0;
|
|
140
|
+
margin: var(--fs-spacing-6) 0;
|
|
141
|
+
|
|
142
|
+
[data-fs-tiles] {
|
|
143
|
+
row-gap: 0;
|
|
144
|
+
column-gap: var(--fs-grid-gap-2);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
h3 { margin-bottom: var(--fs-spacing-1); }
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
[data-fs-product-listing-pagination] {
|
|
152
|
+
display: flex;
|
|
153
|
+
align-items: center;
|
|
154
|
+
justify-content: center;
|
|
155
|
+
min-height: var(--fs-spacing-13);
|
|
156
|
+
padding: var(--fs-spacing-4);
|
|
157
|
+
margin-right: calc(-1 * var(--padding));
|
|
158
|
+
margin-left: calc(-1 * var(--padding));
|
|
159
|
+
|
|
160
|
+
@include media(">=notebook") {
|
|
161
|
+
padding: var(--fs-spacing-1) var(--fs-spacing-2);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
[data-fs-button] {
|
|
165
|
+
width: 100%;
|
|
166
|
+
|
|
167
|
+
@include media(">=notebook") {
|
|
168
|
+
width: fit-content;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
[data-fs-product-listing-pagination="top"] {
|
|
174
|
+
margin-bottom: var(--padding);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
[data-fs-product-listing-pagination="bottom"] {
|
|
178
|
+
margin-top: var(--padding);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
@@ -6,19 +6,18 @@
|
|
|
6
6
|
--fs-product-shelf-items-gap : var(--fs-grid-gap-1);
|
|
7
7
|
--fs-product-shelf-items-padding-top : var(--fs-spacing-0);
|
|
8
8
|
--fs-product-shelf-items-padding-bottom : var(--fs-spacing-3);
|
|
9
|
-
--fs-product-shelf-items-left : calc(-1 * var(--fs-spacing-1));
|
|
10
9
|
|
|
11
10
|
// --------------------------------------------------------
|
|
12
11
|
// Structural Styles
|
|
13
12
|
// --------------------------------------------------------
|
|
14
13
|
|
|
14
|
+
width: 100%;
|
|
15
|
+
|
|
15
16
|
[data-fs-product-shelf-items] {
|
|
16
17
|
display: flex;
|
|
17
18
|
align-items: stretch;
|
|
18
19
|
overflow-x: auto;
|
|
19
20
|
position: relative;
|
|
20
|
-
left: var(--fs-product-shelf-items-left);
|
|
21
|
-
|
|
22
21
|
|
|
23
22
|
[data-fs-product-shelf-item] { width: 100%; }
|
|
24
23
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
[data-fs-tiles] {
|
|
2
|
+
// --------------------------------------------------------
|
|
3
|
+
// Design Tokens for Tiles
|
|
4
|
+
// --------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
// Default properties
|
|
7
|
+
--fs-tiles-gap-mobile : var(--fs-grid-gap-2);
|
|
8
|
+
--fs-tiles-gap-notebook : var(--fs-grid-gap-3);
|
|
9
|
+
|
|
10
|
+
// Tile
|
|
11
|
+
--fs-tiles-tile-min-width : 9rem;
|
|
12
|
+
--fs-tiles-tile-border-radius : var(--fs-border-radius);
|
|
13
|
+
|
|
14
|
+
// --------------------------------------------------------
|
|
15
|
+
// Structural Styles
|
|
16
|
+
// --------------------------------------------------------
|
|
17
|
+
|
|
18
|
+
display: grid;
|
|
19
|
+
grid-template-columns: repeat(2, 1fr);
|
|
20
|
+
row-gap: var(--fs-tiles-gap-mobile);
|
|
21
|
+
column-gap: var(--fs-tiles-gap-mobile);
|
|
22
|
+
|
|
23
|
+
@include media(">=tablet") {
|
|
24
|
+
grid-template-columns: repeat(4, 1fr);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@include media(">=notebook") { column-gap: var(--fs-tiles-gap-notebook); }
|
|
28
|
+
|
|
29
|
+
[data-fs-tile] {
|
|
30
|
+
min-width: var(--fs-tiles-tile-min-width);
|
|
31
|
+
|
|
32
|
+
> * {
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
border-radius: var(--fs-tiles-tile-border-radius);
|
|
35
|
+
|
|
36
|
+
@include media(">=tablet") {
|
|
37
|
+
display: grid;
|
|
38
|
+
grid-auto-rows: 62% auto;
|
|
39
|
+
[data-fs-product-card-image] { height: 100%; }
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@include media(">=notebook") { grid-auto-rows: 80% auto; }
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// --------------------------------------------------------
|
|
47
|
+
// Variants Styles
|
|
48
|
+
// --------------------------------------------------------
|
|
49
|
+
|
|
50
|
+
&[data-fs-tiles-variant="expanded-first"] > [data-fs-tile]:first-child,
|
|
51
|
+
&[data-fs-tiles-variant="expanded-first-two"] > [data-fs-tile]:first-child,
|
|
52
|
+
&[data-fs-tiles-variant="expanded-first-two"] > [data-fs-tile]:nth-child(2) {
|
|
53
|
+
grid-column: span 2;
|
|
54
|
+
min-width: 12rem;
|
|
55
|
+
}
|
|
56
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -8,13 +8,6 @@ export { default as Incentive } from './components/atoms/Incentive'
|
|
|
8
8
|
export type { IncentiveProps } from './components/atoms/Incentive'
|
|
9
9
|
|
|
10
10
|
// Molecules
|
|
11
|
-
|
|
12
|
-
export { default as Bullets } from './components/molecules/Bullets'
|
|
13
|
-
export type { BulletsProps } from './components/molecules/Bullets'
|
|
14
|
-
|
|
15
|
-
export { default as Carousel } from './components/molecules/Carousel'
|
|
16
|
-
export type { CarouselProps } from './components/molecules/Carousel'
|
|
17
|
-
|
|
18
11
|
export {
|
|
19
12
|
default as Banner,
|
|
20
13
|
BannerContent,
|
|
@@ -31,12 +24,3 @@ export type {
|
|
|
31
24
|
// Organisms
|
|
32
25
|
export { Tile, Tiles } from './components/organisms/Tiles'
|
|
33
26
|
export type { TilesProps, TileProps } from './components/organisms/Tiles'
|
|
34
|
-
|
|
35
|
-
// Hooks
|
|
36
|
-
export { default as useSlider } from './hooks/useSlider'
|
|
37
|
-
export type {
|
|
38
|
-
UseSliderArgs,
|
|
39
|
-
SliderState,
|
|
40
|
-
SliderDispatch,
|
|
41
|
-
SlideDirection,
|
|
42
|
-
} from './hooks/useSlider'
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
@import "../components/atoms/Link/styles";
|
|
8
8
|
@import "../components/atoms/List/styles";
|
|
9
9
|
@import "../components/atoms/Loader/styles";
|
|
10
|
+
@import "../components/atoms/Logo/styles";
|
|
10
11
|
@import "../components/atoms/Overlay/styles";
|
|
11
12
|
@import "../components/atoms/Price/styles";
|
|
12
13
|
@import "../components/atoms/Radio/styles";
|
|
@@ -18,8 +19,10 @@
|
|
|
18
19
|
// Molecules
|
|
19
20
|
@import "../components/molecules/Accordion/styles";
|
|
20
21
|
@import "../components/molecules/Alert/styles";
|
|
22
|
+
@import "../components/molecules/Banner/styles";
|
|
21
23
|
@import "../components/molecules/Breadcrumb/styles";
|
|
22
24
|
@import "../components/molecules/BuyButton/styles";
|
|
25
|
+
@import "../components/molecules/Carousel/styles";
|
|
23
26
|
@import "../components/molecules/CartItem/styles";
|
|
24
27
|
@import "../components/molecules/CheckboxField/styles";
|
|
25
28
|
@import "../components/molecules/DiscountBadge/styles";
|
|
@@ -29,9 +32,10 @@
|
|
|
29
32
|
@import "../components/molecules/LinkButton/styles";
|
|
30
33
|
@import "../components/molecules/Modal/styles";
|
|
31
34
|
@import "../components/molecules/NavbarLinks/styles";
|
|
32
|
-
@import "../components/molecules/NavbarSlider/styles";
|
|
33
35
|
@import "../components/molecules/OrderSummary/styles";
|
|
34
36
|
@import "../components/molecules/ProductCard/styles";
|
|
37
|
+
@import "../components/molecules/ProductCardSkeleton/styles";
|
|
38
|
+
@import "../components/molecules/ProductTile/styles";
|
|
35
39
|
@import "../components/molecules/ProductTitle/styles";
|
|
36
40
|
@import "../components/molecules/QuantitySelector/styles";
|
|
37
41
|
@import "../components/molecules/RadioField/styles";
|
|
@@ -52,19 +56,28 @@
|
|
|
52
56
|
@import "../components/molecules/ToggleField/styles";
|
|
53
57
|
|
|
54
58
|
// Organisms
|
|
59
|
+
@import "../components/organisms/BannerNewsletter/styles";
|
|
55
60
|
@import "../components/organisms/CartSidebar/styles";
|
|
56
61
|
@import "../components/organisms/EmptyState/styles";
|
|
57
62
|
@import "../components/organisms/Filter/styles";
|
|
63
|
+
@import "../components/organisms/FilterSkeleton/styles";
|
|
58
64
|
@import "../components/organisms/FilterSlider/styles";
|
|
65
|
+
@import "../components/organisms/Footer/styles";
|
|
59
66
|
@import "../components/organisms/Hero/styles";
|
|
60
67
|
@import "../components/organisms/ImageGallery/styles";
|
|
68
|
+
@import "../components/organisms/Incentives/styles";
|
|
61
69
|
@import "../components/organisms/Navbar/styles";
|
|
70
|
+
@import "../components/organisms/NavbarSlider/styles";
|
|
71
|
+
@import "../components/organisms/Newsletter/styles";
|
|
62
72
|
@import "../components/organisms/OutOfStock/styles";
|
|
63
73
|
@import "../components/organisms/PaymentMethods/styles";
|
|
64
74
|
@import "../components/organisms/PriceRange/styles";
|
|
75
|
+
@import "../components/organisms/ProductDetails/styles";
|
|
76
|
+
@import "../components/organisms/ProductGallery/styles";
|
|
65
77
|
@import "../components/organisms/ProductGrid/styles";
|
|
66
78
|
@import "../components/organisms/ProductShelf/styles";
|
|
67
79
|
@import "../components/organisms/RegionModal/styles";
|
|
68
80
|
@import "../components/organisms/SearchInput/styles";
|
|
69
81
|
@import "../components/organisms/ShippingSimulation/styles";
|
|
70
82
|
@import "../components/organisms/SlideOver/styles";
|
|
83
|
+
@import "../components/organisms/Tiles/styles";
|
package/src/styles/global.scss
CHANGED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { HTMLAttributes, MouseEvent } from 'react';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
export interface BulletsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'role'> {
|
|
4
|
-
/**
|
|
5
|
-
* Number of bullets that should be rendered.
|
|
6
|
-
*/
|
|
7
|
-
totalQuantity: number;
|
|
8
|
-
/**
|
|
9
|
-
* The currently active bullet (zero-indexed).
|
|
10
|
-
*/
|
|
11
|
-
activeBullet: number;
|
|
12
|
-
/**
|
|
13
|
-
* Event handler for clicks on each bullet. The handler will be called with
|
|
14
|
-
* the index of the bullet that received the click.
|
|
15
|
-
*/
|
|
16
|
-
onClick: (e: MouseEvent, bulletIdx: number) => void;
|
|
17
|
-
/**
|
|
18
|
-
* ID to find this component in testing tools (e.g.: cypress,
|
|
19
|
-
* testing-library, and jest).
|
|
20
|
-
*/
|
|
21
|
-
testId?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Function that should be used to generate the aria-label attribute added
|
|
24
|
-
* to each bullet that is inactive. It receives the bullet index as an
|
|
25
|
-
* argument so that it can be interpolated in the generated string.
|
|
26
|
-
*/
|
|
27
|
-
ariaLabelGenerator?: (index: number, isActive: boolean) => string;
|
|
28
|
-
/**
|
|
29
|
-
* Function that should be used to generate the aria-controls attribute added
|
|
30
|
-
* to each bullet. It receives the bullet index as argument and should return a string.
|
|
31
|
-
*/
|
|
32
|
-
ariaControlsGenerator?: (index: number) => string;
|
|
33
|
-
}
|
|
34
|
-
declare const Bullets: React.ForwardRefExoticComponent<BulletsProps & React.RefAttributes<HTMLDivElement>>;
|
|
35
|
-
export default Bullets;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React, { forwardRef, useMemo } from 'react';
|
|
2
|
-
import { Button } from '@faststore/components';
|
|
3
|
-
const defaultAriaLabel = (idx, isActive) => isActive ? 'Current page' : `Go to page ${idx + 1}`;
|
|
4
|
-
const Bullets = forwardRef(function Bullets({ totalQuantity, activeBullet, onClick, testId = 'store-bullets', ariaLabelGenerator = defaultAriaLabel, ariaControlsGenerator, ...otherProps }, ref) {
|
|
5
|
-
const bulletIndexes = useMemo(() => Array(totalQuantity).fill(0), [totalQuantity]);
|
|
6
|
-
return (React.createElement("div", { ref: ref, "data-fs-bullets": true, "data-testid": testId, role: "tablist", ...otherProps }, bulletIndexes.map((_, idx) => {
|
|
7
|
-
const isActive = activeBullet === idx;
|
|
8
|
-
return (React.createElement(Button, { key: idx, role: "tab", tabIndex: -1, "data-fs-bullet": true, testId: `${testId}-bullet`, onClick: (e) => onClick(e, idx), "aria-label": ariaLabelGenerator(idx, isActive), "aria-controls": ariaControlsGenerator?.(idx), "aria-selected": isActive }));
|
|
9
|
-
})));
|
|
10
|
-
});
|
|
11
|
-
export default Bullets;
|
|
12
|
-
//# sourceMappingURL=Bullets.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Bullets.js","sourceRoot":"","sources":["../../../../src/components/molecules/Bullets/Bullets.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAmC9C,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,QAAiB,EAAE,EAAE,CAC1D,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,EAAE,CAAA;AAErD,MAAM,OAAO,GAAG,UAAU,CAA+B,SAAS,OAAO,CACvE,EACE,aAAa,EACb,YAAY,EACZ,OAAO,EACP,MAAM,GAAG,eAAe,EACxB,kBAAkB,GAAG,gBAAgB,EACrC,qBAAqB,EACrB,GAAG,UAAU,EACd,EACD,GAAG;IAEH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAClC,CAAC,aAAa,CAAC,CAChB,CAAA;IAED,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,0CAEK,MAAM,EACnB,IAAI,EAAC,SAAS,KACV,UAAU,IAEb,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,YAAY,KAAK,GAAG,CAAA;QAErC,OAAO,CACL,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,CAAC,CAAC,0BAEZ,MAAM,EAAE,GAAG,MAAM,SAAS,EAC1B,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,gBACnB,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,mBAC9B,qBAAqB,EAAE,CAAC,GAAG,CAAC,mBAC5B,QAAQ,GACvB,CACH,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,OAAO,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/molecules/Bullets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
interface IconProps {
|
|
3
|
-
size?: {
|
|
4
|
-
width: number;
|
|
5
|
-
height: number;
|
|
6
|
-
};
|
|
7
|
-
viewBox?: string;
|
|
8
|
-
color?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare const LeftArrowIcon: ({ size, viewBox, color, }: IconProps) => JSX.Element;
|
|
11
|
-
export declare const RightArrowIcon: ({ size, viewBox, color, }: IconProps) => JSX.Element;
|
|
12
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export const LeftArrowIcon = ({ size = { width: 25, height: 25 }, viewBox = '0 0 16 16', color = 'currentColor', }) => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: viewBox, width: size.width, height: size.height },
|
|
3
|
-
React.createElement("path", { d: "M11 1L4 8L11 15", strokeWidth: "2", strokeMiterlimit: "10", strokeLinecap: "round", strokeLinejoin: "round", stroke: color, fill: "none" })));
|
|
4
|
-
export const RightArrowIcon = ({ size = { width: 25, height: 25 }, viewBox = '0 0 16 16', color = 'currentColor', }) => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", xmlnsXlink: "http://www.w3.org/1999/xlink", viewBox: viewBox, width: size.width, height: size.height },
|
|
5
|
-
React.createElement("path", { d: "M5 15L12 8L5 1", strokeWidth: "2", strokeMiterlimit: "10", strokeLinecap: "round", strokeLinejoin: "round", stroke: color, fill: "none" })));
|
|
6
|
-
//# sourceMappingURL=Arrows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Arrows.js","sourceRoot":"","sources":["../../../../src/components/molecules/Carousel/Arrows.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAChC,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,cAAc,GACZ,EAAE,EAAE,CAAC,CACf,6BACE,KAAK,EAAC,4BAA4B,EAClC,UAAU,EAAC,8BAA8B,EACzC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM;IAEnB,8BACE,CAAC,EAAC,iBAAiB,EACnB,WAAW,EAAC,GAAG,EACf,gBAAgB,EAAC,IAAI,EACrB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,MAAM,EAAE,KAAK,EACb,IAAI,EAAC,MAAM,GACX,CACE,CACP,CAAA;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAChC,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,cAAc,GACZ,EAAE,EAAE,CAAC,CACf,6BACE,KAAK,EAAC,4BAA4B,EAClC,UAAU,EAAC,8BAA8B,EACzC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM;IAEnB,8BACE,CAAC,EAAC,gBAAgB,EAClB,WAAW,EAAC,GAAG,EACf,gBAAgB,EAAC,IAAI,EACrB,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,MAAM,EAAE,KAAK,EACb,IAAI,EAAC,MAAM,GACX,CACE,CACP,CAAA"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { ReactNode, PropsWithChildren } from 'react';
|
|
2
|
-
import type { SwipeableProps } from 'react-swipeable';
|
|
3
|
-
export interface CarouselProps extends SwipeableProps {
|
|
4
|
-
/**
|
|
5
|
-
* ID of the current instance of the component.
|
|
6
|
-
*/
|
|
7
|
-
id?: string;
|
|
8
|
-
/**
|
|
9
|
-
* ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
|
|
10
|
-
*/
|
|
11
|
-
testId?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Returns the value of element's class content attribute.
|
|
14
|
-
*/
|
|
15
|
-
className?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Whether or not the Carousel is infinite slide/scroll. Only for the `slide` variant.
|
|
18
|
-
* @default true
|
|
19
|
-
*/
|
|
20
|
-
infiniteMode?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Specifies which navigation elements should be visible.
|
|
23
|
-
* @default complete
|
|
24
|
-
*/
|
|
25
|
-
controls?: 'complete' | 'navigationArrows' | 'paginationBullets';
|
|
26
|
-
/**
|
|
27
|
-
* Specifies the slide transition. Only for the `slide` variant
|
|
28
|
-
*/
|
|
29
|
-
transition?: {
|
|
30
|
-
duration: number;
|
|
31
|
-
property: string;
|
|
32
|
-
delay?: number;
|
|
33
|
-
timing?: string;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Specifies the number of items per page.
|
|
37
|
-
* @default 1
|
|
38
|
-
*/
|
|
39
|
-
itemsPerPage?: number;
|
|
40
|
-
/**
|
|
41
|
-
* Specifies the Carousel track variant.
|
|
42
|
-
* @default slide
|
|
43
|
-
*/
|
|
44
|
-
variant?: 'slide' | 'scroll';
|
|
45
|
-
/**
|
|
46
|
-
* Specifies the navigation icons.
|
|
47
|
-
*/
|
|
48
|
-
navigationIcons?: {
|
|
49
|
-
left?: ReactNode;
|
|
50
|
-
right?: ReactNode;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
declare function Carousel({ infiniteMode, controls, testId, transition, children, className, id, variant, itemsPerPage, navigationIcons, ...swipeableConfigOverrides }: PropsWithChildren<CarouselProps>): JSX.Element;
|
|
54
|
-
export default Carousel;
|