akanjs 0.0.1 → 2.0.0-beta.0

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 (682) hide show
  1. package/CODE_OF_CONDUCT.md +54 -0
  2. package/CONTRIBUTING.md +83 -0
  3. package/LICENSE +21 -0
  4. package/README.ko.md +244 -0
  5. package/README.md +237 -6
  6. package/base/base.ts +194 -0
  7. package/base/baseEnv.ts +162 -0
  8. package/base/index.ts +6 -0
  9. package/base/primitiveRegistry.ts +342 -0
  10. package/base/symbols.ts +11 -0
  11. package/base/types.ts +137 -0
  12. package/base/utils.ts +30 -0
  13. package/cli/application/application.command.ts +213 -0
  14. package/cli/application/application.interface.tsx +225 -0
  15. package/cli/application/application.runner.ts +359 -0
  16. package/cli/application/application.script.ts +244 -0
  17. package/cli/build.ts +25 -0
  18. package/cli/cloud/cloud.command.ts +48 -0
  19. package/cli/cloud/cloud.runner.ts +158 -0
  20. package/cli/cloud/cloud.script.ts +40 -0
  21. package/cli/guideline/guideline.command.ts +31 -0
  22. package/cli/guideline/guideline.prompt.ts +212 -0
  23. package/cli/guideline/guideline.runner.ts +53 -0
  24. package/cli/guideline/guideline.script.ts +33 -0
  25. package/cli/guidelines/___library/sharedUiStructureDescription.en.md +767 -0
  26. package/cli/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  27. package/cli/guidelines/___lint/lintRuleDescription.en.md +64 -0
  28. package/cli/guidelines/___module/moduleStructureDescription.en.md +80 -0
  29. package/cli/guidelines/componentRule/componentRule.generate.json +131 -0
  30. package/cli/guidelines/componentRule/componentRule.instruction.md +637 -0
  31. package/cli/guidelines/cssRule/cssRule.generate.json +93 -0
  32. package/cli/guidelines/cssRule/cssRule.instruction.md +435 -0
  33. package/cli/guidelines/databaseModule/databaseModule.generate.json +51 -0
  34. package/cli/guidelines/databaseModule/databaseModule.instruction.md +612 -0
  35. package/cli/guidelines/docPageRule/docPageRule.generate.json +72 -0
  36. package/cli/guidelines/docPageRule/docPageRule.instruction.md +389 -0
  37. package/cli/guidelines/enumConstant/enumConstant.generate.json +24 -0
  38. package/cli/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  39. package/cli/guidelines/framework/framework.generate.json +119 -0
  40. package/cli/guidelines/framework/framework.instruction.md +1110 -0
  41. package/cli/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  42. package/cli/guidelines/modelConstant/modelConstant.generate.json +128 -0
  43. package/cli/guidelines/modelConstant/modelConstant.instruction.md +506 -0
  44. package/cli/guidelines/modelDictionary/modelDictionary.generate.json +108 -0
  45. package/cli/guidelines/modelDictionary/modelDictionary.instruction.md +547 -0
  46. package/cli/guidelines/modelDocument/modelDocument.generate.json +129 -0
  47. package/cli/guidelines/modelDocument/modelDocument.instruction.md +536 -0
  48. package/cli/guidelines/modelService/modelService.generate.json +135 -0
  49. package/cli/guidelines/modelService/modelService.instruction.md +708 -0
  50. package/cli/guidelines/modelSignal/modelSignal.generate.json +201 -0
  51. package/cli/guidelines/modelSignal/modelSignal.instruction.md +552 -0
  52. package/cli/guidelines/modelStore/modelStore.generate.json +130 -0
  53. package/cli/guidelines/modelStore/modelStore.instruction.md +585 -0
  54. package/cli/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  55. package/cli/guidelines/modelTemplate/modelTemplate.instruction.md +604 -0
  56. package/cli/guidelines/modelUnit/modelUnit.generate.json +92 -0
  57. package/cli/guidelines/modelUnit/modelUnit.instruction.md +541 -0
  58. package/cli/guidelines/modelUtil/modelUtil.generate.json +93 -0
  59. package/cli/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  60. package/cli/guidelines/modelView/modelView.generate.json +80 -0
  61. package/cli/guidelines/modelView/modelView.instruction.md +1005 -0
  62. package/cli/guidelines/modelZone/modelZone.generate.json +126 -0
  63. package/cli/guidelines/modelZone/modelZone.instruction.md +528 -0
  64. package/cli/guidelines/scalarConstant/scalarConstant.generate.json +106 -0
  65. package/cli/guidelines/scalarConstant/scalarConstant.instruction.md +442 -0
  66. package/cli/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  67. package/cli/guidelines/scalarDictionary/scalarDictionary.instruction.md +273 -0
  68. package/cli/guidelines/scalarModule/scalarModule.generate.json +35 -0
  69. package/cli/guidelines/scalarModule/scalarModule.instruction.md +81 -0
  70. package/cli/guidelines/sharedUiUsage/sharedUiUsage.generate.json +108 -0
  71. package/cli/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +310 -0
  72. package/cli/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  73. package/cli/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  74. package/cli/index.js +11401 -0
  75. package/cli/index.ts +24 -0
  76. package/cli/library/library.command.ts +28 -0
  77. package/cli/library/library.runner.ts +69 -0
  78. package/cli/library/library.script.ts +39 -0
  79. package/cli/module/module.command.ts +35 -0
  80. package/cli/module/module.prompt.ts +18 -0
  81. package/cli/module/module.request.ts +319 -0
  82. package/cli/module/module.runner.ts +76 -0
  83. package/cli/module/module.script.ts +161 -0
  84. package/cli/package/package.command.ts +32 -0
  85. package/cli/package/package.runner.ts +64 -0
  86. package/cli/package/package.script.ts +35 -0
  87. package/cli/page/page.command.ts +14 -0
  88. package/cli/page/page.runner.ts +14 -0
  89. package/cli/page/page.script.ts +12 -0
  90. package/cli/scalar/scalar.command.ts +21 -0
  91. package/cli/scalar/scalar.prompt.ts +131 -0
  92. package/cli/scalar/scalar.runner.ts +38 -0
  93. package/cli/scalar/scalar.script.ts +16 -0
  94. package/cli/templates/__scalar/__model__/__model__.constant.ts +15 -0
  95. package/cli/templates/__scalar/__model__/__model__.dictionary.ts +19 -0
  96. package/cli/templates/__scalar/__model__/__model__.document.ts +15 -0
  97. package/cli/templates/app/akan.config.ts +14 -0
  98. package/cli/templates/app/capacitor.config.ts.template +8 -0
  99. package/cli/templates/app/common/commonLogic.ts +12 -0
  100. package/cli/templates/app/common/index.ts +10 -0
  101. package/cli/templates/app/env/env.client.debug.ts.template +7 -0
  102. package/cli/templates/app/env/env.client.develop.ts.template +7 -0
  103. package/cli/templates/app/env/env.client.local.ts.template +7 -0
  104. package/cli/templates/app/env/env.client.main.ts.template +7 -0
  105. package/cli/templates/app/env/env.client.testing.ts.template +7 -0
  106. package/cli/templates/app/env/env.client.ts +21 -0
  107. package/cli/templates/app/env/env.client.type.ts +16 -0
  108. package/cli/templates/app/env/env.server.debug.ts.template +7 -0
  109. package/cli/templates/app/env/env.server.develop.ts.template +9 -0
  110. package/cli/templates/app/env/env.server.local.ts.template +14 -0
  111. package/cli/templates/app/env/env.server.main.ts.template +9 -0
  112. package/cli/templates/app/env/env.server.testing.ts.template +6 -0
  113. package/cli/templates/app/env/env.server.ts +20 -0
  114. package/cli/templates/app/lib/___appName__/__appName__.dictionary.ts +17 -0
  115. package/cli/templates/app/lib/___appName__/__appName__.service.ts +13 -0
  116. package/cli/templates/app/lib/___appName__/__appName__.signal.ts +17 -0
  117. package/cli/templates/app/lib/___appName__/__appName__.store.ts +15 -0
  118. package/cli/templates/app/lib/option.ts +17 -0
  119. package/cli/templates/app/main.ts +16 -0
  120. package/cli/templates/app/package.json.template +5 -0
  121. package/cli/templates/app/page/_index.tsx +172 -0
  122. package/cli/templates/app/page/_layout.tsx +32 -0
  123. package/cli/templates/app/page/styles.css.template +53 -0
  124. package/cli/templates/app/public/favicon.ico +0 -0
  125. package/cli/templates/app/public/logo.png +0 -0
  126. package/cli/templates/app/srvkit/backendLogic.ts +12 -0
  127. package/cli/templates/app/srvkit/index.ts +10 -0
  128. package/cli/templates/app/tsconfig.json.template +21 -0
  129. package/cli/templates/app/ui/UiComponent.ts +16 -0
  130. package/cli/templates/app/ui/index.ts +10 -0
  131. package/cli/templates/app/webkit/frontendLogic.ts +12 -0
  132. package/cli/templates/app/webkit/index.ts +10 -0
  133. package/cli/templates/client.ts +46 -0
  134. package/cli/templates/crudPages/[__model__Id]/edit/page.tsx +47 -0
  135. package/cli/templates/crudPages/[__model__Id]/page.tsx +52 -0
  136. package/cli/templates/crudPages/new/page.tsx +42 -0
  137. package/cli/templates/crudPages/page.tsx +43 -0
  138. package/cli/templates/crudSinglePage/page.tsx +37 -0
  139. package/cli/templates/env/_env.server.type.ts +16 -0
  140. package/cli/templates/facetIndex/index.ts +32 -0
  141. package/cli/templates/index.ts +10 -0
  142. package/cli/templates/lib/__lib/lib.constant.ts +38 -0
  143. package/cli/templates/lib/__lib/lib.dictionary.ts +33 -0
  144. package/cli/templates/lib/__lib/lib.document.ts +35 -0
  145. package/cli/templates/lib/__lib/lib.service.ts +33 -0
  146. package/cli/templates/lib/__lib/lib.signal.ts +34 -0
  147. package/cli/templates/lib/__lib/lib.store.ts +33 -0
  148. package/cli/templates/lib/cnst.ts +29 -0
  149. package/cli/templates/lib/db.ts +32 -0
  150. package/cli/templates/lib/dict.ts +49 -0
  151. package/cli/templates/lib/sig.ts +60 -0
  152. package/cli/templates/lib/srv.ts +34 -0
  153. package/cli/templates/lib/st.ts +31 -0
  154. package/cli/templates/lib/useClient.ts +19 -0
  155. package/cli/templates/lib/useServer.ts +7 -0
  156. package/cli/templates/libRoot/.gitignore.template +16 -0
  157. package/cli/templates/libRoot/akan.config.ts +12 -0
  158. package/cli/templates/libRoot/base/baseLogic.ts +10 -0
  159. package/cli/templates/libRoot/base/index.ts +8 -0
  160. package/cli/templates/libRoot/common/commonLogic.ts +10 -0
  161. package/cli/templates/libRoot/common/index.ts +8 -0
  162. package/cli/templates/libRoot/env/env.server.example.ts.template +6 -0
  163. package/cli/templates/libRoot/env/env.server.testing.ts.template +6 -0
  164. package/cli/templates/libRoot/lib/___libName__/__libName__.dictionary.ts +15 -0
  165. package/cli/templates/libRoot/lib/___libName__/__libName__.service.ts +11 -0
  166. package/cli/templates/libRoot/lib/___libName__/__libName__.store.ts +13 -0
  167. package/cli/templates/libRoot/lib/option.ts +17 -0
  168. package/cli/templates/libRoot/package.json.template +5 -0
  169. package/cli/templates/libRoot/srvkit/backendLogic.ts +10 -0
  170. package/cli/templates/libRoot/srvkit/index.ts +8 -0
  171. package/cli/templates/libRoot/tsconfig.json.template +11 -0
  172. package/cli/templates/libRoot/ui/index.ts +7 -0
  173. package/cli/templates/libRoot/webkit/frontendLogic.ts +10 -0
  174. package/cli/templates/libRoot/webkit/index.ts +8 -0
  175. package/cli/templates/localDev/docker-compose.yaml.template +37 -0
  176. package/cli/templates/module/__Model__.Template.tsx +36 -0
  177. package/cli/templates/module/__Model__.Unit.tsx +26 -0
  178. package/cli/templates/module/__Model__.Util.tsx +30 -0
  179. package/cli/templates/module/__Model__.View.tsx +29 -0
  180. package/cli/templates/module/__Model__.Zone.tsx +43 -0
  181. package/cli/templates/module/__model__.constant.ts +24 -0
  182. package/cli/templates/module/__model__.dictionary.ts +30 -0
  183. package/cli/templates/module/__model__.document.ts +23 -0
  184. package/cli/templates/module/__model__.service.ts +16 -0
  185. package/cli/templates/module/__model__.signal.ts +27 -0
  186. package/cli/templates/module/__model__.store.ts +19 -0
  187. package/cli/templates/module/index.tsx +44 -0
  188. package/cli/templates/moduleRoot/index.tsx +31 -0
  189. package/cli/templates/pkgRoot/tsconfig.json.template +10 -0
  190. package/cli/templates/server.ts +45 -0
  191. package/cli/templates/workspaceRoot/.env.template +14 -0
  192. package/cli/templates/workspaceRoot/.gitignore.template +130 -0
  193. package/cli/templates/workspaceRoot/.vscode/settings.json.template +23 -0
  194. package/cli/templates/workspaceRoot/biome.json.template +175 -0
  195. package/cli/templates/workspaceRoot/bunfig.toml +4 -0
  196. package/cli/templates/workspaceRoot/infra/app/Chart.yaml.template +6 -0
  197. package/cli/templates/workspaceRoot/infra/app/templates/frontend.yaml.template +182 -0
  198. package/cli/templates/workspaceRoot/infra/app/values/_common-values.yaml.template +183 -0
  199. package/cli/templates/workspaceRoot/package.json.template +7 -0
  200. package/cli/templates/workspaceRoot/tsconfig.json.template +26 -0
  201. package/cli/testHelpers.ts +171 -0
  202. package/cli/workspace/workspace.command.ts +60 -0
  203. package/cli/workspace/workspace.runner.ts +57 -0
  204. package/cli/workspace/workspace.script.ts +68 -0
  205. package/client/capacitor.ts +68 -0
  206. package/client/clientRuntime.ts +141 -0
  207. package/client/cookie.ts +121 -0
  208. package/client/createFont.ts +8 -0
  209. package/client/csrTypes.ts +259 -0
  210. package/client/decorators.ts +25 -0
  211. package/client/device.ts +147 -0
  212. package/client/fetch.ts +1 -0
  213. package/client/index.ts +15 -0
  214. package/client/locale.ts +4 -0
  215. package/client/makePageProto.tsx +178 -0
  216. package/client/router.ts +286 -0
  217. package/client/rscNavigation.ts +19 -0
  218. package/client/storage.ts +33 -0
  219. package/client/translator.ts +43 -0
  220. package/client/types.ts +228 -0
  221. package/client/useClient.ts +1 -0
  222. package/common/Logger.ts +177 -0
  223. package/common/applyMixins.ts +14 -0
  224. package/common/capitalize.ts +4 -0
  225. package/common/deepObjectify.ts +27 -0
  226. package/common/formatNumber.ts +14 -0
  227. package/common/formatPhone.ts +7 -0
  228. package/common/getAllPropertyDescriptors.ts +13 -0
  229. package/common/hmrPhase.ts +17 -0
  230. package/common/httpClient.ts +101 -0
  231. package/common/index.ts +50 -0
  232. package/common/isDayjs.ts +3 -0
  233. package/common/isEmail.ts +2 -0
  234. package/common/isPhoneNumber.ts +8 -0
  235. package/common/isQueryEqual.ts +23 -0
  236. package/common/isValidDate.ts +14 -0
  237. package/common/localeConfig.ts +41 -0
  238. package/common/lowerlize.ts +4 -0
  239. package/common/mergeVersion.ts +10 -0
  240. package/common/objectify.ts +7 -0
  241. package/common/pathGet.ts +13 -0
  242. package/common/pathSet.ts +16 -0
  243. package/common/randomPick.ts +1 -0
  244. package/common/randomPicks.ts +12 -0
  245. package/common/routeConvention.ts +203 -0
  246. package/common/sleep.ts +8 -0
  247. package/common/splitVersion.ts +11 -0
  248. package/common/subRoute.ts +34 -0
  249. package/common/types.ts +15 -0
  250. package/constant/constantRegistry.ts +334 -0
  251. package/constant/crystalize.ts +45 -0
  252. package/constant/deserialize.ts +70 -0
  253. package/constant/fieldInfo.ts +415 -0
  254. package/constant/getDefault.ts +18 -0
  255. package/constant/immerify.ts +16 -0
  256. package/constant/index.ts +10 -0
  257. package/constant/purify.ts +118 -0
  258. package/constant/serialize.ts +87 -0
  259. package/constant/types.ts +105 -0
  260. package/constant/via.ts +360 -0
  261. package/devkit/aiEditor.ts +299 -0
  262. package/devkit/akanApp/akanApp.host.ts +356 -0
  263. package/devkit/akanApp/index.ts +1 -0
  264. package/devkit/akanConfig/akanConfig.ts +332 -0
  265. package/devkit/akanConfig/index.ts +2 -0
  266. package/devkit/akanConfig/types.ts +187 -0
  267. package/devkit/applicationBuildReporter.ts +69 -0
  268. package/devkit/applicationBuildRunner.ts +302 -0
  269. package/devkit/applicationReleasePackager.ts +205 -0
  270. package/devkit/artifact/implicitRootLayout.ts +155 -0
  271. package/devkit/artifact/index.ts +1 -0
  272. package/devkit/artifact/routeSeedIndex.ts +128 -0
  273. package/devkit/auth.ts +41 -0
  274. package/devkit/builder.ts +164 -0
  275. package/devkit/capacitor.base.config.ts +74 -0
  276. package/devkit/capacitorApp.ts +385 -0
  277. package/devkit/commandDecorators/argMeta.ts +88 -0
  278. package/devkit/commandDecorators/command.ts +314 -0
  279. package/devkit/commandDecorators/commandBuilder.ts +188 -0
  280. package/devkit/commandDecorators/commandMeta.ts +6 -0
  281. package/devkit/commandDecorators/dependencyBuilder.ts +100 -0
  282. package/devkit/commandDecorators/helpFormatter.ts +217 -0
  283. package/devkit/commandDecorators/index.ts +8 -0
  284. package/devkit/commandDecorators/targetMeta.ts +31 -0
  285. package/devkit/commandDecorators/types.ts +10 -0
  286. package/devkit/constants.ts +25 -0
  287. package/devkit/createTunnel.ts +36 -0
  288. package/devkit/dependencyScanner.ts +339 -0
  289. package/devkit/executors.ts +1326 -0
  290. package/devkit/extractDeps.ts +85 -0
  291. package/devkit/fileEditor.ts +106 -0
  292. package/devkit/fileSys.ts +39 -0
  293. package/devkit/frontendBuild/allRoutesBuilder.ts +103 -0
  294. package/devkit/frontendBuild/clientBuildTypes.ts +114 -0
  295. package/devkit/frontendBuild/clientEntriesBundler.ts +300 -0
  296. package/devkit/frontendBuild/clientEntryDiscovery.ts +196 -0
  297. package/devkit/frontendBuild/csrArtifactBuilder.ts +237 -0
  298. package/devkit/frontendBuild/cssCompiler.ts +279 -0
  299. package/devkit/frontendBuild/cssImportResolver.ts +116 -0
  300. package/devkit/frontendBuild/fontOptimizer.ts +427 -0
  301. package/devkit/frontendBuild/hmrChangeClassifier.ts +28 -0
  302. package/devkit/frontendBuild/hmrWatcher.ts +101 -0
  303. package/devkit/frontendBuild/index.ts +18 -0
  304. package/devkit/frontendBuild/pagesBundleBuilder.ts +137 -0
  305. package/devkit/frontendBuild/pagesEntrySourceGenerator.ts +37 -0
  306. package/devkit/frontendBuild/precompressArtifacts.ts +59 -0
  307. package/devkit/frontendBuild/routeClientBuilder.ts +290 -0
  308. package/devkit/frontendBuild/routesManifestArtifactSerializer.ts +62 -0
  309. package/devkit/frontendBuild/ssrBaseArtifactBuilder.ts +139 -0
  310. package/devkit/frontendBuild/vendorSpecifiers.ts +16 -0
  311. package/devkit/frontendBuild/watchRootResolver.ts +28 -0
  312. package/devkit/getCredentials.ts +19 -0
  313. package/devkit/getDirname.ts +3 -0
  314. package/devkit/getModelFileData.ts +59 -0
  315. package/devkit/getRelatedCnsts.ts +300 -0
  316. package/devkit/guideline.ts +19 -0
  317. package/devkit/incrementalBuilder/incrementalBuilder.host.ts +78 -0
  318. package/devkit/incrementalBuilder/incrementalBuilder.proc.ts +330 -0
  319. package/devkit/incrementalBuilder/index.ts +1 -0
  320. package/devkit/index.ts +36 -0
  321. package/devkit/lint/no-import-client-functions.grit +32 -0
  322. package/devkit/lint/no-import-external-library.grit +21 -0
  323. package/devkit/lint/no-js-private-class-method.grit +42 -0
  324. package/devkit/lint/no-use-client-in-server.grit +7 -0
  325. package/devkit/lint/non-scalar-props-restricted.grit +13 -0
  326. package/devkit/linter.ts +248 -0
  327. package/devkit/mobile/index.ts +1 -0
  328. package/devkit/mobile/mobileTarget.ts +47 -0
  329. package/devkit/prompter.ts +71 -0
  330. package/devkit/scanInfo.ts +605 -0
  331. package/devkit/selectModel.ts +11 -0
  332. package/devkit/spinner.ts +54 -0
  333. package/devkit/sshTunnel.ts +151 -0
  334. package/devkit/streamAi.ts +45 -0
  335. package/devkit/transforms/barrelAnalyzer.ts +249 -0
  336. package/devkit/transforms/barrelImportsPlugin.ts +451 -0
  337. package/devkit/transforms/externalizeFrameworkPlugin.ts +159 -0
  338. package/devkit/transforms/index.ts +5 -0
  339. package/devkit/transforms/rscUseClientTransform.ts +52 -0
  340. package/devkit/transforms/useClientBundlePlugin.ts +47 -0
  341. package/devkit/typeChecker.ts +260 -0
  342. package/devkit/types.ts +42 -0
  343. package/devkit/ui/MultiScrollList.tsx +228 -0
  344. package/devkit/ui/ScrollList.tsx +106 -0
  345. package/devkit/ui/index.ts +2 -0
  346. package/devkit/uploadRelease.ts +95 -0
  347. package/devkit/useStdoutDimensions.ts +20 -0
  348. package/dictionary/base.dictionary.ts +91 -0
  349. package/dictionary/dictInfo.ts +1079 -0
  350. package/dictionary/dictionary.ts +10 -0
  351. package/dictionary/index.ts +12 -0
  352. package/dictionary/locale.ts +230 -0
  353. package/dictionary/trans.ts +196 -0
  354. package/document/by.ts +39 -0
  355. package/document/dataLoader.ts +91 -0
  356. package/document/database.ts +168 -0
  357. package/document/databaseRegistry.ts +113 -0
  358. package/document/documentQuery.ts +143 -0
  359. package/document/documentSchema.ts +91 -0
  360. package/document/filterMeta.ts +210 -0
  361. package/document/index.ts +11 -0
  362. package/document/into.ts +169 -0
  363. package/document/loaderInfo.ts +50 -0
  364. package/document/schema.ts +24 -0
  365. package/document/types.ts +41 -0
  366. package/fetch/client/fetchClient.ts +600 -0
  367. package/fetch/client/httpClient.ts +157 -0
  368. package/fetch/client/index.ts +3 -0
  369. package/fetch/client/wsClient.ts +246 -0
  370. package/fetch/fetchType/appliedReturn.type.ts +108 -0
  371. package/fetch/fetchType/buildFetch.type.ts +24 -0
  372. package/fetch/fetchType/clientSignal.type.ts +22 -0
  373. package/fetch/fetchType/endpointFetch.type.ts +56 -0
  374. package/fetch/fetchType/index.ts +5 -0
  375. package/fetch/fetchType/sliceFetch.type.ts +173 -0
  376. package/fetch/index.ts +4 -0
  377. package/fetch/requestStorage.ts +127 -0
  378. package/fetch/serializer/fetch.serializer.ts +131 -0
  379. package/fetch/serializer/index.ts +1 -0
  380. package/fetch/types.ts +28 -0
  381. package/package.json +202 -5
  382. package/server/SSR_MEMORY_DIAGNOSIS.md +107 -0
  383. package/server/akanApp.ts +855 -0
  384. package/server/akanLib.ts +43 -0
  385. package/server/akanOption.ts +42 -0
  386. package/server/akanServer.ts +369 -0
  387. package/server/artifact/builderRpc.ts +124 -0
  388. package/server/artifact/index.ts +6 -0
  389. package/server/artifact/ipcTypes.ts +46 -0
  390. package/server/artifact/manifestTypes.ts +19 -0
  391. package/server/artifact/routeClientCache.ts +224 -0
  392. package/server/artifact/routeSeedIndexStore.ts +89 -0
  393. package/server/artifact/routesManifestStore.ts +120 -0
  394. package/server/decorators.ts +95 -0
  395. package/server/di/diLifecycle.ts +520 -0
  396. package/server/di/index.ts +4 -0
  397. package/server/di/predefinedAdaptor.ts +77 -0
  398. package/server/di/resolveAdaptorHierarchy.ts +82 -0
  399. package/server/di/resolveHierarchy.ts +89 -0
  400. package/server/di/resolveServiceHierarchy.ts +47 -0
  401. package/server/di/utils.ts +40 -0
  402. package/server/hmr/changeBatch.ts +14 -0
  403. package/server/hmr/clientScript.ts +310 -0
  404. package/server/hmr/devHmrController.ts +395 -0
  405. package/server/hmr/index.ts +4 -0
  406. package/server/hmr/wsHub.ts +56 -0
  407. package/server/imageOptimizer.ts +427 -0
  408. package/server/imageOptimizerError.ts +8 -0
  409. package/server/index.ts +14 -0
  410. package/server/lifecycle/shutdownManager.ts +52 -0
  411. package/server/logging/rotatingLogWriter.ts +190 -0
  412. package/server/processMetricsCollector.ts +78 -0
  413. package/server/proxy/akanResponse.ts +16 -0
  414. package/server/proxy/bunRequestFields.ts +12 -0
  415. package/server/proxy/hostBasePathWebProxy.ts +112 -0
  416. package/server/proxy/index.ts +15 -0
  417. package/server/proxy/localeWebProxy.ts +71 -0
  418. package/server/proxy/types.ts +41 -0
  419. package/server/proxy/webProxyRunner.ts +90 -0
  420. package/server/resolver/database.resolver.ts +340 -0
  421. package/server/resolver/index.ts +3 -0
  422. package/server/resolver/resolver.contract.fixture.ts +222 -0
  423. package/server/resolver/service.resolver.ts +176 -0
  424. package/server/resolver/signal.resolver.ts +386 -0
  425. package/server/robots.ts +32 -0
  426. package/server/routeElementComposer.tsx +91 -0
  427. package/server/routeTreeBuilder.ts +279 -0
  428. package/server/routing/apiRouter.ts +226 -0
  429. package/server/rscClient.tsx +140 -0
  430. package/server/rscWorker.tsx +625 -0
  431. package/server/rscWorkerHost.ts +616 -0
  432. package/server/sitemap.ts +90 -0
  433. package/server/ssrFromRscRenderer.tsx +285 -0
  434. package/server/ssrTypes.ts +48 -0
  435. package/server/types/react-server-dom-webpack.d.ts +91 -0
  436. package/server/types.tsx +109 -0
  437. package/server/vendor/akanjs-base.ts +1 -0
  438. package/server/vendor/akanjs-common.ts +1 -0
  439. package/server/vendor/akanjs-constant.ts +1 -0
  440. package/server/vendor/akanjs-store.ts +1 -0
  441. package/server/vendor/react-dom-client.ts +5 -0
  442. package/server/vendor/react-dom.ts +21 -0
  443. package/server/vendor/react-jsx-dev-runtime.ts +5 -0
  444. package/server/vendor/react-jsx-runtime.ts +5 -0
  445. package/server/vendor/react-refresh-runtime.ts +6 -0
  446. package/server/vendor/react-server-dom-webpack-client-browser.ts +12 -0
  447. package/server/vendor/react.ts +51 -0
  448. package/server/vendor/scheduler.ts +23 -0
  449. package/server/webRouter.ts +712 -0
  450. package/service/adapt.ts +47 -0
  451. package/service/base.service.ts +18 -0
  452. package/service/index.ts +10 -0
  453. package/service/injectInfo.ts +393 -0
  454. package/service/ipcTypes.ts +127 -0
  455. package/service/predefinedAdaptor/cache.adaptor.ts +105 -0
  456. package/service/predefinedAdaptor/compress.adaptor.ts +357 -0
  457. package/service/predefinedAdaptor/database.adaptor.ts +1310 -0
  458. package/service/predefinedAdaptor/index.ts +13 -0
  459. package/service/predefinedAdaptor/logging.adaptor.ts +36 -0
  460. package/service/predefinedAdaptor/queue.adaptor.ts +42 -0
  461. package/service/predefinedAdaptor/role.adaptor.ts +18 -0
  462. package/service/predefinedAdaptor/schedule.adaptor.ts +188 -0
  463. package/service/predefinedAdaptor/solidCache.adaptor.ts +143 -0
  464. package/service/predefinedAdaptor/solidPubsub.adaptor.ts +98 -0
  465. package/service/predefinedAdaptor/solidQueue.adaptor.ts +203 -0
  466. package/service/predefinedAdaptor/solidSqlite.ts +85 -0
  467. package/service/predefinedAdaptor/sqlitePath.ts +20 -0
  468. package/service/predefinedAdaptor/storage.adaptor.ts +121 -0
  469. package/service/predefinedAdaptor/websocket.adaptor.ts +313 -0
  470. package/service/serve.ts +223 -0
  471. package/service/serviceModule.ts +221 -0
  472. package/service/serviceRegistry.ts +26 -0
  473. package/service/types.ts +113 -0
  474. package/signal/base.signal.ts +46 -0
  475. package/signal/endpoint.ts +122 -0
  476. package/signal/endpointInfo.ts +374 -0
  477. package/signal/exception.ts +50 -0
  478. package/signal/guard.ts +18 -0
  479. package/signal/guards.ts +16 -0
  480. package/signal/index.ts +18 -0
  481. package/signal/intercept.ts +39 -0
  482. package/signal/internal.ts +56 -0
  483. package/signal/internalArg.ts +38 -0
  484. package/signal/internalInfo.ts +208 -0
  485. package/signal/middleware.ts +108 -0
  486. package/signal/serializer/fetch.serializer.ts +128 -0
  487. package/signal/serializer/index.ts +1 -0
  488. package/signal/serverSignal.ts +114 -0
  489. package/signal/signalContext.ts +446 -0
  490. package/signal/signalRegistry.ts +82 -0
  491. package/signal/slice.ts +158 -0
  492. package/signal/sliceInfo.ts +254 -0
  493. package/signal/types.ts +131 -0
  494. package/store/action.ts +1067 -0
  495. package/store/baseSt.ts +81 -0
  496. package/store/hooks.ts +2 -0
  497. package/store/index.ts +8 -0
  498. package/store/rootStore.ts +26 -0
  499. package/store/state.ts +226 -0
  500. package/store/stateBuilder.ts +429 -0
  501. package/store/stateInfo.ts +66 -0
  502. package/store/store.ts +194 -0
  503. package/store/storeInstance.ts +382 -0
  504. package/store/storeRegistry.ts +84 -0
  505. package/store/types.ts +69 -0
  506. package/store/withSelector.ts +62 -0
  507. package/test/index.ts +16 -0
  508. package/test/playwright.config.base.ts +48 -0
  509. package/test/playwright.pageAgent.ts +41 -0
  510. package/test/sample.ts +19 -0
  511. package/test/sampleOf.ts +70 -0
  512. package/test/signalTest.preload.ts +10 -0
  513. package/test/signalTestRuntime.ts +126 -0
  514. package/test/testServer.ts +187 -0
  515. package/ui/BottomSheet.tsx +103 -0
  516. package/ui/Button.tsx +70 -0
  517. package/ui/ClientSide.tsx +11 -0
  518. package/ui/Clipboard.tsx +49 -0
  519. package/ui/Constant/Doc.tsx +696 -0
  520. package/ui/Constant/Mermaid.tsx +149 -0
  521. package/ui/Constant/index.ts +6 -0
  522. package/ui/Constant/schemaDoc.ts +324 -0
  523. package/ui/Copy.tsx +27 -0
  524. package/ui/CsrImage.tsx +38 -0
  525. package/ui/Data/CardList.tsx +141 -0
  526. package/ui/Data/Dashboard.tsx +72 -0
  527. package/ui/Data/Insight.tsx +35 -0
  528. package/ui/Data/Item.tsx +285 -0
  529. package/ui/Data/ListContainer.tsx +320 -0
  530. package/ui/Data/Pagination.tsx +54 -0
  531. package/ui/Data/QueryMaker.tsx +21 -0
  532. package/ui/Data/TableList.tsx +161 -0
  533. package/ui/Data/index.ts +11 -0
  534. package/ui/Data/index_.tsx +11 -0
  535. package/ui/DatePicker.tsx +184 -0
  536. package/ui/Dialog/Action.tsx +15 -0
  537. package/ui/Dialog/Close.tsx +22 -0
  538. package/ui/Dialog/Content.tsx +11 -0
  539. package/ui/Dialog/Modal.tsx +137 -0
  540. package/ui/Dialog/Provider.tsx +33 -0
  541. package/ui/Dialog/Title.tsx +15 -0
  542. package/ui/Dialog/Trigger.tsx +22 -0
  543. package/ui/Dialog/context.ts +20 -0
  544. package/ui/Dialog/index.tsx +15 -0
  545. package/ui/DragAction.tsx +129 -0
  546. package/ui/DraggableList.tsx +230 -0
  547. package/ui/Dropdown.tsx +51 -0
  548. package/ui/Empty.tsx +32 -0
  549. package/ui/Field.tsx +1556 -0
  550. package/ui/FontFace.tsx +26 -0
  551. package/ui/Image.tsx +185 -0
  552. package/ui/InfiniteScroll.tsx +67 -0
  553. package/ui/Input.tsx +636 -0
  554. package/ui/KeyboardAvoiding.tsx +62 -0
  555. package/ui/Layout/BottomAction.tsx +15 -0
  556. package/ui/Layout/BottomInset.tsx +42 -0
  557. package/ui/Layout/BottomTab.tsx +71 -0
  558. package/ui/Layout/Header.tsx +38 -0
  559. package/ui/Layout/LeftSider.tsx +34 -0
  560. package/ui/Layout/Navbar.tsx +46 -0
  561. package/ui/Layout/RightSider.tsx +41 -0
  562. package/ui/Layout/Sider.tsx +69 -0
  563. package/ui/Layout/Template.tsx +11 -0
  564. package/ui/Layout/TopLeftAction.tsx +28 -0
  565. package/ui/Layout/Unit.tsx +19 -0
  566. package/ui/Layout/View.tsx +12 -0
  567. package/ui/Layout/Zone.tsx +10 -0
  568. package/ui/Layout/index.ts +27 -0
  569. package/ui/Link/Back.tsx +15 -0
  570. package/ui/Link/Close.tsx +20 -0
  571. package/ui/Link/CsrLink.tsx +41 -0
  572. package/ui/Link/Lang.tsx +16 -0
  573. package/ui/Link/SsrLink.tsx +68 -0
  574. package/ui/Link/index.tsx +32 -0
  575. package/ui/Link/types.ts +47 -0
  576. package/ui/Load/Edit.tsx +19 -0
  577. package/ui/Load/Edit_Client.tsx +120 -0
  578. package/ui/Load/Page.tsx +40 -0
  579. package/ui/Load/PageCSR.tsx +39 -0
  580. package/ui/Load/Pagination.tsx +89 -0
  581. package/ui/Load/Units.tsx +330 -0
  582. package/ui/Load/View.tsx +115 -0
  583. package/ui/Load/index.ts +11 -0
  584. package/ui/Load/index_.tsx +6 -0
  585. package/ui/Loading/Area.tsx +10 -0
  586. package/ui/Loading/Button.tsx +17 -0
  587. package/ui/Loading/Input.tsx +17 -0
  588. package/ui/Loading/ProgressBar.tsx +14 -0
  589. package/ui/Loading/Skeleton.tsx +22 -0
  590. package/ui/Loading/Spin.tsx +22 -0
  591. package/ui/Loading/index.tsx +8 -0
  592. package/ui/Menu.tsx +273 -0
  593. package/ui/Modal.tsx +87 -0
  594. package/ui/Model/AdminPanel.tsx +51 -0
  595. package/ui/Model/Edit.tsx +46 -0
  596. package/ui/Model/EditModal.tsx +301 -0
  597. package/ui/Model/EditWrapper.tsx +48 -0
  598. package/ui/Model/LoadInit.tsx +11 -0
  599. package/ui/Model/New.tsx +46 -0
  600. package/ui/Model/NewWrapper.tsx +20 -0
  601. package/ui/Model/NewWrapper_Client.tsx +57 -0
  602. package/ui/Model/Remove.tsx +75 -0
  603. package/ui/Model/RemoveWrapper.tsx +38 -0
  604. package/ui/Model/SureToRemove.tsx +108 -0
  605. package/ui/Model/View.tsx +65 -0
  606. package/ui/Model/ViewEditModal.tsx +125 -0
  607. package/ui/Model/ViewModal.tsx +71 -0
  608. package/ui/Model/ViewWrapper.tsx +38 -0
  609. package/ui/Model/index.ts +33 -0
  610. package/ui/Model/index_.tsx +16 -0
  611. package/ui/More.tsx +56 -0
  612. package/ui/ObjectId.tsx +29 -0
  613. package/ui/Pagination.tsx +120 -0
  614. package/ui/Popconfirm.tsx +135 -0
  615. package/ui/Portal.tsx +10 -0
  616. package/ui/Radio.tsx +53 -0
  617. package/ui/RecentTime.tsx +123 -0
  618. package/ui/Refresh.tsx +24 -0
  619. package/ui/ScreenNavigator.tsx +129 -0
  620. package/ui/Select.tsx +322 -0
  621. package/ui/Signal/Arg.tsx +352 -0
  622. package/ui/Signal/Doc.tsx +231 -0
  623. package/ui/Signal/Listener.tsx +74 -0
  624. package/ui/Signal/Message.tsx +267 -0
  625. package/ui/Signal/Object.tsx +131 -0
  626. package/ui/Signal/PubSub.tsx +247 -0
  627. package/ui/Signal/Request.tsx +30 -0
  628. package/ui/Signal/Response.tsx +76 -0
  629. package/ui/Signal/RestApi.tsx +390 -0
  630. package/ui/Signal/WebSocket.tsx +47 -0
  631. package/ui/Signal/index.ts +10 -0
  632. package/ui/Signal/makeExample.ts +75 -0
  633. package/ui/System/CSR.tsx +420 -0
  634. package/ui/System/Client.tsx +296 -0
  635. package/ui/System/Common.tsx +83 -0
  636. package/ui/System/DevModeToggle.tsx +21 -0
  637. package/ui/System/Gtag.tsx +69 -0
  638. package/ui/System/Messages.tsx +175 -0
  639. package/ui/System/Reconnect.tsx +156 -0
  640. package/ui/System/Root.tsx +10 -0
  641. package/ui/System/SSR.tsx +163 -0
  642. package/ui/System/SelectLanguage.tsx +47 -0
  643. package/ui/System/ThemeToggle.tsx +98 -0
  644. package/ui/System/index.tsx +23 -0
  645. package/ui/Tab/Menu.tsx +56 -0
  646. package/ui/Tab/Menus.tsx +10 -0
  647. package/ui/Tab/Panel.tsx +25 -0
  648. package/ui/Tab/Provider.tsx +25 -0
  649. package/ui/Tab/context.ts +16 -0
  650. package/ui/Tab/index.tsx +11 -0
  651. package/ui/Table.tsx +131 -0
  652. package/ui/ToggleSelect.tsx +144 -0
  653. package/ui/Unauthorized.tsx +29 -0
  654. package/ui/animated.tsx +8 -0
  655. package/ui/fontCss.ts +86 -0
  656. package/ui/index.ts +44 -0
  657. package/ui/styles.css +617 -0
  658. package/webkit/bootCsr.tsx +275 -0
  659. package/webkit/createRobotPage.ts +15 -0
  660. package/webkit/createSitemapPage.ts +4 -0
  661. package/webkit/index.ts +19 -0
  662. package/webkit/lazy.tsx +37 -0
  663. package/webkit/types.ts +7 -0
  664. package/webkit/useCamera.tsx +99 -0
  665. package/webkit/useCodepush.tsx +99 -0
  666. package/webkit/useContact.tsx +48 -0
  667. package/webkit/useCsrValues.ts +661 -0
  668. package/webkit/useDebounce.ts +24 -0
  669. package/webkit/useFetch.ts +48 -0
  670. package/webkit/useGeoLocation.tsx +24 -0
  671. package/webkit/useHistory.ts +76 -0
  672. package/webkit/useInterval.ts +21 -0
  673. package/webkit/useLocation.ts +69 -0
  674. package/webkit/usePurchase.tsx +156 -0
  675. package/webkit/usePushNoti.tsx +48 -0
  676. package/webkit/useThrottle.ts +22 -0
  677. package/src/index.js +0 -2
  678. package/src/index.js.map +0 -1
  679. package/src/lib/akan2.js +0 -4
  680. package/src/lib/akan2.js.map +0 -1
  681. package/src/run.js +0 -4
  682. package/src/run.js.map +0 -1
