@carbon/ibm-products 2.94.0 → 2.95.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 (252) hide show
  1. package/css/carbon.css +92 -103
  2. package/css/carbon.css.map +1 -1
  3. package/css/index-full-carbon.css +605 -186
  4. package/css/index-full-carbon.css.map +1 -1
  5. package/css/index-full-carbon.min.css +1 -1
  6. package/css/index-full-carbon.min.css.map +1 -1
  7. package/css/index-without-carbon-released-only.css +43 -7
  8. package/css/index-without-carbon-released-only.css.map +1 -1
  9. package/css/index-without-carbon-released-only.min.css +1 -1
  10. package/css/index-without-carbon-released-only.min.css.map +1 -1
  11. package/css/index-without-carbon.css +513 -83
  12. package/css/index-without-carbon.css.map +1 -1
  13. package/css/index-without-carbon.min.css +1 -1
  14. package/css/index-without-carbon.min.css.map +1 -1
  15. package/css/index.css +308 -178
  16. package/css/index.css.map +1 -1
  17. package/css/index.min.css +1 -1
  18. package/css/index.min.css.map +1 -1
  19. package/es/components/APIKeyModal/APIKeyModal.d.ts +3 -0
  20. package/es/components/APIKeyModal/APIKeyModal.d.ts.map +1 -1
  21. package/es/components/APIKeyModal/APIKeyModal.js +8 -0
  22. package/es/components/AddSelect/next/AddSelect.d.ts +7 -9
  23. package/es/components/AddSelect/next/AddSelect.d.ts.map +1 -1
  24. package/es/components/AddSelect/next/AddSelect.js +0 -2
  25. package/es/components/AddSelect/next/AddSelectBody.d.ts +4 -0
  26. package/es/components/AddSelect/next/AddSelectBody.d.ts.map +1 -1
  27. package/es/components/AddSelect/next/AddSelectBody.js +80 -4
  28. package/es/components/AddSelect/next/AddSelectColumn.d.ts +1 -1
  29. package/es/components/AddSelect/next/AddSelectRow.d.ts +6 -0
  30. package/es/components/AddSelect/next/AddSelectRow.d.ts.map +1 -1
  31. package/es/components/AddSelect/next/AddSelectRow.js +10 -3
  32. package/es/components/AddSelect/next/AddSelectSelectionSummaryItem.d.ts.map +1 -1
  33. package/es/components/AddSelect/next/AddSelectSelectionSummaryItem.js +5 -3
  34. package/es/components/AddSelect/next/index.d.ts +0 -1
  35. package/es/components/AddSelect/next/index.d.ts.map +1 -1
  36. package/es/components/BigNumber/BigNumber.d.ts +1 -1
  37. package/es/components/BigNumber/BigNumber.d.ts.map +1 -1
  38. package/es/components/BigNumber/BigNumber.js +2 -2
  39. package/es/components/Card/next/Card.d.ts +87 -11
  40. package/es/components/Card/next/Card.d.ts.map +1 -1
  41. package/es/components/Card/next/Card.js +62 -8
  42. package/es/components/Card/next/Card.types.d.ts +13 -0
  43. package/es/components/Card/next/Card.types.d.ts.map +1 -1
  44. package/es/components/Card/next/CardAction.d.ts +43 -0
  45. package/es/components/Card/next/CardAction.d.ts.map +1 -0
  46. package/es/components/Card/next/CardAction.js +51 -0
  47. package/es/components/Card/next/CardActions.d.ts +46 -0
  48. package/es/components/Card/next/CardActions.d.ts.map +1 -0
  49. package/es/components/Card/next/CardActions.js +107 -0
  50. package/es/components/Card/next/CardCaption.d.ts +46 -0
  51. package/es/components/Card/next/CardCaption.d.ts.map +1 -0
  52. package/es/components/Card/next/CardCaption.js +52 -0
  53. package/es/components/Card/next/CardContext.js +12 -2
  54. package/es/components/Card/next/CardFooter.d.ts.map +1 -1
  55. package/es/components/Card/next/CardHeader.d.ts.map +1 -1
  56. package/es/components/Card/next/CardHeader.js +25 -2
  57. package/es/components/Card/next/CardHeaderMedia.d.ts +33 -0
  58. package/es/components/Card/next/CardHeaderMedia.d.ts.map +1 -0
  59. package/es/components/Card/next/CardHeaderMedia.js +44 -0
  60. package/es/components/Card/next/CardLabel.d.ts +46 -0
  61. package/es/components/Card/next/CardLabel.d.ts.map +1 -0
  62. package/es/components/Card/next/CardLabel.js +52 -0
  63. package/es/components/Card/next/CardMedia.d.ts +39 -0
  64. package/es/components/Card/next/CardMedia.d.ts.map +1 -0
  65. package/es/components/Card/next/CardMedia.js +50 -0
  66. package/es/components/Card/next/CardTitle.d.ts +82 -0
  67. package/es/components/Card/next/CardTitle.d.ts.map +1 -0
  68. package/es/components/Card/next/CardTitle.js +77 -0
  69. package/es/components/Card/next/CardTitleMedia.d.ts +24 -0
  70. package/es/components/Card/next/CardTitleMedia.d.ts.map +1 -0
  71. package/es/components/Card/next/CardTitleMedia.js +48 -0
  72. package/es/components/Card/next/index.d.ts +2 -3
  73. package/es/components/Card/next/index.d.ts.map +1 -1
  74. package/es/components/Card/next/index.js +17 -5
  75. package/es/components/Coachmark/next/Coachmark/Coachmark.d.ts +9 -3
  76. package/es/components/Coachmark/next/Coachmark/Coachmark.d.ts.map +1 -1
  77. package/es/components/Coachmark/next/Coachmark/Coachmark.js +6 -13
  78. package/es/components/Coachmark/next/Coachmark/CoachmarkContent.d.ts +1 -1
  79. package/es/components/Coachmark/next/Coachmark/CoachmarkContent.d.ts.map +1 -1
  80. package/es/components/Coachmark/next/Coachmark/CoachmarkContent.js +16 -32
  81. package/es/components/Coachmark/next/Coachmark/context.d.ts +2 -2
  82. package/es/components/Coachmark/next/Coachmark/context.d.ts.map +1 -1
  83. package/es/components/Coachmark/next/Coachmark/context.js +1 -2
  84. package/es/components/ExportModal/ExportModal.d.ts +1 -0
  85. package/es/components/ExportModal/ExportModal.d.ts.map +1 -1
  86. package/es/components/ExportModal/ExportModal.js +6 -0
  87. package/es/components/ImportModal/ImportModal.d.ts +3 -0
  88. package/es/components/ImportModal/ImportModal.d.ts.map +1 -1
  89. package/es/components/ImportModal/ImportModal.js +8 -0
  90. package/es/components/PageHeader/PageHeader.d.ts +6 -0
  91. package/es/components/PageHeader/PageHeader.d.ts.map +1 -1
  92. package/es/components/PageHeader/PageHeader.js +11 -0
  93. package/es/components/Tearsheet/next/StackContext.d.ts +2 -2
  94. package/es/components/Tearsheet/next/StackContext.d.ts.map +1 -1
  95. package/es/components/Tearsheet/next/Tearsheet.d.ts +30 -28
  96. package/es/components/Tearsheet/next/Tearsheet.d.ts.map +1 -1
  97. package/es/components/Tearsheet/next/Tearsheet.js +4 -2
  98. package/es/components/Tearsheet/next/TearsheetBody.d.ts +20 -14
  99. package/es/components/Tearsheet/next/TearsheetBody.d.ts.map +1 -1
  100. package/es/components/Tearsheet/next/TearsheetBody.js +4 -0
  101. package/es/components/Tearsheet/next/TearsheetHeader.d.ts +15 -14
  102. package/es/components/Tearsheet/next/TearsheetHeader.d.ts.map +1 -1
  103. package/es/components/Tearsheet/next/TearsheetHeader.js +14 -7
  104. package/es/components/Tearsheet/next/TearsheetHeaderActions.d.ts +10 -6
  105. package/es/components/Tearsheet/next/TearsheetHeaderActions.d.ts.map +1 -1
  106. package/es/components/Tearsheet/next/TearsheetHeaderActions.js +6 -3
  107. package/es/components/Tearsheet/next/TearsheetHeaderContent.d.ts.map +1 -1
  108. package/es/components/Tearsheet/next/TearsheetHeaderContent.js +7 -4
  109. package/es/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts +7 -1
  110. package/es/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts.map +1 -1
  111. package/es/components/Tearsheet/next/context.d.ts +2 -1
  112. package/es/components/Tearsheet/next/context.d.ts.map +1 -1
  113. package/es/components/index.d.ts +1 -1
  114. package/es/components/index.d.ts.map +1 -1
  115. package/es/node_modules/@carbon/icons-react/es/generated/bucket-11.js +283 -294
  116. package/es/node_modules/@carbon/icons-react/es/generated/bucket-3.js +25 -41
  117. package/es/node_modules/@carbon/icons-react/es/{iconPropTypes-BElKp6Sn.js → iconPropTypes-CdMBxq3Y.js} +1 -1
  118. package/lib/components/APIKeyModal/APIKeyModal.d.ts +3 -0
  119. package/lib/components/APIKeyModal/APIKeyModal.d.ts.map +1 -1
  120. package/lib/components/APIKeyModal/APIKeyModal.js +8 -0
  121. package/lib/components/AddSelect/next/AddSelect.d.ts +7 -9
  122. package/lib/components/AddSelect/next/AddSelect.d.ts.map +1 -1
  123. package/lib/components/AddSelect/next/AddSelect.js +0 -2
  124. package/lib/components/AddSelect/next/AddSelectBody.d.ts +4 -0
  125. package/lib/components/AddSelect/next/AddSelectBody.d.ts.map +1 -1
  126. package/lib/components/AddSelect/next/AddSelectBody.js +78 -2
  127. package/lib/components/AddSelect/next/AddSelectColumn.d.ts +1 -1
  128. package/lib/components/AddSelect/next/AddSelectRow.d.ts +6 -0
  129. package/lib/components/AddSelect/next/AddSelectRow.d.ts.map +1 -1
  130. package/lib/components/AddSelect/next/AddSelectRow.js +9 -2
  131. package/lib/components/AddSelect/next/AddSelectSelectionSummaryItem.d.ts.map +1 -1
  132. package/lib/components/AddSelect/next/AddSelectSelectionSummaryItem.js +5 -3
  133. package/lib/components/AddSelect/next/index.d.ts +0 -1
  134. package/lib/components/AddSelect/next/index.d.ts.map +1 -1
  135. package/lib/components/BigNumber/BigNumber.d.ts +1 -1
  136. package/lib/components/BigNumber/BigNumber.d.ts.map +1 -1
  137. package/lib/components/BigNumber/BigNumber.js +2 -2
  138. package/lib/components/Card/next/Card.d.ts +87 -11
  139. package/lib/components/Card/next/Card.d.ts.map +1 -1
  140. package/lib/components/Card/next/Card.js +61 -11
  141. package/lib/components/Card/next/Card.types.d.ts +13 -0
  142. package/lib/components/Card/next/Card.types.d.ts.map +1 -1
  143. package/lib/components/Card/next/CardAction.d.ts +43 -0
  144. package/lib/components/Card/next/CardAction.d.ts.map +1 -0
  145. package/lib/components/Card/next/CardAction.js +53 -0
  146. package/lib/components/Card/next/CardActions.d.ts +46 -0
  147. package/lib/components/Card/next/CardActions.d.ts.map +1 -0
  148. package/lib/components/Card/next/CardActions.js +109 -0
  149. package/lib/components/Card/next/CardCaption.d.ts +46 -0
  150. package/lib/components/Card/next/CardCaption.d.ts.map +1 -0
  151. package/lib/components/Card/next/CardCaption.js +54 -0
  152. package/lib/components/Card/next/CardContext.js +13 -1
  153. package/lib/components/Card/next/CardFooter.d.ts.map +1 -1
  154. package/lib/components/Card/next/CardHeader.d.ts.map +1 -1
  155. package/lib/components/Card/next/CardHeader.js +24 -1
  156. package/lib/components/Card/next/CardHeaderMedia.d.ts +33 -0
  157. package/lib/components/Card/next/CardHeaderMedia.d.ts.map +1 -0
  158. package/lib/components/Card/next/CardHeaderMedia.js +46 -0
  159. package/lib/components/Card/next/CardLabel.d.ts +46 -0
  160. package/lib/components/Card/next/CardLabel.d.ts.map +1 -0
  161. package/lib/components/Card/next/CardLabel.js +54 -0
  162. package/lib/components/Card/next/CardMedia.d.ts +39 -0
  163. package/lib/components/Card/next/CardMedia.d.ts.map +1 -0
  164. package/lib/components/Card/next/CardMedia.js +52 -0
  165. package/lib/components/Card/next/CardTitle.d.ts +82 -0
  166. package/lib/components/Card/next/CardTitle.d.ts.map +1 -0
  167. package/lib/components/Card/next/CardTitle.js +79 -0
  168. package/lib/components/Card/next/CardTitleMedia.d.ts +24 -0
  169. package/lib/components/Card/next/CardTitleMedia.d.ts.map +1 -0
  170. package/lib/components/Card/next/CardTitleMedia.js +50 -0
  171. package/lib/components/Card/next/index.d.ts +2 -3
  172. package/lib/components/Card/next/index.d.ts.map +1 -1
  173. package/lib/components/Card/next/index.js +16 -4
  174. package/lib/components/Coachmark/next/Coachmark/Coachmark.d.ts +9 -3
  175. package/lib/components/Coachmark/next/Coachmark/Coachmark.d.ts.map +1 -1
  176. package/lib/components/Coachmark/next/Coachmark/Coachmark.js +6 -13
  177. package/lib/components/Coachmark/next/Coachmark/CoachmarkContent.d.ts +1 -1
  178. package/lib/components/Coachmark/next/Coachmark/CoachmarkContent.d.ts.map +1 -1
  179. package/lib/components/Coachmark/next/Coachmark/CoachmarkContent.js +16 -32
  180. package/lib/components/Coachmark/next/Coachmark/context.d.ts +2 -2
  181. package/lib/components/Coachmark/next/Coachmark/context.d.ts.map +1 -1
  182. package/lib/components/Coachmark/next/Coachmark/context.js +1 -2
  183. package/lib/components/ExportModal/ExportModal.d.ts +1 -0
  184. package/lib/components/ExportModal/ExportModal.d.ts.map +1 -1
  185. package/lib/components/ExportModal/ExportModal.js +6 -0
  186. package/lib/components/ImportModal/ImportModal.d.ts +3 -0
  187. package/lib/components/ImportModal/ImportModal.d.ts.map +1 -1
  188. package/lib/components/ImportModal/ImportModal.js +8 -0
  189. package/lib/components/PageHeader/PageHeader.d.ts +6 -0
  190. package/lib/components/PageHeader/PageHeader.d.ts.map +1 -1
  191. package/lib/components/PageHeader/PageHeader.js +11 -0
  192. package/lib/components/Tearsheet/next/StackContext.d.ts +2 -2
  193. package/lib/components/Tearsheet/next/StackContext.d.ts.map +1 -1
  194. package/lib/components/Tearsheet/next/Tearsheet.d.ts +30 -28
  195. package/lib/components/Tearsheet/next/Tearsheet.d.ts.map +1 -1
  196. package/lib/components/Tearsheet/next/Tearsheet.js +4 -2
  197. package/lib/components/Tearsheet/next/TearsheetBody.d.ts +20 -14
  198. package/lib/components/Tearsheet/next/TearsheetBody.d.ts.map +1 -1
  199. package/lib/components/Tearsheet/next/TearsheetBody.js +4 -0
  200. package/lib/components/Tearsheet/next/TearsheetHeader.d.ts +15 -14
  201. package/lib/components/Tearsheet/next/TearsheetHeader.d.ts.map +1 -1
  202. package/lib/components/Tearsheet/next/TearsheetHeader.js +14 -7
  203. package/lib/components/Tearsheet/next/TearsheetHeaderActions.d.ts +10 -6
  204. package/lib/components/Tearsheet/next/TearsheetHeaderActions.d.ts.map +1 -1
  205. package/lib/components/Tearsheet/next/TearsheetHeaderActions.js +4 -1
  206. package/lib/components/Tearsheet/next/TearsheetHeaderContent.d.ts.map +1 -1
  207. package/lib/components/Tearsheet/next/TearsheetHeaderContent.js +7 -4
  208. package/lib/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts +7 -1
  209. package/lib/components/Tearsheet/next/_story-assets/StepTearsheet.d.ts.map +1 -1
  210. package/lib/components/Tearsheet/next/context.d.ts +2 -1
  211. package/lib/components/Tearsheet/next/context.d.ts.map +1 -1
  212. package/lib/components/index.d.ts +1 -1
  213. package/lib/components/index.d.ts.map +1 -1
  214. package/lib/node_modules/@carbon/icons-react/lib/{Icon-2zUDcllO.js → Icon.js} +8 -37
  215. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-0.js +133 -131
  216. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-1.js +140 -138
  217. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-10.js +393 -403
  218. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-11.js +417 -426
  219. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-12.js +447 -441
  220. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-13.js +449 -470
  221. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-14.js +487 -456
  222. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-15.js +550 -548
  223. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-16.js +680 -733
  224. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-17.js +810 -828
  225. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-18.js +754 -670
  226. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-19.js +622 -726
  227. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-2.js +150 -148
  228. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-20.js +752 -752
  229. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-21.js +724 -55
  230. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-3.js +176 -190
  231. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-4.js +198 -180
  232. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-5.js +217 -227
  233. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-6.js +270 -335
  234. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-7.js +405 -339
  235. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-8.js +400 -577
  236. package/lib/node_modules/@carbon/icons-react/lib/generated/bucket-9.js +578 -388
  237. package/lib/node_modules/@carbon/icons-react/lib/{iconPropTypes-DaTOKOBs.js → iconPropTypes-Dkz7B3UR.js} +6 -6
  238. package/lib/node_modules/@carbon/icons-react/lib/index.js +465 -423
  239. package/lib/node_modules/@carbon/icons-react/lib/rolldown-runtime-DyAcNxqs.js +51 -0
  240. package/package.json +18 -18
  241. package/scss/components/AboutModal/_about-modal.scss +12 -3
  242. package/scss/components/AddSelect/_add-select_next.scss +238 -99
  243. package/scss/components/BigNumber/_big-number.scss +4 -0
  244. package/scss/components/Card/_card-next.scss +394 -8
  245. package/scss/components/Tearsheet/_tearsheet_next.scss +38 -4
  246. package/telemetry.yml +24 -18
  247. package/es/components/AddSelect/next/AddSelectContent.d.ts +0 -26
  248. package/es/components/AddSelect/next/AddSelectContent.d.ts.map +0 -1
  249. package/es/components/AddSelect/next/AddSelectContent.js +0 -113
  250. package/lib/components/AddSelect/next/AddSelectContent.d.ts +0 -26
  251. package/lib/components/AddSelect/next/AddSelectContent.d.ts.map +0 -1
  252. package/lib/components/AddSelect/next/AddSelectContent.js +0 -115
