@carbon/ibmdotcom-web-components 2.15.0 → 2.16.0-rc.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 (91) hide show
  1. package/custom-elements.json +291 -9
  2. package/dist/dotcom-shell.js +2 -2
  3. package/dist/dotcom-shell.min.js +2 -2
  4. package/dist/ibmdotcom-web-components-dotcom-shell.js +2 -2
  5. package/dist/ibmdotcom-web-components-dotcom-shell.min.js +2 -2
  6. package/dist/{index-fd263a6c.js → index-6ab416ae.js} +6 -6
  7. package/dist/{index-8ac13d28.js → index-6f798488.js} +21 -10
  8. package/dist/{left-nav-menu-76323b8e.js → left-nav-menu-40ebffa9.js} +2 -2
  9. package/dist/{left-nav-menu-02760d33.js → left-nav-menu-629e7752.js} +2 -2
  10. package/dist/{left-nav-menu-category-heading-dca365b2.js → left-nav-menu-category-heading-1886967e.js} +2 -2
  11. package/dist/{left-nav-menu-category-heading-93c6f364.js → left-nav-menu-category-heading-1d965e0a.js} +2 -2
  12. package/dist/{left-nav-menu-item-e27ed87c.js → left-nav-menu-item-03cf8244.js} +2 -2
  13. package/dist/{left-nav-menu-item-218ef600.js → left-nav-menu-item-a9c7113f.js} +2 -2
  14. package/dist/{left-nav-menu-section-c5e510a9.js → left-nav-menu-section-c39512a8.js} +2 -2
  15. package/dist/{left-nav-menu-section-5abc2e23.js → left-nav-menu-section-e9526c5a.js} +2 -2
  16. package/dist/{left-nav-overlay-75300893.js → left-nav-overlay-59e8851e.js} +2 -2
  17. package/dist/{left-nav-overlay-5b0bfef2.js → left-nav-overlay-60a5eead.js} +2 -2
  18. package/dist/{megamenu-category-group-1943cfb9.js → megamenu-category-group-60d3805b.js} +2 -2
  19. package/dist/{megamenu-category-group-copy-cc3cf7e0.js → megamenu-category-group-copy-46df540c.js} +2 -2
  20. package/dist/{megamenu-category-group-copy-9e779f84.js → megamenu-category-group-copy-6ae3dfe8.js} +2 -2
  21. package/dist/{megamenu-category-group-aa873786.js → megamenu-category-group-e191e806.js} +2 -2
  22. package/dist/{megamenu-category-heading-f1723f28.js → megamenu-category-heading-420838f8.js} +2 -2
  23. package/dist/{megamenu-category-heading-0363175e.js → megamenu-category-heading-4b2d5ba1.js} +2 -2
  24. package/dist/{megamenu-category-link-653a7d76.js → megamenu-category-link-e5f8c975.js} +6 -6
  25. package/dist/{megamenu-category-link-5b370505.js → megamenu-category-link-ef739901.js} +2 -2
  26. package/dist/{megamenu-category-link-group-cc2f0cf0.js → megamenu-category-link-group-90b667c2.js} +2 -2
  27. package/dist/{megamenu-category-link-group-8a159720.js → megamenu-category-link-group-a85ef70e.js} +2 -2
  28. package/dist/{megamenu-left-navigation-c14cb952.js → megamenu-left-navigation-0a188f17.js} +2 -2
  29. package/dist/{megamenu-left-navigation-02c861d4.js → megamenu-left-navigation-d3619fc8.js} +2 -2
  30. package/dist/{megamenu-overlay-dacdd21f.js → megamenu-overlay-73bf0741.js} +2 -2
  31. package/dist/{megamenu-overlay-160fa18a.js → megamenu-overlay-98b82923.js} +2 -2
  32. package/dist/{megamenu-tab-ba249255.js → megamenu-tab-320d3677.js} +7 -7
  33. package/dist/{megamenu-tab-131eedb9.js → megamenu-tab-63b4d4a8.js} +15 -20
  34. package/es/components/back-to-top/__stories__/back-to-top.stories.css.js +1 -1
  35. package/es/components/countdown/countdown.d.ts +406 -0
  36. package/es/components/countdown/countdown.js +269 -0
  37. package/es/components/countdown/countdown.js.map +1 -0
  38. package/es/components/countdown/index.d.ts +11 -0
  39. package/es/components/countdown/index.js +18 -0
  40. package/es/components/countdown/index.js.map +1 -0
  41. package/es/components/leadspace/leadspace.css.js +1 -1
  42. package/es/components/masthead/masthead-cart.js +1 -1
  43. package/es/components/masthead/masthead-cart.js.map +1 -1
  44. package/es/components/masthead/masthead-l1.js +11 -1
  45. package/es/components/masthead/masthead-l1.js.map +1 -1
  46. package/es/components/masthead/megamenu-tab.d.ts +1 -5
  47. package/es/components/masthead/megamenu-tab.js +10 -16
  48. package/es/components/masthead/megamenu-tab.js.map +1 -1
  49. package/es/components/pricing-table/pricing-table.css.js +1 -1
  50. package/es/components/promo-banner/index.d.ts +11 -0
  51. package/es/components/promo-banner/index.js +18 -0
  52. package/es/components/promo-banner/index.js.map +1 -0
  53. package/es/components/promo-banner/promo-banner.css.js +12 -0
  54. package/es/components/promo-banner/promo-banner.d.ts +385 -0
  55. package/es/components/promo-banner/promo-banner.js +216 -0
  56. package/es/components/promo-banner/promo-banner.js.map +1 -0
  57. package/es/components/star-rating/index.d.ts +11 -0
  58. package/es/components/star-rating/index.js +18 -0
  59. package/es/components/star-rating/index.js.map +1 -0
  60. package/es/components/star-rating/star-rating.css.js +12 -0
  61. package/es/components/star-rating/star-rating.d.ts +427 -0
  62. package/es/components/star-rating/star-rating.js +320 -0
  63. package/es/components/star-rating/star-rating.js.map +1 -0
  64. package/es/components/structured-list/structured-list-cell.d.ts +2 -0
  65. package/es/components/structured-list/structured-list-cell.js +13 -4
  66. package/es/components/structured-list/structured-list-cell.js.map +1 -1
  67. package/es/components/structured-list/structured-list.css.js +1 -1
  68. package/es/components/table-of-contents/table-of-contents-cdn.css.js +1 -1
  69. package/es/components/table-of-contents/table-of-contents.css.js +1 -1
  70. package/es/components/tile/index.d.ts +12 -0
  71. package/es/components/tile/index.js +19 -0
  72. package/es/components/tile/index.js.map +1 -0
  73. package/es/components/tile/tile-group.d.ts +21 -0
  74. package/es/components/tile/tile-group.js +56 -0
  75. package/es/components/tile/tile-group.js.map +1 -0
  76. package/es/components/tile/tile.css.js +12 -0
  77. package/es/components/tile/tile.d.ts +737 -0
  78. package/es/components/tile/tile.js +225 -0
  79. package/es/components/tile/tile.js.map +1 -0
  80. package/es/components-react/structured-list/structured-list-cell.d.ts +2 -0
  81. package/es/globals/internal/storybook-decorators.d.ts +31 -0
  82. package/es/globals/internal/storybook-decorators.js +43 -0
  83. package/es/globals/internal/storybook-decorators.js.map +1 -0
  84. package/es/globals/mixins/throttled-input.js +5 -4
  85. package/es/globals/mixins/throttled-input.js.map +1 -1
  86. package/es/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  87. package/lib/internal/vendor/@carbon/ibmdotcom-utilities/utilities/settings/settings.js +2 -2
  88. package/package.json +8 -7
  89. package/scss/components/promo-banner/promo-banner.scss +163 -0
  90. package/scss/components/star-rating/star-rating.scss +76 -0
  91. package/scss/components/tile/tile.scss +290 -0
