@akanjs/cli 0.0.149 → 0.0.151

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 (290) hide show
  1. package/cjs/index.js +28 -20
  2. package/cjs/src/guidelines/componentRule/componentRule.generate.json +131 -0
  3. package/cjs/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  4. package/cjs/src/guidelines/cssRule/cssRule.generate.json +93 -0
  5. package/cjs/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  6. package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  7. package/cjs/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  8. package/cjs/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  9. package/cjs/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  10. package/cjs/src/guidelines/framework/framework.generate.json +119 -0
  11. package/cjs/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  12. package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  13. package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  14. package/cjs/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  15. package/cjs/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  16. package/cjs/src/guidelines/modelService/modelService.generate.json +179 -0
  17. package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  18. package/cjs/src/guidelines/modelStore/modelStore.generate.json +130 -0
  19. package/cjs/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  20. package/cjs/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  21. package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  22. package/cjs/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  23. package/cjs/src/guidelines/modelView/modelView.generate.json +80 -0
  24. package/cjs/src/guidelines/modelView/modelView.instruction.md +1 -1
  25. package/cjs/src/guidelines/modelZone/modelZone.generate.json +126 -0
  26. package/cjs/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  27. package/cjs/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  28. package/cjs/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  29. package/cjs/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  30. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  31. package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  32. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  33. package/cjs/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  34. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +47 -0
  35. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +128 -0
  36. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +42 -0
  37. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +50 -0
  38. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +41 -0
  39. package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +51 -0
  40. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +43 -0
  41. package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +60 -0
  42. package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +54 -0
  43. package/cjs/src/templates/app/app/[lang]/admin/layout.js +54 -0
  44. package/cjs/src/templates/app/app/[lang]/admin/page.js +63 -0
  45. package/cjs/src/templates/app/app/csr.js +34 -0
  46. package/cjs/src/templates/app/app/layout.js +38 -0
  47. package/cjs/src/templates/app/lib/setting/Setting.Template.js +57 -0
  48. package/cjs/src/templates/app/lib/setting/Setting.Unit.js +38 -0
  49. package/cjs/src/templates/app/lib/setting/Setting.Util.js +34 -0
  50. package/cjs/src/templates/app/lib/setting/Setting.View.js +51 -0
  51. package/cjs/src/templates/app/lib/setting/Setting.Zone.js +80 -0
  52. package/cjs/src/templates/app/lib/setting/index.js +61 -0
  53. package/cjs/src/templates/app/lib/summary/Summary.Template.js +43 -0
  54. package/cjs/src/templates/app/lib/summary/Summary.Unit.js +38 -0
  55. package/cjs/src/templates/app/lib/summary/Summary.Util.js +33 -0
  56. package/cjs/src/templates/app/lib/summary/Summary.View.js +51 -0
  57. package/cjs/src/templates/app/lib/summary/Summary.Zone.js +62 -0
  58. package/cjs/src/templates/app/lib/summary/index.js +67 -0
  59. package/cjs/src/templates/app/lib/user/User.Template.js +65 -0
  60. package/cjs/src/templates/app/lib/user/User.Unit.js +38 -0
  61. package/cjs/src/templates/app/lib/user/User.Util.js +94 -0
  62. package/cjs/src/templates/app/lib/user/User.View.js +66 -0
  63. package/cjs/src/templates/app/lib/user/User.Zone.js +74 -0
  64. package/cjs/src/templates/app/lib/user/index.js +61 -0
  65. package/cjs/src/templates/app/main.js +1 -2
  66. package/cjs/src/templates/app/public/favicon.ico +0 -0
  67. package/cjs/src/templates/app/public/icons/icon-128x128.png +0 -0
  68. package/cjs/src/templates/app/public/icons/icon-144x144.png +0 -0
  69. package/cjs/src/templates/app/public/icons/icon-152x152.png +0 -0
  70. package/cjs/src/templates/app/public/icons/icon-192x192.png +0 -0
  71. package/cjs/src/templates/app/public/icons/icon-256x256.png +0 -0
  72. package/cjs/src/templates/app/public/icons/icon-384x384.png +0 -0
  73. package/cjs/src/templates/app/public/icons/icon-48x48.png +0 -0
  74. package/cjs/src/templates/app/public/icons/icon-512x512.png +0 -0
  75. package/cjs/src/templates/app/public/icons/icon-72x72.png +0 -0
  76. package/cjs/src/templates/app/public/icons/icon-96x96.png +0 -0
  77. package/cjs/src/templates/app/public/logo.svg +70 -0
  78. package/cjs/src/templates/app/ui/Footer.js +67 -0
  79. package/cjs/src/templates/app/ui/MainHeader.js +131 -0
  80. package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +73 -0
  81. package/cjs/src/templates/crudPages/[__model__Id]/page.js +83 -0
  82. package/cjs/src/templates/crudPages/new/page.js +70 -0
  83. package/cjs/src/templates/crudPages/page.js +71 -0
  84. package/cjs/src/templates/lib/__lib/lib.dictionary.js +2 -2
  85. package/cjs/src/templates/lib/__lib/lib.signal.js +3 -3
  86. package/cjs/src/templates/lib/__lib/lib.store.js +2 -1
  87. package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +57 -0
  88. package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +38 -0
  89. package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +34 -0
  90. package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +51 -0
  91. package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +80 -0
  92. package/cjs/src/templates/libRoot/lib/setting/index.js +61 -0
  93. package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +43 -0
  94. package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +38 -0
  95. package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +33 -0
  96. package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +51 -0
  97. package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +62 -0
  98. package/cjs/src/templates/libRoot/lib/summary/index.js +67 -0
  99. package/cjs/src/templates/libRoot/lib/user/User.Template.js +65 -0
  100. package/cjs/src/templates/libRoot/lib/user/User.Unit.js +38 -0
  101. package/cjs/src/templates/libRoot/lib/user/User.Util.js +94 -0
  102. package/cjs/src/templates/libRoot/lib/user/User.View.js +66 -0
  103. package/cjs/src/templates/libRoot/lib/user/User.Zone.js +74 -0
  104. package/cjs/src/templates/libRoot/lib/user/index.js +61 -0
  105. package/cjs/src/templates/module/__Model__.Template.js +54 -0
  106. package/cjs/src/templates/module/__Model__.Unit.js +42 -0
  107. package/cjs/src/templates/module/__Model__.Util.js +70 -0
  108. package/cjs/src/templates/module/__Model__.View.js +48 -0
  109. package/cjs/src/templates/module/__Model__.Zone.js +83 -0
  110. package/cjs/src/templates/module/index.js +61 -0
  111. package/esm/index.js +28 -20
  112. package/esm/src/guidelines/componentRule/componentRule.generate.json +131 -0
  113. package/esm/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  114. package/esm/src/guidelines/cssRule/cssRule.generate.json +93 -0
  115. package/esm/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
  116. package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  117. package/esm/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
  118. package/esm/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
  119. package/esm/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
  120. package/esm/src/guidelines/framework/framework.generate.json +119 -0
  121. package/esm/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
  122. package/esm/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
  123. package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  124. package/esm/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
  125. package/esm/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
  126. package/esm/src/guidelines/modelService/modelService.generate.json +179 -0
  127. package/esm/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
  128. package/esm/src/guidelines/modelStore/modelStore.generate.json +130 -0
  129. package/esm/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
  130. package/esm/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
  131. package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  132. package/esm/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
  133. package/esm/src/guidelines/modelView/modelView.generate.json +80 -0
  134. package/esm/src/guidelines/modelView/modelView.instruction.md +1 -1
  135. package/esm/src/guidelines/modelZone/modelZone.generate.json +126 -0
  136. package/esm/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  137. package/esm/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
  138. package/esm/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
  139. package/esm/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
  140. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
  141. package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  142. package/esm/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
  143. package/esm/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  144. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +27 -0
  145. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +108 -0
  146. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +22 -0
  147. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +30 -0
  148. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +21 -0
  149. package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +31 -0
  150. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +23 -0
  151. package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +40 -0
  152. package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +34 -0
  153. package/esm/src/templates/app/app/[lang]/admin/layout.js +34 -0
  154. package/esm/src/templates/app/app/[lang]/admin/page.js +43 -0
  155. package/esm/src/templates/app/app/csr.js +14 -0
  156. package/esm/src/templates/app/app/layout.js +18 -0
  157. package/esm/src/templates/app/lib/setting/Setting.Template.js +37 -0
  158. package/esm/src/templates/app/lib/setting/Setting.Unit.js +18 -0
  159. package/esm/src/templates/app/lib/setting/Setting.Util.js +14 -0
  160. package/esm/src/templates/app/lib/setting/Setting.View.js +31 -0
  161. package/esm/src/templates/app/lib/setting/Setting.Zone.js +60 -0
  162. package/esm/src/templates/app/lib/setting/index.js +41 -0
  163. package/esm/src/templates/app/lib/summary/Summary.Template.js +23 -0
  164. package/esm/src/templates/app/lib/summary/Summary.Unit.js +18 -0
  165. package/esm/src/templates/app/lib/summary/Summary.Util.js +13 -0
  166. package/esm/src/templates/app/lib/summary/Summary.View.js +31 -0
  167. package/esm/src/templates/app/lib/summary/Summary.Zone.js +42 -0
  168. package/esm/src/templates/app/lib/summary/index.js +47 -0
  169. package/esm/src/templates/app/lib/user/User.Template.js +45 -0
  170. package/esm/src/templates/app/lib/user/User.Unit.js +18 -0
  171. package/esm/src/templates/app/lib/user/User.Util.js +74 -0
  172. package/esm/src/templates/app/lib/user/User.View.js +46 -0
  173. package/esm/src/templates/app/lib/user/User.Zone.js +54 -0
  174. package/esm/src/templates/app/lib/user/index.js +41 -0
  175. package/esm/src/templates/app/main.js +1 -2
  176. package/esm/src/templates/app/public/favicon.ico +0 -0
  177. package/esm/src/templates/app/public/icons/icon-128x128.png +0 -0
  178. package/esm/src/templates/app/public/icons/icon-144x144.png +0 -0
  179. package/esm/src/templates/app/public/icons/icon-152x152.png +0 -0
  180. package/esm/src/templates/app/public/icons/icon-192x192.png +0 -0
  181. package/esm/src/templates/app/public/icons/icon-256x256.png +0 -0
  182. package/esm/src/templates/app/public/icons/icon-384x384.png +0 -0
  183. package/esm/src/templates/app/public/icons/icon-48x48.png +0 -0
  184. package/esm/src/templates/app/public/icons/icon-512x512.png +0 -0
  185. package/esm/src/templates/app/public/icons/icon-72x72.png +0 -0
  186. package/esm/src/templates/app/public/icons/icon-96x96.png +0 -0
  187. package/esm/src/templates/app/public/logo.svg +70 -0
  188. package/esm/src/templates/app/ui/Footer.js +47 -0
  189. package/esm/src/templates/app/ui/MainHeader.js +111 -0
  190. package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +53 -0
  191. package/esm/src/templates/crudPages/[__model__Id]/page.js +63 -0
  192. package/esm/src/templates/crudPages/new/page.js +50 -0
  193. package/esm/src/templates/crudPages/page.js +51 -0
  194. package/esm/src/templates/lib/__lib/lib.dictionary.js +2 -2
  195. package/esm/src/templates/lib/__lib/lib.signal.js +3 -3
  196. package/esm/src/templates/lib/__lib/lib.store.js +2 -1
  197. package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +37 -0
  198. package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +18 -0
  199. package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +14 -0
  200. package/esm/src/templates/libRoot/lib/setting/Setting.View.js +31 -0
  201. package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +60 -0
  202. package/esm/src/templates/libRoot/lib/setting/index.js +41 -0
  203. package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +23 -0
  204. package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +18 -0
  205. package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +13 -0
  206. package/esm/src/templates/libRoot/lib/summary/Summary.View.js +31 -0
  207. package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +42 -0
  208. package/esm/src/templates/libRoot/lib/summary/index.js +47 -0
  209. package/esm/src/templates/libRoot/lib/user/User.Template.js +45 -0
  210. package/esm/src/templates/libRoot/lib/user/User.Unit.js +18 -0
  211. package/esm/src/templates/libRoot/lib/user/User.Util.js +74 -0
  212. package/esm/src/templates/libRoot/lib/user/User.View.js +46 -0
  213. package/esm/src/templates/libRoot/lib/user/User.Zone.js +54 -0
  214. package/esm/src/templates/libRoot/lib/user/index.js +41 -0
  215. package/esm/src/templates/module/__Model__.Template.js +34 -0
  216. package/esm/src/templates/module/__Model__.Unit.js +22 -0
  217. package/esm/src/templates/module/__Model__.Util.js +50 -0
  218. package/esm/src/templates/module/__Model__.View.js +28 -0
  219. package/esm/src/templates/module/__Model__.Zone.js +63 -0
  220. package/esm/src/templates/module/index.js +41 -0
  221. package/package.json +1 -1
  222. package/src/guidelines/componentRule/componentRule.instruction.md +7 -6
  223. package/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
  224. package/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
  225. package/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
  226. package/src/guidelines/modelView/modelView.instruction.md +1 -1
  227. package/src/guidelines/modelZone/modelZone.instruction.md +3 -3
  228. package/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
  229. package/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
  230. package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +9 -0
  231. package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +9 -0
  232. package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +9 -0
  233. package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +9 -0
  234. package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +10 -0
  235. package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +9 -0
  236. package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +9 -0
  237. package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +9 -0
  238. package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +9 -0
  239. package/src/templates/app/app/[lang]/admin/layout.d.ts +9 -0
  240. package/src/templates/app/app/[lang]/admin/page.d.ts +9 -0
  241. package/src/templates/app/app/csr.d.ts +9 -0
  242. package/src/templates/app/app/layout.d.ts +9 -0
  243. package/src/templates/app/lib/setting/Setting.Template.d.ts +9 -0
  244. package/src/templates/app/lib/setting/Setting.Unit.d.ts +9 -0
  245. package/src/templates/app/lib/setting/Setting.Util.d.ts +9 -0
  246. package/src/templates/app/lib/setting/Setting.View.d.ts +9 -0
  247. package/src/templates/app/lib/setting/Setting.Zone.d.ts +9 -0
  248. package/src/templates/app/lib/setting/index.d.ts +9 -0
  249. package/src/templates/app/lib/summary/Summary.Template.d.ts +9 -0
  250. package/src/templates/app/lib/summary/Summary.Unit.d.ts +9 -0
  251. package/src/templates/app/lib/summary/Summary.Util.d.ts +9 -0
  252. package/src/templates/app/lib/summary/Summary.View.d.ts +9 -0
  253. package/src/templates/app/lib/summary/Summary.Zone.d.ts +9 -0
  254. package/src/templates/app/lib/summary/index.d.ts +9 -0
  255. package/src/templates/app/lib/user/User.Template.d.ts +9 -0
  256. package/src/templates/app/lib/user/User.Unit.d.ts +9 -0
  257. package/src/templates/app/lib/user/User.Util.d.ts +9 -0
  258. package/src/templates/app/lib/user/User.View.d.ts +9 -0
  259. package/src/templates/app/lib/user/User.Zone.d.ts +9 -0
  260. package/src/templates/app/lib/user/index.d.ts +9 -0
  261. package/src/templates/app/ui/Footer.d.ts +9 -0
  262. package/src/templates/app/ui/MainHeader.d.ts +10 -0
  263. package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +11 -0
  264. package/src/templates/crudPages/[__model__Id]/page.d.ts +11 -0
  265. package/src/templates/crudPages/new/page.d.ts +11 -0
  266. package/src/templates/crudPages/page.d.ts +11 -0
  267. package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +9 -0
  268. package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +9 -0
  269. package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +9 -0
  270. package/src/templates/libRoot/lib/setting/Setting.View.d.ts +9 -0
  271. package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +9 -0
  272. package/src/templates/libRoot/lib/setting/index.d.ts +9 -0
  273. package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +9 -0
  274. package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +9 -0
  275. package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +9 -0
  276. package/src/templates/libRoot/lib/summary/Summary.View.d.ts +9 -0
  277. package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +9 -0
  278. package/src/templates/libRoot/lib/summary/index.d.ts +9 -0
  279. package/src/templates/libRoot/lib/user/User.Template.d.ts +9 -0
  280. package/src/templates/libRoot/lib/user/User.Unit.d.ts +9 -0
  281. package/src/templates/libRoot/lib/user/User.Util.d.ts +9 -0
  282. package/src/templates/libRoot/lib/user/User.View.d.ts +9 -0
  283. package/src/templates/libRoot/lib/user/User.Zone.d.ts +9 -0
  284. package/src/templates/libRoot/lib/user/index.d.ts +9 -0
  285. package/src/templates/module/__Model__.Template.d.ts +11 -0
  286. package/src/templates/module/__Model__.Unit.d.ts +11 -0
  287. package/src/templates/module/__Model__.Util.d.ts +11 -0
  288. package/src/templates/module/__Model__.View.d.ts +11 -0
  289. package/src/templates/module/__Model__.Zone.d.ts +11 -0
  290. package/src/templates/module/index.d.ts +11 -0
