@carbon/ibm-products-web-components 0.45.0 → 0.46.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 (128) hide show
  1. package/custom-elements.json +494 -19
  2. package/es/components/add-select/add-select-body.d.ts +15 -10
  3. package/es/components/add-select/add-select-body.d.ts.map +1 -1
  4. package/es/components/add-select/add-select-body.js +95 -73
  5. package/es/components/add-select/add-select-body.js.map +1 -1
  6. package/es/components/add-select/add-select-body.scss.js +1 -1
  7. package/es/components/add-select/add-select-body.scss.js.map +1 -1
  8. package/es/components/add-select/add-select-column.d.ts +83 -0
  9. package/es/components/add-select/add-select-column.d.ts.map +1 -0
  10. package/es/components/add-select/add-select-column.js +217 -0
  11. package/es/components/add-select/add-select-column.js.map +1 -0
  12. package/es/components/add-select/add-select-column.scss.js +14 -0
  13. package/es/components/add-select/add-select-column.scss.js.map +1 -0
  14. package/es/components/add-select/add-select-item-panel.d.ts +58 -0
  15. package/es/components/add-select/add-select-item-panel.d.ts.map +1 -0
  16. package/es/components/add-select/add-select-item-panel.js +162 -0
  17. package/es/components/add-select/add-select-item-panel.js.map +1 -0
  18. package/es/components/add-select/add-select-item-panel.scss.js +14 -0
  19. package/es/components/add-select/add-select-item-panel.scss.js.map +1 -0
  20. package/es/components/add-select/add-select-row.d.ts +42 -2
  21. package/es/components/add-select/add-select-row.d.ts.map +1 -1
  22. package/es/components/add-select/add-select-row.js +143 -23
  23. package/es/components/add-select/add-select-row.js.map +1 -1
  24. package/es/components/add-select/add-select-row.scss.js +1 -1
  25. package/es/components/add-select/add-select-row.scss.js.map +1 -1
  26. package/es/components/add-select/add-select-selection-summary-item.d.ts +64 -0
  27. package/es/components/add-select/add-select-selection-summary-item.d.ts.map +1 -0
  28. package/es/components/add-select/add-select-selection-summary-item.js +279 -0
  29. package/es/components/add-select/add-select-selection-summary-item.js.map +1 -0
  30. package/es/components/add-select/add-select-selection-summary-item.scss.js +14 -0
  31. package/es/components/add-select/add-select-selection-summary-item.scss.js.map +1 -0
  32. package/es/components/add-select/add-select-selection-summary.d.ts +48 -0
  33. package/es/components/add-select/add-select-selection-summary.d.ts.map +1 -0
  34. package/es/components/add-select/add-select-selection-summary.js +118 -0
  35. package/es/components/add-select/add-select-selection-summary.js.map +1 -0
  36. package/es/components/add-select/add-select-selection-summary.scss.js +14 -0
  37. package/es/components/add-select/add-select-selection-summary.scss.js.map +1 -0
  38. package/es/components/add-select/add-select.scss.js +1 -1
  39. package/es/components/add-select/index.d.ts +4 -1
  40. package/es/components/add-select/index.d.ts.map +1 -1
  41. package/es/components/add-select/index.js +4 -1
  42. package/es/components/coachmark/coachmark-header.js +2 -2
  43. package/es/components/coachmark/coachmark-header.js.map +1 -1
  44. package/es/components/edit-in-place/edit-in-place.js +2 -2
  45. package/es/components/edit-in-place/edit-in-place.js.map +1 -1
  46. package/es/components/guide-banner/guide-banner.js +2 -2
  47. package/es/components/guide-banner/guide-banner.js.map +1 -1
  48. package/es/components/notification-panel/notification.js +2 -2
  49. package/es/components/notification-panel/notification.js.map +1 -1
  50. package/es/components/side-panel/side-panel.js +2 -2
  51. package/es/components/side-panel/side-panel.js.map +1 -1
  52. package/es/components/tearsheet/tearsheet.scss.js +1 -1
  53. package/es/ibm-products-utilities/src/utils/add-select/add-select-data.js.map +1 -1
  54. package/es/ibm-products-web-components/package.js +1 -1
  55. package/es-custom/components/add-select/add-select-body.js +95 -73
  56. package/es-custom/components/add-select/add-select-body.js.map +1 -1
  57. package/es-custom/components/add-select/add-select-body.scss.js +1 -1
  58. package/es-custom/components/add-select/add-select-body.scss.js.map +1 -1
  59. package/es-custom/components/add-select/add-select-column.js +217 -0
  60. package/es-custom/components/add-select/add-select-column.js.map +1 -0
  61. package/es-custom/components/add-select/add-select-column.scss.js +14 -0
  62. package/es-custom/components/add-select/add-select-column.scss.js.map +1 -0
  63. package/es-custom/components/add-select/add-select-item-panel.js +162 -0
  64. package/es-custom/components/add-select/add-select-item-panel.js.map +1 -0
  65. package/es-custom/components/add-select/add-select-item-panel.scss.js +14 -0
  66. package/es-custom/components/add-select/add-select-item-panel.scss.js.map +1 -0
  67. package/es-custom/components/add-select/add-select-row.js +143 -23
  68. package/es-custom/components/add-select/add-select-row.js.map +1 -1
  69. package/es-custom/components/add-select/add-select-row.scss.js +1 -1
  70. package/es-custom/components/add-select/add-select-row.scss.js.map +1 -1
  71. package/es-custom/components/add-select/add-select-selection-summary-item.js +279 -0
  72. package/es-custom/components/add-select/add-select-selection-summary-item.js.map +1 -0
  73. package/es-custom/components/add-select/add-select-selection-summary-item.scss.js +14 -0
  74. package/es-custom/components/add-select/add-select-selection-summary-item.scss.js.map +1 -0
  75. package/es-custom/components/add-select/add-select-selection-summary.js +118 -0
  76. package/es-custom/components/add-select/add-select-selection-summary.js.map +1 -0
  77. package/es-custom/components/add-select/add-select-selection-summary.scss.js +14 -0
  78. package/es-custom/components/add-select/add-select-selection-summary.scss.js.map +1 -0
  79. package/es-custom/components/add-select/add-select.scss.js +1 -1
  80. package/es-custom/components/add-select/index.js +4 -1
  81. package/es-custom/components/coachmark/coachmark-header.js +2 -2
  82. package/es-custom/components/coachmark/coachmark-header.js.map +1 -1
  83. package/es-custom/components/edit-in-place/edit-in-place.js +2 -2
  84. package/es-custom/components/edit-in-place/edit-in-place.js.map +1 -1
  85. package/es-custom/components/guide-banner/guide-banner.js +2 -2
  86. package/es-custom/components/guide-banner/guide-banner.js.map +1 -1
  87. package/es-custom/components/notification-panel/notification.js +2 -2
  88. package/es-custom/components/notification-panel/notification.js.map +1 -1
  89. package/es-custom/components/side-panel/side-panel.js +2 -2
  90. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  91. package/es-custom/components/tearsheet/tearsheet.scss.js +1 -1
  92. package/es-custom/ibm-products-utilities/src/utils/add-select/add-select-data.js.map +1 -1
  93. package/es-custom/ibm-products-web-components/package.js +1 -1
  94. package/lib/components/add-select/add-select-body.d.ts +15 -10
  95. package/lib/components/add-select/add-select-body.d.ts.map +1 -1
  96. package/lib/components/add-select/add-select-column.d.ts +83 -0
  97. package/lib/components/add-select/add-select-column.d.ts.map +1 -0
  98. package/lib/components/add-select/add-select-item-panel.d.ts +58 -0
  99. package/lib/components/add-select/add-select-item-panel.d.ts.map +1 -0
  100. package/lib/components/add-select/add-select-row.d.ts +42 -2
  101. package/lib/components/add-select/add-select-row.d.ts.map +1 -1
  102. package/lib/components/add-select/add-select-selection-summary-item.d.ts +64 -0
  103. package/lib/components/add-select/add-select-selection-summary-item.d.ts.map +1 -0
  104. package/lib/components/add-select/add-select-selection-summary.d.ts +48 -0
  105. package/lib/components/add-select/add-select-selection-summary.d.ts.map +1 -0
  106. package/lib/components/add-select/index.d.ts +4 -1
  107. package/lib/components/add-select/index.d.ts.map +1 -1
  108. package/package.json +7 -6
  109. package/scss/components/add-select/add-select-body.scss +36 -4
  110. package/scss/components/add-select/add-select-column.scss +81 -0
  111. package/scss/components/add-select/add-select-item-panel.scss +85 -0
  112. package/scss/components/add-select/add-select-row.scss +76 -9
  113. package/scss/components/add-select/add-select-selection-summary-item.scss +227 -0
  114. package/scss/components/add-select/add-select-selection-summary.scss +58 -0
  115. package/telemetry.yml +34 -5
  116. package/es/components/add-select/add-select-content.d.ts +0 -57
  117. package/es/components/add-select/add-select-content.d.ts.map +0 -1
  118. package/es/components/add-select/add-select-content.js +0 -188
  119. package/es/components/add-select/add-select-content.js.map +0 -1
  120. package/es/components/add-select/add-select-content.scss.js +0 -14
  121. package/es/components/add-select/add-select-content.scss.js.map +0 -1
  122. package/es-custom/components/add-select/add-select-content.js +0 -188
  123. package/es-custom/components/add-select/add-select-content.js.map +0 -1
  124. package/es-custom/components/add-select/add-select-content.scss.js +0 -14
  125. package/es-custom/components/add-select/add-select-content.scss.js.map +0 -1
  126. package/lib/components/add-select/add-select-content.d.ts +0 -57
  127. package/lib/components/add-select/add-select-content.d.ts.map +0 -1
  128. package/scss/components/add-select/add-select-content.scss +0 -42