@@ -6,6 +6,7 @@
6
6
  //
7
7
 
8
8
  // Standard imports.
9
+ @use '@carbon/styles/scss/config' as carbon-config;
9
10
  @use '@carbon/styles/scss/theme' as *;
10
11
  @use '@carbon/styles/scss/spacing' as *;
11
12
  @use '@carbon/styles/scss/type' as *;
@@ -20,6 +21,7 @@ $block-class-next: #{c4p-settings.$pkg-prefix}--card-next;
20
21
  .#{$block-class-next} {
21
22
  position: relative;
22
23
  border: 1px solid $border-subtle-01;
24
+ border-radius: 0; // Carbon cards don't have border radius by default
23
25
  background-color: $layer-01;
24
26
  color: $text-primary;
25
27
  }
@@ -53,26 +55,410 @@ $block-class-next: #{c4p-settings.$pkg-prefix}--card-next;
53
55
 
54
56
  // Header styles
55
57
  .#{$block-class-next}__header {
58
+ position: relative;
56
59
  display: flex;
57
60
  flex-direction: column;
58
- padding: $spacing-05;
59
- gap: $spacing-03;
61
+ gap: $spacing-01; // 2px gap between label, title, and caption
60
62
  }
61
63
 
62
64
  // Body styles
63
65
  .#{$block-class-next}__body {
