@lucca-front/scss 21.2.3-rc.4 → 21.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 (57) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +3 -3
  3. package/src/commons/config.scss +26 -4
  4. package/src/commons/utils/color.scss +2 -2
  5. package/src/commons/vars.scss +14 -0
  6. package/src/components/avatar/index.scss +31 -3
  7. package/src/components/avatar/mods.scss +28 -0
  8. package/src/components/button/mods.scss +8 -6
  9. package/src/components/callout/mods.scss +1 -1
  10. package/src/components/code/component.scss +1 -0
  11. package/src/components/comment/component.scss +1 -1
  12. package/src/components/dataTable/component.scss +6 -1
  13. package/src/components/dialog/component.scss +3 -2
  14. package/src/components/dialog/index.scss +4 -0
  15. package/src/components/dialog/mods.scss +6 -0
  16. package/src/components/dialog/vars.scss +1 -0
  17. package/src/components/fieldset/mods.scss +6 -0
  18. package/src/components/fieldset/vars.scss +1 -1
  19. package/src/components/fileEntry/component.scss +2 -2
  20. package/src/components/fileUpload/component.scss +1 -1
  21. package/src/components/filterPill/component.scss +29 -5
  22. package/src/components/filterPill/index.scss +14 -11
  23. package/src/components/filterPill/states.scss +7 -8
  24. package/src/components/filterPill/vars.scss +2 -1
  25. package/src/components/form/component.scss +6 -0
  26. package/src/components/form/mods.scss +1 -1
  27. package/src/components/form/vars.scss +1 -1
  28. package/src/components/grid/mods.scss +1 -1
  29. package/src/components/highlightText/component.scss +30 -0
  30. package/src/components/highlightText/exports.scss +4 -0
  31. package/src/components/highlightText/index.scss +8 -0
  32. package/src/components/highlightText/mods.scss +0 -0
  33. package/src/components/highlightText/states.scss +0 -0
  34. package/src/components/highlightText/vars.scss +9 -0
  35. package/src/components/horizontalNavigation/component.scss +23 -1
  36. package/src/components/horizontalNavigation/index.scss +19 -1
  37. package/src/components/horizontalNavigation/mods.scss +14 -0
  38. package/src/components/horizontalNavigation/vars.scss +7 -0
  39. package/src/components/impersonation/component.scss +59 -0
  40. package/src/components/impersonation/exports.scss +4 -0
  41. package/src/components/impersonation/index.scss +22 -0
  42. package/src/components/impersonation/mods.scss +0 -0
  43. package/src/components/impersonation/states.scss +18 -0
  44. package/src/components/impersonation/vars.scss +11 -0
  45. package/src/components/index.scss +2 -0
  46. package/src/components/indexTable/component.scss +4 -0
  47. package/src/components/listing/component.scss +2 -2
  48. package/src/components/mobilePush/component.scss +1 -1
  49. package/src/components/multiSelect/component.scss +10 -0
  50. package/src/components/presentation/component.scss +1 -0
  51. package/src/components/simpleSelect/index.scss +1 -0
  52. package/src/components/tag/mods.scss +1 -1
  53. package/src/components/textFlow/component.scss +2 -0
  54. package/src/components/timepicker/component.scss +28 -4
  55. package/src/components/timepicker/mods.scss +24 -3
  56. package/src/components/timepicker/vars.scss +6 -3
  57. package/src/components/toast/component.scss +1 -0
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';
@@ -0,0 +1,8 @@
1
+ @use 'exports' as *;
2
+
3
+ .highlightText {
4
+ @layer components {
5
+ @include vars;
6
+ @include component;
7
+ }
8
+ }
File without changes
File without changes
@@ -0,0 +1,9 @@
1
+ @mixin vars {
2
+ --components-highlightText-backgroundColor: var(--palettes-300, var(--palettes-product-300));
3
+ --components-highlightText-backgroundDiameter: 0.25em;
4
+ --components-highlightText-backgroundBlockSize: 0.5em;
5
+
6
+ --components-highlightText-backgroundRadius: calc(var(--components-highlightText-backgroundDiameter) / 2);
7
+ --components-highlightText-backgroundStart: var(--components-highlightText-backgroundRadius);
8
+ --components-highlightText-backgroundEnd: calc(100% - var(--components-highlightText-backgroundRadius));
9
+ }
@@ -28,11 +28,18 @@
28
28
  }