@@ -22,7 +22,6 @@ $prefix: 'c4p';
22
22
  :host(#{$prefix}-add-select-body) {
23
23
  display: block;
24
24
 
25
- /* Apply shared styles within shadow DOM */
26
25
  .#{$block-class__next}__body {
27
26
  display: flex;
28
27
  flex-direction: column;
@@ -35,10 +34,31 @@ $prefix: 'c4p';
35
34
  border-block-end: 1px solid $border-subtle-01;
36
35
  }
37
36
 
38
- .#{$block-class__next}__search {
37
+ // When consumer provides a custom header via slot="header",
38
+ // hide the default search/sub-header content.
39
+ .#{$block-class__next}__header--custom {
40
+ .#{$block-class__next}__search,
41
+ .#{$block-class__next}__sub-header {
42
+ display: none;
43
+ }
44
+ }
45
+
46
+ // Search row: input + actions side by side (matches __search--with-actions)
47
+ .#{$block-class__next}__search--with-actions {
48
+ display: flex;
49
+ align-items: flex-end;
39
50
  margin-block-end: $spacing-05;
40
51
  }
41
52
 
53
+ .#{$block-class__next}__search-input {
54
+ flex: 1;
55
+ }
56
+
57
+ .#{$block-class__next}__global-actions {
58
+ display: flex;
59
+ align-items: flex-end;
60
+ }
61
+
42
62
  .#{$block-class__next}__sub-header {