64
66
  @include type-style('body-compact-01');
65
67
 
66
- padding: $spacing-05;
67
- padding-block-start: 0;
68
+ margin-block: $spacing-05;
69
+ margin-block-start: 0;
70
+ margin-inline: $spacing-05;
71
+ }
72
+
73
+ // When body is the first child (no header), restore top padding
74
+ .#{$block-class-next} > .#{$block-class-next}__body:first-child {
75
+ margin-block-start: $spacing-05;
68
76
  }
69
77
 
70
- // Footer styles
78
+ // ─── Footer ────────────────────────────────────────────────────
79
+ // Base: padded, no border — the raw-content (non-action) default.
71
80
  .#{$block-class-next}__footer {
72
81
  display: flex;
73
82
  align-items: center;
74
- justify-content: flex-end;
75
83
  padding: $spacing-05;
76
- gap: $spacing-03;
77
- padding-block-start: 0;
84
+ }
85
+
86
+ // Action-set layout: CardAction children present.
87
+ // Override base with no padding, overflow clip, auto border, 1px gap.
88
+ .#{$block-class-next}__footer:has(> .#{$block-class-next}__action) {
89
+ overflow: hidden;
90
+ padding: 0;
91
+ border-block-start: 1px solid $border-subtle;
92
+ gap: 1px;
93
+ }
94
+
95
+ // Text/secondary actions stretch to fill available space.
96
+ .#{$block-class-next}__footer
97
+ > .#{$block-class-next}__action:not(
98
+ :has(.#{carbon-config.$prefix}--btn--icon-only)
99
+ ) {
100
+ flex: 1 0 0;
101
+ min-inline-size: 0;
102
+
103
+ > .#{carbon-config.$prefix}--btn,
104
+ > * > .#{carbon-config.$prefix}--btn {
105
+ inline-size: 100%;
106
+ max-inline-size: none;
107
+ }
108
+ }
109
+
110
+ // Icon-only actions are fixed-width and always right-aligned.
111
+ // margin-inline-start: auto pushes them to the right edge regardless of
112
+ // what precedes them — text action, custom content, or nothing.
113
+ .#{$block-class-next}__footer
114
+ > .#{$block-class-next}__action:has(
115
+ .#{carbon-config.$prefix}--btn--icon-only
116
+ ) {
117
+ flex: 0 0 auto;
118
+ margin-inline-start: auto;
119
+ }
120
+
121
+ // Consecutive icon-only actions: only the first gets the auto margin,
122
+ // the rest follow naturally in the flex row.
123
+ .#{$block-class-next}__footer
124
+ > .#{$block-class-next}__action:has(.#{carbon-config.$prefix}--btn--icon-only)
125
+ + .#{$block-class-next}__action:has(
126
+ .#{carbon-config.$prefix}--btn--icon-only
127
+ ) {
128
+ margin-inline-start: 0;
129
+ }
130
+
131
+ // Action wrapper styles
132
+ .#{$block-class-next}__action {
133
+ display: inline-flex;
134
+ }
135
+
136
+ // Header primitive components
137
+
138
+ // Header Media styles (icon slot)
139
+ .#{$block-class-next}__header-media {
140
+ display: flex;
141
+ flex-shrink: 0; // Don't shrink
142
+ align-items: flex-start; // Top-align content
143
+ justify-content: flex-start; // Left-align content
144
+ block-size: auto; // Auto height based on content
145
+ inline-size: auto; // Auto width based on content
146
+ margin-block-end: $spacing-05; // 16px bottom
147
+ margin-block-start: $spacing-05; // 16px top
148
+ margin-inline-end: $spacing-05; // 16px right
149
+ margin-inline-start: $spacing-05; // 16px left
150
+ max-block-size: $spacing-10; // 64px max height for content
151
+ }
152
+
153
+ // Inline header media margin (when NOT the first child, i.e., not header media slot)
154
+ // This ensures inline icons align with label/title/caption text
155
+ .#{$block-class-next}__header
156
+ > .#{$block-class-next}__header-media:not(:first-child) {
157
+ margin-inline-start: $spacing-05; // 16px left to align with text content
158
+ }
159
+
160
+ // When header media slot is followed by actions, create row layout
161
+ .#{$block-class-next}__header:has(
162
+ > .#{$block-class-next}__header-media:first-child
163
+ + .#{$block-class-next}__actions
164
+ ) {
165
+ > .#{$block-class-next}__header-media:first-child {
166
+ // Header media on the left, remove right margin
167
+ margin-inline-end: 0;
168
+ }
169
+
170
+ > .#{$block-class-next}__actions {
171
+ // Actions on the right
172
+ margin-inline-start: auto;
173
+ }
174
+ }
175
+
176
+ // Media styles (uses Carbon AspectRatio)
177
+ .#{$block-class-next}__media {
178
+ inline-size: 100%;
179
+ }
180
+
181
+ // Label styles
182
+ .#{$block-class-next}__label {
183
+ @include type-style('label-01');
184
+
185
+ color: $text-secondary;
186
+
187
+ margin-block-start: $spacing-05; // 16px top
188
+ margin-inline: $spacing-05; // 16px left and right
189
+
190
+ &--truncate {
191
+ overflow: hidden;
192
+ text-overflow: ellipsis;
193
+ white-space: nowrap;
194
+ }
195
+ }
196
+
197
+ // Remove all inline margins from label when inside title-content (with TitleMedia)
198
+ .#{$block-class-next}__title-content > .#{$block-class-next}__label {
199
+ margin-inline: 0;
200
+ }
201
+
202
+ // Title styles
203
+ .#{$block-class-next}__title {
204
+ color: $text-primary;
205
+ margin-inline: $spacing-05; // 16px left and right
206
+
207
+ &--truncate {
208
+ overflow: hidden;
209
+ text-overflow: ellipsis;
210
+ white-space: nowrap;
211
+ }
212
+
213
+ &--truncate-multi {
214
+ display: -webkit-box;
215
+ overflow: hidden;
216
+ -webkit-box-orient: vertical;
217
+ text-overflow: ellipsis;
218
+ }
219
+ }
220
+
221
+ // Remove all inline margins from title when inside title-content (with TitleMedia)
222
+ .#{$block-class-next}__title-content > .#{$block-class-next}__title {
223
+ margin-inline: 0;
224
+ }
225
+
226
+ // Title Media styles (icon alongside label+title+caption block)
227
+ .#{$block-class-next}__title-media {
228
+ display: flex;
229
+ flex-shrink: 0; // Don't shrink
230
+ align-items: center; // Center content within the media container
231
+ justify-content: center; // Center content
232
+ margin-block-start: $spacing-05; // 16px top margin to align with label
233
+ margin-inline-start: $spacing-05; // 16px left padding
234
+ max-block-size: $spacing-10; // 64px max height
235
+ }
236
+
237
+ // When header contains title-media, make it a flex row container
238
+ // Outer wrapper for TitleMedia + title content (horizontal layout)
239
+ .#{$block-class-next}__header-content {
240
+ display: flex;
241
+ flex: 1; // Take remaining space
242
+ flex-direction: row; // Horizontal: TitleMedia on left, title-content on right
243
+ align-items: flex-start; // Top-align
244
+ gap: $spacing-05; // 16px gap between TitleMedia and title-content
245
+ min-inline-size: 0; // Allow content to shrink and wrap
246
+ }
247
+
248
+ // Inner wrapper for label, title, caption (vertical stack)
249
+ .#{$block-class-next}__title-content {
250
+ display: flex;
251
+ flex: 1; // Take remaining space
252
+ flex-direction: column; // Stack label, title, caption vertically
253
+ gap: $spacing-01; // 2px gap between label, title, and caption
254
+ min-inline-size: 0; // Allow content to shrink and wrap
255
+ padding-inline-end: $spacing-05; // 16px right padding only
256
+ }
257
+
258
+ // Expressive density uses larger heading
259
+ .#{$block-class-next}--expressive .#{$block-class-next}__title {
260
+ @include type-style('heading-03');
261
+ }
262
+
263
+ // Productive density uses compact heading (must come after expressive to override)
264
+ .#{$block-class-next}--productive .#{$block-class-next}__title {
265
+ @include type-style('heading-compact-02');
266
+ }
267
+
268
+ // Title with leading icon layout
269
+ .#{$block-class-next}__title--with-start-icon {
270
+ display: flex;
271
+ align-items: flex-start;
272
+ gap: $spacing-03; // 8px between icon and text per design
273
+ }
274
+
275
+ // Title with trailing icon - no flex, icon flows inline with text
276
+ .#{$block-class-next}__title--with-end-icon {
277
+ // No display: flex - let content flow naturally inline
278
+ // Ensure inline content can flow
279
+ display: block;
280
+ }
281
+
282
+ // Title leading icon wrapper
283
+ .#{$block-class-next}__title-start-icon {
284
+ display: flex;
285
+ flex-shrink: 0; // Prevent icon from shrinking
286
+ margin-block: $spacing-01; // 2px top/bottom padding to center with first line of text
287
+ }
288
+
289
+ // Title trailing icon wrapper - inline element that flows with text
290
+ .#{$block-class-next}__title-end-icon {
291
+ display: inline-flex; // Inline flex to flow with text like a character
292
+ align-items: center; // Center icon vertically within its line
293
+ margin-inline-start: $spacing-03; // 8px gap before icon
294
+ vertical-align: middle; // Align with text baseline
295
+ }
296
+
297
+ // Conditional margin for title based on siblings
298
+ // When title is standalone (no label before it), add top margin
299
+ .#{$block-class-next}__header > .#{$block-class-next}__title:first-child,
300
+ .#{$block-class-next}__header
301
+ > .#{$block-class-next}__header-media:first-child
302
+ + .#{$block-class-next}__title,
303
+ .#{$block-class-next}__header
304
+ > .#{$block-class-next}__media:first-child
305
+ + .#{$block-class-next}__title,
306
+ .#{$block-class-next}__title-content
307
+ > .#{$block-class-next}__title:first-child {
308
+ margin-block-start: $spacing-05; // 16px top
309
+ }
310
+
311
+ // When title is standalone (no caption after it), add bottom margin
312
+ // This applies when title is last child OR when followed by actions (but not caption)
313
+ .#{$block-class-next}__header > .#{$block-class-next}__title:last-child,
314
+ .#{$block-class-next}__title-content > .#{$block-class-next}__title:last-child,
315
+ .#{$block-class-next}__title:not(:has(+ .#{$block-class-next}__caption)) {
316
+ margin-block-end: $spacing-05; // 16px bottom
317
+ }
318
+
319
+ // Caption styles
320
+ .#{$block-class-next}__caption {
321
+ @include type-style('label-01');
322
+
323
+ color: $text-secondary;
324
+
325
+ margin-block-end: $spacing-05; // 16px bottom
326
+ margin-inline: $spacing-05; // 16px left and right
327
+
328
+ &--truncate {
329
+ overflow: hidden;
330
+ text-overflow: ellipsis;
331
+ white-space: nowrap;
332
+ }
333
+ }
334
+
335
+ // Remove all inline margins from caption when inside title-content (with TitleMedia)
336
+ .#{$block-class-next}__title-content > .#{$block-class-next}__caption {
337
+ margin-inline: 0;
338
+ }
339
+
340
+ // Actions container styles
341
+ .#{$block-class-next}__actions {
342
+ position: absolute;
343
+ display: inline-flex; // Use inline-flex for overflow handler
344
+ align-items: center;
345
+ justify-content: flex-end; // Right-align actions
346
+ block-size: $spacing-07; // 32px default height
347
+ gap: $spacing-02;
348
+ inline-size: 50%; // Limit actions to 50% of available header space per design
349
+ inset-block-start: $spacing-03; // 16px from top
350
+ inset-inline-end: $spacing-03; // 16px from right
351
+ max-inline-size: 50%; // Enforce 50% maximum width
352
+ }
353
+
354
+ // When actions are in header with header media slot, add bottom margin
355
+ .#{$block-class-next}__header:has(
356
+ > .#{$block-class-next}__header-media:first-child
357
+ )
358
+ .#{$block-class-next}__actions {
359
+ margin-block-end: $spacing-07; // 32px gap below actions to title
360
+ }
361
+
362
+ // Action wrapper styles
363
+ .#{$block-class-next}__action {
364
+ display: inline-flex;
365
+ }
366
+
367
+ // ──────────────────────────────────────────────────────────────
368
+ // AI Label Support
369
+ // ──────────────────────────────────────────────────────────────
370
+
371
+ // AI Label - Apply blue gradient border when decorator is present
372
+ .#{$block-class-next}--has-ai-label {
373
+ @include utilities.ai-popover-gradient('default', 0, 'layer');
374
+
375
+ border: 1px solid transparent;
376
+ box-shadow:
377
+ inset 0 -80px 70px -65px $ai-inner-shadow,
378
+ 0 4px 10px 2px $ai-drop-shadow;
379
+ }
380
+
381
+ // Decorator (AI Label) positioning - top-right corner
382
+ .#{$block-class-next}__decorator {
383
+ position: absolute;
384
+ z-index: 1;
385
+ display: flex;
386
+ align-items: center;
387
+ block-size: $spacing-07; // 32px height to match actions
388
+ inset-block-start: $spacing-03; // 16px from top (aligned with actions)
389
+ inset-inline-end: $spacing-03; // 8px from right edge
390
+ }
391
+
392
+ // Adjust title padding when AI label is present to prevent text overlap
393
+ .#{$block-class-next}--has-ai-label .#{$block-class-next}__title {
394
+ // Add right padding to prevent title text from overlapping with AI label
395
+ // AI label width (~32px) + spacing (8px) + buffer (8px) = 48px
396
+ padding-inline-end: calc($spacing-07 + $spacing-05);
397
+ }
398
+
399
+ // When both actions and AI label are present, increase title padding
400
+ // to account for the action group width
401
+ .#{$block-class-next}--has-ai-label:has(.#{$block-class-next}__actions)
402
+ .#{$block-class-next}__title {
403
+ // Actions (2-3 buttons ~80px) + gaps + AI label (32px) + spacing = ~120px
404
+ // Using $spacing-13 (104px) as a reasonable max to prevent excessive padding
405
+ padding-inline-end: $spacing-13;
406
+ }
407
+
408
+ // Adjust label padding when AI label is present
409
+ .#{$block-class-next}--has-ai-label .#{$block-class-next}__label {
410
+ padding-inline-end: calc($spacing-07 + $spacing-05);
411
+ }
412
+
413
+ // When both actions and AI label are present, increase label padding
414
+ .#{$block-class-next}--has-ai-label:has(.#{$block-class-next}__actions)
415
+ .#{$block-class-next}__label {
416
+ padding-inline-end: $spacing-13;
417
+ }
418
+
419
+ // Adjust caption padding when AI label is present
420
+ .#{$block-class-next}--has-ai-label .#{$block-class-next}__caption {
421
+ padding-inline-end: calc($spacing-07 + $spacing-05);
422
+ }
423
+
424
+ // When both actions and AI label are present, increase caption padding
425
+ .#{$block-class-next}--has-ai-label:has(.#{$block-class-next}__actions)
426
+ .#{$block-class-next}__caption {
427
+ padding-inline-end: $spacing-13;
428
+ }
429
+
430
+ // Adjust actions positioning when AI label is present
431
+ .#{$block-class-next}--has-ai-label .#{$block-class-next}__actions {
432
+ // Position actions to the left of AI label with proper spacing per Figma
433
+ // AI label right edge spacing (12px) + AI label width (24px) + gap (12px) = 48px
434
+ // Using spacing tokens: $spacing-03 + $spacing-06 + $spacing-03 = 48px
435
+ inset-inline-end: calc($spacing-03 + $spacing-06 + $spacing-03);
436
+ }
437
+
438
+ // When AI label is present and title has no caption after it, add bottom margin
439
+ // This prevents title from overlapping with actions
440
+ .#{$block-class-next}--has-ai-label
441
+ .#{$block-class-next}__header
442
+ > .#{$block-class-next}__title:not(:has(+ .#{$block-class-next}__caption)) {
443
+ margin-block-end: $spacing-05; // 16px bottom to prevent overlap with actions
444
+ }
445
+
446
+ // Hover state for clickable cards with AI label
447
+ .#{$block-class-next}__clickable.#{$block-class-next}--has-ai-label::before {
448
+ @include utilities.ai-popover-gradient('hover', 0, 'layer');
449
+
450
+ position: absolute;
451
+ display: block;
452
+ block-size: 100%;
453
+ box-shadow: inset 0 -80px 70px -65px $ai-inner-shadow;
454
+ content: '';
455
+ inline-size: 100%;
456
+ inset-block-start: 0;
457
+ inset-inline-start: 0;
458
+ opacity: 0;
459
+ transition: opacity $duration-fast-02 motion(standard, productive);
460
+ }
461
+
462
+ .#{$block-class-next}__clickable.#{$block-class-next}--has-ai-label:hover::before {
463
+ opacity: 1;
78
464
  }
