cx-chat 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/dist/cx-chat.css +1 -0
  2. package/dist/cx-chat.es.js +97326 -0
  3. package/dist/cx-chat.umd.js +734 -0
  4. package/package.json +21 -1
  5. package/.cursor/rules/i18n-cn-gloss-comments.mdc +0 -31
  6. package/.cursor/rules/list-page-view-pageconfig.mdc +0 -32
  7. package/.cursor/rules/no-over-defensive-programming.mdc +0 -90
  8. package/.cursor/rules/requirement-description-for-agent.mdc +0 -33
  9. package/.cursor/rules/use-showToast-not-antd-message.mdc +0 -28
  10. package/.docker/Dockerfile +0 -7
  11. package/.env +0 -9
  12. package/.env.development +0 -7
  13. package/.env.production +0 -7
  14. package/.gitlab-ci/docker-build.yaml +0 -28
  15. package/.gitlab-ci/k8s-deploy-dev-master.yaml +0 -42
  16. package/.gitlab-ci/npm-build.yaml +0 -17
  17. package/.gitlab-ci.yml +0 -8
  18. package/.k8s/0-namespace.yaml +0 -6
  19. package/.k8s/1-configmap-web.yaml +0 -7
  20. package/.k8s/1-nginx-conf-dev.yaml +0 -110
  21. package/.k8s/2-deployment.yaml +0 -27
  22. package/.k8s/3-service.yaml +0 -16
  23. package/.k8s/4-ingress-dev.yaml +0 -30
  24. package/.lingma/rules/use-showToast-not-antd-message.md +0 -34
  25. package/.nginx/nginx.conf +0 -52
  26. package/.prettierrc +0 -9
  27. package/eslint.config.js +0 -32
  28. package/index.html +0 -13
  29. package/postcss.config.js +0 -6
  30. package/src/App.tsx +0 -96
  31. package/src/_doc/0.docs-overview.md +0 -28
  32. package/src/_doc/cx-ui/0.docs-overview.md +0 -30
  33. package/src/_doc/cx-ui/comp.1.cx-ui-overview.md +0 -82
  34. package/src/_doc/cx-ui/comp.2.cx-modal.md +0 -82
  35. package/src/_doc/cx-ui/comp.3.cx-button.md +0 -89
  36. package/src/_doc/cx-ui/comp.4.cx-form.md +0 -72
  37. package/src/_doc/cx-ui/comp.5.cx-fields.md +0 -76
  38. package/src/_doc/cx-ui/comp.6.cx-tag.md +0 -57
  39. package/src/_doc/cx-ui/comp.7.cx-empty-state.md +0 -29
  40. package/src/_doc/meta/0.docs-overview.md +0 -24
  41. package/src/_doc/meta/comp.1.enum-runtime.md +0 -33
  42. package/src/_doc/meta/comp.2.dict-runtime.md +0 -39
  43. package/src/_doc/router/0.docs-overview.md +0 -14
  44. package/src/_doc/router/guide.1.menu-component-config.md +0 -181
  45. package/src/_doc/router/guide.2.router-auto-registration.md +0 -114
  46. package/src/_doc/table-view/0.docs-overview.md +0 -30
  47. package/src/_doc/table-view/comp.1.table-view.md +0 -542
  48. package/src/_doc/table-view/props.1.create-table-view-config.md +0 -193
  49. package/src/_doc/table-view/props.2.table-view-search-fields.md +0 -106
  50. package/src/api/_mock/README.md +0 -340
  51. package/src/api/_mock/api.ts +0 -1642
  52. package/src/api/_mock/bundle-shim.ts +0 -16
  53. package/src/api/_mock/handler-shim.ts +0 -6
  54. package/src/api/_mock/handler.ts +0 -458
  55. package/src/api/_mock/index.ts +0 -711
  56. package/src/api/_mock/interceptor.ts +0 -15
  57. package/src/api/_mock/mod.ts +0 -12
  58. package/src/api/_mock/utils.ts +0 -65
  59. package/src/api/base/memory.js +0 -24
  60. package/src/api/chat.js +0 -210
  61. package/src/api/common/auth.js +0 -70
  62. package/src/api/menus/business-rules.js +0 -76
  63. package/src/api/menus/feedback.js +0 -102
  64. package/src/api/menus/knowledge.js +0 -159
  65. package/src/api/menus/model-metadata/manage.js +0 -70
  66. package/src/api/menus/model-metadata/role.js +0 -50
  67. package/src/api/menus/model-metadata/training-detail-mock-data.js +0 -569
  68. package/src/api/menus/model-metadata/training.js +0 -28
  69. package/src/api/menus/skill.js +0 -40
  70. package/src/api/system/agent-config.js +0 -16
  71. package/src/api/system/department.js +0 -94
  72. package/src/api/system/dict.js +0 -86
  73. package/src/api/system/menu.js +0 -37
  74. package/src/api/system/permission.js +0 -26
  75. package/src/api/system/role.js +0 -34
  76. package/src/api/system/sys-config.js +0 -16
  77. package/src/api/system/sys-log.js +0 -17
  78. package/src/api/system/user.js +0 -75
  79. package/src/api/upload.js +0 -39
  80. package/src/assets/react.svg +0 -1
  81. package/src/components/auth/current-user-avatar.tsx +0 -77
  82. package/src/components/common/code-view.tsx +0 -149
  83. package/src/components/common/detail-link.tsx +0 -67
  84. package/src/components/common/error-boundary.tsx +0 -98
  85. package/src/components/common/language-switcher.tsx +0 -91
  86. package/src/components/common/lite-table/index.tsx +0 -135
  87. package/src/components/common/md-editor.tsx +0 -126
  88. package/src/components/common/modal/confirm-dialog.tsx +0 -113
  89. package/src/components/common/modal/dep-user-select-multi.tsx +0 -324
  90. package/src/components/common/modal/dep-user-select.tsx +0 -249
  91. package/src/components/common/modal/user-select-multi.tsx +0 -266
  92. package/src/components/common/pagination.tsx +0 -472
  93. package/src/components/common/path.tsx +0 -175
  94. package/src/components/common/system-logo-mark.tsx +0 -48
  95. package/src/components/cx-ui/button/index.less +0 -208
  96. package/src/components/cx-ui/button/index.tsx +0 -611
  97. package/src/components/cx-ui/checkbox/index.tsx +0 -78
  98. package/src/components/cx-ui/date-picker/index.less +0 -17
  99. package/src/components/cx-ui/date-picker/index.tsx +0 -193
  100. package/src/components/cx-ui/drawer/index.tsx +0 -47
  101. package/src/components/cx-ui/empty-state/index.tsx +0 -20
  102. package/src/components/cx-ui/floating-shell/CxFloatingShell.tsx +0 -89
  103. package/src/components/cx-ui/floating-shell/cx-floating-shell.less +0 -283
  104. package/src/components/cx-ui/floating-shell/has-floating-value.ts +0 -41
  105. package/src/components/cx-ui/form/CxForm.tsx +0 -15
  106. package/src/components/cx-ui/form/index.tsx +0 -20
  107. package/src/components/cx-ui/form-item/index.less +0 -26
  108. package/src/components/cx-ui/form-item/index.tsx +0 -36
  109. package/src/components/cx-ui/index.ts +0 -70
  110. package/src/components/cx-ui/input/auto-complete.tsx +0 -134
  111. package/src/components/cx-ui/input/index.tsx +0 -259
  112. package/src/components/cx-ui/input-number/index.jsx +0 -66
  113. package/src/components/cx-ui/modal/index.jsx +0 -212
  114. package/src/components/cx-ui/modal/index.less +0 -144
  115. package/src/components/cx-ui/modal/useCxModal.ts +0 -125
  116. package/src/components/cx-ui/multi-select/index.jsx +0 -74
  117. package/src/components/cx-ui/multi-select/index.less +0 -40
  118. package/src/components/cx-ui/multi-select/index2.tsx +0 -361
  119. package/src/components/cx-ui/radio/index.tsx +0 -33
  120. package/src/components/cx-ui/range-picker/index.less +0 -65
  121. package/src/components/cx-ui/range-picker/index.tsx +0 -219
  122. package/src/components/cx-ui/select/index.less +0 -34
  123. package/src/components/cx-ui/select/index.tsx +0 -196
  124. package/src/components/cx-ui/skeleton/index.tsx +0 -12
  125. package/src/components/cx-ui/steps/index.tsx +0 -14
  126. package/src/components/cx-ui/styles/_tokens.less +0 -79
  127. package/src/components/cx-ui/styles/index.less +0 -246
  128. package/src/components/cx-ui/switch/index.less +0 -106
  129. package/src/components/cx-ui/switch/index.tsx +0 -120
  130. package/src/components/cx-ui/table/index.less +0 -160
  131. package/src/components/cx-ui/table/index.tsx +0 -152
  132. package/src/components/cx-ui/tabs/index.less +0 -15
  133. package/src/components/cx-ui/tabs/index.tsx +0 -34
  134. package/src/components/cx-ui/tag/index.less +0 -51
  135. package/src/components/cx-ui/tag/index.tsx +0 -140
  136. package/src/components/cx-ui/timeline/index.tsx +0 -14
  137. package/src/components/cx-ui/tooltip/index.tsx +0 -67
  138. package/src/components/cx-ui/tree/index.tsx +0 -193
  139. package/src/components/cx-ui/tree-select/index.jsx +0 -91
  140. package/src/components/cx-ui/tree-select/index.less +0 -27
  141. package/src/components/cx-ui/upload-file/index.less +0 -223
  142. package/src/components/cx-ui/upload-file/index.tsx +0 -640
  143. package/src/components/cx-ui/upload-img/index.tsx +0 -291
  144. package/src/components/layout/components/Header.tsx +0 -216
  145. package/src/components/layout/components/Sidebar.tsx +0 -717
  146. package/src/components/layout/index.tsx +0 -95
  147. package/src/components/table-view/components/search-area.tsx +0 -411
  148. package/src/components/table-view/components/table-view-config.tsx +0 -528
  149. package/src/components/table-view/components/table-view.types.ts +0 -478
  150. package/src/components/table-view/components/tree-api-normalize.ts +0 -38
  151. package/src/components/table-view/components/tree-data-annotate.ts +0 -31
  152. package/src/components/table-view/components/tree-sidebar.tsx +0 -74
  153. package/src/components/table-view/index.tsx +0 -61
  154. package/src/components/table-view/list-page-view.tsx +0 -1049
  155. package/src/components/table-view/select-table-view.tsx +0 -1094
  156. package/src/components/table-view/styles/select-table-view.less +0 -51
  157. package/src/config/default-system-name.ts +0 -9
  158. package/src/config/system.ts +0 -165
  159. package/src/constants/countryCodes.ts +0 -3
  160. package/src/contexts/AuthContext.tsx +0 -256
  161. package/src/contexts/ChatContext.tsx +0 -839
  162. package/src/contexts/MenuContext.tsx +0 -62
  163. package/src/contexts/ToastContext.tsx +0 -181
  164. package/src/hooks/useCopyToClipboard.ts +0 -47
  165. package/src/hooks/useModalSubmit.ts +0 -104
  166. package/src/hooks/useRouter.ts +0 -240
  167. package/src/hooks/useStepForm.ts +0 -46
  168. package/src/hooks/useStickyHeader.ts +0 -42
  169. package/src/hooks/useThreadActions.ts +0 -105
  170. package/src/hooks/useUserPreferences.ts +0 -101
  171. package/src/http/axios.js +0 -372
  172. package/src/http/mock.interceptor.ts +0 -9
  173. package/src/http/obfuscationKey.ts +0 -41
  174. package/src/i18n.ts +0 -60
  175. package/src/index.js +0 -1
  176. package/src/index.less +0 -169
  177. package/src/locales/en/auth.ts +0 -70
  178. package/src/locales/en/base/memory.ts +0 -28
  179. package/src/locales/en/base/settings.ts +0 -41
  180. package/src/locales/en/chat.ts +0 -40
  181. package/src/locales/en/common.ts +0 -173
  182. package/src/locales/en/enum.ts +0 -27
  183. package/src/locales/en/menus/business-rules.ts +0 -48
  184. package/src/locales/en/menus/feedback.ts +0 -62
  185. package/src/locales/en/menus/knowledge.ts +0 -120
  186. package/src/locales/en/menus/model-metadata/index.ts +0 -10
  187. package/src/locales/en/menus/model-metadata/manage.ts +0 -151
  188. package/src/locales/en/menus/model-metadata/role.ts +0 -48
  189. package/src/locales/en/menus/model-metadata/training.ts +0 -65
  190. package/src/locales/en/menus/skill.ts +0 -34
  191. package/src/locales/en/system/agent-config.ts +0 -34
  192. package/src/locales/en/system/department.ts +0 -68
  193. package/src/locales/en/system/dict.ts +0 -44
  194. package/src/locales/en/system/menu.ts +0 -45
  195. package/src/locales/en/system/permission.ts +0 -89
  196. package/src/locales/en/system/role.ts +0 -25
  197. package/src/locales/en/system/sys-config.ts +0 -33
  198. package/src/locales/en/system/sys-log.ts +0 -38
  199. package/src/locales/en/system/user.ts +0 -113
  200. package/src/locales/en.ts +0 -68
  201. package/src/locales/zh/auth.ts +0 -70
  202. package/src/locales/zh/base/memory.ts +0 -29
  203. package/src/locales/zh/base/settings.ts +0 -41
  204. package/src/locales/zh/chat.ts +0 -47
  205. package/src/locales/zh/common.ts +0 -178
  206. package/src/locales/zh/enum.ts +0 -28
  207. package/src/locales/zh/menus/business-rules.ts +0 -47
  208. package/src/locales/zh/menus/feedback.ts +0 -62
  209. package/src/locales/zh/menus/knowledge.ts +0 -117
  210. package/src/locales/zh/menus/model-metadata/index.ts +0 -10
  211. package/src/locales/zh/menus/model-metadata/manage.ts +0 -151
  212. package/src/locales/zh/menus/model-metadata/role.ts +0 -47
  213. package/src/locales/zh/menus/model-metadata/training.ts +0 -64
  214. package/src/locales/zh/menus/skill.ts +0 -34
  215. package/src/locales/zh/system/agent-config.ts +0 -33
  216. package/src/locales/zh/system/department.ts +0 -69
  217. package/src/locales/zh/system/dict.ts +0 -44
  218. package/src/locales/zh/system/menu.ts +0 -47
  219. package/src/locales/zh/system/permission.ts +0 -94
  220. package/src/locales/zh/system/role.ts +0 -25
  221. package/src/locales/zh/system/sys-config.ts +0 -32
  222. package/src/locales/zh/system/sys-log.ts +0 -38
  223. package/src/locales/zh/system/user.ts +0 -114
  224. package/src/locales/zh.ts +0 -67
  225. package/src/main.tsx +0 -50
  226. package/src/meta/const/index.ts +0 -40
  227. package/src/meta/index-dict.ts +0 -56
  228. package/src/meta/index-enum.ts +0 -95
  229. package/src/meta/index.ts +0 -14
  230. package/src/meta/module/dict-data/runtime.ts +0 -199
  231. package/src/meta/module/dict-data/types.ts +0 -17
  232. package/src/meta/module/enum-data/runtime.ts +0 -75
  233. package/src/meta/module/enum-data/types.ts +0 -18
  234. package/src/router/index.tsx +0 -312
  235. package/src/styles/AntdThemeProvider.tsx +0 -40
  236. package/src/styles/antd-theme.ts +0 -20
  237. package/src/styles/global.less +0 -107
  238. package/src/styles/variable.less +0 -103
  239. package/src/types/feedback.ts +0 -43
  240. package/src/types/index.ts +0 -85
  241. package/src/types/menu.ts +0 -43
  242. package/src/utils/aesUtil.ts +0 -123
  243. package/src/utils/chatUtils.ts +0 -524
  244. package/src/utils/cn.ts +0 -6
  245. package/src/utils/crypto.ts +0 -164
  246. package/src/utils/date.ts +0 -72
  247. package/src/utils/file-icons.tsx +0 -79
  248. package/src/utils/index.ts +0 -168
  249. package/src/utils/markdown-math-plugins.ts +0 -21
  250. package/src/utils/menuI18n.ts +0 -305
  251. package/src/utils/menuRouteRegistry.ts +0 -78
  252. package/src/utils/permission-crud.ts +0 -147
  253. package/src/utils/routeConfig.ts +0 -350
  254. package/src/utils/storage.ts +0 -135
  255. package/src/utils/toastBridge.ts +0 -26
  256. package/src/utils/url.ts +0 -38
  257. package/src/utils/validation.ts +0 -16
  258. package/src/views/auth/auth-code/index.less +0 -169
  259. package/src/views/auth/auth-code/index.module.less +0 -174
  260. package/src/views/auth/auth-code/index.tsx +0 -233
  261. package/src/views/auth/login.tsx +0 -498
  262. package/src/views/auth/register.tsx +0 -388
  263. package/src/views/base/memory/index.tsx +0 -136
  264. package/src/views/base/memory/modal/detail-modal.tsx +0 -89
  265. package/src/views/base/memory/modal/submit-modal.tsx +0 -134
  266. package/src/views/base/settings/index.tsx +0 -657
  267. package/src/views/chat/chat.less +0 -323
  268. package/src/views/chat/components/chat-input.tsx +0 -298
  269. package/src/views/chat/components/header-thread-title.tsx +0 -210
  270. package/src/views/chat/components/message-list/content-answer.tsx +0 -100
  271. package/src/views/chat/components/message-list/content-question.tsx +0 -18
  272. package/src/views/chat/components/message-list/index.tsx +0 -520
  273. package/src/views/chat/components/message-list/message-item.tsx +0 -199
  274. package/src/views/chat/components/message-list/preparation-demo-items.ts +0 -147
  275. package/src/views/chat/components/message-list/preparation-steps.tsx +0 -506
  276. package/src/views/chat/components/message-list/suggestion-list.tsx +0 -36
  277. package/src/views/chat/components/message-list/thinking-process.tsx +0 -49
  278. package/src/views/chat/components/message-list/toolbar.tsx +0 -224
  279. package/src/views/chat/components/message-list/use-message-list-scroll.ts +0 -214
  280. package/src/views/chat/components/references-knowledge/context.tsx +0 -57
  281. package/src/views/chat/components/references-knowledge/index.ts +0 -9
  282. package/src/views/chat/components/references-knowledge/modal/knowledge-detail-drawer.tsx +0 -556
  283. package/src/views/chat/components/references-knowledge/modal/knowledge-doc-detail-drawer.tsx +0 -529
  284. package/src/views/chat/components/references-knowledge/panel.tsx +0 -115
  285. package/src/views/chat/hooks/use-chat-common.ts +0 -19
  286. package/src/views/chat/index-session.tsx +0 -647
  287. package/src/views/chat/index.tsx +0 -127
  288. package/src/views/page-error/401.tsx +0 -56
  289. package/src/views/page-error/404.tsx +0 -56
  290. package/src/views/page-menus/business-rules/index.tsx +0 -376
  291. package/src/views/page-menus/business-rules/modal/detail-modal.tsx +0 -186
  292. package/src/views/page-menus/business-rules/modal/scope-modal.tsx +0 -272
  293. package/src/views/page-menus/business-rules/modal/submit-modal.tsx +0 -142
  294. package/src/views/page-menus/feedback/components/feedback-dataset-list.tsx +0 -471
  295. package/src/views/page-menus/feedback/index.tsx +0 -166
  296. package/src/views/page-menus/feedback/modal/export-feedback-modal.tsx +0 -367
  297. package/src/views/page-menus/knowledge/components/doc-editor-by-type.tsx +0 -32
  298. package/src/views/page-menus/knowledge/components/doc-editor-type-file.tsx +0 -330
  299. package/src/views/page-menus/knowledge/detail.tsx +0 -600
  300. package/src/views/page-menus/knowledge/index.tsx +0 -337
  301. package/src/views/page-menus/knowledge/modal/detail-modal.tsx +0 -618
  302. package/src/views/page-menus/knowledge/modal/doc-detail-modal.tsx +0 -550
  303. package/src/views/page-menus/knowledge/modal/doc-parse.ts +0 -99
  304. package/src/views/page-menus/knowledge/modal/doc-submit-modal.tsx +0 -349
  305. package/src/views/page-menus/knowledge/modal/doc-type-picker-modal.tsx +0 -88
  306. package/src/views/page-menus/knowledge/modal/knowledge-user-select-modal.tsx +0 -283
  307. package/src/views/page-menus/knowledge/modal/submit-modal.tsx +0 -179
  308. package/src/views/page-menus/model-metadata/manage/components/metadata-detail-schema-tab.tsx +0 -114
  309. package/src/views/page-menus/model-metadata/manage/components/step1-basic-info.tsx +0 -232
  310. package/src/views/page-menus/model-metadata/manage/components/step2-schema.tsx +0 -316
  311. package/src/views/page-menus/model-metadata/manage/components/step3-permissions.tsx +0 -134
  312. package/src/views/page-menus/model-metadata/manage/components/step4-documents.tsx +0 -134
  313. package/src/views/page-menus/model-metadata/manage/components/step5-example-sql.tsx +0 -101
  314. package/src/views/page-menus/model-metadata/manage/components/submit-add.tsx +0 -338
  315. package/src/views/page-menus/model-metadata/manage/components/submit-edit.tsx +0 -276
  316. package/src/views/page-menus/model-metadata/manage/detail.tsx +0 -298
  317. package/src/views/page-menus/model-metadata/manage/hooks/model-metadata-submit-shared.ts +0 -113
  318. package/src/views/page-menus/model-metadata/manage/hooks/use-model-metadata-item-state.ts +0 -20
  319. package/src/views/page-menus/model-metadata/manage/index.tsx +0 -304
  320. package/src/views/page-menus/model-metadata/manage/modal/components/table-schema.ts +0 -374
  321. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-detail-tabs.tsx +0 -151
  322. package/src/views/page-menus/model-metadata/manage/modal/components/use-table-submit-tabs.tsx +0 -423
  323. package/src/views/page-menus/model-metadata/manage/modal/detail-modal.tsx +0 -218
  324. package/src/views/page-menus/model-metadata/manage/modal/submit-modal.tsx +0 -261
  325. package/src/views/page-menus/model-metadata/manage/modal/table-detail-modal.tsx +0 -196
  326. package/src/views/page-menus/model-metadata/manage/modal/table-submit-modal.tsx +0 -229
  327. package/src/views/page-menus/model-metadata/manage/submit.tsx +0 -31
  328. package/src/views/page-menus/model-metadata/role/index.tsx +0 -207
  329. package/src/views/page-menus/model-metadata/role/modal/detail-modal.tsx +0 -97
  330. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-modal.tsx +0 -254
  331. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-panel.tsx +0 -393
  332. package/src/views/page-menus/model-metadata/role/modal/role-assign-users-utils.ts +0 -120
  333. package/src/views/page-menus/model-metadata/role/modal/role-permission-assign-panel.tsx +0 -698
  334. package/src/views/page-menus/model-metadata/role/modal/role-permission-modal.tsx +0 -237
  335. package/src/views/page-menus/model-metadata/role/modal/submit-modal.tsx +0 -135
  336. package/src/views/page-menus/model-metadata/training/components/detail-records/index.ts +0 -4
  337. package/src/views/page-menus/model-metadata/training/components/detail-records/node-card.tsx +0 -72
  338. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-lines.ts +0 -196
  339. package/src/views/page-menus/model-metadata/training/components/detail-records/summary-list.tsx +0 -153
  340. package/src/views/page-menus/model-metadata/training/components/detail-records/timeline.tsx +0 -103
  341. package/src/views/page-menus/model-metadata/training/components/detail-records/types.ts +0 -82
  342. package/src/views/page-menus/model-metadata/training/detail.tsx +0 -159
  343. package/src/views/page-menus/model-metadata/training/index.tsx +0 -236
  344. package/src/views/page-menus/model-metadata/training/modal/update-detail-modal.tsx +0 -154
  345. package/src/views/page-menus/skill/index.tsx +0 -201
  346. package/src/views/page-menus/skill/modal/detail-modal.tsx +0 -156
  347. package/src/views/page-menus/skill/modal/submit-modal.tsx +0 -214
  348. package/src/views/page-system/agent-config/index.tsx +0 -370
  349. package/src/views/page-system/department/departmentFormShared.ts +0 -36
  350. package/src/views/page-system/department/index.tsx +0 -541
  351. package/src/views/page-system/department/modal/detail-modal.tsx +0 -94
  352. package/src/views/page-system/department/modal/member-role-modal.tsx +0 -128
  353. package/src/views/page-system/department/modal/submit-modal.tsx +0 -265
  354. package/src/views/page-system/dict/index.tsx +0 -440
  355. package/src/views/page-system/dict/modal/cate-submit-modal.tsx +0 -315
  356. package/src/views/page-system/dict/modal/submit-modal.tsx +0 -184
  357. package/src/views/page-system/logs/components/index.ts +0 -3
  358. package/src/views/page-system/logs/components/log-message-demo.tsx +0 -30
  359. package/src/views/page-system/logs/components/log-message-stream.ts +0 -184
  360. package/src/views/page-system/logs/components/message-list/content-answer.tsx +0 -100
  361. package/src/views/page-system/logs/components/message-list/content-question.tsx +0 -18
  362. package/src/views/page-system/logs/components/message-list/index.tsx +0 -515
  363. package/src/views/page-system/logs/components/message-list/message-item.tsx +0 -193
  364. package/src/views/page-system/logs/components/message-list/preparation-demo-items.ts +0 -147
  365. package/src/views/page-system/logs/components/message-list/preparation-steps.tsx +0 -506
  366. package/src/views/page-system/logs/components/message-list/suggestion-list.tsx +0 -36
  367. package/src/views/page-system/logs/components/message-list/thinking-process.tsx +0 -49
  368. package/src/views/page-system/logs/components/message-list/toolbar.tsx +0 -134
  369. package/src/views/page-system/logs/components/message-list/use-message-list-scroll.ts +0 -214
  370. package/src/views/page-system/logs/components/message-modal.tsx +0 -239
  371. package/src/views/page-system/logs/index.tsx +0 -132
  372. package/src/views/page-system/logs/modal/detail-modal.tsx +0 -157
  373. package/src/views/page-system/menu/components/menuFormShared.ts +0 -283
  374. package/src/views/page-system/menu/index.less +0 -12
  375. package/src/views/page-system/menu/index.tsx +0 -410
  376. package/src/views/page-system/menu/modal/icon-modal.less +0 -51
  377. package/src/views/page-system/menu/modal/icon-modal.tsx +0 -87
  378. package/src/views/page-system/menu/modal/submit-modal.tsx +0 -263
  379. package/src/views/page-system/permission/index.tsx +0 -562
  380. package/src/views/page-system/permission/modal/detail-modal.tsx +0 -179
  381. package/src/views/page-system/permission/modal/submit-modal.less +0 -146
  382. package/src/views/page-system/permission/modal/submit-modal.tsx +0 -650
  383. package/src/views/page-system/role/index.tsx +0 -163
  384. package/src/views/page-system/role/modal/detail-modal.tsx +0 -127
  385. package/src/views/page-system/role/modal/permission-assign-group-rules.ts +0 -86
  386. package/src/views/page-system/role/modal/permission-modal.tsx +0 -111
  387. package/src/views/page-system/role/modal/role-modal-shell-styles.ts +0 -21
  388. package/src/views/page-system/role/modal/role-permission-assign-panel.tsx +0 -916
  389. package/src/views/page-system/role/modal/role-permission-assign-shared.ts +0 -1047
  390. package/src/views/page-system/role/modal/submit-modal.tsx +0 -193
  391. package/src/views/page-system/sys-config/index.tsx +0 -294
  392. package/src/views/page-system/user/components/user-role-column.tsx +0 -87
  393. package/src/views/page-system/user/index.tsx +0 -439
  394. package/src/views/page-system/user/modal/assign-roles-modal.tsx +0 -389
  395. package/src/views/page-system/user/modal/detail-modal.tsx +0 -72
  396. package/src/views/page-system/user/modal/modal-style/submit-modal.less +0 -40
  397. package/src/views/page-system/user/modal/submit-modal.less +0 -40
  398. package/src/views/page-system/user/modal/submit-modal.tsx +0 -287
  399. package/src/views/page-system/user/userFormShared.ts +0 -51
  400. package/tailwind.config.js +0 -17
  401. package/tsconfig.app.json +0 -48
  402. package/tsconfig.json +0 -11
  403. package/tsconfig.node.json +0 -26
  404. package/vite.config.ts +0 -264
  405. /package/{public → dist}/favicon.ico +0 -0
  406. /package/{public → dist}/vite.svg +0 -0