43
63
  display: flex;
44
64
  align-items: center;
@@ -52,14 +72,26 @@ $prefix: 'c4p';
52
72
  }
53
73
 
54
74
  .#{$block-class__next}__tags-label {
55
- @include type.type-style('body-compact-01');
75
+ @include type.type-style('heading-compact-02');
56
76
 
57
77
  margin: 0;
58
- color: $text-secondary;
78
+ color: $text-primary;
79
+ }
80
+
81
+ .#{$block-class__next}__sub-header-actions {
82
+ display: flex;
83
+ align-items: center;
84
+ gap: $spacing-03;
85
+ margin-inline-start: $spacing-05;
59
86
  }
60
87
 
61
88
  .#{$block-class__next}__content {
62
89
  overflow: auto;
63
90
  flex: 1;
64
91
  }
92
+
93
+ .#{$block-class__next}-list-body {
94
+ display: flex;
95
+ flex-direction: column;
96
+ }
65
97
  }
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ $css--plex: true !default;
9
+
10
+ @use '@carbon/styles/scss/theme' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/type';
13
+
14
+ $prefix: 'c4p';
15
+
16
+ @use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'
17
+ as *;
18
+
19
+ :host(#{$prefix}-add-select-column) {
20
+ display: block;
21
+
22
+ .#{$block-class__next}-column {
23
+ display: flex;
24
+ flex-direction: column;
25
+ padding: $spacing-05;
26
+ }
27
+
28
+ .#{$block-class__next}-column__search {
29
+ padding: 0;
30
+
31
+ &--with-actions {
32
+ display: flex;
33
+ align-items: flex-end;
34
+ }
35
+ }
36
+
37
+ .#{$block-class__next}-column__search-input {
38
+ flex: 1;
39
+ }
40
+
41
+ .#{$block-class__next}-column__actions {
42
+ display: flex;
43
+ align-items: flex-end;
44
+ }
45
+
46
+ .#{$block-class__next}-column__header {
47
+ display: flex;
48
+ align-items: center;
49
+ padding: $spacing-05;
50
+ border-block-end: 1px solid $border-subtle-01;
51
+ }
52
+
53
+ .#{$block-class__next}-column__title-wrapper {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: $spacing-03;
57
+ }
58
+
59
+ .#{$block-class__next}-column__title {
60
+ @include type.type-style('heading-compact-01');
61
+
62
+ margin-inline-end: $spacing-03;
63
+ }
64
+
65
+ // Select all: align slotted title + tag inside the checkbox label
66
+ .#{$block-class__next}-column__select-all {
67
+ &::part(label) {
68
+ display: flex;
69
+ align-items: center;
70
+ gap: $spacing-03;
71
+ }
72
+ }
73
+
74
+ .#{$block-class__next}-column__rows {
75
+ overflow: auto;
76
+ flex: 1;
77
+ @supports (overflow-block: auto) {
78
+ overflow-block: auto;
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ $css--plex: true !default;
9
+
10
+ @use '@carbon/styles/scss/theme' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/type';
13
+ @use '@carbon/styles/scss/motion' as *;
14
+
15
+ $prefix: 'c4p';
16
+
17
+ @use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'
18
+ as *;
19
+
20
+ :host(#{$prefix}-add-select-item-panel) {
21
+ display: block;
22
+
23
+ .#{$block-class__next}__item-summary-panel {
24
+ display: flex;
25
+ flex-direction: column;
26
+ padding: 0;
27
+ block-size: 100%;
28
+ transform: translateX(100%);
29
+ transition: transform $duration-moderate-01 motion(standard, productive);
30
+ }
31
+
32
+ .#{$block-class__next}__item-summary-panel--open {
33
+ transform: translateX(0);
34
+ }
35
+
36
+ .#{$block-class__next}__item-summary-panel-header {
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: space-between;
40
+ padding: $spacing-07 $spacing-05 $spacing-03;
41
+ border-block-end: 1px solid $border-subtle-01;
42
+ margin-block-end: 0;
43
+ }
44
+
45
+ .#{$block-class__next}__item-summary-panel-title {
46
+ @include type.type-style('heading-compact-01');
47
+
48
+ flex: 1;
49
+ margin: 0;
50
+ color: $text-primary;
51
+ }
52
+
53
+ .#{$block-class__next}__item-summary-panel-body {
54
+ overflow: auto;
55
+ flex: 1;
56
+ padding: $spacing-05;
57
+ @supports (overflow-block: auto) {
58
+ overflow-block: auto;
59
+ }
60
+ }
61
+
62
+ .#{$block-class__next}__item-summary-panel-entry {
63
+ margin-block-end: $spacing-04;
64
+ }
65
+
66
+ .#{$block-class__next}__item-summary-panel-entry-title {
67
+ @include type.type-style('label-01');
68
+
69
+ margin: 0;
70
+ color: $text-secondary;
71
+ }
72
+
73
+ .#{$block-class__next}__item-summary-panel-entry-body {
74
+ @include type.type-style('body-compact-01');
75
+
76
+ margin: 0;
77
+ color: $text-primary;
78
+ }
79
+
80
+ @media screen and (prefers-reduced-motion: reduce) {
81
+ .#{$block-class__next}__item-summary-panel {
82
+ transition: none;
83
+ }
84
+ }
85
+ }
@@ -19,6 +19,13 @@ $prefix: 'c4p';
19
19
  @use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'
