create-comate-pagebuilder 1.0.17 → 1.0.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-comate-pagebuilder",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "description": "Create a modern, minimalist React + Vite + Tailwind CSS project",
5
5
  "type": "commonjs",
6
6
  "bin": {
@@ -0,0 +1,227 @@
1
+ # Agent Rules
2
+
3
+ 本文件为 AI Agent 提供项目开发指南,Agent 在编写代码前**必须先阅读本文件**。
4
+
5
+ ---
6
+
7
+ ## 🚨 强制执行规则(优先级最高)
8
+
9
+ 在编写任何代码前,必须完成以下步骤:
10
+
11
+ ### 0. 项目位置确认(最高优先级)
12
+
13
+ > ⚠️ **写代码前必须先确认正确的项目位置,这是最常见的错误来源!**
14
+
15
+ #### 必须执行的检查:
16
+
17
+ 1. **识别项目根目录**
18
+ - 查找 `package.json` 所在位置,该位置即为项目根目录
19
+ - 项目根目录通常包含:`package.json`、`src/`、`node_modules/`、`vite.config.js` 等
20
+ - 如果工作区根目录与项目根目录不同,必须明确区分
21
+
22
+ 2. **路径对齐原则**
23
+ - 所有文件操作路径必须基于**项目根目录**,而非工作区根目录
24
+ - 示例:若项目位于 `aiide-web-prototype/` 子目录
25
+ - ✅ 正确:`aiide-web-prototype/src/pages/Home/index.jsx`
26
+ - ❌ 错误:`src/pages/Home/index.jsx`(在工作区根目录创建)
27
+
28
+ 3. **操作前验证**
29
+ - 创建/修改文件前,先用 `ls` 确认目标目录存在且路径正确
30
+ - 确保新文件的父目录路径与现有项目结构一致
31
+
32
+ #### 常见错误场景:
33
+ | 场景 | 错误做法 | 正确做法 |
34
+ |-----|---------|---------|
35
+ | 项目在子目录 `my-app/` | 在根目录创建 `src/pages/` | 在 `my-app/src/pages/` 创建 |
36
+ | 多项目工作区 | 混淆不同项目的 src 目录 | 明确指定完整路径前缀 |
37
+
38
+ > 📌 **总则**:先定位项目根目录,再操作文件。路径错误 = 任务失败。
39
+
40
+ ### 1. 配置审查(先检查再编码)
41
+
42
+ #### 必须读取并分析:
43
+
44
+ **1. tailwind.config.js**
45
+ - 检查并记录:colors / keyframes / animation
46
+ - 若缺少 primary / secondary / accent / foreground 系列 → **必须补充完整色系**
47
+ - 若已存在主题色 → **增量开发不可大幅修改,仅可按需扩展或使用 tailwind 的默认调色板**
48
+ - 配色要求:对比度清晰、避免紫色为主调、统一风格美术方向
49
+
50
+ **颜色体系规范:**
51
+ | 名称 | 用途 |
52
+ |---|---|
53
+ | primary | 主色(主要操作按钮背景) |
54
+ | secondary | 次色(次级按钮背景) |
55
+ | accent | 强调色(提示/高亮) |
56
+ | foreground | 主文本 |
57
+ | muted-foreground | 次文本 |
58
+ | border | 边框 |
59
+ | muted | 浅色背景 |
60
+
61
+ **2. src/index.css**
62
+ - 记录所有 `@layer components` 中的预定义 class
63
+
64
+ **3. package.json**
65
+ - 检查依赖是否已包含将要使用的组件库/动画库
66
+ - 阅读 `agentGuide` 词条了解各个库的使用情况,并结合 tailwind.config.js 使用
67
+
68
+ ---
69
+
70
+ ### ⛔ 代码编写禁止项
71
+ - ❌ 内联硬编码颜色(例:`style={{ color: "#9900ff" }}`)
72
+ - ❌ 不存在的色阶(例:`bg-neutral-450`)
73
+ - ❌ 未列入 tailwind.config.js 配置的 font / animation
74
+
75
+ ### ✅ 正确使用规范
76
+ - ✔ 使用 Tailwind 已定义颜色:`bg-neutral-500`
77
+ - ✔ 使用 index.css 组件类:`btn-primary-500`
78
+ - ✔ 允许使用 tailwind 的默认调色板,如 `pink-500`
79
+ - ✔ 使用已声明动画:`animate-fade-in`
80
+ - ✔ 允许在 tailwind.config.js 中新增自定义动画(如 `spin-soft`),并在代码中通过 `animate-spin-soft` 使用
81
+
82
+ > 📌 **总则**:先对齐色系配置再编码。未设定颜色 → 必须补设;已设定颜色 → 稳定优先,不随意变更
83
+
84
+ ---
85
+
86
+ ## 📋 开发铁律(违反即失败)
87
+
88
+ ### 1. 组件管理
89
+ - 删除所有无关的模板默认组件
90
+ - 保持组件架构完整性
91
+
92
+ ### 2. 样式使用严格规则
93
+ - **优先**使用 tailwind.config.js 中定义的颜色组(primary/secondary/accent)以呈现主题色调
94
+ - **允许**使用 `pink-500` 此等 tailwind 的默认颜色组作为关键配色
95
+ - **建议**优先使用 index.css 中的预定义类(btn-primary、btn-secondary 等)
96
+ - **禁止**任何硬编码颜色值
97
+ - **推荐**当设计需要视觉层级、氛围渲染或区块分隔时,优先考虑使用渐变背景:
98
+ - 方向控制:`bg-gradient-to-r` / `bg-gradient-to-b` / `bg-gradient-to-tr` 等
99
+ - 色组组合示例:`from-secondary-700 to-blue-500`,`from-secondary-500 via-pink-500 to-blue-300`
100
+ - 典型使用场景:Hero Banner、Section 背景、页脚或分隔区域等
101
+
102
+ ### 3. 配色决策流程
103
+ ```
104
+ 需要颜色 → 检查 config 是否有对应语义 → 有则使用 / 无则修改 config → 使用新配置
105
+ ```
106
+ > 绝不允许跳过 config 直接使用颜色
107
+
108
+ ### 4. 图片资源
109
+ - 使用 web_search 获取远程图片链接,图片内容必须与产品名称、功能特性精准匹配,避免泛化配图
110
+ - 优先选择知乎、主流媒体、官网、Unsplash、Pexels 等稳定来源的高清图片
111
+ - 在实装图片到代码中之前,根据当前运行环境验证链接可用性(如 curl / wget / fetch 等),若失败则更换关键词重试,最多 3 次
112
+ - 所有图片默认用于「界面展示」,单张图片建议小于 1MB,最大不超过 3MB
113
+
114
+ ### 5. 动画策略
115
+ - 简单动画:使用 tailwind 配置的 `animate-{fade-in|slide-up|scale-in}`
116
+ - 复杂交互:使用 Framer Motion
117
+ - 大型动效:按需引入 gsap/lottie-web/animate.css
118
+ - 图表组件:按情况使用 echarts 与 recharts
119
+
120
+ ### 6. 路由配置
121
+ - **同一项目内**若需要建立多个页面进行跳转/导航,必须使用已配置的 react-router
122
+ - 多页面导航必须使用哈希路由(HashRouter),否则无法部署
123
+ - 若非同一项目(如:购物平台官网和物品详情页为同一项目,而技术中台页面和电商购物则不是同一项目),请在根目录下新建文件夹,按照 workflow 流程规划
124
+
125
+ ### 7. 依赖管理
126
+ - 优先使用已安装依赖
127
+ - 按需添加可选依赖(gsap、lottie-web、animate.css)
128
+
129
+ ### 8. 文档参考
130
+ - 开发前必读 README.md
131
+
132
+ ---
133
+
134
+ ## ✅ 代码生成后自检清单
135
+
136
+ 生成代码后,必须在内部执行以下检查:
137
+ - [ ] 所有颜色是否来自 tailwind 默认调色板或 tailwind.config.js?
138
+ - [ ] 是否使用了 index.css 中的预定义类?
139
+ - [ ] 是否删除了无关的模板组件?
140
+ - [ ] 是否有任何硬编码样式?
141
+
142
+ ---
143
+
144
+ ## 核心原则
145
+
146
+ 1. **动效优先**:生成任何前端界面时,必须主动评估页面结构、内容类型与视觉需求,并在可行的场景下借鉴已有的实现方式,灵活组合使用多种动效库,让界面更具吸引力、更有生命力,能用动效库就用动效库。
147
+
148
+ 2. **样式规范**:凡包含颜色、字体、阴影、spacing、动画 keyframes 的设计需求,均需优先通过 Tailwind 配置(`tailwind.config.js`)扩展实现,而非临时样式或硬编码。
149
+
150
+ 3. **对比度原则**:文字/组件/icon 颜色与背景必须保持强对比度,避免白底白字、白底白图、黑底黑字、黑底黑图等可读性问题。
151
+
152
+ ## 动效设计规范
153
+
154
+ 1. **动效必须服务体验,而不是喧宾夺主**
155
+ 2. **不同动效库可组合使用,每个模块选择最适合的库**
156
+ 3. **页面动效需遵循视觉风格**:极简风格用轻动效,营销页可更强烈
157
+ 4. **关键区域应优先设计动效**:Hero 区域、卡片 hover、CTA 按钮、滚动交互等
158
+
159
+ ---
160
+
161
+ ## 目录结构
162
+
163
+ ```
164
+ src/
165
+ ├── components/ # 公共组件(多个页面复用的组件)
166
+ ├── pages/ # 页面组件
167
+ │ └── PageName/
168
+ │ ├── index.jsx # 页面入口
169
+ │ └── components/ # 页面私有组件(仅该页面使用)
170
+ ├── utils/ # 工具函数
171
+ ├── App.jsx # 主应用(路由配置)
172
+ ├── main.jsx # 入口文件
173
+ └── index.css # 全局样式
174
+ ```
175
+
176
+ ## 组件化开发规范
177
+
178
+ > ⛔ **严禁将所有代码写在单个 index.jsx 文件中**,必须进行合理的组件拆分
179
+
180
+ 1. **组件拆分原则**
181
+ - 页面必须拆分为多个独立组件,每个组件职责单一
182
+ - 单个组件代码建议不超过 200 行,超过时应考虑拆分
183
+ - 典型拆分示例:Header、Hero、Features、Footer 等应为独立组件
184
+
185
+ 2. **组件存放位置**
186
+ - 仅当前页面使用的组件 → `src/pages/PageName/components/`
187
+ - 多个页面复用的组件 → `src/components/`
188
+
189
+ 3. **组件文件命名**
190
+ - 使用 PascalCase:`UserCard.jsx`、`DataChart.jsx`
191
+ - 复杂组件可用文件夹:`components/UserCard/index.jsx`
192
+
193
+ 4. **新建页面流程**
194
+ - 在 `src/pages/` 下创建页面目录及 `components/` 子目录
195
+ - 页面入口 `index.jsx` 仅负责组合各子组件
196
+ - 在 `App.jsx` 中添加对应路由
197
+
198
+ ---
199
+
200
+ ## 库使用指南
201
+
202
+ ### 图标
203
+ | 库 | 说明 |
204
+ |---|------|
205
+ | `lucide-react` | 图标库,提供 1000+ 简洁线性图标,用法:`import { IconName } from 'lucide-react'` |
206
+
207
+ ### 工具类
208
+ | 库 | 说明 |
209
+ |---|------|
210
+ | `clsx` | 条件拼接 className 的工具,用法:`clsx('base', { 'active': isActive })` |
211
+ | `tailwind-merge` | 合并 Tailwind 类名并自动处理冲突,配合 clsx 使用 |
212
+
213
+ ### 动画库(按场景选择)
214
+
215
+ | 库 | 适用场景 |
216
+ |---|---------|
217
+ | `framer-motion` | React 动画库,适用于:组件进入/退出动画、手势交互、布局动画、复杂编排动画 |
218
+ | `animate.css` | CSS 动画库,适用于:简单的预设动画效果,通过添加类名使用,如 `animate__fadeIn` |
219
+ | `gsap` | 专业级动画库,适用于:复杂时间轴动画、ScrollTrigger 滚动动画、高性能动画需求 |
220
+ | `lottie-web` | Lottie 动画播放器,适用于:播放 AE 导出的 JSON 动画文件,常用于加载动画、图标动画 |
221
+
222
+ ### 图表库(按场景选择)
223
+
224
+ | 库 | 适用场景 |
225
+ |---|---------|
226
+ | `echarts` + `echarts-for-react` | 百度图表库,适用于:数据可视化大屏、深色科技风主题、复杂图表(仪表盘、水球图、地图、桑基图等)、丰富动效 |
227
+ | `recharts` | React 图表库,适用于:一两个需要使用简单图表需求的地方、React 声明式风格、轻量级场景、基础柱状图/折线图/饼图 |
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "name": "pagebuilder-react-template",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "pagebuilder-react-template",
9
- "version": "1.0.17",
9
+ "version": "1.0.18",
10
10
  "dependencies": {
11
11
  "@babel/core": "^7.27.1",
12
12
  "@babel/eslint-parser": "^7.27.1",
13
13
  "@babel/preset-react": "^7.27.1",
14
14
  "@ecomfe/eslint-config": "^8.0.0",
15
+ "@ecomfe/stylelint-config": "^1.1.2",
15
16
  "clsx": "^2.1.0",
16
17
  "eslint": "^8.57.1",
17
18
  "eslint-plugin-babel": "^5.3.1",
@@ -35,8 +36,11 @@
35
36
  },
36
37
  "optionalDependencies": {
37
38
  "animate.css": "^4.1.1",
39
+ "echarts": "^5.5.0",
40
+ "echarts-for-react": "^3.0.2",
38
41
  "gsap": "^3.12.5",
39
- "lottie-web": "^5.12.2"
42
+ "lottie-web": "^5.12.2",
43
+ "recharts": "^2.12.0"
40
44
  }
41
45
  },