@@ -0,0 +1,93 @@
1
+ {
2
+ "title": "CSS Rule with TailwindCSS and DaisyUI",
3
+ "description": "Comprehensive guidelines for creating CSS with TailwindCSS and DaisyUI in the Akan.js framework",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "clsx utility for class name management",
8
+ "path": "pkgs/akanjs/client/types.ts"
9
+ },
10
+ {
11
+ "type": "example",
12
+ "description": "Unit components (list items/cards)",
13
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
14
+ "sample": 3
15
+ },
16
+ {
17
+ "type": "example",
18
+ "description": "View components (detailed displays)",
19
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
20
+ "sample": 3
21
+ },
22
+ {
23
+ "type": "example",
24
+ "description": "Edit components (forms for data creation/editing)",
25
+ "path": "{apps,libs}/*/lib/*/*.Edit.tsx",
26
+ "sample": 2
27
+ },
28
+ {
29
+ "type": "example",
30
+ "description": "Util components (special function components)",
31
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
32
+ "sample": 2
33
+ },
34
+ {
35
+ "type": "example",
36
+ "description": "Zone components (container components)",
37
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
38
+ "sample": 2
39
+ },
40
+ {
41
+ "type": "example",
42
+ "description": "Reusable UI components",
43
+ "path": "{libs,apps}/*/ui/**/*.tsx",
44
+ "sample": 3
45
+ },
46
+ {
47
+ "type": "usage",
48
+ "description": "Conditional rendering with clsx",
49
+ "path": "{apps,libs}/*/lib/*/*.tsx",
50
+ "filterText": "clsx",
51
+ "sample": 3
52
+ },
53
+ {
54
+ "type": "usage",
55
+ "description": "DaisyUI color usage",
56
+ "path": "{apps,libs}/*/lib/*/*.tsx",
57
+ "filterText": "bg-primary|bg-secondary|bg-accent|bg-info|bg-success|bg-warning|bg-error",
58
+ "sample": 3
59
+ },
60
+ {
61
+ "type": "usage",
62
+ "description": "Responsive design patterns",
63
+ "path": "{apps,libs}/*/lib/*/*.tsx",
64
+ "filterText": "sm:|md:|lg:|xl:|2xl:",
65
+ "sample": 3
66
+ }
67
+ ],
68
+ "update": {
69
+ "filePath": "./cssRule.instruction.md",
70
+ "contents": [
71
+ "Core Principles - Fundamental styling concepts",
72
+ "Class Management with clsx - How to handle conditional class names",
73
+ "Component Structure Best Practices - Consistent component styling",
74
+ "Component Types in Akan.js - Styling patterns for different component types",
75
+ "Common UI Patterns - Reusable design patterns",
76
+ "Best Practices - Guidelines for maintainable CSS",
77
+ "Common Mistakes to Avoid - What not to do",
78
+ "Troubleshooting - Fixing common issues"
79
+ ],
80
+ "rules": [
81
+ "clsx should be used for conditional class names and className composition",
82
+ "Every component should accept and properly handle className prop for composition",
83
+ "Color system of DaisyUI should be used for colors (primary, secondary, accent, etc.) - hardcoded colors should be avoided",
84
+ "Components should follow responsive design principles with mobile-first approach",
85
+ "Use Tailwind's spacing scale consistently for margins and padding",
86
+ "Group related classes together for better readability",
87
+ "DaisyUI components should be used for common UI elements when available",
88
+ "Apply proper focus, hover, and active states for interactive elements",
89
+ "Respect the naming conventions for component types (Unit, View, Edit, Util, Zone)"
90
+ ]
91
+ },
92
+ "page": "/akanjs/(docs)/docs/codebase/css/_index.tsx"
93
+ }
@@ -0,0 +1,435 @@
1
+ # CSS Styling Guidelines with TailwindCSS and DaisyUI in Akan.js
2
+
3
+ ## Introduction
4
+
5
+ This document provides comprehensive styling guidelines for Akan.js components using TailwindCSS and DaisyUI. Following these standards ensures consistency, maintainability, and proper theming across all applications in the Akan.js ecosystem.
6
+
7
+ ## Core Principles
8
+
9
+ 1. **Utility-First Approach**: Use Tailwind's utility classes for styling instead of custom CSS
10
+ 2. **Component Composition**: Design with composition in mind, allowing styling overrides via `className` prop
11
+ 3. **Theme Consistency**: Use DaisyUI's theme variables for colors and maintain consistent spacing
12
+ 4. **Responsive Design**: Implement mobile-first responsive layouts using Tailwind's breakpoint prefixes
13
+ 5. **Accessibility**: Ensure proper contrast, focus states, and semantic markup
14
+
15
+ ## Class Management with `clsx`
16
+
17
+ ### Importing `clsx`
18
+
19
+ Always import the `clsx` utility from the client package:
20
+
21
+ ```tsx
22
+ import { clsx } from "akanjs/client";
23
+ ```
24
+
25
+ ### Basic Usage
26
+
27
+ Use `clsx` to combine class names conditionally:
28
+
29
+ ```tsx
30
+ <div
31
+ className={clsx(
32
+ "base-classes", // Always applied
33
+ condition && "conditional-classes", // Applied when condition is true
34
+ className // Forward className from props
35
+ )}
36
+ >
37
+ {/* Content */}
38
+ </div>
39
+ ```
40
+
41
+ ### Object Syntax for Multiple Conditions
42
+
43
+ ```tsx
44
+ <div
45
+ className={clsx(
46
+ "base-styles",
47
+ {
48
+ "bg-primary": isPrimary,
49
+ "bg-secondary": isSecondary,
50
+ "bg-success": isSuccess,
51
+ "bg-error": isError,
52
+ },
53
+ className
54
+ )}
55
+ >
56
+ {/* Content */}
57
+ </div>
58
+ ```
59
+
60
+ ## Component Structure Best Practices
61
+
62
+ ### 1. Accept and Forward `className` Prop
63
+
64
+ Every component should accept a `className` prop to enable style composition:
65
+
66
+ ```tsx
67
+ interface CardProps {
68
+ className?: string;
69
+ // Other props...
70
+ }
71
+
72
+ export const Card = ({ className, ...props }: CardProps) => {
73
+ return (
74
+ <div
75
+ className={clsx(
76
+ "card bg-base-100 shadow-md",
77
+ className // Always include at the end to allow overrides
78
+ )}
79
+ >
80
+ {/* Card content */}
81
+ </div>
82
+ );
83
+ };
84
+ ```
85
+
86
+ ### 2. Use DaisyUI's Semantic Color System
87
+
88
+ Avoid hardcoded color values. Use DaisyUI's theme variables instead for better theming support:
89
+
90
+ ✅ **Recommended:**
91
+
92
+ ```tsx
93
+ <div className="bg-primary text-primary-content hover:bg-primary-focus">Themeable content</div>
94
+ ```
95
+
96
+ ❌ **Avoid:**
97
+
98
+ ```tsx
99
+ <div className="bg-[#3b82f6] text-white hover:bg-[#2563eb]">Hardcoded colors</div>
100
+ ```
101
+
102
+ **DaisyUI Color System:**
103
+
104
+ | Base Color | Text Color | Focus/Hover Variant |
105
+ | ---------- | ----------------- | ------------------- |
106
+ | primary | primary-content | primary-focus |
107
+ | secondary | secondary-content | secondary-focus |
108
+ | accent | accent-content | accent-focus |
109
+ | neutral | neutral-content | neutral-focus |
110
+ | base-100 | base-content | base-200/base-300 |
111
+ | info | info-content | info-focus |
112
+ | success | success-content | success-focus |
113
+ | warning | warning-content | warning-focus |
114
+ | error | error-content | error-focus |
115
+
116
+ ### 3. Implement Responsive Design
117
+
118
+ Use Tailwind's responsive prefixes for mobile-first development:
119
+
120
+ ```tsx
121
+ <div className="flex flex-col gap-4 md:flex-row">
122
+ <div className="w-full md:w-1/3">Sidebar</div>
123
+ <div className="w-full md:w-2/3">Main Content</div>
124
+ </div>
125
+ ```
126
+
127
+ **Breakpoint prefixes:**
128
+
129
+ - `sm:` - 640px and above
130
+ - `md:` - 768px and above
131
+ - `lg:` - 1024px and above
132
+ - `xl:` - 1280px and above
133
+ - `2xl:` - 1536px and above
134
+
135
+ ### 4. Implement State and Interaction Variants
136
+
137
+ Use Tailwind's state variants for interactive elements:
138
+
139
+ ```tsx
140
+ <button className="bg-primary text-primary-content hover:bg-primary-focus focus:ring-primary focus:ring-2 focus:ring-offset-2 active:scale-95 disabled:pointer-events-none disabled:opacity-50">
141
+ Interactive Button
142
+ </button>
143
+ ```
144
+
145
+ **Common state variants:**
146
+
147
+ - `hover:` - Mouse hover state
148
+ - `focus:` - Focus state
149
+ - `active:` - Active/pressed state
150
+ - `disabled:` - Disabled state
151
+ - `group-hover:` - Parent hover targeting child elements
152
+ - `dark:` - Dark mode variant
153
+
154
+ ### 5. Use Consistent Spacing
155
+
156
+ Maintain consistent spacing using Tailwind's scale:
157
+
158
+ ```tsx
159
+ <div className="space-y-4">
160
+ <div className="p-4">Section 1</div>
161
+ <div className="p-4">Section 2</div>
162
+ <div className="p-4">Section 3</div>
163
+ </div>
164
+ ```
165
+
166
+ ## Component Types in Akan.js
167
+
168
+ Akan.js follows specific component naming conventions with distinct styling approaches:
169
+
170
+ ### 1. Unit Components (\*.Unit.tsx)
171
+
172
+ List items or cards that display summarized data:
173
+
174
+ ```tsx
175
+ // Example: Project.Unit.tsx
176
+ export const Card = ({ className, project, href }: ModelProps<"project", cnst.LightProject>) => {
177
+ return (
178
+ <Link
179
+ href={href}
180
+ className={clsx(
181
+ "border-base-300 bg-base-100 flex flex-col gap-3 rounded-lg border-2 p-4",
182
+ "hover:border-primary transition-all hover:shadow-md",
183
+ "focus:ring-primary focus:ring-2 focus:outline-hidden",
184
+ className
185
+ )}
186
+ >
187
+ <h3 className="text-base-content text-lg font-semibold">{project.name}</h3>
188
+ {/* Additional content */}
189
+ </Link>
190
+ );
191
+ };
192
+ ```
193
+
194
+ ### 2. View Components (\*.View.tsx)
195
+
196
+ Detailed displays of full data models:
197
+
198
+ ```tsx
199
+ // Example: Project.View.tsx
200
+ export const Detail = ({ className, project }: ModelProps<"project", cnst.FullProject>) => {
201
+ return (
202
+ <div className={clsx("bg-base-100 rounded-lg p-6 shadow-lg", className)}>
203
+ <div className="border-base-content mb-8">
204
+ <h1 className="text-2xl font-bold">{project.name}</h1>
205
+ </div>
206
+
207
+ <div className="grid grid-cols-1 gap-6 md:grid-cols-2">{/* Project details */}</div>
208
+ </div>
209
+ );
210
+ };
211
+ ```
212
+
213
+ ### 3. Edit Components (\*.Edit.tsx)
214
+
215
+ Form components for creating or editing data:
216
+
217
+ ```tsx
218
+ // Example: Project.Edit.tsx
219
+ export const Form = ({ className }: { className?: string }) => {
220
+ const { project, setProject } = useProjectStore();
221
+
222
+ return (
223
+ <div className={clsx("card bg-base-100 p-6 shadow-lg", className)}>
224
+ <h2 className="card-title mb-4">Project Details</h2>
225
+
226
+ <div className="form-control w-full">
227
+ <label className="label">
228
+ <span className="label-text">Project Name</span>
229
+ </label>
230
+ <input
231
+ type="text"
232
+ className="input input-bordered w-full"
233
+ value={project.name}
234
+ onChange={(e) => setProject({ ...project, name: e.target.value })}
235
+ />
236
+ </div>
237
+
238
+ {/* Additional form fields */}
239
+ </div>
240
+ );
241
+ };
242
+ ```
243
+
244
+ ### 4. Util Components (\*.Util.tsx)
245
+
246
+ Special function components like buttons, toggles, and actions:
247
+
248
+ ```tsx
249
+ // Example: Project.Util.tsx
250
+ export const StatusBadge = ({ className, status }: { className?: string; status: ProjectStatus }) => {
251
+ return (
252
+ <span
253
+ className={clsx(
254
+ "badge font-medium",
255
+ status === "active" && "badge-success",
256
+ status === "pending" && "badge-warning",
257
+ status === "canceled" && "badge-error",
258
+ status === "completed" && "badge-info",
259
+ className
260
+ )}
261
+ >
262
+ {status}
263
+ </span>
264
+ );
265
+ };
266
+ ```
267
+
268
+ ### 5. Zone Components (\*.Zone.tsx)
269
+
270
+ Container components that combine multiple components:
271
+
272
+ ```tsx
273
+ // Example: Project.Zone.tsx
274
+ export const ProjectDashboard = ({ className }: { className?: string }) => {
275
+ return (
276
+ <div className={clsx("grid grid-cols-1 gap-6 lg:grid-cols-3", className)}>
277
+ <div className="lg:col-span-2">
278
+ <ProjectSummary />
279
+ </div>
280
+ <div>
281
+ <ProjectStats />
282
+ </div>
283
+ <div className="lg:col-span-3">
284
+ <ProjectTimeline />
285
+ </div>
286
+ </div>
287
+ );
288
+ };
289
+ ```
290
+
291
+ ## Common UI Patterns
292
+
293
+ ### 1. Card Pattern
294
+
295
+ ```tsx
296
+ <div className="card bg-base-100 shadow-md transition-shadow hover:shadow-lg">
297
+ <figure className="px-4 pt-4">
298
+ <img src={image.url} alt={title} className="h-48 w-full rounded-lg object-cover" />
299
+ </figure>
300
+ <div className="card-body">
301
+ <h2 className="card-title">{title}</h2>
302
+ <p className="text-base-content/70">{description}</p>
303
+ <div className="card-actions mt-4 justify-end">
304
+ <button className="btn btn-primary btn-sm">View Details</button>
305
+ </div>
306
+ </div>
307
+ </div>
308
+ ```
309
+
310
+ ### 2. Form Pattern
311
+
312
+ ```tsx
313
+ <div className="form-control w-full max-w-md">
314
+ <label className="label">
315
+ <span className="label-text">Email</span>
316
+ </label>
317
+ <input
318
+ type="email"
319
+ className="input input-bordered w-full"
320
+ value={email}
321
+ onChange={(e) => setEmail(e.target.value)}
322
+ />
323
+ <label className="label">
324
+ <span className="label-text-alt text-error">{error}</span>
325
+ </label>
326
+ </div>
327
+ ```
328
+
329
+ ### 3. List Pattern
330
+
331
+ ```tsx
332
+ <div className="bg-base-100 rounded-lg shadow">
333
+ <div className="border-base-200 border-b p-4 font-medium">Items List</div>
334
+ <ul>
335
+ {items.map((item) => (
336
+ <li key={item.id} className="border-base-200 border-b last:border-none">
337
+ <div className="hover:bg-base-200 p-4 transition-colors">
338
+ <div className="flex items-center justify-between">
339
+ <span>{item.name}</span>
340
+ <span className="badge badge-outline">{item.category}</span>
341
+ </div>
342
+ </div>
343
+ </li>
344
+ ))}
345
+ </ul>
346
+ </div>
347
+ ```
348
+
349
+ ### 4. Dashboard Pattern
350
+
351
+ ```tsx
352
+ <div className="grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-4">
353
+ <div className="stats bg-base-100 shadow">
354
+ <div className="stat">
355
+ <div className="stat-title">Total Users</div>
356
+ <div className="stat-value">{totalUsers}</div>
357
+ <div className="stat-desc">↗︎ 14% from last month</div>
358
+ </div>
359
+ </div>
360
+
361
+ {/* Additional stat cards */}
362
+ </div>
363
+ ```
364
+
365
+ ## Best Practices
366
+
367
+ ### 1. Component Composition
368
+
369
+ - Create small, focused components
370
+ - Combine them to build complex UIs
371
+ - Use props for variations
372
+ - Accept and forward `className` for style overrides
373
+
374
+ ### 2. Consistent Layout
375
+
376
+ - Use Flexbox and Grid for layouts
377
+ - Maintain consistent spacing
378
+ - Implement proper padding and margins
379
+ - Design for all screen sizes
380
+
381
+ ### 3. Color Usage
382
+
383
+ - Use DaisyUI theme colors
384
+ - Maintain proper contrast ratios
385
+ - Use opacity modifiers for variants (`bg-primary/80`)
386
+ - Avoid hardcoded colors
387
+
388
+ ### 4. Performance Optimization
389
+
390
+ - Group related classes
391
+ - Use Tailwind's JIT mode
392
+ - Purge unused styles in production
393
+ - Prefer Tailwind classes over custom CSS
394
+
395
+ ### 5. Dark Mode Support
396
+
397
+ ```tsx
398
+ <div className="bg-base-100 text-base-content">{/* Content automatically adapts to dark mode via DaisyUI */}</div>
399
+ ```
400
+
401
+ ## Common Mistakes to Avoid
402
+
403
+ 1. **Inconsistent Spacing**: Mixing arbitrary values instead of using Tailwind's scale
404
+ 2. **Hardcoded Colors**: Using hex codes or RGB values instead of theme variables
405
+ 3. **Missing `className` Prop**: Not forwarding the prop for composition
406
+ 4. **Direct Style Imports**: Importing component styles directly instead of using utility classes
407
+ 5. **Overriding Base Styles**: Applying too many custom styles that break theme consistency
408
+
409
+ ## Troubleshooting
410
+
411
+ ### 1. Styles Not Applying
412
+
413
+ - Check for typos in class names
414
+ - Ensure proper precedence (later classes override earlier ones)
415
+ - Verify the correct Tailwind configuration
416
+
417
+ ### 2. DaisyUI Components Not Working
418
+
419
+ - Check DaisyUI installation
420
+ - Verify theme configuration
421
+ - Ensure component classes are applied correctly
422
+
423
+ ### 3. Responsive Design Issues
424
+
425
+ - Test at various breakpoints
426
+ - Use the correct breakpoint prefixes
427
+ - Implement mobile-first approach
428
+
429
+ ## Additional Resources
430
+
431
+ 1. [TailwindCSS Documentation](https://tailwindcss.com/docs)
432
+ 2. [DaisyUI Documentation](https://daisyui.com/)
433
+ 3. [Tailwind CSS Cheat Sheet](https://nerdcave.com/tailwind-cheat-sheet)
434
+
435
+ By following these guidelines, you'll create consistent, maintainable, and themeable components that align with the Akan.js design system. Always prioritize composition over customization and leverage the power of TailwindCSS and DaisyUI utilities.
@@ -0,0 +1,51 @@
1
+ {
2
+ "title": "Database Module",
3
+ "description": "Structure of database module",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "core database module source code",
8
+ "path": "pkgs/akanjs/server/module.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "how to boot modules in Nest.js server",
13
+ "path": "pkgs/akanjs/server/boot.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "constant model decorators, database schema decorators, signal decorators reference",
18
+ "path": "pkgs/akanjs/constant/decorator.ts"
19
+ },
20
+ {
21
+ "type": "example",
22
+ "description": "example database module of admin",
23
+ "path": "libs/shared/lib/admin/*"
24
+ }
25
+ ],
26
+ "update": {
27
+ "filePath": "./databaseModule.instruction.md",
28
+ "contents": [
29
+ "Purpose of database modules in Akan.js",
30
+ "File structure and location conventions",
31
+ "How to create database modules",
32
+ "How to use database modules in Nest.js server",
33
+ "How to use components, stores, and signals in client side",
34
+ "Real-time features with websockets and subscriptions",
35
+ "Best practices for data modeling and schema design",
36
+ "Authentication and authorization patterns",
37
+ "Performance optimization techniques",
38
+ "Error handling strategies"
39
+ ],
40
+ "rules": [
41
+ "Database module is a domain specific module to manage business logic of database",
42
+ "Follow consistent naming conventions with PascalCase for classes and camelCase for files",
43
+ "Keep business logic in service files, not in signals or documents",
44
+ "Use field validation in constant models to ensure data integrity",
45
+ "Create proper indexes in middleware for performance optimization",
46
+ "Apply appropriate authorization guards to protect sensitive operations",
47
+ "Use dictionary files for all UI text to support internationalization"
48
+ ]
49
+ },
50
+ "page": "/akanjs/(docs)/docs/module/overview/_index.tsx"
51
+ }