@akanjs/cli 0.0.142 → 0.0.144

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 (349) hide show
  1. package/README.md +8 -0
  2. package/cjs/index.js +2437 -3204
  3. package/cjs/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  4. package/cjs/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  5. package/cjs/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  6. package/cjs/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  7. package/cjs/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  8. package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  9. package/cjs/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  10. package/cjs/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  11. package/cjs/src/guidelines/framework/framework.instruction.md +1112 -0
  12. package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  13. package/cjs/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  14. package/cjs/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  15. package/cjs/src/guidelines/modelService/modelService.instruction.md +935 -0
  16. package/cjs/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  17. package/cjs/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  18. package/cjs/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  19. package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  20. package/cjs/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  21. package/cjs/src/guidelines/modelView/modelView.instruction.md +1005 -0
  22. package/cjs/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  23. package/cjs/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  24. package/cjs/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  25. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  26. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  27. package/cjs/src/templates/module/__model__.dictionary.js +4 -5
  28. package/esm/index.js +2524 -3286
  29. package/esm/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  30. package/esm/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  31. package/esm/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  32. package/esm/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  33. package/esm/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  34. package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  35. package/esm/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  36. package/esm/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  37. package/esm/src/guidelines/framework/framework.instruction.md +1112 -0
  38. package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  39. package/esm/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  40. package/esm/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  41. package/esm/src/guidelines/modelService/modelService.instruction.md +935 -0
  42. package/esm/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  43. package/esm/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  44. package/esm/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  45. package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  46. package/esm/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  47. package/esm/src/guidelines/modelView/modelView.instruction.md +1005 -0
  48. package/esm/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  49. package/esm/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  50. package/esm/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  51. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  52. package/esm/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  53. package/esm/src/templates/module/__model__.dictionary.js +4 -5
  54. package/package.json +3 -1
  55. package/src/guideline/guideline.command.d.ts +7 -0
  56. package/src/guideline/guideline.prompt.d.ts +15 -0
  57. package/src/guideline/guideline.runner.d.ts +5 -0
  58. package/src/guideline/guideline.script.d.ts +6 -0
  59. package/src/guidelines/___library/sharedUiStructureDescription.en.md +786 -0
  60. package/src/guidelines/___library/utilUiStructureDescription.en.md +395 -0
  61. package/src/guidelines/___lint/lintRuleDescription.en.md +64 -0
  62. package/src/guidelines/___module/moduleStructureDescription.en.md +80 -0
  63. package/src/guidelines/componentRule/componentRule.instruction.md +732 -0
  64. package/src/guidelines/databaseModule/databaseModule.instruction.md +691 -0
  65. package/src/guidelines/enumConstant/enumConstant.instruction.md +232 -0
  66. package/src/guidelines/fieldDecorator/fieldDecorator.instruction.md +611 -0
  67. package/src/guidelines/framework/framework.instruction.md +1112 -0
  68. package/src/guidelines/modelConstant/modelConstant.instruction.md +958 -0
  69. package/src/guidelines/modelDictionary/modelDictionary.instruction.md +583 -0
  70. package/src/guidelines/modelDocument/modelDocument.instruction.md +683 -0
  71. package/src/guidelines/modelService/modelService.instruction.md +935 -0
  72. package/src/guidelines/modelSignal/modelSignal.instruction.md +588 -0
  73. package/src/guidelines/modelStore/modelStore.instruction.md +591 -0
  74. package/src/guidelines/modelTemplate/modelTemplate.instruction.md +577 -0
  75. package/src/guidelines/modelUnit/modelUnit.instruction.md +833 -0
  76. package/src/guidelines/modelUtil/modelUtil.instruction.md +752 -0
  77. package/src/guidelines/modelView/modelView.instruction.md +1005 -0
  78. package/src/guidelines/modelZone/modelZone.instruction.md +528 -0
  79. package/src/guidelines/scalarConstant/scalarConstant.instruction.md +489 -0
  80. package/src/guidelines/scalarDictionary/scalarDictionary.instruction.md +347 -0
  81. package/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +318 -0
  82. package/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +339 -0
  83. package/src/module/module.command.d.ts +6 -8
  84. package/src/module/module.prompt.d.ts +2 -15
  85. package/src/module/module.request.d.ts +22 -18
  86. package/src/module/module.runner.d.ts +4 -20
  87. package/src/module/module.script.d.ts +6 -7
  88. package/src/scalar/scalar.command.d.ts +7 -0
  89. package/src/scalar/scalar.prompt.d.ts +23 -0
  90. package/src/scalar/scalar.runner.d.ts +13 -0
  91. package/src/scalar/scalar.script.d.ts +6 -0
  92. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -47
  93. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -128
  94. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -42
  95. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -50
  96. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -41
  97. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +0 -51
  98. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -43
  99. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -60
  100. package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +0 -54
  101. package/cjs/src/templates/app/app/[lang]/(__appName__)/styles.css.template +0 -19
  102. package/cjs/src/templates/app/app/[lang]/admin/layout.js +0 -54
  103. package/cjs/src/templates/app/app/[lang]/admin/page.js +0 -63
  104. package/cjs/src/templates/app/app/csr.js +0 -34
  105. package/cjs/src/templates/app/app/index.html.template +0 -13
  106. package/cjs/src/templates/app/app/layout.js +0 -38
  107. package/cjs/src/templates/app/capacitor.config.ts.template +0 -8
  108. package/cjs/src/templates/app/env/env.client.debug.ts.template +0 -7
  109. package/cjs/src/templates/app/env/env.client.develop.ts.template +0 -7
  110. package/cjs/src/templates/app/env/env.client.local.ts.template +0 -7
  111. package/cjs/src/templates/app/env/env.client.main.ts.template +0 -7
  112. package/cjs/src/templates/app/env/env.client.testing.ts.template +0 -7
  113. package/cjs/src/templates/app/env/env.server.debug.ts.template +0 -15
  114. package/cjs/src/templates/app/env/env.server.develop.ts.template +0 -15
  115. package/cjs/src/templates/app/env/env.server.local.ts.template +0 -15
  116. package/cjs/src/templates/app/env/env.server.main.ts.template +0 -15
  117. package/cjs/src/templates/app/env/env.server.testing.ts.template +0 -7
  118. package/cjs/src/templates/app/lib/setting/Setting.Template.js +0 -57
  119. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +0 -38
  120. package/cjs/src/templates/app/lib/setting/Setting.Util.js +0 -34
  121. package/cjs/src/templates/app/lib/setting/Setting.View.js +0 -51
  122. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +0 -80
  123. package/cjs/src/templates/app/lib/setting/index.js +0 -61
  124. package/cjs/src/templates/app/lib/summary/Summary.Template.js +0 -43
  125. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +0 -38
  126. package/cjs/src/templates/app/lib/summary/Summary.Util.js +0 -33
  127. package/cjs/src/templates/app/lib/summary/Summary.View.js +0 -51
  128. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +0 -62
  129. package/cjs/src/templates/app/lib/summary/index.js +0 -67
  130. package/cjs/src/templates/app/lib/user/User.Template.js +0 -65
  131. package/cjs/src/templates/app/lib/user/User.Unit.js +0 -38
  132. package/cjs/src/templates/app/lib/user/User.Util.js +0 -94
  133. package/cjs/src/templates/app/lib/user/User.View.js +0 -66
  134. package/cjs/src/templates/app/lib/user/User.Zone.js +0 -74
  135. package/cjs/src/templates/app/lib/user/index.js +0 -61
  136. package/cjs/src/templates/app/page.test.ts.template +0 -10
  137. package/cjs/src/templates/app/playwright.config.ts.template +0 -6
  138. package/cjs/src/templates/app/postcss.config.js.template +0 -10
  139. package/cjs/src/templates/app/public/manifest.json.template +0 -67
  140. package/cjs/src/templates/app/tsconfig.json.template +0 -22
  141. package/cjs/src/templates/app/tsconfig.spec.json.template +0 -7
  142. package/cjs/src/templates/app/ui/Footer.js +0 -67
  143. package/cjs/src/templates/app/ui/MainHeader.js +0 -131
  144. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +0 -73
  145. package/cjs/src/templates/crudPages/[__model__Id]/page.js +0 -83
  146. package/cjs/src/templates/crudPages/new/page.js +0 -70
  147. package/cjs/src/templates/crudPages/page.js +0 -71
  148. package/cjs/src/templates/libRoot/.gitignore.template +0 -15
  149. package/cjs/src/templates/libRoot/env/env.server.example.ts.template +0 -7
  150. package/cjs/src/templates/libRoot/env/env.server.testing.ts.template +0 -7
  151. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +0 -57
  152. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +0 -38
  153. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +0 -34
  154. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +0 -51
  155. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +0 -80
  156. package/cjs/src/templates/libRoot/lib/setting/index.js +0 -61
  157. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +0 -43
  158. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +0 -38
  159. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +0 -33
  160. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +0 -51
  161. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +0 -62
  162. package/cjs/src/templates/libRoot/lib/summary/index.js +0 -67
  163. package/cjs/src/templates/libRoot/lib/user/User.Template.js +0 -65
  164. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +0 -38
  165. package/cjs/src/templates/libRoot/lib/user/User.Util.js +0 -94
  166. package/cjs/src/templates/libRoot/lib/user/User.View.js +0 -66
  167. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +0 -74
  168. package/cjs/src/templates/libRoot/lib/user/index.js +0 -61
  169. package/cjs/src/templates/libRoot/package.json.template +0 -4
  170. package/cjs/src/templates/libRoot/tsconfig.json.template +0 -13
  171. package/cjs/src/templates/libRoot/tsconfig.spec.json.template +0 -7
  172. package/cjs/src/templates/localDev/docker-compose.yaml.template +0 -36
  173. package/cjs/src/templates/module/__Model__.Template.js +0 -54
  174. package/cjs/src/templates/module/__Model__.Unit.js +0 -42
  175. package/cjs/src/templates/module/__Model__.Util.js +0 -70
  176. package/cjs/src/templates/module/__Model__.View.js +0 -48
  177. package/cjs/src/templates/module/__Model__.Zone.js +0 -83
  178. package/cjs/src/templates/module/index.js +0 -61
  179. package/cjs/src/templates/pkgRoot/tsconfig.json.template +0 -15
  180. package/cjs/src/templates/workspaceRoot/.env.template +0 -20
  181. package/cjs/src/templates/workspaceRoot/.gitignore.template +0 -118
  182. package/cjs/src/templates/workspaceRoot/.prettierignore.template +0 -10
  183. package/cjs/src/templates/workspaceRoot/.prettierrc.json.template +0 -6
  184. package/cjs/src/templates/workspaceRoot/.swcrc.template +0 -9
  185. package/cjs/src/templates/workspaceRoot/.vscode/settings.json.template +0 -13
  186. package/cjs/src/templates/workspaceRoot/README.md.template +0 -37
  187. package/cjs/src/templates/workspaceRoot/eslint.config.ts.template +0 -3
  188. package/cjs/src/templates/workspaceRoot/package.json.template +0 -43
  189. package/cjs/src/templates/workspaceRoot/tsconfig.json.template +0 -29
  190. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +0 -27
  191. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +0 -108
  192. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +0 -22
  193. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +0 -30
  194. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +0 -21
  195. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +0 -31
  196. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +0 -23
  197. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +0 -40
  198. package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +0 -34
  199. package/esm/src/templates/app/app/[lang]/(__appName__)/styles.css.template +0 -19
  200. package/esm/src/templates/app/app/[lang]/admin/layout.js +0 -34
  201. package/esm/src/templates/app/app/[lang]/admin/page.js +0 -43
  202. package/esm/src/templates/app/app/csr.js +0 -14
  203. package/esm/src/templates/app/app/index.html.template +0 -13
  204. package/esm/src/templates/app/app/layout.js +0 -18
  205. package/esm/src/templates/app/capacitor.config.ts.template +0 -8
  206. package/esm/src/templates/app/env/env.client.debug.ts.template +0 -7
  207. package/esm/src/templates/app/env/env.client.develop.ts.template +0 -7
  208. package/esm/src/templates/app/env/env.client.local.ts.template +0 -7
  209. package/esm/src/templates/app/env/env.client.main.ts.template +0 -7
  210. package/esm/src/templates/app/env/env.client.testing.ts.template +0 -7
  211. package/esm/src/templates/app/env/env.server.debug.ts.template +0 -15
  212. package/esm/src/templates/app/env/env.server.develop.ts.template +0 -15
  213. package/esm/src/templates/app/env/env.server.local.ts.template +0 -15
  214. package/esm/src/templates/app/env/env.server.main.ts.template +0 -15
  215. package/esm/src/templates/app/env/env.server.testing.ts.template +0 -7
  216. package/esm/src/templates/app/lib/setting/Setting.Template.js +0 -37
  217. package/esm/src/templates/app/lib/setting/Setting.Unit.js +0 -18
  218. package/esm/src/templates/app/lib/setting/Setting.Util.js +0 -14
  219. package/esm/src/templates/app/lib/setting/Setting.View.js +0 -31
  220. package/esm/src/templates/app/lib/setting/Setting.Zone.js +0 -60
  221. package/esm/src/templates/app/lib/setting/index.js +0 -41
  222. package/esm/src/templates/app/lib/summary/Summary.Template.js +0 -23
  223. package/esm/src/templates/app/lib/summary/Summary.Unit.js +0 -18
  224. package/esm/src/templates/app/lib/summary/Summary.Util.js +0 -13
  225. package/esm/src/templates/app/lib/summary/Summary.View.js +0 -31
  226. package/esm/src/templates/app/lib/summary/Summary.Zone.js +0 -42
  227. package/esm/src/templates/app/lib/summary/index.js +0 -47
  228. package/esm/src/templates/app/lib/user/User.Template.js +0 -45
  229. package/esm/src/templates/app/lib/user/User.Unit.js +0 -18
  230. package/esm/src/templates/app/lib/user/User.Util.js +0 -74
  231. package/esm/src/templates/app/lib/user/User.View.js +0 -46
  232. package/esm/src/templates/app/lib/user/User.Zone.js +0 -54
  233. package/esm/src/templates/app/lib/user/index.js +0 -41
  234. package/esm/src/templates/app/page.test.ts.template +0 -10
  235. package/esm/src/templates/app/playwright.config.ts.template +0 -6
  236. package/esm/src/templates/app/postcss.config.js.template +0 -10
  237. package/esm/src/templates/app/public/manifest.json.template +0 -67
  238. package/esm/src/templates/app/tsconfig.json.template +0 -22
  239. package/esm/src/templates/app/tsconfig.spec.json.template +0 -7
  240. package/esm/src/templates/app/ui/Footer.js +0 -47
  241. package/esm/src/templates/app/ui/MainHeader.js +0 -111
  242. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +0 -53
  243. package/esm/src/templates/crudPages/[__model__Id]/page.js +0 -63
  244. package/esm/src/templates/crudPages/new/page.js +0 -50
  245. package/esm/src/templates/crudPages/page.js +0 -51
  246. package/esm/src/templates/libRoot/.gitignore.template +0 -15
  247. package/esm/src/templates/libRoot/env/env.server.example.ts.template +0 -7
  248. package/esm/src/templates/libRoot/env/env.server.testing.ts.template +0 -7
  249. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +0 -37
  250. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +0 -18
  251. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +0 -14
  252. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +0 -31
  253. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +0 -60
  254. package/esm/src/templates/libRoot/lib/setting/index.js +0 -41
  255. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +0 -23
  256. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +0 -18
  257. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +0 -13
  258. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +0 -31
  259. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +0 -42
  260. package/esm/src/templates/libRoot/lib/summary/index.js +0 -47
  261. package/esm/src/templates/libRoot/lib/user/User.Template.js +0 -45
  262. package/esm/src/templates/libRoot/lib/user/User.Unit.js +0 -18
  263. package/esm/src/templates/libRoot/lib/user/User.Util.js +0 -74
  264. package/esm/src/templates/libRoot/lib/user/User.View.js +0 -46
  265. package/esm/src/templates/libRoot/lib/user/User.Zone.js +0 -54
  266. package/esm/src/templates/libRoot/lib/user/index.js +0 -41
  267. package/esm/src/templates/libRoot/package.json.template +0 -4
  268. package/esm/src/templates/libRoot/tsconfig.json.template +0 -13
  269. package/esm/src/templates/libRoot/tsconfig.spec.json.template +0 -7
  270. package/esm/src/templates/localDev/docker-compose.yaml.template +0 -36
  271. package/esm/src/templates/module/__Model__.Template.js +0 -34
  272. package/esm/src/templates/module/__Model__.Unit.js +0 -22
  273. package/esm/src/templates/module/__Model__.Util.js +0 -50
  274. package/esm/src/templates/module/__Model__.View.js +0 -28
  275. package/esm/src/templates/module/__Model__.Zone.js +0 -63
  276. package/esm/src/templates/module/index.js +0 -41
  277. package/esm/src/templates/pkgRoot/tsconfig.json.template +0 -15
  278. package/esm/src/templates/workspaceRoot/.env.template +0 -20
  279. package/esm/src/templates/workspaceRoot/.gitignore.template +0 -118
  280. package/esm/src/templates/workspaceRoot/.prettierignore.template +0 -10
  281. package/esm/src/templates/workspaceRoot/.prettierrc.json.template +0 -6
  282. package/esm/src/templates/workspaceRoot/.swcrc.template +0 -9
  283. package/esm/src/templates/workspaceRoot/.vscode/settings.json.template +0 -13
  284. package/esm/src/templates/workspaceRoot/README.md.template +0 -37
  285. package/esm/src/templates/workspaceRoot/eslint.config.ts.template +0 -3
  286. package/esm/src/templates/workspaceRoot/package.json.template +0 -43
  287. package/esm/src/templates/workspaceRoot/tsconfig.json.template +0 -29
  288. package/src/application/application.prompt.d.ts +0 -2
  289. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +0 -9
  290. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +0 -9
  291. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +0 -9
  292. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +0 -9
  293. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +0 -10
  294. package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +0 -9
  295. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +0 -9
  296. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +0 -9
  297. package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +0 -9
  298. package/src/templates/app/app/[lang]/admin/layout.d.ts +0 -9
  299. package/src/templates/app/app/[lang]/admin/page.d.ts +0 -9
  300. package/src/templates/app/app/csr.d.ts +0 -9
  301. package/src/templates/app/app/layout.d.ts +0 -9
  302. package/src/templates/app/lib/setting/Setting.Template.d.ts +0 -9
  303. package/src/templates/app/lib/setting/Setting.Unit.d.ts +0 -9
  304. package/src/templates/app/lib/setting/Setting.Util.d.ts +0 -9
  305. package/src/templates/app/lib/setting/Setting.View.d.ts +0 -9
  306. package/src/templates/app/lib/setting/Setting.Zone.d.ts +0 -9
  307. package/src/templates/app/lib/setting/index.d.ts +0 -9
  308. package/src/templates/app/lib/summary/Summary.Template.d.ts +0 -9
  309. package/src/templates/app/lib/summary/Summary.Unit.d.ts +0 -9
  310. package/src/templates/app/lib/summary/Summary.Util.d.ts +0 -9
  311. package/src/templates/app/lib/summary/Summary.View.d.ts +0 -9
  312. package/src/templates/app/lib/summary/Summary.Zone.d.ts +0 -9
  313. package/src/templates/app/lib/summary/index.d.ts +0 -9
  314. package/src/templates/app/lib/user/User.Template.d.ts +0 -9
  315. package/src/templates/app/lib/user/User.Unit.d.ts +0 -9
  316. package/src/templates/app/lib/user/User.Util.d.ts +0 -9
  317. package/src/templates/app/lib/user/User.View.d.ts +0 -9
  318. package/src/templates/app/lib/user/User.Zone.d.ts +0 -9
  319. package/src/templates/app/lib/user/index.d.ts +0 -9
  320. package/src/templates/app/ui/Footer.d.ts +0 -9
  321. package/src/templates/app/ui/MainHeader.d.ts +0 -10
  322. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +0 -11
  323. package/src/templates/crudPages/[__model__Id]/page.d.ts +0 -11
  324. package/src/templates/crudPages/new/page.d.ts +0 -11
  325. package/src/templates/crudPages/page.d.ts +0 -11
  326. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +0 -9
  327. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +0 -9
  328. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +0 -9
  329. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +0 -9
  330. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +0 -9
  331. package/src/templates/libRoot/lib/setting/index.d.ts +0 -9
  332. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +0 -9
  333. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +0 -9
  334. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +0 -9
  335. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +0 -9
  336. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +0 -9
  337. package/src/templates/libRoot/lib/summary/index.d.ts +0 -9
  338. package/src/templates/libRoot/lib/user/User.Template.d.ts +0 -9
  339. package/src/templates/libRoot/lib/user/User.Unit.d.ts +0 -9
  340. package/src/templates/libRoot/lib/user/User.Util.d.ts +0 -9
  341. package/src/templates/libRoot/lib/user/User.View.d.ts +0 -9
  342. package/src/templates/libRoot/lib/user/User.Zone.d.ts +0 -9
  343. package/src/templates/libRoot/lib/user/index.d.ts +0 -9
  344. package/src/templates/module/__Model__.Template.d.ts +0 -11
  345. package/src/templates/module/__Model__.Unit.d.ts +0 -11
  346. package/src/templates/module/__Model__.Util.d.ts +0 -11
  347. package/src/templates/module/__Model__.View.d.ts +0 -11
  348. package/src/templates/module/__Model__.Zone.d.ts +0 -11
  349. package/src/templates/module/index.d.ts +0 -11