42
46
  "node_modules/@alloc/quick-lru": {
@@ -80,6 +84,7 @@
80
84
  "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
81
85
  "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
82
86
  "license": "MIT",
87
+ "peer": true,
83
88
  "dependencies": {
84
89
  "@babel/code-frame": "^7.27.1",
85
90
  "@babel/generator": "^7.28.5",
@@ -110,6 +115,7 @@
110
115
  "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz",
111
116
  "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==",
112
117
  "license": "MIT",
118
+ "peer": true,
113
119
  "dependencies": {
114
120
  "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
115
121
  "eslint-visitor-keys": "^2.1.0",
@@ -419,6 +425,16 @@
419
425
  "@babel/core": "^7.0.0-0"
420
426
  }
421
427
  },
428
+ "node_modules/@babel/runtime": {
429
+ "version": "7.28.4",
430
+ "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz",
431
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
432
+ "license": "MIT",
433
+ "optional": true,
434
+ "engines": {
435
+ "node": ">=6.9.0"
436
+ }
437
+ },
422
438
  "node_modules/@babel/template": {
423
439
  "version": "7.27.2",
424
440
  "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
@@ -497,6 +513,7 @@
497
513
  "resolved": "https://registry.npmmirror.com/keyv/-/keyv-5.5.5.tgz",
498
514
  "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==",
499
515
  "license": "MIT",
516
+ "peer": true,
500
517
  "dependencies": {
501
518
  "@keyv/serialize": "^1.1.1"
502
519
  }
@@ -535,6 +552,7 @@
535
552
  }
536
553
  ],
