@mxmweb/zui 1.1.10 → 1.1.14

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 (130) 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 -0
  9. package/bash.exe.stackdump +40 -0
  10. package/components.json +21 -0
  11. package/dist/README.md +4 -0
  12. package/dist/assets/style.css +1 -0
  13. package/{elements → dist/elements}/DropdownMenu.d.ts +1 -0
  14. package/dist/examples/Dropdown.d.ts +2 -0
  15. package/{index.js → dist/index.js} +4 -2
  16. package/dist/package.json +30 -0
  17. package/eslint.config.js +92 -0
  18. package/index.html +13 -0
  19. package/package.json +39 -15
  20. package/postcss.config.cjs +19 -0
  21. package/public/mock.csv +16 -0
  22. package/public/mock_/345/211/257/346/234/254.csv +16 -0
  23. package/public/vite.svg +1 -0
  24. package/src/Preview.tsx +15 -0
  25. package/src/assets/img/excel.png +0 -0
  26. package/src/assets/img/img.png +0 -0
  27. package/src/assets/img/pdf.png +0 -0
  28. package/src/assets/img/ppt.png +0 -0
  29. package/src/assets/img/txt.png +0 -0
  30. package/src/assets/img/word.png +0 -0
  31. package/src/containers/DashboardContainer.tsx +507 -0
  32. package/src/containers/DockContainer.tsx +186 -0
  33. package/src/containers/style.css +37 -0
  34. package/src/elements/Button.tsx +118 -0
  35. package/src/elements/CustomDock.tsx +287 -0
  36. package/src/elements/DropDownButton.tsx +249 -0
  37. package/src/elements/DropdownMenu.tsx +186 -0
  38. package/src/elements/GoggleNavbar.tsx +184 -0
  39. package/src/elements/Uploader/README.md +249 -0
  40. package/src/elements/Uploader/UploadItem.tsx +298 -0
  41. package/src/elements/Uploader/example.tsx +95 -0
  42. package/src/elements/Uploader/index.tsx +702 -0
  43. package/src/elements/Uploader/styles.tsx +291 -0
  44. package/src/elements/Uploader/types.ts +119 -0
  45. package/src/elements/Uploader/utils.ts +200 -0
  46. package/src/elements/Uploader.tsx +3 -0
  47. package/src/examples/DockContainerExample.tsx +254 -0
  48. package/src/examples/Dropdown.tsx +27 -0
  49. package/src/icons/Icon.tsx +82 -0
  50. package/src/icons/index.tsx +92 -0
  51. package/src/icons/lazyIndex.tsx +49 -0
  52. package/src/icons/rag/csv.svg +3 -0
  53. package/src/icons/rag/document.svg +3 -0
  54. package/src/icons/rag/excel.svg +3 -0
  55. package/src/icons/rag/file.svg +3 -0
  56. package/src/icons/rag/folder.svg +5 -0
  57. package/src/icons/rag/json.svg +3 -0
  58. package/src/icons/rag/knowledgebase.svg +3 -0
  59. package/src/icons/rag/netretrive.svg +3 -0
  60. package/src/icons/rag/odf.svg +7 -0
  61. package/src/icons/rag/pdf.svg +3 -0
  62. package/src/icons/rag/pic.svg +3 -0
  63. package/src/icons/rag/ppt.svg +3 -0
  64. package/src/icons/rag/think.svg +6 -0
  65. package/src/icons/rag/txt.svg +3 -0
  66. package/src/icons/rag/url.svg +3 -0
  67. package/src/icons/rag/word.svg +3 -0
  68. package/src/icons/rag/wps.svg +3 -0
  69. package/src/icons/rag/zip.svg +7 -0
  70. package/src/lib_enter.ts +27 -0
  71. package/src/main.tsx +11 -0
  72. package/src/style.css +9 -0
  73. package/src/theme/styledTheme.tsx +253 -0
  74. package/src/type.d.ts +0 -0
  75. package/src/types/images.d.ts +12 -0
  76. package/src/types/svg-modules.d.ts +24 -0
  77. package/src/vite-env.d.ts +11 -0
  78. package/tailwind.config.js +170 -0
  79. package/tsconfig.app.json +29 -0
  80. package/tsconfig.app.tsbuildinfo +11 -0
  81. package/tsconfig.json +13 -0
  82. package/tsconfig.node.json +22 -0
  83. package/tsconfig.node.tsbuildinfo +1 -0
  84. package/vite.config.ts +165 -0
  85. package/assets/style.css +0 -1
  86. /package/{Preview.d.ts → dist/Preview.d.ts} +0 -0
  87. /package/{containers → dist/containers}/DashboardContainer.d.ts +0 -0
  88. /package/{containers → dist/containers}/DockContainer.d.ts +0 -0
  89. /package/{elements → dist/elements}/Button.d.ts +0 -0
  90. /package/{elements → dist/elements}/CustomDock.d.ts +0 -0
  91. /package/{elements → dist/elements}/DropDownButton.d.ts +0 -0
  92. /package/{elements → dist/elements}/GoggleNavbar.d.ts +0 -0
  93. /package/{elements → dist/elements}/Uploader/UploadItem.d.ts +0 -0
  94. /package/{elements → dist/elements}/Uploader/example.d.ts +0 -0
  95. /package/{elements → dist/elements}/Uploader/index.d.ts +0 -0
  96. /package/{elements → dist/elements}/Uploader/styles.d.ts +0 -0
  97. /package/{elements → dist/elements}/Uploader/types.d.ts +0 -0
  98. /package/{elements → dist/elements}/Uploader/utils.d.ts +0 -0
  99. /package/{elements → dist/elements}/Uploader.d.ts +0 -0
  100. /package/{examples → dist/examples}/DockContainerExample.d.ts +0 -0
  101. /package/{icons → dist/icons}/Icon.d.ts +0 -0
  102. /package/{icons → dist/icons}/Icon.tsx +0 -0
  103. /package/{icons → dist/icons}/index.d.ts +0 -0
  104. /package/{icons → dist/icons}/index.tsx +0 -0
  105. /package/{icons → dist/icons}/lazyIndex.d.ts +0 -0
  106. /package/{icons → dist/icons}/lazyIndex.tsx +0 -0
  107. /package/{icons → dist/icons}/rag/csv.svg +0 -0
  108. /package/{icons → dist/icons}/rag/document.svg +0 -0
  109. /package/{icons → dist/icons}/rag/excel.svg +0 -0
  110. /package/{icons → dist/icons}/rag/file.svg +0 -0
  111. /package/{icons → dist/icons}/rag/folder.svg +0 -0
  112. /package/{icons → dist/icons}/rag/json.svg +0 -0
  113. /package/{icons → dist/icons}/rag/knowledgebase.svg +0 -0
  114. /package/{icons → dist/icons}/rag/netretrive.svg +0 -0
  115. /package/{icons → dist/icons}/rag/odf.svg +0 -0
  116. /package/{icons → dist/icons}/rag/pdf.svg +0 -0
  117. /package/{icons → dist/icons}/rag/pic.svg +0 -0
  118. /package/{icons → dist/icons}/rag/ppt.svg +0 -0
  119. /package/{icons → dist/icons}/rag/think.svg +0 -0
  120. /package/{icons → dist/icons}/rag/txt.svg +0 -0
  121. /package/{icons → dist/icons}/rag/url.svg +0 -0
  122. /package/{icons → dist/icons}/rag/word.svg +0 -0
  123. /package/{icons → dist/icons}/rag/wps.svg +0 -0
  124. /package/{icons → dist/icons}/rag/zip.svg +0 -0
  125. /package/{lib_enter.d.ts → dist/lib_enter.d.ts} +0 -0
  126. /package/{main.d.ts → dist/main.d.ts} +0 -0
  127. /package/{mock.csv → dist/mock.csv} +0 -0
  128. /package/{mock_ → dist/mock_}/345/211/257/346/234/254.csv" +0 -0
  129. /package/{theme → dist/theme}/styledTheme.d.ts +0 -0
  130. /package/{vite.svg → dist/vite.svg} +0 -0
