@tui/design-system 1.3.0 → 1.4.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.4.0
4
+
5
+ ### Added
6
+
7
+ #### [Customer review](https://mwa.tui.com/browse/mwa/uilib-production/storybook/index.html?path=/docs/components-ratings-and-reviews-customer-review--docs)
8
+
9
+ - Added customer review component that displays individual customer reviews, including overall ratings, category breakdowns, and review content. This
10
+ component provides social proof and detailed feedback to help users make informed booking decisions.
11
+
12
+ #### [Social proofing](https://mwa.tui.com/browse/mwa/uilib-production/storybook/index.html?path=/docs/components-social-proofing--docs)
13
+
14
+ - Add social proofing messaging for displaying a type of status. It is used to reinforce credibility through evidence of other users’ behaviours.
15
+
16
+ ### Updated
17
+
18
+ #### [Show more/less](https://mwa.tui.com/browse/mwa/uilib-production/storybook/index.html?path=/docs/components-show-more-or-less--docs)
19
+
20
+ - Text-only variant JavaScript made more robust in case markup other than text is included, e.g. within customer reviews.
21
+ - Text-only variant focus behaviour has been adjusted so focus is no longer moved on expand or collapse. This prevents screen readers from repeating
22
+ the content due to the combination of aria-live and focus transfer.
23
+ - Default variant focus transfer to the revealed content now waits for the expand animation to complete. This resolves an issue with NVDA where the
24
+ screen reader would not automatically begin reading the newly revealed content.
25
+ - Chevron icon after the show more/less button text is now included for both variants. Text-only originally did not include this icon.
26
+ - The show more/less link is now located below the truncated text for both variants. Previously it was located inline directly after the truncated
27
+ text for the text-only variant.
28
+
29
+ ### Fixed
30
+
31
+ #### [Show more/less](https://mwa.tui.com/browse/mwa/uilib-production/storybook/index.html?path=/docs/components-show-more-or-less--docs)
32
+
33
+ - Fix for the erroneous additional spacing above the show more/less link.
34
+ - Fix for focus-state styling issue on text-only variant.
35
+
3
36
  ## v1.3.0
4
37
 
5
38
  ### Added
@@ -447,6 +447,9 @@
447
447
  --uilib-show-more-less-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/crystalski/standard/chevron-down.svg");
448
448
  --uilib-skeleton-color: #d8d8d8;
449
449
  --uilib-skeleton-shimmer-color: #f5f5f5;
450
+ --uilib-social-proofing-radius: var(--uilib-border-radius-300);
451
+ --uilib-social-proofing-close-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/crystalski/standard/cross.svg");
452
+ --uilib-social-proofing-box-shadow: var(--uilib-elevation-100);
450
453
  --uilib-tabs-in-page-border-color: var(--uilib-color-border-card);
451
454
  --uilib-tabs-in-page-text-color: var(--uilib-color-text-strong);
452
455
  --uilib-tabs-in-page-active-color: var(--uilib-color-text-link);
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/crystalski/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACGA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/crystalski/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACGA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
@@ -454,6 +454,9 @@
454
454
  --uilib-show-more-less-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/firstchoice/standard/chevron-down.svg");
455
455
  --uilib-skeleton-color: #e3e9e7;
456
456
  --uilib-skeleton-shimmer-color: #fff;
457
+ --uilib-social-proofing-radius: var(--uilib-border-radius-300);
458
+ --uilib-social-proofing-close-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/firstchoice/standard/cross.svg");
459
+ --uilib-social-proofing-box-shadow: var(--uilib-elevation-100);
457
460
  --uilib-tabs-in-page-border-color: var(--uilib-color-border-card);
458
461
  --uilib-tabs-in-page-text-color: var(--uilib-color-text-strong);