@@ -261,7 +261,6 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
261
261
  opacity $motion-duration motion(entrance, expressive),
262
262
  margin $motion-duration motion(entrance, expressive),
263
263
  padding $motion-duration motion(entrance, expressive);
264
- visibility: hidden;
265
264
  }
266
265
 
267
266
  .#{$block-class__next}__header-actions,
@@ -278,9 +277,13 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
278
277
  }
279
278
  }
280
279
 
280
+ .#{$carbon-prefix}--modal-close {
281
+ transition: all $motion-duration ease;
282
+ }
283
+
281
284
  // COLLAPSED STATE
282
285
  .#{$block-class__next}__header-collapsed {
283
- padding-block-start: $spacing-04;
286
+ padding-block-start: 0;
284
287
  transition: padding $motion-duration motion(entrance, expressive);
285
288
 
286
289
  // Collapse everything except core elements
@@ -324,6 +327,7 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
324
327
  @include type.type-style('label-02');
325
328
 
326
329
  align-items: center;
330
+ gap: $spacing-03;
327
331
  margin-block-start: $spacing-02;
328
332
  transition: all $motion-duration motion(entrance, expressive);
329
333
 
@@ -345,8 +349,22 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
345
349
  margin-block-end: 0;
346
350
  }
347
351
 
