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