537
554
  "license": "MIT",
555
+ "peer": true,
538
556
  "engines": {
539
557
  "node": ">=18"
540
558
  },
@@ -576,6 +594,7 @@
576
594
  }
577
595
  ],
578
596
  "license": "MIT",
597
+ "peer": true,
579
598
  "engines": {
580
599
  "node": ">=18"
581
600
  }
@@ -1631,6 +1650,78 @@
1631
1650
  "@babel/types": "^7.28.2"
1632
1651
  }
1633
1652
  },
1653
+ "node_modules/@types/d3-array": {
1654
+ "version": "3.2.2",
1655
+ "resolved": "https://registry.npmmirror.com/@types/d3-array/-/d3-array-3.2.2.tgz",
1656
+ "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==",
1657
+ "license": "MIT",
1658
+ "optional": true
1659
+ },
1660
+ "node_modules/@types/d3-color": {
1661
+ "version": "3.1.3",
1662
+ "resolved": "https://registry.npmmirror.com/@types/d3-color/-/d3-color-3.1.3.tgz",
1663
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
1664
+ "license": "MIT",
1665
+ "optional": true
1666
+ },
1667
+ "node_modules/@types/d3-ease": {
1668
+ "version": "3.0.2",
1669
+ "resolved": "https://registry.npmmirror.com/@types/d3-ease/-/d3-ease-3.0.2.tgz",
1670
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
1671
+ "license": "MIT",
1672
+ "optional": true
1673
+ },
1674
+ "node_modules/@types/d3-interpolate": {
1675
+ "version": "3.0.4",
1676
+ "resolved": "https://registry.npmmirror.com/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
1677
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
1678
+ "license": "MIT",
1679
+ "optional": true,
1680
+ "dependencies": {
1681
+ "@types/d3-color": "*"
1682
+ }
1683
+ },
1684
+ "node_modules/@types/d3-path": {
1685
+ "version": "3.1.1",
1686
+ "resolved": "https://registry.npmmirror.com/@types/d3-path/-/d3-path-3.1.1.tgz",
1687
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
1688
+ "license": "MIT",
1689
+ "optional": true
1690
+ },
1691
+ "node_modules/@types/d3-scale": {
1692
+ "version": "4.0.9",
1693
+ "resolved": "https://registry.npmmirror.com/@types/d3-scale/-/d3-scale-4.0.9.tgz",
1694
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
1695
+ "license": "MIT",
1696
+ "optional": true,
1697
+ "dependencies": {
1698
+ "@types/d3-time": "*"
1699
+ }
1700
+ },
1701
+ "node_modules/@types/d3-shape": {
1702
+ "version": "3.1.7",
1703
+ "resolved": "https://registry.npmmirror.com/@types/d3-shape/-/d3-shape-3.1.7.tgz",
1704
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
1705
+ "license": "MIT",
1706
+ "optional": true,
1707
+ "dependencies": {
1708
+ "@types/d3-path": "*"
1709
+ }
1710
+ },
1711
+ "node_modules/@types/d3-time": {
1712
+ "version": "3.0.4",
1713
+ "resolved": "https://registry.npmmirror.com/@types/d3-time/-/d3-time-3.0.4.tgz",
1714
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
1715
+ "license": "MIT",
1716
+ "optional": true
1717
+ },
1718
+ "node_modules/@types/d3-timer": {
1719
+ "version": "3.0.2",
1720
+ "resolved": "https://registry.npmmirror.com/@types/d3-timer/-/d3-timer-3.0.2.tgz",
1721
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
1722
+ "license": "MIT",
1723
+ "optional": true
1724
+ },
1634
1725
  "node_modules/@types/estree": {
1635
1726
  "version": "1.0.8",
1636
1727
  "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
@@ -1670,6 +1761,7 @@
1670
1761
  "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz",
1671
1762
  "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
1672
1763
  "license": "MIT",
1764
+ "peer": true,
1673
1765
  "bin": {
1674
1766
  "acorn": "bin/acorn"
1675
1767
  },
@@ -2047,6 +2139,7 @@
2047
2139
  }