20
20
  as *;
21
21
 
22
+ /* Item panel open — blue left border, mirrors React's -row-item-panel--selected */
23
+ :host(#{$prefix}-add-select-row[item-panel-open]) {
24
+ .#{$block-class__next}-row {
25
+ border-inline-start-color: $interactive;
26
+ }
27
+ }
28
+
22
29
  /* Web Component specific overrides */
23
30
  :host(#{$prefix}-add-select-row) {
24
31
  display: block;
@@ -42,7 +49,9 @@ $prefix: 'c4p';
42
49
  &--selected {
43
50
  background-color: $layer-selected-01;
44
51
  }
52
+ }
45
53
 
54
+ .#{$block-class__next}-row {
46
55
  &--disabled {
47
56
  cursor: not-allowed;
48
57
  opacity: 0.5;
@@ -52,11 +61,26 @@ $prefix: 'c4p';
52
61
  background: $layer-hover-01;
53
62
 
54
63
  .#{$block-class__next}-row__title {
55
- color: $interactive;
64
+ color: $link-primary;
65
+ }
66
+
67
+ .#{$block-class__next}-row__view-item-panel svg,
68
+ .#{$block-class__next}-row__nav-indicator svg {
69
+ fill: $icon-disabled;
70
+ }
71
+ }
72
+
73
+ // Must come after &:hover to win the specificity tie
74
+ &--selected:hover:not(&--disabled) {
75
+ background: $layer-selected-hover-01;
76
+
77
+ .#{$block-class__next}-row__title {
78
+ color: $text-primary;
56
79
  }