352
+ .#{$carbon-prefix}--modal-close {
353
+ block-size: $spacing-08;
354
+ inline-size: $spacing-08;
355
+ transition: all $motion-duration ease;
356
+ }
357
+ .#{$block-class__next}__decorator {
358
+ inset-block-start: $spacing-03;
359
+ }
360
+ .#{$block-class__next}__header-title {
361
+ block-size: $spacing-08;
362
+ }
363
+
348
364
  .#{$block-class__next}__content__header-actions {
349
- margin-block-start: -$spacing-01;
365
+ block-size: $spacing-06;
366
+ margin-block-start: $spacing-03;
367
+ transition: all $motion-duration ease;
350
368
  }
351
369
 
352
370
  // Hide header actions on small screens
@@ -368,7 +386,7 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
368
386
 
369
387
  .#{$block-class__next}__header-content-wrapper {
370
388
  min-block-size: $spacing-08;
371
- padding-block-end: $spacing-04;
389
+ // padding-block-end: $spacing-04;
372
390
  }
373
391
 
374
392
  // Divider line above navigation bar
@@ -487,6 +505,7 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
487
505
  margin-inline-start: -$spacing-05;
488
506
  }
489
507
  }
508
+
490
509
  .#{$block-class__next}__scroller-container {
491
510
  position: absolute;
