torgbox-ui 1.0.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/README.md ADDED
@@ -0,0 +1,40 @@
1
+ <p align="center">
2
+ <a href="https://www.gatsbyjs.com/?utm_source=starter&utm_medium=readme&utm_campaign=minimal-starter-ts">
3
+ <img alt="Torgbox" src="https://torgbox.ru/assets/img/logo-main.svg" width="140" />
4
+ </a>
5
+ </p>
6
+ <h1 align="center">
7
+ UI Kit
8
+ </h1>
9
+
10
+ Данный пакет представляет собой набор элементов интерфейса, а также собранные секции и формы, используемые в проектах командой Torgbox
11
+
12
+ ## 🚀 Quick start
13
+ 1. **Запуск среды разработки контейнера для разработки**
14
+
15
+ Если в системе еще не установлен [Docker](https://www.docker.com/), установите его.
16
+
17
+ Для начала разработки достаточно в корневой директории проекта выполнить команду
18
+
19
+ ```shell
20
+ docker-compose up develop
21
+ ```
22
+
23
+ После запуска сервера должна открыться страница http://localhost:8000
24
+
25
+ Можно приступать к работе. Все изменения сразу же будут применены.
26
+
27
+ 2. **Публикация Storybook**
28
+
29
+ Для публикации Storybook необходимо выполнить команду
30
+
31
+ ```shell
32
+ docker-compose up staging
33
+ ```
34
+
35
+ Будет запущен Docker-контейнер со статичной версией Storybook, доступной по адресу http://localhost:6006
36
+
37
+ 3. Настоятельно рекомендуем придерживаться следующих принципов
38
+ - [Component Driven User Interface](https://www.componentdriven.org/)
39
+ - [Документация Storybook](https://storybook.js.org/docs/react/writing-stories/introduction)
40
+ - [Методология БЭМ](https://ru.bem.info/methodology/)
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export declare enum ButtonSize {
3
+ small = "small",
4
+ medium = "medium",
5
+ large = "large"
6
+ }
7
+ export interface ButtonProps {
8
+ primary?: boolean;
9
+ backgroundColor?: string;
10
+ size?: ButtonSize;
11
+ label: string;
12
+ onClick?: () => void;
13
+ }
14
+ export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => React.JSX.Element;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export var ButtonSize;
3
+ (function (ButtonSize) {
4
+ ButtonSize["small"] = "small";
5
+ ButtonSize["medium"] = "medium";
6
+ ButtonSize["large"] = "large";
7
+ })(ButtonSize || (ButtonSize = {}));
8
+ export const Button = ({ primary = false, size = ButtonSize.medium, backgroundColor, label, ...props }) => {
9
+ const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
10
+ return (React.createElement("button", { type: 'button', className: ['storybook-button', `storybook-button--${size}`, mode].join(' '), style: { backgroundColor }, ...props }, label));
11
+ };
@@ -0,0 +1,30 @@
1
+ .storybook-button {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ font-weight: 700;
4
+ border: 0;
5
+ border-radius: 3em;
6
+ cursor: pointer;
7
+ display: inline-block;
8
+ line-height: 1;
9
+ }
10
+ .storybook-button--primary {
11
+ color: white;
12
+ background-color: #1ea7fd;
13
+ }
14
+ .storybook-button--secondary {
15
+ color: #333;
16
+ background-color: transparent;
17
+ box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;
18
+ }
19
+ .storybook-button--small {
20
+ font-size: 12px;
21
+ padding: 10px 16px;
22
+ }
23
+ .storybook-button--medium {
24
+ font-size: 14px;
25
+ padding: 11px 20px;
26
+ }
27
+ .storybook-button--large {
28
+ font-size: 16px;
29
+ padding: 12px 24px;
30
+ }
@@ -0,0 +1 @@
1
+ export { Button, ButtonSize } from './Button';
@@ -0,0 +1 @@
1
+ export { Button, ButtonSize } from './Button';
@@ -0,0 +1,30 @@
1
+ .storybook-button {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ font-weight: 700;
4
+ border: 0;
5
+ border-radius: 3em;
6
+ cursor: pointer;
7
+ display: inline-block;
8
+ line-height: 1;
9
+ }
10
+ .storybook-button--primary {
11
+ color: white;
12
+ background-color: #1ea7fd;
13
+ }
14
+ .storybook-button--secondary {
15
+ color: #333;
16
+ background-color: transparent;
17
+ box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;
18
+ }
19
+ .storybook-button--small {
20
+ font-size: 12px;
21
+ padding: 10px 16px;
22
+ }
23
+ .storybook-button--medium {
24
+ font-size: 14px;
25
+ padding: 11px 20px;
26
+ }
27
+ .storybook-button--large {
28
+ font-size: 16px;
29
+ padding: 12px 24px;
30
+ }
@@ -0,0 +1 @@
1
+ export { Button } from './Button';
@@ -0,0 +1 @@
1
+ export { Button } from './Button';
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const InnerPage: React.FC;
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { Header } from '../../Sections/Header';
3
+ export const InnerPage = () => {
4
+ const [user, setUser] = React.useState();
5
+ return (React.createElement("article", null,
6
+ React.createElement(Header, { user: user, onLogin: () => setUser({ name: 'Jane Doe' }), onLogout: () => setUser(undefined), onCreateAccount: () => setUser({ name: 'Jane Doe' }) }),
7
+ React.createElement("section", { className: "storybook-page" },
8
+ React.createElement("h2", null, "Pages in Storybook"),
9
+ React.createElement("p", null,
10
+ "We recommend building UIs with a",
11
+ ' ',
12
+ React.createElement("a", { href: "https://componentdriven.org", target: "_blank", rel: "noopener noreferrer" },
13
+ React.createElement("strong", null, "component-driven")),
14
+ ' ',
15
+ "process starting with atomic components and ending with pages."),
16
+ React.createElement("p", null, "Render pages with mock data. This makes it easy to build and review page states without needing to navigate to them in your app. Here are some handy patterns for managing page data in Storybook:"),
17
+ React.createElement("ul", null,
18
+ React.createElement("li", null, "Use a higher-level connected component. Storybook helps you compose such data from the \"args\" of child component stories"),
19
+ React.createElement("li", null, "Assemble data in the page component from your services. You can mock these services out using Storybook.")),
20
+ React.createElement("p", null,
21
+ "Get a guided tutorial on component-driven development at",
22
+ ' ',
23
+ React.createElement("a", { href: "https://storybook.js.org/tutorials/", target: "_blank", rel: "noopener noreferrer" }, "Storybook tutorials"),
24
+ ". Read more in the",
25
+ ' ',
26
+ React.createElement("a", { href: "https://storybook.js.org/docs", target: "_blank", rel: "noopener noreferrer" }, "docs"),
27
+ "."),
28
+ React.createElement("div", { className: "tip-wrapper" },
29
+ React.createElement("span", { className: "tip" }, "Tip"),
30
+ " Adjust the width of the canvas with the",
31
+ ' ',
32
+ React.createElement("svg", { width: "10", height: "10", viewBox: "0 0 12 12", xmlns: "http://www.w3.org/2000/svg" },
33
+ React.createElement("g", { fill: "none", fillRule: "evenodd" },
34
+ React.createElement("path", { d: "M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z", id: "a", fill: "#999" }))),
35
+ "Viewports addon in the toolbar"))));
36
+ };
@@ -0,0 +1 @@
1
+ export { InnerPage } from './InnerPage';
@@ -0,0 +1 @@
1
+ export { InnerPage } from './InnerPage';
@@ -0,0 +1,69 @@
1
+ .storybook-page {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ font-size: 14px;
4
+ line-height: 24px;
5
+ padding: 48px 20px;
6
+ margin: 0 auto;
7
+ max-width: 600px;
8
+ color: #333;
9
+ }
10
+
11
+ .storybook-page h2 {
12
+ font-weight: 700;
13
+ font-size: 32px;
14
+ line-height: 1;
15
+ margin: 0 0 4px;
16
+ display: inline-block;
17
+ vertical-align: top;
18
+ }
19
+
20
+ .storybook-page p {
21
+ margin: 1em 0;
22
+ }
23
+
24
+ .storybook-page a {
25
+ text-decoration: none;
26
+ color: #1ea7fd;
27
+ }
28
+
29
+ .storybook-page ul {
30
+ padding-left: 30px;
31
+ margin: 1em 0;
32
+ }
33
+
34
+ .storybook-page li {
35
+ margin-bottom: 8px;
36
+ }
37
+
38
+ .storybook-page .tip {
39
+ display: inline-block;
40
+ border-radius: 1em;
41
+ font-size: 11px;
42
+ line-height: 12px;
43
+ font-weight: 700;
44
+ background: #e7fdd8;
45
+ color: #66bf3c;
46
+ padding: 4px 12px;
47
+ margin-right: 10px;
48
+ vertical-align: top;
49
+ }
50
+
51
+ .storybook-page .tip-wrapper {
52
+ font-size: 13px;
53
+ line-height: 20px;
54
+ margin-top: 40px;
55
+ margin-bottom: 40px;
56
+ }
57
+
58
+ .storybook-page .tip-wrapper svg {
59
+ display: inline-block;
60
+ height: 12px;
61
+ width: 12px;
62
+ margin-right: 4px;
63
+ vertical-align: top;
64
+ margin-top: 3px;
65
+ }
66
+
67
+ .storybook-page .tip-wrapper svg path {
68
+ fill: #1ea7fd;
69
+ }
@@ -0,0 +1,69 @@
1
+ .storybook-page {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ font-size: 14px;
4
+ line-height: 24px;
5
+ padding: 48px 20px;
6
+ margin: 0 auto;
7
+ max-width: 600px;
8
+ color: #333;
9
+ }
10
+
11
+ .storybook-page h2 {
12
+ font-weight: 700;
13
+ font-size: 32px;
14
+ line-height: 1;
15
+ margin: 0 0 4px;
16
+ display: inline-block;
17
+ vertical-align: top;
18
+ }
19
+
20
+ .storybook-page p {
21
+ margin: 1em 0;
22
+ }
23
+
24
+ .storybook-page a {
25
+ text-decoration: none;
26
+ color: #1ea7fd;
27
+ }
28
+
29
+ .storybook-page ul {
30
+ padding-left: 30px;
31
+ margin: 1em 0;
32
+ }
33
+
34
+ .storybook-page li {
35
+ margin-bottom: 8px;
36
+ }
37
+
38
+ .storybook-page .tip {
39
+ display: inline-block;
40
+ border-radius: 1em;
41
+ font-size: 11px;
42
+ line-height: 12px;
43
+ font-weight: 700;
44
+ background: #e7fdd8;
45
+ color: #66bf3c;
46
+ padding: 4px 12px;
47
+ margin-right: 10px;
48
+ vertical-align: top;
49
+ }
50
+
51
+ .storybook-page .tip-wrapper {
52
+ font-size: 13px;
53
+ line-height: 20px;
54
+ margin-top: 40px;
55
+ margin-bottom: 40px;
56
+ }
57
+
58
+ .storybook-page .tip-wrapper svg {
59
+ display: inline-block;
60
+ height: 12px;
61
+ width: 12px;
62
+ margin-right: 4px;
63
+ vertical-align: top;
64
+ margin-top: 3px;
65
+ }
66
+
67
+ .storybook-page .tip-wrapper svg path {
68
+ fill: #1ea7fd;
69
+ }
@@ -0,0 +1 @@
1
+ export { InnerPage } from './InnerPage';
@@ -0,0 +1 @@
1
+ export { InnerPage } from './InnerPage';
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ type User = {
3
+ name: string;
4
+ };
5
+ interface HeaderProps {
6
+ user?: User;
7
+ onLogin: () => void;
8
+ onLogout: () => void;
9
+ onCreateAccount: () => void;
10
+ }
11
+ export declare const Header: ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => React.JSX.Element;
12
+ export {};
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { Button, ButtonSize } from '../../Inputs/Button';
3
+ import Logo from '../../assets/logo.svg';
4
+ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (React.createElement("header", null,
5
+ React.createElement("div", { className: "storybook-header" },
6
+ React.createElement("div", null,
7
+ React.createElement("img", { src: Logo, alt: "Logo" }),
8
+ React.createElement("h1", null, "Torgbox")),
9
+ React.createElement("div", null, user ? (React.createElement(React.Fragment, null,
10
+ React.createElement("span", { className: "welcome" },
11
+ "Welcome, ",
12
+ React.createElement("b", null, user.name),
13
+ "!"),
14
+ React.createElement(Button, { size: ButtonSize.small, onClick: onLogout, label: 'Log out' }))) : (React.createElement(React.Fragment, null,
15
+ React.createElement(Button, { size: ButtonSize.small, onClick: onLogin, label: 'Log in' }),
16
+ React.createElement(Button, { size: ButtonSize.small, onClick: onCreateAccount, label: 'Sign up', primary: true })))))));
@@ -0,0 +1,32 @@
1
+ .storybook-header {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
4
+ padding: 15px 20px;
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: space-between;
8
+ }
9
+
10
+ .storybook-header svg {
11
+ display: inline-block;
12
+ vertical-align: top;
13
+ }
14
+
15
+ .storybook-header h1 {
16
+ font-weight: 700;
17
+ font-size: 20px;
18
+ line-height: 1;
19
+ margin: 6px 0 6px 10px;
20
+ display: inline-block;
21
+ vertical-align: top;
22
+ }
23
+
24
+ .storybook-header button + button {
25
+ margin-left: 10px;
26
+ }
27
+
28
+ .storybook-header .welcome {
29
+ color: #333;
30
+ font-size: 14px;
31
+ margin-right: 10px;
32
+ }
@@ -0,0 +1 @@
1
+ export { Header } from './Header';
@@ -0,0 +1 @@
1
+ export { Header } from './Header';
@@ -0,0 +1,32 @@
1
+ .storybook-header {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
4
+ padding: 15px 20px;
5
+ display: flex;
6
+ align-items: center;
7
+ justify-content: space-between;
8
+ }
9
+
10
+ .storybook-header svg {
11
+ display: inline-block;
12
+ vertical-align: top;
13
+ }
14
+
15
+ .storybook-header h1 {
16
+ font-weight: 700;
17
+ font-size: 20px;
18
+ line-height: 1;
19
+ margin: 6px 0 6px 10px;
20
+ display: inline-block;
21
+ vertical-align: top;
22
+ }
23
+
24
+ .storybook-header button + button {
25
+ margin-left: 10px;
26
+ }
27
+
28
+ .storybook-header .welcome {
29
+ color: #333;
30
+ font-size: 14px;
31
+ margin-right: 10px;
32
+ }
@@ -0,0 +1 @@
1
+ export { Header } from './Header';
@@ -0,0 +1 @@
1
+ export { Header } from './Header';
package/dist/index.css ADDED
@@ -0,0 +1,133 @@
1
+ .storybook-button {
2
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
3
+ font-weight: 700;
4
+ border: 0;
5
+ border-radius: 3em;
6
+ cursor: pointer;
7
+ display: inline-block;
8
+ line-height: 1;
9
+ }
10
+ .storybook-button--primary {
11
+ color: white;
12
+ background-color: #1ea7fd;
13
+ }
14
+ .storybook-button--secondary {
15
+ color: #333;
16
+ background-color: transparent;
17
+ box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset;
18
+ }
19
+ .storybook-button--small {
20
+ font-size: 12px;
21
+ padding: 10px 16px;
22
+ }
23
+ .storybook-button--medium {
24
+ font-size: 14px;
25
+ padding: 11px 20px;
26
+ }
27
+ .storybook-button--large {
28
+ font-size: 16px;
29
+ padding: 12px 24px;
30
+ }
31
+
32
+ .storybook-header {
33
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
34
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
35
+ padding: 15px 20px;
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: space-between;
39
+ }
40
+
41
+ .storybook-header svg {
42
+ display: inline-block;
43
+ vertical-align: top;
44
+ }
45
+
46
+ .storybook-header h1 {
47
+ font-weight: 700;
48
+ font-size: 20px;
49
+ line-height: 1;
50
+ margin: 6px 0 6px 10px;
51
+ display: inline-block;
52
+ vertical-align: top;
53
+ }
54
+
55
+ .storybook-header button + button {
56
+ margin-left: 10px;
57
+ }
58
+
59
+ .storybook-header .welcome {
60
+ color: #333;
61
+ font-size: 14px;
62
+ margin-right: 10px;
63
+ }
64
+
65
+ .storybook-page {
66
+ font-family: "Nunito Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
67
+ font-size: 14px;
68
+ line-height: 24px;
69
+ padding: 48px 20px;
70
+ margin: 0 auto;
71
+ max-width: 600px;
72
+ color: #333;
73
+ }
74
+
75
+ .storybook-page h2 {
76
+ font-weight: 700;
77
+ font-size: 32px;
78
+ line-height: 1;
79
+ margin: 0 0 4px;
80
+ display: inline-block;
81
+ vertical-align: top;
82
+ }
83
+
84
+ .storybook-page p {
85
+ margin: 1em 0;
86
+ }
87
+
88
+ .storybook-page a {
89
+ text-decoration: none;
90
+ color: #1ea7fd;
91
+ }
92
+
93
+ .storybook-page ul {
94
+ padding-left: 30px;
95
+ margin: 1em 0;
96
+ }
97
+
98
+ .storybook-page li {
99
+ margin-bottom: 8px;
100
+ }
101
+
102
+ .storybook-page .tip {
103
+ display: inline-block;
104
+ border-radius: 1em;
105
+ font-size: 11px;
106
+ line-height: 12px;
107
+ font-weight: 700;
108
+ background: #e7fdd8;
109
+ color: #66bf3c;
110
+ padding: 4px 12px;
111
+ margin-right: 10px;
112
+ vertical-align: top;
113
+ }
114
+
115
+ .storybook-page .tip-wrapper {
116
+ font-size: 13px;
117
+ line-height: 20px;
118
+ margin-top: 40px;
119
+ margin-bottom: 40px;
120
+ }
121
+
122
+ .storybook-page .tip-wrapper svg {
123
+ display: inline-block;
124
+ height: 12px;
125
+ width: 12px;
126
+ margin-right: 4px;
127
+ vertical-align: top;
128
+ margin-top: 3px;
129
+ }
130
+
131
+ .storybook-page .tip-wrapper svg path {
132
+ fill: #1ea7fd;
133
+ }
@@ -0,0 +1,3 @@
1
+ export * as Inputs from './Inputs';
2
+ export * as Sections from './Sections';
3
+ export * as Pages from './Pages';
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * as Inputs from './Inputs';
2
+ export * as Sections from './Sections';
3
+ export * as Pages from './Pages';
package/package.json ADDED
@@ -0,0 +1,82 @@
1
+ {
2
+ "name": "torgbox-ui",
3
+ "version": "1.0.0",
4
+ "readme": "README.md",
5
+ "description": "UI-Kit команды проекта Torgbox",
6
+ "keywords": [
7
+ "ui"
8
+ ],
9
+ "main": "dist/index.js",
10
+ "typings": "dist/index.d.ts",
11
+ "scripts": {
12
+ "test": "react-scripts test --setupFiles ./setupFile.js",
13
+ "prebuild": "rm -rf dist",
14
+ "build:ts": "tsc --build",
15
+ "build:scss": "sass --no-source-map ./src:./dist",
16
+ "build": "npm run build:ts && npm run build:scss",
17
+ "prepack": "npm run build",
18
+ "clean": "tsc --build --clean",
19
+ "typecheck": "tsc --noEmit",
20
+ "start": "storybook dev -p 8000",
21
+ "storybook-test": "test-storybook",
22
+ "storybook-test-cov": "test-storybook -- --coverage",
23
+ "build-storybook": "storybook build",
24
+ "storybook-docs": "storybook dev --docs",
25
+ "chromatic": "npx chromatic"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/Torgbox/torgbox-ui.git"
30
+ },
31
+ "author": "Bykov Ilya <bykov-ilya@mail.ru>",
32
+ "contributors": [
33
+ "Rezanov Anton <ton@specadmin.ru>",
34
+ "Golovkov Maksim <max@specadmin.ru>",
35
+ "Bykova Maria <bykova1985maria@gmail.com>"
36
+ ],
37
+ "license": "ISC",
38
+ "bugs": {
39
+ "url": "https://github.com/Torgbox/torgbox-ui/issues"
40
+ },
41
+ "homepage": "https://github.com/Torgbox/torgbox-ui#readme",
42
+ "engines": {
43
+ "node": ">= 16.0.0",
44
+ "npm": ">= 9.0.0"
45
+ },
46
+ "browserslist": [
47
+ "> 1%",
48
+ "last 2 versions",
49
+ "not ie <= 8"
50
+ ],
51
+ "dependencies": {
52
+ "react": "^18.2.0",
53
+ "react-dom": "^18.2.0"
54
+ },
55
+ "devDependencies": {
56
+ "@babel/preset-env": "^7.22.7",
57
+ "@babel/preset-react": "^7.22.5",
58
+ "@babel/preset-typescript": "^7.22.5",
59
+ "@storybook/addon-a11y": "^7.0.26",
60
+ "@storybook/addon-coverage": "^0.0.8",
61
+ "@storybook/addon-essentials": "^7.0.26",
62
+ "@storybook/addon-interactions": "^7.0.26",
63
+ "@storybook/addon-links": "^7.0.26",
64
+ "@storybook/addon-styling": "^1.3.2",
65
+ "@storybook/blocks": "^7.0.26",
66
+ "@storybook/jest": "^0.1.0",
67
+ "@storybook/react": "^7.0.26",
68
+ "@storybook/react-webpack5": "^7.0.26",
69
+ "@storybook/test-runner": "^0.11.0",
70
+ "@storybook/testing-library": "^0.0.14-next.2",
71
+ "@storybook/testing-react": "^2.0.1",
72
+ "@testing-library/react": "^14.0.0",
73
+ "@types/node": "^20.3.3",
74
+ "@types/react": "^18.2.14",
75
+ "@types/react-dom": "^18.2.6",
76
+ "chromatic": "^6.19.9",
77
+ "prop-types": "^15.8.1",
78
+ "sass": "^1.63.6",
79
+ "storybook": "^7.0.26",
80
+ "typescript": "^5.1.6"
81
+ }
82
+ }
Binary file
Binary file