57
80
 
81
+ .#{$block-class__next}-row__view-item-panel svg,
58
82
  .#{$block-class__next}-row__nav-indicator svg {
59
- color: $interactive;
83
+ fill: $icon-primary;
60
84
  }
61
85
  }
62
86
  }
@@ -70,11 +94,14 @@ $prefix: 'c4p';
70
94
 
71
95
  .#{$block-class__next}-row__cell-wrapper {
72
96
  display: flex;
97
+ /* Shadow DOM doesn't inherit Carbon's global border-box reset */
98
+ box-sizing: border-box;
73
99
  align-items: center;
74
100
  justify-content: space-between;
75
- padding: 0 $spacing-05;
76
- block-size: 3rem;
77
101
  border-block-end: 1px solid $layer-accent-01;
102
+ min-block-size: $spacing-09;
103
+ padding-block: $spacing-03;
104
+ padding-inline: $spacing-05;
78
105
  }
79
106
 
80
107
  .#{$block-class__next}-row__content {
@@ -115,23 +142,27 @@ $prefix: 'c4p';
115
142
  margin-inline-start: $spacing-03;
116
143
  }
117
144
 
145
+ .#{$block-class__next}-row__view-item-panel {
146
+ margin-inline-start: auto;
147
+ }
148
+
118
149
  .#{$block-class__next}-row__nav-indicator {
119
150
  display: flex;
