@phillips/seldon 1.249.0 → 1.251.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 (137) hide show
  1. package/dist/_virtual/index10.js +2 -2
  2. package/dist/_virtual/index9.js +2 -2
  3. package/dist/assets/formatted/Account.js +15 -11
  4. package/dist/assets/formatted/AccountActive.js +17 -13
  5. package/dist/assets/formatted/Add.js +18 -14
  6. package/dist/assets/formatted/AdminCheck.js +19 -15
  7. package/dist/assets/formatted/AdminChevronLeft.js +17 -13
  8. package/dist/assets/formatted/AdminChevronRight.js +19 -15
  9. package/dist/assets/formatted/AdminChevronUp.js +18 -14
  10. package/dist/assets/formatted/AdminClose.js +20 -16
  11. package/dist/assets/formatted/AdminFullscreen.js +19 -21
  12. package/dist/assets/formatted/AdminFullscreenExit.js +19 -15
  13. package/dist/assets/formatted/AdminGavel.js +22 -18
  14. package/dist/assets/formatted/AdminHome.js +19 -15
  15. package/dist/assets/formatted/AdminLiveOnline.js +20 -16
  16. package/dist/assets/formatted/AdminPencil.js +18 -14
  17. package/dist/assets/formatted/AdminPerson.js +16 -12
  18. package/dist/assets/formatted/AdminPlay.js +19 -15
  19. package/dist/assets/formatted/AdminSearch.js +20 -16
  20. package/dist/assets/formatted/AdminTelephone.js +17 -13
  21. package/dist/assets/formatted/AppleAppStoreBadge.js +19 -15
  22. package/dist/assets/formatted/ArrowDown.js +16 -12
  23. package/dist/assets/formatted/ArrowLeft.js +16 -12
  24. package/dist/assets/formatted/ArrowRight.js +17 -13
  25. package/dist/assets/formatted/ArrowUp.js +18 -14
  26. package/dist/assets/formatted/Bag.js +18 -14
  27. package/dist/assets/formatted/Calendar.js +17 -13
  28. package/dist/assets/formatted/ChevronDown.js +17 -13
  29. package/dist/assets/formatted/ChevronLeft.js +17 -13
  30. package/dist/assets/formatted/ChevronRight.js +19 -15
  31. package/dist/assets/formatted/ChevronUp.js +17 -13
  32. package/dist/assets/formatted/Clock.js +18 -14
  33. package/dist/assets/formatted/CloseX.js +14 -10
  34. package/dist/assets/formatted/ConditionReport.js +19 -15
  35. package/dist/assets/formatted/Delete.js +20 -16
  36. package/dist/assets/formatted/Download.js +18 -14
  37. package/dist/assets/formatted/Edit.js +20 -16
  38. package/dist/assets/formatted/Email.js +19 -15
  39. package/dist/assets/formatted/Error.js +20 -16
  40. package/dist/assets/formatted/ExternalLink.js +16 -12
  41. package/dist/assets/formatted/Facebook.js +18 -14
  42. package/dist/assets/formatted/Favorite.js +17 -13
  43. package/dist/assets/formatted/FavoriteActive.js +17 -15
  44. package/dist/assets/formatted/Filters.js +19 -15
  45. package/dist/assets/formatted/Fullscreen.js +17 -13
  46. package/dist/assets/formatted/FullscreenExit.js +17 -13
  47. package/dist/assets/formatted/Gavel.js +19 -15
  48. package/dist/assets/formatted/GavelActive.js +18 -14
  49. package/dist/assets/formatted/Grid.js +16 -12
  50. package/dist/assets/formatted/Hide.js +20 -16
  51. package/dist/assets/formatted/Home.js +17 -13
  52. package/dist/assets/formatted/HomeActive.js +17 -13
  53. package/dist/assets/formatted/Icon.js +19 -15
  54. package/dist/assets/formatted/IconBlueCircle.js +18 -14
  55. package/dist/assets/formatted/IconGreenCircle.js +17 -13
  56. package/dist/assets/formatted/IconOrangeCircle.js +18 -14
  57. package/dist/assets/formatted/IconRedCircle.js +17 -13
  58. package/dist/assets/formatted/ImageUnavailable.js +23 -112
  59. package/dist/assets/formatted/Instagram.js +20 -16
  60. package/dist/assets/formatted/LinkedIn.js +19 -15
  61. package/dist/assets/formatted/List.js +20 -16
  62. package/dist/assets/formatted/LiveNow.js +17 -17
  63. package/dist/assets/formatted/Lock.js +19 -15
  64. package/dist/assets/formatted/MagnificentSeven.js +21 -17
  65. package/dist/assets/formatted/Menu.js +17 -13
  66. package/dist/assets/formatted/Mute.js +22 -18
  67. package/dist/assets/formatted/Pause.js +16 -12
  68. package/dist/assets/formatted/PhillipsAppIcon.js +21 -17
  69. package/dist/assets/formatted/PhillipsLogo.js +17 -13
  70. package/dist/assets/formatted/Play.js +18 -14
  71. package/dist/assets/formatted/Red.js +13 -9
  72. package/dist/assets/formatted/Refresh.js +17 -13
  73. package/dist/assets/formatted/Search.js +19 -14
  74. package/dist/assets/formatted/Sell.js +19 -15
  75. package/dist/assets/formatted/SellActive.js +19 -15
  76. package/dist/assets/formatted/Share.js +15 -11
  77. package/dist/assets/formatted/Subtract.js +19 -15
  78. package/dist/assets/formatted/Success.js +16 -12
  79. package/dist/assets/formatted/Tooltip.js +21 -17
  80. package/dist/assets/formatted/TwitterX.js +19 -15
  81. package/dist/assets/formatted/Upload.js +16 -12
  82. package/dist/assets/formatted/View.js +15 -11
  83. package/dist/assets/formatted/VolumeMaximum.js +17 -13
  84. package/dist/assets/formatted/VolumeMid.js +21 -17
  85. package/dist/assets/formatted/VolumeMinimum.js +19 -15
  86. package/dist/assets/formatted/WeChat.js +19 -15
  87. package/dist/assets/pictograms/formatted/Chat.js +22 -18
  88. package/dist/assets/pictograms/formatted/CreditCard.js +20 -16
  89. package/dist/assets/pictograms/formatted/Form.js +19 -15
  90. package/dist/assets/pictograms/formatted/Live.js +17 -13
  91. package/dist/assets/pictograms/formatted/MobilePhone.js +18 -14
  92. package/dist/assets/pictograms/formatted/Notification.js +21 -17
  93. package/dist/assets/pictograms/formatted/Phone.js +25 -21
  94. package/dist/assets/pictograms/formatted/Photos.js +21 -17
  95. package/dist/assets/pictograms/formatted/Search.js +18 -14
  96. package/dist/assets/pictograms/formatted/Shipping.js +17 -13
  97. package/dist/assets/pictograms/formatted/Sign.js +16 -12
  98. package/dist/assets/pictograms/formatted/Submit.js +21 -17
  99. package/dist/assets/pictograms/formatted/Timer.js +21 -17
  100. package/dist/assets/pictograms/formatted/Verification.js +22 -18
  101. package/dist/components/AddToCalendar/AddToCalendar.js +5 -5
  102. package/dist/components/Card/Card.d.ts +41 -0
  103. package/dist/components/Card/Card.js +80 -0
  104. package/dist/components/Card/Card.stories.d.ts +63 -0
  105. package/dist/components/Card/Card.test.d.ts +1 -0
  106. package/dist/components/Card/index.d.ts +2 -0
  107. package/dist/components/Card/types.d.ts +4 -0
  108. package/dist/components/Card/types.js +4 -0
  109. package/dist/components/Carousel/Carousel.js +74 -74
  110. package/dist/components/Carousel/CarouselArrows.js +25 -23
  111. package/dist/components/Carousel/CarouselDot.js +1 -1
  112. package/dist/components/Carousel/CarouselDots.js +27 -25
  113. package/dist/components/Carousel/CarouselItem.js +16 -16
  114. package/dist/components/ComboBox/ComboBox.js +48 -44
  115. package/dist/components/ComboBox/ComboBox.stories.d.ts +10 -0
  116. package/dist/components/Dropdown/Dropdown.js +3 -3
  117. package/dist/components/FavoritingTileButton/FavoritingTileButton.js +13 -14
  118. package/dist/components/IconButton/IconButton.js +16 -15
  119. package/dist/components/Input/utils.js +3 -2
  120. package/dist/components/SeldonImage/SeldonImage.stories.d.ts +5 -0
  121. package/dist/components/Toast/Toast.stories.d.ts +8 -0
  122. package/dist/components/Video/Video.d.ts +4 -0
  123. package/dist/components/Video/Video.js +12 -11
  124. package/dist/index.d.ts +1 -0
  125. package/dist/index.js +240 -236
  126. package/dist/node_modules/ics/dist/index.js +1 -1
  127. package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
  128. package/dist/patterns/SaleCard/SaleCard.d.ts +3 -3
  129. package/dist/patterns/SaleCard/SaleCard.js +41 -42
  130. package/dist/patterns/SaleCard/SaleCard.stories.d.ts +1 -1
  131. package/dist/scss/componentStyles.scss +1 -0
  132. package/dist/scss/components/Card/_card.scss +113 -0
  133. package/dist/scss/components/Countdown/_countdown.scss +1 -1
  134. package/dist/scss/components/SeldonImage/_seldonImage.scss +16 -4
  135. package/dist/scss/pages/_page.scss +4 -4
  136. package/dist/scss/patterns/SaleCard/_saleCard.scss +3 -66
  137. package/package.json +10 -5
