@lucca-front/scss 22.0.0-rc.5 → 22.0.0

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 (93) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +3 -3
  3. package/src/commons/utils/highlight-prisme.scss +2 -0
  4. package/src/commons/utils/index.scss +1 -9
  5. package/src/commons/vars.scss +3 -2
  6. package/src/components/appLayout/vars.scss +1 -1
  7. package/src/components/approbationInbox/component.scss +457 -0
  8. package/src/components/approbationInbox/exports.scss +4 -0
  9. package/src/components/approbationInbox/index.scss +119 -0
  10. package/src/components/approbationInbox/mods.scss +78 -0
  11. package/src/components/approbationInbox/states.scss +20 -0
  12. package/src/components/approbationInbox/vars.scss +29 -0
  13. package/src/components/button/states.scss +6 -2
  14. package/src/components/calloutPopover/component.scss +1 -1
  15. package/src/components/color/component.scss +5 -4
  16. package/src/components/color/index.scss +3 -1
  17. package/src/components/color/mods.scss +1 -1
  18. package/src/components/comment/component.scss +10 -7
  19. package/src/components/comment/index.scss +4 -0
  20. package/src/components/comment/mods.scss +4 -0
  21. package/src/components/comment/vars.scss +1 -0
  22. package/src/components/container/mods.scss +1 -1
  23. package/src/components/dataTable/mods.scss +5 -0
  24. package/src/components/dateRangeField/mods.scss +1 -1
  25. package/src/components/dialog/component.scss +10 -1
  26. package/src/components/dialog/index.scss +18 -3
  27. package/src/components/dialog/mods.scss +28 -2
  28. package/src/components/dialog/vars.scss +5 -2
  29. package/src/components/divider/component.scss +1 -1
  30. package/src/components/divider/vars.scss +1 -0
  31. package/src/components/dropdown/component.scss +2 -2
  32. package/src/components/dropdown/states.scss +0 -1
  33. package/src/components/dropdown/vars.scss +1 -2
  34. package/src/components/emptyState/vars.scss +1 -1
  35. package/src/components/errorPage/component.scss +6 -6
  36. package/src/components/errorPage/index.scss +2 -2
  37. package/src/components/errorPage/mods.scss +1 -1
  38. package/src/components/fancyBox/component.scss +3 -3
  39. package/src/components/field/vars.scss +1 -1
  40. package/src/components/filterBar/component.scss +5 -1
  41. package/src/components/filterPill/component.scss +25 -8
  42. package/src/components/filterPill/index.scss +8 -0
  43. package/src/components/filterPill/states.scss +4 -1
  44. package/src/components/filterPill/vars.scss +4 -0
  45. package/src/components/footer/component.scss +5 -0
  46. package/src/components/form/vars.scss +1 -1
  47. package/src/components/grid/component.scss +1 -0
  48. package/src/components/highlightData/component.scss +1 -1
  49. package/src/components/highlightSection/component.scss +48 -0
  50. package/src/components/highlightSection/exports.scss +4 -0
  51. package/src/components/highlightSection/index.scss +23 -0
  52. package/src/components/highlightSection/mods.scss +14 -0
  53. package/src/components/highlightSection/states.scss +0 -0
  54. package/src/components/highlightSection/vars.scss +10 -0
  55. package/src/components/horizontalNavigation/component.scss +2 -1
  56. package/src/components/horizontalNavigation/mods.scss +1 -0
  57. package/src/components/horizontalNavigation/vars.scss +1 -0
  58. package/src/components/index.scss +2 -0
  59. package/src/components/indexTable/mods.scss +5 -0
  60. package/src/components/layout/component.scss +3 -3
  61. package/src/components/layout/states.scss +1 -1
  62. package/src/components/link/component.scss +1 -1
  63. package/src/components/listboxOption/component.scss +13 -2
  64. package/src/components/listboxOption/index.scss +46 -17
  65. package/src/components/listboxOption/mods.scss +0 -1
  66. package/src/components/listboxOption/states.scss +8 -7
  67. package/src/components/listboxOption/vars.scss +1 -1
  68. package/src/components/loading/mods.scss +2 -0
  69. package/src/components/main/states.scss +1 -1
  70. package/src/components/mainLayout/component.scss +50 -2
  71. package/src/components/mainLayout/index.scss +14 -2
  72. package/src/components/mainLayout/mods.scss +9 -0
  73. package/src/components/mainLayout/vars.scss +12 -0
  74. package/src/components/multiSelect/mods.scss +2 -2
  75. package/src/components/multiSelect/states.scss +1 -1
  76. package/src/components/navside/states.scss +2 -2
  77. package/src/components/popover/component.scss +2 -2
  78. package/src/components/progress/component.scss +1 -1
  79. package/src/components/readMore/component.scss +2 -0
  80. package/src/components/readMore/index.scss +4 -0
  81. package/src/components/readMore/mods.scss +4 -0
  82. package/src/components/readMore/vars.scss +1 -0
  83. package/src/components/resourceCard/component.scss +11 -1
  84. package/src/components/richText/vars.scss +1 -1
  85. package/src/components/segmentedControl/component.scss +12 -0
  86. package/src/components/simpleSelect/mods.scss +1 -1
  87. package/src/components/switchField/component.scss +1 -1
  88. package/src/components/textField/component.scss +21 -7
  89. package/src/components/textField/mods.scss +15 -0
  90. package/src/components/textField/vars.scss +3 -1
  91. package/src/components/toast/vars.scss +1 -1
  92. package/src/components/tooltip/component.scss +1 -1
  93. package/src/components/userPopover/component.scss +1 -1