492
511
  inset-block-end: 0;
@@ -594,6 +613,10 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
594
613
  > *:only-child {
595
614
  grid-column: 1 / -1;
596
615
  }
616
+
617
+ .#{$carbon-prefix}--tab-content {
618
+ padding: 0;
619
+ }
597
620
  }
598
621
 
599
622
  .#{$block-class__next}__footer {
@@ -663,6 +686,17 @@ $transform-start: translate3d(0, calc(min(95vh, 500px)), 0);
663
686
  }
664
687
 
665
688
  .#{$block-class__next}--narrow {
689
+ // Fixed 480px width; shrinks only when viewport is narrower than 480px
690
+ .#{$block-class__next}__container {
691
+ inline-size: 480px;
692
+ max-inline-size: 480px;
693
+
694
+ @media (width <= 480px) {
695
+ inline-size: 100%;
696
+ max-inline-size: 100%;
697
+ }
698
+ }
699
+
666
700
  .#{$block-class__next}__header {
667
701
  padding-inline: $spacing-05;
668
702
  }
package/telemetry.yml CHANGED
@@ -88,6 +88,7 @@ collect:
88
88
  - disableColumnSwapping
89
89
  - disabled
90
90
  - disabledCell
91
+ - disableHeaderCollapse
91
92
  - disableSubmit