@@ -1,52 +1,51 @@
1
- import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
- import u from "../../_virtual/index.js";
3
- import { forwardRef as L } from "react";
4
- import T from "../../components/Button/Button.js";
5
- import { ButtonVariants as A } from "../../components/Button/types.js";
6
- import I from "../../components/SeldonImage/SeldonImage.js";
7
- import { TextVariants as r } from "../../components/Text/types.js";
8
- import e from "../../components/Text/Text.js";
9
- import { SSRMediaQuery as k } from "../../providers/SeldonProvider/utils.js";
10
- import { getCommonProps as x } from "../../utils/index.js";
11
- import { SaleCardImageDisplay as P, SaleCardVariants as f } from "./types.js";
12
- const R = L(
1
+ import { jsxs as m, jsx as r } from "react/jsx-runtime";
2
+ import L from "../../_virtual/index.js";
3
+ import { forwardRef as M } from "react";
4
+ import g from "../../components/Button/Button.js";
5
+ import a from "../../components/Card/Card.js";
6
+ import { CardVariants as A } from "../../components/Card/types.js";
7
+ import { ButtonVariants as R } from "../../components/Button/types.js";
8
+ import { SSRMediaQuery as T } from "../../providers/SeldonProvider/utils.js";
9
+ import { getCommonProps as k } from "../../utils/index.js";
10
+ import { SaleCardImageDisplay as w, SaleCardVariants as f } from "./types.js";
11
+ const y = M(
13
12
  ({
14
13
  className: p,
15
- imageSrc: s,
16
- imageAlt: S = "Auction Image",
17
- auctionType: h,
18
- titleText: N,
19
- date: $,
20
- location: v,
21
- badgeText: o,
22
- modalButtonOnClick: n,
14
+ imageSrc: l,
15
+ imageAlt: h = "Auction Image",
16
+ auctionType: C,
17
+ titleText: u,
18
+ date: E,
19
+ location: S,
20
+ badgeText: s,
21
+ modalButtonOnClick: i,
23
22
  modalButtonText: t,
24
- variant: m = f.DEFAULT,
25
- children: c,
26
- imageDisplay: d = P.LEFT,
27
- ..._
28
- }, g) => {
29
- const { className: a, ...C } = x(_, "SaleCard"), E = u(a, p, {
30
- [`${a}--${m}`]: m,
31
- [`${a}--image-${d}`]: d
32
- }), b = { ...C, ..._ };
33
- return /* @__PURE__ */ i("article", { ...b, className: E, ref: g, children: [
34
- s ? /* @__PURE__ */ l(I, { src: s, alt: S, className: `${a}__image` }) : null,
35
- /* @__PURE__ */ i("div", { className: `${a}__details`, children: [
36
- /* @__PURE__ */ l(e, { variant: r.labelSmall, children: h }),
37
- /* @__PURE__ */ l(e, { variant: r.headingSmall, className: `${a}__title`, children: N }),
38
- o && /* @__PURE__ */ l(e, { variant: r.badgeSmall, className: `${a}__badge`, children: o }),
39
- /* @__PURE__ */ i("div", { className: `${a}__info`, children: [
40
- /* @__PURE__ */ l(e, { variant: r.labelSmall, children: v }),
41
- /* @__PURE__ */ l(e, { variant: r.labelSmall, children: $ }),
42
- t && n && /* @__PURE__ */ l("div", { className: `${a}__modal-link`, children: /* @__PURE__ */ l(T, { onClick: n, variant: A.link, linkSize: "sm", children: t }) })
23
+ variant: o = f.DEFAULT,
24
+ children: n,
25
+ imageDisplay: c = w.LEFT,
26
+ ...d
27
+ }, _) => {
28
+ const { className: e, ...N } = k(d, "SaleCard"), $ = L(e, p, {
29
+ [`${e}--${o}`]: o,
30
+ [`${e}--image-${c}`]: c
31
+ }), I = { ...N, ...d };
32
+ return /* @__PURE__ */ m(a.Root, { ref: _, element: "article", variant: A.default, className: $, ...I, children: [
33
+ l ? /* @__PURE__ */ r(a.Image, { alt: h, src: l }) : null,
34
+ /* @__PURE__ */ m(a.Content, { children: [
35
+ /* @__PURE__ */ r(a.Eyebrow, { children: C }),
36
+ /* @__PURE__ */ r(a.Title, { children: u }),
37
+ s ? /* @__PURE__ */ r(a.Badge, { children: s }) : null,
38
+ /* @__PURE__ */ m(a.Meta, { className: `${e}__info`, children: [
39
+ /* @__PURE__ */ r(a.MetaItem, { children: S }),
40
+ /* @__PURE__ */ r(a.MetaItem, { children: E }),
41
+ t && i && /* @__PURE__ */ r("div", { className: `${e}__modal-link`, children: /* @__PURE__ */ r(g, { onClick: i, variant: R.link, linkSize: "sm", children: t }) })
43
42
  ] })
44
43
  ] }),
45
- m !== f.RELATED_SALE_TILE && c && /* @__PURE__ */ l("div", { className: `${a}__ctas`, children: /* @__PURE__ */ l(k.Media, { greaterThanOrEqual: "snw-mobile", children: c }) })
44
+ o !== f.RELATED_SALE_TILE && n && /* @__PURE__ */ r("div", { className: `${e}__ctas`, children: /* @__PURE__ */ r(T.Media, { greaterThanOrEqual: "snw-mobile", children: n }) })
46
45
  ] });
47
46
  }
48
47
  );
49
- R.displayName = "SaleCard";
48
+ y.displayName = "SaleCard";
50
49
  export {
51
- R as default
50
+ y as default
52
51
  };
@@ -1,7 +1,7 @@
1
1
  import { SaleCardProps } from './SaleCard';
2
2
  declare const meta: {
3
3
  title: string;
4
- component: import('react').ForwardRefExoticComponent<Omit<SaleCardProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
4
+ component: import('react').ForwardRefExoticComponent<Omit<SaleCardProps, "ref"> & import('react').RefAttributes<HTMLElement>>;
5
5
  };
6
6
  export default meta;
7
7
  export declare const SaleCardPlayground: {
@@ -8,6 +8,7 @@
8
8
 
9
9
  // ⚛️ Components
10
10
  @use 'components/Button/button';
11
+ @use 'components/Card/card';
11
12
  @use 'components/IconButton/iconButton';
12
13
  @use 'components/Icon/icon';
13
14
  @use 'components/Grid/grid';
@@ -0,0 +1,113 @@
1
+ @use '../../allPartials' as *;
2
+
3
+ .#{$px}-card {
4
+ align-items: center;
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: $spacing-md;
8
+
9
+ @include media($breakpoint-snw-mobile) {
10
+ flex-direction: row;
11
+ }
12
+
13
+ &--stacked {
14
+ align-items: flex-start;
15
+ flex-direction: column;
16
+
17
+ .#{$px}-card__image,
18
+ .#{$px}-card__video {
19
+ min-width: 100%;
20
+ }
21
+
22
+ .#{$px}-card__details {
23
+ align-self: stretch;
24
+ }
25
+ }
26
+
27
+ &__image,
28
+ &__video {
29
+ align-items: center;
30
+ border-radius: $radius-xs;
31
+ display: flex;
32
+ flex: none;
33
+ justify-content: center;
34
+ min-width: 0;
35
+ width: 100%;
36
+
37
+ @include media($breakpoint-snw-mobile) {
38
+ flex: 0 0 30%;
39
+ min-width: auto;
40
+ width: auto;
41
+ }
42
+ }
43
+
44
+ &__image {
45
+ img {
46
+ height: auto;
47
+ object-fit: cover;
48
+ width: 100%;
49
+ }
50
+ }
51
+
52
+ &__video {
53
+ width: 100%;
54
+ }
55
+
56
+ &__details {
57
+ align-items: flex-start;
58
+ display: flex;
59
+ flex-direction: column;
60
+ flex-grow: 1;
61
+ gap: $spacing-micro;
62
+
63
+ @include media($size-snw-mobile, 'max') {
64
+ align-self: stretch;
65
+ }
66
+ }
67
+
68
+ &__title {
69
+ &.#{$px}-text {
70
+ text-transform: uppercase;
71
+ }
72
+
73
+ a {
74
+ color: inherit;
75
+ text-decoration: none;
76
+
77
+ &:hover,
78
+ &:focus-visible {
79
+ color: inherit;
80
+ text-decoration: underline;
81
+ }
82
+ }
83
+ }
84
+
85
+ &__cta {
86
+ align-self: flex-start;
87
+ }
88
+
89
+ &__description {
90
+ &.#{$px}-text {
91
+ color: $text-default;
92
+ }
93
+ }
94
+
95
+ &__badge {
96
+ border: 1px solid $badge-blue;
97
+ color: $badge-blue;
98
+ padding: $spacing-micro 8px;
99
+ text-transform: unset;
100
+ }
101
+
102
+ &__meta {
103
+ display: flex;
104
+ flex-direction: column;
105
+ gap: $spacing-micro;
106
+ }
107
+
108
+ &__meta-item {
109
+ &.#{$px}-text {
110
+ color: $text-supporting;
111
+ }
112
+ }
113
+ }
@@ -41,7 +41,7 @@
41
41
  &--closing-lot {
42
42
  .#{$px}-duration,
43
43
  .#{$px}-countdown__label {
44
- color: $countdown-compact;
44
+ color: $warning-default;
45
45
  }
46
46
  }
47
47
  }
@@ -4,12 +4,24 @@
4
4
  overflow: hidden;
5
5
  position: relative;
6
6
 
7
- &--aspect-ratio-16-9 img {
8
- aspect-ratio: 16 / 9;
7
+ &--aspect-ratio-16-9 {
8
+ img {
9
+ aspect-ratio: 16 / 9;
10
+ }
11
+
12
+ &.#{$px}-seldon-image--error-image {
13
+ aspect-ratio: 16 / 9;
14
+ }
9
15
  }
10
16
 
11
- &--aspect-ratio-1-1 img {
12
- aspect-ratio: 1 / 1;
17
+ &--aspect-ratio-1-1 {
18
+ img {
19
+ aspect-ratio: 1 / 1;
20
+ }
21
+
22
+ &.#{$px}-seldon-image--error-image {
23
+ aspect-ratio: 1 / 1;
24
+ }
13
25
  }
14
26
 
15
27
  &--error {
@@ -22,8 +22,8 @@
22
22
  }
23
23
 
24
24
  .storybook-page a {
25
- color: #1ea7fd;
26
- text-decoration: none;
25
+ color: #0b63c6;
26
+ text-decoration: underline;
27
27
  }
28
28
 
29
29
  .storybook-page ul {
@@ -38,7 +38,7 @@
38
38
  .storybook-page .tip {
39
39
  background: #e7fdd8;
40
40
  border-radius: 1em;
41
- color: #66bf3c;
41
+ color: #2f6f1a;
42
42
  display: inline-block;
43
43
  font-size: 11px;
44
44
  font-variation-settings: 'wght' 700;
@@ -65,5 +65,5 @@
65
65
  }
66
66
 
67
67
  .storybook-page .tip-wrapper svg path {
68
- fill: #1ea7fd;
68
+ fill: #0b63c6;
69
69
  }
@@ -30,82 +30,18 @@ a:has(> .#{$px}-sale-card) {
30
30
  }
31
31
  }
32
32
 
33
- &__title {
34
- &.#{$px}-text {
35
- text-transform: uppercase;
36
- }
37
- }
38
-
39
- &__image {
40
- align-items: center;
41
- aspect-ratio: 91/51;
42
- border-radius: $radius-xs;
43
- display: flex;
44
- flex: 0 0 30%;
45
- justify-content: center;
46
- min-width: 100%;
47
-
48
- @include media($breakpoint-snw-mobile) {
49
- min-width: auto;
50
- }
51
-
52
- img {
53
- height: auto;
54
- object-fit: cover;
55
- width: 100%;
56
- }
57
- }
58
-
59
- &__details {
60
- align-items: flex-start;
61
- display: flex;
62
- flex-direction: column;
63
- flex-grow: 1;
64
- gap: $spacing-micro;
65
-
66
- @include media($size-snw-mobile, 'max') {
67
- align-self: flex-start;
68
- }
69
- }
70
-
71
33
  &__ctas {
72
34
  flex: 0 0 0%;
73
35
 
74
- @media (min-width: $breakpoint-snw-mobile) {
36
+ @include media($breakpoint-snw-mobile) {
75
37
  flex-basis: 250px;
76
38
  }
77
39
  }
78
40
 
79
- &__date_info {
80
- display: flex;
81
- flex-direction: row;
82
- }
83
-
84
- &__separator {
85
- margin: 0 8px;
86
- }
87
-
88
- &__info {
89
- display: flex;
90
- flex-direction: column;
91
- gap: $spacing-micro;
92
-
93
- .#{$px}-text {
94
- color: $text-supporting;
95
- }
96
- }
97
-
98
41
  &__modal-link .#{$px}-button {
99
42
  @include text($linkSmall);
100
43
  }