@@ -1,20 +0,0 @@
1
- import React from 'react'
2
- import { Form } from 'antd'
3
- import type { FormProps } from 'antd'
4
- import { CxFormContext, type CxFormRulesMap } from './CxForm'
5
-
6
- type Props = Omit<FormProps, 'children'> & {
7
- children?: React.ReactNode
8
- rules?: CxFormRulesMap
9
- }
10
-
11
- export default function CxForm(props: Props) {
12
- const { rules, children, ...formProps } = props
13
- return (
14
- <CxFormContext.Provider value={{ rules }}>
15
- <Form {...formProps}>{children}</Form>
16
- </CxFormContext.Provider>
17
- )
18
- }
19
-
20
- export type { CxFormRulesMap }
@@ -1,26 +0,0 @@
1
- .cx-form-item {
2
- .ant-form-item-control-input {
3
- min-height: 42px;
4
- }
5
-
6
- .ant-form-item-control-input-content {
7
- display: flex;
8
- align-items: center;
9
- /* 上层 overflow:hidden(如宽屏角色弹窗)时避免裁切加粗边框与焦点 ring */
10
- padding: 2px;
11
- }
12
- }
13
-
14
- .ant-form-horizontal .cx-form-item {
15
- .ant-form-item-row {
16
- align-items: center;
17
- }
18
-
19
- .ant-form-item-label > label {
20
- min-height: 42px;
21
- display: inline-flex;
22
- align-items: center;
23
- line-height: 1.2;
24
- }
25
- }
26
-
@@ -1,36 +0,0 @@
1
- import React from 'react'
2
- import { Form } from 'antd'
3
- import type { FormItemProps } from 'antd'
4
- import type { Rule } from 'antd/es/form'
5
- import { useCxFormRules } from '../form/CxForm'
6
- import './index.less'
7
-
8
- type NameType = FormItemProps['name']
9
-
10
- function pickRuleKey(name: NameType, ruleKey?: string): string | undefined {
11
- if (ruleKey) return ruleKey
12
- if (typeof name === 'string') return name
13
- return undefined
14
- }
15
-
16
- type Props = FormItemProps & {
17
- /** 规则键;不传则尝试用 name(string) 作为键 */
18
- ruleKey?: string
19
- }
20
-
21
- export default function CxFormItem({ ruleKey, rules, name, ...props }: Props) {
22
- const rulesMap = useCxFormRules()
23
- const key = pickRuleKey(name, ruleKey)
24
- const autoRules = key ? (rulesMap?.[key] as Rule[] | undefined) : undefined
25
- const mergedClassName = ['cx-form-item', props.className].filter(Boolean).join(' ')
26
-
27
- return (
28
- <Form.Item
29
- {...props}
30
- className={mergedClassName}
31
- name={name}
32
- rules={rules ?? autoRules}
33
- />
34
- )
35
- }
36
-
@@ -1,70 +0,0 @@
1
- import './styles/index.less'
2
-
3
- export {
4
- CxButton,
5
- CxButtonAdd,
6
- CxButtonCancel,
7
- CxButtonDelete,
8
- CxButtonDownload,
9
- CxButtonEdit,
10
- CxButtonExport,
11
- CxButtonIcon,
12
- CxButtonIconDelete,
13
- CxButtonIconDisable,
14
- CxButtonIconDownload,
15
- CxButtonIconEdit,
16
- CxButtonIconEnable, CxButtonIconExport, CxButtonIconSetDefault, CxButtonIconView,
17
- CxButtonOk,
18
- CxButtonSave,
19
- CxButtonSecondary,
20
- CxButtonSubmit,
21
- CxButtonView
22
- } from './button'
23
- export { CxCheckbox } from './checkbox'
24
- export type { CxCheckboxProps } from './checkbox'
25
- export { default as CxDatePicker } from './date-picker'
26
- export type { CxDatePickerProps } from './date-picker'
27
- export { default as CxDrawer } from './drawer'
28
- export { CxEmptyState } from './empty-state'
29
- export type { CxEmptyStateProps } from './empty-state'
30
- export { default as CxForm } from './form'
31
- export type { CxFormRulesMap } from './form'
32
- export { default as CxFormItem } from './form-item'
33
- export { CxFormContext, useCxFormRules } from './form/CxForm'
34
- export { default as CxInput } from './input'
35
- export type { CxInputAutoCompleteProps, CxInputProps } from './input'
36
- export { default as CxInputNumber } from './input-number'
37
- export { default as CxModal, useCxModal } from './modal'
38
- export { default as CxMultiSelect } from './multi-select'
39
- export { default as CxRadio } from './radio'
40
- export type { CxRadioOption, CxRadioProps } from './radio'
41
- export { default as CxRangePicker } from './range-picker'
42
- export type { CxRangePickerProps } from './range-picker'
43
- export { default as CxSelect } from './select'
44
- export type { CxSelectProps } from './select'
45
- export { CxSteps } from './steps'
46
- export type { CxStepsProps } from './steps'
47
- export { CxTimeline } from './timeline'
48
- export type { CxTimelineProps } from './timeline'
49
- export { CxSkeleton } from './skeleton'
50
- export type { CxSkeletonProps } from './skeleton'
51
- export { default as CxSwitch } from './switch'
52
- export type { CxSwitchProps, CxSwitchVariant } from './switch'
53
- export { default as CxTable } from './table'
54
- export type { CxTableProps } from './table'
55
- export { CxTabs } from './tabs'
56
- export type { CxTabsProps } from './tabs'
57
- export { CxTag } from './tag'
58
- export type { CxTagProps } from './tag'
59
- export { CxTooltip } from './tooltip'
60
- export type { CxTooltipProps, CxTooltipTone } from './tooltip'
61
- export { CxTree } from './tree'
62
- export type {
63
- CxTreeFieldNames,
64
- CxTreeProps,
65
- CxTreeSameNodeReselect
66
- } from './tree'
67
- export { default as CxTreeSelect } from './tree-select'
68
- export { default as UploadFile } from './upload-file'
69
- export { default as UploadImg } from './upload-img'
70
-
@@ -1,134 +0,0 @@
1
- import type { AutoCompleteProps } from 'antd'
2
- import { AutoComplete, Input } from 'antd'
3
- import { clsx } from 'clsx'
4
- import { ChevronDown } from 'lucide-react'
5
- import { useCallback, useState } from 'react'
6
-
7
- export type CxInputAutoCompleteProps = Omit<AutoCompleteProps, 'children'> & {
8
- /** 与 CxInput small/middle 对齐,默认 small(表格内紧凑) */
9
- size?: 'small' | 'middle' | 'large'
10
- /** 透传到内部 antd Input */
11
- inputClassName?: string
12
- /**
13
- * 是否在输入框**内侧**展示下拉箭头(与 Select 后缀一致);默认 true。
14
- * 为 false 时仅靠焦点展开,无箭头。
15
- */
16
- showDropdownArrow?: boolean
17
- }
18
-
19
- /**
20
- * 与 CxInput 默认行高一致:primitive 未写 style 时为 42;CxInputMedium=40;CxInputLarge=42。
21
- * (若需 32px 紧凑行请使用 CxInput.Small,本组件暂无对应档,可后续加 `compact`)
22
- */
23
- const inputHeights = { small: 42, middle: 40, large: 42 } as const
24
-
25
- /** AutoComplete 底层是 Select,去掉 selector 壳层多余 min-height/padding,避免比同行 CxInput 高或矮一截 */
26
- const autocompleteSelectShellClass =
27
- '[&_.ant-select-selector]:!min-h-0 [&_.ant-select-selector]:!h-full [&_.ant-select-selector]:border-0 [&_.ant-select-selector]:bg-transparent [&_.ant-select-selector]:p-0 [&_.ant-select-selector]:shadow-none'
28
-
29
- /**
30
- * 与 CxInput 同系样式的可输入下拉(antd AutoComplete + 统一样式)。
31
- * - 下拉展开时默认展示**全部**候选项(不按当前输入过滤);仍可手输列表外的类型如 VARCHAR(100)
32
- * - 需要按输入过滤时可传入 `filterOption`
33
- * - 获得焦点时展开;箭头在输入框内作后缀,点击可切换展开(mousedown 防失焦)
34
- */
35
- export function CxInputAutoComplete({
36
- size = 'small',
37
- className,
38
- inputClassName,
39
- style,
40
- open: openProp,
41
- onOpenChange,
42
- onFocus,
43
- filterOption,
44
- suffixIcon: _suffixIcon,
45
- showDropdownArrow = true,
46
- disabled,
47
- ...rest
48
- }: CxInputAutoCompleteProps) {
49
- const [internalOpen, setInternalOpen] = useState(false)
50
- const mergedOpen = openProp ?? internalOpen
51
-
52
- const handleOpenChange = useCallback(
53
- (next: boolean) => {
54
- if (openProp === undefined) {
55
- setInternalOpen(next)
56
- }
57
- onOpenChange?.(next)
58
- },
59
- [openProp, onOpenChange],
60
- )
61
-
62
- const h = inputHeights[size] ?? inputHeights.small
63
-
64
- const inputSuffix =
65
- showDropdownArrow === false ? undefined : (
66
- <span
67
- role="button"
68
- tabIndex={-1}
69
- aria-label="toggle options"
70
- className="flex cursor-pointer items-center text-gray-400 hover:text-gray-600 dark:text-gray-500 dark:hover:text-gray-300"
71
- onMouseDown={(e) => {
72
- e.preventDefault()
73
- e.stopPropagation()
74
- if (!disabled) {
75
- handleOpenChange(!mergedOpen)
76
- }
77
- }}
78
- >
79
- <ChevronDown size={14} strokeWidth={2} aria-hidden />
80
- </span>
81
- )
82
-
83
- /** 默认 false:展开下列表为全量候选项,避免“只剩与当前输入匹配的几项” */
84
- const mergedFilter = filterOption !== undefined ? filterOption : false
85
-
86
- return (
87
- <AutoComplete
88
- {...rest}
89
- disabled={disabled}
90
- open={mergedOpen}
91
- onOpenChange={handleOpenChange}
92
- filterOption={mergedFilter}
93
- popupMatchSelectWidth={rest.popupMatchSelectWidth ?? false}
94
- className={clsx(
95
- 'cx-input-autocomplete w-full min-w-0',
96
- autocompleteSelectShellClass,
97
- className,
98
- )}
99
- style={{
100
- width: '100%',
101
- height: h,
102
- minHeight: h,
103
- ...style,
104
- }}
105
- suffixIcon={null}
106
- >
107
- <Input
108
- size={size}
109
- disabled={disabled}
110
- className={clsx('cx-input min-w-0', inputClassName)}
111
- rootClassName="cx-input-root"
112
- suffix={inputSuffix}
113
- styles={{
114
- root: {
115
- boxSizing: 'border-box',
116
- minHeight: h,
117
- height: h,
118
- borderRadius: 8,
119
- },
120
- }}
121
- style={{
122
- boxSizing: 'border-box',
123
- borderRadius: 8,
124
- height: h,
125
- minHeight: h,
126
- }}
127
- onFocus={(e) => {
128
- handleOpenChange(true)
129
- onFocus?.(e)
130
- }}
131
- />
132
- </AutoComplete>
133
- )
134
- }
@@ -1,259 +0,0 @@
1
- import type { GetProps } from 'antd'
2
- import { Input, Space } from 'antd'
3
- import clsx from 'clsx'
4
- import React, { useMemo } from 'react'
5
-
6
- import { CxInputAutoComplete } from './auto-complete'
7
- import { CxFloatingShell } from '../floating-shell/CxFloatingShell'
8
- import { hasCxFloatingValue } from '../floating-shell/has-floating-value'
9
-
10
- type TextAreaProps = GetProps<typeof Input.TextArea>
11
- type AntInputProps = GetProps<typeof Input>
12
- type InputStyles = NonNullable<AntInputProps['styles']>
13
-
14
- type CxInputOwn = {
15
- cxFloatingLabel?: React.ReactNode
16
- cxFocusPlaceholder?: string
17
- }
18
-
19
- export type CxInputProps =
20
- | (Omit<AntInputProps, 'variant'> & CxInputOwn)
21
- | (TextAreaProps & CxInputOwn & { type: 'textarea' })
22
-
23
- type CxInputTextProps = Omit<AntInputProps, 'variant'> & CxInputOwn
24
-
25
- /** CxInput 基础组件:统一 Input / TextArea 与浮动标签能力。 */
26
- const CxInputPrimitive: React.FC<CxInputProps> = (props) => {
27
- const {
28
- style = undefined,
29
- cxFloatingLabel,
30
- cxFocusPlaceholder,
31
- placeholder,
32
- value,
33
- onFocus,
34
- onBlur,
35
- disabled,
36
- className,
37
- rootClassName: rootClassNameProp,
38
- addonBefore,
39
- addonAfter,
40
- styles: stylesProp,
41
- size,
42
- ...rest
43
- } = props as AntInputProps & CxInputOwn
44
-
45
- const resolveHeight = () => {
46
- const h = (style && typeof style === 'object' ? (style as any).height : undefined) ??
47
- ((props as any).style && typeof (props as any).style === 'object' ? (props as any).style.height : undefined)
48
- if (typeof h === 'number') return h
49
- if (size === 'small') return 32
50
- if (size === 'middle') return 40
51
- return 42
52
- }
53
-
54
- /** 根据高度推导浮动壳的布局类型:40 及以下按搜索区,其他按表单区。 */
55
- const shellVariant: 'cxForm' | 'cxSearch' = resolveHeight() <= 40 ? 'cxSearch' : 'cxForm'
56
-
57
- const height = resolveHeight()
58
- const hasAddon = addonBefore != null || addonAfter != null
59
- const mergedStyles = useMemo((): InputStyles | undefined => {
60
- if (!hasAddon) return stylesProp
61
- const box = {
62
- height,
63
- minHeight: height,
64
- boxSizing: 'border-box' as const,
65
- }
66
- const base = (stylesProp ?? {}) as InputStyles & { input?: Record<string, unknown> }
67
- return {
68
- ...base,
69
- input: { ...box, ...(base.input ?? {}) },
70
- } as InputStyles
71
- }, [hasAddon, height, stylesProp])
72
- const isTextarea = (rest as AntInputProps).type === 'textarea'
73
-
74
- if (isTextarea) {
75
- const { type, ...restProps } = rest as AntInputProps & { type?: string }
76
- return (
77
- <CxInputTextarea
78
- {...(restProps as unknown as TextAreaProps)}
79
- rootClassName={rootClassNameProp}
80
- className={className}
81
- style={style}
82
- />
83
- )
84
- }
85
-
86
- const useFloat =
87
- cxFloatingLabel != null &&
88
- cxFloatingLabel !== false &&
89
- String(cxFloatingLabel).trim() !== ''
90
-
91
- const hasValue = useMemo(
92
- () => hasCxFloatingValue(value, 'default'),
93
- [value],
94
- )
95
-
96
- const inputStyle: React.CSSProperties = {
97
- boxSizing: 'border-box',
98
- /* addon 时样式在 Input.Group 根上,圆角会破坏与 addon 的拼接,交给 antd */
99
- ...(!hasAddon ? { borderRadius: 8 } : {}),
100
- ...(useFloat
101
- ? { minHeight: 49 }
102
- : hasAddon
103
- ? { minHeight: height }
104
- : { height }),
105
- ...(style && typeof style === 'object' ? style : {}),
106
- }
107
-
108
- const isPassword = (rest as AntInputProps).type === 'password'
109
-
110
- if (isPassword) {
111
- const { type, ...restProps } = rest as AntInputProps & { type?: string }
112
- return (
113
- <Input.Password
114
- {...(restProps as any)}
115
- size={size}
116
- rootClassName={clsx('cx-input-root', rootClassNameProp)}
117
- disabled={disabled}
118
- value={value}
119
- className={clsx('cx-input', className)}
120
- style={inputStyle}
121
- styles={mergedStyles}
122
- placeholder={useFloat ? undefined : placeholder}
123
- onBlur={onBlur}
124
- onFocus={onFocus}
125
- />
126
- )
127
- }
128
-
129
- const inputEl = (
130
- addonBefore != null || addonAfter != null ? (
131
- <Space.Compact style={{ width: '100%' }}>
132
- {addonBefore}
133
- <Input
134
- {...(rest as AntInputProps)}
135
- size={size}
136
- rootClassName={clsx('cx-input-root', rootClassNameProp)}
137
- disabled={disabled}
138
- value={value}
139
- className={clsx('cx-input', className)}
140
- style={inputStyle}
141
- styles={mergedStyles}
142
- placeholder={useFloat ? undefined : placeholder}
143
- onBlur={onBlur}
144
- onFocus={onFocus}
145
- />
146
- {addonAfter}
147
- </Space.Compact>
148
- ) : (
149
- <Input
150
- {...(rest as AntInputProps)}
151
- size={size}
152
- rootClassName={clsx('cx-input-root', rootClassNameProp)}
153
- disabled={disabled}
154
- value={value}
155
- className={clsx('cx-input', className)}
156
- style={inputStyle}
157
- styles={mergedStyles}
158
- placeholder={useFloat ? undefined : placeholder}
159
- onBlur={onBlur}
160
- onFocus={onFocus}
161
- />
162
- )
163
- )
164
-
165
- if (!useFloat) {
166
- return inputEl
167
- }
168
-
169
- return (
170
- <CxFloatingShell
171
- disabled={disabled}
172
- focusPlaceholder={cxFocusPlaceholder ?? placeholder}
173
- hasValue={hasValue}
174
- label={cxFloatingLabel}
175
- variant={shellVariant}
176
- >
177
- {inputEl}
178
- </CxFloatingShell>
179
- )
180
- }
181
-
182
- /** Large:42px,高度偏表单主输入。 */
183
- export function CxInputLarge(props: CxInputTextProps): React.ReactElement
184
- export function CxInputLarge(props: CxInputProps) {
185
- return (
186
- <CxInputPrimitive
187
- {...(props as any)}
188
- style={{ ...(props as any)?.style, height: 42, minHeight: 42 }}
189
- />
190
- )
191
- }
192
-
193
- /** Medium:40px,高度偏搜索区输入。 */
194
- export function CxInputMedium(props: CxInputTextProps): React.ReactElement
195
- export function CxInputMedium(props: CxInputProps) {
196
- return (
197
- <CxInputPrimitive
198
- {...(props as any)}
199
- style={{ ...(props as any)?.style, height: 40, minHeight: 40 }}
200
- />
201
- )
202
- }
203
-
204
- /** Small:32px,更紧凑。 */
205
- export function CxInputSmall(props: CxInputTextProps): React.ReactElement
206
- export function CxInputSmall(props: CxInputProps) {
207
- return (
208
- <CxInputPrimitive
209
- {...(props as any)}
210
- style={{ ...(props as any)?.style, height: 32, minHeight: 32 }}
211
- />
212
- )
213
- }
214
-
215
- /** Float:第 4 种类型,浮动标签输入(使用 CxFloatingShell)。 */
216
- export function CxInputFloat(props: CxInputTextProps): React.ReactElement
217
- export function CxInputFloat(props: CxInputTextProps) {
218
- const hasLabel =
219
- (props as any)?.cxFloatingLabel != null &&
220
- (props as any)?.cxFloatingLabel !== false &&
221
- String((props as any)?.cxFloatingLabel).trim() !== ''
222
- return (
223
- <CxInputPrimitive
224
- {...(props as any)}
225
- cxFloatingLabel={
226
- hasLabel ? (props as any)?.cxFloatingLabel : (props as any)?.placeholder
227
- }
228
- />
229
- )
230
- }
231
-
232
- /** Textarea:第 5 种类型,独立文本域输入。 */
233
- export function CxInputTextarea(props: TextAreaProps & CxInputOwn) {
234
- const { style, className, rootClassName, ...rest } = props as any
235
- return (
236
- <Input.TextArea
237
- {...(rest as TextAreaProps)}
238
- rootClassName={clsx('cx-input-root', rootClassName)}
239
- className={clsx('cx-input', 'cx-input--textarea', className)}
240
- style={{
241
- boxSizing: 'border-box',
242
- borderRadius: 8,
243
- ...(style && typeof style === 'object' ? style : {}),
244
- }}
245
- />
246
- )
247
- }
248
-
249
- const ExportedCxInput = Object.assign(CxInputPrimitive, {
250
- Large: CxInputLarge,
251
- Medium: CxInputMedium,
252
- Small: CxInputSmall,
253
- Float: CxInputFloat,
254
- Textarea: CxInputTextarea,
255
- AutoComplete: CxInputAutoComplete,
256
- })
257
-
258
- export type { CxInputAutoCompleteProps } from './auto-complete'
259
- export default ExportedCxInput
@@ -1,66 +0,0 @@
1
- import React from 'react'
2
- import clsx from 'clsx'
3
- import { InputNumber } from 'antd'
4
-
5
- /**
6
- * 基础数字输入框:用于统一 cx-ui 样式与高度。
7
- * @param {import('antd').InputNumberProps & { height?: number, rootClassName?: string }} props
8
- */
9
- function CxInputNumberPrimitive({
10
- height,
11
- style = undefined,
12
- rootClassName,
13
- className,
14
- ...props
15
- }) {
16
- const resolvedHeight = height ?? 42
17
-
18
- return (
19
- <InputNumber
20
- {...props}
21
- rootClassName={clsx('cx-input-number-root', rootClassName)}
22
- className={['cx-input-number', className].filter(Boolean).join(' ')}
23
- style={{
24
- height: resolvedHeight,
25
- width: style?.width ?? props.style?.width ?? '100%',
26
- boxSizing: 'border-box',
27
- borderRadius: 8,
28
- ...(props.style || {}),
29
- ...(style || {}),
30
- }}
31
- />
32
- )
33
- }
34
-
35
- /**
36
- * cxForm 场景数字输入框:高度 42px。
37
- * @param {import('antd').InputNumberProps} props
38
- */
39
- export function CxInputNumberLarge(props) {
40
- return <CxInputNumberPrimitive {...props} height={42} />
41
- }
42
-
43
- /**
44
- * cxSearch 场景数字输入框:高度 40px。
45
- * @param {import('antd').InputNumberProps} props
46
- */
47
- export function CxInputNumberMedium(props) {
48
- return <CxInputNumberPrimitive {...props} height={40} />
49
- }
50
-
51
- /**
52
- * small 场景数字输入框:高度 32px。
53
- * @param {import('antd').InputNumberProps} props
54
- */
55
- export function CxInputNumberSmall(props) {
56
- return <CxInputNumberPrimitive {...props} height={32} />
57
- }
58
-
59
- const ExportedCxInputNumber = Object.assign(CxInputNumberPrimitive, {
60
- Large: CxInputNumberLarge,
61
- Medium: CxInputNumberMedium,
62
- Small: CxInputNumberSmall,
63
- })
64
-
65
- export default ExportedCxInputNumber
66
-