2048
2140
  ],
2049
2141
  "license": "MIT",
2142
+ "peer": true,
2050
2143
  "dependencies": {
2051
2144
  "baseline-browser-mapping": "^2.8.25",
2052
2145
  "caniuse-lite": "^1.0.30001754",
@@ -2365,6 +2458,145 @@
2365
2458
  "node": ">=4"
2366
2459
  }
2367
2460
  },
2461
+ "node_modules/csstype": {
2462
+ "version": "3.2.3",
2463
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz",
2464
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
2465
+ "license": "MIT",
2466
+ "optional": true
2467
+ },
2468
+ "node_modules/d3-array": {
2469
+ "version": "3.2.4",
2470
+ "resolved": "https://registry.npmmirror.com/d3-array/-/d3-array-3.2.4.tgz",
2471
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
2472
+ "license": "ISC",
2473
+ "optional": true,
2474
+ "dependencies": {
2475
+ "internmap": "1 - 2"
2476
+ },
2477
+ "engines": {
2478
+ "node": ">=12"
2479
+ }
2480
+ },
2481
+ "node_modules/d3-color": {
2482
+ "version": "3.1.0",
2483
+ "resolved": "https://registry.npmmirror.com/d3-color/-/d3-color-3.1.0.tgz",
2484
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
2485
+ "license": "ISC",
2486
+ "optional": true,
2487
+ "engines": {
2488
+ "node": ">=12"
2489
+ }
2490
+ },
2491
+ "node_modules/d3-ease": {
2492
+ "version": "3.0.1",
2493
+ "resolved": "https://registry.npmmirror.com/d3-ease/-/d3-ease-3.0.1.tgz",
2494
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
2495
+ "license": "BSD-3-Clause",
2496
+ "optional": true,
2497
+ "engines": {
2498
+ "node": ">=12"
2499
+ }
2500
+ },
2501
+ "node_modules/d3-format": {
2502
+ "version": "3.1.0",
2503
+ "resolved": "https://registry.npmmirror.com/d3-format/-/d3-format-3.1.0.tgz",
2504
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
2505
+ "license": "ISC",
2506
+ "optional": true,
2507
+ "engines": {
2508
+ "node": ">=12"
2509
+ }
2510
+ },
2511
+ "node_modules/d3-interpolate": {
2512
+ "version": "3.0.1",
2513
+ "resolved": "https://registry.npmmirror.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
2514
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
2515
+ "license": "ISC",
2516
+ "optional": true,
2517
+ "dependencies": {
2518
+ "d3-color": "1 - 3"
2519
+ },
2520
+ "engines": {
2521
+ "node": ">=12"
2522
+ }
2523
+ },
2524
+ "node_modules/d3-path": {
2525
+ "version": "3.1.0",
2526
+ "resolved": "https://registry.npmmirror.com/d3-path/-/d3-path-3.1.0.tgz",
2527
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
2528
+ "license": "ISC",
2529
+ "optional": true,
2530
+ "engines": {
2531
+ "node": ">=12"
2532
+ }
2533
+ },
2534
+ "node_modules/d3-scale": {
2535
+ "version": "4.0.2",
2536
+ "resolved": "https://registry.npmmirror.com/d3-scale/-/d3-scale-4.0.2.tgz",
2537
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
2538
+ "license": "ISC",
2539
+ "optional": true,
2540
+ "dependencies": {
2541
+ "d3-array": "2.10.0 - 3",
2542
+ "d3-format": "1 - 3",
2543
+ "d3-interpolate": "1.2.0 - 3",
2544
+ "d3-time": "2.1.1 - 3",
2545
+ "d3-time-format": "2 - 4"
2546
+ },
2547
+ "engines": {
2548
+ "node": ">=12"
2549
+ }
2550
+ },
2551
+ "node_modules/d3-shape": {
2552
+ "version": "3.2.0",
2553
+ "resolved": "https://registry.npmmirror.com/d3-shape/-/d3-shape-3.2.0.tgz",
2554
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
2555
+ "license": "ISC",
2556
+ "optional": true,
2557
+ "dependencies": {
2558
+ "d3-path": "^3.1.0"
2559
+ },
2560
+ "engines": {
2561
+ "node": ">=12"
2562
+ }
2563
+ },
2564
+ "node_modules/d3-time": {
2565
+ "version": "3.1.0",
2566
+ "resolved": "https://registry.npmmirror.com/d3-time/-/d3-time-3.1.0.tgz",
2567
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
2568
+ "license": "ISC",
2569
+ "optional": true,
2570
+ "dependencies": {
2571
+ "d3-array": "2 - 3"
2572
+ },
2573
+ "engines": {
2574
+ "node": ">=12"
2575
+ }
2576
+ },
2577
+ "node_modules/d3-time-format": {
2578
+ "version": "4.1.0",
2579
+ "resolved": "https://registry.npmmirror.com/d3-time-format/-/d3-time-format-4.1.0.tgz",
2580
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
2581
+ "license": "ISC",
2582
+ "optional": true,
2583
+ "dependencies": {
2584
+ "d3-time": "1 - 3"
2585
+ },
2586
+ "engines": {
2587
+ "node": ">=12"
2588
+ }
2589
+ },
2590
+ "node_modules/d3-timer": {
2591
+ "version": "3.0.1",
2592
+ "resolved": "https://registry.npmmirror.com/d3-timer/-/d3-timer-3.0.1.tgz",
2593
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
2594
+ "license": "ISC",
2595
+ "optional": true,
2596
+ "engines": {
2597
+ "node": ">=12"
2598
+ }
2599
+ },
2368
2600
  "node_modules/data-view-buffer": {
2369
2601
  "version": "1.0.2",
2370
2602
  "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
@@ -2433,6 +2665,13 @@
2433
2665
  }
