@carbon/web-components 2.51.1 → 2.52.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 (120) hide show
  1. package/custom-elements.json +552 -0
  2. package/es/components/accordion/accordion.scss.js +1 -1
  3. package/es/components/accordion/accordion.scss.js.map +1 -1
  4. package/es/components/checkbox/checkbox.js +8 -2
  5. package/es/components/checkbox/checkbox.js.map +1 -1
  6. package/es/components/combo-box/combo-box.d.ts.map +1 -1
  7. package/es/components/combo-box/combo-box.js +2 -6
  8. package/es/components/combo-box/combo-box.js.map +1 -1
  9. package/es/components/contained-list/contained-list-item.d.ts +1 -1
  10. package/es/components/contained-list/contained-list-item.d.ts.map +1 -1
  11. package/es/components/contained-list/contained-list-item.js +3 -11
  12. package/es/components/contained-list/contained-list-item.js.map +1 -1
  13. package/es/components/contained-list/contained-list.scss.js +1 -1
  14. package/es/components/contained-list/contained-list.scss.js.map +1 -1
  15. package/es/components/dropdown/dropdown.d.ts +4 -0
  16. package/es/components/dropdown/dropdown.d.ts.map +1 -1
  17. package/es/components/dropdown/dropdown.js +3 -0
  18. package/es/components/dropdown/dropdown.js.map +1 -1
  19. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts +18 -0
  20. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts.map +1 -0
  21. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js +47 -0
  22. package/es/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -0
  23. package/es/components/fluid-dropdown/fluid-dropdown.d.ts +21 -0
  24. package/es/components/fluid-dropdown/fluid-dropdown.d.ts.map +1 -0
  25. package/es/components/fluid-dropdown/fluid-dropdown.js +58 -0
  26. package/es/components/fluid-dropdown/fluid-dropdown.js.map +1 -0
  27. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +15 -0
  28. package/es/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -0
  29. package/es/components/fluid-dropdown/index.d.ts +9 -0
  30. package/es/components/fluid-dropdown/index.d.ts.map +1 -0
  31. package/es/components/fluid-dropdown/index.js +9 -0
  32. package/es/components/layout/index.d.ts +10 -0
  33. package/es/components/layout/index.d.ts.map +1 -0
  34. package/es/components/layout/index.js +11 -0
  35. package/es/components/layout/layout-constraint.d.ts +24 -0
  36. package/es/components/layout/layout-constraint.d.ts.map +1 -0
  37. package/es/components/layout/layout-constraint.js +52 -0
  38. package/es/components/layout/layout-constraint.js.map +1 -0
  39. package/es/components/layout/layout.d.ts +34 -0
  40. package/es/components/layout/layout.d.ts.map +1 -0
  41. package/es/components/layout/layout.js +53 -0
  42. package/es/components/layout/layout.js.map +1 -0
  43. package/es/components/layout/layout.scss.js +15 -0
  44. package/es/components/layout/layout.scss.js.map +1 -0
  45. package/es/components/list/list.scss.js +1 -1
  46. package/es/index.d.ts +2 -0
  47. package/es/index.d.ts.map +1 -1
  48. package/es/index.js +3 -1
  49. package/es-custom/components/accordion/accordion.scss.js +1 -1
  50. package/es-custom/components/accordion/accordion.scss.js.map +1 -1
  51. package/es-custom/components/checkbox/checkbox.js +8 -2
  52. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  53. package/es-custom/components/combo-box/combo-box.d.ts.map +1 -1
  54. package/es-custom/components/combo-box/combo-box.js +2 -6
  55. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  56. package/es-custom/components/contained-list/contained-list-item.d.ts +1 -1
  57. package/es-custom/components/contained-list/contained-list-item.d.ts.map +1 -1
  58. package/es-custom/components/contained-list/contained-list-item.js +3 -11
  59. package/es-custom/components/contained-list/contained-list-item.js.map +1 -1
  60. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  61. package/es-custom/components/contained-list/contained-list.scss.js.map +1 -1
  62. package/es-custom/components/dropdown/dropdown.d.ts +4 -0
  63. package/es-custom/components/dropdown/dropdown.d.ts.map +1 -1
  64. package/es-custom/components/dropdown/dropdown.js +3 -0
  65. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  66. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts +18 -0
  67. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts.map +1 -0
  68. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js +47 -0
  69. package/es-custom/components/fluid-dropdown/fluid-dropdown-skeleton.js.map +1 -0
  70. package/es-custom/components/fluid-dropdown/fluid-dropdown.d.ts +21 -0
  71. package/es-custom/components/fluid-dropdown/fluid-dropdown.d.ts.map +1 -0
  72. package/es-custom/components/fluid-dropdown/fluid-dropdown.js +58 -0
  73. package/es-custom/components/fluid-dropdown/fluid-dropdown.js.map +1 -0
  74. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +15 -0
  75. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js.map +1 -0
  76. package/es-custom/components/fluid-dropdown/index.d.ts +9 -0
  77. package/es-custom/components/fluid-dropdown/index.d.ts.map +1 -0
  78. package/es-custom/components/fluid-dropdown/index.js +9 -0
  79. package/es-custom/components/layout/index.d.ts +10 -0
  80. package/es-custom/components/layout/index.d.ts.map +1 -0
  81. package/es-custom/components/layout/index.js +11 -0
  82. package/es-custom/components/layout/layout-constraint.d.ts +24 -0
  83. package/es-custom/components/layout/layout-constraint.d.ts.map +1 -0
  84. package/es-custom/components/layout/layout-constraint.js +52 -0
  85. package/es-custom/components/layout/layout-constraint.js.map +1 -0
  86. package/es-custom/components/layout/layout.d.ts +34 -0
  87. package/es-custom/components/layout/layout.d.ts.map +1 -0
  88. package/es-custom/components/layout/layout.js +53 -0
  89. package/es-custom/components/layout/layout.js.map +1 -0
  90. package/es-custom/components/layout/layout.scss.js +15 -0
  91. package/es-custom/components/layout/layout.scss.js.map +1 -0
  92. package/es-custom/components/list/list.scss.js +1 -1
  93. package/es-custom/index.d.ts +2 -0
  94. package/es-custom/index.d.ts.map +1 -1
  95. package/es-custom/index.js +3 -1
  96. package/lib/components/combo-box/combo-box.d.ts.map +1 -1
  97. package/lib/components/contained-list/contained-list-item.d.ts +1 -1
  98. package/lib/components/contained-list/contained-list-item.d.ts.map +1 -1
  99. package/lib/components/dropdown/dropdown.d.ts +4 -0
  100. package/lib/components/dropdown/dropdown.d.ts.map +1 -1
  101. package/lib/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts +18 -0
  102. package/lib/components/fluid-dropdown/fluid-dropdown-skeleton.d.ts.map +1 -0
  103. package/lib/components/fluid-dropdown/fluid-dropdown.d.ts +21 -0
  104. package/lib/components/fluid-dropdown/fluid-dropdown.d.ts.map +1 -0
  105. package/lib/components/fluid-dropdown/index.d.ts +9 -0
  106. package/lib/components/fluid-dropdown/index.d.ts.map +1 -0
  107. package/lib/components/layout/index.d.ts +10 -0
  108. package/lib/components/layout/index.d.ts.map +1 -0
  109. package/lib/components/layout/layout-constraint.d.ts +24 -0
  110. package/lib/components/layout/layout-constraint.d.ts.map +1 -0
  111. package/lib/components/layout/layout.d.ts +34 -0
  112. package/lib/components/layout/layout.d.ts.map +1 -0
  113. package/lib/index.d.ts +2 -0
  114. package/lib/index.d.ts.map +1 -1
  115. package/package.json +6 -6
  116. package/scss/components/accordion/accordion.scss +25 -0
  117. package/scss/components/contained-list/contained-list.scss +13 -1
  118. package/scss/components/fluid-dropdown/fluid-dropdown.scss +234 -0
  119. package/scss/components/layout/layout.scss +21 -0
  120. package/telemetry.yml +32 -0
