@trilogy-ds/styles 4.15.2 → 4.16.1-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -44,12 +44,11 @@
44
44
  display: flex;
45
45
  gap: 16px;
46
46
  flex-wrap: wrap;
47
-
48
47
  &.is-grid {
49
48
  display: grid;
50
-
51
- & > .radio-tile {
49
+ & > .#{$type}-tile {
52
50
  width: 100%;
51
+ max-width: none;
53
52
  }
54
53
  }
55
54
  @for $i from 1 through 12 {
@@ -106,7 +105,8 @@
106
105
  .#{$type}-tile {
107
106
  position: relative;
108
107
 
109
- label.#{$type}-label {
108
+ label.#{$type}-label,
109
+ .#{$type}-container {
110
110
  cursor: pointer;
111
111
  font-size: 14px;
112
112
 
@@ -128,7 +128,8 @@
128
128
  position: absolute;
129
129
  outline: none;
130
130
 
131
- &:checked ~ label.#{$type}-label {
131
+ &:checked ~ label.#{$type}-label,
132
+ &:checked ~ .#{$type}-container {
132
133
  border-color: getColor('main');
133
134
 
134
135
  &:before {
@@ -139,18 +140,22 @@
139
140
  background-color: getColor('main');
140
141
  }
141
142
  }
142
- &:focus-visible ~ label.#{$type}-label:before {
143
+
144
+ &:focus-visible ~ label.#{$type}-label:before,
145
+ &:focus-visible ~ .#{$type}-container:before {
143
146
  outline: 1px solid;
144
147
  }
145
148
 
146
149
  &:disabled,
147
150
  &:disabled:checked {
148
- & ~ label.checkbox-label {
151
+ & ~ label.checkbox-label,
152
+ & ~ .checkbox-container {
149
153
  &:after {
150
154
  background-color: getColor('disabled-fade');
151
155
  }
152
156
  }
153
- & ~ label.radio-label {
157
+ & ~ label.radio-label,
158
+ & ~ .radio-container {
154
159
  &:after {
155
160
  background-color: getColor('disabled');
156
161
  }
@@ -158,7 +163,8 @@
158
163
  }
159
164
 
160
165
  &:disabled {
161
- & ~ label.#{$type}-label {
166
+ & ~ label.#{$type}-label,
167
+ & ~ .#{$type}-container {
162
168
  &:after {
163
169
  background-color: transparent;
164
170
  }
@@ -210,59 +216,23 @@
210
216
  }
211
217
  }
212
218
 
213
- .#{$type}-tiles:not(.is-grid) {
214
- .#{$type}-tile:not(.is-horizontal) {
215
- max-width: 160px;
216
- }
217
- }
218
-
219
219
  //TILE ONLY
220
220
  .#{$type}-tile {
221
221
  position: relative;
222
- display: flex;
223
- flex-direction: column;
224
- position: relative;
225
- padding: 40px 16px 16px;
226
- border: var(--border);
227
- border-radius: var(--radius);
228
- box-sizing: border-box;
229
- background-color: getColor('background');
222
+ max-width: 160px;
223
+ display: inline-block;
230
224
  text-align: center;
231
- align-items: center;
232
- font-size: 14px;
233
-
234
- &[aria-disabled="true"] {
235
- @include disabledRules;
236
- filter: none;
237
- label.#{$type}-label {
238
- cursor: not-allowed !important;
239
- }
240
- }
241
225
 
242
- &[aria-checked="true"] {
243
- border-color: getColor('main');
244
- border-width: 2px;
245
- padding: 15px;
246
- padding-top: 39px;
247
- label.radio-label:before {
248
- top: 15px;
249
- left: 15px;
250
- }
251
- .#{$type}-sticker {
252
- top: -1px;
253
- right: 15px;
226
+ input:disabled,
227
+ input:disabled:checked {
228
+ & ~ label.#{$type}-label,
229
+ & ~ .#{$type}-container {
230
+ @include disabledRules;
254
231
  }
255
232
  }
256
233
 
257
- &:not([aria-disabled="true"]) {
258
- cursor: pointer;
259
- }
260
-
261
- &:not([aria-disabled="true"]):not([aria-checked="true"]) {
262
- @include label-states;
263
- }
264
-
265
- &:has(input:focus-visible) {
234
+ &:has(input:focus-visible) label.#{$type}-label,
235
+ &:has(input:focus-visible) .#{$type}-container{
266
236
  outline: 1px solid;
267
237
  }
268
238
 
@@ -274,22 +244,79 @@
274
244
  margin-right: 0;
275
245
  }
276
246
 