92
93
  - displayMetalPanel
93
94
  - downloadLinkLabel
@@ -196,6 +197,7 @@ collect:
196
197
  - itemCount
197
198
  - items
198
199
  - itemsLabel
200
+ - keepMounted
199
201
  - key
200
202
  - kind
201
203
  - label
@@ -284,6 +286,7 @@ collect:
284
286
  - overflowAriaLabel
285
287
  - overflowAutoAlign
286
288
  - overflowClassName
289
+ - overflowMenuLabel
287
290
  - overflowTags
288
291
  - overflowTooltipAlign
289
292
  - overflowType
@@ -390,7 +393,9 @@ collect:
390
393
  - tags
391
394
  - theme
392
395
  - title
396
+ - titleEnd
393
397
  - titleSize
398
+ - titleStart
394
399
  - toolbarBatchActions
395
400
  - toolbarBatchActionsDisplayMin
396
401
  - tooltipAlign
@@ -411,6 +416,7 @@ collect:
411
416
  - variableRowHeight
412
417
  - variant
413
418
  - verticalAlign
419
+ - verticalGap
414
420
  - verticalPosition
415
421
  - viewAllLabel
416
422
  - viewLessLabel
@@ -446,6 +452,7 @@ collect:
446
452
  - breadcrumbProps
