@lucca-front/scss 16.2.7-rc.2 → 16.3.0-rc.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.
Files changed (106) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +2 -2
  3. package/src/components/button/index.scss +1 -1
  4. package/src/components/button/mods.scss +6 -5
  5. package/src/components/button/states.scss +7 -3
  6. package/src/components/checkbox/mods.scss +1 -1
  7. package/src/components/checkboxField/component.scss +85 -0
  8. package/src/components/checkboxField/index.scss +72 -0
  9. package/src/components/checkboxField/mods.scss +18 -0
  10. package/src/components/checkboxField/states.scss +167 -0
  11. package/src/components/checkboxField/vars.scss +8 -0
  12. package/src/components/chip/index.scss +0 -8
  13. package/src/components/chip/mods.scss +0 -20
  14. package/src/components/clear/index.scss +1 -1
  15. package/src/components/clear/mods.scss +1 -1
  16. package/src/components/footer/component.scss +36 -0
  17. package/src/components/footer/exports.scss +4 -0
  18. package/src/components/footer/index.scss +10 -0
  19. package/src/components/footer/mods.scss +4 -0
  20. package/src/components/footer/vars.scss +2 -0
  21. package/src/components/formLabel/component.scss +21 -0
  22. package/src/components/formLabel/exports.scss +4 -0
  23. package/src/components/formLabel/index.scss +18 -0
  24. package/src/components/formLabel/mods.scss +17 -0
  25. package/src/components/formLabel/states.scss +8 -0
  26. package/src/components/formLabel/vars.scss +7 -0
  27. package/src/components/index.scss +13 -2
  28. package/src/components/inlineMessage/component.scss +13 -0
  29. package/src/components/inlineMessage/exports.scss +4 -0
  30. package/src/components/inlineMessage/index.scss +22 -0
  31. package/src/components/inlineMessage/mods.scss +5 -0
  32. package/src/components/inlineMessage/states.scss +41 -0
  33. package/src/components/inlineMessage/vars.scss +7 -0
  34. package/src/components/list/component.scss +16 -6
  35. package/src/components/list/mods.scss +4 -5
  36. package/src/components/menu/component.scss +2 -2
  37. package/src/components/menu/mods.scss +1 -1
  38. package/src/components/menu/states.scss +12 -2
  39. package/src/components/mobileHeader/component.scss +30 -0
  40. package/src/components/mobileHeader/exports.scss +4 -0
  41. package/src/components/mobileHeader/index.scss +10 -0
  42. package/src/components/mobileHeader/mods.scss +23 -0
  43. package/src/components/mobileHeader/states.scss +0 -0
  44. package/src/components/mobileHeader/vars.scss +3 -0
  45. package/src/components/mobileNavigation/component.scss +56 -0
  46. package/src/components/mobileNavigation/exports.scss +4 -0
  47. package/src/components/mobileNavigation/index.scss +10 -0
  48. package/src/components/mobileNavigation/mods.scss +5 -0
  49. package/src/components/mobileNavigation/states.scss +0 -0
  50. package/src/components/mobileNavigation/vars.scss +2 -0
  51. package/src/components/navside/component.scss +6 -3
  52. package/src/components/navside/mods.scss +9 -1
  53. package/src/components/navside/states.scss +1 -1
  54. package/src/components/newBadge/component.scss +10 -0
  55. package/src/components/newBadge/exports.scss +4 -0
  56. package/src/components/newBadge/index.scss +6 -0
  57. package/src/components/newBadge/mods.scss +0 -0
  58. package/src/components/newBadge/states.scss +0 -0
  59. package/src/components/newBadge/vars.scss +2 -0
  60. package/src/components/numericBadge/component.scss +17 -0
  61. package/src/components/numericBadge/exports.scss +4 -0
  62. package/src/components/numericBadge/index.scss +14 -0
  63. package/src/components/numericBadge/mods.scss +13 -0
  64. package/src/components/numericBadge/states.scss +0 -0
  65. package/src/components/numericBadge/vars.scss +8 -0
  66. package/src/components/pagination/component.scss +1 -1
  67. package/src/components/radioButtons/component.scss +5 -0
  68. package/src/components/radioField/component.scss +98 -0
  69. package/src/components/radioField/exports.scss +4 -0
  70. package/src/components/radioField/index.scss +32 -0
  71. package/src/components/radioField/mods.scss +18 -0
  72. package/src/components/radioField/states.scss +122 -0
  73. package/src/components/radioField/vars.scss +7 -0
  74. package/src/components/switchField/component.scss +110 -0
  75. package/src/components/switchField/exports.scss +4 -0
  76. package/src/components/switchField/index.scss +32 -0
  77. package/src/components/switchField/mods.scss +18 -0
  78. package/src/components/switchField/states.scss +119 -0
  79. package/src/components/switchField/vars.scss +7 -0
  80. package/src/components/table/component.scss +4 -16
  81. package/src/components/table/mods.scss +9 -3
  82. package/src/components/table/vars.scss +1 -1
  83. package/src/components/textfield/component.scss +113 -61
  84. package/src/components/textfield/index.scss +10 -380
  85. package/src/components/textfield/mods.scss +61 -619
  86. package/src/components/textfield/states.scss +80 -228
  87. package/src/components/textfield/vars.scss +12 -39
  88. package/src/components/textfields/component.scss +77 -0
  89. package/src/components/textfields/exports.scss +4 -0
  90. package/src/components/textfields/index.scss +402 -0
  91. package/src/components/textfields/mods.scss +560 -0
  92. package/src/components/textfields/states.scss +224 -0
  93. package/src/components/textfields/vars.scss +41 -0
  94. package/src/components/title/component.scss +1 -1
  95. package/src/components/verticalNavigation/component.scss +42 -0
  96. package/src/components/verticalNavigation/exports.scss +4 -0
  97. package/src/components/verticalNavigation/index.scss +26 -0
  98. package/src/components/verticalNavigation/mods.scss +7 -0
  99. package/src/components/verticalNavigation/states.scss +28 -0
  100. package/src/components/verticalNavigation/vars.scss +4 -0
  101. package/src/components/sortableList/component.scss +0 -68
  102. package/src/components/sortableList/index.scss +0 -16
  103. package/src/components/sortableList/mods.scss +0 -19
  104. package/src/components/sortableList/vars.scss +0 -8
  105. /package/src/components/{sortableList → checkboxField}/exports.scss +0 -0
  106. /package/src/components/{sortableList → footer}/states.scss +0 -0