29
29
 
30
30
  @at-root ($atRoot) {
31
+ .horizontalNavigationWrapper {
32
+ grid-area: overflow;
33
+ min-block-size: 0;
34
+ display: flex;
35
+ flex-direction: column;
36
+ }
37
+
31
38
  // stylelint-disable-next-line selector-disallowed-list -- .menu-containerOptional is deprecated
32
39
  .menu-containerOptional,
33
40
  .horizontalNavigation-containerOptional {
34
41
  max-inline-size: var(--commons-container-maxWidth);
35
- padding: var(--commons-container-padding);
42
+ padding: var(--components-horizontalNavigation-containerOptional-padding);
36
43
  }
37
44
 
38
45
  // stylelint-disable-next-line selector-disallowed-list -- .menu-list is deprecated
@@ -138,5 +145,20 @@
138
145
  font-weight: var(--pr-t-font-fontWeight-semibold);
139
146
  }
140
147
  }
148
+
149
+ .horizontalNavigation_panel {
150
+ display: var(--components-horizontalNavigation-panel-display);
151
+ overflow: var(--components-horizontalNavigation-panel-overflow);
152
+ min-height: 0;
153
+ flex-direction: column;
154
+
155
+ &:focus-visible {
156
+ @include a11y.focusVisible($offset: -2px, $borderRadius: var(--pr-t-border-radius-small));
157
+ }
158
+
159
+ &:not(.is-active) {
160
+ display: none;
161
+ }
162
+ }
141
163
  }
142
164
  }
@@ -21,6 +21,10 @@
21
21
  @include noBorder;
22
22
  }
23
23
 
24
+ .dialog & {
25
+ @include insideDialog;
26
+ }
27
+
24
28
  &.mod-vertical {
25
29
  @include vertical;
26
30
 
@@ -28,6 +32,7 @@
28
32
  .menu-list-item-action,
29
33
  .horizontalNavigation-list-item-action {
30
34
  &[aria-current='page'],
35
+ &[aria-selected='true'],
31
36
  &.is-active {
32
37
  @include activeVertical;
33
38
  }
@@ -40,6 +45,18 @@
40
45
  }
41
46
  }
42
47
 
48
+ .horizontalNavigation_panel {
49
+ @layer components {
50
+ @include varsPanel;
51
+ }
52
+
53
+ @layer mods {
54
+ .dialog & {
55
+ @include insideDialogPanel;
56
+ }
57
+ }
58
+ }
59
+
43
60
  .menu-link, // stylelint-disable-line selector-disallowed-list -- .menu-link is deprecated
44
61
  .menu-list-item-action, // stylelint-disable-line selector-disallowed-list -- .menu-list-item-action is deprecated
45
62
  .horizontalNavigation-list-item-action {
@@ -47,12 +64,13 @@
47
64
  // .active is deprecated
48
65
  &.active,
49
66
  &[aria-current='page'],
67
+ &[aria-selected='true'],
50
68
  &.is-active {
51
69
  @include active;
52
70
  }
53
71
 
54
72
  &.disabled, // .disabled is deprecated
55
- &[disabled], // [disabled] is deprecated
73
+ &[disabled],
56
74
  &.is-disabled {
57
75
  @include disabled;
58
76
  }
@@ -1,4 +1,5 @@
1
1
  @use '@lucca-front/scss/src/components/numericBadge/exports' as numericBadge;
2
+ @use '@lucca-front/scss/src/commons/utils/a11y';
2
3
 
3
4
  @mixin header {
4
5
  --components-horizontalNavigation-listPadding: 0 var(--pr-t-spacings-500);
@@ -106,3 +107,16 @@
106
107
  }
107
108
  }
108
109
  }
