@lucca-front/scss 22.0.0-rc.2 → 22.0.0-rc.4

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 (123) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +3 -3
  3. package/src/commons/config.scss +26 -27
  4. package/src/commons/utils/a11y.scss +2 -2
  5. package/src/commons/utils/color.scss +15 -6
  6. package/src/commons/utils/highlight-prisme.scss +6 -2
  7. package/src/commons/utils/index.scss +4 -0
  8. package/src/commons/vars.scss +20 -5
  9. package/src/components/activityFeed/component.scss +33 -6
  10. package/src/components/activityFeed/index.scss +4 -4
  11. package/src/components/activityFeed/states.scss +2 -2
  12. package/src/components/activityFeed/vars.scss +2 -2
  13. package/src/components/appLayout/component.scss +6 -3
  14. package/src/components/avatar/component.scss +2 -0
  15. package/src/components/avatar/index.scss +31 -3
  16. package/src/components/avatar/mods.scss +28 -0
  17. package/src/components/box/index.scss +1 -3
  18. package/src/components/box/mods.scss +1 -3
  19. package/src/components/bubbleIcon/index.scss +4 -0
  20. package/src/components/bubbleIcon/mods.scss +9 -1
  21. package/src/components/button/mods.scss +8 -6
  22. package/src/components/button/states.scss +5 -1
  23. package/src/components/calendar/component.scss +33 -20
  24. package/src/components/calendar/index.scss +48 -0
  25. package/src/components/calendar/mods.scss +6 -0
  26. package/src/components/calendar/states.scss +77 -0
  27. package/src/components/calendar/vars.scss +4 -1
  28. package/src/components/callout/mods.scss +1 -1
  29. package/src/components/card/index.scss +1 -3
  30. package/src/components/checkbox/states.scss +1 -1
  31. package/src/components/checkboxField/states.scss +1 -1
  32. package/src/components/code/component.scss +1 -0
  33. package/src/components/color/component.scss +3 -1
  34. package/src/components/color/index.scss +1 -2
  35. package/src/components/comment/component.scss +1 -1
  36. package/src/components/dataTable/component.scss +6 -1
  37. package/src/components/dataTable/index.scss +6 -0
  38. package/src/components/dataTable/mods.scss +4 -0
  39. package/src/components/dateField/index.scss +8 -0
  40. package/src/components/dateField/mods.scss +8 -0
  41. package/src/components/dateField/vars.scss +2 -0
  42. package/src/components/dialog/component.scss +7 -4
  43. package/src/components/dialog/index.scss +8 -2
  44. package/src/components/dialog/mods.scss +11 -3
  45. package/src/components/dialog/vars.scss +3 -0
  46. package/src/components/fieldset/index.scss +4 -0
  47. package/src/components/fieldset/mods.scss +10 -0
  48. package/src/components/fieldset/vars.scss +1 -1
  49. package/src/components/fileEntry/component.scss +2 -2
  50. package/src/components/fileUpload/component.scss +1 -1
  51. package/src/components/filterPill/component.scss +29 -5
  52. package/src/components/filterPill/index.scss +14 -11
  53. package/src/components/filterPill/states.scss +7 -8
  54. package/src/components/filterPill/vars.scss +2 -1
  55. package/src/components/footer/component.scss +1 -0
  56. package/src/components/footer/mods.scss +1 -0
  57. package/src/components/footer/vars.scss +1 -0
  58. package/src/components/form/component.scss +6 -0
  59. package/src/components/form/mods.scss +1 -1
  60. package/src/components/form/vars.scss +1 -1
  61. package/src/components/grid/mods.scss +1 -1
  62. package/src/components/highlightText/component.scss +30 -0
  63. package/src/components/highlightText/exports.scss +4 -0
  64. package/src/components/highlightText/index.scss +8 -0
  65. package/src/components/highlightText/mods.scss +0 -0
  66. package/src/components/highlightText/states.scss +0 -0
  67. package/src/components/highlightText/vars.scss +9 -0
  68. package/src/components/horizontalNavigation/component.scss +23 -1
  69. package/src/components/horizontalNavigation/index.scss +27 -1
  70. package/src/components/horizontalNavigation/mods.scss +14 -0
  71. package/src/components/horizontalNavigation/vars.scss +7 -0
  72. package/src/components/impersonation/component.scss +58 -0
  73. package/src/components/impersonation/exports.scss +4 -0
  74. package/src/components/impersonation/index.scss +22 -0
  75. package/src/components/impersonation/mods.scss +0 -0
  76. package/src/components/impersonation/states.scss +18 -0
  77. package/src/components/impersonation/vars.scss +10 -0
  78. package/src/components/index.scss +2 -0
  79. package/src/components/indexTable/component.scss +4 -0
  80. package/src/components/link/component.scss +3 -0
  81. package/src/components/link/index.scss +9 -0
  82. package/src/components/link/mods.scss +4 -0
  83. package/src/components/link/vars.scss +1 -0
  84. package/src/components/listing/component.scss +2 -2
  85. package/src/components/mobilePush/component.scss +1 -1
  86. package/src/components/multiSelect/component.scss +11 -0
  87. package/src/components/multiSelect/index.scss +8 -2
  88. package/src/components/multiSelect/mods.scss +2 -0
  89. package/src/components/multiSelect/states.scss +10 -2
  90. package/src/components/multiSelect/vars.scss +1 -0
  91. package/src/components/numericBadge/component.scss +0 -2
  92. package/src/components/numericBadge/mods.scss +0 -12
  93. package/src/components/numericBadge/vars.scss +0 -4
  94. package/src/components/popover/component.scss +10 -0
  95. package/src/components/popover/vars.scss +2 -0
  96. package/src/components/presentation/component.scss +1 -0
  97. package/src/components/radio/states.scss +3 -3
  98. package/src/components/radioField/states.scss +3 -3
  99. package/src/components/richText/vars.scss +1 -1
  100. package/src/components/scrollBox/component.scss +2 -0
  101. package/src/components/section/index.scss +1 -3
  102. package/src/components/simpleSelect/index.scss +1 -0
  103. package/src/components/skeleton/component.scss +30 -0
  104. package/src/components/skeleton/mods.scss +2 -2
  105. package/src/components/skeleton/states.scss +3 -3
  106. package/src/components/skeleton/vars.scss +2 -2
  107. package/src/components/skipLinks/component.scss +9 -0
  108. package/src/components/statusBadge/component.scss +1 -1
  109. package/src/components/tableStickedDeprecated/mods.scss +3 -3
  110. package/src/components/tag/component.scss +6 -0
  111. package/src/components/tag/index.scss +5 -0
  112. package/src/components/tag/mods.scss +9 -1
  113. package/src/components/tag/vars.scss +1 -0
  114. package/src/components/textField/component.scss +16 -0
  115. package/src/components/textField/index.scss +12 -0
  116. package/src/components/textField/mods.scss +23 -0
  117. package/src/components/textField/states.scss +6 -0
  118. package/src/components/textFlow/component.scss +2 -0
  119. package/src/components/timepicker/component.scss +32 -8
  120. package/src/components/timepicker/mods.scss +24 -3
  121. package/src/components/timepicker/vars.scss +6 -3
  122. package/src/components/toast/component.scss +1 -0
  123. package/src/components/userPopover/component.scss +1 -1