459
462
  --uilib-tabs-in-page-active-color: var(--uilib-color-text-link);
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/firstchoice/_overrides.scss","../../../src/themes/firstchoice/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACgBA;ACbA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/firstchoice/_overrides.scss","../../../src/themes/firstchoice/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACgBA;ACbA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
@@ -470,6 +470,9 @@
470
470
  --uilib-show-more-less-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/tui/standard/chevron-down.svg");
471
471
  --uilib-skeleton-color: #dcdcdc;
472
472
  --uilib-skeleton-shimmer-color: #f5f5f5;
473
+ --uilib-social-proofing-radius: var(--uilib-border-radius-300);
474
+ --uilib-social-proofing-close-icon: url("https://mwa.tui.com/shared/mwa/assets/v3/icons/tui/standard/cross.svg");
475
+ --uilib-social-proofing-box-shadow: var(--uilib-elevation-100);
473
476
  --uilib-tabs-in-page-border-color: var(--uilib-color-border-card);
474
477
  --uilib-tabs-in-page-text-color: var(--uilib-color-text-strong);
475
478
  --uilib-tabs-in-page-active-color: var(--uilib-color-text-link);
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/tui/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACGA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/lib/divider/_variables.scss","../../../src/lib/info-tag/_variables.scss","../../../src/themes/tui/index.scss","../../../src/lib/utility/_mixins.scss","../../../src/variables/_grid.scss","../../../src/variables/_icons.scss","../../../src/variables/_typography.scss"],"names":[],"mappings":"AAEA;AAQA;ACNA;ACGA;AAAA;AAAA;AAAA;EAKC;ECLC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;ECKD;EACA;EACA;EACA;EAGA;EACA;ECGA;EFfC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EGgHD;EHhHC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA","file":"index.css"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tui/design-system",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "TUI Design System",
5
5
  "author": "TUI Group",
6
6
  "//dependencies": {
@@ -47,7 +47,7 @@
47
47
  "ci:deploy:testing": "bash ./ci-scripts/deploy/deploy-testing.sh",
48
48
  "ci:destroy:feat": " bash ./ci-scripts/destroy/destroy-feature.sh",
49
49
  "scss:compile": "sass --no-source-map --style=expanded utils/scss/input:utils/scss/output",
50
- "test:sass": "jest --verbose ./test/sass-true"
50
+ "test:sass": "node --experimental-vm-modules node_modules/.bin/jest --verbose ./test/sass-true"
51
51
  },
52
52
  "files": [
53
53
  "dist",
@@ -67,28 +67,17 @@
67
67
  "url": "git@ssh.source.tui:osp/browse/design-system/uilib.git"
68
68
  },