110
+
111
+ @mixin insideDialog {
112
+ --components-horizontalNavigation-containerOptional-padding: 0 var(--components-dialog-insideContent-paddingInline);
113
+ }
114
+
115
+ @mixin insideDialogPanel {
116
+ --components-horizontalNavigation-panel-display: flex;
117
+ --components-horizontalNavigation-panel-overflow: auto;
118
+
119
+ &:focus-visible {
120
+ @include a11y.focusVisible($offset: -4px, $borderRadius: var(--pr-t-border-radius-structure));
121
+ }
122
+ }
@@ -18,4 +18,11 @@
18
18
  --components-horizontalNavigation-listItemActionRadius: var(--pr-t-border-radius-default) var(--pr-t-border-radius-default) 0 0;
19
19
  --components-horizontalNavigation-listItemActionRadiusWidth: auto;
20
20
  --components-horizontalNavigation-listItemActionRadiusHeight: var(--components-horizontalNavigation-listItemActionSize);
21
+
22
+ --components-horizontalNavigation-containerOptional-padding: var(--commons-container-padding);
23
+ }
24
+
25
+ @mixin varsPanel {
26
+ --components-horizontalNavigation-panel-display: block;
27
+ --components-horizontalNavigation-panel-overflow: visible;
21
28
  }
