@faststore/ui 3.18.0 → 3.22.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faststore/ui",
3
- "version": "3.18.0",
3
+ "version": "3.22.0",
4
4
  "description": "A lightweight, framework agnostic component library for React",
5
5
  "author": "emersonlaurentino",
6
6
  "license": "MIT",
@@ -47,7 +47,7 @@
47
47
  }
48
48
  ],
49
49
  "dependencies": {
50
- "@faststore/components": "^3.18.0",
50
+ "@faststore/components": "^3.22.0",
51
51
  "include-media": "^1.4.10",
52
52
  "modern-normalize": "^1.1.0",
53
53
  "react-swipeable": "^7.0.0",
@@ -69,5 +69,5 @@
69
69
  "volta": {
70
70
  "extends": "../../package.json"
71
71
  },
72
- "gitHead": "ba979131660bdfcfb18ed1f144c50f9643b49ecb"
72
+ "gitHead": "c06b27a4839b7fc14b4e5a3ba0f6d865bd78706c"
73
73
  }
@@ -0,0 +1,133 @@
1
+ [data-fs-textarea-field] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Input Field
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+
8
+ --fs-textarea-width : 100%; /* Fallback */
9
+ --fs-textarea-height : 100%; /* Fallback */
10
+
11
+ --fs-textarea-field-padding : 18px var(--fs-spacing-2) 0;
12
+ --fs-textarea-field-color : var(--fs-color-text);
13
+ --fs-textarea-field-size : var(--fs-text-size-body);
14
+ --fs-textarea-field-border-color : var(--fs-border-color);
15
+
16
+ --fs-textarea-field-transition-function : var(--fs-transition-function);
17
+ --fs-textarea-field-transition-property : var(--fs-transition-property);
18
+ --fs-textarea-field-transition-timing : var(--fs-transition-timing);
19
+
20
+ // Label
21
+ --fs-textarea-field-label-placeholder-top-padding : var(--fs-spacing-2);
22
+ --fs-textarea-field-label-max-width : var(--fs-textarea-width);
23
+ --fs-textarea-field-label-max-height : calc(var(--fs-textarea-height) - var(--fs-textarea-field-label-placeholder-top-padding));
24
+ --fs-textarea-field-label-padding : 0 var(--fs-spacing-2);
25
+ --fs-textarea-field-label-color : var(--fs-color-text-light);
26
+ --fs-textarea-field-label-size : var(--fs-text-size-tiny);
27
+
28
+ // Button
29
+ --fs-textarea-field-button-height : var(--fs-control-tap-size);
30
+
31
+ // Error
32
+ --fs-textarea-field-error-message-size : var(--fs-text-size-legend);
33
+ --fs-textarea-field-error-message-line-height : 1.1;
34
+ --fs-textarea-field-error-message-margin-top : var(--fs-spacing-0);
35
+ --fs-textarea-field-error-message-color : var(--fs-color-danger-text);
36
+ --fs-textarea-field-error-border-color : var(--fs-color-danger-border);
37
+ --fs-textarea-field-error-box-shadow :
38
+ 0 0 0 var(--fs-border-width)
39
+ var(--fs-textarea-field-error-border-color);
40
+ --fs-textarea-field-error-focus-ring : var(--fs-color-focus-ring-danger);
41
+
42
+ // Disabled
43
+ --fs-textarea-field-disabled-bkg-color : var(--fs-color-disabled-bkg);
44
+ --fs-textarea-field-disabled-text-color : var(--fs-color-disabled-text);
45
+ --fs-textarea-field-disabled-border-width : var(--fs-border-width);
46
+ --fs-textarea-field-disabled-border-color : var(--fs-border-color);
47
+
48
+ // --------------------------------------------------------
49
+ // Structural Styles
50
+ // --------------------------------------------------------
51
+
52
+ position: relative;
53
+ display: flex;
54
+ flex-flow: column;
55
+
56
+ [data-fs-textarea-field-label] {
57
+ position: absolute;
58
+ max-width: var(--fs-textarea-field-label-max-width);
59
+ max-height: var(--fs-textarea-field-label-max-height);
60
+ padding: var(--fs-textarea-field-label-padding);
61
+ overflow: hidden;
62
+ font-size: var(--fs-textarea-field-size);
63
+ line-height: var(--fs-textarea-field-size);
64
+ color: var(--fs-textarea-field-label-color);
65
+ text-overflow: ellipsis;
66
+ transition:
67
+ var(--fs-textarea-field-transition-property)
68
+ var(--fs-textarea-field-transition-timing)
69
+ var(--fs-textarea-field-transition-function),
70
+ max-width 0s,
71
+ max-height 0s;
72
+ }
73
+
74
+ [data-fs-textarea] {
75
+ --fs-textarea-padding: var(--fs-textarea-field-padding);
76
+
77
+ padding: var(--fs-textarea-field-padding);
78
+ color: var(--fs-textarea-field-color);
79
+
80
+ &:placeholder-shown + label {
81
+ top: var(--fs-textarea-field-label-placeholder-top-padding);
82
+ overflow: hidden;
83
+ }
84
+
85
+ &::placeholder {
86
+ opacity: 0;
87
+ transition: inherit;
88
+ }
89
+
90
+ &:focus::placeholder {
91
+ opacity: 1;
92
+ }
93
+
94
+ &:not(:placeholder-shown) + label,
95
+ &:focus + label {
96
+ top: rem(6px);
97
+ left: var(--fs-border-width);
98
+ font-size: var(--fs-textarea-field-label-size);
99
+ white-space: nowrap;
100
+ }
101
+
102
+ &:disabled + label {
103
+ cursor: not-allowed;
104
+ }
105
+ }
106
+
107
+ // --------------------------------------------------------
108
+ // Variants Styles
109
+ // --------------------------------------------------------
110
+
111
+ &[data-fs-textarea-field-error="true"] {
112
+ [data-fs-textarea] {
113
+ border-color: var(--fs-textarea-field-error-border-color);
114
+
115
+ @include input-focus-ring(
116
+ $outline: #{var(--fs-textarea-field-error-focus-ring)},
117
+ $border: #{var(--fs-textarea-field-error-border-color)}
118
+ );
119
+
120
+ &:hover:not(:disabled):not(:focus-visible):not(:focus) {
121
+ border-color: var(--fs-textarea-field-error-border-color);
122
+ box-shadow: var(--fs-textarea-field-error-box-shadow);
123
+ }
124
+ }
125
+
126
+ [data-fs-textarea-field-error-message] {
127
+ margin-top: var(--fs-textarea-field-error-message-margin-top);
128
+ font-size: var(--fs-textarea-field-error-message-size);
129
+ line-height: var(--fs-textarea-field-error-message-line-height);
130
+ color: var(--fs-textarea-field-error-message-color);
131
+ }
132
+ }
133
+ }
@@ -0,0 +1,242 @@
1
+ [data-fs-tooltip] {
2
+ // --------------------------------------------------------
3
+ // Design Tokens for Tooltip
4
+ // --------------------------------------------------------
5
+
6
+ // Default properties
7
+ --fs-button-height : var(--fs-control-tap-size);
8
+ --fs-tooltip-z-index : var(--fs-z-index-high);
9
+ --fs-tooltip-background : var(--fs-color-neutral-6);
10
+ --fs-tooltip-text-color : var(--fs-color-text-inverse);
11
+ --fs-tooltip-border-radius : var(--fs-border-radius);
12
+ --fs-tooltip-padding : var(--fs-spacing-2);
13
+ --fs-tooltip-gap : var(--fs-spacing-1);
14
+
15
+ --fs-tooltip-transition-property : opacity;
16
+ --fs-tooltip-transition-timing : var(--fs-transition-timing);
17
+ --fs-tooltip-transition-function : var(--fs-transition-function);
18
+
19
+ // Indicator
20
+ --fs-tooltip-indicator-size : var(--fs-spacing-1);
21
+ --fs-tooltip-indicator-distance-edge : var(--fs-spacing-3);
22
+ --fs-tooltip-indicator-distance-base : var(--fs-spacing-1);
23
+ --fs-tooltip-indicator-translate : calc(var(--fs-tooltip-indicator-size) + var(--fs-tooltip-indicator-distance-base));
24
+
25
+ // --------------------------------------------------------
26
+ // Structural Styles
27
+ // --------------------------------------------------------
28
+
29
+ position: relative;
30
+ display: inline-flex;
31
+ width: fit-content;
32
+
33
+ [data-fs-tooltip-wrapper] {
34
+ position: absolute;
35
+ z-index: var(--fs-tooltip-z-index);
36
+ display: flex;
37
+ gap: var(--fs-tooltip-gap);
38
+ align-items: flex-start;
39
+ padding: var(--fs-tooltip-padding);
40
+ color: var(--fs-tooltip-text-color);
41
+ background-color: var(--fs-tooltip-background);
42
+ border-radius: var(--fs-tooltip-border-radius);
43
+ opacity: 1;
44
+ transition:
45
+ var(--fs-tooltip-transition-property)
46
+ var(--fs-tooltip-transition-timing) var(--fs-tooltip-transition-function);
47
+ }
48
+
49
+ [data-fs-tooltip-content] {
50
+ width: max-content;
51
+ font-size: var(--fs-text-size-0);
52
+ font-weight: var(--fs-text-weight-medium);
53
+ line-height: 16px;
54
+ }
55
+
56
+ [data-fs-tooltip-dismiss-button] {
57
+ flex-shrink: 0;
58
+ width: var(--fs-control-tap-size-smallest);
59
+ height: var(--fs-control-tap-size-smallest);
60
+ min-height: var(--fs-control-tap-size-smallest);
61
+ padding: 0;
62
+ }
63
+
64
+ [data-fs-tooltip-indicator] {
65
+ position: absolute;
66
+ width: 0;
67
+ height: 0;
68
+ border: var(--fs-tooltip-indicator-size) solid transparent;
69
+ }
70
+
71
+ // --------------------------------------------------------
72
+ // Variants Styles
73
+ // --------------------------------------------------------
74
+
75
+ /* TOP */
76
+ [data-fs-tooltip-placement^="top-center"] {
77
+ bottom: 100%;
78
+ transform: translateY(calc(-1 * var(--fs-tooltip-indicator-translate)));
79
+ }
80
+
81
+ [data-fs-tooltip-placement^="top-center"] [data-fs-tooltip-indicator] {
82
+ top: 100%;
83
+ border-top-color: var(--fs-tooltip-background);
84
+ }
85
+
86
+ /* TOP-CENTER */
87
+ [data-fs-tooltip-placement="top-center"] {
88
+ left: 50%;
89
+ transform:
90
+ translateX(-50%)
91
+ translateY(calc(-1 * var(--fs-tooltip-indicator-translate)));
92
+ }
93
+
94
+ [data-fs-tooltip-placement="top-center"] [data-fs-tooltip-indicator] {
95
+ left: 50%;
96
+ transform: translateX(-50%);
97
+ }
98
+
99
+ /* TOP-START */
100
+ [data-fs-tooltip-placement="top-start"] {
101
+ left: 0;
102
+ }
103
+
104
+ [data-fs-tooltip-placement="top-start"] [data-fs-tooltip-indicator] {
105
+ left: var(--fs-spacing-3);
106
+ }
107
+
108
+ /* TOP-END */
109
+ [data-fs-tooltip-placement="top-end"] {
110
+ right: 0;
111
+ }
112
+
113
+ [data-fs-tooltip-placement="top-end"] [data-fs-tooltip-indicator] {
114
+ right: var(--fs-spacing-3);
115
+ }
116
+
117
+ /* RIGHT */
118
+ [data-fs-tooltip-placement^="right-center"] {
119
+ left: 100%;
120
+ transform: translateX(var(--fs-tooltip-indicator-translate));
121
+ }
122
+
123
+ [data-fs-tooltip-placement^="right-center"] [data-fs-tooltip-indicator] {
124
+ right: 100%;
125
+ border-right-color: var(--fs-tooltip-background);
126
+ }
127
+
128
+ /* RIGHT-CENTER */
129
+ [data-fs-tooltip-placement="right-center"] {
130
+ top: 50%;
131
+ transform:
132
+ translateY(-50%)
133
+ translateX(var(--fs-tooltip-indicator-translate));
134
+ }
135
+
136
+ [data-fs-tooltip-placement="right-center"] [data-fs-tooltip-indicator] {
137
+ top: 50%;
138
+ transform: translateY(-50%);
139
+ }
140
+
141
+ /* RIGHT-START */
142
+ [data-fs-tooltip-placement="right-start"] {
143
+ top: 0;
144
+ }
145
+
146
+ [data-fs-tooltip-placement="right-start"] [data-fs-tooltip-indicator] {
147
+ top: var(--fs-spacing-3);
148
+ }
149
+
150
+ /* RIGHT-END */
151
+ [data-fs-tooltip-placement="right-end"] {
152
+ bottom: 0;
153
+ }
154
+
155
+ [data-fs-tooltip-placement="right-end"] [data-fs-tooltip-indicator] {
156
+ bottom: var(--fs-spacing-3);
157
+ }
158
+
159
+ /* BOTTOM */
160
+ [data-fs-tooltip-placement^="bottom-center"] {
161
+ top: 100%;
162
+ transform: translateY(var(--fs-tooltip-indicator-translate));
163
+ }
164
+
165
+ [data-fs-tooltip-placement^="bottom-center"] [data-fs-tooltip-indicator] {
166
+ bottom: 100%;
167
+ border-bottom-color: var(--fs-tooltip-background);
168
+ }
169
+
170
+ /* BOTTOM-CENTER */
171
+ [data-fs-tooltip-placement="bottom-center"] {
172
+ left: 50%;
173
+ transform:
174
+ translateX(-50%)
175
+ translateY(var(--fs-tooltip-indicator-translate));
176
+ }
177
+
178
+ [data-fs-tooltip-placement="bottom-center"] [data-fs-tooltip-indicator] {
179
+ left: 50%;
180
+ transform: translateX(-50%);
181
+ }
182
+
183
+ /* BOTTOM-START */
184
+ [data-fs-tooltip-placement="bottom-start"] {
185
+ left: 0;
186
+ }
187
+
188
+ [data-fs-tooltip-placement="bottom-start"] [data-fs-tooltip-indicator] {
189
+ left: var(--fs-spacing-3);
190
+ }
191
+
192
+ /* BOTTOM-END */
193
+ [data-fs-tooltip-placement="bottom-end"] {
194
+ right: 0;
195
+ }
196
+
197
+ [data-fs-tooltip-placement="bottom-end"] [data-fs-tooltip-indicator] {
198
+ right: var(--fs-spacing-3);
199
+ }
200
+
201
+ /* LEFT */
202
+ [data-fs-tooltip-placement^="left-center"] {
203
+ right: 100%;
204
+ transform: translateX(calc(-1 * var(--fs-tooltip-indicator-translate)));
205
+ }
206
+
207
+ [data-fs-tooltip-placement^="left-center"] [data-fs-tooltip-indicator] {
208
+ left: 100%;
209
+ border-left-color: var(--fs-tooltip-background);
210
+ }
211
+
212
+ /* LEFT-CENTER */
213
+ [data-fs-tooltip-placement="left-center"] {
214
+ top: 50%;
215
+ transform:
216
+ translateY(-50%)
217
+ translateX(calc(-1 * var(--fs-tooltip-indicator-translate)));
218
+ }
219
+
220
+ [data-fs-tooltip-placement="left-center"] [data-fs-tooltip-indicator] {
221
+ top: 50%;
222
+ transform: translateY(-50%);
223
+ }
224
+
225
+ /* LEFT-START */
226
+ [data-fs-tooltip-placement="left-start"] {
227
+ top: 0;
228
+ }
229
+
230
+ [data-fs-tooltip-placement="left-start"] [data-fs-tooltip-indicator] {
231
+ top: var(--fs-spacing-3);
232
+ }
233
+
234
+ /* LEFT-END */
235
+ [data-fs-tooltip-placement="left-end"] {
236
+ bottom: 0;
237
+ }
238
+
239
+ [data-fs-tooltip-placement="left-end"] [data-fs-tooltip-indicator] {
240
+ bottom: var(--fs-spacing-3);
241
+ }
242
+ }
@@ -30,6 +30,7 @@
30
30
  @import "../components/molecules/Dropdown/styles";
31
31
  @import "../components/molecules/Gift/styles";
32
32
  @import "../components/molecules/InputField/styles";
33
+ @import "../components/molecules/TextareaField/styles";
33
34
  @import "../components/molecules/LinkButton/styles";
34
35
  @import "../components/molecules/Modal/styles";
35
36
  @import "../components/molecules/NavbarLinks/styles";
@@ -57,6 +58,7 @@
57
58
  @import "../components/molecules/Toast/styles";
58
59
  @import "../components/molecules/Toggle/styles";
59
60
  @import "../components/molecules/ToggleField/styles";
61
+ @import "../components/molecules/Tooltip/styles";
60
62
 
61
63
  // Organisms
62
64
  @import "../components/organisms/BannerText/styles";