@@ -10,7 +10,7 @@
10
10
  @use '@lucca-front/scss/src/components/textField/exports' as textField;
11
11
 
12
12
  @mixin component($atRoot: namespace.$defaultAtRoot) {
13
- display: var(--components-filterPill-display);
13
+ display: flex;
14
14
  gap: var(--components-filterPill-gap);
15
15
  align-items: center;
16
16
  background-color: var(--components-filterPill-backgroundColor);
@@ -24,8 +24,15 @@
24
24
  white-space: nowrap;
25
25
  transition-property: box-shadow;
26
26
  transition-duration: var(--commons-animations-durations-fast);
27
+ border: 0;
27
28
 
28
29
  @at-root ($atRoot) {
30
+ .filterPillWrapper {
31
+ position: relative;
32
+ inline-size: fit-content;
33
+ display: var(--components-filterPillWrapper-display);
34
+ }
35
+
29
36
  .filterPill_popover-content.popover-contentOptional {
30
37
  --components-dateInput-width: none;
31
38
 
@@ -96,6 +103,7 @@
96
103
  @include reset.button;
97
104
 
98
105
  display: flex;
106
+ margin-block-start: -1px;
99
107
  margin-inline-start: var(--pr-t-spacings-50);
100
108
  inline-size: calc(var(--pr-t-spacings-50) + var(--pr-t-spacings-200));
101
109
  flex-shrink: 0;
@@ -108,6 +116,10 @@
108
116
  transition-duration: var(--commons-animations-durations-fast);
109
117
  transform: rotate(var(--components-filterPill-toggle-rotation));
110
118
  }
119
+
120
+ .filterPill-value + & {
121
+ margin-inline-start: var(--components-filterPill-toggle-marginInlineStart);
122
+ }
111
123
  }
112
124
 
113
125
  .filterPill-clear.clear {
@@ -119,7 +131,16 @@
119
131
  @include clear.product;
120
132
  }
121
133
 
122
- .filterPill-combobox {
134
+ .filterPill_clear.clear {
135
+ position: absolute;
136
+ z-index: 1;
137
+ inset-inline-end: calc(var(--pr-t-spacings-400) + var(--pr-t-spacings-25));
138
+ inset-block-start: var(--pr-t-spacings-100);
139
+
140
+ @include clear.product;
141
+ }
142
+
143
+ .filterPill-value {
123
144
  @include reset.button;
124
145
 
125
146
  font-weight: var(--components-filterPill-label-fontWeightChecked);
@@ -130,9 +151,6 @@
130
151
  overflow: hidden;
131
152
  text-overflow: ellipsis;
132
153
  cursor: var(--components-filterPill-label-cursor);
133
- display: flex;
134
- align-items: center;
135
- gap: var(--pr-t-spacings-50);
136
154
  max-inline-size: 15rem;
137
155
 
138
156
  &:focus-visible {
@@ -142,6 +160,12 @@
142
160
  .lucca-icon {
143
161
  color: var(--components-filterPill-arrowColor);
144
162
  }
163
+
164
+ &:has(.lucca-icon) {
165
+ display: flex;
166
+ align-items: center;
167
+ gap: var(--pr-t-spacings-50);
168
+ }
145
169
  }
146
170
 
147
171
  .filterPill-label-placeholder {
@@ -15,20 +15,16 @@
15
15
  @include hover;
16
16
  }
17
17
 
18
- &:active,
19
- &:has(:active) {
18
+ &:active {
20
19
  @include active;
21
20
  }
22
21
 
23
- &.is-comboboxHidden {
24
- @include comboboxHidden;
25
- }
26
-
27
- &:has(.filterPill-combobox:focus-visible) {
22
+ &:has(.filterPill-label:focus-visible),
23
+ &:has(.filterPill-value:focus-visible) {
28
24
  @include focusVisible;
29
25
  }
30
26
 
31
- &:has(.filterPill-combobox[aria-expanded='true']) {
27
+ &[aria-expanded='true'] {
32
28
  @include opened;
33
29
  }
34
30
 
@@ -39,7 +35,7 @@
39
35
  @include filledHover;
40
36
  }
41
37
 
42
- &:has(.filterPill-combobox:active) {
38
+ &:active {
43
39
  @include filledActive;
44
40
  }
45
41
  }
@@ -51,6 +47,7 @@
51
47
  @include focusVisible;
52
48
  }
53
49
 
50
+ &[aria-pressed='true'],
54
51
  &:has(.filterPill-checkbox-input:checked) {
55
52
  @include checkboxChecked;
56
53
 
@@ -58,14 +55,16 @@
58
55
  @include filledHover;
59
56
  }
60
57
 
61
- &:has(.filterPill-combobox:active) {
58
+ &:active {
62
59
  @include filledActive;
63
60
  }
64
61
  }
65
62
 
63
+ &[disabled],
66
64
  &:has(.filterPill-checkbox-input:disabled) {
67
65
  @include checkboxDisabled;
68
66
 
67
+ &[aria-pressed='true'],
69
68
  &:has(.filterPill-checkbox-input:checked) {
70
69
  @include checkboxCheckedDisabled;
71
70
  }
@@ -76,10 +75,14 @@
76
75
  @include button;
77
76
  }
78
77
 
79
- &:has(.filterPill-combobox:disabled) {
78
+ &[disabled] {
80
79
  @include disabled;
81
80
  }
81
+ }
82
+ }
82
83
 
84
+ .filterPillWrapper {
85
+ @layer mods {
83
86
  &.is-hidden {
84
87
  @include hidden;
85
88
  }
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  @mixin focusVisible {
16
- @include a11y.focusVisible($offset: 3px);
16
+ @include a11y.focusVisible($offset: 2px);
17
17
  }
18
18
 
19
19
  @mixin hover {
@@ -67,15 +67,17 @@
67
67
  --components-filterPill-backgroundColor: var(--palettes-product-50);
68
68
  --components-filterPill-color: var(--palettes-product-800);
69
69
  --components-filterPill-toggle-iconColor: var(--palettes-product-700);
70
+ --components-filterPill-toggle-marginInlineStart: calc(var(--pr-t-spacings-300) + var(--pr-t-spacings-50));
70
71
  }
71
72
 
72
73
  @mixin notFilled {
73
- .filterPill-combobox {
74
+ .filterPill-value {
74
75
  @include a11y.mask;
75
76
  }
76
- }
77
77
 
78
- @mixin comboboxHidden {
78
+ + .filterPill_clear.clear {
79
+ @include clear.hidden;
80
+ }
79
81
  }
80
82
 
81
83
  @mixin opened {
@@ -102,11 +104,8 @@
102
104
  box-shadow: var(--components-filterPill-shadow);
103
105
 
104
106
  @include clear.hidden;
105
-
106
- // TODO
107
- // --components-filterPill-checkbox-borderColor: var(--palettes-neutral-600);
108
107
  }
109
108
 
110
109
  @mixin hidden {
111
- --components-filterPill-display: none;
110
+ --components-filterPillWrapper-display: none;
112
111
  }
@@ -15,7 +15,8 @@
15
15
  --components-filterPill-toggle-rotation: 0deg;
16
16
  --components-filterPill-toggle-iconColor: var(--palettes-neutral-600);
17
17
  --components-filterPill-shadow: 0 0 0 1px var(--components-filterPill-borderColor);
18
- --components-filterPill-display: flex;
19
18
  --components-filterPill-arrowColor: var(--palettes-product-700);
20
19
  --components-filterPill-label-maxInlineSize: none;
20
+ --components-filterPill-toggle-marginInlineStart: var(--pr-t-spacings-50);
21
+ --components-filterPillWrapper-display: block;
21
22
  }
@@ -13,6 +13,7 @@
13
13
  gap: var(--components-footer-gap);
14
14
  align-items: var(--components-footer-alignItems);
15
15
  flex-direction: var(--components-footer-direction);
16
+ isolation: var(--components-footer-isolation);
16
17
 
17
18
  @at-root ($atRoot) {
18
19
  .footer-content {
@@ -14,6 +14,7 @@
14
14
  --components-footer-paddingInline: var(--pr-t-spacings-300);
15
15
  --commons-container-padding: 0;
16
16
  --components-footer-overflow: hidden;
17
+ --components-footer-isolation: isolate;
17
18
  }
18
19
 
19
20
  @mixin wide {
@@ -12,4 +12,5 @@
12
12
  --components-footer-gap: var(--pr-t-spacings-200);
13
13
  --components-footer-display: flex;
14
14
  --components-footer-container-maxInlineSize: var(--commons-container-maxWidth);
15
+ --components-footer-isolation: auto;
15
16
  }
@@ -5,6 +5,7 @@
5
5
 
6
6
  @mixin component($atRoot: namespace.$defaultAtRoot) {
7
7
  display: block;
8
+ max-inline-size: var(--components-form-maxWidth);
8
9
 
9
10
  .divider:not(.mod-vertical) {
10
11
  margin-block: var(--pr-t-spacings-300);
@@ -150,5 +151,10 @@
150
151
  }
151
152
  }
152
153
  }
154
+
155
+ .option-additional {
156
+ font: var(--pr-t-font-body-S);
157
+ color: var(--pr-t-color-text-subtle);
158
+ }
153
159
  }
154
160
  }
@@ -15,7 +15,7 @@
15
15
  @use '@lucca-front/scss/src/components/color/exports' as color;
16
16
 
17
17
  @mixin maxWidth {
18
- max-inline-size: var(--components-form-maxWidth);
18
+ --components-form-maxWidth: 50rem;
19
19
  }
20
20
 
21
21
  @mixin inline {
@@ -1,5 +1,5 @@
1
1
  @mixin vars {
2
- --components-form-maxWidth: 40rem;
2
+ --components-form-maxWidth: none;
3
3
  --components-form-group-margin-bottom: 1.2rem;
4
4
  --components-form-field-margin-bottom: var(--pr-t-spacings-200);
5
5
  --components-form-field-width: auto;
@@ -14,7 +14,7 @@
14
14
 
15
15
  @mixin form {
16
16
  --grid-columns: 4;
17
- --grid-maxWidth: 50rem;
17
+ --grid-maxWidth: var(--components-form-maxWidth, 50rem);
18
18
  }
19
19
 
20
20
  @mixin dense {
@@ -0,0 +1,30 @@
1
+ @use '@lucca-front/scss/src/commons/utils/namespace';
2
+
3
+ @mixin component($atRoot: namespace.$defaultAtRoot) {
4
+ padding-inline: 0.125em;
5
+ margin-inline: -0.125em;
6
+ background-repeat: no-repeat;
7
+ box-decoration-break: clone;
8
+ font-weight: inherit;
9
+ background-image:
10
+ linear-gradient(var(--components-highlightText-backgroundColor)),
11
+ linear-gradient(var(--components-highlightText-backgroundColor)),
12
+ radial-gradient(var(--components-highlightText-backgroundDiameter) circle at var(--components-highlightText-backgroundStart) var(--components-highlightText-backgroundEnd), var(--components-highlightText-backgroundColor) calc(50% - 1px), transparent 50%),
13
+ radial-gradient(var(--components-highlightText-backgroundDiameter) circle at var(--components-highlightText-backgroundEnd) var(--components-highlightText-backgroundEnd), var(--components-highlightText-backgroundColor) calc(50% - 1px), transparent 50%),
14
+ radial-gradient(var(--components-highlightText-backgroundDiameter) circle at var(--components-highlightText-backgroundStart) calc(100% - var(--components-highlightText-backgroundBlockSize) + var(--components-highlightText-backgroundRadius)), var(--components-highlightText-backgroundColor) calc(50% - 1px), transparent 50%),
15
+ radial-gradient(var(--components-highlightText-backgroundDiameter) circle at var(--components-highlightText-backgroundEnd) calc(100% - var(--components-highlightText-backgroundBlockSize) + var(--components-highlightText-backgroundRadius)), var(--components-highlightText-backgroundColor) calc(50% - 1px), transparent 50%);
16
+ background-size:
17
+ 100% calc(var(--components-highlightText-backgroundBlockSize) - var(--components-highlightText-backgroundDiameter)),
18
+ calc(100% - var(--components-highlightText-backgroundDiameter)) var(--components-highlightText-backgroundBlockSize),
19
+ 100% 100%,
20
+ 100% 100%,
21
+ 100% 100%,
22
+ 100% 100%;
23
+ background-position:
24
+ 50% calc(100% - var(--components-highlightText-backgroundRadius)),
25
+ 50% 100%,
26
+ 0 0,
27
+ 0 0,
28
+ 0 0,
29
+ 0 0;
30
+ }
@@ -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
  }
@@ -1,3 +1,4 @@
1
+ @use '@lucca-front/scss/src/commons/utils/color';
1
2
  @use 'exports' as *;
2
3
 
3
4
  // stylelint-disable-next-line selector-disallowed-list -- .menu is deprecated
@@ -21,6 +22,10 @@
21
22
  @include noBorder;
22
23
  }
23
24
 
25
+ .dialog & {
26
+ @include insideDialog;
27
+ }
28
+
24
29
  &.mod-vertical {
25
30
  @include vertical;
26
31
 
@@ -28,6 +33,7 @@
28
33
  .menu-list-item-action,
29
34
  .horizontalNavigation-list-item-action {
30
35
  &[aria-current='page'],
36
+ &[aria-selected='true'],
31
37
  &.is-active {
32
38
  @include activeVertical;
33
39
  }
@@ -40,6 +46,18 @@
40
46
  }
41
47
  }
42
48
 
49
+ .horizontalNavigation_panel {
50
+ @layer components {
51
+ @include varsPanel;
52
+ }
53
+
54
+ @layer mods {
55
+ .dialog & {
56
+ @include insideDialogPanel;
57
+ }
58
+ }
59
+ }
60
+
43
61
  .menu-link, // stylelint-disable-line selector-disallowed-list -- .menu-link is deprecated
44
62
  .menu-list-item-action, // stylelint-disable-line selector-disallowed-list -- .menu-list-item-action is deprecated
45
63
  .horizontalNavigation-list-item-action {
@@ -47,12 +65,20 @@
47
65
  // .active is deprecated
48
66
  &.active,
49
67
  &[aria-current='page'],
68
+ &[aria-selected='true'],
50
69
  &.is-active {
51
70
  @include active;
52
71
  }
53
72
 
73
+ // .active is deprecated
74
+ &:not(.active, [aria-current='page'], [aria-selected='true']) {
75
+ .numericBadge {
76
+ @include color.palette;
77
+ }
78
+ }
79
+
54
80
  &.disabled, // .disabled is deprecated
55
- &[disabled], // [disabled] is deprecated
81
+ &[disabled],
56
82
  &.is-disabled {
57
83
  @include disabled;
58
84
  }
@@ -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,58 @@
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
+ box-shadow: 0 0 0 1px 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
+ transition-property: box-shadow, border-color;
28
+ transition-duration: var(--commons-animations-durations-fast);
29
+ }
30
+
31
+ .impersonation-trigger-icon {
32
+ color: var(--components-impersonation-trigger-icon-color);
33
+ rotate: var(--components-impersonation-trigger-icon-rotate);
34
+ transition-property: rotate;
35
+ transition-duration: var(--commons-animations-durations-fast);
36
+ margin-inline-start: var(--components-impersonation-trigger-icon-marginInlineStart);
37
+ }
38
+
39
+ .impersonation-clear.clear {
40
+ position: absolute;
41
+ z-index: 1;
42
+ inset-inline-end: calc(var(--pr-t-spacings-400) + var(--pr-t-spacings-75));
43
+ inset-block-start: calc(var(--pr-t-spacings-150) + 1px);
44
+ display: var(--components-impersonation-clear-display);
45
+
46
+ @include clear.product;
47
+ }
48
+
49
+ .impersonation_popover-content-option {
50
+ display: flex;
51
+ color: var(--pr-t-color-text);
52
+
53
+ &.mod-me {
54
+ font-weight: var(--pr-t-font-fontWeight-semibold);
55
+ }
56
+ }
57
+ }
58
+ }
@@ -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,10 @@
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-clear-display: none;
9
+ --components-impersonation-trigger-icon-marginInlineStart: auto;
10
+ }
@@ -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
  }
