@kupola/kupola 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +330 -286
  3. package/adapters/axios.d.ts +34 -0
  4. package/adapters/axios.js +122 -0
  5. package/adapters/navios-http.d.ts +110 -0
  6. package/adapters/navios-http.js +151 -0
  7. package/dist/css/accessibility.css +119 -0
  8. package/dist/css/animations.css +224 -0
  9. package/dist/css/brand-themes.css +300 -0
  10. package/dist/css/colors_and_type.css +441 -0
  11. package/dist/css/components-ext.css +4165 -0
  12. package/dist/css/components.css +1483 -0
  13. package/dist/css/responsive.css +697 -0
  14. package/dist/css/scaffold.css +145 -0
  15. package/dist/css/states.css +316 -0
  16. package/dist/css/theme-dark.css +296 -0
  17. package/dist/css/theme-light.css +296 -0
  18. package/dist/css/utilities.css +171 -0
  19. package/dist/kupola.cjs.js +219 -161
  20. package/dist/kupola.cjs.js.map +1 -1
  21. package/dist/kupola.esm.js +6643 -5709
  22. package/dist/kupola.esm.js.map +1 -1
  23. package/dist/kupola.umd.js +219 -161
  24. package/dist/kupola.umd.js.map +1 -1
  25. package/dist/plugins/vite-plugin-kupola.js +120 -0
  26. package/dist/types/kupola.d.ts +421 -323
  27. package/js/calendar.js +334 -25
  28. package/js/carousel.js +182 -48
  29. package/js/collapse.js +148 -34
  30. package/js/color-picker.js +416 -108
  31. package/js/component.js +8 -19
  32. package/js/countdown.js +9 -8
  33. package/js/data-bind.js +73 -16
  34. package/js/datepicker.js +488 -110
  35. package/js/depends.js +710 -0
  36. package/js/dialog.js +4 -2
  37. package/js/drawer.js +172 -8
  38. package/js/dropdown.js +272 -17
  39. package/js/dynamic-tags.js +156 -40
  40. package/js/fileupload.js +9 -8
  41. package/js/form.js +280 -254
  42. package/js/global-events.js +281 -188
  43. package/js/heatmap.js +10 -7
  44. package/js/i18n.js +18 -10
  45. package/js/icons.js +141 -161
  46. package/js/image-preview.js +146 -2
  47. package/js/initializer.js +113 -71
  48. package/js/kupola-core.js +123 -45
  49. package/js/kupola-lifecycle.js +13 -11
  50. package/js/message.js +8 -1
  51. package/js/modal.js +207 -59
  52. package/js/notification.js +8 -1
  53. package/js/numberinput.js +9 -8
  54. package/js/pagination.js +263 -0
  55. package/js/registry.js +29 -12
  56. package/js/select.js +482 -27
  57. package/js/slide-captcha.js +11 -2
  58. package/js/slider.js +442 -25
  59. package/js/statcard.js +9 -7
  60. package/js/table.js +1210 -0
  61. package/js/tag.js +268 -14
  62. package/js/theme.js +14 -43
  63. package/js/timepicker.js +335 -66
  64. package/js/tooltip.js +317 -86
  65. package/js/utils.js +6 -2
  66. package/js/validation.js +6 -2
  67. package/js/virtual-list.js +11 -7
  68. package/js/web-components.js +288 -0
  69. package/package.json +77 -67
  70. package/plugins/vite-plugin-kupola.js +120 -0
  71. package/types/kupola.d.ts +421 -323
  72. package/CHANGELOG.md +0 -130
  73. package/INTEGRATION.md +0 -440
  74. package/PROJECT_SUMMARY.md +0 -312
  75. package/SKILL.md +0 -572
  76. package/dist/utils/utils/Kupola.cs +0 -77
  77. package/dist/utils/utils/Kupola.java +0 -104
  78. package/dist/utils/utils/kupola.go +0 -120
  79. package/dist/utils/utils/kupola.js +0 -63
  80. package/dist/utils/utils/kupola.py +0 -1392
  81. package/dist/utils/utils/kupola.rb +0 -69
  82. package/js/composition-api.js +0 -458
  83. package/js/error-handler.js +0 -181
  84. package/js/http.js +0 -419
  85. package/js/kupola-devtools.js +0 -598
  86. package/js/performance.js +0 -250
  87. package/js/router.js +0 -396
  88. package/js/security.js +0 -189
  89. package/js/test-utils.js +0 -251
  90. package/templates/base.html +0 -30
  91. package/templates/base_dashboard.html +0 -99
  92. package/utils/Kupola.cs +0 -77
  93. package/utils/Kupola.java +0 -104
  94. package/utils/kupola.go +0 -120
  95. package/utils/kupola.js +0 -63
  96. package/utils/kupola.py +0 -1392
  97. package/utils/kupola.rb +0 -69
