@phillips/seldon 1.19.0 → 1.19.2

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.
@@ -3,7 +3,8 @@ var i = (t, r, o) => r in t ? n(t, r, { enumerable: !0, configurable: !0, writab
3
3
  var e = (t, r, o) => (i(t, typeof r != "symbol" ? r + "" : r, o), o);
4
4
  import { jsx as c } from "react/jsx-runtime";
5
5
  import * as l from "react";
6
- class p extends l.Component {
6
+ import { nullishCoalescing as p } from "../../utils/index.js";
7
+ class h extends l.Component {
7
8
  constructor() {
8
9
  super(...arguments);
9
10
  e(this, "state", {
@@ -15,15 +16,15 @@ class p extends l.Component {
15
16
  }
16
17
  componentDidCatch(o, s) {
17
18
  var a;
18
- (a = this.props) == null || a.logger(o, s.componentStack ?? "ErrorBoundary caught an error");
19
+ (a = this.props) == null || a.logger(o, p(s.componentStack, "ErrorBoundary caught an error"));
19
20
  }
20
21
  render() {
21
22
  return this.state.hasError ? this.props.fallback || /* @__PURE__ */ c("h2", { children: "Sorry... An error occurred and we are looking into it" }) : this.props.children;
22
23
  }
23
24
  }
24
- e(p, "defaultProps", {
25
+ e(h, "defaultProps", {
25
26
  logger: console.log
26
27
  });
27
28
  export {
28
- p as default
29
+ h as default
29
30
  };
@@ -1,14 +1,5 @@
1
1
  import React, { HTMLAttributes } from 'react';
2
- export declare const LinkVariants: {
3
- /** Default variant, used */
4
- readonly standalone: "standalone";
5
- /** link rendering emailto: */
6
- readonly email: "email";
7
- /** these links are being rendered in a list */
8
- readonly list: "list";
9
- /** link is being rendered within body copy */
10
- readonly inline: "inline";
11
- };
2
+ import { LinkVariants } from './utils';
12
3
  export interface LinkProps extends HTMLAttributes<HTMLAnchorElement> {
13
4
  /**
14
5
  * Describes where the link is used. It controls the styling of the link so we apply consistent styles. Defaults to `standalone`. See the documentation [here](https://www.figma.com/file/xMuOXOAKVt5HC7hgYjF3ot/Components-v2.0?type=design&node-id=5731-12815) to see where each variant is used.
@@ -16,7 +7,7 @@ export interface LinkProps extends HTMLAttributes<HTMLAnchorElement> {
16
7
  * @default standalone
17
8
  * @see LinkVariants
18
9
  */
19
- variant?: keyof typeof LinkVariants;
10
+ variant?: LinkVariants;
20
11
  /**
21
12
  * The text of the link
22
13
  */
@@ -1,40 +1,30 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- import k from "../../node_modules/classnames/index.js";
1
+ import { jsx as k } from "react/jsx-runtime";
2
+ import c from "../../node_modules/classnames/index.js";
3
3
  import { px as p } from "../../utils/index.js";
4
- import { getLinkVariantClassName as d, isLinkExternal as f } from "./utils.js";
5
- const x = {
6
- /** Default variant, used */
7
- standalone: "standalone",
8
- /** link rendering emailto: */
9
- email: "email",
10
- /** these links are being rendered in a list */
11
- list: "list",
12
- /** link is being rendered within body copy */
13
- inline: "inline"
14
- }, V = ({
4
+ import { getLinkVariantClassName as f, isLinkExternal as x, LinkVariants as d } from "./utils.js";
5
+ const V = ({
15
6
  children: s,
16
7
  id: a,
17
- className: e,
18
- element: n = "a",
19
- variant: i = x.standalone,
20
- href: t,
21
- ...l
8
+ className: r,
9
+ element: t = "a",
10
+ variant: e = d.standalone,
11
+ href: n,
12
+ ...o
22
13
  }) => {
23
- const r = k(`${p}-link`, d(i), e), o = a ? `link-${a}` : "link", m = f(t);
24
- return /* @__PURE__ */ c(
25
- n,
14
+ const i = c(`${p}-link`, f(e), r), l = a ? `link-${a}` : "link", m = x(n);
15
+ return /* @__PURE__ */ k(
16
+ t,
26
17
  {
27
- ...l,
28
- href: t,
29
- "data-testid": o,
18
+ ...o,
19
+ href: n,
20
+ "data-testid": l,
30
21
  id: a,
31
- className: r,
32
- ...m && n === "a" ? { rel: "noopener noreferrer", target: "_blank" } : {},
22
+ className: i,
23
+ ...m && t === "a" ? { rel: "noopener noreferrer", target: "_blank" } : {},
33
24
  children: s
34
25
  }
35
26
  );
36
27
  };
37
28
  export {
38
- x as LinkVariants,
39
29
  V as default
40
30
  };
@@ -1,3 +1,12 @@
1
- import { LinkVariants } from './Link';
2
1
  export declare const getLinkVariantClassName: (variant: keyof typeof LinkVariants) => string;
3
2
  export declare const isLinkExternal: (href: string) => boolean;
3
+ export declare enum LinkVariants {
4
+ /** Default variant, used */
5
+ standalone = "standalone",
6
+ /** link rendering emailto: */
7
+ email = "email",
8
+ /** these links are being rendered in a list */
9
+ list = "list",
10
+ /** link is being rendered within body copy */
11
+ inline = "inline"
12
+ }
@@ -1,8 +1,10 @@
1
- import { px as a } from "../../utils/index.js";
2
- const n = (t) => `${a}-link--${t}`, s = (t) => !!t.match(
1
+ import { px as t } from "../../utils/index.js";
2
+ const n = (l) => `${t}-link--${l}`, a = (l) => !!l.match(
3
3
  /(http[s]?:\/\/)(?!.*phillips\.com)([a-zA-Z0-9\-.]+)(:[0-9]{1,4})?([a-zA-Z0-9/\-._~:?#[\]@!$&'()*+,;=]*)/g
4
4
  );
5
+ var e = /* @__PURE__ */ ((l) => (l.standalone = "standalone", l.email = "email", l.list = "list", l.inline = "inline", l))(e || {});
5
6
  export {
7
+ e as LinkVariants,
6
8
  n as getLinkVariantClassName,
7
- s as isLinkExternal
9
+ a as isLinkExternal
8
10
  };
@@ -1,14 +1,15 @@
1
1
  import { jsxs as r, jsx as o } from "react/jsx-runtime";
2
2
  import k from "../../node_modules/classnames/index.js";
3
- import { px as d } from "../../utils/index.js";
4
- import p, { LinkVariants as f } from "../Link/Link.js";
5
- const $ = ({ linkProps: t, description: e, className: i, id: s, ...l }) => {
6
- const a = `${d}-link-block`, c = k(a, i), m = t.element ?? p, n = s ? `link-block-${s}` : "link-block";
3
+ import { nullishCoalescing as d, px as p } from "../../utils/index.js";
4
+ import f from "../Link/Link.js";
5
+ import { LinkVariants as b } from "../Link/utils.js";
6
+ const u = ({ linkProps: t, description: i, className: e, id: s, ...l }) => {
7
+ const a = `${p}-link-block`, c = k(a, e), m = d(t.element, f), n = s ? `link-block-${s}` : "link-block";
7
8
  return /* @__PURE__ */ r("div", { ...l, className: c, id: s, "data-testid": n, children: [
8
- /* @__PURE__ */ o(m, { ...t, "data-testid": `${n}-link`, variant: f.list }),
9
- /* @__PURE__ */ o("p", { className: `${a}__description`, children: e })
9
+ /* @__PURE__ */ o(m, { ...t, "data-testid": `${n}-link`, variant: b.list }),
10
+ /* @__PURE__ */ o("p", { className: `${a}__description`, children: i })
10
11
  ] });
11
12
  };
12
13
  export {
13
- $ as default
14
+ u as default
14
15
  };
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { default as Header, type HeaderProps } from './components/Header/Header'
6
6
  export { default as HeroBanner, type HeroBannerProps } from './components/HeroBanner/HeroBanner';
7
7
  export { default as Input, type InputProps } from './components/Input/Input';
8
8
  export { default as Link, type LinkProps } from './components/Link/Link';
9
+ export { LinkVariants } from './components/Link/utils';
9
10
  export { default as LinkBlock, type LinkBlockProps } from './components/LinkBlock/LinkBlock';
10
11
  export { default as LinkList, type LinkListProps } from './components/LinkList/LinkList';
11
12
  export { default as Select, type SelectProps } from './components/Select/Select';
package/dist/index.js CHANGED
@@ -1,36 +1,38 @@
1
1
  import { default as t } from "./components/Button/Button.js";
2
2
  import { default as a } from "./components/ErrorBoundary/ErrorBoundary.js";
3
- import { default as l } from "./components/Footer/Footer.js";
3
+ import { default as s } from "./components/Footer/Footer.js";
4
4
  import { Grid as u } from "./components/Grid/Grid.js";
5
- import { default as p } from "./components/Header/Header.js";
5
+ import { default as d } from "./components/Header/Header.js";
6
6
  import { default as x } from "./components/HeroBanner/HeroBanner.js";
7
7
  import { default as n } from "./components/Input/Input.js";
8
- import { default as S } from "./components/Link/Link.js";
9
- import { default as k } from "./components/LinkBlock/LinkBlock.js";
10
- import { default as g } from "./components/LinkList/LinkList.js";
11
- import { default as w } from "./components/Select/Select.js";
12
- import { default as P } from "./components/SplitPanel/SplitPanel.js";
13
- import { default as y } from "./components/Subscribe/Subscribe.js";
14
- import { default as F } from "./components/Social/Social.js";
15
- import { default as I } from "./components/ViewingsList/ViewingsList.js";
16
- import { default as j } from "./components/ViewingsList/StatefulViewingsList.js";
17
- import { default as v } from "./pages/Page.js";
8
+ import { default as k } from "./components/Link/Link.js";
9
+ import { LinkVariants as c } from "./components/Link/utils.js";
10
+ import { default as g } from "./components/LinkBlock/LinkBlock.js";
11
+ import { default as b } from "./components/LinkList/LinkList.js";
12
+ import { default as H } from "./components/Select/Select.js";
13
+ import { default as y } from "./components/SplitPanel/SplitPanel.js";
14
+ import { default as F } from "./components/Subscribe/Subscribe.js";
15
+ import { default as I } from "./components/Social/Social.js";
16
+ import { default as j } from "./components/ViewingsList/ViewingsList.js";
17
+ import { default as v } from "./components/ViewingsList/StatefulViewingsList.js";
18
+ import { default as A } from "./pages/Page.js";
18
19
  export {
19
20
  t as Button,
20
21
  a as ErrorBoundary,
21
- l as Footer,
22
+ s as Footer,
22
23
  u as Grid,
23
- p as Header,
24
+ d as Header,
24
25
  x as HeroBanner,
25
26
  n as Input,
26
- S as Link,
27
- k as LinkBlock,
28
- g as LinkList,
29
- v as Page,
30
- w as Select,
31
- F as Social,
32
- P as SplitPanel,
33
- j as StatefulViewingsList,
34
- y as Subscribe,
35
- I as ViewingsList
27
+ k as Link,
28
+ g as LinkBlock,
29
+ b as LinkList,
30
+ c as LinkVariants,
31
+ A as Page,
32
+ H as Select,
33
+ I as Social,
34
+ y as SplitPanel,
35
+ v as StatefulViewingsList,
36
+ F as Subscribe,
37
+ j as ViewingsList
36
38
  };
@@ -25,7 +25,7 @@ body {
25
25
  -moz-osx-font-smoothing: grayscale;
26
26
  margin: 0;
27
27
  -webkit-overflow-scrolling: touch;
28
- -webkit-tap-highlight-color: rgb(0 0 0 / 0%);
28
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0%);
29
29
  }
30
30
 
31
31
  /** Fonts **/
@@ -79,25 +79,50 @@
79
79
  }
80
80
  }
81
81
 
82
- @mixin media($breakpoint) {
82
+ @mixin media($breakpoint, $type: 'min') {
83
83
  @if $breakpoint == $breakpoint-sm {
84
84
  // $breakpoint2: 961px;
85
- @media (min-width: $breakpoint2) {
86
- @content;
85
+ @if $type == 'min' {
86
+ @media (min-width: $breakpoint2) {
87
+ @content;
88
+ }
89
+ }
90
+
91
+ @if $type == 'max' {
92
+ @media (max-width: $breakpoint2) {
93
+ @content;
94
+ }
87
95
  }
88
96
  }
89
97
 
90
98
  @if $breakpoint == $breakpoint-md {
91
99
  // $breakpoint3: 1401px;
92
- @media (min-width: $breakpoint3) {
93
- @content;
100
+
101
+ @if $type == 'min' {
102
+ @media (min-width: $breakpoint3) {
103
+ @content;
104
+ }
105
+ }
106
+
107
+ @if type == 'max' {
108
+ @media (max-width: $breakpoint3) {
109
+ @content;
110
+ }
94
111
  }
95
112
  }
96
113
 
97
114
  @if $breakpoint == $breakpoint-lg {
98
115
  // $breakpoint4: 1801px;
99
- @media (min-width: $breakpoint4) {
100
- @content;
116
+ @if type == 'min' {
117
+ @media (min-width: $breakpoint4) {
118
+ @content;
119
+ }
120
+ }
121
+
122
+ @if type == 'max' {
123
+ @media (max-width: $breakpoint4) {
124
+ @content;
125
+ }
101
126
  }
102
127
  }
103
128
  }
@@ -22,7 +22,7 @@ $off-white: #f4f2f1;
22
22
 
23
23
  // Notification color palette
24
24
  $error-red: #f00;
25
- $error-pink: rgb(255 229 229 / 90%);
25
+ $error-pink: rgba(255, 229, 229, 90%);
26
26
  $warn-yellow: #d6d141;
27
27
  $post-sale-pink: #ff0086;
28
28
  $cta-blue: #4a90e2;
@@ -104,7 +104,7 @@ $body3: 'body3';
104
104
  --label-size2: 1rem;
105
105
  --label-size3: 0.75rem;
106
106
 
107
- @media (width <= 960px) {
107
+ @media (max-width: 960px) {
108
108
  --heading-size0: 2.59rem;
109
109
  --heading-size1: 1.83rem;
110
110
  --heading-size2: 1.46rem;
@@ -118,7 +118,7 @@ $body3: 'body3';
118
118
  --label-size3: 0.56rem;
119
119
  }
120
120
 
121
- @media (width >= 1801px) {
121
+ @media (min-width: 1801px) {
122
122
  --heading-size0: 4.06rem;
123
123
  --heading-size1: 3.05rem;
124
124
  --heading-size2: 2.44rem;
@@ -170,7 +170,7 @@ $text-badge-label-size: var(--label-size3);
170
170
  --spacing-large: 3rem;
171
171
  --spacing-xl: 6rem;
172
172
 
173
- @media (width <= 960px) {
173
+ @media (max-width: 960px) {
174
174
  --spacing-micro: 0.19rem;
175
175
  --spacing-xsm: 0.38rem;
176
176
  --spacing-small: 0.75rem;
@@ -179,7 +179,7 @@ $text-badge-label-size: var(--label-size3);
179
179
  --spacing-xl: 4.8rem;
180
180
  }
181
181
 
182
- @media (width >= 1801px) {
182
+ @media (min-width: 1801px) {
183
183
  --spacing-micro: 0.31rem;
184
184
  --spacing-xsm: 0.63rem;
185
185
  --spacing-small: 1.25rem;
@@ -9,11 +9,11 @@
9
9
  &__container--has-margins {
10
10
  margin: 0 $spacing-medium;
11
11
 
12
- @media (width >= 1401px) {
12
+ @media (min-width: 1401px) {
13
13
  margin: 0 $spacing-large;
14
14
  }
15
15
 
16
- @media (width >= 1801px) {
16
+ @media (min-width: 1801px) {
17
17
  margin: 0 $spacing-xl;
18
18
  }
19
19
  }
@@ -1,6 +1,6 @@
1
1
  .storybook-header {
2
2
  align-items: center;
3
- border-bottom: 1px solid rgb(0 0 0 / 10%);
3
+ border-bottom: 1px solid rgba(0, 0, 0, 10%);
4
4
  display: flex;
5
5
  font-family: Montserrat, 'Helvetica Neue', Helvetica, Arial, sans-serif;
6
6
  justify-content: space-between;
@@ -13,7 +13,7 @@
13
13
  padding: 1rem;
14
14
  width: 100%;
15
15
 
16
- @media (width <= 28.8125rem) {
16
+ @media (max-width: 28.8125rem) {
17
17
  align-items: center;
18
18
  align-self: stretch;
19
19
  background: $pure-black;
@@ -70,11 +70,11 @@
70
70
  font-size: 0.75rem;
71
71
  gap: 1.875rem;
72
72
 
73
- @media (width >= 28.8125rem) {
73
+ @media (min-width: 28.8125rem) {
74
74
  font-size: 0.875rem;
75
75
  }
76
76
 
77
- @media (width <= 28.8125rem) {
77
+ @media (max-width: 28.8125rem) {
78
78
  align-items: center;
79
79
  flex-direction: column;
80
80
  gap: 1rem;
@@ -90,7 +90,7 @@
90
90
  margin: 1.875rem 0;
91
91
  text-align: center;
92
92
 
93
- @media (width >= 28.8125rem) {
93
+ @media (min-width: 28.8125rem) {
94
94
  font-size: 2.375rem;
95
95
  }
96
96
 
@@ -97,7 +97,7 @@ $lg: #{$px}-input--lg;
97
97
  }
98
98
 
99
99
  .#{$px}-input__input {
100
- background-color: rgb(239 239 239 / 30%);
100
+ background-color: rgba(239, 239, 239, 30%);
101
101
  }
102
102
  }
103
103
 
@@ -2,10 +2,11 @@
2
2
 
3
3
  .#{$px}-link-list {
4
4
  &--item {
5
- grid-column: span 4;
5
+ // mobile first
6
+ grid-column: span 2;
6
7
 
7
- @include media($breakpoint-lg) {
8
- grid-column: span 2;
8
+ @include media($breakpoint-sm) {
9
+ grid-column: span 4;
9
10
  }
10
11
  }
11
12
  }
@@ -30,7 +30,7 @@ $lg: #{$px}-input--lg;
30
30
  }
31
31
 
32
32
  &::before {
33
- background-color: rgb(0 0 0 / 40%);
33
+ background-color: rgba(0, 0, 0, 40%);
34
34
  border-radius: 1rem;
35
35
  height: 1rem;
36
36
  left: 0;
@@ -65,4 +65,9 @@ interface NormalizedProps {
65
65
  */
66
66
  export declare function useNormalizedInputProps({ disabled, id, invalid, invalidText, readOnly, type, warn, warnText, }: InputProps): NormalizedProps;
67
67
  export declare const defaultYear: number;
68
+ /**
69
+ * Nullish coalescing operator '??' polyfill
70
+ * To be removed once sass upgrade branch is merged in phillips-public
71
+ */
72
+ export declare const nullishCoalescing: (a: any, b: any) => any;
68
73
  export {};
@@ -1,29 +1,30 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- const n = "phillips";
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ const o = "phillips";
3
3
  function c({
4
- disabled: l = !1,
5
- id: o,
6
- invalid: t = !1,
7
- invalidText: e = "invalid",
4
+ disabled: i = !1,
5
+ id: a,
6
+ invalid: s = !1,
7
+ invalidText: d = "invalid",
8
8
  readOnly: r = !1,
9
- type: a,
10
- warn: s = !1,
11
- warnText: v
9
+ type: l,
10
+ warn: e = !1,
11
+ warnText: u
12
12
  }) {
13
- const i = {
14
- disabled: !r && l,
15
- invalid: !r && !l && t,
16
- invalidId: `${o}-error-msg`,
17
- type: a === "toggle" ? "checkbox" : a,
18
- warn: !r && !l && !t && s,
19
- warnId: `${o}-warn-msg`,
13
+ const n = {
14
+ disabled: !r && i,
15
+ invalid: !r && !i && s,
16
+ invalidId: `${a}-error-msg`,
17
+ type: l === "toggle" ? "checkbox" : l,
18
+ warn: !r && !i && !s && e,
19
+ warnId: `${a}-warn-msg`,
20
20
  validation: null
21
21
  };
22
- return i.invalid && (i.validation = /* @__PURE__ */ d("div", { className: `${n}-input__validation ${n}-${a}-input--invalid`, id: i.invalidId, children: e })), i.warn && (i.validation = /* @__PURE__ */ d("div", { className: `${n}-input__validation ${n}-${a}-input--warn`, id: i.warnId, children: v })), i;
22
+ return n.invalid && (n.validation = /* @__PURE__ */ t("div", { className: `${o}-input__validation ${o}-${l}-input--invalid`, id: n.invalidId, children: d })), n.warn && (n.validation = /* @__PURE__ */ t("div", { className: `${o}-input__validation ${o}-${l}-input--warn`, id: n.warnId, children: u })), n;
23
23
  }
24
- const p = (/* @__PURE__ */ new Date()).getFullYear();
24
+ const p = (/* @__PURE__ */ new Date()).getFullYear(), f = (i, a) => i ?? a;
25
25
  export {
26
26
  p as defaultYear,
27
- n as px,
27
+ f as nullishCoalescing,
28
+ o as px,
28
29
  c as useNormalizedInputProps
29
30
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phillips/seldon",
3
- "version": "1.19.0",
3
+ "version": "1.19.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/PhillipsAuctionHouse/seldon"
@@ -49,45 +49,46 @@
49
49
  "@semantic-release/github": "^10.0.3",
50
50
  "@storybook/addon-essentials": "^7.6.18",
51
51
  "@storybook/addon-interactions": "^7.0.22",
52
- "@storybook/addon-links": "^7.6.18",
52
+ "@storybook/addon-links": "^7.6.19",
53
53
  "@storybook/addon-styling": "^1.3.7",
54
54
  "@storybook/blocks": "^7.0.22",
55
55
  "@storybook/react": "^7.0.22",
56
- "@storybook/react-vite": "^7.6.18",
56
+ "@storybook/react-vite": "^7.6.19",
57
57
  "@testing-library/jest-dom": "^5.17.0",
58
58
  "@testing-library/react": "^14.0.0",
59
59
  "@testing-library/user-event": "^14.5.2",
60
60
  "@types/color": "^3.0.6",
61
- "@types/jest": "^29.5.3",
61
+ "@types/jest": "^29.5.12",
62
62
  "@types/react": "^18.3.1",
63
63
  "@types/react-dom": "^18.0.11",
64
64
  "@typescript-eslint/eslint-plugin": "^5.59.0",
65
- "@typescript-eslint/parser": "^5.59.0",
66
- "@vitejs/plugin-react": "^4.0.0",
65
+ "@typescript-eslint/parser": "^5.62.0",
66
+ "@vitejs/plugin-react": "^4.2.1",
67
67
  "color": "^4.2.3",
68
- "eslint": "^8.38.0",
68
+ "eslint": "^8.57.0",
69
69
  "eslint-plugin-react-hooks": "^4.6.2",
70
- "eslint-plugin-react-refresh": "^0.4.6",
70
+ "eslint-plugin-react-refresh": "^0.4.7",
71
71
  "eslint-plugin-storybook": "^0.8.0",
72
72
  "husky": "^9.0.11",
73
- "jest": "^29.6.1",
73
+ "jest": "^29.7.0",
74
74
  "jest-environment-jsdom": "^29.6.1",
75
- "prettier": "3.0.3",
76
- "react-docgen-typescript": "^2.2.2",
75
+ "prettier": "3.2.5",
77
76
  "react": "^18.3.1",
77
+ "react-docgen-typescript": "^2.2.2",
78
78
  "react-dom": "^18.2.0",
79
79
  "rimraf": "^5.0.5",
80
80
  "rollup-plugin-copy": "^3.5.0",
81
81
  "rollup-plugin-peer-deps-external": "^2.2.4",
82
- "sass": "^1.75.0",
83
- "semantic-release": "^21.0.5",
84
- "storybook": "^7.6.18",
82
+ "sass": "^1.77.0",
83
+ "semantic-release": "^23.0.8",
84
+ "storybook": "^7.6.19",
85
85
  "stylelint": "^16.4.0",
86
86
  "stylelint-config-standard": "^36.0.0",
87
87
  "stylelint-config-standard-scss": "^13.1.0",
88
88
  "stylelint-order": "^6.0.4",
89
89
  "stylelint-scss": "^6.2.1",
90
90
  "ts-jest": "^29.1.2",
91
+ "ts-node": "^10.9.2",
91
92
  "typescript": "^5.0.2",
92
93
  "vite": "^4.5.3",
93
94
  "vite-plugin-dts": "^2.3.0",