@@ -0,0 +1,234 @@
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
+ @use '@carbon/styles/scss/config' as *;
10
+ @use '@carbon/styles/scss/components/fluid-dropdown/index';
11
+ @use '@carbon/styles/scss/components/dropdown' as *;
12
+ @use '@carbon/styles/scss/components/list-box' as *;
13
+ @use '@carbon/styles/scss/layout' as *;
14
+ @use '@carbon/styles/scss/spacing' as *;
15
+ @use '@carbon/styles/scss/theme' as *;
16
+ @use '@carbon/styles/scss/type' as *;
17
+ @use '@carbon/styles/scss/utilities/skeleton' as *;
18
+ @use '@carbon/styles/scss/utilities' as *;
19
+ @use '@carbon/styles/scss/colors';
20
+ @use '@carbon/styles/scss/utilities/convert' as *;
21
+
22
+ :host(#{$prefix}-fluid-dropdown) {
23
+ @extend .#{$prefix}--list-box__wrapper;
24
+ @extend .#{$prefix}--list-box__wrapper--fluid;
25
+
26
+ @include emit-layout-tokens();
27
+
28
+ outline: none;
29
+
30
+ .#{$prefix}--list-box {
31
+ box-sizing: border-box;
32
+ }
33
+
34
+ .#{$prefix}--list-box--expanded {
35
+ border-block-end-color: $border-subtle;
36
+ }
37
+
38
+ .#{$prefix}--assistive-text {
39
+ inset-block-start: -100%;
40
+ // Hides screen reader cursor
41
+ inset-inline-start: -100%;
42
+ }
43
+
44
+ .#{$prefix}--label[hidden] {
45
+ display: none;
46
+ }
47
+
48
+ .#{$prefix}--list-box__menu {
49
+ inset-block-start: 100%;
50
+ margin-block-start: 1px;
51
+ outline: none;
52
+ }
53
+
54
+ .#{$prefix}--list-box--disabled {
55
+ border-block-end-color: transparent;
56
+ pointer-events: none;
57
+ }
58
+
59
+ // Parity styles for non-condensed menu items
60
+ .#{$prefix}--list-box__menu-item__selected-icon {
61
+ inset-block-start: to-rem(20px);
62
+ }
63
+
64
+ .#{$prefix}--list-box__divider {
65
+ display: block;
66
+ border: none;
67
+ margin: 0 1rem;
68
+ border-block-end: 1px solid $border-subtle;
69
+ }
70
+ }
71
+
72
+ // Target dropdown items inside fluid dropdown for non-condensed height
73
+ :host(#{$prefix}-fluid-dropdown:not([is-condensed])) {
74
+ ::slotted(#{$prefix}-dropdown-item) {
75
+ block-size: $spacing-10;
76
+ }
77
+ }
78
+
79
+ :host(#{$prefix}-fluid-dropdown[invalid]) {
80
+ @extend .#{$prefix}--list-box__wrapper--fluid--invalid;
81
+ @include focus-outline('invalid');
82
+
83
+ outline-offset: 0;
84
+ }
85
+
86
+ // Direction top
87
+ :host(#{$prefix}-fluid-dropdown[direction='top']) {
88
+ @extend .#{$prefix}--list-box--up;
89
+
90
+ .#{$prefix}--list-box__menu {
91
+ inset-block-start: auto;
92
+ }
93
+ }
94
+
95
+ // AI Label styles
96
+ :host(#{$prefix}-fluid-dropdown[ai-label]) {
97
+ @extend .#{$prefix}--list-box__wrapper--slug;
98
+
99
+ ::slotted(#{$prefix}-ai-label),
100
+ ::slotted(#{$prefix}-slug) {
101
+ position: absolute;
102
+ inset-block-start: 70%;
103
+ inset-inline-end: $spacing-09;
104
+ }
105
+
106
+ ::slotted(#{$prefix}-ai-label:not([revert-active])),
107
+ ::slotted(#{$prefix}-slug:not([revert-active])) {
108
+ transform: translateY(-70%);
109
+ }
110
+
111
+ .#{$prefix}--list-box__wrapper--decorator {
112
+ @include ai-gradient;
113
+ }
114
+ }
115
+
116
+ // AI label dividers - always present
117
+ :host(#{$prefix}-fluid-dropdown[ai-label]) ::slotted(#{$prefix}-ai-label) {
118
+ &::after {
119
+ position: absolute;
120
+ background-color: $border-subtle-01;
121
+ block-size: to-rem(16px);
122
+ content: '';
123
+ inline-size: to-rem(1px);
124
+ inset-inline-start: calc(#{$spacing-06} - to-rem(1px));
125
+ }
126
+ }
127
+
128
+ :host(#{$prefix}-fluid-dropdown[ai-label][read-only]),
129
+ :host(#{$prefix}-fluid-dropdown[ai-label][disabled]) {
130
+ .#{$prefix}--list-box {
131
+ border-block-end-color: $ai-border-strong;
132
+ }
133
+
134
+ .#{$prefix}--list-box__field {
135
+ border-block-end: 1px solid $ai-border-strong;
136
+ }
137
+
138
+ ::slotted(#{$prefix}-ai-label)::before {
139
+ display: none;
140
+ }
141
+ }
142
+
143
+ // Condensed styles
144
+ :host(#{$prefix}-fluid-dropdown[is-condensed]) {
145
+ @extend .#{$prefix}--list-box__wrapper--fluid--condensed;
146
+
147
+ .#{$prefix}--list-box__menu-item__selected-icon {
148
+ inset-block-start: auto;
149
+ }
150
+
151
+ // Reset menu item height for condensed mode
152
+ ::slotted(#{$prefix}-dropdown-item) {
153
+ block-size: auto;
154
+ }
155
+ }
156
+
157
+ // Disabled state
158
+ :host(#{$prefix}-fluid-dropdown[disabled]) {
159
+ cursor: not-allowed;
160
+
161
+ svg {
162
+ fill: $icon-disabled;
163
+ }
164
+
165
+ .#{$prefix}--list-box__field,
166
+ .#{$prefix}--list-box__selection {
167
+ pointer-events: none;
168
+ }
169
+
170
+ .#{$prefix}--list-box__field:focus,
171
+ .#{$prefix}--list-box__selection:focus {
172
+ outline: none;
173
+ }
174
+
175
+ .#{$prefix}--label {
176
+ color: $text-disabled;
177
+ cursor: not-allowed;
178
+ }
179
+ }
180
+
181
+ :host(#{$prefix}-fluid-dropdown[read-only]) {
182
+ @extend .#{$prefix}--dropdown--readonly;
183
+
184
+ .#{$prefix}--dropdown {
185
+ border-block-end-color: $border-subtle;
186
+ }
187
+ .#{$prefix}--label {
188
+ color: inherit;
189
+ }
190
+ .#{$prefix}--list-box__field,
191
+ .#{$prefix}--list-box__selection {
192
+ pointer-events: none;
193
+ }
194
+ }
195
+
196
+ :host(#{$prefix}-fluid-dropdown[invalid]:not([disabled]):not([read-only])),
197
+ :host(#{$prefix}-fluid-dropdown[warn]:not([disabled]):not([read-only])) {
198
+ .#{$prefix}--form__helper-text {
199
+ padding: to-rem(8px) 4rem to-rem(8px) $spacing-05;
200
+ inline-size: auto;
201
+ margin-block-start: 0;
202
+ }
203
+
204
+ .#{$prefix}--list-box {
205
+ border-block-end: 1px solid transparent;
206
+ }
207
+
208
+ .#{$prefix}--list-box.#{$prefix}--list-box--warning
209
+ .#{$prefix}--list-box__invalid-icon,
210
+ .#{$prefix}--list-box__invalid-icon--warning {
211
+ inset-block-start: to-rem(81px);
212
+ inset-inline-end: $spacing-05;
213
+ pointer-events: none;
214
+ }
215
+ }
216
+
217
+ :host(#{$prefix}-fluid-dropdown[warn]:not([disabled]):not([read-only])) {
218
+ .#{$prefix}--form__helper-text {
219
+ color: $text-primary;
220
+ }
221
+ }
222
+
223
+ :host(#{$prefix}-fluid-dropdown[invalid]:not([disabled]):not([read-only])) {
224
+ .#{$prefix}--form__helper-text {
225
+ color: $text-error;
226
+ }
227
+ }
228
+
229
+ // Skeleton
230
+ :host(#{$prefix}-fluid-dropdown-skeleton) {
231
+ @extend .#{$prefix}--list-box__wrapper--fluid;
232
+
233
+ display: block;
234
+ }
@@ -0,0 +1,21 @@
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/config' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/utilities/convert' as *;
13
+ @use '@carbon/styles/scss/layout' as *;
14
+
15
+ :host(#{$prefix}-layout) {
16
+ @include emit-layout-tokens();
17
+
18
+ display: contents;
19
+ }
20
+
21
+ @include emit-layout-tokens-to-shadow-host('#{$prefix}-layout');
package/telemetry.yml CHANGED
@@ -322,6 +322,8 @@ collect:
322
322
  - error-subject
