@orangesk/orange-design-system 3.1.0 → 3.3.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 (135) hide show
  1. package/build/components/Avatar/style.css +2 -0
  2. package/build/components/Avatar/style.css.map +1 -0
  3. package/build/components/BodyBanner/style.css +1 -1
  4. package/build/components/BodyBanner/style.css.map +1 -1
  5. package/build/components/Carousel/style.css +1 -1
  6. package/build/components/Carousel/style.css.map +1 -1
  7. package/build/components/Countdown/style.css +2 -0
  8. package/build/components/Countdown/style.css.map +1 -0
  9. package/build/components/DocumentationSidebar/style.css +1 -1
  10. package/build/components/DocumentationSidebar/style.css.map +1 -1
  11. package/build/components/Footer/style.css +1 -1
  12. package/build/components/Footer/style.css.map +1 -1
  13. package/build/components/List/style.css +1 -1
  14. package/build/components/List/style.css.map +1 -1
  15. package/build/components/Megamenu/style.css +1 -1
  16. package/build/components/Megamenu/style.css.map +1 -1
  17. package/build/components/Pill/style.css +1 -1
  18. package/build/components/Pill/style.css.map +1 -1
  19. package/build/components/Preview/style.css +1 -1
  20. package/build/components/Preview/style.css.map +1 -1
  21. package/build/components/StarRating/style.css +2 -0
  22. package/build/components/StarRating/style.css.map +1 -0
  23. package/build/components/index.js +1 -1
  24. package/build/components/index.js.map +1 -1
  25. package/build/components/tsconfig.tsbuildinfo +1 -1
  26. package/build/components/types/index.d.ts +65 -15
  27. package/build/components/types/src/components/Avatar/Avatar.d.ts +7 -0
  28. package/build/components/types/src/components/Avatar/index.d.ts +2 -0
  29. package/build/components/types/src/components/Carousel/Carousel.d.ts +10 -3
  30. package/build/components/types/src/components/Carousel/constants.d.ts +2 -0
  31. package/build/components/types/src/components/Countdown/Countdown.d.ts +10 -0
  32. package/build/components/types/src/components/Countdown/Countdown.react.d.ts +8 -0
  33. package/build/components/types/src/components/Countdown/Countdown.shared.d.ts +54 -0
  34. package/build/components/types/src/components/Countdown/Countdown.static.d.ts +21 -0
  35. package/build/components/types/src/components/Countdown/CountdownTag.d.ts +9 -0
  36. package/build/components/types/src/components/Countdown/CountdownTag.static.d.ts +16 -0
  37. package/build/components/types/src/components/Countdown/constants.d.ts +28 -0
  38. package/build/components/types/src/components/Countdown/index.d.ts +3 -0
  39. package/build/components/types/src/components/DocumentationSidebar/DocumentationSidebar.d.ts +1 -0
  40. package/build/components/types/src/components/Preview/PreviewGenerator.d.ts +1 -0
  41. package/build/components/types/src/components/PromoBanner/PromoBanner.d.ts +5 -1
  42. package/build/components/types/src/components/StarRating/StarRating.d.ts +9 -0
  43. package/build/components/types/src/components/StarRating/index.d.ts +1 -0
  44. package/build/components/types/src/components/index.d.ts +5 -3
  45. package/build/components/types/src/scripts/index.d.ts +10 -0
  46. package/build/components/types/src/styles/export/color.d.ts +2 -0
  47. package/build/lib/base.css +1 -1
  48. package/build/lib/base.css.map +1 -1
  49. package/build/lib/components.css +1 -1
  50. package/build/lib/components.css.map +1 -1
  51. package/build/lib/footer.css +1 -1
  52. package/build/lib/footer.css.map +1 -1
  53. package/build/lib/megamenu.css +1 -1
  54. package/build/lib/megamenu.css.map +1 -1
  55. package/build/lib/scripts.js +1 -1
  56. package/build/lib/scripts.js.map +1 -1
  57. package/build/lib/style.css +1 -1
  58. package/build/lib/style.css.map +1 -1
  59. package/build/lib/tsconfig.tsbuildinfo +1 -1
  60. package/build/lib/utilities.css +1 -1
  61. package/build/lib/utilities.css.map +1 -1
  62. package/build/sprite.svg +1 -1
  63. package/package.json +30 -29
  64. package/src/assets/icons/add.svg +4 -1
  65. package/src/assets/icons/close.svg +3 -3
  66. package/src/assets/icons/menu.svg +4 -1
  67. package/src/assets/icons/pause.svg +3 -3
  68. package/src/assets/icons/play.svg +2 -2
  69. package/src/assets/icons/quote.svg +1 -1
  70. package/src/assets/icons/remove.svg +4 -1
  71. package/src/assets/icons/search.svg +4 -1
  72. package/src/assets/icons/star-empty-thin.svg +4 -0
  73. package/src/components/Avatar/Avatar.tsx +36 -0
  74. package/src/components/Avatar/index.ts +2 -0
  75. package/src/components/Avatar/styles/config.scss +11 -0
  76. package/src/components/Avatar/styles/mixins.scss +53 -0
  77. package/src/components/Avatar/styles/style.scss +20 -0
  78. package/src/components/Avatar/tests/Avatar.conformance.test.jsx +23 -0
  79. package/src/components/Avatar/tests/Avatar.unit.test.jsx +45 -0
  80. package/src/components/BodyBanner/styles/mixins.scss +5 -1
  81. package/src/components/Carousel/Carousel.static.ts +17 -3
  82. package/src/components/Carousel/Carousel.tsx +55 -32
  83. package/src/components/Carousel/constants.ts +2 -0
  84. package/src/components/Carousel/styles/config.scss +5 -8
  85. package/src/components/Carousel/styles/mixins.scss +48 -78
  86. package/src/components/Carousel/styles/style.scss +8 -21
  87. package/src/components/Carousel/tests/Carousel.unit.test.jsx +77 -5
  88. package/src/components/Countdown/Countdown.react.ts +67 -0
  89. package/src/components/Countdown/Countdown.shared.ts +228 -0
  90. package/src/components/Countdown/Countdown.static.ts +201 -0
  91. package/src/components/Countdown/Countdown.tsx +105 -0
  92. package/src/components/Countdown/CountdownTag.static.ts +140 -0
  93. package/src/components/Countdown/CountdownTag.tsx +99 -0
  94. package/src/components/Countdown/constants.ts +36 -0
  95. package/src/components/Countdown/index.ts +3 -0
  96. package/src/components/Countdown/styles/config.scss +17 -0
  97. package/src/components/Countdown/styles/mixins.scss +193 -0
  98. package/src/components/Countdown/styles/style.scss +82 -0
  99. package/src/components/{Testimonial/tests/Testimonial.conformance.test.jsx → Countdown/tests/Countdown.conformance.test.jsx} +7 -2
  100. package/src/components/Countdown/tests/Countdown.static.test.jsx +117 -0
  101. package/src/components/Countdown/tests/Countdown.unit.test.jsx +101 -0
  102. package/src/components/Countdown/tests/CountdownTag.conformance.test.jsx +21 -0
  103. package/src/components/Countdown/tests/CountdownTag.static.test.jsx +30 -0
  104. package/src/components/Countdown/tests/CountdownTag.unit.test.jsx +67 -0
  105. package/src/components/DocumentationSidebar/DocumentationSidebar.tsx +14 -1
  106. package/src/components/DocumentationSidebar/styles/style.scss +11 -0
  107. package/src/components/Forms/Autocomplete/Autocomplete.static.ts +14 -1
  108. package/src/components/Forms/Autocomplete/styles/mixins.scss +3 -2
  109. package/src/components/Forms/Autocomplete/tests/Autocomplete.styles.unit.test.jsx +20 -0
  110. package/src/components/List/styles/config.scss +1 -1
  111. package/src/components/Pill/styles/style.scss +2 -1
  112. package/src/components/Preview/PreviewGenerator.tsx +137 -103
  113. package/src/components/Preview/styles/style.scss +15 -9
  114. package/src/components/PromoBanner/PromoBanner.tsx +24 -7
  115. package/src/components/PromoBanner/tests/PromoBanner.unit.test.jsx +31 -0
  116. package/src/components/StarRating/StarRating.tsx +52 -0
  117. package/src/components/StarRating/index.ts +1 -0
  118. package/src/components/StarRating/styles/style.scss +28 -0
  119. package/src/components/StarRating/tests/StarRating.unit.test.jsx +62 -0
  120. package/src/components/index.ts +9 -3
  121. package/src/styles/export/color.js +2 -0
  122. package/src/styles/tokens/color.scss +2 -0
  123. package/src/styles/typography/mixins.scss +4 -0
  124. package/src/styles/utilities/text.scss +9 -0
  125. package/build/components/Testimonial/style.css +0 -2
  126. package/build/components/Testimonial/style.css.map +0 -1
  127. package/build/components/types/src/components/Testimonial/Testimonial.d.ts +0 -10
  128. package/build/components/types/src/components/Testimonial/index.d.ts +0 -1
  129. package/build/search-index.json +0 -430
  130. package/src/components/Testimonial/Testimonial.tsx +0 -38
  131. package/src/components/Testimonial/index.ts +0 -1
  132. package/src/components/Testimonial/styles/config.scss +0 -42
  133. package/src/components/Testimonial/styles/mixins.scss +0 -44
  134. package/src/components/Testimonial/styles/style.scss +0 -16
  135. package/src/components/Testimonial/tests/Testimonial.unit.test.jsx +0 -43
