@mxmweb/zui 1.0.3 → 1.0.19

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 (132) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/.releaserc.json +36 -0
  5. package/CHANGELOG.md +58 -0
  6. package/CONTRIBUTING.md +111 -0
  7. package/NPMREADME.md +0 -0
  8. package/README.md +4 -1
  9. package/bash.exe.stackdump +40 -0
  10. package/components.json +21 -0
  11. package/dist/README.md +0 -0
  12. package/dist/assets/style.css +1 -0
  13. package/{containers → dist/containers}/DashboardContainer.d.ts +8 -0
  14. package/dist/containers/DockContainer.d.ts +24 -0
  15. package/{elements → dist/elements}/Button.d.ts +3 -4
  16. package/dist/elements/CustomDock.d.ts +25 -0
  17. package/dist/elements/DropDownButton.d.ts +24 -0
  18. package/{elements → dist/elements}/DropdownMenu.d.ts +2 -4
  19. package/dist/elements/GoggleNavbar.d.ts +31 -0
  20. package/{elements → dist/elements}/Uploader/UploadItem.d.ts +17 -0
  21. package/{elements → dist/elements}/Uploader/styles.d.ts +10 -1
  22. package/dist/elements/Uploader/types.d.ts +87 -0
  23. package/dist/examples/DockContainerExample.d.ts +3 -0
  24. package/dist/icons/Icon.d.ts +7 -0
  25. package/dist/icons/Icon.tsx +82 -0
  26. package/dist/icons/index.d.ts +13 -0
  27. package/dist/icons/index.tsx +92 -0
  28. package/dist/icons/lazyIndex.d.ts +7 -0
  29. package/dist/icons/lazyIndex.tsx +49 -0
  30. package/dist/icons/rag/csv.svg +3 -0
  31. package/dist/icons/rag/document.svg +3 -0
  32. package/dist/icons/rag/excel.svg +3 -0
  33. package/dist/icons/rag/file.svg +3 -0
  34. package/dist/icons/rag/folder.svg +5 -0
  35. package/dist/icons/rag/json.svg +3 -0
  36. package/dist/icons/rag/knowledgebase.svg +3 -0
  37. package/dist/icons/rag/netretrive.svg +3 -0
  38. package/dist/icons/rag/odf.svg +7 -0
  39. package/dist/icons/rag/pdf.svg +3 -0
  40. package/dist/icons/rag/pic.svg +3 -0
  41. package/dist/icons/rag/ppt.svg +3 -0
  42. package/dist/icons/rag/think.svg +6 -0
  43. package/dist/icons/rag/txt.svg +3 -0
  44. package/dist/icons/rag/url.svg +3 -0
  45. package/dist/icons/rag/word.svg +3 -0
  46. package/dist/icons/rag/wps.svg +3 -0
  47. package/dist/icons/rag/zip.svg +7 -0
  48. package/dist/index.js +2299 -0
  49. package/dist/lib_enter.d.ts +13 -0
  50. package/dist/package.json +26 -0
  51. package/{theme → dist/theme}/styledTheme.d.ts +40 -54
  52. package/eslint.config.js +92 -0
  53. package/index.html +13 -0
  54. package/package.json +42 -14
  55. package/postcss.config.cjs +19 -0
  56. package/public/mock.csv +16 -0
  57. package/public/mock_/345/211/257/346/234/254.csv +16 -0
  58. package/public/vite.svg +1 -0
  59. package/src/Preview.tsx +15 -0
  60. package/src/assets/img/excel.png +0 -0
  61. package/src/assets/img/img.png +0 -0
  62. package/src/assets/img/pdf.png +0 -0
  63. package/src/assets/img/ppt.png +0 -0
  64. package/src/assets/img/txt.png +0 -0
  65. package/src/assets/img/word.png +0 -0
  66. package/src/containers/DashboardContainer.tsx +507 -0
  67. package/src/containers/DockContainer.tsx +186 -0
  68. package/src/containers/style.css +37 -0
  69. package/src/elements/Button.tsx +118 -0
  70. package/src/elements/CustomDock.tsx +287 -0
  71. package/src/elements/DropDownButton.tsx +249 -0
  72. package/src/elements/DropdownMenu.tsx +184 -0
  73. package/src/elements/GoggleNavbar.tsx +184 -0
  74. package/src/elements/Uploader/README.md +249 -0
  75. package/src/elements/Uploader/UploadItem.tsx +298 -0
  76. package/src/elements/Uploader/example.tsx +95 -0
  77. package/src/elements/Uploader/index.tsx +702 -0
  78. package/src/elements/Uploader/styles.tsx +291 -0
  79. package/src/elements/Uploader/types.ts +119 -0
  80. package/src/elements/Uploader/utils.ts +200 -0
  81. package/src/elements/Uploader.tsx +3 -0
  82. package/src/examples/DockContainerExample.tsx +237 -0
  83. package/src/icons/Icon.tsx +82 -0
  84. package/src/icons/index.tsx +92 -0
  85. package/src/icons/lazyIndex.tsx +49 -0
  86. package/src/icons/rag/csv.svg +3 -0
  87. package/src/icons/rag/document.svg +3 -0
  88. package/src/icons/rag/excel.svg +3 -0
  89. package/src/icons/rag/file.svg +3 -0
  90. package/src/icons/rag/folder.svg +5 -0
  91. package/src/icons/rag/json.svg +3 -0
  92. package/src/icons/rag/knowledgebase.svg +3 -0
  93. package/src/icons/rag/netretrive.svg +3 -0
  94. package/src/icons/rag/odf.svg +7 -0
  95. package/src/icons/rag/pdf.svg +3 -0
  96. package/src/icons/rag/pic.svg +3 -0
  97. package/src/icons/rag/ppt.svg +3 -0
  98. package/src/icons/rag/think.svg +6 -0
  99. package/src/icons/rag/txt.svg +3 -0
  100. package/src/icons/rag/url.svg +3 -0
  101. package/src/icons/rag/word.svg +3 -0
  102. package/src/icons/rag/wps.svg +3 -0
  103. package/src/icons/rag/zip.svg +7 -0
  104. package/src/lib_enter.ts +27 -0
  105. package/src/main.tsx +11 -0
  106. package/src/style.css +9 -0
  107. package/src/theme/styledTheme.tsx +253 -0
  108. package/src/type.d.ts +0 -0
  109. package/src/types/images.d.ts +12 -0
  110. package/src/types/svg-modules.d.ts +24 -0
  111. package/src/vite-env.d.ts +11 -0
  112. package/tailwind.config.js +170 -0
  113. package/tsconfig.app.json +29 -0
  114. package/tsconfig.app.tsbuildinfo +11 -0
  115. package/tsconfig.json +13 -0
  116. package/tsconfig.node.json +22 -0
  117. package/tsconfig.node.tsbuildinfo +1 -0
  118. package/vite.config.ts +167 -0
  119. package/assets/zui.css +0 -1
  120. package/elements/Uploader/types.d.ts +0 -50
  121. package/index-CgFHm4CL-O5tUkbrp.js +0 -48009
  122. package/index.js +0 -49394
  123. package/lib_enter.d.ts +0 -6
  124. /package/{Preview.d.ts → dist/Preview.d.ts} +0 -0
  125. /package/{elements → dist/elements}/Uploader/example.d.ts +0 -0
  126. /package/{elements → dist/elements}/Uploader/index.d.ts +0 -0
  127. /package/{elements → dist/elements}/Uploader/utils.d.ts +0 -0
  128. /package/{elements → dist/elements}/Uploader.d.ts +0 -0
  129. /package/{main.d.ts → dist/main.d.ts} +0 -0
  130. /package/{mock.csv → dist/mock.csv} +0 -0
  131. /package/{mock_ → dist/mock_}/345/211/257/346/234/254.csv" +0 -0
  132. /package/{vite.svg → dist/vite.svg} +0 -0