@@ -1,229 +1,81 @@
1
- @use '@lucca-front/scss/src/commons/utils/form';
2
- @use '@lucca-front/scss/src/commons/utils/a11y';
3
-
4
- @mixin inputHover {
5
- box-shadow: 0 0 0 1px var(--palettes-grey-400);
6
- }
7
-
8
- @mixin inputFocus {
9
- @include a11y.focusVisible($offset: 3px);
10
- }
11
-
12
- @mixin inputDisabled {
13
- background-color: var(--components-textfield-disabled-background);
14
- color: var(--components-textfield-disabled-color);
15
- box-shadow: 0 0 0 1px var(--palettes-grey-300);
16
- cursor: default;
17
-
18
- &::placeholder {
19
- color: var(--commons-disabled-placeholder);
20
- }
21
-
22
- ~ .textfield-clear {
23
- color: var(--palettes-grey-500) !important;
24
- pointer-events: none;
25
- }
26
-
27
- ~ .textfield-actionClear { // deprecated
28
- color: var(--palettes-grey-500) !important;
29
- pointer-events: none;
30
- }
31
- }
32
-
33
- @mixin filterHover {
34
- background-color: var(--palettes-grey-50);
35
- }
36
-
37
- @mixin open {
38
- z-index: 999 !important;
39
-
40
- .textfield-options {
41
- opacity: 1;
42
- transform: scaleY(1);
43
- }
44
- }
45
-
46
- @mixin framedInputHover {
47
- &:not(:disabled, .is-error, .is-success, .is-valid, .is-warning, .is-invalid) {
48
- position: relative;
49
- z-index: 1;
50
- background-color: var(--colors-white-color);
51
- box-shadow: form.fakeBorderOverlay(var(--components-field-framed-color));
52
- }
53
- }
54
-
55
- @mixin framedInputFocus {
56
- &:not(:disabled, .is-error, .is-success, .is-valid, .is-warning, .is-invalid) {
57
- position: relative;
58
- z-index: 4;
59
- background-color: var(--colors-white-color);
60
- box-shadow: form.fakeBorderOverlay(var(--components-field-framed-color)), 0 0 0 4px var(--components-field-framed-color50);
61
- }
62
- }
63
-
64
- @mixin framedInputInvalid {
65
- ~ .textfield-label {
66
- color: var(--palettes-error-700);
67
- }
68
- }
69
-
70
- @mixin framedState($state) {
71
- @if $state == 'error' {
72
- z-index: 3;
73
- box-shadow: form.fakeBorderOverlay(var(--palettes-error-700));
74
- background-color: var(--palettes-error-50);
75
- }
76
-
77
- // todo: déplacer dans field
78
- .radiosfield-label,
79
- .checkboxesfield-label,
80
- .textfield-label {
81
- color: var(--palettes-#{$state}-700);
82
- }
83
-
84
- .textfield-input {
85
- &::placeholder {
86
- color: var(--palettes-#{$state}-300);
87
- }
88
-
89
- @if $state == 'error' {
90
- background-color: var(--palettes-error-50) !important;
91
- box-shadow: form.fakeBorderOverlay(var(--palettes-error-700)) !important;
92
- }
93
- }
94
- }
95
-
96
- @mixin framedLoading {
97
- &::before,
98
- &::after {
99
- right: var(--components-field-framed-side-padding) !important;
100
- top: var(--components-field-framed-side-padding) !important;
101
- bottom: auto !important;
102
- }
103
- }
104
-
105
- @mixin framedStateInputHover($state) {
106
- background-color: var(--palettes-#{$state}-50) !important;
107
-
108
- @if $state == 'error' {
109
- background-color: var(--palettes-#{$state}-100) !important;
110
- }
111
- }
112
-
113
- @mixin framedStateInputFocus($state) {
114
- background-color: var(--colors-white-color) !important;
115
- box-shadow: form.fakeBorderOverlay(var(--palettes-#{$state}-700)), 0 0 0 4px var(--palettes-#{$state}-50) !important;
116
-
117
- @if $state == 'error' {
118
- box-shadow: form.fakeBorderOverlay(var(--palettes-#{$state}-700)), 0 0 0 4px var(--palettes-#{$state}-50) !important;
119
- background-color: var(--colors-white-color) !important;
120
- }
121
- }
122
-
123
- @mixin framedErrorHover {
124
- z-index: 4;
125
- }
126
-
127
- @mixin framedStateSearch($state) {
128
- &::after {
129
- color: var(--palettes-#{$state}-700);
130
- }
131
- }
132
-
133
- @mixin framedStateHover($state) {
134
- background-color: var(--palettes-#{$state}-50);
135
-
136
- // todo: déplacer dans field
137
- .textfield-messages,
138
- .radiosfield-messages,
139
- .checkboxesfield-messages {
140
- transform: translateY(100%);
141
- }
142
- }
143
-
144
- @mixin framedStateFocus($state) {
145
- background-color: var(--colors-white-color);
146
- box-shadow: form.fakeBorderOverlay(var(--palettes-#{$state}-700)), 0 0 0 4px var(--palettes-#{$state}-50);
147
-
148
- // todo: déplacer dans field
149
- .textfield-messages,
150
- .radiosfield-messages,
151
- .checkboxesfield-messages {
152
- transform: translateY(100%);
153
- }
154
- }
155
-
156
- @mixin passwordActionPressed {
157
- .icon-watch {
158
- display: none;
159
- }
160
- }
161
-
162
- @mixin passwordActionNotPressed {
163
- .icon-unwatch {
164
- display: none;
165
- }
166
- }
167
-
168
- @mixin materialInputFocus {
169
- outline: none;
170
-
171
- &::placeholder {
172
- opacity: 1;
173
- }
174
-
175
- .textfield-label,
176
- ~ .textfield-label {
177
- font-size: var(--sizes-S-fontSize);
178
- color: var(--palettes-700, var(--components-textfield-material-default-palette-color));
179
- top: 0;
180
- }
181
- }
182
-
183
- @mixin materialLoading {
184
- &::before,
185
- &::after {
186
- bottom: 0.4rem !important;
187
- right: 0 !important;
188
- }
189
- }
190
-
191
- @mixin materialInputFilled {
192
- ~ .textfield-label {
193
- font-size: var(--sizes-S-fontSize);
194
- top: 0;
195
- }
196
- }
197
-
198
- @mixin materialInputDisabled {
199
- background-image: linear-gradient(to right, var(--components-textfield-material-border-color) 33%, rgba(255, 255, 255, 0) 0%);
200
- background-size: 3px 1px;
201
- background-color: transparent;
202
- background-position: bottom;
203
- background-repeat: repeat-x;
204
- box-shadow: none;
205
- }
206
-
207
- @mixin materialInputState($state) {
208
- @if $state == 'error' {
209
- box-shadow: 0 2px 0 0 var(--palettes-#{$state}-700);
210
- }
211
-
212
- &:focus {
213
- box-shadow: 0 2px 0 0 var(--palettes-#{$state}-700);
214
- }
215
-
216
- ~ .textfield-label {
217
- color: var(--palettes-#{$state}-700);
218
- }
219
-
220
- &:focus {
221
- ~ .textfield-label {
222
- color: var(--palettes-#{$state}-700);
223
- }
224
- }
225
- }
226
-
227
- @mixin entryHover {
228
- background-color: var(--palettes-primary-50);
1
+ @use '@lucca-front/scss/src/components/inlineMessage/exports' as inlineMessage;
2
+ @use '@lucca-front/scss/src/components/formLabel/exports' as formLabel;
3
+ // @use '@lucca-front/icons/src/commons/utils/icon';
4
+ // @use '@lucca-front/scss/src/commons/utils/form';
5
+ // @use '@lucca-front/scss/src/commons/utils/a11y';
6
+
7
+ @mixin invalid {
8
+ --component-textField-input-placeholder: var(--palettes-error-400);
9
+
10
+ ~ .textField-label {
11
+ --component-textField-input-border: var(--palettes-error-400);
12
+ --component-textField-input-background: var(--palettes-error-50);
13
+
14
+ .formLabel {
15
+ @include formLabel.error;
16
+ }
17
+ }
18
+
19
+ ~ .inlineMessage {
20
+ @include inlineMessage.error;
21
+ }
22
+
23
+ &:hover {
24
+ ~ .textField-label {
25
+ --component-textField-input-border: var(--palettes-error-600);
26
+ }
27
+ }
28
+ }
29
+
30
+ @mixin disabled {
31
+ --component-textField-input-color: var(--palettes-grey-600);
32
+
33
+ ~ .textField-label {
34
+ --component-textField-input-border: var(--palettes-grey-300);
35
+ --component-textField-input-background: var(--palettes-grey-100);
36
+ --component-textField-input-prefix: var(--palettes-grey-500);
37
+
38
+ .textField-label-prefix,
39
+ .textField-label-suffix,
40
+ .formLabel {
41
+ cursor: default;
42
+ }
43
+ }
44
+ }
45
+
46
+ @mixin readonly {
47
+ padding: 0;
48
+
49
+ ~ .textField-label {
50
+ // .formLabel {
51
+ // font-size: var(--sizes-S-fontSize);
52
+ // line-height: var(--sizes-S-lineHeight);
53
+ // }
54
+
55
+ .textField-label-input {
56
+ border: none;
57
+ }
58
+
59
+ .textField-label-prefix-item,
60
+ .textField-label-suffix-item {
61
+ padding-top: 0;
62
+ padding-bottom: 0;
63
+ }
64
+
65
+ .textField-label-prefix-item {
66
+ padding-left: 0;
67
+
68
+ &:last-child {
69
+ padding-right: var(--spacings-XS);
70
+ }
71
+ }
72
+
73
+ .textField-label-suffix-item {
74
+ padding-right: 0;
75
+
76
+ &:first-child {
77
+ padding-left: var(--spacings-XS);
78
+ }
79
+ }
80
+ }
229
81
  }
@@ -1,41 +1,14 @@
1
1
  @mixin vars {
2
- --components-textfield-border-radius: 4px;
3
- --components-textfield-input-padding-horizontal: var(--spacings-XS);
4
- --components-textfield-input-padding-vertical: var(--spacings-XS);
5
- --components-textfield-input-placeholder: var(--palettes-primary-400);
6
- --components-textfield-hover-background: var(--palettes-primary-100);
7
- --components-textfield-hover-placeholder: var(--palettes-primary-400);
8
- --components-textfield-focus-placeholder: var(--palettes-primary-300);
9
- --components-textfield-focus-shadow-color: var(--palettes-primary-200);
10
- --components-textfield-focus-border-color: var(--palettes-primary-600);
11
- --components-textfield-disabled-background: var(--commons-disabled-background);
12
- --components-textfield-disabled-color: var(--palettes-grey-600);
13
- --components-textfield-suffix-top: 1.75rem;
14
- --components-textfield-suffix-padding-right: var(--spacings-L);
15
- --components-textfield-sizes-shortest: 3rem;
16
- --components-textfield-sizes-shorter: 6rem;
17
- --components-textfield-sizes-short: 9rem;
18
- --components-textfield-sizes-default: 13rem;
19
- --components-textfield-sizes-long: 17rem;
20
- --components-textfield-sizes-longer: 22rem;
21
- --components-textfield-sizes-longest: 28rem;
22
-
23
- --components-textfield-material-padding-top: var(--spacings-S);
24
- --components-textfield-material-default-palette-color: var(--palettes-grey-600);
25
- --components-textfield-material-border-color: #ccc;
26
- --components-textfield-material-label-color: var(--palettes-grey-600);
27
- --components-textfield-material-label-font-size: var(--sizes-M-fontSize);
28
- --components-textfield-material-suffix-padding-right: var(--spacings-S);
29
-
30
- --components-textfield-compact-padding: var(--spacings-XS);
31
- --components-textfield-compact-label-color: #96a6c5;
32
- --components-textfield-compact-label-font-size: var(--sizes-M-fontSize);
33
- --components-textfield-compact-label-right-margin: 0.3rem;
34
- --components-textfield-compact-label-sizes-shorter: 3rem;
35
- --components-textfield-compact-label-sizes-short: 5rem;
36
- --components-textfield-compact-label-sizes-default: 7rem;
37
- --components-textfield-compact-label-sizes-long: 9rem;
38
- --components-textfield-compact-label-sizes-longer: 11rem;
39
-
40
- --components-textfield-filter-width: 18rem;
2
+ --component-textField-label-fontSize: var(--sizes-M-fontSize);
3
+ --component-textField-label-lineHeight: var(--sizes-M-lineHeight);
4
+ --component-textField-input-paddingVertical: var(--spacings-XS);
5
+ --component-textField-input-lineHeight: var(--sizes-M-lineHeight);
6
+ --component-textField-input-color: var(--palettes-grey-800);
7
+ --component-textField-input-placeholder: var(--palettes-grey-400);
8
+ --component-textField-input-prefix: var(--palettes-grey-600);
9
+ --component-textField-input-border: var(--palettes-grey-300);
10
+ --component-textField-input-background: var(--colors-white-color);
11
+ --component-textField-action-icon-fontSize: var(--sizes-S-lineHeight);
12
+ --component-textField-action-icon-size: calc(var(--spacings-L) + var(--spacings-XS));
13
+ --component-textField-input-lines: 4;
41
14
  }
@@ -0,0 +1,77 @@
1
+ @mixin component($atRoot: 'without: rule') {
2
+ vertical-align: middle;
3
+ width: var(--components-textfield-sizes-default);
4
+
5
+ @at-root ($atRoot) {
6
+ .textfield-input {
7
+ min-width: 0;
8
+ border: 0;
9
+ box-shadow: 0 0 0 1px var(--palettes-grey-300);
10
+ line-height: var(--sizes-M-lineHeight);
11
+ -webkit-appearance: none;
12
+ background-color: var(--colors-white-color);
13
+ border-radius: var(--components-textfield-border-radius);
14
+ padding: var(--components-textfield-input-padding-vertical) var(--components-textfield-input-padding-horizontal);
15
+ transition-property: box-shadow, background-color, color;
16
+ transition-duration: var(--commons-animations-durations-fast);
17
+
18
+ &::placeholder {
19
+ color: var(--palettes-grey-400);
20
+ transition-property: color;
21
+ transition-duration: var(--commons-animations-durations-fast);
22
+ opacity: 1;
23
+ }
24
+
25
+ &[type='search'] {
26
+ &::-webkit-search-cancel-button,
27
+ &::-webkit-search-decoration {
28
+ appearance: none;
29
+ }
30
+ }
31
+ }
32
+
33
+ .textfield-suffix {
34
+ color: var(--palettes-grey-600);
35
+ top: calc(var(--components-textfield-suffix-top) + var(--components-textfield-input-padding-vertical));
36
+ right: var(--components-textfield-input-padding-horizontal);
37
+ position: absolute;
38
+ pointer-events: none;
39
+ line-height: var(--sizes-M-lineHeight);
40
+ z-index: 1;
41
+ }
42
+
43
+ .textfield-options {
44
+ box-shadow: var(--commons-boxShadow-M);
45
+ background-color: var(--colors-white-color);
46
+ border-radius: var(--commons-borderRadius-M);
47
+ transition-duration: var(--commons-animations-durations-fast);
48
+ transition-property: all;
49
+ list-style: none;
50
+ overflow: auto;
51
+ position: absolute;
52
+ transform-origin: right top;
53
+ transform: scaleY(0);
54
+ margin: 3px 0 0;
55
+ max-height: 15rem;
56
+ opacity: 0;
57
+ padding: 0;
58
+ left: 0;
59
+ top: 100%;
60
+ z-index: 999;
61
+ width: 100%;
62
+ }
63
+
64
+ .textfield-options-mark {
65
+ background-color: transparent;
66
+ text-decoration: underline;
67
+ color: inherit;
68
+ }
69
+
70
+ .textfield-options-entry {
71
+ transition-duration: var(--commons-animations-durations-fast);
72
+ transition-property: background-color;
73
+ padding: var(--spacings-XS) var(--spacings-S);
74
+ cursor: pointer;
75
+ }
76
+ }
77
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';