@lucca-front/scss 17.4.1 → 17.4.2

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": "@lucca-front/scss",
3
- "version": "17.4.1",
3
+ "version": "17.4.2",
4
4
  "description": "A Sass framework for Lucca products.",
5
5
  "main": "src/main.scss",
6
6
  "scripts": {},
@@ -23,6 +23,6 @@
23
23
  "normalize.css": "^8.0.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@lucca-front/icons": "v17.4.1"
26
+ "@lucca-front/icons": "v17.4.2"
27
27
  }
28
28
  }
@@ -3,216 +3,232 @@
3
3
  @use '@lucca-front/scss/src/components/button/exports' as button;
4
4
 
5
5
  @mixin component($atRoot: 'without: rule') {
6
- position: relative;
7
- display: table;
8
- width: 100%;
9
- padding: 0 var(--components-indexTable-padding) calc(var(--components-indexTable-padding) - var(--components-indexTable-row-spacing));
10
- border-collapse: separate;
11
- border-spacing: 0 var(--components-indexTable-row-spacing);
12
- border-radius: var(--components-indexTable-border-radius);
13
- background-color: var(--components-indexTable-background-color);
14
- color: var(--palettes-neutral-800);
15
-
16
- @at-root ($atRoot) {
17
- .indexTable-head {
18
- display: table-header-group;
19
- vertical-align: bottom;
20
- }
21
-
22
- .indexTable-body {
23
- display: table-row-group;
24
- }
25
-
26
- //There might be more than one footer
27
- .indexTable-foot {
28
- display: table-row-group;
29
- &:is(tfoot) {
30
- display: table-footer-group;
31
- }
32
- }
33
-
34
- .indexTable-head-row,
35
- .indexTable-body-row,
36
- .indexTable-foot-row {
37
- display: table-row;
38
- }
39
-
40
- .indexTable-body-row {
41
- border-radius: var(--commons-borderRadius-L);
42
- cursor: pointer;
43
- }
44
-
45
- .indexTable-head-row-transparentCell,
46
- .indexTable-body-row-transparentCell,
47
- .indexTable-head-row-cell,
48
- .indexTable-body-row-cell,
49
- .indexTable-foot-row-cell {
50
- display: table-cell;
51
- text-align: left;
52
- font-weight: 400;
53
- }
54
-
55
- .indexTable-head-row-transparentCell,
56
- .indexTable-body-row-transparentCell {
57
- vertical-align: middle;
58
- padding: var(--pr-t-spacings-50) 0;
59
- &:not(:first-child) {
60
- padding-right: var(--components-indexTable-cell-padding);
61
- }
62
- }
63
-
64
- .indexTable-head-row-cell,
65
- .indexTable-body-row-cell,
66
- .indexTable-foot-row-cell {
67
- vertical-align: top;
68
- // Because outlined cell apparence can be cropped we need a bigger padding-right. To compensate we also need a smaller padding left
69
- padding: var(--components-indexTable-cell-padding);
70
- padding-left: var(--components-indexTable-cell-padding-left, var(--components-indexTable-cell-padding));
71
- padding-right: var(--components-indexTable-cell-padding-right, var(--components-indexTable-cell-padding));
72
- }
73
-
74
- .indexTable-head-row-cell {
75
- color: var(--palettes-neutral-700);
76
- }
77
-
78
- .indexTable-foot-row-cell {
79
- padding-top: var(--pr-t-spacings-50);
80
- padding-bottom: var(--pr-t-spacings-50);
81
- }
82
-
83
- .indexTable-body-row-cell {
84
- position: relative;
85
- z-index: var(--components-indexTable-cell-z-index, 1);
86
- border-radius: var(--components-table-cardList-cell-border-radius);
87
- border: var(--commons-divider-width) 0 solid transparent;
88
-
89
- // Apparence of the first cell with a card apparence.
90
- // We do this because there migh be one or two cells before without background and containing a checkbox
91
- --components-indexTable-cell-inset-x-left: var(--components-indexTable-cell-inset-x);
92
- --components-indexTable-cell-border-radius-left: var(--components-indexTable-cell-border-radius);
93
- --components-indexTable-cell-border-radius-right: 0;
94
- --components-indexTable-outline-border-radius-left: var(--components-indexTable-outline-border-radius);
95
- --components-indexTable-outline-border-radius-right: 0;
96
- --components-indexTable-outline-border-width-left: var(--components-indexTable-outline-border-width);
97
- --components-indexTable-outline-border-width-right: 0;
98
- --components-indexTable-cell-padding-right: calc(var(--components-indexTable-cell-padding) + 4px);
99
-
100
- // Apparence of the nexts cells
101
- ~ .indexTable-body-row-cell {
102
- --components-indexTable-cell-inset-x-left: 0px;
103
- --components-indexTable-shadow-mask: calc(var(--pr-t-spacings-100) * -1) 0px 0px 0px var(--components-indexTable-cell-background-color, var(--components-indexTable-cell-background-color-default));
104
- --components-indexTable-cell-border-radius-left: 0;
105
- --components-indexTable-outline-border-radius-left: 0;
106
- --components-indexTable-outline-border-width-left: 0;
107
- --components-indexTable-cell-padding-left: calc(var(--components-indexTable-cell-padding) - 4px);
108
- }
109
-
110
- // Apparence of the last cell with a card apparence
111
- &:last-child {
112
- --components-indexTable-cell-inset-x-right: var(--components-indexTable-cell-inset-x);
113
- --components-indexTable-cell-border-radius-right: var(--components-indexTable-cell-border-radius);
114
- --components-indexTable-outline-border-radius-right: var(--components-indexTable-outline-border-radius);
115
- --components-indexTable-outline-border-width-right: var(--components-indexTable-outline-border-width);
116
- --components-indexTable-cell-padding-right: var(--components-indexTable-cell-padding);
117
- }
118
-
119
- &::before,
120
- &::after {
121
- content: '';
122
- position: absolute;
123
- z-index: -1;
124
- transition-duration: var(--commons-animations-durations-fast);
125
- }
126
-
127
- // The "card" apparence is put on a ::before pseudo element
128
- &::before {
129
- inset: var(--components-indexTable-cell-inset-y, 0) var(--components-indexTable-cell-inset-x-right, 0) var(--components-indexTable-cell-inset-y, 0) var(--components-indexTable-cell-inset-x-left, 0);
130
- border-radius: var(--components-indexTable-cell-border-radius-left) var(--components-indexTable-cell-border-radius-right) var(--components-indexTable-cell-border-radius-right) var(--components-indexTable-cell-border-radius-left);
131
- background-color: var(--components-indexTable-cell-background-color, var(--components-indexTable-cell-background-color-default));
132
- // shadow-mask : since the card apparence is put on every cell (du to a Safari bug), we need to hide the left part of the box shadow for everycell exept the first one.
133
- // We do this with a rectangular white box-shadow above it.
134
- box-shadow: var(--components-indexTable-shadow-mask, 0 0 0 0), var(--components-indexTable-cell-shadow, var(--components-indexTable-cell-shadow-default));
135
- transition-property: inset, box-shadow, background-color;
136
- }
137
-
138
- // The focus outline, when needed
139
- &::after {
140
- inset: calc(var(--components-indexTable-cell-inset-y, 0px) - var(--components-indexTable-outline-offset)) calc(var(--components-indexTable-cell-inset-x-right, 0px) - var(--components-indexTable-outline-offset))
141
- calc(var(--components-indexTable-cell-inset-y, 0px) - var(--components-indexTable-outline-offset)) calc(var(--components-indexTable-cell-inset-x-left, 0px) - var(--components-indexTable-outline-offset));
142
- border-radius: var(--components-indexTable-outline-border-radius-left) var(--components-indexTable-outline-border-radius-right) var(--components-indexTable-outline-border-radius-right)
143
- var(--components-indexTable-outline-border-radius-left);
144
- border-width: var(--components-indexTable-outline-border-width) var(--components-indexTable-outline-border-width-right) var(--components-indexTable-outline-border-width) var(--components-indexTable-outline-border-width-left);
145
- border-style: solid;
146
- border-color: var(--components-indexTable-outline-color);
147
- opacity: var(--components-indexTable-outline-opacity, 0);
148
- transition-property: inset;
149
- }
150
-
151
- // No shadow if the row contain an emptyState
152
- &:has(.emptyState) {
153
- --components-indexTable-cell-shadow: none;
154
- }
155
- }
156
-
157
- .indexTable-body-row-cell-checkbox,
158
- .indexTable-head-row-cell-checkbox {
159
- display: block;
160
- margin: 2px 0 0 var(--pr-t-spacings-50);
161
- }
162
-
163
- // Hidden element that take focus when the row is focused
164
- .indexTable-body-row-cell-action {
165
- @include a11y.mask;
166
- }
167
-
168
- .indexTable-body-row-cellTitle {
169
- position: relative;
170
- display: flex;
171
- align-items: center;
172
- gap: var(--pr-t-spacings-100);
173
- }
174
-
175
- .indexTable-body-row-cellTitle-button {
176
- @include button.text;
177
- @include button.S;
178
- @include button.onlyIconS;
179
- position: static;
180
- .lucca-icon {
181
- transition: transform var(--commons-animations-durations-fast) ease;
182
- }
183
- // Extend button reactive zone to his whole parent
184
- &::before {
185
- content: '';
186
- position: absolute;
187
- inset: 0;
188
- }
189
- }
190
-
191
- .indexTable-body-row-cellTitle-title {
192
- font-weight: 600;
193
- }
194
-
195
- .indexTable-foot-row-cell {
196
- text-align: right;
197
- }
198
-
199
- // A wrapper is needed for pagination
200
- .indexTableWrapper {
201
- @include vars;
202
- display: flex;
203
- flex-direction: column;
204
- padding-bottom: var(--pr-t-spacings-100);
205
- border-radius: var(--components-indexTable-border-radius);
206
- background-color: var(--components-indexTable-background-color);
207
- .indexTable {
208
- flex-grow: 1;
209
- padding-bottom: 0;
210
- }
211
- .pagination {
212
- align-self: flex-end;
213
- padding: var(--pr-t-spacings-50) 0 0 0;
214
- margin-right: var(--pr-t-spacings-100);
215
- }
216
- }
217
- }
6
+ position: relative;
7
+ display: table;
8
+ width: 100%;
9
+ padding: 0 var(--components-indexTable-padding) calc(var(--components-indexTable-padding) - var(--components-indexTable-row-spacing));
10
+ border-collapse: separate;
11
+ border-spacing: 0 var(--components-indexTable-row-spacing);
12
+ border-radius: var(--components-indexTable-border-radius);
13
+ background-color: var(--components-indexTable-background-color);
14
+ color: var(--palettes-neutral-800);
15
+
16
+ @at-root ($atRoot) {
17
+ .indexTable-head {
18
+ display: table-header-group;
19
+ vertical-align: bottom;
20
+ }
21
+
22
+ .indexTable-body {
23
+ display: table-row-group;
24
+ }
25
+
26
+ //There might be more than one footer
27
+ .indexTable-foot {
28
+ display: table-row-group;
29
+ &:is(tfoot) {
30
+ display: table-footer-group;
31
+ }
32
+ }
33
+
34
+ .indexTable-head-row,
35
+ .indexTable-body-row,
36
+ .indexTable-foot-row {
37
+ display: table-row;
38
+ }
39
+
40
+ .indexTable-body-row {
41
+ border-radius: var(--commons-borderRadius-L);
42
+ cursor: pointer;
43
+ }
44
+
45
+ .indexTable-head-row-transparentCell,
46
+ .indexTable-body-row-transparentCell,
47
+ .indexTable-head-row-cell,
48
+ .indexTable-body-row-cell,
49
+ .indexTable-foot-row-cell {
50
+ display: table-cell;
51
+ text-align: left;
52
+ font-weight: 400;
53
+ }
54
+
55
+ .indexTable-head-row-transparentCell,
56
+ .indexTable-body-row-transparentCell {
57
+ vertical-align: middle;
58
+ padding: var(--pr-t-spacings-50) 0;
59
+ &:not(:first-child) {
60
+ padding-right: var(--components-indexTable-cell-padding);
61
+ }
62
+ }
63
+
64
+ .indexTable-head-row-cell,
65
+ .indexTable-body-row-cell,
66
+ .indexTable-foot-row-cell {
67
+ vertical-align: top;
68
+
69
+ // Because outlined cell apparence can be cropped we need a bigger padding-right. To compensate we also need a smaller padding-left
70
+ padding: var(--components-indexTable-cell-padding);
71
+ padding-left: var(--components-indexTable-cell-padding-left, var(--components-indexTable-cell-padding));
72
+ padding-right: var(--components-indexTable-cell-padding-right, var(--components-indexTable-cell-padding));
73
+
74
+ --components-indexTable-cell-padding-right: calc(var(--components-indexTable-cell-padding) + 4px);
75
+ ~ .indexTable-head-row-cell,
76
+ ~ .indexTable-body-row-cell,
77
+ ~ .indexTable-foot-row-cell {
78
+ --components-indexTable-cell-padding-left: calc(var(--components-indexTable-cell-padding) - 4px);
79
+ }
80
+
81
+ &:last-child {
82
+ --components-indexTable-cell-padding-right: var(--components-indexTable-cell-padding);
83
+ }
84
+ }
85
+
86
+ .indexTable-head-row-cell {
87
+ color: var(--palettes-neutral-700);
88
+ }
89
+
90
+ .indexTable-foot-row-cell {
91
+ padding-top: var(--pr-t-spacings-50);
92
+ padding-bottom: var(--pr-t-spacings-50);
93
+ }
94
+
95
+ .indexTable-body-row-cell {
96
+ position: relative;
97
+ z-index: var(--components-indexTable-cell-z-index, 1);
98
+ border-radius: var(--components-table-cardList-cell-border-radius);
99
+ border: var(--commons-divider-width) 0 solid transparent;
100
+
101
+ // Apparence of the first cell with a card apparence.
102
+ // We do this because there migh be one or two cells before without background and containing a checkbox
103
+ --components-indexTable-cell-inset-x-left: var(--components-indexTable-cell-inset-x);
104
+ --components-indexTable-cell-border-radius-left: var(--components-indexTable-cell-border-radius);
105
+ --components-indexTable-cell-border-radius-right: 0;
106
+ --components-indexTable-outline-border-radius-left: var(--components-indexTable-outline-border-radius);
107
+ --components-indexTable-outline-border-radius-right: 0;
108
+ --components-indexTable-outline-border-width-left: var(--components-indexTable-outline-border-width);
109
+ --components-indexTable-outline-border-width-right: 0;
110
+
111
+ // Apparence of the nexts cells
112
+ ~ .indexTable-body-row-cell {
113
+ --components-indexTable-cell-inset-x-left: 0px;
114
+ --components-indexTable-shadow-mask: calc(var(--pr-t-spacings-100) * -1) 0px 0px 0px
115
+ var(--components-indexTable-cell-background-color, var(--components-indexTable-cell-background-color-default));
116
+ --components-indexTable-cell-border-radius-left: 0;
117
+ --components-indexTable-outline-border-radius-left: 0;
118
+ --components-indexTable-outline-border-width-left: 0;
119
+ }
120
+
121
+ // Apparence of the last cell with a card apparence
122
+ &:last-child {
123
+ --components-indexTable-cell-inset-x-right: var(--components-indexTable-cell-inset-x);
124
+ --components-indexTable-cell-border-radius-right: var(--components-indexTable-cell-border-radius);
125
+ --components-indexTable-outline-border-radius-right: var(--components-indexTable-outline-border-radius);
126
+ --components-indexTable-outline-border-width-right: var(--components-indexTable-outline-border-width);
127
+ }
128
+
129
+ &::before,
130
+ &::after {
131
+ content: '';
132
+ position: absolute;
133
+ z-index: -1;
134
+ transition-duration: var(--commons-animations-durations-fast);
135
+ }
136
+
137
+ // The "card" apparence is put on a ::before pseudo element
138
+ &::before {
139
+ inset: var(--components-indexTable-cell-inset-y, 0) var(--components-indexTable-cell-inset-x-right, 0)
140
+ var(--components-indexTable-cell-inset-y, 0) var(--components-indexTable-cell-inset-x-left, 0);
141
+ border-radius: var(--components-indexTable-cell-border-radius-left) var(--components-indexTable-cell-border-radius-right)
142
+ var(--components-indexTable-cell-border-radius-right) var(--components-indexTable-cell-border-radius-left);
143
+ background-color: var(--components-indexTable-cell-background-color, var(--components-indexTable-cell-background-color-default));
144
+ // shadow-mask : since the card apparence is put on every cell (du to a Safari bug), we need to hide the left part of the box shadow for everycell exept the first one.
145
+ // We do this with a rectangular white box-shadow above it.
146
+ box-shadow: var(--components-indexTable-shadow-mask, 0 0 0 0),
147
+ var(--components-indexTable-cell-shadow, var(--components-indexTable-cell-shadow-default));
148
+ transition-property: inset, box-shadow, background-color;
149
+ }
150
+
151
+ // The focus outline, when needed
152
+ &::after {
153
+ inset: calc(var(--components-indexTable-cell-inset-y, 0px) - var(--components-indexTable-outline-offset))
154
+ calc(var(--components-indexTable-cell-inset-x-right, 0px) - var(--components-indexTable-outline-offset))
155
+ calc(var(--components-indexTable-cell-inset-y, 0px) - var(--components-indexTable-outline-offset))
156
+ calc(var(--components-indexTable-cell-inset-x-left, 0px) - var(--components-indexTable-outline-offset));
157
+ border-radius: var(--components-indexTable-outline-border-radius-left) var(--components-indexTable-outline-border-radius-right)
158
+ var(--components-indexTable-outline-border-radius-right) var(--components-indexTable-outline-border-radius-left);
159
+ border-width: var(--components-indexTable-outline-border-width) var(--components-indexTable-outline-border-width-right)
160
+ var(--components-indexTable-outline-border-width) var(--components-indexTable-outline-border-width-left);
161
+ border-style: solid;
162
+ border-color: var(--components-indexTable-outline-color);
163
+ opacity: var(--components-indexTable-outline-opacity, 0);
164
+ transition-property: inset;
165
+ }
166
+
167
+ // No shadow if the row contain an emptyState
168
+ &:has(.emptyState) {
169
+ --components-indexTable-cell-shadow: none;
170
+ }
171
+ }
172
+
173
+ .indexTable-body-row-cell-checkbox,
174
+ .indexTable-head-row-cell-checkbox {
175
+ display: block;
176
+ margin: 2px 0 0 var(--pr-t-spacings-50);
177
+ }
178
+
179
+ // Hidden element that take focus when the row is focused
180
+ .indexTable-body-row-cell-action {
181
+ @include a11y.mask;
182
+ }
183
+
184
+ .indexTable-body-row-cellTitle {
185
+ position: relative;
186
+ display: flex;
187
+ align-items: center;
188
+ gap: var(--pr-t-spacings-100);
189
+ }
190
+
191
+ .indexTable-body-row-cellTitle-button {
192
+ @include button.text;
193
+ @include button.S;
194
+ @include button.onlyIconS;
195
+ position: static;
196
+ .lucca-icon {
197
+ transition: transform var(--commons-animations-durations-fast) ease;
198
+ }
199
+ // Extend button reactive zone to his whole parent
200
+ &::before {
201
+ content: '';
202
+ position: absolute;
203
+ inset: 0;
204
+ }
205
+ }
206
+
207
+ .indexTable-body-row-cellTitle-title {
208
+ font-weight: 600;
209
+ }
210
+
211
+ .indexTable-foot-row-cell {
212
+ text-align: right;
213
+ }
214
+
215
+ // A wrapper is needed for pagination
216
+ .indexTableWrapper {
217
+ @include vars;
218
+ display: flex;
219
+ flex-direction: column;
220
+ padding-bottom: var(--pr-t-spacings-100);
221
+ border-radius: var(--components-indexTable-border-radius);
222
+ background-color: var(--components-indexTable-background-color);
223
+ .indexTable {
224
+ flex-grow: 1;
225
+ padding-bottom: 0;
226
+ }
227
+ .pagination {
228
+ align-self: flex-end;
229
+ padding: var(--pr-t-spacings-50) 0 0 0;
230
+ margin-right: var(--pr-t-spacings-100);
231
+ }
232
+ }
233
+ }
218
234
  }
@@ -1,3 +1,4 @@
1
+ @use '@lucca-front/scss/src/commons/utils/reset';
1
2
  @use '@lucca-front/icons/src/commons/utils/icon';
2
3
 
3
4
  @mixin component($atRoot: 'without: rule') {
@@ -50,6 +51,8 @@
50
51
  }
51
52
 
52
53
  .toasts-item-kill {
54
+ @include reset.button;
55
+ width: auto;
53
56
  color: var(--colors-white-color);
54
57
  transition-property: opacity;
55
58
  transition-duration: var(--commons-animations-durations-fast);