@@ -37,6 +37,9 @@
37
37
  @at-root ($atRoot) {
38
38
  .link-icon {
39
39
  white-space: nowrap;
40
+ opacity: var(--components-link-icon-opacity);
41
+ transition-property: opacity;
42
+ transition-duration: var(--commons-animations-durations-fast);
40
43
 
41
44
  &::before {
42
45
  content: ' ' / '';
@@ -1,4 +1,5 @@
1
1
  @use 'exports' as *;
2
+ @use '@lucca-front/scss/src/commons/utils/media';
2
3
 
3
4
  .link {
4
5
  @layer components {
@@ -19,6 +20,14 @@
19
20
  }
20
21
  }
21
22
 
23
+ @include media.isNotTouchDevice {
24
+ &.mod-hiddenIcon {
25
+ &:not(:hover, :focus-visible) {
26
+ @include hiddenIcon;
27
+ }
28
+ }
29
+ }
30
+
22
31
  &:is(:disabled, .is-disabled) {
23
32
  @include disabled;
24
33
  }
@@ -17,3 +17,7 @@
17
17
  @mixin legacyIcon {
18
18
  --components-link-icon-marginInlineStart: 0.2em;
19
19
  }
20
+
21
+ @mixin hiddenIcon {
22
+ --components-link-icon-opacity: 0;
23
+ }