@@ -48,10 +48,15 @@
48
48
  .filterPill_popover-content-option {
49
49
  padding: var(--pr-t-spacings-50) var(--pr-t-spacings-100);
50
50
  border-radius: var(--pr-t-border-radius-default);
51
+ background-color: var(--components-filterPill-option-backgroundColor);
51
52
  position: relative;
53
+ display: flex;
54
+ gap: var(--pr-t-spacings-100);
55
+ justify-content: space-between;
52
56
 
53
57
  .formLabel {
54
58
  position: static;
59
+ cursor: pointer;
55
60
 
56
61
  &::before {
57
62
  content: '';
@@ -60,15 +65,31 @@
60
65
  }
61
66
  }
62
67
 
68
+ .filterPill_popover-content-option-input {
69
+ @include a11y.mask;
70
+ }
71
+
63
72
  &:hover {
64
- background-color: var(--palettes-neutral-50);
73
+ --components-filterPill-option-backgroundColor: var(--palettes-neutral-50);
65
74
  }
66
75
 
67
76
  &:has(:checked) {
68
- background-color: var(--palettes-product-50);
77
+ --components-filterPill-option-backgroundColor: var(--palettes-product-50);
78
+
79
+ .filterPill_popover-content-option-actions {
80
+ &:hover {
81
+ background-color: var(--palettes-product-200);
82
+ }
83
+ }
69
84
 
70
85
  &:hover {
71
- background-color: var(--palettes-product-100);
86
+ --components-filterPill-option-backgroundColor: var(--palettes-product-100);
87
+ }
88
+ }
89
+
90
+ .filterPill_popover-content-option-actions {
91
+ &:hover {
92
+ background-color: var(--palettes-neutral-100);
72
93
  }
73
94
  }
74
95
  }
@@ -104,22 +125,18 @@
104
125
 
105
126
  display: flex;
106
127
  margin-block-start: -1px;
107
- margin-inline-start: var(--pr-t-spacings-50);
108
128
  inline-size: calc(var(--pr-t-spacings-50) + var(--pr-t-spacings-200));
109
129
  flex-shrink: 0;
110
130
  z-index: 1;
111
131
  color: var(--components-filterPill-toggle-iconColor);
112
132
  cursor: var(--components-filterPill-label-cursor);
133
+ margin-inline-start: var(--components-filterPill-toggle-marginInlineStart);
113
134
 
114
135
  .icon-arrowChevronBottom {
115
136
  transition-property: transform;
116
137
  transition-duration: var(--commons-animations-durations-fast);
117
138
  transform: rotate(var(--components-filterPill-toggle-rotation));
118
139
  }
119
-
120
- .filterPill-value + & {
121
- margin-inline-start: var(--components-filterPill-toggle-marginInlineStart);
122
- }
123
140
  }