package/vite.config.ts ADDED
@@ -0,0 +1,165 @@
1
+ import { defineConfig, loadEnv } from 'vite';
2
+ import resolve from '@rollup/plugin-node-resolve';
3
+ import commonjs from 'vite-plugin-commonjs';
4
+ import svgr from 'vite-plugin-svgr';
5
+ import path from 'path';
6
+ import react from '@vitejs/plugin-react';
7
+ import generatePackageJson from 'rollup-plugin-generate-package-json';
8
+ import dts from 'vite-plugin-dts';
9
+ import version from 'vite-plugin-package-version';
10
+ import pkg from './package.json';
11
+ import copy from 'rollup-plugin-copy';
12
+ import fs from 'fs';
13
+
14
+ function shiftStaticFiles(directories: string[]) {
15
+ return {
16
+ name: 'shift-static-file',
17
+ writeBundle() {
18
+ directories.forEach((dir) => {
19
+ const targetDir = path.resolve(__dirname, 'dist', dir);
20
+ if (fs.existsSync(targetDir)) {
21
+ fs.rmSync(targetDir, { recursive: true, force: true });
22
+ console.log(`Deleted directory: ${targetDir}`);
23
+ } else {
24
+ console.warn(`Directory not found: ${targetDir}`);
25
+ }
26
+ });
27
+ },
28
+ };
29
+ }
30
+
31
+ export default ({ mode }: { mode: string }) => {
32
+ const env = loadEnv(mode, process.cwd());
33
+ console.log(env);
34
+
35
+ return defineConfig({
36
+ base: './',
37
+ plugins: [
38
+ resolve(),
39
+ commonjs(),
40
+ svgr(),
41
+ react({
42
+ // 启用 styled-components 调试
43
+ jsxImportSource: 'react',
44
+ babel: {
45
+ // 不需要额外配置
46
+ }
47
+ }),
48
+ version(),
49
+ dts({
50
+ tsconfigPath: './tsconfig.app.json',
51
+ insertTypesEntry: true,
52
+ include: ['src/**/*.ts', 'src/**/*.tsx', 'src/**/*.d.ts'], // 包含声明文件,导出到依赖方
53
+ }),
54
+ generatePackageJson({
55
+ outputFolder: 'dist',
56
+ baseContents: {
57
+ name: env.VITE_PUBLISH_NAME || pkg.name,
58
+ main: 'index.js',
59
+ license: 'MIT',
60
+ // @ts-expect-error 这里是因为样式文件可能没有类型定义
61
+ style: 'assets/style.css',
62
+ types: 'lib_enter.d.ts',
63
+ private: false,
64
+ version: pkg.version,
65
+ author: pkg.author,
66
+ type: 'module',
67
+ // 将根 package.json 的 peerDependencies 复制到发布包
68
+ peerDependencies: pkg.peerDependencies,
69
+ scripts: {
70
+ test: 'yarn link',
71
+ disconnect: 'yarn unlink',
72
+ },
73
+ exports: {
74
+ '.': {
75
+ "types": "./lib_enter.d.ts",
76
+ "import": "./index.js",
77
+ "default": "./index.js"
78
+ },
79
+ './style.css': './assets/style.css',
80
+ },
81
+ },
82
+ }),
83
+ copy({
84
+ targets: [
85
+ { src: 'README.md', dest: 'dist', rename: 'README.md' },
86
+ // 将源码 icons 目录复制到发布目录,供使用端按需引入
87
+ { src: 'src/icons', dest: 'dist' },
88
+ ],
89
+ hook: 'writeBundle',
90
+ }),
91
+ shiftStaticFiles(['files']),
92
+
93
+ ],
94
+ resolve: {
95
+ alias: {
96
+ '@': path.resolve(__dirname, './src'),
97
+ },
98
+ },
99
+ esbuild: {
100
+ charset: 'ascii',
101
+ },
102
+
103
+ // assetsInclude: ['**/*.mjs'], // 确保 Vite 能识别 .mjs 文件为资源
104
+ build: {
105
+ outDir: 'dist',
106
+ lib: {
107
+ entry: path.resolve(__dirname, 'src/lib_enter.ts'),
108
+ formats: ['es'],
109
+ fileName: (format) => `index.${format === 'es' ? 'js' : 'umd.js'}`,
110
+ },
111
+ rollupOptions: {
112
+ external: (id) => {
113
+ // 在开发环境中,不外部化 @mxmweb 包,让它们能够正确解析
114
+ if (mode === 'development') {
115
+ return [
116
+ 'react',
117
+ 'react-dom',
118
+ 'styled-components',
119
+ 'animejs',
120
+ 'antd',
121
+ 'lucide-react',
122
+ ].some(pkg => id === pkg || id.startsWith(`${pkg}/`));
123
+ }
124
+
125
+ // 在生产构建中,外部化所有 @mxmweb 包
126
+ return [
127
+ 'react',
128
+ 'react-dom',
129
+ 'styled-components',
130
+ 'animejs',
131
+ 'antd',
132
+ 'lucide-react',
133
+ ].some(pkg => id === pkg || id.startsWith(`${pkg}/`))
134
+ || /^@mxmweb\//.test(id);
135
+ },
136
+ input: {
137
+ main: path.resolve(__dirname, 'src/lib_enter.ts'),
138
+ },
139
+ output: {
140
+ dir: 'dist', // 确保输出在 dist 根目录
141
+ entryFileNames: `index.js`,
142
+ assetFileNames: assetInfo => {
143
+ if (assetInfo.name && assetInfo.name.endsWith('.css')) {
144
+ return 'assets/style.css';
145
+ }
146
+ return 'assets/[name].[ext]';
147
+ },
148
+ globals: {
149
+ react: 'React',
150
+ // 'react-dom': 'ReactDOM',
151
+ },
152
+ },
153
+ // treeshake: true, // 启用 tree-shaking,减少无用代码
154
+ },
155
+ },
156
+
157
+ define: {
158
+ // 启用 styled-components 开发模式
159
+ __DEV__: mode === 'development',
160
+ },
161
+ optimizeDeps: {
162
+ include: ['styled-components'],
163
+ },
164
+ });
165
+ };
package/assets/style.css DELETED
@@ -1 +0,0 @@
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}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes