@_tc/template-core 0.0.1-bate.46 → 0.0.1-bate.47

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 (854) hide show
  1. package/.skills/tc-component-usage-skills/SKILL.md +132 -0
  2. package/.skills/tc-component-usage-skills/reference/component-api.md +801 -0
  3. package/.skills/tc-component-usage-skills/reference/examples.md +435 -0
  4. package/.skills/tc-component-usage-skills/reference/patterns.md +392 -0
  5. package/.skills/tc-component-usage-skills/reference/template-core-frontend.md +104 -0
  6. package/.skills/tc-generator/SKILL.md +70 -0
  7. package/.skills/tc-generator/reference/example.md +357 -0
  8. package/.skills/tc-generator/reference/model-schema.md +328 -0
  9. package/.skills/tc-generator/reference/project-template/app/controller/product.js +73 -0
  10. package/.skills/tc-generator/reference/project-template/app/router/product.js +9 -0
  11. package/.skills/tc-generator/reference/project-template/config/config.default.js +7 -0
  12. package/.skills/tc-generator/reference/project-template/index.js +17 -0
  13. package/.skills/tc-generator/reference/project-template/model/product/mode.js +179 -0
  14. package/.skills/tc-generator/reference/project-template/model/product/project/default.js +5 -0
  15. package/.skills/tc-generator/reference/project-template/package.json +25 -0
  16. package/.skills/tc-generator/reference/runtime-extensions.md +190 -0
  17. package/README.md +1610 -0
  18. package/cjs/_virtual/_rolldown/runtime.js +1 -37
  19. package/cjs/app/controller/base.js +1 -29
  20. package/cjs/app/controller/project.js +1 -60
  21. package/cjs/app/controller/view.js +1 -24
  22. package/cjs/app/extend/$fetch.js +1 -0
  23. package/cjs/app/extend/db.js +20 -8
  24. package/cjs/app/extend/generateErrorMessage.js +1 -16
  25. package/cjs/app/extend/logger.js +1 -35
  26. package/cjs/app/extend/parsingParamsOnUrl.js +1 -22
  27. package/cjs/app/extend/render-view.js +1 -24
  28. package/cjs/app/middleware/api-params-verify.js +1 -72
  29. package/cjs/app/middleware/api-sign-verify.js +1 -23
  30. package/cjs/app/middleware/error-handle.js +1 -38
  31. package/cjs/app/middleware/project-handler.js +1 -21
  32. package/cjs/app/middleware.js +1 -32
  33. package/cjs/app/router/project.js +1 -10
  34. package/cjs/app/router/view.js +1 -9
  35. package/cjs/app/router-schema/project.js +1 -16
  36. package/cjs/app/service/base.js +1 -17
  37. package/cjs/app/service/project.js +1 -38
  38. package/cjs/app/type.js +0 -1
  39. package/cjs/app/typings.js +0 -1
  40. package/cjs/app/view/entry.tpl +27 -28
  41. package/cjs/bundler/buildFB.js +1 -0
  42. package/cjs/bundler/defaultAlias.js +1 -5
  43. package/cjs/bundler/dev.js +1 -20
  44. package/cjs/bundler/index.js +1 -19
  45. package/cjs/bundler/prod.js +1 -21
  46. package/cjs/bundler/state.js +1 -0
  47. package/cjs/bundler/utils.js +1 -262
  48. package/cjs/config/config.default.js +1 -0
  49. package/cjs/index.js +1 -23
  50. package/cjs/packages/common/LRUCache.js +1 -4
  51. package/cjs/packages/common/array/index.js +1 -43
  52. package/cjs/packages/common/cache/LRUCache.js +1 -45
  53. package/cjs/packages/common/cache/index.js +1 -4
  54. package/cjs/packages/common/guards/index.js +1 -34
  55. package/cjs/packages/common/http/index.js +1 -0
  56. package/cjs/packages/common/i18n/default.js +1 -95
  57. package/cjs/packages/common/i18n/en-US.js +1 -95
  58. package/cjs/packages/common/i18n/index.js +1 -178
  59. package/cjs/packages/common/i18n/locales.js +1 -17
  60. package/cjs/packages/common/i18n/types.js +0 -1
  61. package/cjs/packages/common/index.js +1 -65
  62. package/cjs/packages/common/log/index.js +2 -160
  63. package/cjs/packages/common/number/index.js +1 -14
  64. package/cjs/packages/common/object/filterEmpty.js +1 -32
  65. package/cjs/packages/common/object/filtereEmpty.js +1 -5
  66. package/cjs/packages/common/object/index.js +1 -26
  67. package/cjs/packages/common/string/index.js +1 -17
  68. package/cjs/packages/common/types/index.js +0 -1
  69. package/cjs/packages/core/env.js +1 -27
  70. package/cjs/packages/core/index.js +1 -110
  71. package/cjs/packages/core/loader/config.js +1 -43
  72. package/cjs/packages/core/loader/controller.js +1 -33
  73. package/cjs/packages/core/loader/extend.js +1 -31
  74. package/cjs/packages/core/loader/middleware.js +1 -30
  75. package/cjs/packages/core/loader/model.js +1 -111
  76. package/cjs/packages/core/loader/router-schema.js +1 -36
  77. package/cjs/packages/core/loader/router.js +1 -62
  78. package/cjs/packages/core/loader/service.js +1 -30
  79. package/cjs/packages/core/paths.js +1 -12
  80. package/cjs/packages/core/types.js +0 -1
  81. package/cjs/packages/utils/getAllFilesInFolder.js +1 -14
  82. package/cjs/packages/utils/getAllFnReturnValue.js +0 -1
  83. package/cjs/packages/utils/index.js +1 -11
  84. package/cjs/packages/utils/loadFile.js +1 -55
  85. package/cjs/packages/utils/path.js +1 -31
  86. package/cjs/packages/utils/runFileFn.js +1 -51
  87. package/cjs/scripts/vite-build/build.js +3 -0
  88. package/cjs/scripts/vite-build/collect.js +1 -0
  89. package/cjs/scripts/vite-build/constants.js +1 -0
  90. package/cjs/scripts/vite-build/dts.js +1 -0
  91. package/cjs/scripts/vite-build/index.js +1 -0
  92. package/cjs/scripts/vite-build/normalize.js +1 -0
  93. package/cjs/scripts/vite-build/plugins.js +1 -0
  94. package/cjs/scripts/vite-build/resolve.js +1 -0
  95. package/cjs/scripts/vite-build/types.js +0 -0
  96. package/cjs/scripts/vite-build/utils.js +1 -0
  97. package/esm/_virtual/_rolldown/runtime.js +4 -29
  98. package/esm/app/controller/base.js +14 -16
  99. package/esm/app/controller/project.js +39 -46
  100. package/esm/app/controller/view.js +16 -14
  101. package/esm/app/extend/$fetch.js +15 -0
  102. package/esm/app/extend/db.js +138 -4
  103. package/esm/app/extend/generateErrorMessage.js +4 -12
  104. package/esm/app/extend/logger.js +9 -17
  105. package/esm/app/extend/parsingParamsOnUrl.js +11 -18
  106. package/esm/app/extend/render-view.js +18 -16
  107. package/esm/app/middleware/api-params-verify.js +36 -50
  108. package/esm/app/middleware/api-sign-verify.js +10 -16
  109. package/esm/app/middleware/error-handle.js +17 -30
  110. package/esm/app/middleware/project-handler.js +11 -16
  111. package/esm/app/middleware.js +12 -19
  112. package/esm/app/router/project.js +4 -6
  113. package/esm/app/router/view.js +4 -5
  114. package/esm/app/router-schema/project.js +2 -2
  115. package/esm/app/service/base.js +6 -7
  116. package/esm/app/service/project.js +18 -32
  117. package/esm/app/view/entry.tpl +27 -28
  118. package/esm/bundler/buildFB.js +54 -0
  119. package/esm/bundler/defaultAlias.js +2 -2
  120. package/esm/bundler/dev.js +8 -14
  121. package/esm/bundler/index.js +11 -9
  122. package/esm/bundler/prod.js +9 -14
  123. package/esm/bundler/state.js +10 -0
  124. package/esm/bundler/utils.js +115 -164
  125. package/esm/config/config.default.js +9 -0
  126. package/esm/index.js +12 -15
  127. package/esm/packages/common/LRUCache.js +2 -2
  128. package/esm/packages/common/array/index.js +21 -31
  129. package/esm/packages/common/cache/LRUCache.js +21 -25
  130. package/esm/packages/common/cache/index.js +2 -2
  131. package/esm/packages/common/guards/index.js +5 -23
  132. package/esm/packages/common/http/index.js +256 -0
  133. package/esm/packages/common/i18n/default.js +2 -7
  134. package/esm/packages/common/i18n/en-US.js +2 -7
  135. package/esm/packages/common/i18n/index.js +73 -144
  136. package/esm/packages/common/i18n/locales.js +6 -8
  137. package/esm/packages/common/index.js +14 -13
  138. package/esm/packages/common/log/index.js +69 -122
  139. package/esm/packages/common/number/index.js +7 -8
  140. package/esm/packages/common/object/filterEmpty.js +16 -22
  141. package/esm/packages/common/object/filtereEmpty.js +2 -2
  142. package/esm/packages/common/object/index.js +14 -17
  143. package/esm/packages/common/string/index.js +2 -11
  144. package/esm/packages/core/env.js +22 -24
  145. package/esm/packages/core/index.js +36 -92
  146. package/esm/packages/core/loader/config.js +21 -35
  147. package/esm/packages/core/loader/controller.js +8 -27
  148. package/esm/packages/core/loader/extend.js +19 -21
  149. package/esm/packages/core/loader/middleware.js +9 -22
  150. package/esm/packages/core/loader/model.js +50 -91
  151. package/esm/packages/core/loader/router-schema.js +13 -29
  152. package/esm/packages/core/loader/router.js +27 -51
  153. package/esm/packages/core/loader/service.js +8 -24
  154. package/esm/packages/core/paths.js +5 -5
  155. package/esm/packages/utils/getAllFilesInFolder.js +6 -8
  156. package/esm/packages/utils/index.js +5 -5
  157. package/esm/packages/utils/loadFile.js +28 -43
  158. package/esm/packages/utils/path.js +10 -22
  159. package/esm/packages/utils/runFileFn.js +32 -37
  160. package/esm/scripts/vite-build/build.js +141 -0
  161. package/esm/scripts/vite-build/collect.js +79 -0
  162. package/esm/scripts/vite-build/constants.js +34 -0
  163. package/esm/scripts/vite-build/dts.js +132 -0
  164. package/esm/scripts/vite-build/index.js +3 -0
  165. package/esm/scripts/vite-build/normalize.js +78 -0
  166. package/esm/scripts/vite-build/plugins.js +106 -0
  167. package/esm/scripts/vite-build/resolve.js +46 -0
  168. package/esm/scripts/vite-build/types.js +0 -0
  169. package/esm/scripts/vite-build/utils.js +24 -0
  170. package/fe/bundler/defaultAlias.js +4 -0
  171. package/fe/frontend/apps/dash/Dashboard.d.ts +6 -0
  172. package/fe/frontend/apps/dash/Dashboard.js +164 -0
  173. package/fe/frontend/apps/dash/dash.entry.js +54 -0
  174. package/fe/frontend/apps/dash/types.d.ts +25 -0
  175. package/fe/frontend/apps/dash/types.js +0 -0
  176. package/fe/frontend/apps/ui-components/index.js +16 -0
  177. package/fe/frontend/apps/ui-components/ui-components.entry.d.ts +2 -0
  178. package/fe/frontend/apps/ui-components/ui-components.entry.js +8 -0
  179. package/fe/frontend/extended/SchemaForm/data.d.ts +1 -1
  180. package/fe/frontend/extended/SchemaForm/data.js +7 -7
  181. package/fe/frontend/{widgets → src}/api/baseInfo.d.ts +2 -2
  182. package/fe/frontend/src/api/baseInfo.js +14 -0
  183. package/fe/frontend/src/common/CRUD/CRUD.d.ts +3 -0
  184. package/fe/frontend/src/common/CRUD/CRUD.js +2 -0
  185. package/fe/frontend/src/common/CRUD/index.d.ts +2 -0
  186. package/fe/frontend/src/common/CRUD/index.js +2 -0
  187. package/fe/frontend/src/common/auth/index.js +21 -0
  188. package/fe/frontend/{widgets/defaultPages/Schema/utils → src/common}/fetchErrorShow.d.ts +1 -1
  189. package/fe/frontend/src/common/fetchErrorShow.js +11 -0
  190. package/fe/frontend/src/common/generateMenuData.d.ts +4 -0
  191. package/fe/frontend/src/common/generateMenuData.js +16 -0
  192. package/fe/frontend/{widgets → src}/common/importComponent.d.ts +1 -1
  193. package/fe/frontend/src/common/importComponent.js +23 -0
  194. package/fe/frontend/src/common/language.d.ts +3 -0
  195. package/fe/frontend/src/common/language.js +12 -0
  196. package/fe/frontend/{widgets → src}/common/logFn/index.d.ts +1 -0
  197. package/fe/frontend/src/common/logFn/index.js +14 -0
  198. package/fe/frontend/{widgets → src}/common/menu.d.ts +1 -1
  199. package/fe/frontend/src/common/menu.js +97 -0
  200. package/fe/frontend/src/common/request.d.ts +37 -0
  201. package/fe/frontend/src/common/request.js +183 -0
  202. package/fe/frontend/{components → src/components}/AsyncSelect/AsyncSelect.d.ts +3 -3
  203. package/fe/frontend/src/components/AsyncSelect/AsyncSelect.js +35 -0
  204. package/fe/frontend/src/components/AsyncSelect/index.d.ts +4 -0
  205. package/fe/frontend/src/components/AsyncSelect/index.js +5 -0
  206. package/fe/frontend/{widgets → src}/components/BasePage/HeaderView.d.ts +1 -0
  207. package/fe/frontend/src/components/BasePage/HeaderView.js +55 -0
  208. package/fe/frontend/src/components/LanguageSwitch/LanguageSwitch.d.ts +14 -0
  209. package/fe/frontend/src/components/LanguageSwitch/LanguageSwitch.js +44 -0
  210. package/fe/frontend/src/components/LanguageSwitch/index.d.ts +4 -0
  211. package/fe/frontend/src/components/LanguageSwitch/index.js +5 -0
  212. package/fe/frontend/{widgets → src}/components/Router/index.d.ts +2 -2
  213. package/fe/frontend/src/components/Router/index.js +21 -0
  214. package/fe/frontend/src/components/Router/type.js +0 -0
  215. package/fe/frontend/src/components/ThemeSwitch/ThemeSwitch.d.ts +15 -0
  216. package/fe/frontend/src/components/ThemeSwitch/ThemeSwitch.js +83 -0
  217. package/fe/frontend/src/components/ThemeSwitch/index.d.ts +4 -0
  218. package/fe/frontend/src/components/ThemeSwitch/index.js +5 -0
  219. package/fe/frontend/src/components/index.d.ts +11 -0
  220. package/fe/frontend/src/components/index.js +7 -0
  221. package/fe/frontend/src/defaultPages/Iframe/index.js +15 -0
  222. package/fe/frontend/src/defaultPages/NotFoundPage/index.d.ts +3 -0
  223. package/fe/frontend/src/defaultPages/NotFoundPage/index.js +28 -0
  224. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/components/CallCom/DetailPanel.d.ts +1 -1
  225. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/DetailPanel.js +102 -0
  226. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/components/CallCom/PopFrom.d.ts +1 -1
  227. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/PopFrom.js +119 -0
  228. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.d.ts +44 -0
  229. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/builtIn.js +10 -0
  230. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/data.d.ts +4 -0
  231. package/fe/frontend/src/defaultPages/SchemaPage/components/CallCom/data.js +9 -0
  232. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaSearch/index.js +62 -0
  233. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/components/SchemaTable/index.d.ts +2 -2
  234. package/fe/frontend/src/defaultPages/SchemaPage/components/SchemaTable/index.js +200 -0
  235. package/fe/frontend/src/defaultPages/SchemaPage/data/eventInfo.js +9 -0
  236. package/fe/frontend/src/defaultPages/SchemaPage/data/index.js +4 -0
  237. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/hooks/useComConfig.d.ts +1 -1
  238. package/fe/frontend/src/defaultPages/SchemaPage/hooks/useComConfig.js +17 -0
  239. package/fe/frontend/src/defaultPages/SchemaPage/index.css +112 -0
  240. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/index.d.ts +1 -0
  241. package/fe/frontend/src/defaultPages/SchemaPage/index.js +90 -0
  242. package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/schemaType.d.ts +7 -6
  243. package/fe/frontend/src/defaultPages/SchemaPage/schemaType.js +7 -0
  244. package/fe/frontend/src/defaultPages/SchemaPage/utils/permissions.js +6 -0
  245. package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.d.ts +3 -0
  246. package/fe/frontend/src/defaultPages/SchemaPage/utils/schemaConversion.js +66 -0
  247. package/fe/frontend/src/defaultPages/SchemaPage/utils/validator.d.ts +11 -0
  248. package/fe/frontend/src/defaultPages/SchemaPage/utils/validator.js +122 -0
  249. package/fe/frontend/{widgets → src}/defaultPages/SidebarSlotPage/SidebarSlotContainer.d.ts +2 -2
  250. package/fe/frontend/src/defaultPages/SidebarSlotPage/SidebarSlotContainer.js +55 -0
  251. package/fe/frontend/src/defaultPages/SidebarSlotPage/index.js +21 -0
  252. package/fe/frontend/src/defaultPages/SidebarSlotPageTmp.js +21 -0
  253. package/fe/frontend/src/defaultPages/SlotPage/index.js +22 -0
  254. package/fe/frontend/src/exportStore.d.ts +17 -0
  255. package/fe/frontend/src/exportStore.js +5 -0
  256. package/fe/frontend/src/hooks/useCurrentMenuData.js +30 -0
  257. package/fe/frontend/src/hooks/useRouterParams.js +16 -0
  258. package/fe/frontend/src/index.d.ts +21 -0
  259. package/fe/frontend/src/index.js +19 -0
  260. package/fe/frontend/src/language/en-US.d.ts +89 -0
  261. package/fe/frontend/src/language/en-US.js +89 -0
  262. package/fe/frontend/src/language/index.d.ts +73 -0
  263. package/fe/frontend/src/language/index.js +79 -0
  264. package/fe/frontend/src/language/zh-CN.d.ts +89 -0
  265. package/fe/frontend/src/language/zh-CN.js +89 -0
  266. package/fe/frontend/src/main.css +96 -0
  267. package/fe/frontend/src/main.d.ts +27 -0
  268. package/fe/frontend/src/main.js +60 -0
  269. package/fe/frontend/src/stores/apiFreezer.d.ts +93 -0
  270. package/fe/frontend/src/stores/apiFreezer.js +53 -0
  271. package/fe/frontend/{widgets/store → src/stores}/mode.d.ts +3 -3
  272. package/fe/frontend/src/stores/mode.js +36 -0
  273. package/fe/frontend/{widgets/defaultPages/Schema → src}/stores/schemaEventBus.d.ts +1 -1
  274. package/fe/frontend/src/stores/schemaEventBus.js +53 -0
  275. package/fe/frontend/{widgets/defaultPages/Schema → src}/stores/schemaStore.d.ts +5 -5
  276. package/fe/frontend/src/stores/schemaStore.js +28 -0
  277. package/fe/frontend/{typing → src/typing}/scalability.d.ts +3 -3
  278. package/fe/frontend/src/typing/scalability.js +0 -0
  279. package/fe/frontend/src/typing/window.d.ts +9 -0
  280. package/fe/frontend/src/typing/window.js +0 -0
  281. package/fe/model/types/data/button.d.ts +4 -4
  282. package/fe/model/types/data/component.d.ts +32 -47
  283. package/fe/model/types/data/schema.d.ts +6 -6
  284. package/fe/model/types/data/search.d.ts +1 -1
  285. package/fe/model/types/model.d.ts +19 -12
  286. package/fe/packages/common/cache/LRUCache.js +43 -47
  287. package/fe/packages/common/guards/index.js +8 -24
  288. package/fe/packages/common/http/index.d.ts +90 -0
  289. package/fe/packages/common/http/index.js +300 -0
  290. package/fe/packages/common/i18n/default.js +91 -88
  291. package/fe/packages/common/i18n/en-US.js +91 -88
  292. package/fe/packages/common/i18n/index.d.ts +3 -3
  293. package/fe/packages/common/i18n/index.js +142 -153
  294. package/fe/packages/common/i18n/locales.d.ts +3 -3
  295. package/fe/packages/common/i18n/locales.js +10 -9
  296. package/fe/packages/common/index.d.ts +1 -0
  297. package/fe/packages/common/object/filterEmpty.js +25 -30
  298. package/fe/packages/react/hooks/useBreadcrumb.d.ts +10 -0
  299. package/fe/packages/react/hooks/useBreadcrumb.js +5 -0
  300. package/fe/packages/react/hooks/useExecuteOnce.js +47 -0
  301. package/fe/packages/react/hooks/useInit.js +11 -0
  302. package/fe/packages/react/hooks/useLanguage.d.ts +2 -0
  303. package/fe/packages/react/hooks/useLanguage.js +8 -0
  304. package/fe/packages/react/hooks/usePagination.js +30 -0
  305. package/fe/packages/{ui/react → react}/hooks/useRefState.d.ts +1 -1
  306. package/fe/packages/react/hooks/useRefState.js +35 -0
  307. package/fe/packages/react/hooks/useWatch.js +60 -0
  308. package/fe/packages/react/hooks/useWatch.test.js +24 -0
  309. package/fe/packages/react/ui/assets/table/no-result.js +4 -0
  310. package/fe/packages/{ui/react → react/ui}/components/Button/Button.d.ts +1 -1
  311. package/fe/packages/react/ui/components/Button/Button.js +88 -0
  312. package/fe/packages/react/ui/components/Button/SubmitButton.d.ts +13 -0
  313. package/fe/packages/react/ui/components/Button/SubmitButton.js +30 -0
  314. package/fe/packages/react/ui/components/Button/index.d.ts +4 -0
  315. package/fe/packages/react/ui/components/Button/index.js +3 -0
  316. package/fe/packages/react/ui/components/Card/Card.d.ts +15 -0
  317. package/fe/packages/react/ui/components/Card/Card.js +31 -0
  318. package/fe/packages/react/ui/components/Card/index.d.ts +2 -0
  319. package/fe/packages/react/ui/components/Card/index.js +2 -0
  320. package/fe/packages/{ui/react → react/ui}/components/Checkbox/Checkbox.d.ts +1 -1
  321. package/fe/packages/react/ui/components/Checkbox/Checkbox.js +52 -0
  322. package/fe/packages/react/ui/components/Checkbox/index.d.ts +2 -0
  323. package/fe/packages/react/ui/components/Checkbox/index.js +2 -0
  324. package/fe/packages/react/ui/components/ConfirmDialog/ConfirmDialog.js +41 -0
  325. package/fe/packages/react/ui/components/ConfirmDialog/index.d.ts +2 -0
  326. package/fe/packages/react/ui/components/ConfirmDialog/index.js +2 -0
  327. package/fe/packages/{ui/react → react/ui}/components/DataTable/ActionBtn.d.ts +1 -1
  328. package/fe/packages/react/ui/components/DataTable/ActionBtn.js +116 -0
  329. package/fe/packages/{ui/react → react/ui}/components/DataTable/index.d.ts +9 -7
  330. package/fe/packages/react/ui/components/DataTable/index.js +235 -0
  331. package/fe/packages/{ui/react → react/ui}/components/Date/Calendar.d.ts +2 -2
  332. package/fe/packages/react/ui/components/Date/Calendar.js +351 -0
  333. package/fe/packages/react/ui/components/Date/Date.js +210 -0
  334. package/fe/packages/react/ui/components/Date/DateTestPage.js +340 -0
  335. package/fe/packages/react/ui/components/Date/LocaleContext.js +11 -0
  336. package/fe/packages/{ui/react → react/ui}/components/Date/LocaleProvider.d.ts +2 -2
  337. package/fe/packages/react/ui/components/Date/LocaleProvider.js +31 -0
  338. package/fe/packages/react/ui/components/Date/TimePicker.js +136 -0
  339. package/fe/packages/react/ui/components/Date/data.js +7 -0
  340. package/fe/packages/{ui/react → react/ui}/components/Date/dateLocaleStore.d.ts +1 -1
  341. package/fe/packages/react/ui/components/Date/dateLocaleStore.js +14 -0
  342. package/fe/packages/react/ui/components/Date/dropdownPositioning.d.ts +3 -0
  343. package/fe/packages/react/ui/components/Date/dropdownPositioning.js +12 -0
  344. package/fe/packages/react/ui/components/Date/index.d.ts +6 -0
  345. package/fe/packages/react/ui/components/Date/index.js +6 -0
  346. package/fe/packages/react/ui/components/Date/locales.js +25 -0
  347. package/fe/packages/{ui/react → react/ui}/components/Drawer/Drawer.d.ts +1 -1
  348. package/fe/packages/react/ui/components/Drawer/Drawer.js +151 -0
  349. package/fe/packages/react/ui/components/Drawer/index.d.ts +3 -0
  350. package/fe/packages/react/ui/components/Drawer/index.js +2 -0
  351. package/fe/packages/{ui/react → react/ui}/components/Dropdown/Dropdown.d.ts +3 -2
  352. package/fe/packages/react/ui/components/Dropdown/Dropdown.js +105 -0
  353. package/fe/packages/react/ui/components/Dropdown/index.d.ts +2 -0
  354. package/fe/packages/react/ui/components/Dropdown/index.js +2 -0
  355. package/fe/packages/{ui/react → react/ui}/components/Form/Form.d.ts +2 -2
  356. package/fe/packages/react/ui/components/Form/Form.js +15 -0
  357. package/fe/packages/{ui/react → react/ui}/components/Form/FormItem.d.ts +3 -3
  358. package/fe/packages/react/ui/components/Form/FormItem.js +60 -0
  359. package/fe/packages/{ui/react → react/ui}/components/Form/SchemaForm/data.d.ts +8 -8
  360. package/fe/packages/react/ui/components/Form/SchemaForm/data.js +16 -0
  361. package/fe/packages/react/ui/components/Form/SchemaForm/defaultComponentsMap.d.ts +4 -0
  362. package/fe/packages/react/ui/components/Form/SchemaForm/defaultComponentsMap.js +4 -0
  363. package/fe/packages/{ui/react → react/ui}/components/Form/SchemaForm/index.d.ts +9 -9
  364. package/fe/packages/react/ui/components/Form/SchemaForm/index.js +119 -0
  365. package/fe/packages/react/ui/components/Form/index.d.ts +5 -0
  366. package/fe/packages/react/ui/components/Form/index.js +5 -0
  367. package/fe/packages/react/ui/components/Form/useForm.d.ts +3 -0
  368. package/fe/packages/react/ui/components/Form/useForm.js +2 -0
  369. package/fe/packages/react/ui/components/ImagePreview/ImagePreview.js +307 -0
  370. package/fe/packages/{ui/react → react/ui}/components/ImagePreview/PreviewImage.d.ts +2 -2
  371. package/fe/packages/react/ui/components/ImagePreview/PreviewImage.js +56 -0
  372. package/fe/packages/react/ui/components/ImagePreview/index.d.ts +3 -0
  373. package/fe/packages/react/ui/components/ImagePreview/index.js +3 -0
  374. package/fe/packages/{ui/react → react/ui}/components/Input/Input.d.ts +1 -1
  375. package/fe/packages/react/ui/components/Input/Input.js +88 -0
  376. package/fe/packages/react/ui/components/Input/index.d.ts +2 -0
  377. package/fe/packages/react/ui/components/Input/index.js +2 -0
  378. package/fe/packages/{ui/react → react/ui}/components/InputNumber/InputNumber.d.ts +2 -2
  379. package/fe/packages/react/ui/components/InputNumber/InputNumber.js +207 -0
  380. package/fe/packages/react/ui/components/InputNumber/index.d.ts +2 -0
  381. package/fe/packages/react/ui/components/InputNumber/index.js +2 -0
  382. package/fe/packages/react/ui/components/InputNumber/inputNumberUtils.js +45 -0
  383. package/fe/packages/react/ui/components/InputNumber/inputNumberUtils.test.js +59 -0
  384. package/fe/packages/{ui/react → react/ui}/components/Label/Label.d.ts +1 -1
  385. package/fe/packages/react/ui/components/Label/Label.js +58 -0
  386. package/fe/packages/react/ui/components/Label/index.d.ts +3 -0
  387. package/fe/packages/react/ui/components/Label/index.js +2 -0
  388. package/fe/packages/react/ui/components/Layout/Layout.d.ts +11 -0
  389. package/fe/packages/react/ui/components/Layout/Layout.js +33 -0
  390. package/fe/packages/react/ui/components/Layout/index.d.ts +2 -0
  391. package/fe/packages/react/ui/components/Layout/index.js +2 -0
  392. package/fe/packages/react/ui/components/Loading/Loading.d.ts +25 -0
  393. package/fe/packages/react/ui/components/Loading/Loading.js +48 -0
  394. package/fe/packages/react/ui/components/Loading/index.d.ts +2 -0
  395. package/fe/packages/react/ui/components/Loading/index.js +2 -0
  396. package/fe/packages/react/ui/components/Menu/Menu.js +147 -0
  397. package/fe/packages/react/ui/components/Menu/MenuContext.js +88 -0
  398. package/fe/packages/react/ui/components/Menu/MenuItem.js +78 -0
  399. package/fe/packages/react/ui/components/Menu/SubMenu.js +207 -0
  400. package/fe/packages/react/ui/components/Menu/index.d.ts +9 -0
  401. package/fe/packages/react/ui/components/Menu/index.js +5 -0
  402. package/fe/packages/{ui/react → react/ui}/components/Menu/menuTypes.d.ts +1 -1
  403. package/fe/packages/react/ui/components/Menu/menuTypes.js +0 -0
  404. package/fe/packages/react/ui/components/Menu/utils.js +8 -0
  405. package/fe/packages/{ui/react → react/ui}/components/Message/Message.d.ts +1 -1
  406. package/fe/packages/react/ui/components/Message/Message.js +76 -0
  407. package/fe/packages/{ui/react → react/ui}/components/Message/MessageManager.d.ts +2 -2
  408. package/fe/packages/react/ui/components/Message/MessageManager.js +104 -0
  409. package/fe/packages/react/ui/components/Message/data.js +4 -0
  410. package/fe/packages/react/ui/components/Message/index.d.ts +3 -0
  411. package/fe/packages/react/ui/components/Message/index.js +2 -0
  412. package/fe/packages/{ui/react → react/ui}/components/Modal/Modal.d.ts +1 -1
  413. package/fe/packages/react/ui/components/Modal/Modal.js +59 -0
  414. package/fe/packages/{ui/react → react/ui}/components/Modal/ModalManager.d.ts +5 -5
  415. package/fe/packages/react/ui/components/Modal/ModalManager.js +106 -0
  416. package/fe/packages/react/ui/components/Modal/index.d.ts +4 -0
  417. package/fe/packages/react/ui/components/Modal/index.js +3 -0
  418. package/fe/packages/react/ui/components/Notification/Notification.d.ts +14 -0
  419. package/fe/packages/react/ui/components/Notification/Notification.js +56 -0
  420. package/fe/packages/react/ui/components/Notification/index.d.ts +2 -0
  421. package/fe/packages/react/ui/components/Notification/index.js +2 -0
  422. package/fe/packages/{ui/react → react/ui}/components/Overlay/Overlay.d.ts +1 -1
  423. package/fe/packages/react/ui/components/Overlay/Overlay.js +61 -0
  424. package/fe/packages/react/ui/components/Overlay/index.d.ts +3 -0
  425. package/fe/packages/react/ui/components/Overlay/index.js +2 -0
  426. package/fe/packages/react/ui/components/Pagination/Pagination.js +115 -0
  427. package/fe/packages/react/ui/components/Pagination/index.d.ts +2 -0
  428. package/fe/packages/react/ui/components/Pagination/index.js +2 -0
  429. package/fe/packages/react/ui/components/Popup/Popup.js +86 -0
  430. package/fe/packages/react/ui/components/Popup/index.d.ts +2 -0
  431. package/fe/packages/react/ui/components/Popup/index.js +2 -0
  432. package/fe/packages/react/ui/components/Radio/Radio.d.ts +9 -0
  433. package/fe/packages/react/ui/components/Radio/Radio.js +36 -0
  434. package/fe/packages/react/ui/components/Radio/RadioGroup.d.ts +19 -0
  435. package/fe/packages/react/ui/components/Radio/RadioGroup.js +33 -0
  436. package/fe/packages/react/ui/components/Radio/index.d.ts +3 -0
  437. package/fe/packages/react/ui/components/Radio/index.js +3 -0
  438. package/fe/packages/{ui/react → react/ui}/components/Search/Search.d.ts +4 -4
  439. package/fe/packages/react/ui/components/Search/Search.js +24 -0
  440. package/fe/packages/react/ui/components/Search/index.d.ts +2 -0
  441. package/fe/packages/react/ui/components/Search/index.js +2 -0
  442. package/fe/packages/{ui/react → react/ui}/components/Select/Select.d.ts +1 -1
  443. package/fe/packages/react/ui/components/Select/Select.js +276 -0
  444. package/fe/packages/react/ui/components/Select/dropdownPositioning.d.ts +3 -0
  445. package/fe/packages/react/ui/components/Select/dropdownPositioning.js +16 -0
  446. package/fe/packages/react/ui/components/Select/index.d.ts +2 -0
  447. package/fe/packages/react/ui/components/Select/index.js +2 -0
  448. package/fe/packages/{ui/react → react/ui}/components/Skeleton/Skeleton.d.ts +1 -1
  449. package/fe/packages/react/ui/components/Skeleton/Skeleton.js +101 -0
  450. package/fe/packages/react/ui/components/Skeleton/index.d.ts +3 -0
  451. package/fe/packages/react/ui/components/Skeleton/index.js +2 -0
  452. package/fe/packages/{ui/react → react/ui}/components/Switch/Switch.d.ts +1 -1
  453. package/fe/packages/react/ui/components/Switch/Switch.js +28 -0
  454. package/fe/packages/react/ui/components/Switch/index.d.ts +2 -0
  455. package/fe/packages/react/ui/components/Switch/index.js +2 -0
  456. package/fe/packages/{ui/react → react/ui}/components/TableSearch/TableSearch.d.ts +6 -6
  457. package/fe/packages/react/ui/components/TableSearch/TableSearch.js +146 -0
  458. package/fe/packages/react/ui/components/TableSearch/index.d.ts +3 -0
  459. package/fe/packages/react/ui/components/TableSearch/index.js +2 -0
  460. package/fe/packages/react/ui/components/TableSearch/lang.js +14 -0
  461. package/fe/packages/{ui/react → react/ui}/components/TableSearch/tableSearchLocaleStore.d.ts +1 -1
  462. package/fe/packages/react/ui/components/TableSearch/tableSearchLocaleStore.js +10 -0
  463. package/fe/packages/react/ui/components/Tabs/Tabs.d.ts +16 -0
  464. package/fe/packages/react/ui/components/Tabs/Tabs.js +33 -0
  465. package/fe/packages/react/ui/components/Tabs/index.d.ts +2 -0
  466. package/fe/packages/react/ui/components/Tabs/index.js +2 -0
  467. package/fe/packages/react/ui/components/Textarea/Textarea.js +58 -0
  468. package/fe/packages/react/ui/components/Textarea/index.d.ts +2 -0
  469. package/fe/packages/react/ui/components/Textarea/index.js +2 -0
  470. package/fe/packages/react/ui/components/Tooltip/Tooltip.js +77 -0
  471. package/fe/packages/react/ui/components/Tooltip/index.d.ts +2 -0
  472. package/fe/packages/react/ui/components/Tooltip/index.js +2 -0
  473. package/fe/packages/react/ui/components/TreeSelect/TreeSelect.js +190 -0
  474. package/fe/packages/react/ui/components/TreeSelect/index.d.ts +2 -0
  475. package/fe/packages/react/ui/components/TreeSelect/index.js +2 -0
  476. package/fe/packages/react/ui/components/Upload/ImageUpload.js +101 -0
  477. package/fe/packages/{ui/react → react/ui}/components/Upload/Upload.d.ts +1 -1
  478. package/fe/packages/react/ui/components/Upload/Upload.js +29 -0
  479. package/fe/packages/react/ui/components/Upload/index.d.ts +3 -0
  480. package/fe/packages/react/ui/components/Upload/index.js +3 -0
  481. package/fe/packages/react/ui/components/breadcrumb/breadcrumb.js +155 -0
  482. package/fe/packages/react/ui/components/breadcrumb/index.d.ts +2 -0
  483. package/fe/packages/react/ui/components/breadcrumb/index.js +2 -0
  484. package/fe/packages/react/ui/components/hooks/useDropdownPositioning.js +121 -0
  485. package/fe/packages/react/ui/components/hooks/useInputController.js +39 -0
  486. package/fe/packages/react/ui/components/index.d.ts +36 -0
  487. package/fe/packages/react/ui/components/index.js +81 -0
  488. package/fe/packages/react/ui/components/table/index.d.ts +2 -0
  489. package/fe/packages/react/ui/components/table/index.js +2 -0
  490. package/fe/packages/{ui/react → react/ui}/components/table/table.d.ts +16 -3
  491. package/fe/packages/react/ui/components/table/table.js +166 -0
  492. package/fe/packages/react/ui/components/testPage/MenuTestPage.js +397 -0
  493. package/fe/packages/react/ui/components/testPage/index.js +1612 -0
  494. package/fe/packages/{ui/react → react/ui}/i18n/I18nProvider.d.ts +2 -2
  495. package/fe/packages/react/ui/i18n/I18nProvider.js +38 -0
  496. package/fe/packages/react/ui/i18n/index.d.ts +4 -0
  497. package/fe/packages/react/ui/i18n/index.js +7 -0
  498. package/fe/packages/react/ui/i18n/useI18n.d.ts +13 -0
  499. package/fe/packages/react/ui/i18n/useI18n.js +25 -0
  500. package/fe/packages/{ui/react → react/ui}/index.css +70 -9
  501. package/fe/packages/react/ui/index.d.ts +5 -0
  502. package/fe/packages/react/ui/index.js +58 -0
  503. package/fe/packages/{ui/react → react/ui}/lib/createStoreHook.d.ts +1 -1
  504. package/fe/packages/react/ui/lib/createStoreHook.js +9 -0
  505. package/fe/packages/{ui/react → react/ui}/lib/export.d.ts +1 -1
  506. package/fe/packages/react/ui/lib/export.js +112 -0
  507. package/fe/packages/react/ui/lib/utils.js +64 -0
  508. package/fe/packages/{ui/react → react/ui}/stores/breadcrumb.d.ts +1 -1
  509. package/fe/packages/react/ui/stores/breadcrumb.js +52 -0
  510. package/fe/packages/react/ui/stores/language.d.ts +4 -0
  511. package/fe/packages/react/ui/stores/language.js +4 -0
  512. package/fe/packages/react/ui/types/index.js +0 -0
  513. package/fe/typings/type.d.ts +1 -0
  514. package/model/index.d.ts +1 -1
  515. package/model/types/data/button.d.ts +4 -4
  516. package/model/types/data/component.d.ts +32 -47
  517. package/model/types/data/schema.d.ts +6 -6
  518. package/model/types/data/search.d.ts +1 -1
  519. package/model/types/index.d.ts +2 -1
  520. package/model/types/model.d.ts +19 -12
  521. package/package.json +37 -39
  522. package/types/app/controller/project.d.ts +14 -2
  523. package/types/app/controller/view.d.ts +1 -1
  524. package/types/app/extend/$fetch.d.ts +8 -0
  525. package/types/app/extend/db.d.ts +54 -1
  526. package/types/app/extend/render-view.d.ts +3 -0
  527. package/types/app/middleware/api-params-verify.d.ts +1 -1
  528. package/types/app/service/base.d.ts +3 -4
  529. package/types/app/service/project.d.ts +7 -2
  530. package/types/app/type.d.ts +5 -3
  531. package/types/app/typings.d.ts +4 -2
  532. package/types/bundler/buildFB.d.ts +13 -0
  533. package/types/bundler/index.d.ts +4 -1
  534. package/types/bundler/state.d.ts +18 -0
  535. package/types/bundler/utils.d.ts +5 -0
  536. package/types/config/config.default.d.ts +33 -2
  537. package/types/index.d.ts +6 -5
  538. package/{fe/frontend/widgets/common/CRUD/CRUD.d.ts → types/packages/common/http/index.d.ts} +29 -10
  539. package/types/packages/common/i18n/default.d.ts +5 -0
  540. package/types/packages/common/i18n/en-US.d.ts +5 -0
  541. package/types/packages/common/i18n/index.d.ts +24 -0
  542. package/types/packages/common/i18n/types.d.ts +24 -0
  543. package/types/packages/common/index.d.ts +1 -0
  544. package/types/packages/core/index.d.ts +3 -3
  545. package/types/packages/core/loader/config.d.ts +6 -0
  546. package/types/packages/core/loader/controller.d.ts +14 -0
  547. package/types/packages/core/loader/extend.d.ts +6 -1
  548. package/types/packages/core/loader/middleware.d.ts +8 -0
  549. package/types/packages/core/loader/model.d.ts +22 -0
  550. package/types/packages/core/loader/router-schema.d.ts +15 -0
  551. package/types/packages/core/loader/router.d.ts +5 -0
  552. package/types/packages/core/loader/service.d.ts +14 -0
  553. package/types/packages/core/paths.d.ts +10 -7
  554. package/types/packages/core/types.d.ts +59 -3
  555. package/types/packages/utils/getAllFilesInFolder.d.ts +5 -0
  556. package/types/packages/utils/loadFile.d.ts +6 -0
  557. package/types/packages/utils/path.d.ts +18 -0
  558. package/types/scripts/vite-build/build.d.ts +24 -0
  559. package/types/scripts/vite-build/collect.d.ts +57 -0
  560. package/types/scripts/vite-build/constants.d.ts +6 -0
  561. package/types/scripts/vite-build/dts.d.ts +53 -0
  562. package/types/scripts/vite-build/index.d.ts +2 -0
  563. package/types/scripts/vite-build/normalize.d.ts +66 -0
  564. package/types/scripts/vite-build/plugins.d.ts +67 -0
  565. package/types/scripts/vite-build/resolve.d.ts +61 -0
  566. package/types/scripts/vite-build/types.d.ts +174 -0
  567. package/types/scripts/vite-build/utils.d.ts +35 -0
  568. package/types/typings/type.d.ts +1 -0
  569. package/cjs/app/README.md +0 -286
  570. package/cjs/app/data/signKey.js +0 -23
  571. package/esm/app/README.md +0 -286
  572. package/esm/app/data/signKey.js +0 -10
  573. package/fe/frontend/components/AsyncSelect/AsyncSelect.js +0 -32
  574. package/fe/frontend/components/AsyncSelect/index.d.ts +0 -4
  575. package/fe/frontend/components/AsyncSelect/index.js +0 -3
  576. package/fe/frontend/dash/Dashboard.d.ts +0 -7
  577. package/fe/frontend/dash/Dashboard.js +0 -73
  578. package/fe/frontend/dash/dash.entry.js +0 -93
  579. package/fe/frontend/dash/types.d.ts +0 -17
  580. package/fe/frontend/dash/types.js +0 -1
  581. package/fe/frontend/index.d.ts +0 -5
  582. package/fe/frontend/index.js +0 -2
  583. package/fe/frontend/main.css +0 -5
  584. package/fe/frontend/main.d.ts +0 -11
  585. package/fe/frontend/main.js +0 -19
  586. package/fe/frontend/testPage/index.js +0 -6
  587. package/fe/frontend/testPage/testPage.entry.d.ts +0 -2
  588. package/fe/frontend/testPage/testPage.entry.js +0 -3
  589. package/fe/frontend/typing/scalability.js +0 -1
  590. package/fe/frontend/typing/window.d.ts +0 -7
  591. package/fe/frontend/typing/window.js +0 -1
  592. package/fe/frontend/widgets/api/baseInfo.js +0 -15
  593. package/fe/frontend/widgets/common/CRUD/CRUD.js +0 -208
  594. package/fe/frontend/widgets/common/CRUD/index.d.ts +0 -2
  595. package/fe/frontend/widgets/common/CRUD/index.js +0 -1
  596. package/fe/frontend/widgets/common/auth/index.js +0 -20
  597. package/fe/frontend/widgets/common/generateMenuData.d.ts +0 -4
  598. package/fe/frontend/widgets/common/generateMenuData.js +0 -14
  599. package/fe/frontend/widgets/common/importComponent.js +0 -8
  600. package/fe/frontend/widgets/common/language.d.ts +0 -2
  601. package/fe/frontend/widgets/common/language.js +0 -9
  602. package/fe/frontend/widgets/common/logFn/index.js +0 -8
  603. package/fe/frontend/widgets/common/menu.js +0 -101
  604. package/fe/frontend/widgets/common/request.d.ts +0 -36
  605. package/fe/frontend/widgets/common/request.js +0 -133
  606. package/fe/frontend/widgets/components/BasePage/HeaderView.js +0 -16
  607. package/fe/frontend/widgets/components/Router/index.js +0 -11
  608. package/fe/frontend/widgets/components/Router/type.js +0 -1
  609. package/fe/frontend/widgets/defaultPages/Iframe/index.js +0 -14
  610. package/fe/frontend/widgets/defaultPages/Schema/components/CallCom/DetailPanel.js +0 -94
  611. package/fe/frontend/widgets/defaultPages/Schema/components/CallCom/PopFrom.js +0 -124
  612. package/fe/frontend/widgets/defaultPages/Schema/components/CallCom/data.d.ts +0 -3
  613. package/fe/frontend/widgets/defaultPages/Schema/components/CallCom/data.js +0 -6
  614. package/fe/frontend/widgets/defaultPages/Schema/components/SchemaSearch/index.js +0 -63
  615. package/fe/frontend/widgets/defaultPages/Schema/components/SchemaTable/index.js +0 -188
  616. package/fe/frontend/widgets/defaultPages/Schema/data/eventInfo.js +0 -6
  617. package/fe/frontend/widgets/defaultPages/Schema/data/index.js +0 -1
  618. package/fe/frontend/widgets/defaultPages/Schema/hooks/useComConfig.js +0 -14
  619. package/fe/frontend/widgets/defaultPages/Schema/index.js +0 -74
  620. package/fe/frontend/widgets/defaultPages/Schema/schemaType.js +0 -4
  621. package/fe/frontend/widgets/defaultPages/Schema/stores/schemaEventBus.js +0 -70
  622. package/fe/frontend/widgets/defaultPages/Schema/stores/schemaStore.js +0 -26
  623. package/fe/frontend/widgets/defaultPages/Schema/utils/fetchErrorShow.js +0 -8
  624. package/fe/frontend/widgets/defaultPages/Schema/utils/permissions.js +0 -3
  625. package/fe/frontend/widgets/defaultPages/Schema/utils/schemaConversion.d.ts +0 -3
  626. package/fe/frontend/widgets/defaultPages/Schema/utils/schemaConversion.js +0 -115
  627. package/fe/frontend/widgets/defaultPages/Schema/utils/validator.d.ts +0 -7
  628. package/fe/frontend/widgets/defaultPages/Schema/utils/validator.js +0 -36
  629. package/fe/frontend/widgets/defaultPages/SidebarSlotPage/SidebarSlotContainer.js +0 -38
  630. package/fe/frontend/widgets/defaultPages/SidebarSlotPage/index.js +0 -16
  631. package/fe/frontend/widgets/defaultPages/SidebarSlotPageTmp.js +0 -17
  632. package/fe/frontend/widgets/defaultPages/SlotPage/index.js +0 -26
  633. package/fe/frontend/widgets/defaultPages/Todo.d.ts +0 -3
  634. package/fe/frontend/widgets/defaultPages/Todo.js +0 -5
  635. package/fe/frontend/widgets/hooks/useCurrentMenuData.js +0 -28
  636. package/fe/frontend/widgets/hooks/useRouterParams.js +0 -11
  637. package/fe/frontend/widgets/store/mode.js +0 -37
  638. package/fe/model/types/data/button.js +0 -16
  639. package/fe/model/types/data/component.js +0 -11
  640. package/fe/model/types/data/fetchInfo.js +0 -1
  641. package/fe/model/types/data/schema.js +0 -1
  642. package/fe/model/types/data/search.js +0 -1
  643. package/fe/model/types/menuType.js +0 -1
  644. package/fe/model/types/model.js +0 -1
  645. package/fe/packages/common/array/index.js +0 -40
  646. package/fe/packages/common/cache/index.js +0 -1
  647. package/fe/packages/common/i18n/types.js +0 -1
  648. package/fe/packages/common/index.js +0 -9
  649. package/fe/packages/common/log/index.js +0 -176
  650. package/fe/packages/common/number/index.js +0 -10
  651. package/fe/packages/common/object/index.js +0 -25
  652. package/fe/packages/common/string/index.js +0 -17
  653. package/fe/packages/common/types/index.js +0 -1
  654. package/fe/packages/ui/react/components/Button/Button.js +0 -72
  655. package/fe/packages/ui/react/components/Button/SumbitButton.d.ts +0 -13
  656. package/fe/packages/ui/react/components/Button/SumbitButton.js +0 -25
  657. package/fe/packages/ui/react/components/Button/index.d.ts +0 -4
  658. package/fe/packages/ui/react/components/Button/index.js +0 -2
  659. package/fe/packages/ui/react/components/Checkbox/Checkbox.js +0 -39
  660. package/fe/packages/ui/react/components/Checkbox/index.d.ts +0 -2
  661. package/fe/packages/ui/react/components/Checkbox/index.js +0 -1
  662. package/fe/packages/ui/react/components/ConfirmDialog/ConfirmDialog.js +0 -11
  663. package/fe/packages/ui/react/components/ConfirmDialog/index.d.ts +0 -2
  664. package/fe/packages/ui/react/components/ConfirmDialog/index.js +0 -1
  665. package/fe/packages/ui/react/components/DataTable/ActionBtn.js +0 -94
  666. package/fe/packages/ui/react/components/DataTable/index.js +0 -155
  667. package/fe/packages/ui/react/components/Date/Calendar.js +0 -216
  668. package/fe/packages/ui/react/components/Date/Date.js +0 -201
  669. package/fe/packages/ui/react/components/Date/DateTestPage.js +0 -29
  670. package/fe/packages/ui/react/components/Date/LocaleContext.js +0 -8
  671. package/fe/packages/ui/react/components/Date/LocaleProvider.js +0 -24
  672. package/fe/packages/ui/react/components/Date/TimePicker.js +0 -78
  673. package/fe/packages/ui/react/components/Date/data.js +0 -4
  674. package/fe/packages/ui/react/components/Date/dateLocaleStore.js +0 -14
  675. package/fe/packages/ui/react/components/Date/dropdownPositioning.d.ts +0 -3
  676. package/fe/packages/ui/react/components/Date/dropdownPositioning.js +0 -12
  677. package/fe/packages/ui/react/components/Date/index.d.ts +0 -6
  678. package/fe/packages/ui/react/components/Date/index.js +0 -5
  679. package/fe/packages/ui/react/components/Date/locales.js +0 -21
  680. package/fe/packages/ui/react/components/Drawer/Drawer.js +0 -100
  681. package/fe/packages/ui/react/components/Drawer/index.d.ts +0 -3
  682. package/fe/packages/ui/react/components/Drawer/index.js +0 -1
  683. package/fe/packages/ui/react/components/Dropdown/Dropdown.js +0 -28
  684. package/fe/packages/ui/react/components/Dropdown/index.d.ts +0 -2
  685. package/fe/packages/ui/react/components/Dropdown/index.js +0 -1
  686. package/fe/packages/ui/react/components/Form/Form.js +0 -8
  687. package/fe/packages/ui/react/components/Form/FormItem.js +0 -43
  688. package/fe/packages/ui/react/components/Form/SchemaForm/data.js +0 -18
  689. package/fe/packages/ui/react/components/Form/SchemaForm/index.js +0 -79
  690. package/fe/packages/ui/react/components/Form/index.d.ts +0 -5
  691. package/fe/packages/ui/react/components/Form/index.js +0 -4
  692. package/fe/packages/ui/react/components/Form/useForm.d.ts +0 -3
  693. package/fe/packages/ui/react/components/Form/useForm.js +0 -1
  694. package/fe/packages/ui/react/components/ImagePreview/ImagePreview.js +0 -169
  695. package/fe/packages/ui/react/components/ImagePreview/PreviewImage.js +0 -28
  696. package/fe/packages/ui/react/components/ImagePreview/index.d.ts +0 -3
  697. package/fe/packages/ui/react/components/ImagePreview/index.js +0 -2
  698. package/fe/packages/ui/react/components/Input/Input.js +0 -61
  699. package/fe/packages/ui/react/components/Input/index.d.ts +0 -2
  700. package/fe/packages/ui/react/components/Input/index.js +0 -1
  701. package/fe/packages/ui/react/components/InputNumber/InputNumber.js +0 -144
  702. package/fe/packages/ui/react/components/InputNumber/index.d.ts +0 -2
  703. package/fe/packages/ui/react/components/InputNumber/index.js +0 -1
  704. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.js +0 -63
  705. package/fe/packages/ui/react/components/InputNumber/inputNumberUtils.test.js +0 -27
  706. package/fe/packages/ui/react/components/Label/Label.js +0 -35
  707. package/fe/packages/ui/react/components/Label/index.d.ts +0 -3
  708. package/fe/packages/ui/react/components/Label/index.js +0 -2
  709. package/fe/packages/ui/react/components/Menu/Menu.js +0 -102
  710. package/fe/packages/ui/react/components/Menu/MenuContext.js +0 -97
  711. package/fe/packages/ui/react/components/Menu/MenuItem.js +0 -33
  712. package/fe/packages/ui/react/components/Menu/SubMenu.js +0 -169
  713. package/fe/packages/ui/react/components/Menu/index.d.ts +0 -9
  714. package/fe/packages/ui/react/components/Menu/index.js +0 -5
  715. package/fe/packages/ui/react/components/Menu/menuTypes.js +0 -1
  716. package/fe/packages/ui/react/components/Menu/utils.js +0 -7
  717. package/fe/packages/ui/react/components/Message/Message.js +0 -58
  718. package/fe/packages/ui/react/components/Message/MessageManager.js +0 -90
  719. package/fe/packages/ui/react/components/Message/data.js +0 -1
  720. package/fe/packages/ui/react/components/Message/index.d.ts +0 -3
  721. package/fe/packages/ui/react/components/Message/index.js +0 -1
  722. package/fe/packages/ui/react/components/Modal/Modal.js +0 -14
  723. package/fe/packages/ui/react/components/Modal/ModalManager.js +0 -90
  724. package/fe/packages/ui/react/components/Modal/index.d.ts +0 -4
  725. package/fe/packages/ui/react/components/Modal/index.js +0 -2
  726. package/fe/packages/ui/react/components/Overlay/Overlay.js +0 -53
  727. package/fe/packages/ui/react/components/Overlay/index.d.ts +0 -3
  728. package/fe/packages/ui/react/components/Overlay/index.js +0 -1
  729. package/fe/packages/ui/react/components/Pagination/Pagination.js +0 -88
  730. package/fe/packages/ui/react/components/Pagination/index.d.ts +0 -2
  731. package/fe/packages/ui/react/components/Pagination/index.js +0 -1
  732. package/fe/packages/ui/react/components/Popup/Popup.js +0 -81
  733. package/fe/packages/ui/react/components/Popup/index.d.ts +0 -2
  734. package/fe/packages/ui/react/components/Popup/index.js +0 -1
  735. package/fe/packages/ui/react/components/Search/Search.js +0 -12
  736. package/fe/packages/ui/react/components/Search/index.d.ts +0 -2
  737. package/fe/packages/ui/react/components/Search/index.js +0 -1
  738. package/fe/packages/ui/react/components/Select/Select.js +0 -123
  739. package/fe/packages/ui/react/components/Select/dropdownPositioning.d.ts +0 -3
  740. package/fe/packages/ui/react/components/Select/dropdownPositioning.js +0 -13
  741. package/fe/packages/ui/react/components/Select/index.d.ts +0 -2
  742. package/fe/packages/ui/react/components/Select/index.js +0 -1
  743. package/fe/packages/ui/react/components/Skeleton/Skeleton.js +0 -31
  744. package/fe/packages/ui/react/components/Skeleton/index.d.ts +0 -3
  745. package/fe/packages/ui/react/components/Skeleton/index.js +0 -1
  746. package/fe/packages/ui/react/components/Switch/Switch.js +0 -22
  747. package/fe/packages/ui/react/components/Switch/index.d.ts +0 -2
  748. package/fe/packages/ui/react/components/Switch/index.js +0 -1
  749. package/fe/packages/ui/react/components/TableSearch/TableSearch.js +0 -121
  750. package/fe/packages/ui/react/components/TableSearch/index.d.ts +0 -2
  751. package/fe/packages/ui/react/components/TableSearch/index.js +0 -1
  752. package/fe/packages/ui/react/components/TableSearch/lang.js +0 -14
  753. package/fe/packages/ui/react/components/TableSearch/tableSearchLocaleStore.js +0 -11
  754. package/fe/packages/ui/react/components/Textarea/Textarea.js +0 -37
  755. package/fe/packages/ui/react/components/Textarea/index.d.ts +0 -2
  756. package/fe/packages/ui/react/components/Textarea/index.js +0 -1
  757. package/fe/packages/ui/react/components/Tooltip/Tooltip.js +0 -79
  758. package/fe/packages/ui/react/components/Tooltip/index.d.ts +0 -2
  759. package/fe/packages/ui/react/components/Tooltip/index.js +0 -1
  760. package/fe/packages/ui/react/components/TreeSelect/TreeSelect.js +0 -160
  761. package/fe/packages/ui/react/components/TreeSelect/index.d.ts +0 -2
  762. package/fe/packages/ui/react/components/TreeSelect/index.js +0 -1
  763. package/fe/packages/ui/react/components/Upload/ImageUpload.js +0 -75
  764. package/fe/packages/ui/react/components/Upload/Upload.js +0 -6
  765. package/fe/packages/ui/react/components/Upload/index.d.ts +0 -3
  766. package/fe/packages/ui/react/components/Upload/index.js +0 -2
  767. package/fe/packages/ui/react/components/breadcrumb/breadcrumb.js +0 -81
  768. package/fe/packages/ui/react/components/breadcrumb/index.d.ts +0 -2
  769. package/fe/packages/ui/react/components/breadcrumb/index.js +0 -1
  770. package/fe/packages/ui/react/components/hooks/useDropdownPositioning.js +0 -137
  771. package/fe/packages/ui/react/components/hooks/useInputController.js +0 -45
  772. package/fe/packages/ui/react/components/index.d.ts +0 -30
  773. package/fe/packages/ui/react/components/index.js +0 -29
  774. package/fe/packages/ui/react/components/table/index.d.ts +0 -2
  775. package/fe/packages/ui/react/components/table/index.js +0 -1
  776. package/fe/packages/ui/react/components/table/table.js +0 -20
  777. package/fe/packages/ui/react/components/testPage/MenuTestPage.js +0 -104
  778. package/fe/packages/ui/react/components/testPage/index.js +0 -314
  779. package/fe/packages/ui/react/hooks/useBreadcrumb.d.ts +0 -10
  780. package/fe/packages/ui/react/hooks/useBreadcrumb.js +0 -2
  781. package/fe/packages/ui/react/hooks/useExecuteOnce.js +0 -57
  782. package/fe/packages/ui/react/hooks/useInit.js +0 -9
  783. package/fe/packages/ui/react/hooks/useLanguage.d.ts +0 -2
  784. package/fe/packages/ui/react/hooks/useLanguage.js +0 -4
  785. package/fe/packages/ui/react/hooks/usePagination.js +0 -27
  786. package/fe/packages/ui/react/hooks/useRefState.js +0 -29
  787. package/fe/packages/ui/react/hooks/useWatch.js +0 -87
  788. package/fe/packages/ui/react/hooks/useWatch.test.js +0 -22
  789. package/fe/packages/ui/react/i18n/I18nProvider.js +0 -25
  790. package/fe/packages/ui/react/i18n/index.d.ts +0 -4
  791. package/fe/packages/ui/react/i18n/index.js +0 -3
  792. package/fe/packages/ui/react/i18n/useI18n.d.ts +0 -13
  793. package/fe/packages/ui/react/i18n/useI18n.js +0 -18
  794. package/fe/packages/ui/react/index.d.ts +0 -5
  795. package/fe/packages/ui/react/index.js +0 -6
  796. package/fe/packages/ui/react/lib/createStoreHook.js +0 -6
  797. package/fe/packages/ui/react/lib/export.js +0 -138
  798. package/fe/packages/ui/react/lib/utils.js +0 -70
  799. package/fe/packages/ui/react/stores/breadcrumb.js +0 -66
  800. package/fe/packages/ui/react/stores/language.d.ts +0 -4
  801. package/fe/packages/ui/react/stores/language.js +0 -2
  802. package/fe/packages/ui/react/types/index.js +0 -1
  803. package/fe/typings/type.js +0 -1
  804. package/types/app/data/signKey.d.ts +0 -1
  805. /package/fe/frontend/{dash → apps/dash}/dash.entry.d.ts +0 -0
  806. /package/fe/frontend/{testPage → apps/ui-components}/index.d.ts +0 -0
  807. /package/fe/frontend/{widgets → src}/common/auth/index.d.ts +0 -0
  808. /package/fe/frontend/{widgets → src}/components/Router/type.d.ts +0 -0
  809. /package/fe/frontend/{widgets → src}/defaultPages/Iframe/index.d.ts +0 -0
  810. /package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/components/SchemaSearch/index.d.ts +0 -0
  811. /package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/data/eventInfo.d.ts +0 -0
  812. /package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/data/index.d.ts +0 -0
  813. /package/fe/frontend/{widgets/defaultPages/Schema → src/defaultPages/SchemaPage}/utils/permissions.d.ts +0 -0
  814. /package/fe/frontend/{widgets → src}/defaultPages/SidebarSlotPage/index.d.ts +0 -0
  815. /package/fe/frontend/{widgets → src}/defaultPages/SidebarSlotPageTmp.d.ts +0 -0
  816. /package/fe/frontend/{widgets → src}/defaultPages/SlotPage/index.d.ts +0 -0
  817. /package/fe/frontend/{widgets → src}/hooks/useCurrentMenuData.d.ts +0 -0
  818. /package/fe/frontend/{widgets → src}/hooks/useRouterParams.d.ts +0 -0
  819. /package/fe/packages/{ui/react → react}/hooks/useExecuteOnce.d.ts +0 -0
  820. /package/fe/packages/{ui/react → react}/hooks/useInit.d.ts +0 -0
  821. /package/fe/packages/{ui/react → react}/hooks/usePagination.d.ts +0 -0
  822. /package/fe/packages/{ui/react → react}/hooks/useWatch.d.ts +0 -0
  823. /package/fe/packages/{ui/react → react}/hooks/useWatch.test.d.ts +0 -0
  824. /package/fe/packages/{ui/react → react/ui}/assets/table/no-result.svg +0 -0
  825. /package/fe/packages/{ui/react → react/ui}/components/ConfirmDialog/ConfirmDialog.d.ts +0 -0
  826. /package/fe/packages/{ui/react → react/ui}/components/Date/Date.d.ts +0 -0
  827. /package/fe/packages/{ui/react → react/ui}/components/Date/DateTestPage.d.ts +0 -0
  828. /package/fe/packages/{ui/react → react/ui}/components/Date/LocaleContext.d.ts +0 -0
  829. /package/fe/packages/{ui/react → react/ui}/components/Date/TimePicker.d.ts +0 -0
  830. /package/fe/packages/{ui/react → react/ui}/components/Date/data.d.ts +0 -0
  831. /package/fe/packages/{ui/react → react/ui}/components/Date/locales.d.ts +0 -0
  832. /package/fe/packages/{ui/react → react/ui}/components/ImagePreview/ImagePreview.d.ts +0 -0
  833. /package/fe/packages/{ui/react → react/ui}/components/InputNumber/inputNumberUtils.d.ts +0 -0
  834. /package/fe/packages/{ui/react → react/ui}/components/InputNumber/inputNumberUtils.test.d.ts +0 -0
  835. /package/fe/packages/{ui/react → react/ui}/components/Menu/Menu.d.ts +0 -0
  836. /package/fe/packages/{ui/react → react/ui}/components/Menu/MenuContext.d.ts +0 -0
  837. /package/fe/packages/{ui/react → react/ui}/components/Menu/MenuItem.d.ts +0 -0
  838. /package/fe/packages/{ui/react → react/ui}/components/Menu/SubMenu.d.ts +0 -0
  839. /package/fe/packages/{ui/react → react/ui}/components/Menu/utils.d.ts +0 -0
  840. /package/fe/packages/{ui/react → react/ui}/components/Message/data.d.ts +0 -0
  841. /package/fe/packages/{ui/react → react/ui}/components/Pagination/Pagination.d.ts +0 -0
  842. /package/fe/packages/{ui/react → react/ui}/components/Popup/Popup.d.ts +0 -0
  843. /package/fe/packages/{ui/react → react/ui}/components/TableSearch/lang.d.ts +0 -0
  844. /package/fe/packages/{ui/react → react/ui}/components/Textarea/Textarea.d.ts +0 -0
  845. /package/fe/packages/{ui/react → react/ui}/components/Tooltip/Tooltip.d.ts +0 -0
  846. /package/fe/packages/{ui/react → react/ui}/components/TreeSelect/TreeSelect.d.ts +0 -0
  847. /package/fe/packages/{ui/react → react/ui}/components/Upload/ImageUpload.d.ts +0 -0
  848. /package/fe/packages/{ui/react → react/ui}/components/breadcrumb/breadcrumb.d.ts +0 -0
  849. /package/fe/packages/{ui/react → react/ui}/components/hooks/useDropdownPositioning.d.ts +0 -0
  850. /package/fe/packages/{ui/react → react/ui}/components/hooks/useInputController.d.ts +0 -0
  851. /package/fe/packages/{ui/react → react/ui}/components/testPage/MenuTestPage.d.ts +0 -0
  852. /package/fe/packages/{ui/react → react/ui}/components/testPage/index.d.ts +0 -0
  853. /package/fe/packages/{ui/react → react/ui}/lib/utils.d.ts +0 -0
  854. /package/fe/packages/{ui/react → react/ui}/types/index.d.ts +0 -0