124
141
 
125
142
  .filterPill-clear.clear {
@@ -38,6 +38,10 @@
38
38
  &:active {
39
39
  @include filledActive;
40
40
  }
41
+
42
+ &:has(~ .filterPill_clear) {
43
+ @include filledClearable;
44
+ }
41
45
  }
42
46
 
43
47
  &.mod-checkbox {
@@ -82,6 +86,10 @@
82
86
  }
83
87
 
84
88
  .filterPillWrapper {
89
+ @layer components {
90
+ @include varsWrapper;
91
+ }
92
+
85
93
  @layer mods {
86
94
  &.is-hidden {
87
95
  @include hidden;
@@ -67,7 +67,6 @@
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));
71
70
  }
72
71
 
73
72
  @mixin notFilled {
@@ -109,3 +108,7 @@
109
108
  @mixin hidden {
110
109
  --components-filterPillWrapper-display: none;
111
110
  }
111
+
112
+ @mixin filledClearable {
113
+ --components-filterPill-toggle-marginInlineStart: calc(var(--pr-t-spacings-300) + var(--pr-t-spacings-50));
114
+ }
@@ -18,5 +18,9 @@
18
18
  --components-filterPill-arrowColor: var(--palettes-product-700);
19
19
  --components-filterPill-label-maxInlineSize: none;
20
20
  --components-filterPill-toggle-marginInlineStart: var(--pr-t-spacings-50);
21
+ }
22
+
23
+ @mixin varsWrapper {
21
24
  --components-filterPillWrapper-display: block;
25
+ --components-filterPill-option-backgroundColor: transparent;
22
26
  }
@@ -1,4 +1,5 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/namespace';
2
+ @use '@lucca-front/scss/src/commons/utils/media';
2
3
 