69
69
  "devDependencies": {
70
- "@babel/core": "^7.25.2",
71
- "@babel/eslint-parser": "^7.28.5",
72
- "@babel/preset-env": "^7.25.2",
73
- "@babel/preset-react": "^7.26.3",
74
- "@babel/preset-typescript": "^7.28.5",
75
70
  "@commitlint/cli": "^21.0.2",
76
71
  "@commitlint/config-conventional": "^21.0.2",
77
72
  "@eslint/compat": "^2.0.0",
78
73
  "@eslint/js": "^9.38.0",
79
74
  "@figma/code-connect": "^1.4.5",
80
75
  "@jest/globals": "^30.2.0",
81
- "@storybook/addon-a11y": "8.6.14",
82
- "@storybook/addon-docs": "8.6.14",
83
- "@storybook/addon-essentials": "8.6.14",
84
- "@storybook/addon-links": "8.6.14",
85
- "@storybook/addon-themes": "8.6.14",
86
- "@storybook/blocks": "8.6.14",
87
- "@storybook/html": "8.6.14",
88
- "@storybook/html-webpack5": "8.6.14",
89
- "@storybook/manager-api": "8.6.14",
90
- "@storybook/preview-api": "8.6.14",
91
- "@storybook/theming": "8.6.14",
76
+ "@storybook/addon-a11y": "10.4.3",
77
+ "@storybook/addon-docs": "10.4.3",
78
+ "@storybook/addon-links": "10.4.3",
79
+ "@storybook/addon-themes": "10.4.3",
80
+ "@storybook/html-vite": "10.4.3",
92
81
  "@stylistic/eslint-plugin": "^3.1.0",
93
82
  "@tui/cally": "^0.1.0",
94
83
  "@types/js-beautify": "^1.14.3",
@@ -96,9 +85,7 @@
96
85
  "@typescript-eslint/eslint-plugin": "^8.46.2",
97
86
  "@typescript-eslint/parser": "^8.46.2",
98
87
  "aws-cdk-lib": "^2.220.0",
99
- "babel-loader": "^10.0.0",
100
88
  "copyfiles": "^2.4.1",
101
- "css-loader": "7.1.3",
102
89
  "deepmerge": "^4.3.1",
103
90
  "dotenv": "^17.2.3",
104
91
  "dotenv-cli": "^11.0.0",
@@ -114,6 +101,7 @@
114
101
  "eslint-plugin-prettier": "^5.5.4",
115
102
  "eslint-plugin-react": "^7.37.5",
116
103
  "eslint-plugin-react-hooks": "^7.0.1",
104
+ "eslint-plugin-storybook": "10.4.3",
117
105
  "git-format-staged": "4.0.1",
118
106
  "glob": "^13.0.0",
119
107
  "globals": "^17.3.0",
@@ -124,32 +112,28 @@
124
112
  "log-update": "^8.0.0",
125
113
  "node-fetch": "^3.3.2",
126
114
  "npm-run-all2": "^9.0.1",
115
+ "postcss-import": "^16.1.1",
116
+ "postcss-preset-env": "^11.3.0",
127
117
  "postcss-scss": "^4.0.6",
128
118
  "prettier": "^3.4.2",
129
119
  "remark-gfm": "^4.0.0",
130
120
  "sass": "^1.93.2",
131
- "sass-loader": "^16.0.4",
132
121
  "sass-true": "^10.0.0",
133
122
  "shx": "0.4.0",
134
123
  "source-map-support": "^0.5.21",
135
- "storybook": "8.6.14",
136
- "storybook-addon-pseudo-states": "^4.0.3",
137
- "storybook-addon-tag-badges": "^1.4.0",
138
- "storybook-addon-turbo-build": "^2.0.1",
139
- "storybook-dark-mode": "^4.0.2",
140
- "storybook-preset-inline-svg": "^1.0.1",
141
- "style-loader": "4.0.0",
124
+ "storybook": "10.4.3",
125
+ "storybook-addon-pseudo-states": "^10.4.3",
126
+ "storybook-addon-tag-badges": "^3.1.0",
127
+ "storybook-dark-mode": "^5.0.0",
142
128
  "stylelint": "^17.2.0",
143
129
  "stylelint-config-standard": "^40.0.0",
144
130
  "stylelint-config-standard-scss": "^17.0.0",
145
131
  "stylelint-order": "^8.1.1",
146
132
  "stylelint-scss": "^7.0.0",
147
133
  "stylelint-semantic-groups": "^1.2.1",
148
- "ts-loader": "^9.5.2",
149
134
  "ts-node": "^10.9.1",
150
135
  "typescript": "^6.0.3",
151
136
  "typescript-eslint": "^8.46.2",
152
- "webpack": "^5.102.1",
153
137
  "zod-validation-error": "^5.0.0"
154
138
  },