323
323
  - oncds-file-uploader-item-beingdeleted
324
324
  - oncds-file-uploader-item-deleted
325
+ # cds-fluid-dropdown
326
+ - is-condensed
325
327
  # cds-fluid-time-picker-skeleton
326
328
  - is-only-two
327
329
  # cds-form-group
@@ -349,6 +351,12 @@ collect:
349
351
  - level
350
352
  - oncds-use-layer
351
353
  - with-background
354
+ # cds-layout
355
+ - density
356
+ # cds-layout-constraint
357
+ - size-default
358
+ - size-max
359
+ - size-min
352
360
  # cds-loading
353
361
  - inactive
354
362
  - overlay
@@ -785,6 +793,30 @@ collect:
785
793
  - primary
786
794
  - secondary
787
795
  - tertiary
796
+ # cds-layout - density
797
+ - condensed
798
+ - normal
799
+ # cds-layout-constraint - size-default
800
+ - 2xl
801
+ - lg
802
+ - md
803
+ - sm
804
+ - xl
805
+ - xs
806
+ # cds-layout-constraint - size-max
807
+ - 2xl
808
+ - lg
809
+ - md
810
+ - sm
811
+ - xl
812
+ - xs
813
+ # cds-layout-constraint - size-min
814
+ - 2xl
815
+ - lg
816
+ - md
817
+ - sm
818
+ - xl
819
+ - xs
788
820
  # cds-menu-button - menu-background-token
789
821
  - background
790
822
  - layer