3
4
  @mixin component($atRoot: namespace.$defaultAtRoot) {
4
5
  background-color: var(--components-footer-backgroundColor);
@@ -18,6 +19,10 @@
18
19
  @at-root ($atRoot) {
19
20
  .footer-content {
20
21
  flex-grow: 1;
22
+
23
+ &:empty {
24
+ display: none;
25
+ }
21
26
  }
22
27
 
23
28
  .footer-actions {
@@ -11,7 +11,7 @@
11
11
  --components-field-framed-label-top-offset: var(--pr-t-spacings-100);
12
12
  --components-field-framed-textarea-height: 8.5rem;
13
13
  --components-field-framed-textarea-min-height: 5.5rem;
14
- --components-field-framed-textarea-max-height: 80vh;
14
+ --components-field-framed-textarea-max-height: 80vb;
15
15
  --components-field-framed-title-font-size: 1.125rem;
16
16
  --components-field-framed-title-line-height: var(--pr-t-font-body-M-lineHeight);
17
17
  --components-field-framed-suffix-padding-right: var(--pr-t-spacings-600);
@@ -29,6 +29,7 @@
29
29
  grid-column-end: span var(--grid-colspan, var(--grid-column-end));
30
30
  grid-row-end: span var(--grid-rowspan, var(--grid-row-end));
31
31
  min-inline-size: 0;
32
+ text-align: inherit; // required for Chrome, which interprets the deprecated `align` attribute
32
33
 
33
34
  @each $breakpoint, $value in config.$breakpoints {
34
35
  @include media.min($breakpoint) {
@@ -55,7 +55,7 @@
55
55
  --commons-text-link-hover: var(--palettes-800, var(--palettes-product-800));
56
56
  }
57
57
 
58
- .button {
58
+ .button.mod-outlined {
59
59
  @include color.palette('neutral');
60
60
  }
61
61
  }
@@ -0,0 +1,48 @@
1
+ @use '@lucca-front/scss/src/commons/utils/namespace';
2
+
3
+ @mixin component($atRoot: namespace.$defaultAtRoot) {
4
+ background-color: var(--components-highlightSection-background);
5
+ border-radius: var(--components-highlightSection-borderRadius);
6
+ display: block;
7
+ overflow: hidden;
8
+ padding: var(--components-highlightSection-padding);
9
+ position: relative;
10
+
11
+ @at-root ($atRoot) {
12
+ .highlightSection-content {
13
+ align-items: flex-start;
14
+ column-gap: var(--components-highlightSection-gap);
15
+ display: flex;
16
+ position: relative;
17
+ }
18
+
19
+ .highlightSection-content-slot {
20
+ flex-grow: 1;
21
+ min-inline-size: 0;
22
+ }
23
+
24
+ .highlightSection-content-illustration {
25
+ block-size: var(--components-highlightSection-illustration-blockSize);
26
+ inline-size: var(--components-highlightSection-illustration-inlineSize);
27
+ flex-shrink: 0;
28
+ display: var(--components-highlightSection-content-illustration-display);
29
+ }
30
+
31
+ .highlightSection-bubbleStart,
32
+ .highlightSection-bubbleEnd {
33
+ inset-block-end: 0;
34
+ position: absolute;
35
+ pointer-events: none;
36
+ display: var(--components-highlightSection-bubbleStartBubbleEnd-display);
37
+ }
38
+
39
+ .highlightSection-bubbleStart {
40
+ inset-inline-start: 0;
41
+ }
42
+
43
+ .highlightSection-bubbleEnd {
44
+ inset-inline-end: 0;
45
+ transform: scaleX(-1);
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,4 @@
1
+ @forward 'vars';
2
+ @forward 'mods';
3
+ @forward 'states';
4
+ @forward 'component';
@@ -0,0 +1,23 @@
1
+ @use 'exports' as *;
2
+ @use '@lucca-front/scss/src/commons/utils/media';
3
+
4
+ .highlightSection {
5
+ @layer components {
6
+ @include vars;
7
+ @include component;
8
+ }
9
+
10
+ @layer mods {
11
+ &.mod-light {
12
+ @include light;
13
+ }
14
+
15
+ &.mod-dark {
16
+ @include dark;
17
+ }
18
+
19
+ @include media.max('XXS') {
20
+ @include narrow;
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,14 @@
1
+ @mixin light {
2
+ --components-highlightSection-background: var(--palettes-50, var(--palettes-product-50));
3
+ --palettes-assets-primary: var(--palettes-assets-primary-light);
4
+ }
5
+
6
+ @mixin dark {
7
+ --components-highlightSection-background: var(--palettes-100, var(--palettes-product-100));
8
+ --palettes-assets-primary: var(--palettes-assets-primary-dark);
9
+ }
10
+
11
+ @mixin narrow {
12
+ --components-highlightSection-content-illustration-display: none;
13
+ --components-highlightSection-bubbleStartBubbleEnd-display: none;
14
+ }
File without changes
@@ -0,0 +1,10 @@
1
+ @mixin vars {
2
+ --components-highlightSection-background: var(--pr-t-elevation-surface-raised);
3
+ --components-highlightSection-borderRadius: var(--pr-t-border-radius-structure);
4
+ --components-highlightSection-gap: var(--pr-t-spacings-100);
5
+ --components-highlightSection-illustration-blockSize: 150px;
6
+ --components-highlightSection-illustration-inlineSize: 140px;
7
+ --components-highlightSection-padding: var(--pr-t-spacings-200);
8
+ --components-highlightSection-content-illustration-display: block;
9
+ --components-highlightSection-bubbleStartBubbleEnd-display: flex;
10
+ }
@@ -149,7 +149,8 @@
149
149
  .horizontalNavigation_panel {
150
150
  display: var(--components-horizontalNavigation-panel-display);
151
151
  overflow: var(--components-horizontalNavigation-panel-overflow);
152
- min-height: 0;
152
+ flex-grow: var(--components-horizontalNavigation-panel-flexGrow);
153
+ min-block-size: 0;
153
154
  flex-direction: column;
154
155
 
155
156
  &:focus-visible {
@@ -115,6 +115,7 @@
115
115
  @mixin insideDialogPanel {
116
116
  --components-horizontalNavigation-panel-display: flex;
117
117
  --components-horizontalNavigation-panel-overflow: auto;
118
+ --components-horizontalNavigation-panel-flexGrow: 1;
118
119
 
119
120
  &:focus-visible {
120
121
  @include a11y.focusVisible($offset: -4px, $borderRadius: var(--pr-t-border-radius-structure));
@@ -25,4 +25,5 @@
25
25
  @mixin varsPanel {
26
26
  --components-horizontalNavigation-panel-display: block;
27
27
  --components-horizontalNavigation-panel-overflow: visible;
28
+ --components-horizontalNavigation-panel-flexGrow: 0;
28
29
  }
@@ -101,6 +101,7 @@
101
101
  @forward 'richText';
102
102
  @forward 'readMore';
103
103
  @forward 'highlightData';
104
+ @forward 'highlightSection';
104
105
  @forward 'listing';
105
106
  @forward 'fileUpload';
106
107
  @forward 'fileEntry';
@@ -119,6 +120,7 @@
119
120
  @forward 'activityFeed';
120
121
  @forward 'impersonation';
121
122
  @forward 'highlightText';
123
+ @forward 'approbationInbox';
122
124
 
123
125
  @forward 'filterBarDeprecated';
124
126
  @forward 'tableFixedDeprecated';
@@ -298,6 +298,11 @@
298
298
  // For specificity purpose. Could be removed if we decide to remove automatic CSS imports in Angular components
299
299
  @include button.critical;
300
300
  }
301
+
302
+ &.is-loading {
303
+ @include button.loadingS;
304
+ @include button.loadingGhost;
305
+ }
301
306
  }
302
307
  }
303
308
 
@@ -6,7 +6,7 @@
6
6
  @use '@lucca-front/scss/src/commons/utils/namespace';
7
7
 
8
8
  @mixin component($atRoot: namespace.$defaultAtRoot) {
9
- min-block-size: 100vh;
9
+ min-block-size: 100vb;
10
10
  display: grid;
11
11
 
12
12
  @include media.min('L') {
@@ -94,7 +94,7 @@
94
94
 
95
95
  .layout-navside,
96
96
  .layout-aside {
97
- min-block-size: calc(100vh - var(--commons-banner-height));
97
+ min-block-size: calc(100vb - var(--commons-banner-height));
98
98
  inset-block-start: var(--commons-banner-height);
99
99
  display: flex;
100
100
  position: sticky;
@@ -116,7 +116,7 @@
116
116
  }
117
117
 
118
118
  .layout-navside {
119
- max-block-size: calc(100vh - var(--commons-banner-height));
119
+ max-block-size: calc(100vb - var(--commons-banner-height));
120
120
  grid-area: navside;
121
121
  z-index: 2;
122
122
  overflow: auto;
@@ -8,7 +8,7 @@
8
8
  @mixin active {
9
9
  @include media.max('S') {
10
10
  inset-block-start: var(--commons-banner-height);
11
- block-size: calc(100vh - var(--commons-banner-height));
11
+ block-size: calc(100vb - var(--commons-banner-height));
12
12
  background-color: var(--pr-t-elevation-surface-raised);
13
13
  position: fixed;
14
14
  overflow: auto;
@@ -26,7 +26,7 @@
26
26
  font-size: 1em;
27
27
  vertical-align: baseline;
28
28
  position: relative;
29
- top: 0.075rem;
29
+ inset-block-start: 0.075rem;
30
30
  margin-inline-start: var(--components-link-icon-marginInlineStart);
31
31
  }
32
32
 
@@ -4,7 +4,7 @@
4
4
  @mixin component($atRoot: namespace.$defaultAtRoot) {
5
5
  display: var(--components-listboxOption-display);
6
6
  flex-direction: column;
7
- gap: var(--pr-t-spacings-25);
7
+ gap: var(--pr-t-spacings-50);
8
8
  scroll-margin-block: var(--components-listboxOption-scrollMarginBlock);
9
9
  position: var(--components-listboxOption-position);
10
10
  inset-block-end: 0;
@@ -16,7 +16,6 @@
16
16
 
17
17
  @at-root ($atRoot) {
18
18
  .listboxOption-content {
19
- opacity: var(--components-listboxOption-content-opacity);
20
19
  background-color: var(--components-listboxOption-content-backgroundColor);
21
20
  color: var(--components-listboxOption-content-color);
22
21
  border-radius: var(--pr-t-border-radius-default);
@@ -36,6 +35,7 @@
36
35
  inset-block-start: var(--components-listboxOption-content-insetBlockStart);
37
36
  justify-content: var(--components-listboxOption-content-justifyContent);
38
37
  box-shadow: var(--components-listboxOption-content-boxShadow);
38
+ overflow-wrap: anywhere;
39
39
 
40
40
  &::before {
41
41
  content: var(--components-listboxOption-content-before-content);
@@ -58,6 +58,12 @@
58
58
  .avatar {
59
59
  margin-inline-end: var(--pr-t-spacings-75);
60
60
  }
61
+
62
+ .link {
63
+ opacity: var(--components-listboxOption-content-link-opacity);
64
+ transition-property: opacity;
65
+ transition-duration: var(--commons-animations-durations-fast);
66
+ }
61
67
  }
62
68
 
63
69
  .listboxOption-content-checkboxField.checkboxField {
@@ -85,5 +91,10 @@
85
91
  --components-listboxOptionWrapper-overflow: visible;
86
92
  }
87
93
  }
94
+
95
+ .listboxOption-content-group {
96
+ color: var(--palettes-neutral-600);
97
+ font: var(--pr-t-font-body-S);
98
+ }
88
99
  }
89
100
  }
@@ -31,14 +31,31 @@
31
31
  &[role='group'] {
32
32
  @include group;
33
33
 
34
- &:hover,
35
- &:has(.is-hovered) {
36
- @include groupHover;
34
+ &:hover {
35
+ .selectPanel.is-pointerNavigation & {
36
+ @include groupHover;
37
+ }
37
38
  }
38
39
 
39
- > .listboxOption-content {
40
+ &:has(.is-hovered),
41
+ &:has(.link.is-highlighted) {
42
+ .selectPanel:not(.is-pointerNavigation) & {
43
+ @include groupHover;
44
+ }
45
+ }
46
+
47
+ > .listboxOption-content:has(.link) {
40
48
  &:hover {
41
- @include groupHoverReset;
49
+ .selectPanel.is-pointerNavigation & {
50
+ @include hover;
51
+ }
52
+ }
53
+
54
+ &.is-hovered,
55
+ &:has(.link.is-highlighted) {
56
+ .selectPanel:not(.is-pointerNavigation) & {
57
+ @include hover;
58
+ }
42
59
  }
43
60
  }
44
61
 
@@ -59,9 +76,16 @@
59
76
  > .listboxOption-content {
60
77
  @include selected;
61
78
 
62
- &.is-hovered,
63
79
  &:hover {
64
- @include selectedHover;
80
+ .selectPanel.is-pointerNavigation & {
81
+ @include selectedHover;
82
+ }
83
+ }
84
+
85
+ &.is-hovered {
86
+ .selectPanel:not(.is-pointerNavigation) & {
87
+ @include selectedHover;
88
+ }
65
89
  }
66
90
 
67
91
  &:active {
@@ -97,8 +121,16 @@
97
121
  }
98
122
 
99
123
  @layer mods {
124
+ &:hover {
125
+ .selectPanel.is-pointerNavigation & {
126
+ @include hover;
127
+ }
128
+ }
129
+
100
130
  &.is-hovered {
101
- @include hover;
131
+ .selectPanel:not(.is-pointerNavigation) & {
132
+ @include hover;
133
+ }
102
134
  }
103
135
 
104
136
  &:active {
@@ -107,15 +139,6 @@
107
139
  }
108
140
  }
109
141
 
110
- // In presentation mode the hover state is driven exclusively by the is-hovered class
111
- // (bound to isHighlighted by the parent lu-select-option), so native :hover must not apply
112
- // to avoid two items appearing highlighted simultaneously during mixed keyboard/mouse navigation.
113
- .listboxOption:not([presentation]) > .listboxOption-content:hover {
114
- @layer mods {
115
- @include hover;
116
- }
117
- }
118
-
119
142
  .listboxOptionWrapper {
120
143
  @layer components {
121
144
  @include varsWrapper;
@@ -140,6 +163,12 @@
140
163
  }
141
164
 
142
165
  &.mod-multiple {
166
+ // Grouped options keep the same inline alignment as ungrouped ones (checkbox + label),
167
+ // so the extra group indentation from `@mixin group` must not apply in multi-select.
168
+ .listboxOption[role='group'] > .listboxOptionWrapper {
169
+ --components-listboxOptionWrapper-childrenPaddingInlineStart: var(--pr-t-spacings-100);
170
+ }
171
+
143
172
  &,
144
173
  .listboxOptionWrapper {
145
174
  @include multiple;
@@ -54,7 +54,6 @@
54
54
 
55
55
  @mixin select {
56
56
  > .listboxOption-content {
57
- --components-listboxOption-content-opacity: 0;
58
57
  --components-listboxOption-content-position: static;
59
58
  --components-listboxOption-content-font: var(--pr-t-font-body-S);
60
59
  --components-listboxOption-content-padding: 0;
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  @mixin disabledHover {
10
- --components-listboxOption-content-backgroundColor: var(--pr-t-elevation-surface-raised);
10
+ --components-listboxOption-content-backgroundColor: var(--pr-t-elevation-surface-raised) !important;
11
11
  }
12
12
 
13
13
  @mixin selectedDisabled {
@@ -74,17 +74,14 @@
74
74
  --components-listboxOption-content-cursor: default;
75
75
  --components-listboxOption-content-backgroundColor: var(--pr-t-elevation-surface-raised);
76
76
  }
77
-
78
- .listboxOption-content-checkboxField {
79
- display: none;
80
- }
81
77
  }
82
78
 
83
79
  @mixin empty {
84
80
  .listboxOption-content {
81
+ --components-listboxOption-content-color: var(--pr-t-color-text-subtle);
85
82
  --components-listboxOption-content-checkboxField-display: none;
86
83
  --components-listboxOption-content-cursor: default;
87
- --components-listboxOption-content-backgroundColor: var(--pr-t-elevation-surface-raised);
84
+ --components-listboxOption-content-backgroundColor: var(--pr-t-elevation-surface-raised) !important;
88
85
  }
89
86
  }
90
87
 
@@ -95,7 +92,7 @@
95
92
 
96
93
  @mixin groupHover {
97
94
  .listboxOption-content {
98
- --components-listboxOption-content-opacity: 1;
95
+ --components-listboxOption-content-link-opacity: 1;
99
96
  }
100
97
  }
101
98
 
@@ -110,6 +107,10 @@
110
107
 
111
108
  @mixin hover {
112
109
  --components-listboxOption-content-backgroundColor: var(--palettes-neutral-50);
110
+
111
+ .listboxOption-content-checkboxField-input {
112
+ @include checkboxField.hover;
113
+ }
113
114
  }
114
115
 
115
116
  @mixin active {
@@ -23,10 +23,10 @@
23
23
  --components-listboxOption-content-position: relative;
24
24
  --components-listboxOption-content-before-content: var(--components-listboxOptionWrapper-childrenBefore-content, '');
25
25
  --components-listboxOption-content-after-content: none;
26
- --components-listboxOption-content-opacity: 1;
27
26
  --components-listboxOption-content-boxShadow: none;
28
27
  --components-listboxOption-content-flexWrap: nowrap;
29
28
  --components-listboxOption-content-justifyContent: normal;
29
+ --components-listboxOption-content-link-opacity: 0;
30
30
  }
31
31
 
32
32
  @mixin varsWrapper {
@@ -39,6 +39,7 @@
39
39
  @include popin;
40
40
 
41
41
  // legacy, approximate centering
42
+ // stylelint-disable-next-line unit-layout-mappings -- translateY is physical; pair it with physical vh.
42
43
  --components-loading-transform: translateY(35vh);
43
44
  }
44
45
 
@@ -47,6 +48,7 @@
47
48
 
48
49
  // legacy, approximate centering
49
50
  --components-loading-margin: 0 auto;
51
+ // stylelint-disable-next-line unit-layout-mappings -- translateY is physical; pair it with physical vh.
50
52
  --components-loading-transform: translateY(35vh);
51
53
  }
52
54
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  @mixin notScrollable {
4
4
  @include media.max('S') {
5
- block-size: 100vh;
5
+ block-size: 100vb;
6
6
  overflow: hidden;
7
7
  }
8
8
  }