447
453
  - defaultModifiers
448
454
  - globalFilterOpts
455
+ - layout
449
456
  - linkProps
450
457
  - normalizedItems
451
458
  - onBreadcrumbClick
@@ -461,8 +468,6 @@ collect:
461
468
  - selectAllCheckboxProps
462
469
  - setPath
463
470
  - showSelectAll
464
- # AddSelectContent
465
- - layout
466
471
  # AddSelectFilter
467
472
  - appliedFilters
468
473
  - filterOpts
@@ -497,6 +502,7 @@ collect:
497
502
  - onItemPanelClick
498
503
  - radioButtonProps
499
504
  - rowContent
505
+ - skeleton
500
506
  # AddSelectSelectionSummary
501
507
  - editIconButtonProps
502
508
  - editIconDescription
@@ -578,12 +584,15 @@ collect:
578
584
  - componentName
579
585
  # Card
580
586
  - clickable
587
+ - density
581
588
  - getStarted
582
589
  # CardFooter
583
590
  - hasButton
584
591
  # CardHeader
585
592
  - inClickableCard
586
593
  - noActionIcons
594
+ # CardTitle
595
+ - maxWidth
587
596
  # Carousel
588
597
  - disableArrowScroll
589
598
  - disableResetOnResize
@@ -807,10 +816,6 @@ collect:
807
816
  - maxFileSize
808
817
  - maxFileSizeErrorBody
809
818
  - maxFileSizeErrorHeader
810
- # Influencer
811
- - influencerPanelAriaLabel
812
- - influencerPanelOpen
813
- - influencerPanelTriggerRef
814
819
  # InlineEditButton
815
820
  - columnConfig
816
821
  - isActiveCell
@@ -933,7 +938,6 @@ collect:
933
938
  - renderOverflowBreadcrumb
934
939
  # PageHeaderBreadcrumbPageActions
935
940
  - buttonKind
936
- - overflowMenuLabel
937
941
  # PageHeaderContent
938
942
  - contextualActions
939
943
  - titleAs
@@ -1022,30 +1026,29 @@ collect:
1022
1026
  # StringFormatter
1023
1027
  - tooltipDirection
1024
1028
  - width
1025
- # SummaryContent
1026
- - summaryPanelAriaLabel
1027
- - summaryPanelOpen
1028
- - summaryPanelTriggerRef
1029
1029
  # TagOverflow
1030
1030
  - tagComponent
1031
1031
  # Tearsheet
1032
1032
  - containerClassName
1033
1033
  - disablePortal
1034
- - keepMounted
1035
1034
  - summaryContentWidth
1036
- - verticalGap
1037
1035
  # TearsheetHeader
1038
- - disableHeaderCollapse
1036
+ - onHeaderCollapse
1039
1037
  # TearsheetHeaderActionItem
1040
1038
  - overflowItemLabel
1041
1039
  # TearsheetHeaderActions
1042
1040
  - menuButtonProps
1043
- # TearsheetHeaderContent
1044
- - titleEnd
1045
- - titleStart
1041
+ # TearsheetInfluencer
1042
+ - influencerPanelAriaLabel
1043
+ - influencerPanelOpen
1044
+ - influencerPanelTriggerRef
1046
1045
  # TearsheetPresence
1047
1046
  - _autoEnablePresence
1048
1047
  - _presenceId
1048
+ # TearsheetSummaryContent
1049
+ - summaryPanelAriaLabel
1050
+ - summaryPanelOpen
1051
+ - summaryPanelTriggerRef
1049
1052
  # TearsheetWithSteps
1050
1053
  - progressIndicator
1051
1054
  - setOpen
@@ -1286,7 +1289,7 @@ collect:
1286
1289
  # General - verticalPosition
1287
1290
  - lower
1288
1291
  - normal
1289
- # AddSelectContent - layout
1292
+ # AddSelectBody - layout
1290
1293
  - horizontal
1291
1294
  - vertical
1292
1295
  # APIKeyDownloader - fileType
@@ -1295,6 +1298,9 @@ collect:
1295
1298
  # APIKeyModal - downloadFileType
1296
1299
  - json
1297
1300
  - txt
1301
+ # Card - density
1302
+ - expressive
1303
+ - productive
1298
1304
  # Checklist - toggleLabelAlign
1299
1305
  - bottom
1300
1306
  - bottom-left