2434
2666
  }
2435
2667
  },
2668
+ "node_modules/decimal.js-light": {
2669
+ "version": "2.5.1",
2670
+ "resolved": "https://registry.npmmirror.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz",
2671
+ "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==",
2672
+ "license": "MIT",
2673
+ "optional": true
2674
+ },
2436
2675
  "node_modules/deep-is": {
2437
2676
  "version": "0.1.4",
2438
2677
  "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
@@ -2511,6 +2750,17 @@
2511
2750
  "node": ">=6.0.0"
2512
2751
  }
2513
2752
  },
2753
+ "node_modules/dom-helpers": {
2754
+ "version": "5.2.1",
2755
+ "resolved": "https://registry.npmmirror.com/dom-helpers/-/dom-helpers-5.2.1.tgz",
2756
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
2757
+ "license": "MIT",
2758
+ "optional": true,
2759
+ "dependencies": {
2760
+ "@babel/runtime": "^7.8.7",
2761
+ "csstype": "^3.0.2"
2762
+ }
2763
+ },
2514
2764
  "node_modules/dunder-proto": {
2515
2765
  "version": "1.0.1",
2516
2766
  "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -2525,6 +2775,39 @@
2525
2775
  "node": ">= 0.4"
2526
2776
  }
2527
2777
  },