@@ -0,0 +1,392 @@
1
+ # Component Patterns
2
+
3
+ Recurring patterns and best practices for `@tc/ui-react`.
4
+
5
+ ---
6
+
7
+ ## Visual Style Pattern
8
+
9
+ For TemplateCore component work, aim for a dark, restrained, collaboration-tool feel:
10
+
11
+ - Use deep backgrounds, low-contrast panels, subtle borders, and compact text.
12
+ - Reserve saturated color for primary actions, selection, status, and collaboration identity.
13
+ - Keep page shells and panels layered; avoid decorative gradients or oversized marketing-style sections for admin UI.
14
+ - Every reusable component should cover default, hover, focus, active, disabled, loading, and error states where applicable.
15
+ - Prefer stable dimensions for controls, table cells, icon buttons, and fixed-format UI so state changes do not shift layout.
16
+
17
+ When editing this repository, `packages/react/ui/components/VIDEO_UI_STYLE_GUIDE.md` is the fuller visual reference.
18
+
19
+ ---
20
+
21
+ ## Form Patterns
22
+
23
+ ### SchemaForm: Data-Driven Forms
24
+
25
+ The standard way to build forms. Define schemas, not JSX:
26
+
27
+ ```tsx
28
+ const [form] = useForm<UserForm>()
29
+
30
+ <SchemaForm<UserForm>
31
+ form={form}
32
+ schemas={[
33
+ { key: 'username', label: 'Username', type: 'input', required: true },
34
+ { key: 'email', label: 'Email', type: 'input',
35
+ rules: [{ type: 'email', message: 'Invalid email' }] },
36
+ { key: 'role', label: 'Role', type: 'select',
37
+ fieldProps: { options: [{ label: 'Admin', value: 'admin' }, { label: 'User', value: 'user' }] } },
38
+ { key: 'active', label: 'Active', type: 'switch' },
39
+ ]}
40
+ onFinish={handleSubmit}
41
+ />
42
+ ```
43
+
44
+ ### SchemaForm Layouts
45
+
46
+ - **`layout='vertical'`** (default): Label above field. Footer buttons auto-rendered.
47
+ - **`layout='horizontal'`**: Label beside field. **Footer buttons NOT auto-rendered** — provide via `footerButtons` prop or handle externally.
48
+ - **Per-field override**: Set `layout` on individual schema items via `fieldLayout`.
49
+
50
+ ### Registering Custom SchemaForm Types
51
+
52
+ TemplateCore already registers framework field type `asyncSelect`:
53
+
54
+ ```tsx
55
+ <SchemaForm
56
+ schemas={[
57
+ {
58
+ key: 'ownerId',
59
+ label: 'Owner',
60
+ type: 'asyncSelect',
61
+ fieldProps: {
62
+ fetchConfig: { url: '/user/options', method: 'get' },
63
+ },
64
+ },
65
+ ]}
66
+ />
67
+ ```
68
+
69
+ The options endpoint should return the normal TemplateCore response wrapper, usually via `this.success(ctx, options)`.
70
+
71
+ ```tsx
72
+ // In the app-side module aliased as @tc/scalability/SchemaForm/data:
73
+ const consumerComponentsMap = {
74
+ richText: RichTextEditor,
75
+ userSelector: UserSelect,
76
+ }
77
+
78
+ export default consumerComponentsMap
79
+ // Now { type: 'richText', ... } works in schemas
80
+ ```
81
+
82
+ ### FormItem: Render Function Pattern
83
+
84
+ When you need custom logic inside a form field:
85
+
86
+ ```tsx
87
+ <FormItem label="Tags" name="tags">
88
+ {(value, onChange) => (
89
+ <TagInput value={value} onChange={(tags) => onChange(tags)} />
90
+ )}
91
+ </FormItem>
92
+ ```
93
+
94
+ ### FormItem: Automatic Child Injection
95
+
96
+ `FormItem` auto-clones children to inject `value`/`onChange`. It handles Input's two-arg `onChange(value, event)` signature correctly.
97
+
98
+ ### SubmitButton / AsynchronousButton for Async Forms
99
+
100
+ ```tsx
101
+ <AsynchronousButton
102
+ onClick={async () => {
103
+ await submitToApi(form.getFieldsValue())
104
+ }}
105
+ >
106
+ Save
107
+ </AsynchronousButton>
108
+ ```
109
+
110
+ Auto-shows loading spinner during async execution.
111
+
112
+ ---
113
+
114
+ ## DataTable Patterns
115
+
116
+ ### Basic Column Definition
117
+
118
+ ```tsx
119
+ const columns: TableColumnDef<User>[] = [
120
+ { key: 'id', title: 'ID', dataIndex: 'id', width: '80px' },
121
+ { key: 'name', title: 'Name', dataIndex: 'name' },
122
+ { key: 'status', title: 'Status', dataIndex: 'status',
123
+ render: (value) => <Badge status={value} /> },
124
+ { key: 'action', title: 'Actions',
125
+ actions: (_value, record) => [
126
+ { key: 'edit', label: 'Edit', onClick: () => openEdit(record) },
127
+ { key: 'delete', label: 'Delete', danger: true, onClick: () => onDelete(record) },
128
+ ] },
129
+ ]
130
+ ```
131
+
132
+ ### Action Column Behavior
133
+
134
+ `ActionBtn` handles the action column rendering:
135
+ - **0 actions**: Shows `'-'`
136
+ - **1 action**: Single button
137
+ - **Multiple**: Uses overflow mode:
138
+ - `'auto'` (default): Uses ResizeObserver to detect fit; falls back to dropdown
139
+ - `'dropdown'`: Always shows "..." dropdown button
140
+ - `'inline'`: Shows all buttons inline (only for `DropdownBaseItem`)
141
+
142
+ ### Pagination
143
+
144
+ ```tsx
145
+ // Let DataTable handle pagination internally
146
+ <DataTable columns={columns} data={data} />
147
+
148
+ // Control pagination externally
149
+ <DataTable
150
+ columns={columns}
151
+ data={data}
152
+ pagination={{ current: 1, pageSize: 20, total: 100, onChange: fetchPage }}
153
+ />
154
+ ```
155
+
156
+ ### Row Selection
157
+
158
+ ```tsx
159
+ <DataTable
160
+ columns={columns}
161
+ data={data}
162
+ rowSelection={{
163
+ selectedRowKeys: selectedIds,
164
+ onChange: (keys) => setSelectedIds(keys),
165
+ }}
166
+ />
167
+ ```
168
+
169
+ Supports checkboxes, indeterminate (partial) state, page-level select-all.
170
+
171
+ ### Sticky Columns
172
+
173
+ Action columns are auto-sticky right. Set `fixed: 'left'` or `fixed: 'right'` on other columns. IntersectionObserver-based shadow effects when scrolled.
174
+
175
+ ### Loading State
176
+
177
+ ```tsx
178
+ <DataTable columns={columns} data={data} loading={isLoading} />
179
+ ```
180
+
181
+ Shows skeleton overlay in `tableloading` mode while `loading={true}`.
182
+
183
+ ---
184
+
185
+ ## TableSearch Pattern
186
+
187
+ ```tsx
188
+ <TableSearch<UserSearch>
189
+ schemas={[
190
+ { key: 'name', label: 'Name', type: 'input', isPermanent: true },
191
+ { key: 'status', label: 'Status', type: 'select',
192
+ fieldProps: { options: statusOptions }, isPermanent: true },
193
+ { key: 'createdAt', label: 'Created', type: 'date' },
194
+ { key: 'email', label: 'Email', type: 'input' },
195
+ ]}
196
+ onSearch={(values) => fetchData(values)}
197
+ onReset={() => fetchData({})}
198
+ onExport={(type, searchData) => exportData(type, searchData)}
199
+ exportMenuItems={exportItems}
200
+ />
201
+ ```
202
+
203
+ `isPermanent: true` fields always show. Others hidden when collapsed. `expandBoundaries` (default 4) controls permanent field threshold.
204
+
205
+ ---
206
+
207
+ ## Overlay Patterns
208
+
209
+ ### Modal with Form
210
+
211
+ ```tsx
212
+ const [open, setOpen] = useState(false)
213
+ const [form] = useForm()
214
+
215
+ <Modal open={open} onClose={() => setOpen(false)} title="Create User"
216
+ footer={
217
+ <div className="flex justify-end gap-2">
218
+ <Button onClick={() => setOpen(false)}>Cancel</Button>
219
+ <AsynchronousButton onClick={() => form.submit()}>Save</AsynchronousButton>
220
+ </div>
221
+ }
222
+ >
223
+ <SchemaForm form={form} schemas={schemas} footerButtons={false}
224
+ onFinish={async (values) => { await createUser(values); setOpen(false); }} />
225
+ </Modal>
226
+ ```
227
+
228
+ ### ConfirmDialog for Simple Confirmations
229
+
230
+ ```tsx
231
+ <ConfirmDialog
232
+ open={confirmOpen}
233
+ title="Delete User"
234
+ content="This action cannot be undone. Continue?"
235
+ onOk={async () => { await deleteUser(id); setConfirmOpen(false); }}
236
+ onCancel={() => setConfirmOpen(false)}
237
+ />
238
+ ```
239
+
240
+ ### Imperative Confirm (modal)
241
+
242
+ ```tsx
243
+ modal.confirm({
244
+ title: 'Delete',
245
+ content: 'Are you sure?',
246
+ onOk: async () => { await deleteUser(id); },
247
+ })
248
+ ```
249
+
250
+ ### Drawer for Side Panels
251
+
252
+ ```tsx
253
+ <Drawer open={open} onClose={() => setOpen(false)} title="User Details"
254
+ placement="right" width={480}
255
+ >
256
+ <UserDetailContent userId={id} />
257
+ </Drawer>
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Menu Patterns
263
+
264
+ ### Declarative via items
265
+
266
+ ```tsx
267
+ <Menu
268
+ mode="left"
269
+ items={[
270
+ { key: 'dashboard', label: 'Dashboard', icon: <HomeIcon /> },
271
+ { key: 'users', label: 'Users', icon: <UsersIcon />,
272
+ children: [
273
+ { key: 'users-list', label: 'All Users' },
274
+ { key: 'users-roles', label: 'Roles' },
275
+ ] },
276
+ ]}
277
+ selectedKey={currentKey}
278
+ onSelect={(key) => navigate(key)}
279
+ />
280
+ ```
281
+
282
+ ### Collapsible Sidebar
283
+
284
+ ```tsx
285
+ <Menu mode="left" collapsed={collapsed} collapsedWidth={64} collapsedLabelTooltip>
286
+ <Menu.CollapseToggle ref={toggleRef} />
287
+ {/* items */}
288
+ </Menu>
289
+ ```
290
+
291
+ When collapsed without icon: shows first character of label. With `collapsedLabelTooltip`: hover shows full label via Popup.
292
+
293
+ ### Top Mode Menu
294
+
295
+ ```tsx
296
+ <Menu mode="top" expandTrigger="hover">
297
+ <Menu.Item eventKey="home">Home</Menu.Item>
298
+ <Menu.SubMenu eventKey="products" label="Products" popup>
299
+ <Menu.Item eventKey="prod-list">List</Menu.Item>
300
+ <Menu.Item eventKey="prod-create">Create</Menu.Item>
301
+ </Menu.SubMenu>
302
+ </Menu>
303
+ ```
304
+
305
+ In `mode='top'`, SubMenus always use popup dropdowns.
306
+
307
+ ---
308
+
309
+ ## Notification & Message Patterns
310
+
311
+ ### Toast Messages
312
+
313
+ ```tsx
314
+ import { message } from '@tc/ui-react'
315
+
316
+ message.success('User created successfully')
317
+ message.error('Failed to save')
318
+ message.warning('Session expiring soon')
319
+ message.info('New update available')
320
+ ```
321
+
322
+ ### Notifications (Corner)
323
+
324
+ ```tsx
325
+ import { Notification } from '@tc/ui-react'
326
+
327
+ // As component
328
+ <Notification type="error" title="Upload Failed" message="Network error. Retry?" />
329
+
330
+ // To manage manually, render conditionally
331
+ ```
332
+
333
+ ---
334
+
335
+ ## Layout Pattern
336
+
337
+ ```tsx
338
+ <Layout
339
+ header={<Header />}
340
+ sidebar={<SidebarMenu />}
341
+ footer={<Footer />}
342
+ >
343
+ <main className="p-6">
344
+ <Outlet />
345
+ </main>
346
+ </Layout>
347
+ ```
348
+
349
+ ---
350
+
351
+ ## Compound Component Pattern
352
+
353
+ Three components use compound patterns with Context:
354
+
355
+ 1. **Menu**: `<Menu>` + `<Menu.Item>` + `<Menu.SubMenu>` + `<Menu.CollapseToggle>`
356
+ 2. **Radio**: `<Radio.Group>` + `<Radio>`
357
+ 3. **Breadcrumb**: `<Breadcrumb>` + `<BreadcrumbList>` + `<BreadcrumbItem>` + ...
358
+
359
+ Children auto-detect parent via Context and inherit configuration.
360
+
361
+ ---
362
+
363
+ ## Controlled/Uncontrolled Convention
364
+
365
+ All input-like components follow this pattern:
366
+
367
+ ```typescript
368
+ // Internal pattern used by every input component:
369
+ const isControlled = props.value !== undefined
370
+ // → Controlled: use props.value + props.onChange
371
+ // → Uncontrolled: use internal useState(defaultValue)
372
+ ```
373
+
374
+ This means both patterns work identically:
375
+
376
+ ```tsx
377
+ // Controlled
378
+ <Select value={val} onChange={setVal} options={opts} />
379
+
380
+ // Uncontrolled
381
+ <Select defaultValue="foo" options={opts} />
382
+ ```
383
+
384
+ ---
385
+
386
+ ## CSS Conventions
387
+
388
+ - Import styles before using components: `@tc/ui-react/index.css` for raw UI usage, or `@_tc/template-core/fe/tailwind_ui.css` for published TemplateCore frontend entries.
389
+ - All CSS classes are prefixed `tc-ui-<component-name>`
390
+ - Tailwind CSS used for styling
391
+ - Theme via CSS custom properties: `hsl(var(--theme-primary))`, `hsl(var(--theme-background))`, etc.
392
+ - Customize by setting CSS variables or overriding Tailwind theme
@@ -0,0 +1,104 @@
1
+ # TemplateCore Frontend Helpers
2
+
3
+ Use these when building business UI on top of TemplateCore, especially Dashboard header tools and project pages.
4
+
5
+ ## Import Paths
6
+
7
+ ```tsx
8
+ import { AsyncSelect, LanguageSwitch, ThemeSwitch } from '@_tc/template-core/fe'
9
+ import { Button, DataTable, TableSearch } from '@_tc/template-core/fe/rc'
10
+ ```
11
+
12
+ Inside this repository, `@tc/ui-react` is also valid for the raw UI library. In published business projects, prefer `@_tc/template-core/fe/rc` for UI components and `@_tc/template-core/fe` for frontend runtime helpers.
13
+
14
+ ## LanguageSwitch
15
+
16
+ ```tsx
17
+ <LanguageSwitch />
18
+ ```
19
+
20
+ Default languages are `zh-CN` and `en-US`. Pass `options` to replace the list. `onChange(language)` receives the selected language string. The component calls `i18nStore.getState().setLanguage()`, so it uses the same `tc_language` persistence as the UI i18n runtime.
21
+
22
+ Useful props:
23
+
24
+ ```typescript
25
+ type LanguageSwitchValue = 'zh-CN' | 'en-US' | (string & {})
26
+
27
+ interface LanguageSwitchProps {
28
+ value?: LanguageSwitchValue
29
+ defaultValue?: LanguageSwitchValue
30
+ options?: Array<{ label: ReactNode; value: LanguageSwitchValue; searchText?: string }>
31
+ onChange?: (language: LanguageSwitchValue) => void
32
+ }
33
+ ```
34
+
35
+ ## ThemeSwitch
36
+
37
+ ```tsx
38
+ <ThemeSwitch showLabel />
39
+ ```
40
+
41
+ Toggles `document.documentElement.classList` with the `dark` class and syncs `color-scheme`. By default it persists to `localStorage` key `tc_theme`.
42
+
43
+ Useful props:
44
+
45
+ ```typescript
46
+ type ThemeSwitchMode = 'light' | 'dark'
47
+
48
+ interface ThemeSwitchProps {
49
+ value?: ThemeSwitchMode
50
+ defaultValue?: ThemeSwitchMode
51
+ onChange?: (mode: ThemeSwitchMode) => void
52
+ disabled?: boolean
53
+ showLabel?: boolean
54
+ persist?: boolean
55
+ storageKey?: string
56
+ }
57
+ ```
58
+
59
+ ## AsyncSelect
60
+
61
+ Use `AsyncSelect` when options should be loaded from a TemplateCore API.
62
+
63
+ ```tsx
64
+ <AsyncSelect
65
+ fetchConfig={{ url: '/user/options', method: 'get' }}
66
+ placeholder="Select user"
67
+ />
68
+ ```
69
+
70
+ The options array shape is:
71
+
72
+ ```ts
73
+ Array<{ label: string; value: string | number; searchText?: string }>
74
+ ```
75
+
76
+ The endpoint should return TemplateCore's normal response wrapper. In a controller, use:
77
+
78
+ ```js
79
+ this.success(ctx, [
80
+ { label: "Alice", value: "u1" },
81
+ { label: "Bob", value: "u2" },
82
+ ]);
83
+ ```
84
+
85
+ `AsyncSelect` reads `res.data.code === 0` and then maps `res.data.data`. It forwards most `Select` props except `options`; it owns option loading internally.
86
+
87
+ ## Dashboard Header Tools
88
+
89
+ For a compact header user area, combine the helpers:
90
+
91
+ ```tsx
92
+ import { LanguageSwitch, ThemeSwitch } from '@_tc/template-core/fe'
93
+
94
+ export function HeaderTools() {
95
+ return (
96
+ <div className="flex items-center gap-2">
97
+ <LanguageSwitch className="w-32" />
98
+ <ThemeSwitch />
99
+ </div>
100
+ )
101
+ }
102
+ ```
103
+
104
+ Registering the header slot itself belongs to the generator/runtime extension docs. The supported Dashboard component key is `HeaderView.userArea`.
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: tc-generator
3
+ description: Generate TemplateCore business projects, modules, model configurations, Schema CRUD pages, controllers, routers, and project overrides that follow this repository's Koa + React + model-driven conventions. Use when the user asks to create or modify TC/TemplateCore projects, admin modules, model/mode.js files, schemaConfig CRUD pages, menu structures, or app/controller and app/router files.
4
+ ---
5
+
6
+ # TC Generator
7
+
8
+ Use this skill to generate or update TemplateCore business code.
9
+
10
+ ## Quick Workflow
11
+
12
+ 1. Identify the target business root. In this repository, a generated project usually uses:
13
+ - `index.js`
14
+ - `config/config.default.js`
15
+ - `app/controller/*.js`
16
+ - `app/router/*.js`
17
+ - `model/{modelKey}/mode.js`
18
+ - optional `model/{modelKey}/project/{projectKey}.js`
19
+ 2. Read only the reference needed:
20
+ - Model/menu/schema rules: `reference/model-schema.md`
21
+ - Runtime extensions (db, Dashboard slots/routes, frontend helpers): `reference/runtime-extensions.md`
22
+ - Standalone skeleton: `reference/project-template/`
23
+ - Complete product CRUD example: `reference/example.md`
24
+ 3. Generate the smallest working slice first: config, entry, controller, router, model.
25
+ 4. Keep keys stable. Array merge and project overrides depend on `key`.
26
+ 5. Prefer CommonJS `.js` for generated business examples unless the existing business project already uses TypeScript.
27
+
28
+ ## TemplateCore Conventions
29
+
30
+ - Start the app with `serverStart({ name, baseDir })` from `@_tc/template-core`.
31
+ - Start the built-in frontend with `buildFE("dev")` from `@_tc/template-core/bundler` when the user needs the admin UI. Do not `await` it; the current API starts the build/dev process and returns `void`.
32
+ - If `buildFE("dev")` is used in a standalone project, include the TemplateCore peer dependencies or use the package manager's peer dependency auto-install behavior.
33
+ - Business code lives under the user's `baseDir`, not inside TemplateCore framework folders.
34
+ - The framework provides `app.extends.db` as a default SQLite-backed KV/SQL helper. Use it for small framework/business settings; override `app/extend/db.js` only when the project needs a custom storage implementation.
35
+ - Backend loaders map filenames to camelCase fields:
36
+ - `app/controller/product.js` -> `app.controller.product`
37
+ - `app/service/user-profile.js` -> `app.service.userProfile`
38
+ - Controller and service files export a factory: `module.exports = (app) => class Xxx {}`.
39
+ - Router files export a function: `module.exports = (app, router) => { ... }`.
40
+ - Schema pages expect REST-like endpoints:
41
+ - `GET {api}/list` for table data
42
+ - `GET {api}` for detail/edit fetch
43
+ - `POST {api}` for create
44
+ - `PUT {api}` for update
45
+ - `DELETE {api}` for remove
46
+
47
+ ## Output Rules
48
+
49
+ - Make generated code directly runnable when package dependencies are installed.
50
+ - Include realistic in-memory data only for demos or scaffolds.
51
+ - Use `$i18n::...` only when also adding or pointing to language resources; otherwise write plain labels.
52
+ - For Schema CRUD, include `tableOption`, `createFormOption`, `editFormOption`, and `detailPanelOption` only where the field should appear.
53
+ - For edit/detail components, set `fetchKey` to the primary key field.
54
+ - For remove buttons, use `$schema::{field}` to pull values from the current row.
55
+ - Generate frontend extensions only when needed:
56
+ - Dashboard header UI: `frontend/extended/dash/components.tsx` with `HeaderView.userArea`
57
+ - Dashboard custom routes: `frontend/extended/dash/customRoutes.tsx`
58
+ - SchemaForm field types: `frontend/extended/SchemaForm/data.ts`
59
+ - SchemaPage custom call components: `frontend/extended/SchemaPage/CallCom/data.ts`
60
+
61
+ ## Validation
62
+
63
+ When editing an existing project, verify with the closest available command:
64
+
65
+ ```bash
66
+ pnpm type-check
67
+ pnpm dev
68
+ ```
69
+
70
+ For generated standalone CommonJS examples, at minimum inspect paths and imports against the current package name.