@lucca-front/scss 22.0.0-rc.4 → 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 +18 -5
  64. package/src/components/listboxOption/index.scss +62 -17
  65. package/src/components/listboxOption/mods.scss +6 -8
  66. package/src/components/listboxOption/states.scss +8 -3
  67. package/src/components/listboxOption/vars.scss +2 -2
  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);
@@ -54,6 +54,16 @@
54
54
  pointer-events: none;
55
55
  box-shadow: var(--pr-t-elevation-shadow-overflow);
56
56
  }
57
+
58
+ .avatar {
59
+ margin-inline-end: var(--pr-t-spacings-75);
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
+ }
57
67
  }
58
68
 
59
69
  .listboxOption-content-checkboxField.checkboxField {
@@ -65,7 +75,7 @@
65
75
  list-style-type: none;
66
76
  display: flex;
67
77
  flex-direction: column;
68
- gap: var(--pr-t-spacings-25);
78
+ gap: var(--pr-t-spacings-50);
69
79
  background-color: var(--palettes-neutral-0);
70
80
  position: relative;
71
81
  z-index: 1;
@@ -77,11 +87,14 @@
77
87
 
78
88
  @include reset.list;
79
89
 
80
- padding: var(--components-listboxOptionWrapper-padding);
81
-
82
90
  .listboxOptionWrapper {
83
91
  --components-listboxOptionWrapper-overflow: visible;
84
92
  }
85
93
  }
94
+
95
+ .listboxOption-content-group {
96
+ color: var(--palettes-neutral-600);
97
+ font: var(--pr-t-font-body-S);
98
+ }
86
99
  }
87
100
  }