2778
+ "node_modules/echarts": {
2779
+ "version": "5.6.0",
2780
+ "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz",
2781
+ "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==",
2782
+ "license": "Apache-2.0",
2783
+ "optional": true,
2784
+ "dependencies": {
2785
+ "tslib": "2.3.0",
2786
+ "zrender": "5.6.1"
2787
+ }
2788
+ },
2789
+ "node_modules/echarts-for-react": {
2790
+ "version": "3.0.5",
2791
+ "resolved": "https://registry.npmmirror.com/echarts-for-react/-/echarts-for-react-3.0.5.tgz",
2792
+ "integrity": "sha512-YpEI5Ty7O/2nvCfQ7ybNa+S90DwE8KYZWacGvJW4luUqywP7qStQ+pxDlYOmr4jGDu10mhEkiAuMKcUlT4W5vg==",
2793
+ "license": "MIT",
2794
+ "optional": true,
2795
+ "dependencies": {
2796
+ "fast-deep-equal": "^3.1.3",
2797
+ "size-sensor": "^1.0.1"
2798
+ },
2799
+ "peerDependencies": {
2800
+ "echarts": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
2801
+ "react": "^15.0.0 || >=16.0.0"
2802
+ }
2803
+ },
2804
+ "node_modules/echarts/node_modules/tslib": {
2805
+ "version": "2.3.0",
2806
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
2807
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
2808
+ "license": "0BSD",
2809
+ "optional": true
2810
+ },
2528
2811
  "node_modules/electron-to-chromium": {
2529
2812
  "version": "1.5.260",
2530
2813
  "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.260.tgz",
@@ -2790,6 +3073,7 @@
2790
3073
  "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
2791
3074
  "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
2792
3075
  "license": "MIT",
3076
+ "peer": true,
2793
3077
  "dependencies": {
2794
3078
  "@eslint-community/eslint-utils": "^4.2.0",
2795
3079
  "@eslint-community/regexpp": "^4.6.1",
@@ -2860,6 +3144,7 @@
2860
3144
  "resolved": "https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz",
2861
3145
  "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==",
2862
3146
  "license": "MIT",
3147
+ "peer": true,
2863
3148
  "dependencies": {
2864
3149
  "array-includes": "^3.1.8",
2865
3150
  "array.prototype.findlast": "^1.2.5",
@@ -2892,6 +3177,7 @@
2892
3177
  "resolved": "https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz",
2893
3178
  "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==",
2894
3179
  "license": "MIT",
3180
+ "peer": true,
2895
3181
  "engines": {
2896
3182
  "node": ">=10"
2897
3183
  },
@@ -3067,12 +3353,29 @@
3067
3353
  "node": ">=0.10.0"
3068
3354
  }
3069
3355
  },
3356
+ "node_modules/eventemitter3": {
3357
+ "version": "4.0.7",
3358
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
3359
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
3360
+ "license": "MIT",
3361
+ "optional": true
3362
+ },
3070
3363
  "node_modules/fast-deep-equal": {
3071
3364
  "version": "3.1.3",
3072
3365
  "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3073
3366
  "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
3074
3367
  "license": "MIT"
3075
3368
  },
3369
+ "node_modules/fast-equals": {
3370
+ "version": "5.4.0",
3371
+ "resolved": "https://registry.npmmirror.com/fast-equals/-/fast-equals-5.4.0.tgz",
3372
+ "integrity": "sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==",
3373
+ "license": "MIT",
3374
+ "optional": true,
3375
+ "engines": {
3376
+ "node": ">=6.0.0"
3377
+ }
3378
+ },
3076
3379
  "node_modules/fast-glob": {
3077
3380
  "version": "3.3.3",
3078
3381
  "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
@@ -3735,6 +4038,16 @@
3735
4038
  "node": ">= 0.4"
3736
4039
  }
3737
4040
  },
4041
+ "node_modules/internmap": {
4042
+ "version": "2.0.3",
4043
+ "resolved": "https://registry.npmmirror.com/internmap/-/internmap-2.0.3.tgz",
4044
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
4045
+ "license": "ISC",
4046
+ "optional": true,
4047
+ "engines": {
4048
+ "node": ">=12"
4049
+ }
4050
+ },
3738
4051
  "node_modules/is-array-buffer": {
3739
4052
  "version": "3.0.5",
3740
4053
  "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
@@ -4183,6 +4496,7 @@
4183
4496
  "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
4184
4497
  "dev": true,
4185
4498
  "license": "MIT",
4499
+ "peer": true,
4186
4500
  "bin": {
4187
4501
  "jiti": "bin/jiti.js"
4188
4502
  }
@@ -4339,6 +4653,13 @@
4339
4653
  "url": "https://github.com/sponsors/sindresorhus"
4340
4654
  }