155
139
  "lint-staged": {
@@ -0,0 +1,3 @@
1
+ // rating customer review / index
2
+ @use 'mixins' as *;
3
+ @include uilib-ratings-customer-review;
@@ -0,0 +1,152 @@
1
+ // rating customer review / _mixins
2
+ @use '../../utility/mixins' as *;
3
+ @use '../../info-tag/mixins' as *;
4
+ @use '../range-icons-group/mixins' as *;
5
+ @use '../../show-more-less/mixins' as *;
6
+
7
+ $uilib-ratings-customer-review-included: false !default;
8
+
9
+ // Builds rating customer-review
10
+ @mixin uilib-ratings-customer-review() {
11
+ @if not $uilib-ratings-customer-review-included {
12
+ $uilib-ratings-customer-review-included: true !global;
13
+
14
+ @include uilib-info-tag;
15
+ @include uilib-ratings-range-icons-group;
16
+ @include uilib-show-more-less;
17
+ @include uilib-ratings-customer-review-master;
18
+ }
19
+ }
20
+
21
+ @mixin uilib-ratings-customer-review-master() {
22
+ .uilib-ratings-customer-review {
23
+ container-name: uilib-ratings-customer-review;
24
+ container-type: inline-size;
25
+
26
+ display: grid;
27
+ grid-template-columns: 25% 1fr;
28
+ gap: 0 var(--uilib-spacing-400);
29
+
30
+ width: 100%;
31
+ margin: var(--uilib-spacing-400) 0;
32
+
33
+ &__visually-hidden {
34
+ @include uilib-visually-hidden;
35
+ }
36
+
37
+ &__details {
38
+ grid-column: 1 / -1;
39
+
40
+ display: flex;
41
+ flex-flow: row wrap;
42
+ gap: var(--uilib-spacing-100) var(--uilib-spacing-200);
43
+ justify-content: flex-start;
44
+ align-items: center;
45
+
46
+ margin-bottom: var(--uilib-spacing-400);
47
+
48
+ &::after {
49
+ content: '';
50
+
51
+ order: 1;
52
+
53
+ display: inline-block;
54
+
55
+ height: 1em;
56
+
57
+ font: var(--uilib-typography-body-medium-strong);
58
+
59
+ border-right: var(--uilib-stroke-size-025) var(--uilib-stroke-style-solid) var(--uilib-color-border-divider);
60
+ }
61
+ }
62
+
63
+ &-standard-rating {
64
+ color: var(--uilib-color-text-strong);
65
+ font: var(--uilib-typography-heading-large);
66
+
67
+ &__value {
68
+ font: var(--uilib-typography-heading-xxlarge);
69
+ }
70
+ }
71
+
72
+ &__author {
73
+ font: var(--uilib-typography-body-medium-strong);
74
+ }
75
+
76
+ &__date {
77
+ order: 2;
78
+
79
+ font: var(--uilib-typography-body-medium);
80
+ }
81
+
82
+ &__tag {
83
+ grid-column: 1 / -1;
84
+
85
+ margin-bottom: var(--uilib-spacing-300);
86
+ }
87
+
88
+ &__heading {
89
+ grid-column: 1 / -1;
90
+
91
+ margin-bottom: var(--uilib-spacing-300);
92
+
93
+ color: var(--uilib-color-text-strong);
94
+ font: var(--uilib-typography-heading-large);
95
+ }
96
+
97
+ &__content {
98
+ grid-column: 1 / -1;
99
+
100
+ .uilib-show-more-less {
101
+ margin: 0;
102
+
103
+ &[text-only] .uilib-ratings-range-icons-group:last-child {
104
+ display: flex;
105
+ }
106
+
107
+ &[text-only][is-open] .uilib-ratings-range-icons-group {
108
+ margin-bottom: var(--uilib-spacing-400);
109
+ }
110
+ }
111
+
112
+ p {
113
+ margin-bottom: var(--uilib-spacing-400);
114
+ }
115
+
116
+ .uilib-ratings-range-icons-group {
117
+ margin-top: var(--uilib-spacing-400);
118
+ }
119
+ }
120
+ }
121
+
122
+ /* stylelint-disable-next-line order/order */
123
+ @container uilib-ratings-customer-review (min-width: 40rem) {
124
+ .uilib-ratings-customer-review {
125
+ &__details {
126
+ grid-row: 1 / span 99;
127
+ grid-column: 1;
128
+
129
+ flex-flow: column;
130
+ gap: 0;
131
+ justify-content: flex-start;
132
+ align-items: flex-start;
133
+
134
+ margin: 0;
135
+
136
+ &::after {
137
+ display: none;
138
+ }
139
+ }
140
+
141
+ &__rating {
142
+ margin-bottom: var(--uilib-spacing-200);
143
+ }
144
+
145
+ &__tag,
146
+ &__heading,
147
+ &__content {
148
+ grid-column: 2;
149
+ }
150
+ }
151
+ }
152
+ }
@@ -20,86 +20,75 @@ $uilib-show-more-less-included: false !default;
20
20
  display: block;
21
21
 
22
22
  margin: var(--uilib-spacing-200) 0 var(--uilib-spacing-600);
23
- }
24
23
 