@@ -0,0 +1,52 @@
1
+ import cx from "classnames";
2
+ import React from "react";
3
+
4
+ import { Icon } from "../Icon";
5
+
6
+ export interface StarRatingProps
7
+ extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> {
8
+ /** Extra class name for root element. */
9
+ className?: string;
10
+ /** Rating value. Rounded to nearest whole star. */
11
+ rating: number;
12
+ }
13
+
14
+ const CLASS_ROOT = "star-rating";
15
+ const STAR_COUNT = 5;
16
+ const FILLED_ICON_NAME = "star-favourite";
17
+ const EMPTY_ICON_NAME = "star-empty-thin";
18
+
19
+ const clampRating = (rating: number) =>
20
+ Math.max(0, Math.min(Math.round(rating), STAR_COUNT));
21
+
22
+ const StarRating: React.FC<StarRatingProps> = ({
23
+ className,
24
+ rating,
25
+ ...other
26
+ }) => {
27
+ const filledStars = clampRating(rating);
28
+
29
+ return (
30
+ <span className={cx(CLASS_ROOT, className)} {...other}>
31
+ {Array.from({ length: STAR_COUNT }, (_, index) => {
32
+ const isFilled = index < filledStars;
33
+
34
+ return (
35
+ <Icon
36
+ key={`${isFilled ? FILLED_ICON_NAME : EMPTY_ICON_NAME}-${index}`}
37
+ className={cx(`${CLASS_ROOT}__icon`, {
38
+ [`${CLASS_ROOT}__icon--filled`]: isFilled,
39
+ [`${CLASS_ROOT}__icon--empty`]: !isFilled,
40
+ })}
41
+ name={isFilled ? FILLED_ICON_NAME : EMPTY_ICON_NAME}
42
+ size="large"
43
+ />
44
+ );
45
+ })}
46
+ </span>
47
+ );
48
+ };
49
+
50
+ StarRating.displayName = "StarRating";
51
+
52
+ export { StarRating };
@@ -0,0 +1 @@
1
+ export { StarRating } from "./StarRating";
@@ -0,0 +1,28 @@
1
+ @use "../../../styles/tools/convert";
2
+ @use "../../../styles/tokens/space";
3
+ @use "../../../styles/tokens/breakpoint";
4
+
5
+ @layer components {
6
+ .star-rating {
7
+ display: flex;
8
+ margin-bottom: space.get("large");
9
+ width: fit-content;
10
+ gap: convert.to-rem(5px);
11
+
12
+ &__icon--filled {
13
+ color: var(--color-icon-brand);
14
+ }
15
+
16
+ &__icon--empty {
17
+ color: var(--color-icon-disabled);
18
+ }
19
+
20
+ &__icon {
21
+ --icon-size: #{convert.to-rem(24px)};
22
+
23
+ @include breakpoint.get(md) {
24
+ --icon-size: #{convert.to-rem(32px)};
25
+ }
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @vitest-environment jsdom
3
+ */
4
+
5
+ import { render } from "@testing-library/react";
6
+
7
+ import { StarRating } from "../StarRating";
8
+
9
+ describe("rendering StarRating", () => {
10
+ it("has default class star-rating", () => {
11
+ const { getByTestId } = render(
12
+ <StarRating rating={4} data-testid="test-id" />,
13
+ );
14
+
15
+ expect(getByTestId("test-id")).toHaveClass("star-rating");
16
+ });
17
+
18
+ it("renders five icons by default", () => {
19
+ const { container } = render(<StarRating rating={4} />);
20
+
21
+ expect(container.querySelectorAll("svg.icon")).toHaveLength(5);
22
+ expect(container.querySelector("svg")).toHaveClass("icon--large");
23
+ });
24
+
25
+ it("renders filled and empty stars from rating", () => {
26
+ const { container } = render(<StarRating rating={3} />);
27
+ const uses = container.querySelectorAll("use");
28
+
29
+ expect(uses[0].getAttribute("xlink:href")).toBe(
30
+ "/sprite.svg#star-favourite",
31
+ );
32
+ expect(uses[1].getAttribute("xlink:href")).toBe(
33
+ "/sprite.svg#star-favourite",
34
+ );
35
+ expect(uses[2].getAttribute("xlink:href")).toBe(
36
+ "/sprite.svg#star-favourite",
37
+ );
38
+ expect(uses[3].getAttribute("xlink:href")).toBe(
39
+ "/sprite.svg#star-empty-thin",
40
+ );
41
+ expect(uses[4].getAttribute("xlink:href")).toBe(
42
+ "/sprite.svg#star-empty-thin",
43
+ );
44
+ });
45
+
46
+ it("rounds and clamps rating", () => {
47
+ const { container } = render(<StarRating rating={5.7} />);
48
+ const uses = container.querySelectorAll("use");
49
+
50
+ uses.forEach((use) => {
51
+ expect(use.getAttribute("xlink:href")).toBe("/sprite.svg#star-favourite");
52
+ });
53
+ });
54
+
55
+ it("passes aria-label through", () => {
56
+ const { getByTestId } = render(
57
+ <StarRating rating={2} aria-label="2 out of 5" data-testid="test-id" />,
58
+ );
59
+
60
+ expect(getByTestId("test-id")).toHaveAttribute("aria-label", "2 out of 5");
61
+ });
62
+ });
@@ -1,6 +1,7 @@
1
1
  import { Accordion, AccordionItem } from "./Accordion";
2
2
  import { Alert } from "./Alert";
3
3
  import { AnchorNavigation } from "./AnchorNavigation";
4
+ import { Avatar } from "./Avatar";
4
5
  import { Bar, BarBreak, BarItem } from "./Bar";
5
6
  import {
6
7
  BlockAction,
@@ -19,12 +20,13 @@ import {
19
20
  } from "./Button";
20
21
  import { Buttons } from "./Buttons";
21
22
  import { Card, CardProductHeader, CardSection } from "./Card";
22
- import { Carousel } from "./Carousel";
23
+ import { Carousel, CarouselItem } from "./Carousel";
23
24
  import { CarouselHero, CarouselHeroItem } from "./CarouselHero";
24
25
  import { CarouselPromotions } from "./CarouselPromotions";
25
26
  import { CartTable } from "./CartTable";
26
27
  import { Container } from "./Container";
27
28
  import { Controls } from "./Controls";
29
+ import { Countdown, CountdownTag } from "./Countdown";
28
30
  import { Cover } from "./Cover";
29
31
  import { Divider } from "./Divider";
30
32
  import {
@@ -85,12 +87,12 @@ import { Section } from "./Section";
85
87
  import { Skeleton } from "./Skeleton";
86
88
  import { SkipLink } from "./SkipLink";
87
89
  import { SocialButton } from "./SocialButton";
90
+ import { StarRating } from "./StarRating";
88
91
  import { Stepbar } from "./Stepbar";
89
92
  import { Sticker } from "./Sticker";
90
93
  import { Table } from "./Table";
91
94
  import { Tab, TabPanel, Tabs } from "./Tabs";
92
95
  import { Tag, TagButton } from "./Tag";
93
- import { Testimonial } from "./Testimonial";
94
96
  import { Tile } from "./Tile";
95
97
  import { Timeline } from "./Timeline";
96
98
  import { InfoTooltip, Tooltip } from "./Tooltip";
@@ -101,6 +103,7 @@ export {
101
103
  Alert,
102
104
  AnchorNavigation,
103
105
  Autocomplete,
106
+ Avatar,
104
107
  Bar,
105
108
  BarBreak,
106
109
  BarItem,
@@ -121,11 +124,14 @@ export {
121
124
  Carousel,
122
125
  CarouselHero,
123
126
  CarouselHeroItem,
127
+ CarouselItem,
124
128
  CarouselPromotions,
125
129
  CartTable,
126
130
  Checkbox,
127
131
  Container,
128
132
  Controls,
133
+ Countdown,
134
+ CountdownTag,
129
135
  Cover,
130
136
  Divider,
131
137
  Dropdown,
@@ -185,6 +191,7 @@ export {
185
191
  SocialButton,
186
192
  SpritePathContext,
187
193
  SpritePathProvider,
194
+ StarRating,
188
195
  Stepbar,
189
196
  Sticker,
190
197
  Tab,
@@ -193,7 +200,6 @@ export {
193
200
  Tabs,
194
201
  Tag,
195
202
  TagButton,
196
- Testimonial,
197
203
  TextArea,
198
204
  TextInput,
199
205
  Tile,
@@ -27,6 +27,7 @@ export const exports = {
27
27
  "light-fill-accent3": "#ffb4e6",
28
28
  "light-fill-accent4": "#a885d8",
29
29
  "light-fill-accent5": "#ffd200",
30
+ "light-fill-accent6": "#ffc48f",
30
31
  "light-fill-information": "rgba(65, 112, 216, 0.0784313725)",
31
32
  "light-fill-positive": "rgba(34, 135, 34, 0.0784313725)",
32
33
  "light-fill-warning": "rgba(255, 204, 0, 0.0784313725)",
@@ -78,6 +79,7 @@ export const exports = {
78
79
  "dark-fill-accent3": "#ffb4e6",
79
80
  "dark-fill-accent4": "#a885d8",
80
81
  "dark-fill-accent5": "#ffd200",
82
+ "dark-icon-accent6": "#ffc48f",
81
83
  "dark-fill-information": "rgba(65, 112, 216, 0.2)",
82
84
  "dark-fill-positive": "rgba(34, 135, 34, 0.2)",
83
85
  "dark-fill-warning": "rgba(255, 204, 0, 0.2)",
@@ -26,6 +26,7 @@ $colors-light: (
26
26
  fill-accent3: #ffb4e6,
27
27
  fill-accent4: #a885d8,
28
28
  fill-accent5: #ffd200,
29
+ fill-accent6: #ffc48f,
29
30
  fill-information: #4170d814,
30
31
  fill-positive: #22872214,
31
32
  fill-warning: #ffcc0014,
@@ -80,6 +81,7 @@ $colors-dark: (
80
81
  fill-accent3: #ffb4e6,
81
82
  fill-accent4: #a885d8,
82
83
  fill-accent5: #ffd200,
84
+ icon-accent6: #ffc48f,
83
85
  fill-information: #4170d833,
84
86
  fill-positive: #22872233,
85
87
  fill-warning: #ffcc0033,
@@ -19,6 +19,10 @@
19
19
  max-width: none;
20
20
  }
21
21
 
22
+ @mixin text-relaxed {
23
+ max-inline-size: clamp(40rem, 75vw, 70rem);
24
+ }
25
+
22
26
  @mixin headings-base($heading-config, $selector-pattern, $base-styles) {
23
27
  $selector: ();
24
28
 
@@ -55,6 +55,12 @@
55
55
  );
56
56
  }
57
57
 
58
+ .body-text-sm {
59
+ @include generate.css-map(
60
+ map.get(map.get(typographyConfig.$body-text, "default"), "default")
61
+ );
62
+ }
63
+
58
64
  .large {
59
65
  @include generate.responsive-css-map(
60
66
  map.get(typographyConfig.$body-text, "large")
@@ -152,4 +158,7 @@
152
158
  .text-narrow {
153
159
  @include typographyMixins.text-narrow;
154
160
  }
161
+ .text-relaxed {
162
+ @include typographyMixins.text-relaxed;
163
+ }
155
164
  }
@@ -1,2 +0,0 @@
1
- @layer components{.testimonial{font-size:.875rem;padding:.625rem 1.875rem .625rem 2.5rem;position:relative;width:fit-content}.testimonial:after,.testimonial:before{background-color:var(--color-background-contrast);background-repeat:no-repeat;content:"";display:block;height:1.125rem;position:absolute;width:1.25rem}.testimonial:before{bottom:0;left:0;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg width="20" height="18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0h7.551v7.551c0 1.36-.159 2.653-.476 3.878-.272 1.179-.726 2.222-1.36 3.129A6.652 6.652 0 0 1 3.4 16.735c-.907.544-2.018.816-3.333.816V14.15c.771 0 1.406-.182 1.905-.545.499-.408.907-.93 1.224-1.564a6.33 6.33 0 0 0 .613-2.109c.136-.816.204-1.61.204-2.381H0V0Zm12.449 0H20v7.551c0 1.36-.159 2.653-.476 3.878-.272 1.179-.726 2.222-1.36 3.129a6.653 6.653 0 0 1-2.314 2.177c-.907.544-2.018.816-3.333.816V14.15c.771 0 1.406-.182 1.905-.545.499-.408.907-.93 1.224-1.564a6.331 6.331 0 0 0 .613-2.109c.136-.816.204-1.61.204-2.381h-4.014V0Z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg width="20" height="18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0h7.551v7.551c0 1.36-.159 2.653-.476 3.878-.272 1.179-.726 2.222-1.36 3.129A6.652 6.652 0 0 1 3.4 16.735c-.907.544-2.018.816-3.333.816V14.15c.771 0 1.406-.182 1.905-.545.499-.408.907-.93 1.224-1.564a6.33 6.33 0 0 0 .613-2.109c.136-.816.204-1.61.204-2.381H0V0Zm12.449 0H20v7.551c0 1.36-.159 2.653-.476 3.878-.272 1.179-.726 2.222-1.36 3.129a6.653 6.653 0 0 1-2.314 2.177c-.907.544-2.018.816-3.333.816V14.15c.771 0 1.406-.182 1.905-.545.499-.408.907-.93 1.224-1.564a6.331 6.331 0 0 0 .613-2.109c.136-.816.204-1.61.204-2.381h-4.014V0Z"/></svg>')}.testimonial:after{mask-image:url('data:image/svg+xml;charset=utf-8,<svg width="20" height="18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.551 17.551H0V10c0-1.36.136-2.63.408-3.81.318-1.224.771-2.29 1.36-3.197A7.288 7.288 0 0 1 4.15.816C5.102.272 6.213 0 7.483 0v3.401c-.771 0-1.406.204-1.905.613-.499.362-.907.861-1.224 1.496-.318.635-.544 1.36-.68 2.177A19.78 19.78 0 0 0 3.536 10h4.014v7.551Zm12.449 0h-7.551V10c0-1.36.136-2.63.408-3.81.318-1.224.771-2.29 1.36-3.197A7.289 7.289 0 0 1 16.6.816C17.55.272 18.662 0 19.932 0v3.401c-.771 0-1.406.204-1.905.613-.499.362-.907.861-1.224 1.496-.318.635-.544 1.36-.68 2.177A19.78 19.78 0 0 0 15.985 10H20v7.551Z"/></svg>');-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg width="20" height="18" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M7.551 17.551H0V10c0-1.36.136-2.63.408-3.81.318-1.224.771-2.29 1.36-3.197A7.288 7.288 0 0 1 4.15.816C5.102.272 6.213 0 7.483 0v3.401c-.771 0-1.406.204-1.905.613-.499.362-.907.861-1.224 1.496-.318.635-.544 1.36-.68 2.177A19.78 19.78 0 0 0 3.536 10h4.014v7.551Zm12.449 0h-7.551V10c0-1.36.136-2.63.408-3.81.318-1.224.771-2.29 1.36-3.197A7.289 7.289 0 0 1 16.6.816C17.55.272 18.662 0 19.932 0v3.401c-.771 0-1.406.204-1.905.613-.499.362-.907.861-1.224 1.496-.318.635-.544 1.36-.68 2.177A19.78 19.78 0 0 0 15.985 10H20v7.551Z"/></svg>');right:0;top:0}.testimonial--orange:after,.testimonial--orange:before{background-color:var(--color-surface-secondary)}}
2
- /*# sourceMappingURL=style.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["style.scss"],"names":[],"mappings":"AAAA,kBACE,aAGE,iBAAmB,CAFnB,uCAA0C,CAG1C,iBAAkB,CAFlB,iBAGF,CACA,uCAOE,iDAAkD,CADlD,2BAA4B,CAL5B,UAAW,CACX,aAAc,CAEd,eAAgB,CADhB,iBAAkB,CAElB,aAGF,CACA,oBAIE,QAAS,CADT,MAAO,CAFP,0sBAAq/B,CACr/B,ksBAGF,CACA,mBACE,mrBAA09B,CAC19B,2rBAAk+B,CAEl+B,OAAQ,CADR,KAEF,CACA,uDACE,+CACF,CACF","file":"style.css","sourcesContent":["@layer components {\n .testimonial {\n padding: 0.625rem 1.875rem 0.625rem 2.5rem;\n width: fit-content;\n font-size: 0.875rem;\n position: relative;\n }\n .testimonial::before, .testimonial::after {\n content: \"\";\n display: block;\n position: absolute;\n height: 1.125rem;\n width: 1.25rem;\n background-repeat: no-repeat;\n background-color: var(--color-background-contrast);\n }\n .testimonial::before {\n -webkit-mask-image: url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 0H7.55102V7.55102C7.55102 8.91157 7.39229 10.2041 7.07483 11.4286C6.80272 12.6077 6.34921 13.6508 5.71429 14.5578C5.12472 15.4649 4.35374 16.1905 3.40136 16.7347C2.49433 17.2789 1.38322 17.551 0.0680272 17.551V14.1497C0.839002 14.1497 1.47392 13.9683 1.97279 13.6054C2.47166 13.1973 2.87982 12.6757 3.19728 12.0408C3.51474 11.4059 3.71882 10.703 3.80952 9.93198C3.94558 9.11565 4.01361 8.322 4.01361 7.55102H0V0ZM12.449 0H20V7.55102C20 8.91157 19.8413 10.2041 19.5238 11.4286C19.2517 12.6077 18.7982 13.6508 18.1633 14.5578C17.5737 15.4649 16.8027 16.1905 15.8503 16.7347C14.9433 17.2789 13.8322 17.551 12.517 17.551V14.1497C13.288 14.1497 13.9229 13.9683 14.4218 13.6054C14.9206 13.1973 15.3288 12.6757 15.6463 12.0408C15.9637 11.4059 16.1678 10.703 16.2585 9.93198C16.3946 9.11565 16.4626 8.322 16.4626 7.55102H12.449V0Z\" /></svg>');\n mask-image: url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0 0H7.55102V7.55102C7.55102 8.91157 7.39229 10.2041 7.07483 11.4286C6.80272 12.6077 6.34921 13.6508 5.71429 14.5578C5.12472 15.4649 4.35374 16.1905 3.40136 16.7347C2.49433 17.2789 1.38322 17.551 0.0680272 17.551V14.1497C0.839002 14.1497 1.47392 13.9683 1.97279 13.6054C2.47166 13.1973 2.87982 12.6757 3.19728 12.0408C3.51474 11.4059 3.71882 10.703 3.80952 9.93198C3.94558 9.11565 4.01361 8.322 4.01361 7.55102H0V0ZM12.449 0H20V7.55102C20 8.91157 19.8413 10.2041 19.5238 11.4286C19.2517 12.6077 18.7982 13.6508 18.1633 14.5578C17.5737 15.4649 16.8027 16.1905 15.8503 16.7347C14.9433 17.2789 13.8322 17.551 12.517 17.551V14.1497C13.288 14.1497 13.9229 13.9683 14.4218 13.6054C14.9206 13.1973 15.3288 12.6757 15.6463 12.0408C15.9637 11.4059 16.1678 10.703 16.2585 9.93198C16.3946 9.11565 16.4626 8.322 16.4626 7.55102H12.449V0Z\" /></svg>');\n left: 0;\n bottom: 0;\n }\n .testimonial::after {\n mask-image: url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.55102 17.551H0V10C0 8.63946 0.136054 7.36962 0.408163 6.19048C0.725624 4.96599 1.17914 3.90023 1.76871 2.9932C2.40363 2.08617 3.19728 1.36055 4.14966 0.81633C5.10204 0.272111 6.21315 0 7.48299 0V3.40136C6.71202 3.40136 6.0771 3.60544 5.57823 4.01361C5.07937 4.37642 4.6712 4.87528 4.35374 5.5102C4.03628 6.14513 3.80952 6.87075 3.67347 7.68708C3.58277 8.45805 3.53742 9.22902 3.53742 10H7.55102V17.551ZM20 17.551H12.449V10C12.449 8.63946 12.585 7.36962 12.8571 6.19048C13.1746 4.96599 13.6281 3.90023 14.2177 2.9932C14.8526 2.08617 15.6463 1.36055 16.5986 0.81633C17.551 0.272111 18.6621 0 19.932 0V3.40136C19.161 3.40136 18.5261 3.60544 18.0272 4.01361C17.5283 4.37642 17.1202 4.87528 16.8027 5.5102C16.4853 6.14513 16.2585 6.87075 16.1224 7.68708C16.0317 8.45805 15.9864 9.22902 15.9864 10H20V17.551Z\" /></svg>');\n -webkit-mask-image: url('data:image/svg+xml,<svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.55102 17.551H0V10C0 8.63946 0.136054 7.36962 0.408163 6.19048C0.725624 4.96599 1.17914 3.90023 1.76871 2.9932C2.40363 2.08617 3.19728 1.36055 4.14966 0.81633C5.10204 0.272111 6.21315 0 7.48299 0V3.40136C6.71202 3.40136 6.0771 3.60544 5.57823 4.01361C5.07937 4.37642 4.6712 4.87528 4.35374 5.5102C4.03628 6.14513 3.80952 6.87075 3.67347 7.68708C3.58277 8.45805 3.53742 9.22902 3.53742 10H7.55102V17.551ZM20 17.551H12.449V10C12.449 8.63946 12.585 7.36962 12.8571 6.19048C13.1746 4.96599 13.6281 3.90023 14.2177 2.9932C14.8526 2.08617 15.6463 1.36055 16.5986 0.81633C17.551 0.272111 18.6621 0 19.932 0V3.40136C19.161 3.40136 18.5261 3.60544 18.0272 4.01361C17.5283 4.37642 17.1202 4.87528 16.8027 5.5102C16.4853 6.14513 16.2585 6.87075 16.1224 7.68708C16.0317 8.45805 15.9864 9.22902 15.9864 10H20V17.551Z\" /></svg>');\n top: 0;\n right: 0;\n }\n .testimonial--orange::before, .testimonial--orange::after {\n background-color: var(--color-surface-secondary);\n }\n}"]}
@@ -1,10 +0,0 @@
1
- import React from "react";
2
- interface TestimonialProps {
3
- className?: string;
4
- children?: React.ReactNode;
5
- color?: "default" | "orange";
6
- isDiv?: boolean;
7
- [key: string]: any;
8
- }
9
- export declare const Testimonial: React.FC<TestimonialProps>;
10
- export {};
@@ -1 +0,0 @@
1
- export { Testimonial } from "./Testimonial";