@@ -1,312 +0,0 @@
1
- # Kupola Design System - 项目总结
2
-
3
- ## 一、项目概述
4
-
5
- Kupola 是一个轻量级设计系统,专为 Python Web 项目(Flask/Django)设计,无需 React/Vue 等重型框架。
6
-
7
- ### 项目历史
8
-
9
- | 阶段 | 时间 | 事件 |
10
- |------|------|------|
11
- | Nimbus | 初始版本 | 项目创建,命名为 Nimbus Design System |
12
- | 重构 | 2026-07 | 代码重构,修复响应式、HTTP、内存泄漏等问题 |
13
- | 重命名 | 2026-07-09 | 项目从 Nimbus 重命名为 Kupola |
14
- | 清理 | 2026-07-09 | 清理无用文件,优化项目结构 |
15
- | GitHub | 2026-07-09 | 推送到 GitHub 仓库 `github.com/kupola-cn/kupola` |
16
-
17
- ### 核心特性
18
-
19
- - **50+ 组件**:按钮、输入框、卡片、弹窗、日期选择器、时间选择器、热力图、虚拟列表等
20
- - **双主题**:深色优先设计,支持浅色主题
21
- - **11 个品牌色**:可切换的品牌色彩系统
22
- - **响应式设计**:适配 PC、平板、手机
23
- - **无障碍**:符合 WCAG AA 标准
24
- - **表单验证**:内置验证规则,支持自定义规则
25
- - **数据绑定**:基于 Proxy 的双向数据绑定系统
26
- - **无依赖**:纯 HTML/CSS/JavaScript
27
-
28
- ---
29
-
30
- ## 二、架构设计
31
-
32
- ### 架构原则
33
-
34
- ```
35
- ┌──────────────────────────────────────────────────────┐
36
- │ HTML 层(后端渲染) │
37
- │ Jinja2/Django 模板输出语义化 HTML │
38
- │ data-bind / data-component / data-validate 属性 │
39
- ├──────────────────────────────────────────────────────┤
40
- │ CSS 层(视觉增强) │
41
- │ CSS 变量 + BEM 命名 + 双主题支持 │
42
- │ 即使 JS 未加载,页面依然可用 │
43
- ├──────────────────────────────────────────────────────┤
44
- │ JS 层(交互增强) │
45
- │ IIFE + window 全局挂载,无需打包器 │
46
- │ MutationObserver 自动检测并初始化组件 │
47
- │ 响应式系统(Proxy)+ 组合式 API │
48
- └──────────────────────────────────────────────────────┘
49
- ```
50
-
51
- ### 组件生命周期
52
-
53
- ```
54
- 创建 → init() → 挂载 → 更新 → 销毁 → destroy()
55
- ```
56
-
57
- 通过 `KupolaLifecycle` 和 `GlobalEventManager` 统一管理组件生命周期。
58
-
59
- ### 响应式系统
60
-
61
- 基于 Proxy 实现,支持:
62
- - `ref()` - 基础响应式引用
63
- - `reactive()` - 响应式对象
64
- - `computed()` - 计算属性(自动依赖追踪)
65
-
66
- ---
67
-
68
- ## 三、项目结构
69
-
70
- ```
71
- kupola/
72
- ├── css/ # CSS 样式表(13个文件)
73
- │ ├── kupola.css # 主样式入口
74
- │ ├── components.css # 组件样式
75
- │ ├── theme-dark.css # 深色主题
76
- │ ├── theme-light.css # 浅色主题
77
- │ └── ... # 其他样式
78
- ├── js/ # JavaScript 模块(40+个)
79
- │ ├── kupola-core.js # 核心框架
80
- │ ├── kupola-lifecycle.js # 生命周期管理
81
- │ ├── component.js # 组件基类
82
- │ ├── data-bind.js # 数据绑定
83
- │ ├── composition-api.js # 组合式 API
84
- │ ├── http.js # HTTP 客户端
85
- │ ├── router.js # 路由系统
86
- │ ├── theme.js # 主题切换
87
- │ └── ... # UI 组件
88
- ├── icons/ # SVG 图标(133个)
89
- ├── dist/ # 构建产物
90
- │ ├── kupola.esm.js # ES Module 格式
91
- │ ├── kupola.cjs.js # CommonJS 格式
92
- │ ├── kupola.umd.js # UMD 格式
93
- │ └── types/kupola.d.ts # TypeScript 类型定义
94
- ├── src/ # 构建入口
95
- ├── utils/ # Python 工具函数
96
- ├── dashboard/ # 仪表盘模板
97
- ├── casepages/ # 组件展示页面
98
- ├── examples/ # 使用示例
99
- ├── test/ # 测试文件
100
- ├── docs/ # 文档
101
- └── package.json # 构建脚本
102
- ```
103
-
104
- ---
105
-
106
- ## 四、核心功能
107
-
108
- ### 1. 组件系统
109
-
110
- | 类别 | 组件 |
111
- |------|------|
112
- | **基础** | Button, Input, Textarea, Select, Checkbox, Radio, Switch |
113
- | **数据** | Table, Pagination, VirtualList, DynamicTags |
114
- | **反馈** | Modal, Dialog, Message, Notification, Tooltip |
115
- | **导航** | Tabs, Dropdown, Breadcrumb |
116
- | **表单** | Form, DatePicker, TimePicker, ColorPicker |
117
- | **数据可视化** | Heatmap, StatCard |
118
- | **其他** | Carousel, Drawer, Collapse, Upload |
119
-
120
- ### 2. 数据绑定
121
-
122
- ```html
123
- <input type="text" data-bind="user.name:value">
124
- <span data-bind="user.name:text"></span>
125
- <input type="checkbox" data-bind="user.active:checked">
126
- ```
127
-
128
- ```javascript
129
- kupolaData.data.user = { name: 'John', active: true };
130
- kupolaData.data.user.name = 'Jane';
131
- ```
132
-
133
- ### 3. 组合式 API
134
-
135
- ```javascript
136
- setup(() => {
137
- const count = ref(0);
138
- const doubled = computed(() => count.value * 2);
139
-
140
- onMounted(() => {
141
- console.log('组件挂载');
142
- });
143
-
144
- return { count, doubled };
145
- });
146
- ```
147
-
148
- ### 4. 主题系统
149
-
150
- ```javascript
151
- setTheme('dark'); // 切换到深色主题
152
- setTheme('light'); // 切换到浅色主题
153
- setBrand('zengqing'); // 设置品牌色
154
- ```
155
-
156
- ### 5. HTTP 客户端
157
-
158
- ```javascript
159
- const http = createHttp({ baseURL: '/api' });
160
- http.get('/users');
161
- http.post('/login', { username, password });
162
- http.cancelRequest('/users');
163
- http.cancelAllRequests();
164
- ```
165
-
166
- ---
167
-
168
- ## 五、使用方法
169
-
170
- ### 快速开始
171
-
172
- ```html
173
- <!-- 引入 CSS -->
174
- <link rel="stylesheet" href="kupola/css/kupola.css">
175
-
176
- <!-- 引入 JavaScript -->
177
- <script src="kupola/js/kupola-core.js"></script>
178
-
179
- <!-- 使用组件 -->
180
- <button class="ds-btn ds-btn--brand">提交</button>
181
- <input type="text" class="ds-input" placeholder="输入内容">
182
- ```
183
-
184
- ### ES Module 方式
185
-
186
- ```javascript
187
- import { KupolaComponent, ref, reactive, createHttp } from 'kupola';
188
- ```
189
-
190
- ### 构建命令
191
-
192
- ```bash
193
- npm install # 安装依赖
194
- npm run build # 生产构建(Vite)
195
- npm run build:rollup # 备选构建(Rollup)
196
- npm run dev # 开发服务器
197
- npm run test # 运行测试
198
- npm run lint # 代码检查
199
- ```
200
-
201
- ---
202
-
203
- ## 六、构建系统
204
-
205
- ### 构建工具
206
-
207
- - **Vite ^5.4.1**:主要构建工具,生成 ESM/CJS/UMD 格式
208
- - **Rollup**:备选构建工具,兼容更多场景
209
-
210
- ### 构建产物
211
-
212
- | 文件 | 大小 | 说明 |
213
- |------|------|------|
214
- | `dist/kupola.esm.js` | ~332 kB | ES Module 格式 |
215
- | `dist/kupola.cjs.js` | ~254 kB | CommonJS 格式 |
216
- | `dist/kupola.umd.js` | ~254 kB | UMD 格式 |
217
-
218
- ---
219
-
220
- ## 七、分支管理
221
-
222
- ### 分支策略
223
-
224
- ```
225
- main # 生产分支(稳定版本)
226
- └── develop # 开发分支(日常开发)
227
- ├── feature/xxx # 功能分支
228
- ├── fix/xxx # 修复分支
229
- └── release/xxx # 发布分支
230
- ```
231
-
232
- ### 工作流程
233
-
234
- ```bash
235
- # 切换到开发分支
236
- git checkout develop
237
-
238
- # 创建功能分支
239
- git checkout -b feature/new-component
240
-
241
- # 开发完成后推送
242
- git push github feature/new-component
243
-
244
- # 创建 PR 到 develop
245
- # 合并后删除分支
246
- ```
247
-
248
- ---
249
-
250
- ## 八、贡献指南
251
-
252
- ### 代码规范
253
-
254
- - **JavaScript**:使用 ESLint 检查,遵循 Airbnb 规范
255
- - **CSS**:使用 BEM 命名规范
256
- - **提交信息**:使用 Conventional Commits 格式
257
-
258
- ### 开发流程
259
-
260
- 1. Fork 仓库
261
- 2. 创建功能分支 `feature/xxx`
262
- 3. 开发并测试
263
- 4. 创建 PR 到 `develop` 分支
264
- 5. 等待审核和合并
265
-
266
- ---
267
-
268
- ## 九、迁移指南(从 Nimbus)
269
-
270
- ### 名称变更
271
-
272
- | 旧名称 | 新名称 |
273
- |--------|--------|
274
- | `NimbusComponent` | `KupolaComponent` |
275
- | `NimbusHttp` | `KupolaHttp` |
276
- | `window.nimbusData` | `window.kupolaData` |
277
- | `nimbus-core.js` | `kupola-core.js` |
278
- | `nimbus.css` | `kupola.css` |
279
-
280
- ### 引用路径变更
281
-
282
- | 旧路径 | 新路径 |
283
- |--------|--------|
284
- | `/nimbus-js/` | `/kupola-js/` |
285
- | `/nimbus-css/` | `/kupola-css/` |
286
- | `/nimbus-dist/` | `/kupola-dist/` |
287
-
288
- ---
289
-
290
- ## 十、版本历史
291
-
292
- | 版本 | 日期 | 变更 |
293
- |------|------|------|
294
- | 1.2.0 | 2026-07-09 | 项目重命名为 Kupola,清理无用文件 |
295
- | 1.1.0 | 2026-07 | 修复响应式系统、HTTP 取消、内存泄漏 |
296
- | 1.0.0 | 初始 | Nimbus Design System 发布 |
297
-
298
- ---
299
-
300
- ## 十一、相关链接
301
-
302
- - **GitHub**:https://github.com/kupola-cn/kupola
303
- - **Gitee**:https://gitee.com/coln/nimbus
304
- - **文档**:docs/api.md, docs/kupola-vs-vue-react.md
305
- - **集成指南**:INTEGRATION.md
306
- - **组件展示**:dashboard/showcase.html
307
-
308
- ---
309
-
310
- ## 十二、许可证
311
-
312
- MIT License