101
44
 
102
- &__badge {
103
- border: 1px solid $badge-blue;
104
- color: $badge-blue;
105
- padding: $spacing-micro 8px;
106
- text-transform: unset;
107
- }
108
-
109
45
  &__cta-button {
110
46
  padding: $spacing-sm $spacing-lg;
111
47
  white-space: nowrap;
@@ -132,12 +68,13 @@ a:has(> .#{$px}-sale-card) {
132
68
  &.#{$px}-sale-card--image-left {
133
69
  flex-direction: row;
134
70
  }
71
+
135
72
  &.#{$px}-sale-card--image-right {
136
73
  flex-direction: row-reverse;
137
74
  }
138
75
  }
139
76
 
140
- .#{$px}-sale-card__image {
77
+ > .#{$px}-card__image {
141
78
  max-width: $spacing-xxxl;
142
79
  min-width: 94px;
143
80
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phillips/seldon",
3
- "version": "1.249.0",
3
+ "version": "1.251.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/PhillipsAuctionHouse/seldon"
@@ -28,8 +28,10 @@
28
28
  },
29
29
  "scripts": {
30
30
  "start": "storybook dev -p 6006",
31
- "test": "vitest",
32
- "coverage": "vitest run --coverage",
31
+ "test": "vitest --project=unit",
32
+ "test:all": "vitest",
33
+ "coverage": "vitest run --project=unit --coverage",
34
+ "test-storybook": "vitest run --project=storybook",
33
35
  "build": "npm run clean && tsc && vite build",
34
36
  "chromatic": "STORYBOOK=1 chromatic",
35
37
  "build:storybook": "storybook build",
@@ -95,6 +97,7 @@
95
97
  "@storybook/addon-a11y": "^10.2.8",
96
98
  "@storybook/addon-docs": "^10.2.8",
97
99
  "@storybook/addon-links": "^10.2.8",
100
+ "@storybook/addon-vitest": "^10.2.8",
98
101
  "@storybook/react": "^10.2.8",
99
102
  "@storybook/react-vite": "^10.2.8",
100
103
  "@svgr/cli": "^8.1.0",
@@ -113,7 +116,8 @@
113
116
  "@typescript-eslint/eslint-plugin": "^8.18.0",
114
117
  "@typescript-eslint/parser": "^8.18.0",
115
118
  "@vitejs/plugin-react": "^5.1.4",
116
- "@vitest/coverage-v8": "^4.0.18",
119
+ "@vitest/browser-playwright": "^4.1.0",
120
+ "@vitest/coverage-v8": "^4.1.0",
117
121
  "chromatic": "^13.1.4",
118
122
  "color": "^4.2.3",
119
123
  "eslint": "^9.15.0",
@@ -125,6 +129,7 @@
125
129
  "husky": "^9.1.6",
126
130
  "jsdom": "^26.1.0",
127
131
  "markdownlint-cli": "^0.41.0",
132
+ "playwright": "^1.58.2",
128
133
  "prettier": "3.3.3",
129
134
  "react": "^18.3.1",
130
135
  "react-docgen-typescript": "^2.2.2",
@@ -149,7 +154,7 @@
149
154
  "vite-plugin-dts": "^4.5.4",
150
155
  "vite-plugin-svgr": "^4.5.0",
151
156
  "vite-tsconfig-paths": "^6.1.0",
152
- "vitest": "^4.0.18"
157
+ "vitest": "^4.1.0"
153
158
  },
154
159
  "peerDependencies": {
155
160
  "react": "^18.3.1",