@@ -10,7 +10,8 @@
10
10
  &.mod-add {
11
11
  @include add;
12
12
 
13
- &:hover {
13
+ &:hover,
14
+ &:has(> .listboxOption-content.is-hovered) {
14
15
  @include addHover;
15
16
  }
16
17
 
@@ -30,14 +31,31 @@
30
31
  &[role='group'] {
31
32
  @include group;
32
33
 
33
- &:hover,
34
- &:has(.is-hovered) {
35
- @include groupHover;
34
+ &:hover {
35
+ .selectPanel.is-pointerNavigation & {
36
+ @include groupHover;
37
+ }
36
38
  }
37
39
 
38
- > .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) {
39
48
  &:hover {
40
- @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
+ }
41
59
  }
42
60
  }
43
61
 
@@ -53,13 +71,21 @@
53
71
  }
54
72
 
55
73
  &[aria-selected='true'],
56
- &[aria-checked='true'] {
74
+ &[aria-checked='true'],
75
+ &.is-selected {
57
76
  > .listboxOption-content {
58
77
  @include selected;
59
78
 
60
- &.is-hovered,
61
79
  &:hover {
62
- @include selectedHover;
80
+ .selectPanel.is-pointerNavigation & {
81
+ @include selectedHover;
82
+ }
83
+ }
84
+
85
+ &.is-hovered {
86
+ .selectPanel:not(.is-pointerNavigation) & {
87
+ @include selectedHover;
88
+ }
63
89
  }
64
90
 
65
91
  &:active {
@@ -68,7 +94,8 @@
68
94
  }
69
95
  }
70
96
 
71
- &[aria-disabled='true'] {
97
+ &[aria-disabled='true'],
98
+ &.is-disabled {
72
99
  > .listboxOption-content {
73
100
  @include disabled;
74
101
 
@@ -78,7 +105,8 @@
78
105
  }
79
106
 
80
107
  &[aria-selected='true'],
81
- &[aria-checked='true'] {
108
+ &[aria-checked='true'],
109
+ &.is-selected {
82
110
  > .listboxOption-content {
83
111
  @include selectedDisabled;
84
112
  }
@@ -93,9 +121,16 @@
93
121
  }
94
122
 
95
123
  @layer mods {
96
- &.is-hovered,
97
124
  &:hover {
98
- @include hover;
125
+ .selectPanel.is-pointerNavigation & {
126
+ @include hover;
127
+ }
128
+ }
129
+
130
+ &.is-hovered {
131
+ .selectPanel:not(.is-pointerNavigation) & {
132
+ @include hover;
133
+ }
99
134
  }
100
135
 
101
136
  &:active {
@@ -128,13 +163,20 @@
128
163
  }
129
164
 
130
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
+
131
172
  &,
132
173
  .listboxOptionWrapper {
133
174
  @include multiple;
134
175
 
135
176
  .listboxOption {
136
177
  &:hover,
137
- &.is-hovered {
178
+ &.is-hovered,
179
+ &:has(> .listboxOption-content.is-hovered) {
138
180
  @include multipleHover;
139
181
  }
140
182
 
@@ -143,7 +185,8 @@
143
185
  }
144
186
 
145
187
  &[aria-selected='true'],
146
- &[aria-checked='true'] {
188
+ &[aria-checked='true'],
189
+ &.is-selected {
147
190
  > .listboxOption-content {
148
191
  @include multipleSelected;
149
192
 
@@ -173,13 +216,15 @@
173
216
  }
174
217
  }
175
218
 
176
- &[aria-disabled='true'], {
219
+ &[aria-disabled='true'],
220
+ &.is-disabled {
177
221
  > .listboxOption-content {
178
222
  @include multipleDisabled;
179
223
  }
180
224
 
181
225
  &[aria-selected='true'],
182
- &[aria-checked='true'] {
226
+ &[aria-checked='true'],
227
+ &.is-selected {
183
228
  > .listboxOption-content {
184
229
  @include multipleSelectedDisabled;
185
230
  }
@@ -18,23 +18,22 @@
18
18
  }
19
19
 
20
20
  > .listboxOption-content {
21
- --components-listboxOption-content-fontWeight: var(--pr-t-font-fontWeight-semibold);
22
21
  --components-listboxOption-content-font: var(--pr-t-font-body-S);
22
+ --components-listboxOption-content-color: var(--pr-t-color-text-subtle);
23
23
  --components-listboxOption-content-position: sticky;
24
- --components-listboxOption-content-marginBlockStart: var(--pr-t-spacings-50);
25
24
  --components-listboxOption-content-checkboxField-display: none;
26
25
  --components-listboxOption-content-flexWrap: wrap;
27
26
  --components-listboxOption-content-justifyContent: space-between;
28
- --components-listboxOption-content-insetBlockStart: var(--pr-t-spacings-50);
27
+ --components-listboxOption-content-insetBlockStart: 0;
29
28
  --components-listboxOption-content-boxShadow:
30
29
  calc(var(--pr-t-spacings-100) * -1) 0 0 0 var(--pr-t-elevation-surface-raised),
31
- calc(var(--pr-t-spacings-100) * 1) 0 0 0 var(--pr-t-elevation-surface-raised),
32
- calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-100) * -1) 0 0 var(--pr-t-elevation-surface-raised),
33
- calc(var(--pr-t-spacings-100) * 1) calc(var(--pr-t-spacings-100) * -1) 0 0 var(--pr-t-elevation-surface-raised);
30
+ var(--pr-t-spacings-100) 0 0 0 var(--pr-t-elevation-surface-raised),
31
+ calc(var(--pr-t-spacings-100) * -1) calc(var(--pr-t-spacings-50) * -1) 0 0 var(--pr-t-elevation-surface-raised),
32
+ var(--pr-t-spacings-100) calc(var(--pr-t-spacings-50) * -1) 0 0 var(--pr-t-elevation-surface-raised);
34
33
  }
35
34
 
36
35
  .listboxOptionWrapper {
37
- --components-listboxOptionWrapper-childrenPaddingInlineStart: var(--pr-t-spacings-100);
36
+ --components-listboxOptionWrapper-childrenPaddingInlineStart: var(--pr-t-spacings-250);
38
37
  }
39
38
  }
40
39
 
@@ -55,7 +54,6 @@
55
54
 
56
55
  @mixin select {
57
56
  > .listboxOption-content {
58
- --components-listboxOption-content-opacity: 0;
59
57
  --components-listboxOption-content-position: static;
60
58
  --components-listboxOption-content-font: var(--pr-t-font-body-S);
61
59
  --components-listboxOption-content-padding: 0;