4341
4655
  },
4656
+ "node_modules/lodash": {
4657
+ "version": "4.17.21",
4658
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
4659
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
4660
+ "license": "MIT",
4661
+ "optional": true
4662
+ },
4342
4663
  "node_modules/lodash.merge": {
4343
4664
  "version": "4.6.2",
4344
4665
  "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -4863,6 +5184,7 @@
4863
5184
  }
4864
5185
  ],
4865
5186
  "license": "MIT",
5187
+ "peer": true,
4866
5188
  "dependencies": {
4867
5189
  "nanoid": "^3.3.11",
4868
5190
  "picocolors": "^1.1.1",
@@ -5103,6 +5425,7 @@
5103
5425
  "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
5104
5426
  "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
5105
5427
  "license": "MIT",
5428
+ "peer": true,
5106
5429
  "engines": {
5107
5430
  "node": ">=0.10.0"
5108
5431
  }
@@ -5112,6 +5435,7 @@
5112
5435
  "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
5113
5436
  "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
5114
5437
  "license": "MIT",
5438
+ "peer": true,
5115
5439
  "dependencies": {
5116
5440
  "scheduler": "^0.27.0"
5117
5441
  },
@@ -5173,6 +5497,39 @@
5173
5497
  "react-dom": ">=18"
5174
5498
  }
5175
5499
  },
5500
+ "node_modules/react-smooth": {
5501
+ "version": "4.0.4",
5502
+ "resolved": "https://registry.npmmirror.com/react-smooth/-/react-smooth-4.0.4.tgz",
5503
+ "integrity": "sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==",
5504
+ "license": "MIT",
5505
+ "optional": true,
5506
+ "dependencies": {
5507
+ "fast-equals": "^5.0.1",
5508
+ "prop-types": "^15.8.1",
5509
+ "react-transition-group": "^4.4.5"
5510
+ },
5511
+ "peerDependencies": {
5512
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
5513
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
5514
+ }
5515
+ },
5516
+ "node_modules/react-transition-group": {
5517
+ "version": "4.4.5",
5518
+ "resolved": "https://registry.npmmirror.com/react-transition-group/-/react-transition-group-4.4.5.tgz",
5519
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
5520
+ "license": "BSD-3-Clause",
5521
+ "optional": true,
5522
+ "dependencies": {
5523
+ "@babel/runtime": "^7.5.5",
5524
+ "dom-helpers": "^5.0.1",
5525
+ "loose-envify": "^1.4.0",
5526
+ "prop-types": "^15.6.2"
5527
+ },
5528
+ "peerDependencies": {
5529
+ "react": ">=16.6.0",
5530
+ "react-dom": ">=16.6.0"
5531
+ }
5532
+ },
5176
5533
  "node_modules/read-cache": {
5177
5534
  "version": "1.0.0",
5178
5535
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -5196,6 +5553,47 @@
5196
5553
  "node": ">=8.10.0"
5197
5554
  }
5198
5555
  },
5556
+ "node_modules/recharts": {
5557
+ "version": "2.15.4",
5558
+ "resolved": "https://registry.npmmirror.com/recharts/-/recharts-2.15.4.tgz",
5559
+ "integrity": "sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==",
5560
+ "license": "MIT",
5561
+ "optional": true,
5562
+ "dependencies": {
5563
+ "clsx": "^2.0.0",
5564
+ "eventemitter3": "^4.0.1",
5565
+ "lodash": "^4.17.21",
5566
+ "react-is": "^18.3.1",
5567
+ "react-smooth": "^4.0.4",
5568
+ "recharts-scale": "^0.4.4",
5569
+ "tiny-invariant": "^1.3.1",
5570
+ "victory-vendor": "^36.6.8"
5571
+ },
5572
+ "engines": {
5573
+ "node": ">=14"
5574
+ },
5575
+ "peerDependencies": {
5576
+ "react": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
5577
+ "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
5578
+ }
5579
+ },
5580
+ "node_modules/recharts-scale": {
5581
+ "version": "0.4.5",
5582
+ "resolved": "https://registry.npmmirror.com/recharts-scale/-/recharts-scale-0.4.5.tgz",
5583
+ "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==",
5584
+ "license": "MIT",
5585
+ "optional": true,
5586
+ "dependencies": {
5587
+ "decimal.js-light": "^2.4.1"
5588
+ }
5589
+ },
5590
+ "node_modules/recharts/node_modules/react-is": {
5591
+ "version": "18.3.1",
5592
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.3.1.tgz",
5593
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
5594
+ "license": "MIT",
5595
+ "optional": true
5596
+ },
5199
5597
  "node_modules/reflect.getprototypeof": {
5200
5598
  "version": "1.0.10",
5201
5599
  "resolved": "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
@@ -5309,6 +5707,7 @@
5309
5707
  "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==",
5310
5708
  "dev": true,
5311
5709
  "license": "MIT",
5710
+ "peer": true,
5312
5711
  "dependencies": {
5313
5712
  "@types/estree": "1.0.8"
5314
5713
  },
@@ -5592,6 +5991,13 @@
5592
5991
  "url": "https://github.com/sponsors/isaacs"
5593
5992
  }