@@ -0,0 +1,59 @@
1
+ @use '@lucca-front/scss/src/commons/config';
2
+ @use '@lucca-front/scss/src/commons/utils/namespace';
3
+ @use '@lucca-front/scss/src/commons/utils/reset';
4
+ @use '@lucca-front/scss/src/components/clear/exports' as clear;
5
+
6
+ @mixin component($atRoot: namespace.$defaultAtRoot) {
7
+ position: relative;
8
+ inline-size: fit-content;
9
+ display: block;
10
+
11
+ @at-root ($atRoot) {
12
+ .impersonation-trigger {
13
+ @include reset.button;
14
+
15
+ border: 1px solid var(--components-impersonation-trigger-borderColor);
16
+ background-color: var(--components-impersonation-trigger-backgroundColor);
17
+ border-radius: var(--pr-t-border-radius-200);
18
+ inline-size: fit-content;
19
+ display: flex;
20
+ align-items: center;
21
+ gap: var(--pr-t-spacings-100);
22
+ padding: var(--pr-t-spacings-50);
23
+ padding-inline-end: var(--pr-t-spacings-100);
24
+ min-block-size: var(--pr-t-spacings-500);
25
+ font-weight: var(--components-impersonation-trigger-fontWeight);
26
+ color: var(--components-impersonation-trigger-color);
27
+ box-shadow: var(--components-impersonation-trigger-boxShadow);
28
+ transition-property: box-shadow, border-color;
29
+ transition-duration: var(--commons-animations-durations-fast);
30
+ }
31
+
32
+ .impersonation-trigger-icon {
33
+ color: var(--components-impersonation-trigger-icon-color);
34
+ rotate: var(--components-impersonation-trigger-icon-rotate);
35
+ transition-property: rotate;
36
+ transition-duration: var(--commons-animations-durations-fast);
37
+ margin-inline-start: var(--components-impersonation-trigger-icon-marginInlineStart);
38
+ }
39
+
40
+ .impersonation-clear.clear {
41
+ position: absolute;
42
+ z-index: 1;
43
+ inset-inline-end: calc(var(--pr-t-spacings-400) + var(--pr-t-spacings-75));
44
+ inset-block-start: calc(var(--pr-t-spacings-150) + 1px);
45
+ display: var(--components-impersonation-clear-display);
46
+
47
+ @include clear.product;
48
+ }
49
+
50
+ .impersonation_popover-content-option {
51
+ display: flex;
52
+ color: var(--pr-t-color-text);
53
+
54
+ &.mod-me {
55
+ font-weight: var(--pr-t-font-fontWeight-semibold);
56
+ }
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';
@@ -0,0 +1,22 @@
1
+ @use 'exports' as *;
2
+
3
+ .impersonation {
4
+ @layer components {
5
+ @include vars;
6
+ @include component;
7
+ }
8
+
9
+ @layer mods {
10
+ &:has(.impersonation-trigger.is-active) {
11
+ @include triggerActive;
12
+ }
13
+
14
+ &:has(.impersonation-trigger:hover) {
15
+ @include triggerHover;
16
+ }
17
+
18
+ &:has(.impersonation-trigger[aria-expanded='true']) {
19
+ @include triggerExpanded;
20
+ }
21
+ }
22
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ @mixin triggerHover {
2
+ --components-impersonation-trigger-borderColor: var(--palettes-product-400);
3
+ --components-impersonation-trigger-shadow: var(--pr-t-elevation-shadow-button);
4
+ }
5
+
6
+ @mixin triggerExpanded {
7
+ --components-impersonation-trigger-icon-rotate: 180deg;
8
+ }
9
+
10
+ @mixin triggerActive {
11
+ --components-impersonation-trigger-backgroundColor: var(--palettes-product-50);
12
+ --components-impersonation-trigger-borderColor: var(--palettes-product-200);
13
+ --components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-semibold);
14
+ --components-impersonation-trigger-color: var(--palettes-product-800);
15
+ --components-impersonation-trigger-icon-color: var(--palettes-product-700);
16
+ --components-impersonation-clear-display: grid;
17
+ --components-impersonation-trigger-icon-marginInlineStart: var(--pr-t-spacings-250);
18
+ }
@@ -0,0 +1,11 @@
1
+ @mixin vars {
2
+ --components-impersonation-trigger-borderColor: var(--palettes-neutral-100);
3
+ --components-impersonation-trigger-icon-rotate: 0deg;
4
+ --components-impersonation-trigger-backgroundColor: var(--palettes-neutral-0);
5
+ --components-impersonation-trigger-fontWeight: var(--pr-t-font-fontWeight-regular);
6
+ --components-impersonation-trigger-color: var(--pr-t-color-text);
7
+ --components-impersonation-trigger-icon-color: var(--pr-t-color-text-subtle);
8
+ --components-impersonation-trigger-boxShadow: none;
9
+ --components-impersonation-clear-display: none;
10
+ --components-impersonation-trigger-icon-marginInlineStart: auto;
11
+ }
@@ -117,6 +117,8 @@
117
117
  @forward 'softwareIcon';
118
118
  @forward 'progressStepper';
119
119
  @forward 'activityFeed';
120
+ @forward 'impersonation';
121
+ @forward 'highlightText';
120
122
 
121
123
  @forward 'filterBarDeprecated';
122
124
  @forward 'tableFixedDeprecated';
@@ -265,6 +265,10 @@
265
265
  }
266
266
 
267
267
  .indexTableWrapper-pagination {
268
+ position: sticky;
269
+ inset-inline-end: 0;
270
+ align-self: flex-end;
271
+
268
272
  &:empty {
269
273
  display: none;
270
274
  }
@@ -30,7 +30,7 @@
30
30
  &::before {
31
31
  content: var(--components-listing-item-before-content);
32
32
  border-inline-start: var(--commons-divider-border);
33
- height: 0.75lh;
33
+ block-size: 0.75lh;
34
34
  align-self: center;
35
35
  }
36
36
  }
@@ -59,7 +59,7 @@
59
59
  .listing-item-icon {
60
60
  inline-size: var(--pr-t-spacings-250);
61
61
  aspect-ratio: 1;
62
- margin-top: var(--pr-t-spacings-25);
62
+ margin-block-start: var(--pr-t-spacings-25);
63
63
  background-color: var(--components-listing-item-icon-backgroundColor);
64
64
  color: var(--palettes-700, var(--palettes-neutral-700));
65
65
  border-radius: var(--pr-t-border-radius-full);
@@ -58,7 +58,7 @@
58
58
 
59
59
  .mobilePush-content-downloadApps-link-badge {
60
60
  display: block;
61
- height: 1.75rem;
61
+ block-size: 1.75rem;
62
62
  }
63
63
  }
64
64
  }
@@ -32,6 +32,12 @@
32
32
  flex: 1;
33
33
  }