120
151
  align-items: center;
121
152
  justify-content: center;
122
- padding: $spacing-02;
123
- border-radius: 4px;
124
153
  cursor: pointer;
125
154
  margin-inline-start: $spacing-03;
155
+ padding-block: $spacing-02;
156
+ padding-inline: $spacing-02;
126
157
  transition: background-color $duration-fast-01 motion(standard, productive);
127
158
 
128
159
  &:hover {
129
- background-color: $layer-hover-01;
160
+ background-color: $background-hover;
130
161
  }
131
162
 
132
163
  &:focus {
133
- outline: 2px solid $focus;
134
- outline-offset: -2px;
164
+ outline: $spacing-01 solid $focus;
165
+ outline-offset: calc(-1 * $spacing-01);
135
166
  }
136
167
 
137
168
  svg {
@@ -139,6 +170,42 @@ $prefix: 'c4p';
139
170
  }
140
171
  }
141
172
 
173
+ // Skeleton state
174
+ .#{$block-class__next}-row--skeleton {
175
+ cursor: default;
176
+ pointer-events: none;
177
+
178
+ &:hover {
179
+ background: none;
180
+ }
181
+
182
+ .#{$block-class__next}-row__skeleton-control {
183
+ flex: none;
184
+ border-radius: $spacing-01;
185
+ background-color: $skeleton-element;
186
+ block-size: $spacing-05;
187
+ inline-size: $spacing-05;
188
+ margin-inline-end: $spacing-05;
189
+ }
190
+
191
+ // Override cds-skeleton-icon host size to match the circular icon placeholder
192
+ .#{$block-class__next}-row__icon cds-skeleton-icon {
193
+ border-radius: 50%;
194
+ block-size: $spacing-07;
195
+ inline-size: $spacing-07;
196
+
197
+ &::before {
198
+ border-radius: 50%;
199
+ animation: none;
200
+ }
201
+ }
202
+
203
+ .#{$block-class__next}-row__skeleton-title {
204
+ margin-block-end: 0;
205
+ margin-block-start: $spacing-03;
206
+ }
207
+ }
208
+
142
209
  @media screen and (prefers-reduced-motion: reduce) {
143
210
  .#{$block-class__next}-row {
144
211
  transition: none;
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ $css--plex: true !default;
9
+
10
+ @use '@carbon/styles/scss/theme' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/type';
13
+ @use '@carbon/styles/scss/motion' as *;
14
+
15
+ $prefix: 'c4p';
16
+
17
+ @use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'
18
+ as *;
19
+
20
+ :host(#{$prefix}-add-select-selection-summary-item) {
21
+ display: block;
22
+
23
+ // ── Wrapper ─────────────────────────────────────────────────────────────────
24
+ .#{$block-class__next}__selection-summary-item {
25
+ position: relative;
26
+ background-color: $layer-01;
27
+ border-block-end: 1px solid $border-subtle-01;
28
+
29
+ &:hover {
30
+ background-color: $layer-hover-01;
31
+ }
32
+ }
33
+
34
+ // ── Accordion variant (custom — avoids shadow-boundary slot problems) ─────────
35
+
36
+ .#{$block-class__next}__selection-summary-item-accordion {
37
+ // No extra borders — wrapper owns the border-block-end
38
+ }
39
+
40
+ .#{$block-class__next}__selection-summary-item-accordion-heading {
41
+ position: relative; // anchor for absolutely-positioned remove button
42
+ display: flex;
43
+ align-items: center;
44
+ appearance: none;
45
+ border: none; // stylelint-disable-line order/properties-order
46
+ background: none;
47
+ color: $text-primary;
48
+ cursor: pointer;
49
+ inline-size: 100%;
50
+ // Figma: py-[10px] px-[16px]
51
+ padding-block: $spacing-04;
52
+ padding-inline: $spacing-05;
53
+
54
+ &:hover {
55
+ background-color: $layer-hover-01;
56
+ }
57
+
58
+ &:focus {
59
+ outline: 2px solid $focus;
60
+ outline-offset: -2px;
61
+ }
62
+
63
+ &:focus:not(:focus-visible) {
64
+ outline: none;
65
+ }
66
+ }
67
+
68
+ .#{$block-class__next}__selection-summary-item-accordion-arrow {
69
+ display: flex;
70
+ flex-shrink: 0;
71
+ align-items: center;
72
+ margin-inline-end: $spacing-03; // 8px gap to title (= 16px total from edge)
73
+ margin-inline-start: 0;
74
+ transform: rotate(90deg); // collapsed: chevron points down ∨
75
+ transition: transform $duration-fast-01 motion(standard, productive);
76
+
77
+ @media screen and (prefers-reduced-motion: reduce) {
78
+ transition: none;
79
+ }
80
+
81
+ svg {
82
+ fill: $icon-primary;
83
+ }
84
+
85
+ &--open {
86
+ transform: rotate(-90deg); // expanded: chevron points up ∧
87
+ }
88
+ }
89
+
90
+ .#{$block-class__next}__selection-summary-item-accordion-title {
91
+ @include type.type-style('body-compact-01');
92
+
93
+ display: block; // <span> inside <button> needs explicit block to honour flex layout
94
+ flex: 1;
95
+ padding-inline-end: $spacing-07; // Reserve 32px — prevents overlap with remove button
96
+ text-align: start;
97
+
98
+ // When wrapping slotted content, act as a flex container so the
99
+ // slot children (e.g. UserAvatar + text group) lay out correctly
100
+ &--slot {
101
+ display: flex;
102
+ align-items: flex-start;
103
+ }
104
+ }
105
+
106
+ .#{$block-class__next}__selection-summary-item-accordion-body {
107
+ // Figma: p-[16px] on all sides for expanded content
108
+ padding-block: $spacing-05;
109
+ padding-inline: $spacing-05;
110
+ }
111
+
112
+ // ── Non-accordion (default) variant ─────────────────────────────────────────
113
+ .#{$block-class__next}__selection-summary-item--default {
114
+ .#{$block-class__next}__selection-summary-item-title-wrapper {
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: space-between;
118
+ padding-block: $spacing-04; // 10px
119
+ padding-inline: $spacing-05; // 16px
120
+ }
121
+
122
+ .#{$block-class__next}__selection-summary-item-content {
123
+ padding-block-end: $spacing-04;
124
+ padding-inline: $spacing-05;
125
+ }
126
+
127
+ .#{$block-class__next}__selection-summary-item-title {
128
+ @include type.type-style('heading-compact-01');
129
+ }
130
+ }
131
+
132
+ // ── Shared item sub-elements ─────────────────────────────────────────────────
133
+ .#{$block-class__next}__selection-summary-item-title-wrapper {
134
+ display: flex;
135
+ align-items: center;
136
+ justify-content: space-between;
137
+ }
138
+
139
+ .#{$block-class__next}__selection-summary-item-selected-item {
140
+ display: flex;
141
+ flex: 1;
142
+ flex-direction: column;
143
+ }
144
+
145
+ .#{$block-class__next}__selection-summary-item-title {
146
+ @include type.type-style('body-compact-01');
147
+
148
+ margin: 0;
149
+ color: $text-primary;
150
+ }
151
+
152
+ .#{$block-class__next}__selection-summary-item-subtitle {
153
+ @include type.type-style('body-01');
154
+
155
+ margin: 0;
156
+ color: $text-secondary;
157
+ }
158
+
159
+ .#{$block-class__next}__selection-summary-item-content {
160
+ margin-block-start: 0;
161
+ }
162
+
163
+ .#{$block-class__next}__selection-summary-item-entry {
164
+ margin-block-end: $spacing-05;
165
+ }
166
+
167
+ .#{$block-class__next}__selection-summary-item-header {
168
+ @include type.type-style('label-01');
169
+
170
+ margin: 0;
171
+ color: $text-secondary;
172
+ margin-block-end: $spacing-03;
173
+ }
174
+
175
+ .#{$block-class__next}__selection-summary-item-body {
176
+ @include type.type-style('body-01');
177
+
178
+ margin: 0;
179
+ margin-block-end: $spacing-05;
180
+ }
181
+
182
+ // ── Remove button ────────────────────────────────────────────────────────────
183
+
184
+ // render-item wrapper — `position:relative` anchors the absolute remove button;
185
+ // no flex so the slot content's own layout owns the full row width.
186
+ .#{$block-class__next}__selection-summary-item-render-item-wrapper {
187
+ position: relative;
188
+ }
189
+
190
+ // Default (non-accordion) — inline at the right of the title row.
191
+ .#{$block-class__next}__selection-summary-item-remove-button-container {
192
+ display: inline-flex;
193
+ align-items: center;
194
+ justify-content: center;
195
+ padding-inline-start: $spacing-03; // 8px gap before the 32px button
196
+ }
197
+
198
+ // Accordion heading and render-item — absolutely positioned, vertically centred.
199
+ // Both parents have `position: relative`.
200
+ .#{$block-class__next}__selection-summary-item-accordion-heading
201
+ .#{$block-class__next}__selection-summary-item-remove-button-container,
202
+ .#{$block-class__next}__selection-summary-item-render-item-wrapper
203
+ .#{$block-class__next}__selection-summary-item-remove-button-container {
204
+ position: absolute;
205
+ inset-block-start: 50%;
206
+ inset-inline-end: $spacing-05; // 16px from inline-end
207
+ padding-inline-start: 0;
208
+ transform: translateY(-50%);
209
+ }
210
+
211
+ // Remove button is hidden until hover/focus
212
+ .#{$block-class__next}__selection-summary-item-remove-button {
213
+ opacity: 0;
214
+ transition: opacity $duration-fast-01 motion(standard, productive);
215
+
216
+ @media screen and (prefers-reduced-motion: reduce) {
217
+ transition: none;
218
+ }
219
+ }
220
+
221
+ .#{$block-class__next}__selection-summary-item:hover
222
+ .#{$block-class__next}__selection-summary-item-remove-button,
223
+ .#{$block-class__next}__selection-summary-item:focus-within
224
+ .#{$block-class__next}__selection-summary-item-remove-button {
225
+ opacity: 1;
226
+ }
227
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ $css--plex: true !default;
9
+
10
+ @use '@carbon/styles/scss/theme' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/type';
13
+
14
+ $prefix: 'c4p';
15
+
16
+ @use '@carbon/ibm-products-styles/scss/components/AddSelect/add-select_next'
17
+ as *;
18
+
19
+ :host(#{$prefix}-add-select-selection-summary) {
20
+ display: block;
21
+
22
+ .#{$block-class__next}__selection-summary {
23
+ display: flex;
24
+ flex-direction: column;
25
+ block-size: 100%;
26
+ }
27
+
28
+ .#{$block-class__next}__selection-summary-header {
29
+ display: flex;
30
+ align-items: center;
31
+ padding: $spacing-04 $spacing-05;
32
+ border-block-end: 1px solid $border-subtle-01;
33
+ gap: $spacing-03;
34
+ }
35
+
36
+ .#{$block-class__next}__selection-summary-title {
37
+ @include type.type-style('heading-compact-01');
38
+
39
+ margin: 0;
40
+ color: $text-primary;
41
+ margin-inline-end: $spacing-03;
42
+ }
43
+
44
+ .#{$block-class__next}__selection-summary-header-actions {
45
+ display: flex;
46
+ align-items: center;
47
+ gap: $spacing-02;
48
+ margin-inline-start: auto;
49
+ }
50
+
51
+ .#{$block-class__next}__selection-summary-body {
52
+ overflow: auto;
53
+ flex: 1;
54
+ @supports (overflow-block: auto) {
55
+ overflow-block: auto;
56
+ }
57
+ }
58
+ }