277
- .#{$type}-content {
278
- display: flex;
279
- flex-direction: column;
280
- }
281
-
282
- label.#{$type}-label {
247
+ label.#{$type}-label,
248
+ .#{$type}-container {
283
249
  display: block;
284
- font-weight: bold;
285
- width: 100%;
286
- display: block;
287
- font-size: 16px;
288
- order: - 1;
250
+ position: relative;
251
+ padding: 40px 16px 16px;
252
+ border: var(--border);
253
+ border-radius: var(--radius);
254
+ box-sizing: border-box;
255
+ background-color: getColor('background');
256
+ height: 100%;
257
+
289
258
  &:before {
290
259
  top: 16px;
291
260
  left: 16px;
292
261
  }
262
+
263
+ span.#{$type}-title,
264
+ label.#{$type}-title {
265
+ font-weight: bold;
266
+ width: 100%;
267
+ display: block;
268
+ font-size: 16px;
269
+ }
270
+
271
+ label.#{$type}-title {
272
+ cursor: pointer;
273
+ }
274
+ }
275
+
276
+ input {
277
+ &:not(:disabled):not(:checked) ~ label.radio-label,
278
+ &:not(:disabled):not(:checked) ~ .radio-container {
279
+ @include label-states;
280
+ }
281
+
282
+ &:not(:disabled) ~ label.checkbox-label,
283
+ &:not(:disabled) ~ .checkbox-container {
284
+ @include label-states;
285
+ }
286
+
287
+ &:checked:not(:disabled) ~ label.#{$type}-label,
288
+ &:checked:not(:disabled) ~ .#{$type}-container {
289
+ border-color: getColor('main');
290
+ border-width: 2px;
291
+ padding: 15px;
292
+ padding-top: 39px;
293
+
294
+ &:before {
295
+ top: 15px;
296
+ left: 15px;
297
+ }
298
+
299
+ span.#{$type}-title,
300
+ label.#{$type}-title {
301
+ color: getColor('main');
302
+ }
303
+ }
304
+
305
+ &:disabled {
306
+ & ~ label.#{$type}-label,
307
+ & ~ .#{$type}-container {
308
+ &:before {
309
+ border-color: getColor('disabled') !important;
310
+ }
311
+ }
312
+ }
313
+
314
+ &:disabled:checked ~ label.#{$type}-label,
315
+ &:disabled:checked ~ .#{$type}-container {
316
+ .checkbox-title {
317
+ color: getColor('disabled');
318
+ }
319
+ }
293
320
  }
294
321
 
295
322
  .#{$type}-sticker {
@@ -300,34 +327,46 @@
300
327
  }
301
328
 
302
329
  &.is-horizontal {
303
- flex-direction: row;
330
+ display: flex;
331
+ justify-content: space-between;
304
332
  align-items: center;
305
333
  max-width: unset;
306
334
  width: 100%;
307
335
  position: relative;
308
- text-align: left;
309
- padding: $spacing-4 $spacing-4 $spacing-4 $spacing-8;
310
- align-items: center;
311
336
 
312
337
  &.is-narrow {
313
338
  width: fit-content;
314
339
  }
315
340
 
316
- label.#{$type}-label {
341
+ input {
342
+ &:checked:not(:disabled) ~ label.#{$type}-label,
343
+ &:checked:not(:disabled) ~ .#{$type}-container {
344
+ padding: ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-8 - 1px);
345
+ }
346
+
347
+ }
348
+
349
+ label.#{$type}-label,
350
+ .#{$type}-container {
351
+ width: 100%;
352
+ display: flex;
353
+ align-items: center;
354
+ justify-content: flex-start;
355
+ text-align: left;
356
+ padding: $spacing-4 $spacing-4 $spacing-4 $spacing-8;
357
+
358
+
317
359
  &:before,
318
360
  &:after {
319
361
  top: 50% !important;
320
362
  transform: translateY(-50%);
321
363
  }
322
- }
364
+ > .icon {
365
+ margin-right: $spacing-4;
366
+ }
323
367
 
324
- & > .icon {
325
- margin-right: $spacing-4;
326
368
  }
327
369
 
328
- &[aria-checked="true"] {
329
- padding: ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-4 - 1px) ($spacing-8 - 1px);
330
- }
331
370
  }
332
371
  }
333
372
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trilogy-ds/styles",
3
- "version": "4.15.2",
3
+ "version": "4.16.1-beta-1",
4
4
  "author": "Bouygues Telecom",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,217 +0,0 @@