34
34
 
35
+ .multipleSelect-displayer-value {
36
+ display: flex;
37
+ gap: var(--pr-t-spacings-50);
38
+ flex-wrap: wrap;
39
+ }
40
+
35
41
  .multipleSelect-displayer-chip.chip {
36
42
  min-inline-size: 0;
37
43
 
@@ -92,5 +98,9 @@
92
98
  .multipleSelect-pill-displayer-label {
93
99
  font-weight: var(--pr-t-font-fontWeight-semibold);
94
100
  }
101
+
102
+ .multiSelect-field-icon {
103
+ order: 1;
104
+ }
95
105
  }
96
106
  }
@@ -46,6 +46,7 @@
46
46
  .presentation-definition {
47
47
  margin: 0;
48
48
  color: var(--pr-t-color-text);
49
+ overflow-wrap: anywhere;
49
50
 
50
51
  > *:not(:has(.lucca-icon), .presentation-definition-link) {
51
52
  color: var(--pr-t-color-text);
@@ -40,6 +40,7 @@
40
40
  @include XS;
41
41
  }
42
42
 
43
+ &.mod-impersonation,
43
44
  &.mod-filterPill {
44
45
  @include filterPill;
45
46
  }
@@ -63,7 +63,7 @@
63
63
  --components-tag-boxShadow: none;
64
64
  --components-tag-position: relative;
65
65
 
66
- @include color.borderGradient(135deg, var(--palettes-brand-400), var(--palettes-AI-500), var(--pr-t-border-radius-small));
66
+ @include color.borderGradient($gradient: var(--pr-t-color-border-ai), $radius: var(--pr-t-border-radius-small));
67
67
 
68
68
  .lucca-icon {
69
69
  @include icons.AI;
@@ -1,6 +1,8 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/namespace';
2
2
 
3
3
  @mixin component($atRoot: namespace.$defaultAtRoot) {
4
+ overflow-wrap: anywhere;
5
+
4
6
  h1 {
5
7
  margin-block: var(--pr-t-spacings-300);
6
8
  }
@@ -28,6 +28,25 @@
28
28
  &:focus-within {
29
29
  @include a11y.focusVisible($offset: 3px);
30
30
  }
31
+
32
+ .timePicker-fieldset {
33
+ box-shadow: initial;
34
+
35
+ &:focus-within {
36
+ outline: initial;
37
+ }
38
+ }
39
+ }
40
+
41
+ .timePicker-arrow {
42
+ align-self: stretch;
43
+ display: flex;
44
+ align-items: center;
45
+ color: var(--pr-t-color-text-subtle);
46
+ }
47
+
48
+ .timePicker-arrow-icon .lucca-icon {
49
+ @include icons.S;
31
50
  }
32
51
 
33
52
  .timePicker-fieldset-groupSeparator {
@@ -47,6 +66,9 @@
47
66
 
48
67
  ~ .timePicker-fieldset-group {
49
68
  margin-inline-start: calc(var(--pr-t-spacings-50) * -1);
69
+
70
+ --components-timepicker-input-padding-inline: var(--components-timepicker-end) var(--components-timepicker-start);
71
+ --components-timepicker-display-inset-inline: var(--components-timepicker-input-padding-inline);
50
72
  }
51
73
  }
52
74
 
@@ -83,7 +105,8 @@
83
105
 
84
106
  .timePicker-fieldset-group-textfield-display {
85
107
  position: absolute;
86
- inset: var(--components-timepicker-display-padding-inline) var(--components-timepicker-display-padding-block);
108
+ inset-block: var(--components-timepicker-display-inset-block);
109
+ inset-inline: var(--components-timepicker-display-inset-inline);
87
110
  border-radius: var(--pr-t-border-radius-50);
88
111
  pointer-events: none;
89
112
  display: grid;
@@ -134,8 +157,8 @@
134
157
 
135
158
  .timePicker-fieldset-meridiem {
136
159
  box-sizing: content-box;
137
- inline-size: calc(var(--components-timepicker-input-minInlineSize) + 2ch);
138
- padding-inline: var(--components-timepicker-display-padding-block);
160
+ inline-size: calc(var(--pr-t-spacings-100) + 2ch);
161
+ padding-inline: var(--pr-t-spacings-50);
139
162
  position: relative;
140
163
  align-self: stretch;
141
164
  margin-inline-start: calc(var(--pr-t-spacings-50) * -1);
@@ -143,7 +166,8 @@
143
166
  &::after {
144
167
  content: '';
145
168
  position: absolute;
146
- inset: var(--components-timepicker-display-padding-inline) var(--components-timepicker-display-padding-block);
169
+ inset-block: var(--components-timepicker-display-inset-block);
170
+ inset-inline: var(--pr-t-spacings-50);
147
171
  border-radius: var(--pr-t-border-radius-50);
148
172
  display: grid;
149
173
  place-items: center;
@@ -1,13 +1,34 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/a11y';
2
+ @use '@lucca-front/icons/src/icon/exports' as icons;
2
3
 
3
4
  @mixin S {
4
5
  --components-timepicker-font: var(--pr-t-font-body-S);
5
- --components-timepicker-display-padding-inline: var(--pr-t-spacings-25);
6
- --components-timepicker-display-padding-block: var(--pr-t-spacings-75);
7
- --components-timepicker-input-padding-inline: var(--pr-t-spacings-75);
8
6
  --components-timepicker-input-padding-block: var(--pr-t-spacings-25);
9
7
  --components-timepicker-input-height: 1.75rem;
10
8
  --components-timepicker-separator-left: 1.875rem;
9
+ --components-timepicker-start: var(--pr-t-spacings-25);
10
+ --components-timepicker-end: var(--pr-t-spacings-75);
11
+
12
+ .timePicker-arrow-icon .lucca-icon {
13
+ @include icons.XS;
14
+ }
15
+
16
+ .timePicker-fieldset-group {
17
+ --components-timepicker-input-padding-inline: var(--components-timepicker-start) var(--components-timepicker-end);
18
+ --components-timepicker-display-inset-inline: var(--components-timepicker-input-padding-inline);
19
+
20
+ ~ .timePicker-fieldset-group {
21
+ --components-timepicker-input-padding-inline: var(--components-timepicker-end) var(--components-timepicker-start);
22
+ }
23
+ }
24
+
25
+ .timePicker-fieldset-meridiem {
26
+ inline-size: calc(var(--pr-t-spacings-50) + 2ch);
27
+
28
+ &::after {
29
+ inset-inline: var(--pr-t-spacings-25);
30
+ }
31
+ }
11
32
  }
12
33
 
13
34
  @mixin stepper {
@@ -5,10 +5,13 @@
5
5
  --components-timepicker-font: var(--pr-t-font-body-M);
6
6
  --components-timepicker-input-height: 2rem;
7
7
  --components-timepicker-input-minInlineSize: 0.5rem;
8
- --components-timepicker-input-padding-inline: var(--pr-t-spacings-100);
8
+ --components-timepicker-input-padding-inline: var(--components-timepicker-start) var(--components-timepicker-end);
9
9
  --components-timepicker-input-padding-block: var(--pr-t-spacings-50);
10
10
  --components-timepicker-padding: 0;
11
- --components-timepicker-display-padding-inline: var(--pr-t-spacings-50);
12
- --components-timepicker-display-padding-block: var(--pr-t-spacings-100);
11
+ --components-timepicker-display-inset-inline: var(--components-timepicker-input-padding-inline);
12
+ --components-timepicker-display-inset-block: var(--components-timepicker-input-padding-block);
13
13
  --components-timepicker-separator-left: 2.375rem;
14
+
15
+ --components-timepicker-start: var(--pr-t-spacings-50);
16
+ --components-timepicker-end: var(--pr-t-spacings-100);
14
17
  }
@@ -70,6 +70,7 @@
70
70
 
71
71
  .toast-item-content-description {
72
72
  margin: 0;
73
+ overflow-wrap: anywhere;
73
74
  }
74
75
 
75
76
  .toasts-item-kill {