mimir-ui-kit 1.14.1 → 1.14.3

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 CHANGED
@@ -1,62 +1,62 @@
1
- # Mimir-ui
2
-
3
- ## Установка и запуск проекта
4
-
5
- 1. Установите зависимости:
6
- ```bash
7
- npm install
8
- ```
9
- 2. Запуск storybook
10
- ```bash
11
- npm run storybook
12
- ```
13
-
14
- ## Сборка проекта
15
-
16
- 1. Скрипт для сборки
17
- ```bash
18
- npm run build
19
- ```
20
-
21
- ## Создание нового компонента
22
-
23
- ```bash
24
- npm run create-component <ComponentName>
25
- ```
26
-
27
- ## Поднятие версии для публикации на npm
28
-
29
- Для поднятия версии пакета перед публикацией на npm используем следующие скрипты:
30
-
31
- 1. `patch`: Этот скрипт увеличивает версию пакета на один патч (например, с версии 1.0.0 до 1.0.1). Он автоматически обновляет версию в файле package.json и создает коммит с обновленной версией.
32
-
33
- ```bash
34
- npm version patch
35
- ```
36
-
37
- 2. `minor`: Этот скрипт увеличивает версию пакета на один минорный уровень (например, с версии 1.0.0 до 1.1.0). Также обновляет версию в package.json и создает коммит.
38
- ```bash
39
- npm version minor
40
- ```
41
- 3. `major`: Этот скрипт увеличивает версию пакета на один мажорный уровень (например, с версии 1.0.0 до 2.0.0). Он также обновляет версию в package.json и создает коммит.
42
- ```bash
43
- npm version major
44
- ```
45
-
46
- ## Публикация на npm
47
-
48
- 1. Скрипт для публикации на npm:
49
- ```bash
50
- npm publish
51
- ```
52
-
53
- ## Ручная Генерация иконок
54
-
55
- 1. Экспортируем с фигмы иконку.
56
- 2. Добавляем ее в папку svgs.
57
- 3. Запускаем скрипт:
58
- ```bash
59
- npm run icons
60
- ```
61
- 4. Смотрим в папку `icons/components`
62
- 5. Готово.
1
+ # Mimir-ui
2
+
3
+ ## Установка и запуск проекта
4
+
5
+ 1. Установите зависимости:
6
+ ```bash
7
+ npm install
8
+ ```
9
+ 2. Запуск storybook
10
+ ```bash
11
+ npm run storybook
12
+ ```
13
+
14
+ ## Сборка проекта
15
+
16
+ 1. Скрипт для сборки
17
+ ```bash
18
+ npm run build
19
+ ```
20
+
21
+ ## Создание нового компонента
22
+
23
+ ```bash
24
+ npm run create-component <ComponentName>
25
+ ```
26
+
27
+ ## Поднятие версии для публикации на npm
28
+
29
+ Для поднятия версии пакета перед публикацией на npm используем следующие скрипты:
30
+
31
+ 1. `patch`: Этот скрипт увеличивает версию пакета на один патч (например, с версии 1.0.0 до 1.0.1). Он автоматически обновляет версию в файле package.json и создает коммит с обновленной версией.
32
+
33
+ ```bash
34
+ npm version patch
35
+ ```
36
+
37
+ 2. `minor`: Этот скрипт увеличивает версию пакета на один минорный уровень (например, с версии 1.0.0 до 1.1.0). Также обновляет версию в package.json и создает коммит.
38
+ ```bash
39
+ npm version minor
40
+ ```
41
+ 3. `major`: Этот скрипт увеличивает версию пакета на один мажорный уровень (например, с версии 1.0.0 до 2.0.0). Он также обновляет версию в package.json и создает коммит.
42
+ ```bash
43
+ npm version major
44
+ ```
45
+
46
+ ## Публикация на npm
47
+
48
+ 1. Скрипт для публикации на npm:
49
+ ```bash
50
+ npm publish
51
+ ```
52
+
53
+ ## Ручная Генерация иконок
54
+
55
+ 1. Экспортируем с фигмы иконку.
56
+ 2. Добавляем ее в папку svgs.
57
+ 3. Запускаем скрипт:
58
+ ```bash
59
+ npm run icons
60
+ ```
61
+ 4. Смотрим в папку `icons/components`
62
+ 5. Готово.
@@ -1 +1 @@
1
- ._drawer_vy4rv_3{--drawer-width: 808px;--drawer-z-index: 1000;position:fixed;z-index:1000;z-index:var(--drawer-z-index);display:flex;flex-direction:column;width:808px;width:var(--drawer-width);height:100%;overflow:auto;background-color:var(--black-5);transition:all .3s ease;pointer-events:none}._drawer_vy4rv_3 ._content_vy4rv_17{position:relative;z-index:var(--modal-z-index);display:flex;flex:1;flex-direction:column;padding:var(--space-m) var(--space-4xl) var(--space-4xl);transition:all .3s ease}@media (max-width: 600px){._drawer_vy4rv_3 ._content_vy4rv_17{--drawer-width: 100%;padding:var(--space-m)}}._drawer_vy4rv_3 ._header_vy4rv_32{display:flex;gap:var(--space-xs);height:68px}._drawer_vy4rv_3 ._header_vy4rv_32:not(:last-child){margin-bottom:var(--space-2xl)}._drawer_vy4rv_3 ._header_vy4rv_32 ._title_vy4rv_40{flex:1;align-self:flex-end;font-weight:var(--font-weight-text-medium);font-size:var(--size-text-xl3);line-height:var(--line-height-text-s1);letter-spacing:.7px}@media (max-width: 600px){._drawer_vy4rv_3 ._header_vy4rv_32 ._title_vy4rv_40{font-size:var(--size-text-xl2);line-height:var(--line-height-text-xs)}}._drawer_vy4rv_3 ._header_vy4rv_32 ._space_vy4rv_54{flex:0 0 var(--button-height-m)}@media (max-width: 600px){._drawer_vy4rv_3 ._header_vy4rv_32{height:55px}._drawer_vy4rv_3 ._header_vy4rv_32:not(:last-child){margin-bottom:var(--space-m)}}._drawer_vy4rv_3 ._inner_vy4rv_65{flex:1}._drawer_vy4rv_3 ._button_vy4rv_68{position:absolute;top:var(--space-m);right:var(--space-m)}._drawer_vy4rv_3 ._footer_vy4rv_73{display:block;padding-top:var(--space-4xl)}@media (max-width: 600px){._drawer_vy4rv_3 ._footer_vy4rv_73{padding-top:var(--space-m)}}._drawer_vy4rv_3 ._footer-button_vy4rv_82{display:block;margin-left:auto}._drawer_vy4rv_3._left_vy4rv_86{top:0;left:-100%}._drawer_vy4rv_3._right_vy4rv_90{top:0;right:-100%}._drawer_vy4rv_3._bottom_vy4rv_94{right:50%;bottom:-100%;left:50%;max-height:80vh;border-top-left-radius:var(--control-radius);border-top-right-radius:var(--control-radius);transform:translate(-50%)}._drawer_vy4rv_3._opened_vy4rv_103{transition:all .3s ease;pointer-events:auto}._drawer_vy4rv_3._opened_vy4rv_103._left_vy4rv_86{left:0%;transition:left .3s ease}._drawer_vy4rv_3._opened_vy4rv_103._right_vy4rv_90{right:0%;transition:right .3s ease}._drawer_vy4rv_3._opened_vy4rv_103._bottom_vy4rv_94{bottom:0%}._drawer_vy4rv_3._is-closing_vy4rv_118._left_vy4rv_86{left:-100%}._drawer_vy4rv_3._is-closing_vy4rv_118._right_vy4rv_90{right:-100%}._drawer_vy4rv_3._is-closing_vy4rv_118._bottom_vy4rv_94{bottom:-100%}@media (max-width: 1440px){._drawer_vy4rv_3{--drawer-width: 608px}}@media (max-width: 1280px){._drawer_vy4rv_3{--drawer-width: 648px}}@media (max-width: 768px){._drawer_vy4rv_3{--drawer-width: 584px}}@media (max-width: 600px){._drawer_vy4rv_3{--drawer-width: 100%}._drawer_vy4rv_3._bottom_vy4rv_94{max-width:359px}}._overlay_vy4rv_151{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;opacity:0;transition:all .3s ease}._overlay_vy4rv_151._opened_vy4rv_103{opacity:1;transition:all .3s ease}._overlay_vy4rv_151._is-closing_vy4rv_118{opacity:0;transition:all .3s ease}
1
+ ._drawer_luket_3{--drawer-width: 808px;--drawer-z-index: 10000;position:fixed;z-index:10000;z-index:var(--drawer-z-index);display:flex;flex-direction:column;width:808px;width:var(--drawer-width);height:100%;overflow:auto;background-color:var(--black-5);transition:all .3s ease;pointer-events:none}._drawer_luket_3 ._content_luket_17{position:relative;display:flex;flex:1;flex-direction:column;padding:var(--space-m) var(--space-4xl) var(--space-4xl);transition:all .3s ease}@media (max-width: 600px){._drawer_luket_3 ._content_luket_17{--drawer-width: 100%;padding:var(--space-m)}}._drawer_luket_3 ._header_luket_31{display:flex;gap:var(--space-xs);height:68px}._drawer_luket_3 ._header_luket_31:not(:last-child){margin-bottom:var(--space-2xl)}._drawer_luket_3 ._header_luket_31 ._title_luket_39{flex:1;align-self:flex-end;font-weight:var(--font-weight-text-medium);font-size:var(--size-text-xl3);line-height:var(--line-height-text-s1);letter-spacing:.7px}@media (max-width: 600px){._drawer_luket_3 ._header_luket_31 ._title_luket_39{font-size:var(--size-text-xl2);line-height:var(--line-height-text-xs)}}._drawer_luket_3 ._header_luket_31 ._space_luket_53{flex:0 0 var(--button-height-m)}@media (max-width: 600px){._drawer_luket_3 ._header_luket_31{height:55px}._drawer_luket_3 ._header_luket_31:not(:last-child){margin-bottom:var(--space-m)}}._drawer_luket_3 ._inner_luket_64{flex:1}._drawer_luket_3 ._button_luket_67{position:absolute;top:var(--space-m);right:var(--space-m)}._drawer_luket_3 ._footer_luket_72{display:block;padding-top:var(--space-4xl)}@media (max-width: 600px){._drawer_luket_3 ._footer_luket_72{padding-top:var(--space-m)}}._drawer_luket_3 ._footer-button_luket_81{display:block;margin-left:auto}._drawer_luket_3._left_luket_85{top:0;left:-100%}._drawer_luket_3._right_luket_89{top:0;right:-100%}._drawer_luket_3._bottom_luket_93{right:50%;bottom:-100%;left:50%;max-height:80vh;border-top-left-radius:var(--control-radius);border-top-right-radius:var(--control-radius);transform:translate(-50%)}._drawer_luket_3._opened_luket_102{transition:all .3s ease;pointer-events:auto}._drawer_luket_3._opened_luket_102._left_luket_85{left:0%;transition:left .3s ease}._drawer_luket_3._opened_luket_102._right_luket_89{right:0%;transition:right .3s ease}._drawer_luket_3._opened_luket_102._bottom_luket_93{bottom:0%}._drawer_luket_3._is-closing_luket_117._left_luket_85{left:-100%}._drawer_luket_3._is-closing_luket_117._right_luket_89{right:-100%}._drawer_luket_3._is-closing_luket_117._bottom_luket_93{bottom:-100%}@media (max-width: 1440px){._drawer_luket_3{--drawer-width: 608px}}@media (max-width: 1280px){._drawer_luket_3{--drawer-width: 648px}}@media (max-width: 768px){._drawer_luket_3{--drawer-width: 584px}}@media (max-width: 600px){._drawer_luket_3{--drawer-width: 100%}._drawer_luket_3._bottom_luket_93{max-width:359px}}._overlay_luket_150{--overlay-z-index: 9990;position:fixed;top:0;left:0;z-index:9990;z-index:var(--overlay-z-index);width:100%;height:100%;background-color:#0009;opacity:0;transition:all .3s ease}._overlay_luket_150._opened_luket_102{opacity:1;transition:all .3s ease}._overlay_luket_150._is-closing_luket_117{opacity:0;transition:all .3s ease}
@@ -14,6 +14,10 @@ type TProps = {
14
14
  * Настраиваемый паддинг для body, что бы избежать скачка контента при overflow: hidden
15
15
  */
16
16
  paddingRight?: number;
17
+ /**
18
+ * Дополнительная высота для учета нижнего сайдбара
19
+ */
20
+ additionalHeight?: number;
17
21
  /**
18
22
  * Функция закрытия шторки
19
23
  */
@@ -29,10 +33,12 @@ type TProps = {
29
33
  /**
30
34
  * Кастомный footer. По дефолту в нем расположена кнопка для закрытия.
31
35
  */
32
- footer?: ReactNode;
36
+ footer?: ReactNode | ((props: {
37
+ handleClose: VoidFunction;
38
+ }) => JSX.Element);
33
39
  };
34
40
  /**
35
41
  * Компонент шторки, который может выезжать слева, справа или внизу.
36
42
  */
37
- export declare const Drawer: ({ isOpen, onClose, title, className, position, paddingRight, footer, children }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element | null;
43
+ export declare const Drawer: ({ isOpen, onClose, title, className, position, paddingRight, additionalHeight, footer, children }: PropsWithChildren<TProps>) => import("react/jsx-runtime").JSX.Element | null;
38
44
  export {};
@@ -8,19 +8,19 @@ import { useLockBodyScroll } from "../../hooks/useLockBodyScroll/useLockBodyScro
8
8
  import { Button } from "../Button/Button.js";
9
9
  import { EButtonVariantDefault, EButtonSize } from "../Button/constants.js";
10
10
  import { Portal } from "../Portal/Portal.js";
11
- import '../../assets/Drawer.css';const drawer = "_drawer_vy4rv_3";
12
- const content = "_content_vy4rv_17";
13
- const header = "_header_vy4rv_32";
14
- const title = "_title_vy4rv_40";
15
- const space = "_space_vy4rv_54";
16
- const inner = "_inner_vy4rv_65";
17
- const button = "_button_vy4rv_68";
18
- const footer = "_footer_vy4rv_73";
19
- const left = "_left_vy4rv_86";
20
- const right = "_right_vy4rv_90";
21
- const bottom = "_bottom_vy4rv_94";
22
- const opened = "_opened_vy4rv_103";
23
- const overlay = "_overlay_vy4rv_151";
11
+ import '../../assets/Drawer.css';const drawer = "_drawer_luket_3";
12
+ const content = "_content_luket_17";
13
+ const header = "_header_luket_31";
14
+ const title = "_title_luket_39";
15
+ const space = "_space_luket_53";
16
+ const inner = "_inner_luket_64";
17
+ const button = "_button_luket_67";
18
+ const footer = "_footer_luket_72";
19
+ const left = "_left_luket_85";
20
+ const right = "_right_luket_89";
21
+ const bottom = "_bottom_luket_93";
22
+ const opened = "_opened_luket_102";
23
+ const overlay = "_overlay_luket_150";
24
24
  const cls = {
25
25
  drawer,
26
26
  content,
@@ -30,12 +30,12 @@ const cls = {
30
30
  inner,
31
31
  button,
32
32
  footer,
33
- "footer-button": "_footer-button_vy4rv_82",
33
+ "footer-button": "_footer-button_luket_81",
34
34
  left,
35
35
  right,
36
36
  bottom,
37
37
  opened,
38
- "is-closing": "_is-closing_vy4rv_118",
38
+ "is-closing": "_is-closing_luket_117",
39
39
  overlay
40
40
  };
41
41
  const ANIMATION_DELAY = 300;
@@ -46,6 +46,7 @@ const Drawer = ({
46
46
  className,
47
47
  position = EDrawerPosition.RIGHT,
48
48
  paddingRight = 8,
49
+ additionalHeight = 0,
49
50
  footer: footer2,
50
51
  children
51
52
  }) => {
@@ -101,10 +102,10 @@ const Drawer = ({
101
102
  /* @__PURE__ */ jsx(
102
103
  "div",
103
104
  {
104
- "aria-hidden": isOpen,
105
+ "aria-hidden": !isOpen,
105
106
  role: "dialog",
106
107
  style: {
107
- minHeight: isBottomPosition && contentRef.current ? contentRef.current.offsetHeight : void 0
108
+ minHeight: isBottomPosition && contentRef.current ? contentRef.current.offsetHeight + additionalHeight : void 0
108
109
  },
109
110
  className: classNames(cls.drawer, cls[position], mods, className),
110
111
  children: /* @__PURE__ */ jsxs("section", { className: classNames(cls.content, cls[position]), children: [
@@ -123,7 +124,7 @@ const Drawer = ({
123
124
  ) })
124
125
  ] }),
125
126
  /* @__PURE__ */ jsx("div", { ref: contentRef, className: cls.inner, children }),
126
- /* @__PURE__ */ jsx("footer", { className: cls.footer, children: footer2 || /* @__PURE__ */ jsx(
127
+ /* @__PURE__ */ jsx("footer", { className: cls.footer, children: typeof footer2 === "function" ? footer2({ handleClose }) : footer2 || /* @__PURE__ */ jsx(
127
128
  Button,
128
129
  {
129
130
  size: isMobile ? EButtonSize.M : EButtonSize.XXL,
package/package.json CHANGED
@@ -1,128 +1,128 @@
1
- {
2
- "name": "mimir-ui-kit",
3
- "private": false,
4
- "version": "1.14.1",
5
- "type": "module",
6
- "exports": {
7
- ".": {
8
- "types": "./dist/index.d.ts",
9
- "default": "./dist/index.js"
10
- },
11
- "./components": {
12
- "types": "./dist/components/index.d.ts",
13
- "default": "./dist/components/index.js"
14
- },
15
- "./hooks": {
16
- "types": "./dist/hooks/index.d.ts",
17
- "default": "./dist/hooks/index.js"
18
- },
19
- "./icons": {
20
- "types": "./dist/icons/index.d.ts",
21
- "default": "./dist/icons/index.js"
22
- },
23
- "./styles": {
24
- "default": "./dist/assets/index.css"
25
- }
26
- },
27
- "module": "./dist/index.js",
28
- "types": "./dist/index.d.ts",
29
- "files": [
30
- "dist"
31
- ],
32
- "sideEffects": [
33
- "**/*.{css,scss}"
34
- ],
35
- "scripts": {
36
- "build": "tsc --p ./tsconfig-build.json && vite build",
37
- "storybook": "storybook dev -p 6006",
38
- "build-storybook": "storybook build",
39
- "ts:check": "tsc -b",
40
- "lint:fix": "eslint . --ext ts,tsx --fix",
41
- "lint:prettier": "npx prettier . --write",
42
- "lint:stylelint": "stylelint '**/*.module{.css,.scss}'",
43
- "lint:stylelint:fix": "stylelint '**/*.module{.css,.scss}' --fix",
44
- "icons": "svgr --expand-props start ./src/icons/svgs",
45
- "prepare": "husky",
46
- "create-component": "node createComponent.js"
47
- },
48
- "devDependencies": {
49
- "@chromatic-com/storybook": "^1.6.1",
50
- "@headlessui/react": "^2.1.2",
51
- "@laynezh/vite-plugin-lib-assets": "^0.5.23",
52
- "@loadable/component": "^5.15.2",
53
- "@storybook/addon-essentials": "^8.2.2",
54
- "@storybook/addon-interactions": "^8.2.2",
55
- "@storybook/addon-links": "^8.2.2",
56
- "@storybook/addon-onboarding": "^8.2.2",
57
- "@storybook/blocks": "^8.2.2",
58
- "@storybook/builder-vite": "^8.2.2",
59
- "@storybook/react": "^8.2.2",
60
- "@storybook/react-vite": "^8.2.2",
61
- "@storybook/test": "^8.2.2",
62
- "@svgr/cli": "^8.1.0",
63
- "@svgr/core": "^8.1.0",
64
- "@svgr/plugin-svgo": "^8.1.0",
65
- "@types/node": "^20.14.10",
66
- "@types/react": "^18.3.3",
67
- "@types/react-dom": "^18.3.0",
68
- "@typescript-eslint/eslint-plugin": "^7.13.1",
69
- "@typescript-eslint/parser": "^7.13.1",
70
- "@vitejs/plugin-react": "^4.3.1",
71
- "autoprefixer": "^10.4.19",
72
- "chalk": "4.1.2",
73
- "classnames": "^2.5.1",
74
- "dotenv": "^16.4.5",
75
- "eslint": "^8.57.0",
76
- "eslint-config-prettier": "^9.1.0",
77
- "eslint-plugin-import": "^2.29.1",
78
- "eslint-plugin-react-hooks": "^4.6.2",
79
- "eslint-plugin-react-refresh": "^0.4.7",
80
- "eslint-plugin-storybook": "^0.8.0",
81
- "glob": "10.3.10",
82
- "husky": "^9.0.11",
83
- "lint-staged": "^15.2.7",
84
- "p-limit": "^6.1.0",
85
- "postcss-preset-env": "^9.6.0",
86
- "prettier": "^3.3.3",
87
- "react": "^18.3.1",
88
- "react-dom": "^18.3.1",
89
- "sass": "^1.77.7",
90
- "storybook": "^8.2.2",
91
- "stylelint": "^16.7.0",
92
- "stylelint-config-idiomatic-order": "^10.0.0",
93
- "stylelint-config-rational-order": "^0.1.2",
94
- "stylelint-config-standard": "^36.0.1",
95
- "stylelint-order": "^6.0.4",
96
- "stylelint-prettier": "^5.0.0",
97
- "stylelint-scss": "^6.4.0",
98
- "superagent": "^9.0.2",
99
- "typescript": "^5.2.2",
100
- "vite": "^5.3.1",
101
- "vite-plugin-dts": "^3.9.1",
102
- "vite-plugin-lib-inject-css": "^2.1.1",
103
- "vite-plugin-svgr": "^4.2.0"
104
- },
105
- "peerDependencies": {
106
- "@headlessui/react": "^2.1.2",
107
- "react": "^18.3.1",
108
- "react-dom": "^18.3.1"
109
- },
110
- "husky": {
111
- "hooks": {
112
- "pre-commit": "lint-staged"
113
- }
114
- },
115
- "lint-staged": {
116
- "**/*.{ts,tsx}": [
117
- "eslint --ignore-path .eslintignore",
118
- "prettier --write"
119
- ],
120
- "**/*.{css,scss}": [
121
- "stylelint --fix"
122
- ]
123
- },
124
- "dependencies": {
125
- "swiper": "^11.1.5",
126
- "use-clipboard-copy": "^0.2.0"
127
- }
128
- }
1
+ {
2
+ "name": "mimir-ui-kit",
3
+ "private": false,
4
+ "version": "1.14.3",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "default": "./dist/index.js"
10
+ },
11
+ "./components": {
12
+ "types": "./dist/components/index.d.ts",
13
+ "default": "./dist/components/index.js"
14
+ },
15
+ "./hooks": {
16
+ "types": "./dist/hooks/index.d.ts",
17
+ "default": "./dist/hooks/index.js"
18
+ },
19
+ "./icons": {
20
+ "types": "./dist/icons/index.d.ts",
21
+ "default": "./dist/icons/index.js"
22
+ },
23
+ "./styles": {
24
+ "default": "./dist/assets/index.css"
25
+ }
26
+ },
27
+ "module": "./dist/index.js",
28
+ "types": "./dist/index.d.ts",
29
+ "files": [
30
+ "dist"
31
+ ],
32
+ "sideEffects": [
33
+ "**/*.{css,scss}"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc --p ./tsconfig-build.json && vite build",
37
+ "storybook": "storybook dev -p 6006",
38
+ "build-storybook": "storybook build",
39
+ "ts:check": "tsc -b",
40
+ "lint:fix": "eslint . --ext ts,tsx --fix",
41
+ "lint:prettier": "npx prettier . --write",
42
+ "lint:stylelint": "stylelint '**/*.module{.css,.scss}'",
43
+ "lint:stylelint:fix": "stylelint '**/*.module{.css,.scss}' --fix",
44
+ "icons": "svgr --expand-props start ./src/icons/svgs",
45
+ "prepare": "husky",
46
+ "create-component": "node createComponent.js"
47
+ },
48
+ "devDependencies": {
49
+ "@chromatic-com/storybook": "^1.6.1",
50
+ "@headlessui/react": "^2.1.2",
51
+ "@laynezh/vite-plugin-lib-assets": "^0.5.23",
52
+ "@loadable/component": "^5.15.2",
53
+ "@storybook/addon-essentials": "^8.2.2",
54
+ "@storybook/addon-interactions": "^8.2.2",
55
+ "@storybook/addon-links": "^8.2.2",
56
+ "@storybook/addon-onboarding": "^8.2.2",
57
+ "@storybook/blocks": "^8.2.2",
58
+ "@storybook/builder-vite": "^8.2.2",
59
+ "@storybook/react": "^8.2.2",
60
+ "@storybook/react-vite": "^8.2.2",
61
+ "@storybook/test": "^8.2.2",
62
+ "@svgr/cli": "^8.1.0",
63
+ "@svgr/core": "^8.1.0",
64
+ "@svgr/plugin-svgo": "^8.1.0",
65
+ "@types/node": "^20.14.10",
66
+ "@types/react": "^18.3.3",
67
+ "@types/react-dom": "^18.3.0",
68
+ "@typescript-eslint/eslint-plugin": "^7.13.1",
69
+ "@typescript-eslint/parser": "^7.13.1",
70
+ "@vitejs/plugin-react": "^4.3.1",
71
+ "autoprefixer": "^10.4.19",
72
+ "chalk": "4.1.2",
73
+ "classnames": "^2.5.1",
74
+ "dotenv": "^16.4.5",
75
+ "eslint": "^8.57.0",
76
+ "eslint-config-prettier": "^9.1.0",
77
+ "eslint-plugin-import": "^2.29.1",
78
+ "eslint-plugin-react-hooks": "^4.6.2",
79
+ "eslint-plugin-react-refresh": "^0.4.7",
80
+ "eslint-plugin-storybook": "^0.8.0",
81
+ "glob": "10.3.10",
82
+ "husky": "^9.0.11",
83
+ "lint-staged": "^15.2.7",
84
+ "p-limit": "^6.1.0",
85
+ "postcss-preset-env": "^9.6.0",
86
+ "prettier": "^3.3.3",
87
+ "react": "^18.3.1",
88
+ "react-dom": "^18.3.1",
89
+ "sass": "^1.77.7",
90
+ "storybook": "^8.2.2",
91
+ "stylelint": "^16.7.0",
92
+ "stylelint-config-idiomatic-order": "^10.0.0",
93
+ "stylelint-config-rational-order": "^0.1.2",
94
+ "stylelint-config-standard": "^36.0.1",
95
+ "stylelint-order": "^6.0.4",
96
+ "stylelint-prettier": "^5.0.0",
97
+ "stylelint-scss": "^6.4.0",
98
+ "superagent": "^9.0.2",
99
+ "typescript": "^5.2.2",
100
+ "vite": "^5.3.1",
101
+ "vite-plugin-dts": "^3.9.1",
102
+ "vite-plugin-lib-inject-css": "^2.1.1",
103
+ "vite-plugin-svgr": "^4.2.0"
104
+ },
105
+ "peerDependencies": {
106
+ "@headlessui/react": "^2.1.2",
107
+ "react": "^18.3.1",
108
+ "react-dom": "^18.3.1"
109
+ },
110
+ "husky": {
111
+ "hooks": {
112
+ "pre-commit": "lint-staged"
113
+ }
114
+ },
115
+ "lint-staged": {
116
+ "**/*.{ts,tsx}": [
117
+ "eslint --ignore-path .eslintignore",
118
+ "prettier --write"
119
+ ],
120
+ "**/*.{css,scss}": [
121
+ "stylelint --fix"
122
+ ]
123
+ },
124
+ "dependencies": {
125
+ "swiper": "^11.1.5",
126
+ "use-clipboard-copy": "^0.2.0"
127
+ }
128
+ }