@@ -0,0 +1,83 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // pkgs/@akanjs/cli/src/templates/module/__Model__.Zone.tsx
20
+ var Model_Zone_exports = {};
21
+ __export(Model_Zone_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(Model_Zone_exports);
25
+ function getContent(scanResult, dict) {
26
+ return {
27
+ filename: `${dict.Model}.Zone.tsx`,
28
+ content: `
29
+ "use client";
30
+ import { Data, Load } from "@akanjs/ui";
31
+ import { ModelsProps } from "@akanjs/client";
32
+ import { cnst, ${dict.Model} } from "@${dict.sysName}/client";
33
+ import { ClientInit, ClientView, DefaultOf } from "@akanjs/signal";
34
+
35
+ export const Admin = ({ sliceName = "${dict.model}", init, query }: ModelsProps<cnst.${dict.Model}>) => {
36
+ return (
37
+ <Data.ListContainer
38
+ init={init}
39
+ query={query}
40
+ sliceName={sliceName}
41
+ renderItem={${dict.Model}.Unit.Card}
42
+ renderDashboard={${dict.Model}.Util.Stat}
43
+ renderInsight={${dict.Model}.Util.Insight}
44
+ renderTemplate={${dict.Model}.Template.General}
45
+ renderTitle={(${dict.model}: DefaultOf<cnst.${dict.Model}>) => \`${dict.Model} - \${${dict.model}.id ? ${dict.model}.id : "New"}\`}
46
+ renderView={(${dict.model}: cnst.${dict.Model}) => <${dict.Model}.View.General ${dict.model}={${dict.model}} />}
47
+ columns={[
48
+ "id",
49
+ "status",
50
+ "createdAt",
51
+ "updatedAt",
52
+ ]}
53
+ actions={(${dict.model}: cnst.Light${dict.Model}, idx) => ["remove", "edit", "view"]}
54
+ />
55
+ );
56
+ };
57
+
58
+ interface CardProps {
59
+ className?: string;
60
+ init: ClientInit<"${dict.model}", cnst.Light${dict.Model}>;
61
+ }
62
+ export const Card = ({ className, init }: CardProps) => {
63
+ return (
64
+ <Load.Units
65
+ className={className}
66
+ init={init}
67
+ renderItem={(${dict.model}: cnst.Light${dict.Model}) => (
68
+ <${dict.Model}.Unit.Card key={${dict.model}.id} href={\`/${dict.model}/\${${dict.model}.id}\`} ${dict.model}={${dict.model}} />
69
+ )}
70
+ />
71
+ );
72
+ };
73
+
74
+ interface ViewProps {
75
+ className?: string;
76
+ view: ClientView<"${dict.model}", cnst.${dict.Model}>;
77
+ }
78
+ export const View = ({ view }: ViewProps) => {
79
+ return <Load.View view={view} renderView={(${dict.model}) => <${dict.Model}.View.General ${dict.model}={${dict.model}} />} />;
80
+ };
81
+ `
82
+ };
83
+ }
@@ -0,0 +1,61 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // pkgs/@akanjs/cli/src/templates/module/index.tsx
20
+ var module_exports = {};
21
+ __export(module_exports, {
22
+ default: () => getContent
23
+ });
24
+ module.exports = __toCommonJS(module_exports);
25
+ function getContent(scanResult, dict) {
26
+ return {
27
+ filename: "index.tsx",
28
+ content: `
29
+ import { Signal } from "@akanjs/ui";
30
+ import { AiOutlineDatabase } from "react-icons/ai";
31
+
32
+ import * as Template from "./${dict.Model}.Template";
33
+ import * as Unit from "./${dict.Model}.Unit";
34
+ import * as Util from "./${dict.Model}.Util";
35
+ import * as View from "./${dict.Model}.View";
36
+ import * as Zone from "./${dict.Model}.Zone";
37
+
38
+ export const ${dict.Model} = {
39
+ Menu: {
40
+ Admin: {
41
+ key: "${dict.model}",
42
+ label: "${dict.Model}",
43
+ icon: <AiOutlineDatabase />,
44
+ render: () => <Zone.Admin />,
45
+ },
46
+ Doc: {
47
+ key: "${dict.model}",
48
+ label: "${dict.Model}",
49
+ icon: <AiOutlineDatabase />,
50
+ render: () => <Signal.Doc.Zone refName="${dict.model}" />,
51
+ },
52
+ },
53
+ Template,
54
+ Unit,
55
+ Util,
56
+ View,
57
+ Zone,
58
+ };
59
+ `
60
+ };
61
+ }
package/esm/index.js CHANGED
@@ -589,7 +589,7 @@ var withBase = (appName, config, libs, routes = []) => {
589
589
  eslint: { ...config.eslint, ignoreDuringBuilds: true },
590
590
  env: {
591
591
  ...config.env,
592
- basePaths: routes.map(({ basePath: basePath2 }) => basePath2).join(",")
592
+ basePaths: [...new Set(routes.map(({ basePath: basePath2 }) => basePath2))].join(",")
593
593
  },
594
594
  transpilePackages: ["swiper", "ssr-window", "dom7"],
595
595
  reactStrictMode: commandType === "start" ? false : true,
@@ -599,7 +599,8 @@ var withBase = (appName, config, libs, routes = []) => {
599
599
  ...[appName, ...libs].map((lib) => [`@${lib}/ui`, `@${lib}/next`, `@${lib}/common`, `@${lib}/client`]).flat(),
600
600
  "@contract",
601
601
  "@akanjs/next",
602
- "@akanjs/common"
602
+ "@akanjs/common",
603
+ "@akanjs/ui"
603
604
  ]
604
605
  },
605
606
  // modularizeImports: {
@@ -755,6 +756,7 @@ CMD ["npm", "start"]`,
755
756
  config.libs ?? [],
756
757
  config.frontend?.routes
757
758
  ),
759
+ routes: config.frontend?.routes,
758
760
  explicitDependencies: config.frontend?.explicitDependencies ?? []
759
761
  },
760
762
  mobile: {
@@ -1620,11 +1622,12 @@ var Executor = class _Executor {
1620
1622
  dict = {},
1621
1623
  overwrite = true
1622
1624
  }) {
1623
- const templatePath = `${__dirname}/src/templates${template ? `/${template}` : ""}`.replace(".ts", ".js");
1624
- if (fs8.statSync(templatePath).isFile()) {
1625
- const filename = path6.basename(templatePath);
1625
+ const templatePath = `${__dirname}/src/templates${template ? `/${template}` : ""}`;
1626
+ const prefixTemplatePath = templatePath.endsWith(".tsx") ? templatePath : templatePath.replace(".ts", ".js");
1627
+ if (fs8.statSync(prefixTemplatePath).isFile()) {
1628
+ const filename = path6.basename(prefixTemplatePath);
1626
1629
  const fileContent = await this.#applyTemplateFile(
1627
- { templatePath, targetPath: path6.join(basePath2, filename), scanResult, overwrite },
1630
+ { templatePath: prefixTemplatePath, targetPath: path6.join(basePath2, filename), scanResult, overwrite },
1628
1631
  dict
1629
1632
  );
1630
1633
  return fileContent ? [fileContent] : [];
@@ -3169,6 +3172,8 @@ ${fileCheck.lintResult.message}`
3169
3172
  import * as esbuild from "esbuild";
3170
3173
  import { dtsPlugin } from "esbuild-plugin-d.ts";
3171
3174
  import fs13 from "fs";
3175
+ var assetExtensions = [".css", ".md", ".js", ".png", ".ico", ".svg", ".json", ".template"];
3176
+ var assetLoader = Object.fromEntries(assetExtensions.map((ext) => [ext, "copy"]));
3172
3177
  var Builder = class {
3173
3178
  #executor;
3174
3179
  #distExecutor;
@@ -3193,7 +3198,7 @@ var Builder = class {
3193
3198
  format,
3194
3199
  outdir: `${this.#distExecutor.cwdPath}/${format}`,
3195
3200
  logLevel: "error",
3196
- loader: { ".template": "copy", ".md": "copy" }
3201
+ loader: assetLoader
3197
3202
  };
3198
3203
  }
3199
3204
  #getAssetBuildOptions() {
@@ -3207,7 +3212,7 @@ var Builder = class {
3207
3212
  ],
3208
3213
  outdir: this.#distExecutor.cwdPath,
3209
3214
  logLevel: "error",
3210
- loader: { ".css": "copy", ".md": "copy", ".js": "copy" }
3215
+ loader: assetLoader
3211
3216
  };