25
- .uilib-show-more-less__intro,
26
- .uilib-show-more-less__content {
27
- & > *:first-child {
28
- margin-top: 0;
29
- }
24
+ &__intro,
25
+ &__content {
26
+ & > *:first-child {
27
+ margin-top: 0;
28
+ }
30
29
 
31
- & > *:last-child {
32
- margin-bottom: 0;
30
+ & > *:last-child {
31
+ margin-bottom: 0;
32
+ }
33
33
  }
34
- }
35
34
 
36
- .uilib-show-more-less[text-only] .uilib-show-more-less__content {
37
- display: inline;
35
+ &:not([text-only]) {
36
+ .uilib-show-more-less__content {
37
+ margin-top: var(--uilib-spacing-400);
38
+ margin-bottom: 0;
39
+ }
38
40
 
39
- margin-right: var(--uilib-spacing-100);
40
-
41
- & > *:last-child {
42
- display: inline;
43
- }
44
- }
41
+ &[is-hydrated] .uilib-show-more-less__content {
42
+ block-size: 0;
43
+ content-visibility: hidden;
45
44
 
46
- .uilib-show-more-less:not([text-only]) .uilib-show-more-less__content {
47
- margin-top: var(--uilib-spacing-400);
48
- margin-bottom: var(--uilib-spacing-200);
49
- }
45
+ margin-top: 0;
50
46
 
51
- .uilib-show-more-less:not([text-only])[is-hydrated] .uilib-show-more-less__content {
52
- block-size: 0;
53
- content-visibility: hidden;
47
+ overflow: hidden;
54
48
 
55
- margin-top: 0;
49
+ @media (prefers-reduced-motion: no-preference) {
50
+ transition:
51
+ block-size var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out),
52
+ content-visibility var(--uilib-motion-duration-medium) allow-discrete,
53
+ margin-top var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
54
+ }
55
+ }
56
56
 
57
- overflow: hidden;
57
+ &[is-open] .uilib-show-more-less__content {
58
+ block-size: auto;
59
+ content-visibility: visible;
58
60
 
59
- @media (prefers-reduced-motion: no-preference) {
60
- transition:
61
- block-size var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out),
62
- content-visibility var(--uilib-motion-duration-medium) allow-discrete,
63
- margin-top var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
61
+ margin-top: var(--uilib-spacing-400);
62
+ }
64
63
  }
65
- }
66
-
67
- .uilib-show-more-less:not([text-only])[is-open] .uilib-show-more-less__content {
68
- block-size: auto;
69
- content-visibility: visible;
70
-
71
- margin-top: var(--uilib-spacing-400);
72
- }
73
-
74
- .uilib-show-more-less__button {
75
- margin-top: var(--uilib-spacing-200);
76
- }
77
64
 