1
- @use "sass:math";
2
-
3
- .stepper-wrapper {
4
- display: flex;
5
- position: relative;
6
- justify-content: space-between;
7
- min-height: 44px;
8
- gap: $spacing-4;
9
-
10
- @include touch {
11
- gap: $spacing-2;
12
- }
13
-
14
- .stepper-item {
15
- display: flex;
16
- flex-direction: column;
17
- width: 100%;
18
-
19
- &:before {
20
- content: "";
21
- display: block;
22
- height: 4px;
23
- border-radius: var(--radius-small);
24
- background-size: 200% !important;
25
- background-color: getColor('neutral');
26
- }
27
-
28
- &.is-error {
29
-
30
- &:before {
31
- background-color: getColor('error') !important;
32
-
33
- }
34
-
35
- &.is-current {
36
- &:before {
37
- animation: progress 1s;
38
- }
39
-
40
- }
41
-
42
- .step-bars {
43
- background: getColor('error') !important;
44
- }
45
-
46
- color: getColor('font');
47
-
48
- .step-label {
49
-
50
- &::before {
51
- content: "";
52
- mask-image: url('./assets/icons/all/times.svg') !important;
53
- background-color: getColor('error') !important;
54
- border-width: 0;
55
- mask-size: 20px;
56
- width: 20px;
57
- height: 20px;
58
- align-self: baseline;
59
- margin-top: 2px;
60
- }
61
-
62
- .icon {
63
- display: none;
64
- }
65
- }
66
- }
67
-
68
- &.is-done {
69
-
70
- &:before {
71
- background-color: getColor('font');
72
- }
73
-
74
- .step-bars {
75
- background: getColor('font');
76
- transition: background-color 1s ease-in-out;
77
- }
78
-
79
- .step-label {
80
- &::before {
81
- content: "";
82
- mask-image: url('./assets/icons/all/check-circle.svg');
83
- background-color: getColor('success');
84
- border-width: 0;
85
- min-width: 20px;
86
- mask-size: 20px;
87
- height: 20px;
88
- align-self: baseline;
89
- margin-top: 2px;
90
- }
91
- }
92
- }
93
-
94
- &.is-current,
95
- &.is-active {
96
-
97
- &:before {
98
- background-color: getColor('main');
99
- animation: progress 1s;
100
- }
101
-
102
- .step-bars {
103
- background: getColor('main');
104
- }
105
-
106
- .step-label {
107
- font-style: normal;
108
- font-weight: 600;
109
- font-size: 20px;
110
- line-height: 22px;
111
- width: max-content;
112
-
113
- .icon [class^=tri-], .icon [class*=" tri-"] {
114
- height: 22px;
115
- width: 22px;
116
- margin: 0 4px 0 -4px;
117
- }
118
-
119
- @include tablet-only {
120
- width: 90% !important;
121
- }
122
-
123
- @include mobile {
124
- font-size: 18px;
125
- width: 90%;
126
- }
127
- }
128
- }
129
- }
130
-
131
- .step-bars {
132
- height: 4px;
133
- background: getColor('disabled');
134
- border-radius: var(--radius-small);
135
- display: none;
136
- }
137
-
138
- .step-label {
139
- display: flex;
140
- align-items: center;
141
- color: getColor('font');
142
- font-style: normal;
143
- font-weight: 400;
144
- font-size: 16px;
145
- line-height: 24px;
146
- padding-top: $spacing-2;
147
- gap: $spacing-1;
148
-
149
- .icon {
150
- font-size: 20px;
151
- height: auto;
152
- }
153
-
154
- @include touch {
155
- position: absolute;
156
- top: 10px;
157
- left: 0;
158
- }
159
- }
160
-
161
- @include desktop {
162
- .step-count {
163
- display: none;
164
- }
165
- }
166
-
167
- @include mobile {
168
- .step-count {
169
- position: absolute;
170
- top: 23px;
171
- right: 8px;
172
- font-size: 14px;
173
- line-height: 18px;
174
- font-weight: 600;
175
- }
176
-
177
- .stepper-item:not(.is-current) {
178
- display: flex;
179
-
180
- .step-label {
181
- display: none;
182
- }
183
- }
184
- }
185
-
186
- @include tablet-only {
187
- .step-count {
188
- position: absolute;
189
- top: 24px;
190
- right: 8px;
191
- font-size: 14px;
192
- line-height: 18px;
193
- font-weight: 600;
194
- }
195
-
196
- .stepper-item:not(.is-current) {
197
- display: flex;
198
-
199
- .step-label {
200
- display: none;
201
- }
202
- }
203
- }
204
-
205
-
206
- @keyframes progress {
207
- 0%, 100% {
208
- background-image: linear-gradient(to right, transparent 0, transparent 50%, getColor('neutral') 50%, getColor('neutral') 100%);
209
- }
210
- 0% {
211
- background-position: 100% 0;
212
- }
213
- 100% {
214
- background-position: 0 0;
215
- }
216
- }
217
- }