3212
3217
  }
3213
3218
  async build(options = {}) {
@@ -3606,6 +3611,8 @@ var ApplicationRunner = class {
3606
3611
  async #getViteConfig(app, command) {
3607
3612
  const { env } = await this.#prepareCommand(app, command, "csr");
3608
3613
  const tsconfig = app.workspace.getTsConfig();
3614
+ const akanConfig = await app.getConfig();
3615
+ const basePaths = akanConfig.frontend.routes ? [...new Set(akanConfig.frontend.routes.map(({ basePath: basePath2 }) => basePath2))].join(",") : void 0;
3609
3616
  const processEnv = env;
3610
3617
  const akanjsPrefix = process.env.USE_AKANJS_PKGS === "true" ? `${app.workspace.workspaceRoot}/pkgs/` : "";
3611
3618
  const config = vite.defineConfig({
@@ -3669,7 +3676,8 @@ var ApplicationRunner = class {
3669
3676
  APP_OPERATION_MODE: processEnv.APP_OPERATION_MODE ?? "local",
3670
3677
  AKAN_WORKSPACE_ROOT: app.workspace.workspaceRoot,
3671
3678
  AKAN_APP_ROOT: app.cwdPath,
3672
- RENDER_ENV: "csr"
3679
+ RENDER_ENV: "csr",
3680
+ basePaths
3673
3681
  },
3674
3682
  "process.platform": JSON.stringify("browser"),
3675
3683
  "process.version": JSON.stringify(process.version)
@@ -3984,7 +3992,11 @@ var ApplicationScript = class {
3984
3992
  await this.syncApplication(app);
3985
3993
  if (app.workspace.getBaseDevEnv().env === "local")
3986
3994
  await this.dbup(app.workspace);
3987
- await Promise.all([this.startBackend(app, { open: open2, sync: false }), this.startFrontend(app, { open: open2, sync: false })]);
3995
+ await Promise.all([
3996
+ this.startBackend(app, { open: open2, sync: false }),
3997
+ this.startFrontend(app, { open: open2, sync: false }),
3998
+ this.startCsr(app, { open: open2, sync: false })
3999
+ ]);
3988
4000
  }
3989
4001
  async buildBackend(app, { sync = true } = {}) {
3990
4002
  if (sync)
@@ -4381,11 +4393,7 @@ var PackageRunner = class {
4381
4393
  if (pkg.name === "@akanjs/cli")
4382
4394
  await builder.build({
4383
4395
  bundle: true,
4384
- additionalEntryPoints: [
4385
- `${pkg.cwdPath}/src/templates/**/*.ts`,
4386
- `${pkg.cwdPath}/src/templates/**/*.template`,
4387
- `${pkg.cwdPath}/src/guidelines/**/*.md`
4388
- ]
4396
+ additionalEntryPoints: [`${pkg.cwdPath}/src/templates/**/*`, `${pkg.cwdPath}/src/guidelines/**/*`]
4389
4397
  });
4390
4398
  else
4391
4399
  await builder.build();
@@ -4842,7 +4850,7 @@ var requestTemplate = ({
4842
4850
  \uCF54\uB529 \uADDC\uCE59
4843
4851
  - \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4844
4852
  - \uC544\uC774\uCF58: react-icons \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4845
- - CSS: tailwind, DaisyUI(btn, input, badge \uAC19\uC740 \uAE30\uBCF8 \uC694\uC18C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5, card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4853
+ - CSS: tailwind, DaisyUI(card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4846
4854
  - Ui Component: @util/ui \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4847
4855
  - \uC870\uAC74\uBD80 \uD074\uB798\uC2A4: clsx \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4848
4856
  \uCF54\uB4DC \uC2A4\uD0C0\uC77C
@@ -4900,7 +4908,7 @@ var requestView = ({
4900
4908
  \uCF54\uB529 \uADDC\uCE59
4901
4909
  - \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4902
4910
  - \uC544\uC774\uCF58: react-icons \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4903
- - CSS: tailwind, DaisyUI(btn, input, badge \uAC19\uC740 \uAE30\uBCF8 \uC694\uC18C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5, card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4911
+ - CSS: tailwind, DaisyUI(card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4904
4912
  - Ui Component: @util/ui \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4905
4913
  - \uC870\uAC74\uBD80 \uD074\uB798\uC2A4: clsx \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4906
4914
  \uCF54\uB4DC \uC2A4\uD0C0\uC77C
@@ -4961,7 +4969,7 @@ var requestUnit = ({
4961
4969
  \uCF54\uB529 \uADDC\uCE59
4962
4970
  - \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4963
4971
  - \uC544\uC774\uCF58: react-icons \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4964
- - CSS: tailwind, DaisyUI(btn, input, badge \uAC19\uC740 \uAE30\uBCF8 \uC694\uC18C\uB9CC \uC0AC\uC6A9 \uAC00\uB2A5, card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4972
+ - CSS: tailwind, DaisyUI(card/hero \uAC19\uC740 \uBCF5\uC7A1\uD55C \uCEF4\uD3EC\uB10C\uD2B8 \uC0AC\uC6A9 X) \uC0AC\uC6A9
4965
4973
  - Ui Component: @util/ui \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4966
4974
  - \uC870\uAC74\uBD80 \uD074\uB798\uC2A4: clsx \uB77C\uC774\uBE0C\uB7EC\uB9AC \uC0AC\uC6A9
4967
4975
  \uCF54\uB4DC \uC2A4\uD0C0\uC77C
@@ -5007,7 +5015,7 @@ var ModuleRunner = class {
5007
5015
  async createComponentTemplate(module, type) {
5008
5016
  await module.sys.applyTemplate({
5009
5017
  basePath: `./lib/${module.name}`,
5010
- template: `module/__model__.${capitalize(type)}.ts`,
5018
+ template: `module/__Model__.${capitalize(type)}.tsx`,
5011
5019
  dict: { model: module.name, appName: module.sys.name }
5012
5020
  });
5013
5021
  return {
@@ -5503,7 +5511,7 @@ var WorkspaceCommand = class {
5503
5511
  __decorateClass([
5504
5512
  Target.Public(),
5505
5513
  __decorateParam(0, Argument("workspaceName", { desc: "what is the name of your organization?" })),
5506
- __decorateParam(1, Option("app", { desc: "describe your first application to create " })),
5514
+ __decorateParam(1, Option("app", { desc: "what is the codename of your first application? (e.g. myapp)" })),
5507
5515
  __decorateParam(2, Option("dir", { desc: "directory of workspace", default: process.env.USE_AKANJS_PKGS === "true" ? "local" : "." }))
5508
5516
  ], WorkspaceCommand.prototype, "createWorkspace", 1);
5509
5517
  __decorateClass([
@@ -0,0 +1,131 @@
1
+ {
2
+ "title": "Component Rule",
3
+ "description": "Comprehensive guidelines for creating React components in the Akan.js framework",
4
+ "scans": [
5
+ {
6
+ "type": "source",
7
+ "description": "Cookie management utilities for web and mobile",
8
+ "path": "pkgs/@akanjs/client/src/cookie.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "Storage utilities for persistent data",
13
+ "path": "pkgs/@akanjs/client/src/storage.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "Device capabilities and platform detection",
18
+ "path": "pkgs/@akanjs/client/src/device.ts"
19
+ },
20
+ {
21
+ "type": "source",
22
+ "description": "Navigation and routing utilities",
23
+ "path": "pkgs/@akanjs/client/src/router.ts"
24
+ },
25
+ {
26
+ "type": "source",
27
+ "description": "Type utilities including clsx for class management",
28
+ "path": "pkgs/@akanjs/client/src/types.ts"
29
+ },
30
+ {
31
+ "type": "example",
32
+ "description": "Unit components (list items/cards)",
33
+ "path": "{apps,libs}/*/lib/*/*.Unit.tsx",
34
+ "sample": 3
35
+ },
36
+ {
37
+ "type": "example",
38
+ "description": "View components (detailed displays)",
39
+ "path": "{apps,libs}/*/lib/*/*.View.tsx",
40
+ "sample": 3
41
+ },
42
+ {
43
+ "type": "example",
44
+ "description": "Template components (forms/edit screens)",
45
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
46
+ "sample": 3
47
+ },
48
+ {
49
+ "type": "example",
50
+ "description": "Utility components (toolbars/helpers)",
51
+ "path": "{apps,libs}/*/lib/*/*.Util.tsx",
52
+ "sample": 3
53
+ },
54
+ {
55
+ "type": "example",
56
+ "description": "Zone components (data containers)",
57
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
58
+ "sample": 3
59
+ },
60
+ {
61
+ "type": "example",
62
+ "description": "Reusable UI components",
63
+ "path": "{libs,apps}/*/ui/**/*.tsx",
64
+ "sample": 5
65
+ },
66
+ {
67
+ "type": "usage",
68
+ "description": "Component composition patterns",
69
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
70
+ "filterText": "renderItem",
71
+ "sample": 3
72
+ },
73
+ {
74
+ "type": "usage",
75
+ "description": "Form state management with stores",
76
+ "path": "{apps,libs}/*/lib/*/*.Template.tsx",
77
+ "filterText": "st.use",
78
+ "sample": 3
79
+ },
80
+ {
81
+ "type": "usage",
82
+ "description": "Conditional rendering with TailwindCSS",
83
+ "path": "{apps,libs}/*/lib/*/*.tsx",
84
+ "filterText": "clsx",
85
+ "sample": 3
86
+ },
87
+ {
88
+ "type": "usage",
89
+ "description": "Data fetching with Load components",
90
+ "path": "{apps,libs}/*/lib/*/*.Zone.tsx",
91
+ "filterText": "<Load.",
92
+ "sample": 3
93
+ },
94
+ {
95
+ "type": "usage",
96
+ "description": "Responsive design patterns",
97
+ "path": "{apps,libs}/*/lib/*/*.tsx",
98
+ "filterText": "md:",
99
+ "sample": 3
100
+ }
101
+ ],
102
+ "update": {
103
+ "filePath": "./componentRule.instruction.md",
104
+ "contents": [
105
+ "Component Architecture - Core structure and organization",
106
+ "Component Types - Purpose and responsibility of each component type",
107
+ "File Naming Conventions - Standardized naming patterns",
108
+ "Utility Functions - Core framework utilities",
109
+ "Best Practices - Guidelines for components",
110
+ "State Management - Integration with Zustand store and signals",
111
+ "Responsive Design - Mobile-first approach",
112
+ "Accessibility - Core principles",
113
+ "Performance Optimization - Memoization and lazy loading",
114
+ "Data Fetching - Using Load components",
115
+ "Composition Patterns - Component rendering methods",
116
+ "Complete Examples - Full implementation examples"
117
+ ],
118
+ "rules": [
119
+ "Component types (.Unit, .View, .Template, .Util, .Zone) should follow standard patterns and responsibilities",
120
+ "Every component file should maintain a consistent organization pattern with logical sections",
121
+ "Responsive design should use Tailwind's mobile-first approach with sm:, md:, lg: prefixes",
122
+ "Form components should use the framework state management pattern with st.use and st.do",
123
+ "Data containers should follow the Load.Units/Load.View pattern for consistent data fetching",
124
+ "Component files should export named components rather than default exports",
125
+ "Props should use explicit TypeScript interfaces with proper JSDoc comments where helpful",
126
+ "Separate business logic from presentation components",
127
+ "Follow Akan.js project structure and module organization"
128
+ ]
129
+ },
130
+ "page": "/[lang]/akanjs/(docs)/docs/codebase/component/page.tsx"
131
+ }
@@ -374,7 +374,7 @@ Here's a complete example of components for a "Product" feature:
374
374
  ```tsx
375
375
  import { clsx, ModelProps } from "@akanjs/client";
376
376
  import { cnst } from "@app/client";
377
- import { Image, Link } from "@util/ui";
377
+ import { Image, Link } from "@akanjs/ui";
378
378
 
379
379
  export const Card = ({ product, href }: ModelProps<"product", cnst.Product>) => {
380
380
  return (
@@ -395,7 +395,7 @@ export const Card = ({ product, href }: ModelProps<"product", cnst.Product>) =>
395
395
  ```tsx
396
396
  import { clsx } from "@akanjs/client";
397
397
  import { cnst } from "@app/client";
398
- import { Button, Image } from "@util/ui";
398
+ import { Button, Image } from "@akanjs/ui";
399
399
 
400
400
  interface ProductViewProps {
401
401
  className?: string;
@@ -445,7 +445,8 @@ export const General = ({ className, product }: ProductViewProps) => {
445
445
  "use client";
446
446
  import { clsx } from "@akanjs/client";
447
447
  import { st } from "@app/client";
448
- import { Button, Input, Upload } from "@util/ui";
448
+ import { Button, Input } from "@akanjs/ui";
449
+ import { Upload } from "@util/ui";
449
450
  import { AiOutlinePlus } from "react-icons/ai";
450
451
 
451
452
  export const General = () => {
@@ -520,8 +521,8 @@ export const General = () => {
520
521
  import { ModelDashboardProps } from "@akanjs/client";
521
522
  import { getQueryMap } from "@akanjs/constant";
522
523
  import { cnst, st } from "@app/client";
523
- import { Data } from "@shared/ui";
524
- import { Button } from "@util/ui";
524
+ import { Data } from "@akanjs/ui";
525
+ import { Button } from "@akanjs/ui";
525
526
 
526
527
  export const Stat = ({
527
528
  className,
@@ -591,7 +592,7 @@ export const PriceFilter = ({
591
592
  import { ModelsProps } from "@akanjs/client";
592
593
  import { ClientInit, ClientView } from "@akanjs/signal";
593
594
  import { cnst, Product } from "@app/client";
594
- import { Data, Load } from "@shared/ui";
595
+ import { Data, Load } from "@akanjs/ui";
595
596
 
596
597
  export const Admin = ({ sliceName = "product", init, query }: ModelsProps<cnst.Product>) => {
597
598
  return (
@@ -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/src/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": "/[lang]/akanjs/(docs)/docs/codebase/css/page.tsx"
93
+ }
@@ -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/src/module.ts"
9
+ },
10
+ {
11
+ "type": "source",
12
+ "description": "how to boot modules in Nest.js server",
13
+ "path": "pkgs/@akanjs/server/src/boot.ts"
14
+ },
15
+ {
16
+ "type": "source",
17
+ "description": "constant model decorators, database schema decorators, signal decorators reference",
18
+ "path": "pkgs/@akanjs/constant/src/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": "/[lang]/akanjs/(docs)/docs/module/overview/page.tsx"
51
+ }
@@ -379,29 +379,16 @@ export const registerUserModule = (option: ModulesOptions) =>
379
379
  #### Template Component (`[ModuleName].Template.tsx`)
380
380
 
381
381
  ```tsx
382
- import { Button, Form } from "@util/ui";
382
+ import { Button } from "@akanjs/ui";
383
383
 
384
384
  import { dict } from "../dict";
385
385
  import { st } from "../st";
386
386
 
387
387
  export const General = () => {
388
- const { userForm } = st.use.user();
389
- const { signin, setUserForm } = st.do.user();
388
+ const { userForm } = st.use.userForm();
390
389
 
391
390
  return (
392
- <Form onSubmit={signin}>
393
- <Form.Item label={dict.user.email}>
394
- <Form.Input type="email" value={userForm.email} onChange={(e) => setUserForm({ email: e.target.value })} />
395
- </Form.Item>
396
- <Form.Item label={dict.user.password}>
397
- <Form.Input
398
- type="password"
399
- value={userForm.password || ""}
400
- onChange={(e) => setUserForm({ password: e.target.value })}
401
- />
402
- </Form.Item>
403
- <Button type="submit">{dict.user.signin}</Button>
404
- </Form>
391
+ // WIP
405
392
  );
406
393
  };
407
394
  ```
@@ -473,7 +460,7 @@ export const User = () => (
473
460
  #### Client Exports (`index.tsx`)
474
461
 
475
462
  ```tsx
476
- import { Signal } from "@util/ui";
463
+ import { Signal } from "@akanjs/ui";
477
464
  import { FaUser } from "react-icons/fa";
478
465
 
479
466
  import * as Template from "./User.Template";