78
- .uilib-show-more-less__icon {
79
- -webkit-mask-image: var(--uilib-show-more-less-icon);
80
- mask-image: var(--uilib-show-more-less-icon);
65
+ &__icon {
66
+ -webkit-mask-image: var(--uilib-show-more-less-icon);
67
+ mask-image: var(--uilib-show-more-less-icon);
81
68
 
82
- transform: rotate(0deg);
69
+ transform: rotate(0deg);
83
70
 
84
- @media (prefers-reduced-motion: no-preference) {
85
- transition: transform var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
71
+ @media (prefers-reduced-motion: no-preference) {
72
+ transition: transform var(--uilib-motion-duration-medium) var(--uilib-motion-timing-out);
73
+ }
86
74
  }
87
- }
88
-
89
- .uilib-show-more-less[is-open] .uilib-show-more-less__icon {
90
- transform: rotate(180deg);
91
- }
92
75
 
93
- .uilib-show-more-less[text-only] .uilib-show-more-less__icon {
94
- display: none;
95
- }
76
+ &[is-open] .uilib-show-more-less__icon {
77
+ transform: rotate(180deg);
78
+ }
96
79
 
97
- .uilib-show-more-less--inverse {
98
- color: var(--uilib-color-text-inverse);
80
+ &__button {
81
+ margin-top: var(--uilib-spacing-200);
82
+ }
99
83
 
100
- .uilib-show-more-less__button {
84
+ /* stylelint-disable-next-line order/order */
85
+ &--inverse {
101
86
  color: var(--uilib-color-text-inverse);
102
- text-decoration-color: var(--uilib-color-text-inverse);
87
+
88
+ .uilib-show-more-less__button {
89
+ color: var(--uilib-color-text-inverse);
90
+ text-decoration-color: var(--uilib-color-text-inverse);
91
+ }
103
92
  }
104
93
  }
105
94
  }
@@ -0,0 +1,3 @@
1
+ // social proofing / index
2
+ @use 'mixins' as *;
3
+ @include uilib-social-proofing;
@@ -0,0 +1,67 @@
1
+ @use './variables' as *;
2
+ @use '../icon/mixins' as *;
3
+ @use '../icon-button/mixins' as *;
4
+
5
+ $uilib-social-proofing-included: false !default;
6
+
7
+ // Builds social proofing
8
+ @mixin uilib-social-proofing() {
9
+ @if not $uilib-social-proofing-included {
10
+ $uilib-social-proofing-included: true !global;
11
+
12
+ @include uilib-icon;
13
+ @include uilib-icon-button;
14
+ @include uilib-social-proofing-master;
15
+ }
16
+ }
17
+
18
+ @mixin uilib-social-proofing-master() {
19
+ .uilib-social-proofing {
20
+ position: relative;
21
+
22
+ display: inline-flex;
23
+ gap: var(--uilib-spacing-200);
24
+ align-items: center;
25
+
26
+ margin: var(--uilib-spacing-400) 0;
27
+ padding: var(--uilib-spacing-300) var(--uilib-spacing-1000) var(--uilib-spacing-300) var(--uilib-spacing-300);
28
+
29
+ color: var(--uilib-color-text-strong);
30
+ font: var(--uilib-typography-label-small);
31
+
32
+ border-radius: var(--uilib-social-proofing-radius);
33
+
34
+ background: var(--uilib-color-core-neutral);
35
+
36
+ box-shadow: var(--uilib-social-proofing-box-shadow);
37
+
38
+ &--hidden {
39
+ display: none;
40
+ }
41
+
42
+ &[nojs] {
43
+ padding-right: var(--uilib-spacing-300);
44
+ }
45
+
46
+ &__icon {
47
+ flex-grow: 0;
48
+ flex-shrink: 0;
49
+ }
50
+
51
+ &__button {
52
+ position: absolute;
53
+ right: var(--uilib-spacing-100);
54
+
55
+ &.uilib-icon-button:focus-visible {
56
+ position: absolute;
57
+ }
58
+ }
59
+
60
+ &__close-icon {
61
+ flex-grow: 0;
62
+ flex-shrink: 0;
63
+ -webkit-mask-image: var(--uilib-social-proofing-close-icon);
64
+ mask-image: var(--uilib-social-proofing-close-icon);
65
+ }
66
+ }
67
+ }
@@ -0,0 +1,8 @@
1
+ @use '../../variables/env-variables' as *;
2
+
3
+ // Social proofing specific variables to allow theming
4
+ $uilib-social-proofing-variables: (
5
+ radius: var(--uilib-border-radius-300),
6
+ close-icon: url('#{$uilib-assets-base-url}v3/icons/tui/standard/cross.svg'),
7
+ box-shadow: var(--uilib-elevation-100),
8
+ ) !default;
package/scss/mixins.scss CHANGED
@@ -36,6 +36,7 @@
36
36
  @forward 'lib/pagination/mixins';
37
37
  @forward 'lib/price/mixins';
38
38
  @forward 'lib/promo-tag/mixins';
39
+ @forward 'lib/ratings-reviews/customer-review/mixins';
39
40
  @forward 'lib/ratings-reviews/numerical/mixins';
40
41
  @forward 'lib/ratings-reviews/percentage/mixins';
41
42
  @forward 'lib/ratings-reviews/range-bar/mixins';
@@ -45,6 +46,7 @@
45
46
  @forward 'lib/scroller/mixins';
46
47
  @forward 'lib/show-more-less/mixins';
47
48
  @forward 'lib/skeleton/mixins';
49
+ @forward 'lib/social-proofing/mixins';
48
50
  @forward 'lib/tabs/in-page/mixins';
49
51
  @forward 'lib/tabs/anchor/mixins';
50
52
  @forward 'lib/tooltip/mixins';
@@ -360,3 +360,11 @@ $uilib-crystalski-skeleton-variables: map.merge(
360
360
  shimmer-color: map.get($uilib-crystalski-primitives, 'color-neutral-20'),
361
361
  )
362
362
  );