package/.editorconfig ADDED
@@ -0,0 +1,38 @@
1
+ # EditorConfig is awesome: https://EditorConfig.org
2
+
3
+ # top-most EditorConfig file
4
+ root = true
5
+
6
+ # Unix-style newlines with a newline ending every file
7
+ [*]
8
+ end_of_line = lf
9
+ insert_final_newline = true
10
+ charset = utf-8
11
+ trim_trailing_whitespace = true
12
+
13
+ # TypeScript and JavaScript files
14
+ [*.{ts,tsx,js,jsx}]
15
+ indent_style = space
16
+ indent_size = 2
17
+ quote_type = single
18
+ max_line_length = 100
19
+
20
+ # CSS files
21
+ [*.css]
22
+ indent_style = space
23
+ indent_size = 2
24
+
25
+ # Markdown files
26
+ [*.md]
27
+ trim_trailing_whitespace = false
28
+ max_line_length = off
29
+
30
+ # JSON files
31
+ [*.json]
32
+ indent_style = space
33
+ indent_size = 2
34
+
35
+ # YAML files
36
+ [*.{yml,yaml}]
37
+ indent_style = space
38
+ indent_size = 2
@@ -0,0 +1,16 @@
1
+ # 构建输出
2
+ dist
3
+ build
4
+
5
+ # 依赖
6
+ node_modules
7
+
8
+ # 测试覆盖率
9
+ coverage
10
+
11
+ # 其他
12
+ .git
13
+ .husky
14
+ .vscode
15
+ *.log
16
+ *.lock
package/.prettierrc ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "tabWidth": 2,
5
+ "printWidth": 100,
6
+ "trailingComma": "es5",
7
+ "bracketSpacing": true,
8
+ "arrowParens": "avoid",
9
+ "endOfLine": "lf",
10
+ "jsxSingleQuote": false,
11
+ "quoteProps": "as-needed",
12
+ "useTabs": false,
13
+ "htmlWhitespaceSensitivity": "css",
14
+ "embeddedLanguageFormatting": "auto",
15
+ "singleAttributePerLine": false,
16
+ "bracketSameLine": false
17
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "branches": ["main"],
3
+ "plugins": [
4
+ ["@semantic-release/commit-analyzer", {
5
+ "preset": "angular",
6
+ "releaseRules": [
7
+ {"type": "docs", "scope": "README", "release": "patch"},
8
+ {"type": "feat", "release": "minor"},
9
+ {"type": "fix", "release": "patch"},
10
+ {"type": "perf", "release": "patch"},
11
+ {"type": "revert", "release": "patch"},
12
+ {"type": "style", "release": "patch"},
13
+ {"type": "test", "release": "patch"},
14
+ {"type": "ci", "release": "patch"},
15
+ {"type": "chore", "release": "patch"}
16
+ ]
17
+ }],
18
+ ["@semantic-release/release-notes-generator", {
19
+ "preset": "angular"
20
+ }],
21
+ ["@semantic-release/changelog", {
22
+ "changelogFile": "CHANGELOG.md"
23
+ }],
24
+ ["@semantic-release/npm", {
25
+ "npmPublish": true,
26
+ "tarballDir": "dist"
27
+ }],
28
+ ["@semantic-release/git", {
29
+ "assets": ["package.json", "CHANGELOG.md"],
30
+ "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
31
+ }],
32
+ ["@semantic-release/github", {
33
+ "assets": "dist/*.tgz"
34
+ }]
35
+ ]
36
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,58 @@
1
+ # 1.0.0 (2025-04-03)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * 优化发布配置,只发布 dist 目录 ([0b8bbfd](https://github.com/mxm-web-develop/mxm/commit/0b8bbfde3ffad1d58dd6681c03ba821b67c04071))
7
+ * 优化发布配置,确保 GitHub 保持源代码更新 ([be203dc](https://github.com/mxm-web-develop/mxm/commit/be203dc8738cf432b2a2781efe9ad5db1ded5827))
8
+ * 修复 README.md 复制时机 ([79fccd8](https://github.com/mxm-web-develop/mxm/commit/79fccd8d9efec486611f559c693157187fb9d219))
9
+ * 调整文件结果,减轻打包体积 ([e291921](https://github.com/mxm-web-develop/mxm/commit/e291921ef24d78ee67403ab2dcc6f7bde3a24f72))
10
+
11
+
12
+ ### Features
13
+
14
+ * 修复文件预览组件发布配置 ([fc534ea](https://github.com/mxm-web-develop/mxm/commit/fc534ea37b1f50705b7e3900801ca496ae04ddca))
15
+ * 渲染和标注完成 ([a18fe85](https://github.com/mxm-web-develop/mxm/commit/a18fe857537325855c021207647d5f98e9a09ee0))
16
+ * 配置子项目独立发布 ([d2907a5](https://github.com/mxm-web-develop/mxm/commit/d2907a54eb282c195d3846b6330bc0633fc4f667))
17
+ * 配置子项目独立发布 ([5e9d97d](https://github.com/mxm-web-develop/mxm/commit/5e9d97d34500a31f63b0b1d1772d1652362d8b86))
18
+ * 配置根目录release脚本,支持文档自动部署 ([aa38669](https://github.com/mxm-web-develop/mxm/commit/aa38669c55ceeae8d50e526fdbc47e7d4f83c2c8))
19
+
20
+ # Changelog
21
+
22
+ 所有重要的更改都会记录在这个文件中。
23
+
24
+ ## [1.0.13] - 2024-03-27
25
+
26
+ ### 新增
27
+ - 初始化项目
28
+ - 添加基础组件结构
29
+ - 配置 Vite 开发环境
30
+ - 添加 TypeScript 支持
31
+ - 添加 ESLint 和 Prettier 配置
32
+ - 添加 Tailwind CSS 支持
33
+ - 添加 Zustand 状态管理
34
+ - 添加基础文件预览功能
35
+
36
+ ### 变更
37
+ - 无
38
+
39
+ ### 修复
40
+ - 无
41
+
42
+ ### 移除
43
+ - 无
44
+
45
+ ## 版本格式
46
+
47
+ 我们遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/) 的版本格式。
48
+
49
+ ### 版本号格式
50
+ - 主版本号:重大更新,不兼容的 API 修改
51
+ - 次版本号:向下兼容的功能性新增
52
+ - 修订号:向下兼容的问题修正
53
+
54
+ ### 更新类型
55
+ - `新增`:新功能
56
+ - `变更`:对现有功能的变更
57
+ - `修复`:问题修复
58
+ - `移除`:移除的功能
@@ -0,0 +1,111 @@
1
+ # 贡献指南
2
+
3
+ 感谢你考虑为 `@mxmweb/fileviewer` 做出贡献!我们欢迎任何形式的贡献,包括但不限于:问题报告、功能建议、文档改进、代码提交等。
4
+
5
+ ## 开发环境设置
6
+
7
+ 1. 克隆仓库
8
+ ```bash
9
+ git clone https://github.com/your-username/fileviewer.git
10
+ cd fileviewer
11
+ ```
12
+
13
+ 2. 安装依赖
14
+ ```bash
15
+ pnpm install
16
+ ```
17
+
18
+ 3. 启动开发服务器
19
+ ```bash
20
+ pnpm dev
21
+ ```
22
+
23
+ ## 开发流程
24
+
25
+ 1. 创建新的分支
26
+ ```bash
27
+ git checkout -b feature/your-feature-name
28
+ # 或
29
+ git checkout -b fix/your-fix-name
30
+ ```
31
+
32
+ 2. 提交代码
33
+ ```bash
34
+ git add .
35
+ git commit -m "feat: your feature description"
36
+ # 或
37
+ git commit -m "fix: your fix description"
38
+ ```
39
+
40
+ 3. 推送到远程仓库
41
+ ```bash
42
+ git push origin feature/your-feature-name
43
+ ```
44
+
45
+ 4. 创建 Pull Request
46
+
47
+ ## 代码规范
48
+
49
+ - 使用 TypeScript 编写代码
50
+ - 遵循 ESLint 和 Prettier 配置
51
+ - 使用 EditorConfig 保持一致的代码风格
52
+ - 编写清晰的提交信息,遵循 [Conventional Commits](https://www.conventionalcommits.org/)
53
+
54
+ ## 提交信息规范
55
+
56
+ 提交信息应该遵循以下格式:
57
+
58
+ ```
59
+ <type>(<scope>): <subject>
60
+
61
+ <body>
62
+
63
+ <footer>
64
+ ```
65
+
66
+ 类型(type):
67
+ - feat: 新功能
68
+ - fix: 修复
69
+ - docs: 文档
70
+ - style: 格式
71
+ - refactor: 重构
72
+ - test: 测试
73
+ - chore: 构建过程或辅助工具的变动
74
+
75
+ ## 测试
76
+
77
+ - 编写单元测试
78
+ - 确保所有测试通过
79
+ - 保持测试覆盖率
80
+
81
+ ## 文档
82
+
83
+ - 更新 README.md
84
+ - 更新 CHANGELOG.md
85
+ - 添加必要的注释
86
+ - 更新 API 文档
87
+
88
+ ## 发布流程
89
+
90
+ 1. 更新版本号
91
+ 2. 更新 CHANGELOG.md
92
+ 3. 提交更改
93
+ 4. 创建发布标签
94
+ 5. 发布到 npm
95
+
96
+ ## 问题反馈
97
+
98
+ 如果你发现了问题或有改进建议,请:
99
+
100
+ 1. 查看是否已经存在相关 issue
101
+ 2. 如果不存在,创建新的 issue
102
+ 3. 提供清晰的问题描述和复现步骤
103
+ 4. 添加相关的错误信息或截图
104
+
105
+ ## 行为准则
106
+
107
+ 请阅读并遵守我们的 [行为准则](CODE_OF_CONDUCT.md)。
108
+
109
+ ## 许可证
110
+
111
+ 通过提交代码,你同意你的代码将使用与项目相同的许可证。
package/NPMREADME.md ADDED
File without changes
package/README.md CHANGED
@@ -1 +1,4 @@
1
- # 工具库架构初始化
1
+ # @mxmweb工具库开发环境说明文档
2
+
3
+ import { Icon } from '@mxmweb/zui'
4
+ <Icon type="rag/pdf" size={16} />
@@ -0,0 +1,40 @@
1
+ Stack trace:
2
+ Frame Function Args
3
+ 0007FFFFCD30 00021006118E (0002102A6010, 000210272B51, 000000000063, 0007FFFFB660) msys-2.0.dll+0x2118E
4
+ 0007FFFFCD30 0002100469BA (0007FFFFC710, 000200000000, 000700000000, 000700000001) msys-2.0.dll+0x69BA
5
+ 0007FFFFCD30 0002100469F2 (000000000000, 000000000000, 000000000063, 000700000003) msys-2.0.dll+0x69F2
6
+ 0007FFFFCD30 000210101D21 (000210177B53, 000800007798, 000000000000, 0002102752E0) msys-2.0.dll+0xC1D21
7
+ 0007FFFFCD30 000210101D39 (0002101779A0, 0003000000FF, 000000000006, 0007FFFFC890) msys-2.0.dll+0xC1D39
8
+ 0007FFFFCD30 000210104704 (0007FFFFCD30, 000000000000, 0007FFFFC890, 0002102752E0) msys-2.0.dll+0xC4704
9
+ 0007FFFFCD30 000210059095 (000000000004, 000000000004, 0007FFFFC9E8, 0000FFFFFFFF) msys-2.0.dll+0x19095
10
+ 0007FFFFCD30 000210059865 (000210070B52, 00021024CB20, 000800004540, 000000000030) msys-2.0.dll+0x19865
11
+ 0007FFFFCD30 000210059D77 (00021017DB25, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x19D77
12
+ 0007FFFFCD30 00021005A0B6 (0002100CB9A0, 000000000000, FFFFFFFFFFFFFF43, 000200000000) msys-2.0.dll+0x1A0B6
13
+ 0007FFFFCD30 000210047151 (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x7151
14
+ 0007FFFFFFF0 000210045C86 (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x5C86
15
+ 0007FFFFFFF0 000210045D34 (000000000000, 000000000000, 000000000000, 000000000000) msys-2.0.dll+0x5D34
16
+ End of stack trace
17
+ Loaded modules:
18
+ 000100400000 bash.exe
19
+ 7FFD10F50000 ntdll.dll
20
+ 7FFD0FA20000 KERNEL32.DLL
21
+ 7FFD0E710000 KERNELBASE.dll
22
+ 7FFD10800000 USER32.dll
23
+ 7FFD0EB80000 win32u.dll
24
+ 7FFD10370000 GDI32.dll
25
+ 7FFD0E220000 gdi32full.dll
26
+ 000210040000 msys-2.0.dll
27
+ 7FFD0EBB0000 msvcp_win.dll
28
+ 7FFD0E5F0000 ucrtbase.dll
29
+ 7FFD0F630000 advapi32.dll
30
+ 7FFD10430000 msvcrt.dll
31
+ 7FFD0F350000 sechost.dll
32
+ 7FFD0EAD0000 bcrypt.dll
33
+ 7FFD104E0000 RPCRT4.dll
34
+ 7FFD0DA20000 CRYPTBASE.DLL
35
+ 7FFD0EB00000 bcryptPrimitives.dll
36
+ 7FFD0F5F0000 IMM32.DLL
37
+ 7FFD02F20000 netapi32.dll
38
+ 7FFCFB7A0000 SAMCLI.DLL
39
+ 7FFD05410000 SAMLIB.dll
40
+ 7FFD0CD40000 NETUTILS.DLL
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "src/style.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": false,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/components/shadcn/utils",
16
+ "ui": "@/components/shadcn/ui",
17
+ "lib": "@/components/shadcn/lib",
18
+ "hooks": "@/components/shadcn/hooks"
19
+ },
20
+ "iconLibrary": "lucide"
21
+ }
package/dist/README.md ADDED
File without changes
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.1.12 | MIT License | https://tailwindcss.com */@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-50:oklch(97% .014 254.604);--color-blue-500:oklch(62.3% .214 259.815);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.-top-1{top:calc(var(--spacing)*-1)}.top-1\/2{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-1{right:calc(var(--spacing)*1)}.z-20{z-index:20}.my-2{margin-block:calc(var(--spacing)*2)}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.list-item{display:list-item}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-9{height:calc(var(--spacing)*9)}.h-full{height:100%}.h-screen{height:100vh}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-9{width:calc(var(--spacing)*9)}.w-32{width:calc(var(--spacing)*32)}.w-\[2px\]{width:2px}.w-full{width:100%}.w-screen{width:100vw}.min-w-\[16px\]{min-width:16px}.flex-1{flex:1}.flex-shrink{flex-shrink:1}.origin-bottom-right{transform-origin:100% 100%}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.cursor-pointer\!{cursor:pointer!important}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-y-\[2px\]{row-gap:2px}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-none{--tw-border-style:none;border-style:none}.bg-blue-50{background-color:var(--color-blue-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-red-500{background-color:var(--color-red-500)}.stroke-gray-400{stroke:var(--color-gray-400)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-\[2px\]{padding-inline:2px}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-6{padding-block:calc(var(--spacing)*6)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[14px\]{font-size:14px}.leading-4{--tw-leading:calc(var(--spacing)*4);line-height:calc(var(--spacing)*4)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.whitespace-nowrap{white-space:nowrap}.text-blue-500{color:var(--color-blue-500)}.text-gray-500{color:var(--color-gray-500)}.text-white{color:var(--color-white)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\:scale-105:is(:where(.group):hover *),.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}*{margin:0;padding:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -1,5 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { AppTheme } from '../theme/styledTheme';
3
+ import { DockItem, ActiveMode } from '../elements/CustomDock';
3
4
  export interface BreadcrumbItem {
4
5
  id: string;
5
6
  label: string;
@@ -10,6 +11,9 @@ export interface EventsEmit {
10
11
  onBreadcrumbClick?: (item: BreadcrumbItem, index: number) => void;
11
12
  onGoBack?: () => void;
12
13
  onTitleClick?: () => void;
14
+ onDockItemClick?: (item: DockItem, index: number) => void;
15
+ onDockActiveChange?: (activeId: string | null, item: DockItem | null) => void;
16
+ onDockActiveChangeMultiple?: (activeIds: string[], items: DockItem[]) => void;
13
17
  [key: string]: any;
14
18
  }
15
19
  interface DashboardContainerProps {
@@ -18,6 +22,10 @@ interface DashboardContainerProps {
18
22
  title?: string;
19
23
  description?: string;
20
24
  breadcrumbs?: BreadcrumbItem[];
25
+ dockItems?: DockItem[];
26
+ dockActiveMode?: ActiveMode;
27
+ defaultDockActiveId?: string;
28
+ defaultDockActiveIds?: string[];
21
29
  styles?: {
22
30
  theme?: AppTheme;
23
31
  };
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+ import { AppTheme } from '../theme/styledTheme';
3
+ import { DockItem, ActiveMode } from '../elements/CustomDock';
4
+ export interface FullScreenContainerProps {
5
+ children?: React.ReactNode;
6
+ backgroundImage?: string;
7
+ backgroundColor?: string;
8
+ header?: React.ReactNode;
9
+ dockItems?: DockItem[];
10
+ dockActiveMode?: ActiveMode;
11
+ defaultDockActiveId?: string;
12
+ defaultDockActiveIds?: string[];
13
+ styles?: {
14
+ theme?: AppTheme;
15
+ };
16
+ eventsEmit?: {
17
+ onDockItemClick?: (item: DockItem, index: number) => void;
18
+ onDockActiveChange?: (activeId: string | null, item: DockItem | null) => void;
19
+ onDockActiveChangeMultiple?: (activeIds: string[], items: DockItem[]) => void;
20
+ [key: string]: any;
21
+ };
22
+ }
23
+ declare const DockContainer: React.FC<FullScreenContainerProps>;
24
+ export default DockContainer;
@@ -1,14 +1,13 @@
1
1
  import { default as React } from 'react';
2
- import { AppTheme } from '../theme/styledTheme';
2
+ import { Styles } from '../theme/styledTheme';
3
3
  export type ButtonType = 'primary' | 'default' | 'error' | 'text';
4
4
  export interface ButtonProps {
5
5
  mode?: ButtonType;
6
6
  label?: string;
7
- styles?: {
8
- theme?: AppTheme;
9
- };
7
+ styles?: Styles;
10
8
  icon?: React.ReactNode;
11
9
  disabled?: boolean;
10
+ loading?: boolean;
12
11
  onClick?: () => void;
13
12
  style?: React.CSSProperties;
14
13
  className?: string;
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ export interface DockItem {
3
+ id: string;
4
+ label: string;
5
+ icon: string;
6
+ onClick?: () => void;
7
+ isActive?: boolean;
8
+ }
9
+ export type ActiveMode = 'single' | 'multiple';
10
+ export interface CustomDockProps {
11
+ items: DockItem[];
12
+ itemWidth?: number;
13
+ itemHeight?: number;
14
+ magnification?: number;
15
+ itemGap?: number;
16
+ activeMode?: ActiveMode;
17
+ defaultActiveId?: string;
18
+ defaultActiveIds?: string[];
19
+ onItemClick?: (item: DockItem, index: number) => void;
20
+ onActiveChange?: (activeId: string | null, item: DockItem | null) => void;
21
+ onActiveChangeMultiple?: (activeIds: string[], items: DockItem[]) => void;
22
+ className?: string;
23
+ }
24
+ declare const CustomDock: React.FC<CustomDockProps>;
25
+ export default CustomDock;
@@ -0,0 +1,24 @@
1
+ import { default as React } from 'react';
2
+ import { Styles } from '../theme/styledTheme';
3
+ export interface DropDownButtonAction {
4
+ key: string;
5
+ label?: string;
6
+ component?: React.ReactNode;
7
+ type?: 'divider' | 'action';
8
+ icon?: React.ReactNode;
9
+ onClick?: () => void;
10
+ }
11
+ export interface DropDownButtonProps {
12
+ mode?: 'primary' | 'default' | 'error' | 'text';
13
+ label?: string;
14
+ actions: DropDownButtonAction[];
15
+ styles?: Styles;
16
+ icon?: React.ReactNode;
17
+ disabled?: boolean;
18
+ style?: React.CSSProperties;
19
+ className?: string;
20
+ children?: React.ReactNode;
21
+ eventEmit?: (eventName: string, data?: any, innerFn?: any) => void;
22
+ }
23
+ declare const DropDownButton: React.FC<DropDownButtonProps>;
24
+ export default DropDownButton;
@@ -1,4 +1,4 @@
1
- import { AppTheme } from '../theme/styledTheme';
1
+ import { Styles } from '../theme/styledTheme';
2
2
  import * as React from 'react';
3
3
  export interface DropdownMenuAction {
4
4
  key: string;
@@ -11,9 +11,7 @@ interface DropdownMenuProps {
11
11
  actions: DropdownMenuAction[];
12
12
  onAction: (key: string) => void;
13
13
  direction?: 'top' | 'bottom';
14
- styles?: {
15
- theme?: AppTheme;
16
- };
14
+ styles?: Styles;
17
15
  }
18
16
  declare const DropdownMenu: React.FC<DropdownMenuProps>;
19
17
  export default DropdownMenu;
@@ -0,0 +1,31 @@
1
+ import { default as React } from 'react';
2
+ import { Styles } from '../theme/styledTheme';
3
+ export interface GoggleNavItem {
4
+ key: string | number;
5
+ name: string;
6
+ disabled?: boolean;
7
+ icon?: string | React.ReactNode;
8
+ activeIcon?: string | React.ReactNode;
9
+ path?: string;
10
+ badge?: number;
11
+ }
12
+ export interface GoggleNavbarProps {
13
+ items: GoggleNavItem[];
14
+ /** 当前激活路径,控制激活态渲染 */
15
+ activePath?: string;
16
+ /** 初始展开状态(非受控) */
17
+ defaultOpen?: boolean;
18
+ /** 受控展开状态 */
19
+ open?: boolean;
20
+ /** 展开状态变化回调(用于受控) */
21
+ onOpenChange?: (open: boolean) => void;
22
+ /** 点击项回调 */
23
+ onItemClick?: (item: GoggleNavItem) => void;
24
+ /** 顶部 Logo 图,可以是图片地址或 ReactNode */
25
+ logo?: string | React.ReactNode;
26
+ className?: string;
27
+ style?: React.CSSProperties;
28
+ styles?: Styles;
29
+ }
30
+ declare const GoggleNavbar: React.FC<GoggleNavbarProps>;
31
+ export default GoggleNavbar;
@@ -9,6 +9,23 @@ interface UploadItemProps {
9
9
  onRemove: (id: string) => void;
10
10
  onToggleExpand: (id: string) => void;
11
11
  onFormDataChange: (id: string, formData: Record<string, any>) => void;
12
+ icons?: {
13
+ itemStatus?: {
14
+ pending?: React.ReactNode;
15
+ uploading?: React.ReactNode;
16
+ success?: React.ReactNode;
17
+ error?: React.ReactNode;
18
+ };
19
+ fileType?: {
20
+ default?: React.ReactNode;
21
+ image?: React.ReactNode;
22
+ document?: React.ReactNode;
23
+ spreadsheet?: React.ReactNode;
24
+ archive?: React.ReactNode;
25
+ video?: React.ReactNode;
26
+ audio?: React.ReactNode;
27
+ };
28
+ };
12
29
  }
13
30
  /**
14
31
  * 独立的上传项组件
@@ -17,9 +17,12 @@ export declare const FileInput: import('styled-components/dist/types').IStyledCo
17
17
  export declare const UploadList: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
18
18
  $theme: AppTheme;
19
19
  }>> & string;
20
- export declare const UploadItem: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
20
+ export declare const UploadItem: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
21
+ ref?: ((instance: HTMLDivElement | null) => void | import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import('react').DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import('react').RefObject<HTMLDivElement> | null | undefined;
22
+ }>, never>, {
21
23
  $theme: AppTheme;
22
24
  $status: UploadStatus;
25
+ $hasForm?: boolean;
23
26
  }>> & string;
24
27
  export declare const FileIcon: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
25
28
  $theme: AppTheme;
@@ -50,7 +53,13 @@ export declare const ExpandButton: import('styled-components/dist/types').IStyle
50
53
  }>> & string;
51
54
  export declare const FormContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
52
55
  $theme: AppTheme;
56
+ $hasError?: boolean;
53
57
  }>> & string;
54
58
  export declare const MetadataInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, {
55
59
  $theme: AppTheme;
56
60
  }>> & string;
61
+ export declare const UploadItemContainer: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
62
+ $theme: AppTheme;
63
+ $status: UploadStatus;
64
+ $hasForm: boolean;
65
+ }>> & string;