5594
5993
  },
5994
+ "node_modules/size-sensor": {
5995
+ "version": "1.0.2",
5996
+ "resolved": "https://registry.npmmirror.com/size-sensor/-/size-sensor-1.0.2.tgz",
5997
+ "integrity": "sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==",
5998
+ "license": "ISC",
5999
+ "optional": true
6000
+ },
5595
6001
  "node_modules/slash": {
5596
6002
  "version": "3.0.0",
5597
6003
  "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
@@ -5896,6 +6302,7 @@
5896
6302
  "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz",
5897
6303
  "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==",
5898
6304
  "license": "MIT",
6305
+ "peer": true,
5899
6306
  "dependencies": {
5900
6307
  "cssesc": "^3.0.0",
5901
6308
  "util-deprecate": "^1.0.2"
@@ -6096,6 +6503,13 @@
6096
6503
  "node": ">=0.8"
6097
6504
  }
6098
6505
  },
6506
+ "node_modules/tiny-invariant": {
6507
+ "version": "1.3.3",
6508
+ "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
6509
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
6510
+ "license": "MIT",
6511
+ "optional": true
6512
+ },
6099
6513
  "node_modules/tinyglobby": {
6100
6514
  "version": "0.2.15",
6101
6515
  "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz",
@@ -6137,6 +6551,7 @@
6137
6551
  "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
6138
6552
  "dev": true,
6139
6553
  "license": "MIT",
6554
+ "peer": true,
6140
6555
  "engines": {
6141
6556
  "node": ">=12"
6142
6557
  },
@@ -6330,12 +6745,36 @@
6330
6745
  "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
6331
6746
  "license": "MIT"
6332
6747
  },
6748
+ "node_modules/victory-vendor": {
6749
+ "version": "36.9.2",
6750
+ "resolved": "https://registry.npmmirror.com/victory-vendor/-/victory-vendor-36.9.2.tgz",
6751
+ "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
6752
+ "license": "MIT AND ISC",
6753
+ "optional": true,
6754
+ "dependencies": {
6755
+ "@types/d3-array": "^3.0.3",
6756
+ "@types/d3-ease": "^3.0.0",
6757
+ "@types/d3-interpolate": "^3.0.1",
6758
+ "@types/d3-scale": "^4.0.2",
6759
+ "@types/d3-shape": "^3.1.0",
6760
+ "@types/d3-time": "^3.0.0",
6761
+ "@types/d3-timer": "^3.0.0",
6762
+ "d3-array": "^3.1.6",
6763
+ "d3-ease": "^3.0.1",
6764
+ "d3-interpolate": "^3.0.1",
6765
+ "d3-scale": "^4.0.2",
6766
+ "d3-shape": "^3.1.0",
6767
+ "d3-time": "^3.0.0",
6768
+ "d3-timer": "^3.0.1"
6769
+ }
6770
+ },
6333
6771
  "node_modules/vite": {
6334
6772
  "version": "5.4.21",
6335
6773
  "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz",
6336
6774
  "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==",
6337
6775
  "dev": true,
6338
6776
  "license": "MIT",
6777
+ "peer": true,
6339
6778
  "dependencies": {
6340
6779
  "esbuild": "^0.21.3",
6341
6780
  "postcss": "^8.4.43",
@@ -6552,6 +6991,23 @@
6552
6991
  "funding": {
6553
6992
  "url": "https://github.com/sponsors/sindresorhus"
6554
6993
  }
6994
+ },
6995
+ "node_modules/zrender": {
6996
+ "version": "5.6.1",
6997
+ "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz",
6998
+ "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==",
6999
+ "license": "BSD-3-Clause",
7000
+ "optional": true,
7001
+ "dependencies": {
7002
+ "tslib": "2.3.0"
7003
+ }
7004
+ },
7005
+ "node_modules/zrender/node_modules/tslib": {
7006
+ "version": "2.3.0",
7007
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
7008
+ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
7009
+ "license": "0BSD",
7010
+ "optional": true
6555
7011
  }
6556
7012
  }
6557
7013
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pagebuilder-react-template",
3
- "version": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "scripts": {
5
5
  "dev": "vite",
6
6
  "build": "vite build",
@@ -35,13 +35,16 @@
35
35
  "@vitejs/plugin-react": "^4.2.1",
36
36
  "autoprefixer": "^10.4.17",
37
37
  "postcss": "^8.4.35",
38
- "tailwindcss": "^3.4.1",
38
+ "tailwindcss": "~3.4.1",
39
39
  "vite": "^5.1.4",
40
40
  "vite-plugin-singlefile": "^2.3.0"
41
41
  },
42
42
  "optionalDependencies": {
43
43
  "animate.css": "^4.1.1",
44
+ "echarts": "^5.5.0",
45
+ "echarts-for-react": "^3.0.2",
44
46
  "gsap": "^3.12.5",
45
- "lottie-web": "^5.12.2"
47
+ "lottie-web": "^5.12.2",
48
+ "recharts": "^2.12.0"
46
49
  }
47
50
  }
@@ -1,4 +1,4 @@
1
- export default {
1
+ module.exports = {
2
2
  plugins: {
3
3
  tailwindcss: {},
4
4
  autoprefixer: {},