@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.
- package/cjs/index.js +28 -20
- package/cjs/src/guidelines/componentRule/componentRule.generate.json +131 -0
- package/cjs/src/guidelines/componentRule/componentRule.instruction.md +7 -6
- package/cjs/src/guidelines/cssRule/cssRule.generate.json +93 -0
- package/cjs/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
- package/cjs/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
- package/cjs/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
- package/cjs/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
- package/cjs/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
- package/cjs/src/guidelines/framework/framework.generate.json +119 -0
- package/cjs/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
- package/cjs/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
- package/cjs/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
- package/cjs/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
- package/cjs/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
- package/cjs/src/guidelines/modelService/modelService.generate.json +179 -0
- package/cjs/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
- package/cjs/src/guidelines/modelStore/modelStore.generate.json +130 -0
- package/cjs/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
- package/cjs/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
- package/cjs/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/cjs/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
- package/cjs/src/guidelines/modelView/modelView.generate.json +80 -0
- package/cjs/src/guidelines/modelView/modelView.instruction.md +1 -1
- package/cjs/src/guidelines/modelZone/modelZone.generate.json +126 -0
- package/cjs/src/guidelines/modelZone/modelZone.instruction.md +3 -3
- package/cjs/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
- package/cjs/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
- package/cjs/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
- package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
- package/cjs/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
- package/cjs/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
- package/cjs/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +47 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +128 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +42 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +50 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +41 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +51 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +43 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +60 -0
- package/cjs/src/templates/app/app/[lang]/(__appName__)/layout.js +54 -0
- package/cjs/src/templates/app/app/[lang]/admin/layout.js +54 -0
- package/cjs/src/templates/app/app/[lang]/admin/page.js +63 -0
- package/cjs/src/templates/app/app/csr.js +34 -0
- package/cjs/src/templates/app/app/layout.js +38 -0
- package/cjs/src/templates/app/lib/setting/Setting.Template.js +57 -0
- package/cjs/src/templates/app/lib/setting/Setting.Unit.js +38 -0
- package/cjs/src/templates/app/lib/setting/Setting.Util.js +34 -0
- package/cjs/src/templates/app/lib/setting/Setting.View.js +51 -0
- package/cjs/src/templates/app/lib/setting/Setting.Zone.js +80 -0
- package/cjs/src/templates/app/lib/setting/index.js +61 -0
- package/cjs/src/templates/app/lib/summary/Summary.Template.js +43 -0
- package/cjs/src/templates/app/lib/summary/Summary.Unit.js +38 -0
- package/cjs/src/templates/app/lib/summary/Summary.Util.js +33 -0
- package/cjs/src/templates/app/lib/summary/Summary.View.js +51 -0
- package/cjs/src/templates/app/lib/summary/Summary.Zone.js +62 -0
- package/cjs/src/templates/app/lib/summary/index.js +67 -0
- package/cjs/src/templates/app/lib/user/User.Template.js +65 -0
- package/cjs/src/templates/app/lib/user/User.Unit.js +38 -0
- package/cjs/src/templates/app/lib/user/User.Util.js +94 -0
- package/cjs/src/templates/app/lib/user/User.View.js +66 -0
- package/cjs/src/templates/app/lib/user/User.Zone.js +74 -0
- package/cjs/src/templates/app/lib/user/index.js +61 -0
- package/cjs/src/templates/app/main.js +1 -2
- package/cjs/src/templates/app/public/favicon.ico +0 -0
- package/cjs/src/templates/app/public/icons/icon-128x128.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-144x144.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-152x152.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-192x192.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-256x256.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-384x384.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-48x48.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-512x512.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-72x72.png +0 -0
- package/cjs/src/templates/app/public/icons/icon-96x96.png +0 -0
- package/cjs/src/templates/app/public/logo.svg +70 -0
- package/cjs/src/templates/app/ui/Footer.js +67 -0
- package/cjs/src/templates/app/ui/MainHeader.js +131 -0
- package/cjs/src/templates/crudPages/[__model__Id]/edit/page.js +73 -0
- package/cjs/src/templates/crudPages/[__model__Id]/page.js +83 -0
- package/cjs/src/templates/crudPages/new/page.js +70 -0
- package/cjs/src/templates/crudPages/page.js +71 -0
- package/cjs/src/templates/lib/__lib/lib.dictionary.js +2 -2
- package/cjs/src/templates/lib/__lib/lib.signal.js +3 -3
- package/cjs/src/templates/lib/__lib/lib.store.js +2 -1
- package/cjs/src/templates/libRoot/lib/setting/Setting.Template.js +57 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Util.js +34 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.View.js +51 -0
- package/cjs/src/templates/libRoot/lib/setting/Setting.Zone.js +80 -0
- package/cjs/src/templates/libRoot/lib/setting/index.js +61 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Template.js +43 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Util.js +33 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.View.js +51 -0
- package/cjs/src/templates/libRoot/lib/summary/Summary.Zone.js +62 -0
- package/cjs/src/templates/libRoot/lib/summary/index.js +67 -0
- package/cjs/src/templates/libRoot/lib/user/User.Template.js +65 -0
- package/cjs/src/templates/libRoot/lib/user/User.Unit.js +38 -0
- package/cjs/src/templates/libRoot/lib/user/User.Util.js +94 -0
- package/cjs/src/templates/libRoot/lib/user/User.View.js +66 -0
- package/cjs/src/templates/libRoot/lib/user/User.Zone.js +74 -0
- package/cjs/src/templates/libRoot/lib/user/index.js +61 -0
- package/cjs/src/templates/module/__Model__.Template.js +54 -0
- package/cjs/src/templates/module/__Model__.Unit.js +42 -0
- package/cjs/src/templates/module/__Model__.Util.js +70 -0
- package/cjs/src/templates/module/__Model__.View.js +48 -0
- package/cjs/src/templates/module/__Model__.Zone.js +83 -0
- package/cjs/src/templates/module/index.js +61 -0
- package/esm/index.js +28 -20
- package/esm/src/guidelines/componentRule/componentRule.generate.json +131 -0
- package/esm/src/guidelines/componentRule/componentRule.instruction.md +7 -6
- package/esm/src/guidelines/cssRule/cssRule.generate.json +93 -0
- package/esm/src/guidelines/databaseModule/databaseModule.generate.json +51 -0
- package/esm/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
- package/esm/src/guidelines/docPageRule/docPageRule.generate.json +72 -0
- package/esm/src/guidelines/enumConstant/enumConstant.generate.json +24 -0
- package/esm/src/guidelines/fieldDecorator/fieldDecorator.generate.json +135 -0
- package/esm/src/guidelines/framework/framework.generate.json +119 -0
- package/esm/src/guidelines/howToUseStore/howToUseStore.generate.json +0 -0
- package/esm/src/guidelines/modelConstant/modelConstant.generate.json +135 -0
- package/esm/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
- package/esm/src/guidelines/modelDictionary/modelDictionary.generate.json +115 -0
- package/esm/src/guidelines/modelDocument/modelDocument.generate.json +129 -0
- package/esm/src/guidelines/modelService/modelService.generate.json +179 -0
- package/esm/src/guidelines/modelSignal/modelSignal.generate.json +202 -0
- package/esm/src/guidelines/modelStore/modelStore.generate.json +130 -0
- package/esm/src/guidelines/modelTemplate/modelTemplate.generate.json +104 -0
- package/esm/src/guidelines/modelUnit/modelUnit.generate.json +92 -0
- package/esm/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/esm/src/guidelines/modelUtil/modelUtil.generate.json +93 -0
- package/esm/src/guidelines/modelView/modelView.generate.json +80 -0
- package/esm/src/guidelines/modelView/modelView.instruction.md +1 -1
- package/esm/src/guidelines/modelZone/modelZone.generate.json +126 -0
- package/esm/src/guidelines/modelZone/modelZone.instruction.md +3 -3
- package/esm/src/guidelines/scalarConstant/scalarConstant.generate.json +102 -0
- package/esm/src/guidelines/scalarDictionary/scalarDictionary.generate.json +83 -0
- package/esm/src/guidelines/scalarModule/scalarModule.generate.json +35 -0
- package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.generate.json +115 -0
- package/esm/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
- package/esm/src/guidelines/utilUiUsage/utilUiUsage.generate.json +140 -0
- package/esm/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.js +27 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/page.js +108 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.js +22 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.js +30 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.js +21 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.js +31 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/layout.js +23 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.js +40 -0
- package/esm/src/templates/app/app/[lang]/(__appName__)/layout.js +34 -0
- package/esm/src/templates/app/app/[lang]/admin/layout.js +34 -0
- package/esm/src/templates/app/app/[lang]/admin/page.js +43 -0
- package/esm/src/templates/app/app/csr.js +14 -0
- package/esm/src/templates/app/app/layout.js +18 -0
- package/esm/src/templates/app/lib/setting/Setting.Template.js +37 -0
- package/esm/src/templates/app/lib/setting/Setting.Unit.js +18 -0
- package/esm/src/templates/app/lib/setting/Setting.Util.js +14 -0
- package/esm/src/templates/app/lib/setting/Setting.View.js +31 -0
- package/esm/src/templates/app/lib/setting/Setting.Zone.js +60 -0
- package/esm/src/templates/app/lib/setting/index.js +41 -0
- package/esm/src/templates/app/lib/summary/Summary.Template.js +23 -0
- package/esm/src/templates/app/lib/summary/Summary.Unit.js +18 -0
- package/esm/src/templates/app/lib/summary/Summary.Util.js +13 -0
- package/esm/src/templates/app/lib/summary/Summary.View.js +31 -0
- package/esm/src/templates/app/lib/summary/Summary.Zone.js +42 -0
- package/esm/src/templates/app/lib/summary/index.js +47 -0
- package/esm/src/templates/app/lib/user/User.Template.js +45 -0
- package/esm/src/templates/app/lib/user/User.Unit.js +18 -0
- package/esm/src/templates/app/lib/user/User.Util.js +74 -0
- package/esm/src/templates/app/lib/user/User.View.js +46 -0
- package/esm/src/templates/app/lib/user/User.Zone.js +54 -0
- package/esm/src/templates/app/lib/user/index.js +41 -0
- package/esm/src/templates/app/main.js +1 -2
- package/esm/src/templates/app/public/favicon.ico +0 -0
- package/esm/src/templates/app/public/icons/icon-128x128.png +0 -0
- package/esm/src/templates/app/public/icons/icon-144x144.png +0 -0
- package/esm/src/templates/app/public/icons/icon-152x152.png +0 -0
- package/esm/src/templates/app/public/icons/icon-192x192.png +0 -0
- package/esm/src/templates/app/public/icons/icon-256x256.png +0 -0
- package/esm/src/templates/app/public/icons/icon-384x384.png +0 -0
- package/esm/src/templates/app/public/icons/icon-48x48.png +0 -0
- package/esm/src/templates/app/public/icons/icon-512x512.png +0 -0
- package/esm/src/templates/app/public/icons/icon-72x72.png +0 -0
- package/esm/src/templates/app/public/icons/icon-96x96.png +0 -0
- package/esm/src/templates/app/public/logo.svg +70 -0
- package/esm/src/templates/app/ui/Footer.js +47 -0
- package/esm/src/templates/app/ui/MainHeader.js +111 -0
- package/esm/src/templates/crudPages/[__model__Id]/edit/page.js +53 -0
- package/esm/src/templates/crudPages/[__model__Id]/page.js +63 -0
- package/esm/src/templates/crudPages/new/page.js +50 -0
- package/esm/src/templates/crudPages/page.js +51 -0
- package/esm/src/templates/lib/__lib/lib.dictionary.js +2 -2
- package/esm/src/templates/lib/__lib/lib.signal.js +3 -3
- package/esm/src/templates/lib/__lib/lib.store.js +2 -1
- package/esm/src/templates/libRoot/lib/setting/Setting.Template.js +37 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Util.js +14 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.View.js +31 -0
- package/esm/src/templates/libRoot/lib/setting/Setting.Zone.js +60 -0
- package/esm/src/templates/libRoot/lib/setting/index.js +41 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Template.js +23 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Util.js +13 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.View.js +31 -0
- package/esm/src/templates/libRoot/lib/summary/Summary.Zone.js +42 -0
- package/esm/src/templates/libRoot/lib/summary/index.js +47 -0
- package/esm/src/templates/libRoot/lib/user/User.Template.js +45 -0
- package/esm/src/templates/libRoot/lib/user/User.Unit.js +18 -0
- package/esm/src/templates/libRoot/lib/user/User.Util.js +74 -0
- package/esm/src/templates/libRoot/lib/user/User.View.js +46 -0
- package/esm/src/templates/libRoot/lib/user/User.Zone.js +54 -0
- package/esm/src/templates/libRoot/lib/user/index.js +41 -0
- package/esm/src/templates/module/__Model__.Template.js +34 -0
- package/esm/src/templates/module/__Model__.Unit.js +22 -0
- package/esm/src/templates/module/__Model__.Util.js +50 -0
- package/esm/src/templates/module/__Model__.View.js +28 -0
- package/esm/src/templates/module/__Model__.Zone.js +63 -0
- package/esm/src/templates/module/index.js +41 -0
- package/package.json +1 -1
- package/src/guidelines/componentRule/componentRule.instruction.md +7 -6
- package/src/guidelines/databaseModule/databaseModule.instruction.md +4 -17
- package/src/guidelines/modelConstant/modelConstant.instruction.md +1 -1
- package/src/guidelines/modelUnit/modelUnit.instruction.md +2 -2
- package/src/guidelines/modelView/modelView.instruction.md +1 -1
- package/src/guidelines/modelZone/modelZone.instruction.md +3 -3
- package/src/guidelines/sharedUiUsage/sharedUiUsage.instruction.md +5 -10
- package/src/guidelines/utilUiUsage/utilUiUsage.instruction.md +1 -1
- package/src/templates/app/app/[lang]/(__appName__)/(public)/forgotpassword/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/privacy/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/signin/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/termsofservice/page.d.ts +10 -0
- package/src/templates/app/app/[lang]/(__appName__)/(public)/unknown/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(user)/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/(user)/self/page.d.ts +9 -0
- package/src/templates/app/app/[lang]/(__appName__)/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/admin/layout.d.ts +9 -0
- package/src/templates/app/app/[lang]/admin/page.d.ts +9 -0
- package/src/templates/app/app/csr.d.ts +9 -0
- package/src/templates/app/app/layout.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Template.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Unit.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Util.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.View.d.ts +9 -0
- package/src/templates/app/lib/setting/Setting.Zone.d.ts +9 -0
- package/src/templates/app/lib/setting/index.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Template.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Unit.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Util.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.View.d.ts +9 -0
- package/src/templates/app/lib/summary/Summary.Zone.d.ts +9 -0
- package/src/templates/app/lib/summary/index.d.ts +9 -0
- package/src/templates/app/lib/user/User.Template.d.ts +9 -0
- package/src/templates/app/lib/user/User.Unit.d.ts +9 -0
- package/src/templates/app/lib/user/User.Util.d.ts +9 -0
- package/src/templates/app/lib/user/User.View.d.ts +9 -0
- package/src/templates/app/lib/user/User.Zone.d.ts +9 -0
- package/src/templates/app/lib/user/index.d.ts +9 -0
- package/src/templates/app/ui/Footer.d.ts +9 -0
- package/src/templates/app/ui/MainHeader.d.ts +10 -0
- package/src/templates/crudPages/[__model__Id]/edit/page.d.ts +11 -0
- package/src/templates/crudPages/[__model__Id]/page.d.ts +11 -0
- package/src/templates/crudPages/new/page.d.ts +11 -0
- package/src/templates/crudPages/page.d.ts +11 -0
- package/src/templates/libRoot/lib/setting/Setting.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.View.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/Setting.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/setting/index.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.View.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/Summary.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/summary/index.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Template.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Unit.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Util.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.View.d.ts +9 -0
- package/src/templates/libRoot/lib/user/User.Zone.d.ts +9 -0
- package/src/templates/libRoot/lib/user/index.d.ts +9 -0
- package/src/templates/module/__Model__.Template.d.ts +11 -0
- package/src/templates/module/__Model__.Unit.d.ts +11 -0
- package/src/templates/module/__Model__.Util.d.ts +11 -0
- package/src/templates/module/__Model__.View.d.ts +11 -0
- package/src/templates/module/__Model__.Zone.d.ts +11 -0
- 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}` : ""}
|
|
1624
|
-
|
|
1625
|
-
|
|
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:
|
|
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:
|
|
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([
|
|
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(
|
|
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(
|
|
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(
|
|
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/
|
|
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: "
|
|
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 "@
|
|
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 "@
|
|
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
|
|
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 "@
|
|
524
|
-
import { Button } from "@
|
|
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 "@
|
|
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
|
|
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.
|
|
389
|
-
const { signin, setUserForm } = st.do.user();
|
|
388
|
+
const { userForm } = st.use.userForm();
|
|
390
389
|
|
|
391
390
|
return (
|
|
392
|
-
|
|
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 "@
|
|
463
|
+
import { Signal } from "@akanjs/ui";
|
|
477
464
|
import { FaUser } from "react-icons/fa";
|
|
478
465
|
|
|
479
466
|
import * as Template from "./User.Template";
|