363
+
364
+ // Social proofing
365
+ $uilib-crystalski-social-proofing-variables: map.merge(
366
+ $uilib-social-proofing-variables,
367
+ (
368
+ close-icon: url('#{$uilib-assets-base-url}v3/icons/crystalski/standard/cross.svg'),
369
+ )
370
+ );
@@ -185,6 +185,9 @@
185
185
  // Skeleton
186
186
  @include util.uilib-build-css-vars('skeleton', $uilib-crystalski-skeleton-variables);
187
187
 
188
+ // Social proofing
189
+ @include util.uilib-build-css-vars('social-proofing', $uilib-crystalski-social-proofing-variables);
190
+
188
191
  // Tabs - in-page
189
192
  @include util.uilib-build-css-vars('tabs-in-page', $uilib-crystalski-tabs-in-page-variables);
190
193
 
@@ -443,3 +443,11 @@ $uilib-firstchoice-skeleton-variables: map.merge(
443
443
  shimmer-color: map.get($uilib-firstchoice-primitives, 'color-neutral-10'),
444
444
  )
445
445
  );
446
+
447
+ // Social proofing
448
+ $uilib-firstchoice-social-proofing-variables: map.merge(
449
+ $uilib-social-proofing-variables,
450
+ (
451
+ close-icon: url('#{$uilib-assets-base-url}v3/icons/firstchoice/standard/cross.svg'),
452
+ )
453
+ );
@@ -185,6 +185,9 @@
185
185
  // Skeleton
186
186
  @include util.uilib-build-css-vars('skeleton', $uilib-firstchoice-skeleton-variables);
187
187
 
188
+ // Social proofing
189
+ @include util.uilib-build-css-vars('social-proofing', $uilib-firstchoice-social-proofing-variables);
190
+
188
191
  // Tabs - in-page
189
192
  @include util.uilib-build-css-vars('tabs-in-page', $uilib-firstchoice-tabs-in-page-variables);
190
193
 
@@ -185,6 +185,9 @@
185
185
  // Skeleton