@@ -0,0 +1,395 @@
1
+ This UI kit is an internally developed UI kit within the Akan.js framework.
2
+ The libs/util/ui directory contains a comprehensive React component library designed for modern web applications.
3
+ This framework provides a complete set of production-ready, reusable UI components with consistent styling, type safety, and advanced functionality.
4
+
5
+ [Strict caution]
6
+
7
+ - Every component must be used exactly as described in the documentation.
8
+ - Do not add any additional props to the components.
9
+ - Must use the written props exactly.
10
+ - Only the components explicitly listed in the documentation are available—no additional components exist beyond those specified.
11
+
12
+ Architecture & Foundation
13
+
14
+ Core Technologies:
15
+
16
+ - Built on React 18+ with TypeScript for strict type safety
17
+ - Styled based on Tailwind CSS and DaisyUI base for a consistent design system.
18
+ - Implements modern React patterns including hooks, context providers, and portals
19
+ - Full internationalization (i18n) support for multilingual applications
20
+ - Responsive-first design with mobile optimization
21
+
22
+ Design Principles:
23
+
24
+ - Composable component architecture with predictable APIs
25
+ - Accessibility (a11y) compliance throughout
26
+ - Performance optimization with lazy loading and code splitting
27
+ - Consistent error handling and validation patterns
28
+ - Session storage integration for form state persistence
29
+
30
+ Component Categories
31
+
32
+ Core Input Components
33
+
34
+ Essential form controls with advanced validation and user experience features:
35
+
36
+ - Button - Async-aware button with automatic loading/success/error states
37
+ - Input - Comprehensive input system with real-time validation, multiple variants (Text, Password, Email, Number, Checkbox), and
38
+ session caching
39
+ - Select - Advanced dropdown with search, multi-select, and custom rendering
40
+ - DatePicker - Date/time selection with range support and custom formatting
41
+ - CodeInput - PIN/verification code input with auto-focus management
42
+ - Upload - File upload system with drag-drop, progress tracking, image cropping, and multiple file support
43
+
44
+ Data Display Components
45
+
46
+ Components for presenting and organizing information:
47
+
48
+ - Chart - Visualization suite (Bar, Line, Pie, Doughnut) built on Chart.js
49
+ - Avatar - User profile images with intelligent fallbacks
50
+ - ChatBubble - Chat interface with message grouping and timestamps
51
+ - Empty - Customizable empty state displays
52
+ - QRCode - QR code generation with click-to-open functionality
53
+
54
+ Layout & Navigation System
55
+
56
+ Comprehensive layout framework for application structure:
57
+
58
+ - Layout - Complete layout system with Header (auto-hide), Sider (collapsible), Navbar (portal-based), BottomTab (with badges),
59
+ and container components
60
+ - Modal/Dialog - Composable dialog system with backdrop, animations, and gesture support
61
+ - BottomSheet - Mobile-optimized bottom sheet with drag gestures
62
+ - Menu - Navigation menus with horizontal/vertical modes and submenu support
63
+ - Tab - Tabbed interfaces with lazy loading and scroll management
64
+ - ScreenNavigator - Gesture-based screen navigation with spring animations
65
+
66
+ Interactive Components
67
+
68
+ Advanced user interaction components:
69
+
70
+ - Pagination - Smart page navigation with ellipsis and responsive design
71
+ - InfiniteScroll - Automatic content loading with intersection observer
72
+ - DndKit - Drag and drop functionality with provider pattern
73
+ - Radio - Radio button groups with custom styling
74
+ - ToggleSelect - Button-based selection with single/multi-select modes
75
+ - Share - Native share API with copy fallback
76
+
77
+ Utility & Feedback Components
78
+
79
+ Supporting components for enhanced user experience:
80
+
81
+ - Loading - Comprehensive loading states (Area, Button, Input, Skeleton, Spin, ProgressBar) with animations
82
+ - Link - Adaptive navigation links with SSR/CSR compatibility
83
+ - MapView - Map integration supporting both Google Maps and Pigeon Maps with markers and overlays
84
+ - Image - Optimized image component with blur placeholders and SSR support
85
+ - Portal - Teleportation component for rendering outside component tree
86
+
87
+ Advanced Features
88
+
89
+ State Management Integration
90
+
91
+ - Context-driven architecture for complex components
92
+ - Signal-based real-time communication components
93
+ - Session storage integration for form persistence
94
+ - Theme-aware styling with automatic adaptation
95
+
96
+ Performance Optimizations
97
+
98
+ - Lazy loading support for heavy components
99
+ - Code splitting at component level
100
+ - Optimized re-rendering with React.memo patterns
101
+ - Intersection Observer for scroll-based interactions
102
+
103
+ Developer Experience
104
+
105
+ - Comprehensive TypeScript interfaces for all props
106
+ - Consistent naming conventions and API patterns
107
+ - Built-in error boundaries and fallback handling
108
+ - Extensive JSDoc documentation
109
+ - Hot reload support for development
110
+
111
+ Accessibility & Internationalization
112
+
113
+ - ARIA attributes and keyboard navigation support
114
+ - Screen reader compatibility
115
+ - RTL (right-to-left) language support
116
+ - Localized date/time formatting
117
+ - Color contrast compliance
118
+
119
+ Usage Patterns
120
+
121
+ The library follows a consistent component composition pattern where complex components are built from smaller, focused
122
+ subcomponents. For example:
123
+
124
+ - Chart.Bar, Chart.Line for different visualization types
125
+ - Dialog.Modal, Dialog.Title, Dialog.Content for composable modals
126
+ - Layout.Header, Layout.Sider, Layout.Navbar for layout construction
127
+ - Upload.File, Upload.Image, Upload.Images for different upload scenarios
128
+
129
+ This design enables maximum flexibility while maintaining consistency across the application. Components are designed to work
130
+ seamlessly together, sharing common styling patterns, validation systems, and state management approaches.
131
+
132
+ The library serves as a comprehensive foundation for building modern, accessible, and performant web applications with a focus
133
+ on developer productivity and end-user experience.
134
+
135
+ Avatar
136
+
137
+ - Displays user profile images with automatic fallback to user icon
138
+ - Props: className?: string, icon?: ReactNode, src?: string
139
+
140
+ Button
141
+
142
+ - Enhanced button with automatic loading states and error handling
143
+ - Props: onClick: (e, {onError}) => Promise<Result>, onSuccess?: (result) => void, className?, children, standard button props
144
+
145
+ Input
146
+
147
+ - Comprehensive input system with real-time validation and caching
148
+ - Props: value: string, validate: (value) => boolean | string, onChange?, nullable?, inputStyleType?: "bordered" | "borderless"
149
+ | "underline", icon?, cacheKey?
150
+ - Variants: Input.TextArea, Input.Password, Input.Email, Input.Number, Input.Checkbox
151
+
152
+ Select
153
+
154
+ - Advanced dropdown with search and multi-select capabilities
155
+ - Props: value: T | T[], options: {label, value}[], multiple?, searchable?, onChange, onSearch?, renderOption?, renderSelected?
156
+
157
+ DatePicker
158
+
159
+ - Date/time picker with range selection support
160
+ - Props: value?: Dayjs, onChange, showTime?, format?, disabledDate?
161
+ - Variants: DatePicker.RangePicker, DatePicker.TimePicker
162
+
163
+ CodeInput
164
+
165
+ - PIN/code input with individual character boxes
166
+ - Props: maxNum: number, value: string, onChange, unitStyle?: "box" | "underline", autoComplete?
167
+
168
+ Display Components
169
+
170
+ Table
171
+
172
+ - Feature-rich data table with pagination and responsive design
173
+ - Props: columns: Column[], dataSource: any[], loading?, pagination?, onRow?, rowClassName?
174
+
175
+ Modal
176
+
177
+ - Dialog modal with backdrop and action buttons
178
+ - Props: open: boolean, onCancel, title?, action?, confirmClose?
179
+ - Variants: Modal.Window
180
+
181
+ Image
182
+
183
+ - Optimized image component with blur placeholder and SSR support
184
+ - Props: src?, file?: ProtoFile, abstractData?, alt?, standard Next.js Image props
185
+
186
+ ChatBubble
187
+
188
+ - Chat message bubble with avatar and timestamp
189
+ - Props: avatar?, hasPrev?, hasNext?, isMe?, name?, at?: Dayjs, children
190
+
191
+ Empty
192
+
193
+ - Empty state placeholder with customizable message
194
+ - Props: description?, minHeight?, children?
195
+
196
+ QRCode
197
+
198
+ - QR code generator with click-to-open functionality
199
+ - Props: href: string, className?
200
+
201
+ Layout Components
202
+
203
+ BottomSheet
204
+
205
+ - Only mobile bottom sheet with drag gestures
206
+ - Props: open: boolean, onCancel, type: "full" | "half", children
207
+
208
+ Layout
209
+ Layout - Complete layout framework with responsive design
210
+
211
+ - Layout.Header - Top header with auto-hide functionality
212
+ - Props: className?: string, type?: "static" | "hide", children?: any, height?: number
213
+ - Features: Auto-hide on scroll, fixed positioning
214
+ - Layout.Sider - Collapsible sidebar
215
+ - Props: className?: string, bgClassName?: string, children?: any
216
+ - Features: Drawer-based with toggle functionality
217
+ - Layout.Navbar - Navigation bar with portal content
218
+ - Props: className?: string, children?: ReactNode, height?:
219
+
220
+ Menu
221
+
222
+ - Navigation menu with horizontal/vertical modes and submenu support
223
+ - Props: items: MenuItem[], mode?: "horizontal" | "inline", selectedKeys?, onClick?, inlineCollapsed?
224
+
225
+ Tab
226
+
227
+ - Tabbed interface system
228
+ - Tab.Provider - Tab context provider
229
+ - Props: className?: string, defaultMenu?: string | null, children?: any
230
+ - Tab.Menu - Tab menu item
231
+ - Props: className?: string, activeClassName?: string, disabledClassName?: string, disabled?: boolean, menu: string, children:
232
+ any, scrollToTop?: boolean, tooltip?: string
233
+ - Tab.Panel - Tab content panel
234
+ - Props: className?: string, menu: string, children?: any, loading?: "eager" | "lazy" | "every"
235
+ - Features: Lazy loading support
236
+
237
+ ScreenNavigator
238
+
239
+ - Gesture-based screen navigation
240
+ - ScreenNavigator.Provider - Navigation context provider
241
+ - Props: setMenu?: (menu: string) => void, children: ReactNode, menus: string[]
242
+ - Features: Gesture-based navigation, spring animations
243
+ - ScreenNavigator.Screen - Individual screen container
244
+ - Props: children: ReactNode, className?: string
245
+ - ScreenNavigator.NavbarItem - Navigation bar item
246
+ - Props: menu: string, children: ReactNode, className?: string
247
+
248
+ Upload
249
+
250
+ - File upload system with multiple modes
251
+ - Upload
252
+ - Basic file upload with drag & drop
253
+ - Props: onChange?: (fileList: FileList) => void; multiple?: boolean; accept?: string; className?: string; uploadClassName?: string; children: React.ReactNode; disabled?: boolean;
254
+ - Upload.File
255
+ - Single file upload with preview
256
+ - Props: multiple?: boolean; file: ProtoFile | null; render?: (file: ProtoFile) => React.ReactNode; onChange?: (e: File | FileList) => void | Promise<void>; onRemove?: (e: any) => void; children?: React.ReactNode; disabled?: boolean; maxCount?: number; className?: string; uploadClassName?: string; accept?: string;
257
+ - Upload.FileList
258
+ - Multiple files with table view and progress tracking
259
+ - Props: multiple?: boolean; fileList: ProtoFile[]; render?: (file: ProtoFile) => React.ReactNode; onChange?: (e: File | FileList) => void | Promise<void>; onRemove?: (e: any) => void; children?: React.ReactNode; disabled?: boolean; maxCount?: number; className?: string; uploadClassName?: string; accept?: string;
260
+ - Upload.Image
261
+ - Image upload with integrated cropping functionality
262
+ - Props: multiple?: boolean; file: ProtoFile | null; render?: (file: ProtoFile) => React.ReactNode; onChange?: (e: File | FileList) => void | Promise<void>; onRemove?: (e: any) => void; children?: React.ReactNode; disabled?: boolean; maxCount?: number; className?: string; uploadClassName?: string; accept?: string;
263
+ - Upload.Images
264
+ - Multiple image upload with gallery preview
265
+ - Props: multiple?: boolean; fileList: ProtoFile[]; render?: (file: ProtoFile) => React.ReactNode; onChange?: (e: File | FileList) => void | Promise<void>; onRemove?: (e: any) => void; children?: React.ReactNode; disabled?: boolean; maxCount?: number; className?: string; uploadClassName?: string; accept?: string;
266
+
267
+ DndKit
268
+
269
+ - Drag and drop functionality built on @dnd-kit
270
+ - DndKit.Provider
271
+ - DnD context provider
272
+ - Props: className?: string + all DndContextProps
273
+ - DndKit.DraggableUnit
274
+ - Draggable item wrapper
275
+ - Props: id: string, children: ReactNode, className?: string, onClick?: () => void | Promise<void>
276
+ - DndKit.DroppableColumn
277
+ - Drop target column
278
+ - Props: id: string, items: T[], className?: string, children: ReactNode, onOver?: (id, items, event) => void, onEnd?: (id,
279
+ item, event) => void
280
+
281
+ MapView
282
+
283
+ - Map integration with multiple providers
284
+ - MapView.Map
285
+ - Main map container with theme awareness
286
+ - Props: className?: string, onLoad?: () => void, onClick?: (coordinate) => void, onRightClick?: (coordinate) => void,
287
+ onMouseMove?: (coordinate) => void, children: any
288
+ - MapView.Marker
289
+ - Map marker component
290
+ - Props: coordinate: cnst.Coordinate, zIndex?: number, children?: any
291
+ - MapView.Google
292
+ - Google Maps implementation
293
+ - Props: id?: string, className?: string, mapKey: string, onClick/onRightClick?: (coordinate) => void, center?:
294
+ cnst.Coordinate, onChangeCenter?: (coordinate) => void, zoom?: number, onChangeZoom?: (zoom) => void, bounds?: {minLat, maxLat,
295
+ minLng, maxLng}, onLoad?: () => void, onMouseMove?: (coordinate, event) => void, options?: google.maps.MapOptions, children: any
296
+ - MapView.Pigeon
297
+ - Pigeon Maps implementation (lightweight alternative)
298
+ - Props: id?: string, className?: string, onLoad?: () => void, onClick/onRightClick?: (coordinate) => void, center?:
299
+ cnst.Coordinate, onChangeCenter?: (coordinate) => void, zoom?: number, onChangeZoom?: (zoom) => void, bounds?: {minLat, maxLat,
300
+ minLng, maxLng}, onChangeBounds?: (bounds) => void, mouseEvents?: boolean, onMouseMove?: (coordinate) => void, mapTiler?: (x, y,
301
+ z, dpr) => string, children?: any, zoomControlStyle?: CSSProperties
302
+
303
+ Pagination
304
+
305
+ - Page navigation with smart ellipsis and responsive design
306
+ - Props: currentPage: number, total: number, onPageSelect, itemsPerPage: number
307
+
308
+ Radio
309
+
310
+ - Radio button group with custom styling support
311
+ - Props: value, children: ReactElement[], onChange, disabled?
312
+
313
+ ToggleSelect
314
+
315
+ - Button-based selection with single/multi-select modes
316
+ - Props: items, value, validate, onChange, nullable
317
+ - Variants: ToggleSelect.Multi
318
+
319
+ Share
320
+
321
+ - Native share API with copy fallback
322
+ - Props: title: string, url: string, children
323
+
324
+ Specialized Component Groups
325
+
326
+ Chart
327
+
328
+ - Visualization components built on Chart.js and react-chartjs-2
329
+ - Chart.Bar - Bar chart component
330
+ - Props: data: ChartData<"bar">, options?: ChartOptions<"bar">
331
+ - Features: Responsive layout, legend display, title configuration
332
+ - Chart.Line - Line chart component
333
+ - Props: data: ChartData<"line">, options?: ChartOptions<"line">
334
+ - Features: Line-specific Chart.js configuration with curve interpolation
335
+ - Chart.Pie - Pie chart component
336
+ - Props: data: ChartData<"pie">, options?: ChartOptions<"pie">
337
+ - Features: ArcElement rendering, responsive design
338
+ - Chart.Doughnut - Doughnut chart component
339
+ - Props: data: ChartData<"doughnut">, options?: ChartOptions<"doughnut">
340
+ - Features: Similar to pie but with center cutout
341
+
342
+ Dialog
343
+
344
+ - Composable modal dialog system built on Radix UI
345
+ - Dialog.Provider - Dialog context provider
346
+ - Props: className?: string, open?: boolean, defaultOpen?: boolean, children?: any
347
+ - Dialog.Modal - Main modal container
348
+ - Props: className?: string, bodyClassName?: string, confirmClose?: boolean, children?: any, onCancel?: () => void
349
+ - Features: Drag gestures, spring animations, responsive design, close confirmation
350
+ - Dialog.Title - Modal title component
351
+ - Props: children?: ReactNode
352
+ - Dialog.Content - Modal content area
353
+ - Props: className?: string, children?: ReactNode
354
+ - Dialog.Action - Modal action buttons container
355
+ - Props: children?: ReactNode
356
+ - Dialog.Trigger - Modal trigger element
357
+
358
+ - Props: className?: string, children?: any
359
+
360
+ Link
361
+
362
+ - Adaptive navigation system
363
+ - Link
364
+ - Main adaptive link (auto-switches between CSR/Next.js based on render mode)
365
+ - Link.Back - Back navigation link
366
+ - Props: className?: string, children?: any
367
+ - Features: Browser history integration
368
+ - Link.Close - Window close link
369
+ - Props: Similar to Back but closes window
370
+ - Link.CsrLink & Link.NextLink - Environment-specific implementations with active state support
371
+
372
+ Loading
373
+
374
+ - Loading states for different UI elements
375
+ - Loading.Area - Full-screen loading overlay with animated dots
376
+ - Loading.Button - Button loading skeleton
377
+ - Props: className?: string, active?: boolean, style?: CSSProperties
378
+ - Loading.Input - Input loading skeleton
379
+ - Loading.Skeleton - Multi-line content skeleton with pulse animation
380
+ - Loading.Spin - Custom loading spinner
381
+ - Props: indicator?: ReactNode, isCenter?: boolean
382
+ - Loading.ProgressBar - Animated progress bar
383
+ - Props: className?: string, value: number, max: number
384
+ - Features: React Spring animations
385
+
386
+ Key Framework Features
387
+
388
+ - TypeScript support with strict typing
389
+ - Responsive design with mobile-first approach
390
+ - Internationalization (i18n) integration
391
+ - Session storage caching for form inputs
392
+ - Accessibility compliance
393
+ - Consistent DaisyUI/Tailwind CSS styling
394
+ - Modern React patterns (hooks, context, providers)
395
+ - Error handling and validation systems
@@ -0,0 +1,64 @@
1
+ Core ESLint Extensions
2
+
3
+ Base Configurations:
4
+
5
+ - eslint:recommended - Standard ESLint recommended rules
6
+ - next & next/core-web-vitals - Next.js specific linting rules
7
+ - @typescript-eslint/recommended-type-checked - TypeScript recommended rules with type checking
8
+ - @typescript-eslint/strict-type-checked - Strict TypeScript type checking rules
9
+ - @typescript-eslint/stylistic-type-checked - TypeScript stylistic rules with type checking
10
+
11
+ Third-Party Plugins
12
+
13
+ 1. eslint-plugin-unused-imports
14
+
15
+ - Automatically detects and warns about unused imports
16
+ - Helps keep code clean by removing unnecessary import statements
17
+
18
+ 2. eslint-plugin-simple-import-sort
19
+
20
+ - Automatically sorts import statements in a consistent order
21
+ - Enforces clean import organization throughout the codebase
22
+
23
+ Custom Plugin: @akanjs/lint
24
+
25
+ 1. useClientByFile
26
+
27
+ - Enforces proper "use client" directive usage in Next.js App Router
28
+ - Server files must NOT have "use client" directive
29
+ - Client files MUST have "use client" directive at the top
30
+
31
+ 2. noImportClientFunctions
32
+
33
+ - Prevents server files from importing client-side functions
34
+ - Ensures proper separation between server and client code
35
+
36
+ 3. nonScalarPropsRestricted
37
+
38
+ - Prevents non-scalar props (functions) in server components
39
+ - Specifically targets page.tsx and layout.tsx files
40
+ - Allows exceptions for specific props like "loader", "render", and "of"
41
+
42
+ 4. noImportExternalLibrary
43
+
44
+ - Restricts external library imports in pure import/re-export files
45
+ - Only allows imports from the same app scope (@appName/...)
46
+ - Promotes clean architecture and prevents dependency leakage
47
+
48
+ Key Rule Configurations
49
+
50
+ Disabled Rules:
51
+
52
+ - no-console: "error" - Prevents console statements in production code
53
+ - Various TypeScript strict rules are disabled for flexibility
54
+ - React and Next.js specific rules are relaxed for development ease
55
+
56
+ Import Management:
57
+
58
+ - unused-imports/no-unused-imports: "warn" - Warns about unused imports
59
+ - simple-import-sort/imports: "warn" - Enforces import sorting
60
+ - import/first: "warn" - Ensures imports come first
61
+ - import/newline-after-import: "warn" - Enforces newline after imports
62
+
63
+ This configuration creates a robust linting setup that enforces Next.js App Router best practices, maintains clean code
64
+ organization, and ensures proper server/client code separation.
@@ -0,0 +1,80 @@
1
+ # Module Structure Description
2
+
3
+ The project follows a modular architecture with clear separation of concerns. Each module in lib/<model>/ represents a domain
4
+ entity with a standardized file structure that promotes consistency and maintainability.
5
+
6
+ ## Core Components
7
+
8
+ ### <Model>.View.tsx
9
+
10
+ - Core Purpose: Presentation-only components that render data
11
+ - Execution Context: Works as a server component
12
+ - State Management: Does not manage internal state
13
+ - Data Handling: Accepts model data as props and displays it according to specific layouts
14
+ - Primary Focus: Focuses purely on how data looks to the user
15
+ - Model Usage: Only uses the full model
16
+ - Interaction Restrictions: No click events or other interaction events
17
+ - Interaction Extension: If interaction is needed, wrap with <Model>.Zone.tsx component
18
+ - Navigation: Link component can be used for navigation purposes
19
+ - Full Model Rendering: Implements complete rendering of the entire model data structure, ensuring all properties and relationships within the model are displayed rather than selecting only partial attributes
20
+
21
+ ### <Model>.Template.tsx
22
+
23
+ Reusable layout patterns with integrated state management. It works as a client component, These components provide consistent UI patterns and handle data
24
+ binding, often using store hooks to access application state.
25
+
26
+ ### <Model>.Unit.tsx
27
+
28
+ - Single Component Export: Each file exports one Card component for displaying model data
29
+ - Server-Side Rendered: React Server Components without "use client" directive
30
+ - Type-Safe Props: Uses ModelProps<"modelName", cnst.LightModel> interface
31
+ - Optional Navigation: useable Link component for navigation in util/ui
32
+ - Tailwind Styling: Universal use of Tailwind CSS with DaisyUI classes
33
+ - Model Data Display: Direct access to typed model properties and methods
34
+
35
+ ### <Model>.Zone.tsx
36
+
37
+ Top-level container components that orchestrate other components. It works as a client component, They compose views, templates, and units into complete UI
38
+ sections while managing data flow to child components.
39
+
40
+ ### <Model>.Util.tsx
41
+
42
+ Specialized components and utility functions specific to a model, It works as a client component, providing both UI components and helper functions for
43
+ model-specific functionality.
44
+
45
+ ## Data Management
46
+
47
+ ### <model>.signal.ts
48
+
49
+ Defines API endpoints with type safety using decorators for GraphQL queries and mutations, creating a type-safe bridge between
50
+ frontend and backend.
51
+
52
+ ### <model>.store.ts
53
+
54
+ Manages client-side state with typed actions and state, handling UI state, form state, and cached data.
55
+
56
+ ### <model>.service.ts
57
+
58
+ Implements server-side business logic with dependency injection, handling data processing and complex operations.
59
+
60
+ ### <model>.constant.ts
61
+
62
+ Defines type definitions and model schemas using decorators to structure model fields, validation, and relationships.
63
+
64
+ ### <model>.dictionary.ts
65
+
66
+ Provides internationalization and label definitions for model properties and operations.
67
+
68
+ ### <model>.document.ts
69
+
70
+ Defines database schema and model operations with decorators for database interaction.
71
+
72
+ ## Data Flow
73
+
74
+ The architecture follows a clear data flow pattern:
75
+
76
+ - Server-side: Document → Service → Signal → API
77
+ - Client-side: API → Store → Components (Zone → Template/View/Unit)
78
+
79
+ This modular structure enables rapid development while maintaining consistency, type safety, and testability throughout the
80
+ application.