@@ -0,0 +1,76 @@
1
+ //
2
+ // Copyright IBM Corp. 2024
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
+ @use '@carbon/styles/scss/config' as *;
9
+ @use '@carbon/styles/scss/spacing' as *;
10
+ @use '@carbon/styles/scss/type' as *;
11
+ @use '@carbon/styles/scss/themes' as *;
12
+ @use '@carbon/styles/scss/theme' as *;
13
+ @use '@carbon/styles/scss/utilities/tooltip' as *;
14
+ @use '@carbon/styles/scss/components/button/tokens' as *;
15
+ @use '@carbon/ibmdotcom-styles/scss/globals/vars' as *;
16
+
17
+ :host(#{$c4d-prefix}-star-rating) {
18
+ display: inline-block;
19
+
20
+ .#{$prefix}-star-rating {
21
+ display: flex;
22
+ flex-wrap: wrap;
23
+ gap: $spacing-03 $spacing-05;
24
+ }
25
+
26
+ .#{$prefix}-star-rating__stars {
27
+ display: inline-flex;
28
+ align-items: center;
29
+ margin: 0;
30
+
31
+ &:not([disableTooltip]) {
32
+ @include tooltip--trigger('definition', top);
33
+ @include tooltip--placement('definition', 'top', 'center');
34
+ }
35
+ }
36
+
37
+ .#{$prefix}-star-count__star {
38
+ svg {
39
+ display: block;
40
+ fill: $button-primary;
41
+ }
42
+ }
43
+
44
+ .#{$prefix}-star-count__star--half {
45
+ position: relative;
46
+
47
+ svg {
48
+ position: absolute;
49
+ inset: 0;
50
+ }
51
+
52
+ svg:nth-of-type(1) {
53
+ position: initial;
54
+ }
55
+
56
+ svg:nth-of-type(2):dir(rtl) {
57
+ transform: scaleX(-1);
58
+ }
59
+ }
60
+
61
+ .#{$prefix}-star-rating__label,
62
+ .#{$prefix}-star-rating__label a {
63
+ @include type-style('body-compact-02');
64
+
65
+ color: $border-inverse;
66
+ }
67
+
68
+ .#{$prefix}-star-rating__label a {
69
+ text-decoration: none;
70
+
71
+ &:hover,
72
+ &:focus {
73
+ text-decoration: underline;
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,290 @@
1
+ //
2
+ // Copyright IBM Corp. 2024
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
+ @use '@carbon/ibmdotcom-styles/scss/globals/vars' as *;
9
+ @use '@carbon/styles/scss/config' as *;
10
+ @use '@carbon/styles/scss/utilities' as *;
11
+ @use '@carbon/styles/scss/spacing' as *;
12
+ @use '@carbon/styles/scss/theme' as *;
13
+ @use '@carbon/styles/scss/type' as *;
14
+ @use '@carbon/styles/scss/components/link' as *;
15
+ @use '@carbon/styles/scss/components/button' as *;
16
+ @use '@carbon/grid' as *;
17
+ @use '@carbon/ibmdotcom-styles/scss/globals/utils/flex-grid' as *;
18
+
19
+ $md-breakpoint-width: map-get(map-get($grid-breakpoints, md), width);
20
+ $lg-breakpoint-width: map-get(map-get($grid-breakpoints, lg), width);
21
+ $xlg-breakpoint-width: map-get(map-get($grid-breakpoints, xlg), width);
22
+ $max-breakpoint-width: map-get(map-get($grid-breakpoints, max), width);
23
+
24
+ // We need lower and upper bounds for a container occupying 12 / 16 columns at
25
+ // the lg and xlg breakpoints. For the lower bound we take the breakpoint
26
+ // size, less the 2rem of outer padding, multiplied by 12 / 16, less 2rem of
27
+ // column padding. For the upper bound we take the next breakpoint size and
28
+ // do a similar calculation with a slight tweak of subtracting 0.02 from the
29
+ // breakpoint size as a starting point, similar to how the
30
+ // breakpoint-between mixin works. Note that this approach my not work
31
+ // cleanly for the narrow or condensed grid due to the necessary assumptions
32
+ // made for padding widths.
33
+ $lg-12-column-lower-bound: (($lg-breakpoint-width - 2rem) * (12 / 16)) - 2rem;
34
+ $lg-12-column-upper-bound: (($xlg-breakpoint-width - 0.02 - 2rem) * (12 / 16)) -
35
+ 2rem;
36
+ $xlg-12-column-lower-bound: (($xlg-breakpoint-width - 2rem) * (12 / 16)) - 2rem;
37
+ $xlg-12-column-upper-bound: (($max-breakpoint-width - 0.02 - 2rem) * (12 / 16)) -
38
+ 2rem;
39
+
40
+ :host(#{$c4d-prefix}-tile) {
41
+ .#{$c4d-prefix}-tile {
42
+ &__outer {
43
+ display: grid;
44
+ block-size: 100%;
45
+ grid-template-columns: 100%;
46
+ grid-template-rows: 1fr;
47
+
48
+ &::before {
49
+ display: block;
50
+ /* stylelint-disable-next-line property-no-unknown */
51
+ aspect-ratio: var(--c4d-tile-aspect-ratio, 16 / 9);
52
+ content: '';
53
+ grid-area: 1 / 1 / 2 / 2;
54
+ }
55
+ }
56
+
57
+ &__wrapper {
58
+ position: relative;
59
+ display: flex;
60
+ padding: $spacing-05;
61
+ border: 1px solid $border-subtle;
62
+ gap: $spacing-05;
63
+ grid-area: 1 / 1 / 2 / 2;
64
+ }
65
+
66
+ &__pictogram {
67
+ block-size: 5.5rem;
68
+ inline-size: 5.5rem;
69
+ margin-block-end: $spacing-06;
70
+ }
71
+
72
+ &__content {
73
+ @include type-style('body-compact-02');
74
+
75
+ display: flex;
76
+ flex-direction: column;
77
+ }
78
+
79
+ &__text {
80
+ display: flex;
81
+ flex-direction: column;
82
+ gap: $spacing-06;
83
+ margin-block-end: $spacing-07;
84
+ }
85
+
86
+ &__label {
87
+ @include type-style('label-01');
88
+
89
+ color: $text-secondary;
90
+ margin-block-end: $spacing-03;
91
+ }
92
+
93
+ &__action {
94
+ margin-block-start: auto;
95
+
96
+ .#{$c4d-prefix}-ce--cta__icon {
97
+ display: inline;
98
+ align-self: center;
99
+ fill: currentcolor;
100
+ margin-inline-start: $spacing-03;
101
+ vertical-align: middle;
102
+ white-space: nowrap;
103
+ }
104
+
105
+ &::after {
106
+ position: absolute;
107
+ z-index: 1;
108
+ content: '';
109
+ inset: 0;
110
+ }
111
+ }
112
+
113
+ &__wrapper:hover {
114
+ background: $background-hover;
115
+
116
+ .#{$c4d-prefix}-tile__action {
117
+ color: $button-primary-hover;
118
+ }
119
+ }
120
+
121
+ &__wrapper:focus-within {
122
+ background: $background-hover;
123
+ outline: 2px solid $focus;
124
+ outline-offset: -2px;
125
+
126
+ .#{$c4d-prefix}-tile__action {
127
+ color: $button-primary;
128
+ outline: none;
129
+ }
130
+ }
131
+
132
+ &__wrapper:active {
133
+ outline: 2px solid $focus;
134
+ outline-offset: -2px;
135
+
136
+ .#{$c4d-prefix}-tile__action {
137
+ color: $button-primary;
138
+ outline: none;
139
+ }
140
+ }
141
+
142
+ &__image {
143
+ overflow: hidden;
144
+ flex: 0 0 50%;
145
+
146
+ @include breakpoint('lg') {
147
+ flex-basis: 28.5%;
148
+ }
149
+ @include breakpoint('xlg') {
150
+ flex-basis: 50%;
151
+ }
152
+
153
+ // Double width tile image responsive handling.
154
+ &-double {
155
+ flex-basis: calc(50% - #{$spacing-05});
156
+
157
+ @include breakpoint-down('sm') {
158
+ flex: 1;
159
+ }
160
+ }
161
+ }
162
+
163
+ &__footer-placement {
164
+ margin-block: 0 $spacing-07;
165
+ }
166
+ }
167
+
168
+ /** Border styles for adjacent tiles **/
169
+ @include breakpoint-down('md') {
170
+ &:nth-of-type(n + 2) .#{$c4d-prefix}-tile__wrapper {
171
+ border-block-start: none;
172
+ }
173
+ }
174
+
175
+ @include breakpoint-between('md', 'lg') {
176
+ &:not(:nth-of-type(2n + 1)) .#{$c4d-prefix}-tile__wrapper {
177
+ border-inline-start: none;
178
+ }
179
+
180
+ &:nth-of-type(n + 3) .#{$c4d-prefix}-tile__wrapper {
181
+ border-block-start: none;
182
+ }
183
+ }
184
+
185
+ // Manually doing the media query here b/c breakpoint-between produces
186
+ // a lower bound of $lg-breakpoint-width + 0.02, which would net us double
187
+ // borders for a pixel or so of viewport width right at 1056px.
188
+ @media (min-width: #{$lg-breakpoint-width}) and (max-width: #{$xlg-breakpoint-width - 0.02}) {
189
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
190
+ @container (#{$lg-12-column-lower-bound} <= inline-size <= #{$lg-12-column-upper-bound}) {
191
+ &:not(:nth-of-type(3n + 1)) .#{$c4d-prefix}-tile__wrapper {
192
+ border-inline-start: none;
193
+ }
194
+
195
+ &:nth-of-type(n + 4) .#{$c4d-prefix}-tile__wrapper {
196
+ border-block-start: none;
197
+ }
198
+ }
199
+
200
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
201
+ @container (inline-size > #{$lg-12-column-upper-bound}) {
202
+ &:not(:nth-of-type(4n + 1)) .#{$c4d-prefix}-tile__wrapper {
203
+ border-inline-start: none;
204
+ }
205
+
206
+ &:nth-of-type(n + 5) .#{$c4d-prefix}-tile__wrapper {
207
+ border-block-start: none;
208
+ }
209
+ }
210
+ }
211
+
212
+ @include breakpoint(xlg) {
213
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
214
+ @container (#{$xlg-12-column-lower-bound} <= inline-size <= #{$xlg-12-column-upper-bound}) {
215
+ &:not(:nth-of-type(3n + 1)) .#{$c4d-prefix}-tile__wrapper {
216
+ border-inline-start: none;
217
+ }
218
+
219
+ &:nth-of-type(n + 4) .#{$c4d-prefix}-tile__wrapper {
220
+ border-block-start: none;
221
+ }
222
+ }
223
+
224
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
225
+ @container (inline-size > #{$xlg-12-column-upper-bound}) {
226
+ &:not(:nth-of-type(4n + 1)) .#{$c4d-prefix}-tile__wrapper {
227
+ border-inline-start: none;
228
+ }
229
+
230
+ &:nth-of-type(n + 5) .#{$c4d-prefix}-tile__wrapper {
231
+ border-block-start: none;
232
+ }
233
+ }
234
+ }
235
+
236
+ /** /Border styles for adjacent tiles **/
237
+ }
238
+
239
+ // Double Tile responsiveness.
240
+ :host(#{$c4d-prefix}-tile)[double-tile] {
241
+ .#{$c4d-prefix}-tile {
242
+ &__wrapper {
243
+ gap: $spacing-07;
244
+ @include breakpoint-down('sm') {
245
+ flex-direction: column;
246
+ }
247
+ }
248
+ }
249
+ }
250
+
251
+ :host(#{$c4d-prefix}-tile-group) {
252
+ display: block;
253
+ /* stylelint-disable-next-line property-no-unknown */
254
+ container: tile-group-container / inline-size;
255
+ inline-size: 100%;
256
+
257
+ .#{$c4d-prefix}-tile-group {
258
+ @include make-row();
259
+
260
+ margin-inline: 0;
261
+ }
262
+
263
+ ::slotted(#{$c4d-prefix}-tile) {
264
+ @include make-col(4, 4);
265
+
266
+ @include breakpoint(md) {
267
+ @include make-col(4, 8);
268
+ }
269
+
270
+ @include breakpoint(lg) {
271
+ @include make-col(4, 16);
272
+
273
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
274
+ @container tile-group-container (#{$lg-12-column-lower-bound} <= inline-size <= #{$lg-12-column-upper-bound}) {
275
+ display: block;
276
+ flex: 0 0 calc(100% / 3);
277
+ max-inline-size: calc(100% / 3);
278
+ }
279
+ }
280
+
281
+ @include breakpoint(xlg) {
282
+ /* stylelint-disable-next-line scss/at-rule-no-unknown */
283
+ @container tile-group-container (#{$xlg-12-column-lower-bound} <= inline-size <= #{$xlg-12-column-upper-bound}) {
284
+ display: block;
285
+ flex: 0 0 calc(100% / 3);
286
+ max-inline-size: calc(100% / 3);
287
+ }
288
+ }
289
+ }
290
+ }