186
186
  @include util.uilib-build-css-vars('skeleton', $uilib-skeleton-variables);
187
187
 
188
+ // Social proofing
189
+ @include util.uilib-build-css-vars('social-proofing', $uilib-social-proofing-variables);
190
+
188
191
  // Tabs - in-page
189
192
  @include util.uilib-build-css-vars('tabs-in-page', $uilib-tabs-in-page-variables);
190
193
 
@@ -2373,6 +2373,26 @@
2373
2373
  }
2374
2374
  }
2375
2375
  },
2376
+ "social-proofing": {
2377
+ "tokens": {
2378
+ "social-proofing-radius": {
2379
+ "primitive": "uilib-border-radius-300",
2380
+ "title": "Social proofing container radius",
2381
+ "description": "Social proofing container radius"
2382
+ },
2383
+ "social-proofing-close-icon": {
2384
+ "displayType": "icon",
2385
+ "title": "Close Icon ",
2386
+ "description": "Social proofing close button icon",
2387
+ "longValue": true
2388
+ },
2389
+ "social-proofing-box-shadow": {
2390
+ "primitive": "uilib-elevation-100",
2391
+ "title": "Social proofing Container box shadow",
2392
+ "description": "Social proofing container box shadow"
2393
+ }
2394
+ }
2395
+ },
2376
2396
  "tabs-in-page": {
2377
2397
  "tokens": {
2378
2398
  "tabs-in-page-border-color": {
@@ -63,6 +63,7 @@
63
63
  @forward 'lib/scroller/variables';
64
64
  @forward 'lib/show-more-less/variables';
65
65
  @forward 'lib/skeleton/variables';
66
+ @forward 'lib/social-proofing/variables';
66
67
  @forward 'lib/tabs/in-page/variables';
67
68
  @forward 'lib/tabs/anchor/variables';
68
69
  @forward 'lib/tooltip/variables';
@@ -463,6 +463,20 @@ export interface PromoTagProps {
463
463
  theme?: Theme;
464
464
  }
465
465
 
466
+ // ─── Ratings: Customer review ─────────────────────────
467
+ export interface CustomerReviewProps {
468
+ type?: NumericalType;
469
+ variant?: 'brand' | 'tripadvisor';
470
+ score?: number;
471
+ name?: string;
472
+ date?: string;
473
+ reviewTitle?: string;
474
+ reviewContent?: string;
475
+ hasTag?: boolean;
476
+ includeRatings?: boolean;
477
+ theme?: Theme;
478
+ }
479
+
466
480
  // ─── Ratings: Numerical (9/10) ─────────────────────────
467
481
  export type NumericalType = 'rating' | 'filter';
468
482
  export type NumericalVariant = 'brand' | 'alt';
@@ -528,6 +542,7 @@ export interface RangeIconsProps {
528
542
  hasSchema?: boolean;
529
543
  additionalSchemaProps?: SchemaProps;
530
544
  theme?: Theme;
545
+ listVariant?: boolean;
531
546
  }
532
547
 
533
548
  // ─── Ratings: Range icons group ────────────────────────
@@ -541,6 +556,7 @@ export interface RangeIconsGroupProps {
541
556
  variant?: RangeIconsVariant;
542
557
  size?: RangeIconsSize;
543
558
  items?: RangeIconsGroupItem[];
559
+ hasSchema?: boolean;
544
560
  theme?: Theme;
545
561
  }
546
562
 
@@ -647,3 +663,12 @@ export interface TravelAwareBannerProps {
647
663
  linkAccessibilityLabel?: string;
648
664
  isExternal?: boolean;
649
665
  }
666
+
667
+ // ─── Social proofing ───────────────────────────────────────
668
+ export interface SocialProofingProps {
669
+ theme?: Theme;
670
+ iconAsset?: string;
671
+ iconSize?: 'small';
672
+ hasIcon?: boolean;
673
+ closeLabel?: string;
674
+ }