@atlashub/smartstack-cli 3.39.0 → 3.40.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/.documentation/apex.html +644 -644
- package/.documentation/css/styles.css +2320 -2320
- package/.documentation/init.html +1377 -1377
- package/.documentation/js/app.js +780 -780
- package/.documentation/prd-json-v2.0.0.md +396 -396
- package/.documentation/testing-ba-e2e.md +462 -462
- package/config/default-config.json +95 -95
- package/config/mcp-defaults.json +62 -62
- package/config/settings.json +53 -53
- package/config/settings.local.example.json +16 -16
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +6 -4
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +115 -115
- package/scripts/extract-api-endpoints.ts +325 -325
- package/scripts/extract-business-rules.ts +440 -440
- package/scripts/generate-doc-with-mock-ui.ts +804 -804
- package/scripts/health-check.sh +168 -168
- package/scripts/postinstall.js +18 -18
- package/templates/agents/action.md +37 -37
- package/templates/agents/ba-reader.md +378 -378
- package/templates/agents/ba-writer.md +861 -861
- package/templates/agents/code-reviewer.md +163 -163
- package/templates/agents/db-reader.md +149 -149
- package/templates/agents/docs-context-reader.md +143 -143
- package/templates/agents/docs-sync-checker.md +122 -122
- package/templates/agents/efcore/conflicts.md +84 -84
- package/templates/agents/efcore/db-deploy.md +74 -74
- package/templates/agents/efcore/db-reset.md +85 -85
- package/templates/agents/efcore/db-seed.md +61 -61
- package/templates/agents/efcore/db-status.md +86 -86
- package/templates/agents/efcore/migration.md +186 -186
- package/templates/agents/efcore/rebase-snapshot.md +108 -108
- package/templates/agents/efcore/scan.md +92 -92
- package/templates/agents/efcore/squash.md +161 -161
- package/templates/agents/explore-codebase.md +66 -66
- package/templates/agents/explore-docs.md +98 -98
- package/templates/agents/fix-grammar.md +50 -50
- package/templates/agents/gitflow/abort.md +45 -45
- package/templates/agents/gitflow/cleanup.md +96 -96
- package/templates/agents/gitflow/commit.md +236 -236
- package/templates/agents/gitflow/exec.md +48 -48
- package/templates/agents/gitflow/finish.md +146 -146
- package/templates/agents/gitflow/init-clone.md +199 -199
- package/templates/agents/gitflow/init-detect.md +137 -137
- package/templates/agents/gitflow/init-validate.md +225 -225
- package/templates/agents/gitflow/init.md +340 -340
- package/templates/agents/gitflow/merge.md +145 -145
- package/templates/agents/gitflow/plan.md +42 -42
- package/templates/agents/gitflow/pr.md +191 -191
- package/templates/agents/gitflow/review.md +49 -49
- package/templates/agents/gitflow/start.md +147 -147
- package/templates/agents/gitflow/status.md +95 -95
- package/templates/agents/mcp-healthcheck.md +163 -163
- package/templates/agents/snipper.md +37 -37
- package/templates/agents/websearch.md +46 -46
- package/templates/hooks/appsettings-guard.sh +76 -76
- package/templates/hooks/docs-drift-check.md +96 -96
- package/templates/hooks/ef-migration-check.md +139 -139
- package/templates/hooks/hooks.json +58 -58
- package/templates/hooks/mcp-check.md +64 -64
- package/templates/hooks/ralph-mcp-logger.sh +46 -46
- package/templates/hooks/ralph-session-end.sh +69 -69
- package/templates/hooks/stop-hook.sh +177 -177
- package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
- package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
- package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
- package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
- package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
- package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
- package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
- package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
- package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
- package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
- package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
- package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
- package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
- package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
- package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
- package/templates/project/DependencyInjection.Application.cs.template +25 -25
- package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
- package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
- package/templates/project/ExampleEntity.cs.template +116 -116
- package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
- package/templates/project/ExampleService.cs.template +146 -146
- package/templates/project/ExtensionsDbContext.cs.template +41 -41
- package/templates/project/IExtensionsDbContext.cs.template +22 -22
- package/templates/project/Program.cs.template +47 -47
- package/templates/project/README.md +79 -79
- package/templates/project/api.ts.template +12 -12
- package/templates/project/appsettings.json.template +170 -170
- package/templates/project/claude-settings.json.template +5 -5
- package/templates/project/test-frontend/msw/handlers.ts +58 -58
- package/templates/project/test-frontend/msw/server.ts +25 -25
- package/templates/project/test-frontend/setup.ts +16 -16
- package/templates/project/test-frontend/test-utils.tsx +59 -59
- package/templates/project/test-frontend/vitest.config.ts +31 -31
- package/templates/ralph/README.md +93 -93
- package/templates/ralph/ralph.config.yaml +113 -113
- package/templates/scripts/setup-ralph-loop.sh +173 -173
- package/templates/skills/_resources/config-safety.md +61 -61
- package/templates/skills/_resources/context-digest-template.md +53 -53
- package/templates/skills/_resources/doc-context-cache.md +60 -60
- package/templates/skills/_resources/docs-manifest-schema.md +155 -155
- package/templates/skills/_resources/formatting-guide.md +124 -124
- package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
- package/templates/skills/_shared.md +228 -228
- package/templates/skills/admin/SKILL.md +48 -48
- package/templates/skills/ai-prompt/SKILL.md +107 -107
- package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
- package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
- package/templates/skills/apex/SKILL.md +168 -168
- package/templates/skills/apex/_shared.md +141 -141
- package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
- package/templates/skills/apex/references/analysis-methods.md +141 -141
- package/templates/skills/apex/references/challenge-questions.md +145 -145
- package/templates/skills/apex/references/code-generation.md +412 -412
- package/templates/skills/apex/references/core-seed-data.md +1437 -1437
- package/templates/skills/apex/references/error-classification.md +144 -144
- package/templates/skills/apex/references/examine-build-validation.md +82 -82
- package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
- package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
- package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
- package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
- package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
- package/templates/skills/apex/references/post-checks.md +1584 -1584
- package/templates/skills/apex/references/smartstack-api.md +1053 -1053
- package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
- package/templates/skills/apex/references/smartstack-layers.md +402 -402
- package/templates/skills/apex/steps/step-00-init.md +307 -307
- package/templates/skills/apex/steps/step-01-analyze.md +165 -165
- package/templates/skills/apex/steps/step-02-plan.md +144 -144
- package/templates/skills/apex/steps/step-03-execute.md +328 -328
- package/templates/skills/apex/steps/step-04-examine.md +263 -263
- package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
- package/templates/skills/apex/steps/step-06-resolve.md +101 -101
- package/templates/skills/apex/steps/step-07-tests.md +238 -238
- package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
- package/templates/skills/application/SKILL.md +4 -4
- package/templates/skills/application/references/application-roles-template.md +227 -227
- package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
- package/templates/skills/application/references/backend-entity-seeding.md +72 -72
- package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
- package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
- package/templates/skills/application/references/backend-verification.md +88 -88
- package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
- package/templates/skills/application/references/frontend-route-naming.md +117 -117
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
- package/templates/skills/application/references/frontend-verification.md +156 -156
- package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
- package/templates/skills/application/references/provider-template.md +177 -177
- package/templates/skills/application/references/roles-client-project-handling.md +55 -55
- package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
- package/templates/skills/application/references/test-coverage-requirements.md +213 -213
- package/templates/skills/application/references/test-frontend.md +73 -73
- package/templates/skills/application/references/test-prerequisites.md +72 -72
- package/templates/skills/application/steps/step-05-frontend.md +176 -176
- package/templates/skills/application/steps/step-06-migration.md +193 -193
- package/templates/skills/application/steps/step-07-tests.md +356 -356
- package/templates/skills/application/steps/step-08-documentation.md +137 -137
- package/templates/skills/application/templates-backend.md +463 -463
- package/templates/skills/application/templates-frontend.md +685 -685
- package/templates/skills/application/templates-i18n.md +520 -520
- package/templates/skills/application/templates-seed.md +1096 -1096
- package/templates/skills/business-analyse/SKILL.md +327 -327
- package/templates/skills/business-analyse/_architecture.md +123 -123
- package/templates/skills/business-analyse/_elicitation.md +206 -206
- package/templates/skills/business-analyse/_module-loop.md +115 -115
- package/templates/skills/business-analyse/_shared.md +383 -383
- package/templates/skills/business-analyse/_suggestions.md +34 -34
- package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
- package/templates/skills/business-analyse/html/build-html.js +77 -77
- package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
- package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
- package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
- package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
- package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
- package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
- package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
- package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
- package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
- package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
- package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
- package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
- package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
- package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
- package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
- package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
- package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
- package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
- package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
- package/templates/skills/business-analyse/html/src/template.html +516 -516
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
- package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
- package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
- package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
- package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
- package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
- package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
- package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
- package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
- package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
- package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
- package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
- package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
- package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
- package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
- package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
- package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
- package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
- package/templates/skills/business-analyse/questionnaire.md +337 -337
- package/templates/skills/business-analyse/react/application-viewer.md +242 -242
- package/templates/skills/business-analyse/react/components.md +551 -551
- package/templates/skills/business-analyse/react/i18n-template.md +306 -306
- package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
- package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
- package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
- package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
- package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
- package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
- package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
- package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
- package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
- package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
- package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
- package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
- package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
- package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
- package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
- package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
- package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
- package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
- package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
- package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
- package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
- package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
- package/templates/skills/business-analyse/references/prd-generation.md +258 -258
- package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
- package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
- package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
- package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
- package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
- package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
- package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
- package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
- package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
- package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
- package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
- package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
- package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
- package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
- package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
- package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
- package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
- package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
- package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
- package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
- package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
- package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
- package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
- package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
- package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
- package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
- package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
- package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
- package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
- package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
- package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
- package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
- package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
- package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
- package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
- package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
- package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
- package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
- package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
- package/templates/skills/business-analyse/templates-frd.md +476 -476
- package/templates/skills/business-analyse/templates-react.md +574 -574
- package/templates/skills/cc-agent/SKILL.md +129 -129
- package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
- package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
- package/templates/skills/cc-agent/references/permission-modes.md +102 -102
- package/templates/skills/cc-agent/references/tools-reference.md +144 -144
- package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
- package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
- package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
- package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
- package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
- package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
- package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
- package/templates/skills/cc-audit/SKILL.md +108 -108
- package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
- package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
- package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
- package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
- package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
- package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
- package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
- package/templates/skills/cc-skill/SKILL.md +134 -134
- package/templates/skills/cc-skill/references/best-practices.md +167 -167
- package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
- package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
- package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
- package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
- package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
- package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
- package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
- package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
- package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
- package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
- package/templates/skills/cc-skill/templates/step-template.md +82 -82
- package/templates/skills/check-version/SKILL.md +196 -196
- package/templates/skills/controller/SKILL.md +162 -162
- package/templates/skills/controller/postman-templates.md +614 -614
- package/templates/skills/controller/references/controller-code-templates.md +159 -159
- package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
- package/templates/skills/controller/references/permission-sync-templates.md +149 -149
- package/templates/skills/controller/steps/step-00-init.md +193 -191
- package/templates/skills/controller/steps/step-01-analyze.md +146 -146
- package/templates/skills/controller/steps/step-02-plan.md +176 -176
- package/templates/skills/controller/steps/step-03-generate.md +189 -189
- package/templates/skills/controller/steps/step-04-perms.md +80 -80
- package/templates/skills/controller/steps/step-05-validate.md +107 -107
- package/templates/skills/controller/templates.md +1555 -1555
- package/templates/skills/debug/SKILL.md +70 -70
- package/templates/skills/debug/references/team-protocol.md +232 -232
- package/templates/skills/debug/steps/step-00-init.md +57 -57
- package/templates/skills/debug/steps/step-01-analyze.md +219 -219
- package/templates/skills/debug/steps/step-02-resolve.md +85 -85
- package/templates/skills/documentation/SKILL.md +132 -132
- package/templates/skills/documentation/data-schema.md +227 -227
- package/templates/skills/documentation/steps/step-00-init.md +70 -70
- package/templates/skills/documentation/steps/step-01-scan.md +113 -113
- package/templates/skills/documentation/steps/step-02-generate.md +231 -231
- package/templates/skills/documentation/steps/step-03-validate.md +251 -238
- package/templates/skills/documentation/templates.md +662 -663
- package/templates/skills/efcore/SKILL.md +167 -167
- package/templates/skills/efcore/references/both-contexts.md +32 -32
- package/templates/skills/efcore/references/database-operations.md +67 -67
- package/templates/skills/efcore/references/destructive-operations.md +38 -38
- package/templates/skills/efcore/references/reset-operations.md +81 -81
- package/templates/skills/efcore/references/seed-methods.md +86 -86
- package/templates/skills/efcore/references/shared-init-functions.md +250 -250
- package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
- package/templates/skills/efcore/references/troubleshooting.md +81 -81
- package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
- package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
- package/templates/skills/efcore/steps/db/step-reset.md +186 -186
- package/templates/skills/efcore/steps/db/step-seed.md +166 -166
- package/templates/skills/efcore/steps/db/step-status.md +173 -173
- package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
- package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
- package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
- package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
- package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
- package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
- package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
- package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
- package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
- package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
- package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
- package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
- package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
- package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
- package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
- package/templates/skills/explore/SKILL.md +98 -98
- package/templates/skills/feature-full/SKILL.md +111 -111
- package/templates/skills/feature-full/steps/step-00-init.md +57 -57
- package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
- package/templates/skills/gitflow/SKILL.md +377 -377
- package/templates/skills/gitflow/_shared.md +620 -620
- package/templates/skills/gitflow/phases/abort.md +189 -189
- package/templates/skills/gitflow/phases/cleanup.md +234 -234
- package/templates/skills/gitflow/phases/status.md +192 -192
- package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
- package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
- package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
- package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
- package/templates/skills/gitflow/references/init-config-template.md +135 -135
- package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
- package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
- package/templates/skills/gitflow/references/init-questions.md +185 -185
- package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
- package/templates/skills/gitflow/references/init-version-detection.md +21 -21
- package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
- package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
- package/templates/skills/gitflow/references/merge-execution.md +62 -62
- package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
- package/templates/skills/gitflow/references/plan-template.md +69 -69
- package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
- package/templates/skills/gitflow/references/pr-generation.md +58 -58
- package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
- package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
- package/templates/skills/gitflow/references/start-local-config.md +113 -113
- package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
- package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
- package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
- package/templates/skills/gitflow/steps/step-commit.md +199 -199
- package/templates/skills/gitflow/steps/step-finish.md +147 -147
- package/templates/skills/gitflow/steps/step-init.md +190 -190
- package/templates/skills/gitflow/steps/step-merge.md +85 -85
- package/templates/skills/gitflow/steps/step-plan.md +151 -151
- package/templates/skills/gitflow/steps/step-pr.md +199 -199
- package/templates/skills/gitflow/steps/step-start.md +195 -195
- package/templates/skills/gitflow/steps/step-sync.md +161 -161
- package/templates/skills/gitflow/templates/config.json +72 -72
- package/templates/skills/mcp/SKILL.md +62 -62
- package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
- package/templates/skills/mcp/steps/step-02-tools.md +73 -73
- package/templates/skills/notification/SKILL.md +173 -173
- package/templates/skills/quick-search/SKILL.md +99 -99
- package/templates/skills/ralph-loop/SKILL.md +234 -234
- package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
- package/templates/skills/ralph-loop/references/category-rules.md +96 -96
- package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
- package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
- package/templates/skills/ralph-loop/references/module-transition.md +151 -151
- package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
- package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
- package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
- package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
- package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
- package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
- package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
- package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
- package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
- package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
- package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
- package/templates/skills/refactor/SKILL.md +56 -56
- package/templates/skills/refactor/steps/step-01-discover.md +60 -60
- package/templates/skills/refactor/steps/step-02-execute.md +67 -67
- package/templates/skills/review-code/SKILL.md +94 -94
- package/templates/skills/review-code/references/clean-code-principles.md +292 -292
- package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
- package/templates/skills/review-code/references/feedback-patterns.md +149 -149
- package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
- package/templates/skills/review-code/references/security-checklist.md +212 -212
- package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
- package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
- package/templates/skills/review-code/steps/step-03-react.md +44 -44
- package/templates/skills/ui-components/SKILL.md +137 -137
- package/templates/skills/ui-components/accessibility.md +170 -170
- package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
- package/templates/skills/ui-components/patterns/data-table.md +39 -39
- package/templates/skills/ui-components/patterns/entity-card.md +77 -77
- package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
- package/templates/skills/ui-components/patterns/kanban.md +43 -43
- package/templates/skills/ui-components/responsive-guidelines.md +278 -278
- package/templates/skills/ui-components/style-guide.md +113 -113
- package/templates/skills/utils/SKILL.md +44 -44
- package/templates/skills/utils/subcommands/test-web-config.md +152 -152
- package/templates/skills/utils/subcommands/test-web.md +123 -123
- package/templates/skills/validate/SKILL.md +181 -181
- package/templates/skills/validate-feature/SKILL.md +101 -101
- package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
- package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
- package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
- package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
- package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
- package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
- package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
- package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
- package/templates/skills/workflow/SKILL.md +127 -127
- package/templates/skills/workflow/steps/step-00-init.md +57 -57
- package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
- package/templates/test-web/api-health.json +38 -38
- package/templates/test-web/minimal.json +19 -19
- package/templates/test-web/npm-package.json +46 -46
- package/templates/test-web/seo-check.json +54 -54
|
@@ -1,278 +1,278 @@
|
|
|
1
|
-
# SmartStack Responsive Design Guidelines
|
|
2
|
-
|
|
3
|
-
> **Objectif:** Toutes les pages SmartStack DOIVENT etre 100% responsives.
|
|
4
|
-
> Strategy: Progressive degradation (Desktop → Tablet → Mobile)
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## REGLE ABSOLUE
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
Toute page avec un tableau DOIT implementer:
|
|
12
|
-
1. Desktop (lg+) → Tableau complet avec toutes les colonnes
|
|
13
|
-
2. Tablette (md) → Tableau avec colonnes secondaires masquees
|
|
14
|
-
3. Mobile (<md) → Vue carte (cards), pas de tableau
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Pattern: Table Responsive + Cards Mobile
|
|
20
|
-
|
|
21
|
-
### Structure JSX
|
|
22
|
-
|
|
23
|
-
```tsx
|
|
24
|
-
// ============================================================
|
|
25
|
-
// CONTENU RESPONSIVE
|
|
26
|
-
// ============================================================
|
|
27
|
-
|
|
28
|
-
{/* Mobile: Toujours afficher les cartes */}
|
|
29
|
-
<div className="md:hidden">
|
|
30
|
-
{renderCardsView()}
|
|
31
|
-
</div>
|
|
32
|
-
|
|
33
|
-
{/* Tablette+: Afficher la vue selectionnee */}
|
|
34
|
-
<div className="hidden md:block">
|
|
35
|
-
{viewMode === 'table' && renderTableView()}
|
|
36
|
-
{viewMode === 'cards' && renderCardsView()}
|
|
37
|
-
{viewMode === 'kanban' && renderKanbanView()}
|
|
38
|
-
</div>
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### ViewToggle (masquer sur mobile)
|
|
42
|
-
|
|
43
|
-
```tsx
|
|
44
|
-
{/* View Toggle - masque sur mobile (toujours cartes sur mobile) */}
|
|
45
|
-
<div className="hidden md:block">
|
|
46
|
-
<ViewToggle
|
|
47
|
-
viewMode={viewMode}
|
|
48
|
-
onChange={setViewMode}
|
|
49
|
-
tableLabel="Table"
|
|
50
|
-
cardsLabel="Cards"
|
|
51
|
-
kanbanLabel="Kanban"
|
|
52
|
-
/>
|
|
53
|
-
</div>
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Pattern: Colonnes Responsives dans Table
|
|
59
|
-
|
|
60
|
-
### Priorite des colonnes
|
|
61
|
-
|
|
62
|
-
| Priorite | Breakpoint | Exemple colonnes |
|
|
63
|
-
|----------|------------|------------------|
|
|
64
|
-
| 1 - Critique | Toujours visible | Nom, Status, Actions |
|
|
65
|
-
| 2 - Important | `md:table-cell` | Email, Role |
|
|
66
|
-
| 3 - Secondaire | `lg:table-cell` | Date creation |
|
|
67
|
-
| 4 - Optionnel | `xl:table-cell` | Source, Groupe, Audit |
|
|
68
|
-
|
|
69
|
-
### Implementation
|
|
70
|
-
|
|
71
|
-
```tsx
|
|
72
|
-
<thead>
|
|
73
|
-
<tr className="bg-[var(--bg-secondary)]">
|
|
74
|
-
{/* Toujours visible */}
|
|
75
|
-
<th className="px-4 py-3">Nom</th>
|
|
76
|
-
|
|
77
|
-
{/* Visible md+ (tablette) */}
|
|
78
|
-
<th className="px-4 py-3 hidden md:table-cell">Email</th>
|
|
79
|
-
|
|
80
|
-
{/* Visible lg+ (desktop) */}
|
|
81
|
-
<th className="px-4 py-3 hidden lg:table-cell">Role</th>
|
|
82
|
-
|
|
83
|
-
{/* Toujours visible */}
|
|
84
|
-
<th className="px-4 py-3">Status</th>
|
|
85
|
-
|
|
86
|
-
{/* Visible xl+ (grand ecran) */}
|
|
87
|
-
<th className="px-4 py-3 hidden xl:table-cell">Source</th>
|
|
88
|
-
<th className="px-4 py-3 hidden xl:table-cell">Groupe</th>
|
|
89
|
-
|
|
90
|
-
{/* Toujours visible */}
|
|
91
|
-
<th className="px-4 py-3">Actions</th>
|
|
92
|
-
</tr>
|
|
93
|
-
</thead>
|
|
94
|
-
|
|
95
|
-
<tbody>
|
|
96
|
-
{items.map(item => (
|
|
97
|
-
<tr key={item.id}>
|
|
98
|
-
<td className="px-4 py-3">{item.name}</td>
|
|
99
|
-
<td className="px-4 py-3 hidden md:table-cell">{item.email}</td>
|
|
100
|
-
<td className="px-4 py-3 hidden lg:table-cell">{item.role}</td>
|
|
101
|
-
<td className="px-4 py-3">{item.status}</td>
|
|
102
|
-
<td className="px-4 py-3 hidden xl:table-cell">{item.source}</td>
|
|
103
|
-
<td className="px-4 py-3 hidden xl:table-cell">{item.group}</td>
|
|
104
|
-
<td className="px-4 py-3">{/* Actions */}</td>
|
|
105
|
-
</tr>
|
|
106
|
-
))}
|
|
107
|
-
</tbody>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Afficher info masquee sur petits ecrans
|
|
111
|
-
|
|
112
|
-
```tsx
|
|
113
|
-
{/* Dans la cellule Nom, afficher l'email sur mobile */}
|
|
114
|
-
<td className="px-4 py-3">
|
|
115
|
-
<div className="font-medium">{item.name}</div>
|
|
116
|
-
{/* Email visible uniquement sur mobile (quand colonne email masquee) */}
|
|
117
|
-
<div className="text-sm text-[var(--text-tertiary)] md:hidden">
|
|
118
|
-
{item.email}
|
|
119
|
-
</div>
|
|
120
|
-
</td>
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Pattern: Cards View
|
|
126
|
-
|
|
127
|
-
### Grid responsive
|
|
128
|
-
|
|
129
|
-
```tsx
|
|
130
|
-
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
|
|
131
|
-
{items.map(item => (
|
|
132
|
-
<div key={item.id} className="card p-4">
|
|
133
|
-
{/* Header avec avatar et status */}
|
|
134
|
-
<div className="flex items-center justify-between mb-3">
|
|
135
|
-
<div className="flex items-center gap-3">
|
|
136
|
-
<Avatar name={item.name} />
|
|
137
|
-
<div>
|
|
138
|
-
<div className="font-medium">{item.name}</div>
|
|
139
|
-
<div className="text-sm text-[var(--text-tertiary)]">{item.email}</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>
|
|
142
|
-
<StatusBadge status={item.status} />
|
|
143
|
-
</div>
|
|
144
|
-
|
|
145
|
-
{/* Corps avec infos supplementaires */}
|
|
146
|
-
<div className="space-y-2 mb-4">
|
|
147
|
-
<div className="flex items-center gap-2 text-sm">
|
|
148
|
-
<Shield className="w-4 h-4 text-[var(--text-tertiary)]" />
|
|
149
|
-
<span>{item.role}</span>
|
|
150
|
-
</div>
|
|
151
|
-
</div>
|
|
152
|
-
|
|
153
|
-
{/* Actions */}
|
|
154
|
-
<div className="flex items-center justify-end gap-1 pt-3 border-t border-[var(--border-color)]">
|
|
155
|
-
<button className="btn btn-ghost p-2">
|
|
156
|
-
<Eye className="w-4 h-4" />
|
|
157
|
-
</button>
|
|
158
|
-
<button className="btn btn-ghost p-2">
|
|
159
|
-
<Edit2 className="w-4 h-4" />
|
|
160
|
-
</button>
|
|
161
|
-
</div>
|
|
162
|
-
</div>
|
|
163
|
-
))}
|
|
164
|
-
</div>
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## Pattern: Header Responsive
|
|
170
|
-
|
|
171
|
-
```tsx
|
|
172
|
-
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
|
|
173
|
-
<div>
|
|
174
|
-
<h1 className="text-2xl font-bold">{title}</h1>
|
|
175
|
-
<p className="text-sm text-[var(--text-tertiary)] mt-1">
|
|
176
|
-
{count} elements
|
|
177
|
-
</p>
|
|
178
|
-
</div>
|
|
179
|
-
<div className="flex items-center gap-2">
|
|
180
|
-
<button className="btn btn-primary">
|
|
181
|
-
<Plus className="w-4 h-4" />
|
|
182
|
-
<span className="hidden sm:inline">Creer</span>
|
|
183
|
-
</button>
|
|
184
|
-
</div>
|
|
185
|
-
</div>
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
---
|
|
189
|
-
|
|
190
|
-
## Pattern: Filters Responsive
|
|
191
|
-
|
|
192
|
-
```tsx
|
|
193
|
-
{/* Barre de recherche + filtres */}
|
|
194
|
-
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
|
|
195
|
-
{/* Recherche - pleine largeur sur mobile */}
|
|
196
|
-
<div className="flex items-center gap-3 flex-1">
|
|
197
|
-
<div className="relative flex-1 max-w-md">
|
|
198
|
-
<input type="text" className="input w-full" />
|
|
199
|
-
</div>
|
|
200
|
-
<button className="btn btn-secondary">
|
|
201
|
-
<Filter className="w-4 h-4" />
|
|
202
|
-
<span className="hidden sm:inline">Filtres</span>
|
|
203
|
-
</button>
|
|
204
|
-
</div>
|
|
205
|
-
|
|
206
|
-
{/* View Toggle - masque sur mobile */}
|
|
207
|
-
<div className="hidden md:block">
|
|
208
|
-
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
209
|
-
</div>
|
|
210
|
-
</div>
|
|
211
|
-
|
|
212
|
-
{/* Panel filtres avances */}
|
|
213
|
-
{showFilters && (
|
|
214
|
-
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
|
|
215
|
-
{/* Chaque filtre */}
|
|
216
|
-
</div>
|
|
217
|
-
)}
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## Breakpoints Tailwind Reference
|
|
223
|
-
|
|
224
|
-
| Breakpoint | Min Width | Usage |
|
|
225
|
-
|------------|-----------|-------|
|
|
226
|
-
| `sm:` | 640px | Petit mobile → Grand mobile |
|
|
227
|
-
| `md:` | 768px | Mobile → Tablette |
|
|
228
|
-
| `lg:` | 1024px | Tablette → Desktop |
|
|
229
|
-
| `xl:` | 1280px | Desktop → Grand ecran |
|
|
230
|
-
| `2xl:` | 1536px | Grand ecran |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Checklist Responsive
|
|
235
|
-
|
|
236
|
-
Avant de valider une page, verifier:
|
|
237
|
-
|
|
238
|
-
- [ ] **Mobile** : Vue carte fonctionne (pas de tableau)
|
|
239
|
-
- [ ] **Tablette** : Colonnes secondaires masquees
|
|
240
|
-
- [ ] **Desktop** : Toutes les colonnes visibles
|
|
241
|
-
- [ ] **ViewToggle** : Masque sur mobile
|
|
242
|
-
- [ ] **Boutons** : Texte masque sur petit ecran (`hidden sm:inline`)
|
|
243
|
-
- [ ] **Header** : Stack vertical sur mobile (`flex-col sm:flex-row`)
|
|
244
|
-
- [ ] **Filtres** : Grid responsive (`grid-cols-1 sm:grid-cols-2 lg:grid-cols-4`)
|
|
245
|
-
- [ ] **Cards** : Grid responsive (`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`)
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Anti-Patterns a Eviter
|
|
250
|
-
|
|
251
|
-
```tsx
|
|
252
|
-
// ❌ MAUVAIS: Pas de breakpoint
|
|
253
|
-
<th>Email</th>
|
|
254
|
-
|
|
255
|
-
// ✅ BON: Avec breakpoint responsive
|
|
256
|
-
<th className="hidden md:table-cell">Email</th>
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
```tsx
|
|
260
|
-
// ❌ MAUVAIS: Meme vue partout
|
|
261
|
-
{viewMode === 'table' && renderTableView()}
|
|
262
|
-
|
|
263
|
-
// ✅ BON: Cards forces sur mobile
|
|
264
|
-
<div className="md:hidden">{renderCardsView()}</div>
|
|
265
|
-
<div className="hidden md:block">
|
|
266
|
-
{viewMode === 'table' && renderTableView()}
|
|
267
|
-
</div>
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
```tsx
|
|
271
|
-
// ❌ MAUVAIS: ViewToggle visible sur mobile
|
|
272
|
-
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
273
|
-
|
|
274
|
-
// ✅ BON: Masque sur mobile
|
|
275
|
-
<div className="hidden md:block">
|
|
276
|
-
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
277
|
-
</div>
|
|
278
|
-
```
|
|
1
|
+
# SmartStack Responsive Design Guidelines
|
|
2
|
+
|
|
3
|
+
> **Objectif:** Toutes les pages SmartStack DOIVENT etre 100% responsives.
|
|
4
|
+
> Strategy: Progressive degradation (Desktop → Tablet → Mobile)
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## REGLE ABSOLUE
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Toute page avec un tableau DOIT implementer:
|
|
12
|
+
1. Desktop (lg+) → Tableau complet avec toutes les colonnes
|
|
13
|
+
2. Tablette (md) → Tableau avec colonnes secondaires masquees
|
|
14
|
+
3. Mobile (<md) → Vue carte (cards), pas de tableau
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Pattern: Table Responsive + Cards Mobile
|
|
20
|
+
|
|
21
|
+
### Structure JSX
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
// ============================================================
|
|
25
|
+
// CONTENU RESPONSIVE
|
|
26
|
+
// ============================================================
|
|
27
|
+
|
|
28
|
+
{/* Mobile: Toujours afficher les cartes */}
|
|
29
|
+
<div className="md:hidden">
|
|
30
|
+
{renderCardsView()}
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
{/* Tablette+: Afficher la vue selectionnee */}
|
|
34
|
+
<div className="hidden md:block">
|
|
35
|
+
{viewMode === 'table' && renderTableView()}
|
|
36
|
+
{viewMode === 'cards' && renderCardsView()}
|
|
37
|
+
{viewMode === 'kanban' && renderKanbanView()}
|
|
38
|
+
</div>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### ViewToggle (masquer sur mobile)
|
|
42
|
+
|
|
43
|
+
```tsx
|
|
44
|
+
{/* View Toggle - masque sur mobile (toujours cartes sur mobile) */}
|
|
45
|
+
<div className="hidden md:block">
|
|
46
|
+
<ViewToggle
|
|
47
|
+
viewMode={viewMode}
|
|
48
|
+
onChange={setViewMode}
|
|
49
|
+
tableLabel="Table"
|
|
50
|
+
cardsLabel="Cards"
|
|
51
|
+
kanbanLabel="Kanban"
|
|
52
|
+
/>
|
|
53
|
+
</div>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Pattern: Colonnes Responsives dans Table
|
|
59
|
+
|
|
60
|
+
### Priorite des colonnes
|
|
61
|
+
|
|
62
|
+
| Priorite | Breakpoint | Exemple colonnes |
|
|
63
|
+
|----------|------------|------------------|
|
|
64
|
+
| 1 - Critique | Toujours visible | Nom, Status, Actions |
|
|
65
|
+
| 2 - Important | `md:table-cell` | Email, Role |
|
|
66
|
+
| 3 - Secondaire | `lg:table-cell` | Date creation |
|
|
67
|
+
| 4 - Optionnel | `xl:table-cell` | Source, Groupe, Audit |
|
|
68
|
+
|
|
69
|
+
### Implementation
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
<thead>
|
|
73
|
+
<tr className="bg-[var(--bg-secondary)]">
|
|
74
|
+
{/* Toujours visible */}
|
|
75
|
+
<th className="px-4 py-3">Nom</th>
|
|
76
|
+
|
|
77
|
+
{/* Visible md+ (tablette) */}
|
|
78
|
+
<th className="px-4 py-3 hidden md:table-cell">Email</th>
|
|
79
|
+
|
|
80
|
+
{/* Visible lg+ (desktop) */}
|
|
81
|
+
<th className="px-4 py-3 hidden lg:table-cell">Role</th>
|
|
82
|
+
|
|
83
|
+
{/* Toujours visible */}
|
|
84
|
+
<th className="px-4 py-3">Status</th>
|
|
85
|
+
|
|
86
|
+
{/* Visible xl+ (grand ecran) */}
|
|
87
|
+
<th className="px-4 py-3 hidden xl:table-cell">Source</th>
|
|
88
|
+
<th className="px-4 py-3 hidden xl:table-cell">Groupe</th>
|
|
89
|
+
|
|
90
|
+
{/* Toujours visible */}
|
|
91
|
+
<th className="px-4 py-3">Actions</th>
|
|
92
|
+
</tr>
|
|
93
|
+
</thead>
|
|
94
|
+
|
|
95
|
+
<tbody>
|
|
96
|
+
{items.map(item => (
|
|
97
|
+
<tr key={item.id}>
|
|
98
|
+
<td className="px-4 py-3">{item.name}</td>
|
|
99
|
+
<td className="px-4 py-3 hidden md:table-cell">{item.email}</td>
|
|
100
|
+
<td className="px-4 py-3 hidden lg:table-cell">{item.role}</td>
|
|
101
|
+
<td className="px-4 py-3">{item.status}</td>
|
|
102
|
+
<td className="px-4 py-3 hidden xl:table-cell">{item.source}</td>
|
|
103
|
+
<td className="px-4 py-3 hidden xl:table-cell">{item.group}</td>
|
|
104
|
+
<td className="px-4 py-3">{/* Actions */}</td>
|
|
105
|
+
</tr>
|
|
106
|
+
))}
|
|
107
|
+
</tbody>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Afficher info masquee sur petits ecrans
|
|
111
|
+
|
|
112
|
+
```tsx
|
|
113
|
+
{/* Dans la cellule Nom, afficher l'email sur mobile */}
|
|
114
|
+
<td className="px-4 py-3">
|
|
115
|
+
<div className="font-medium">{item.name}</div>
|
|
116
|
+
{/* Email visible uniquement sur mobile (quand colonne email masquee) */}
|
|
117
|
+
<div className="text-sm text-[var(--text-tertiary)] md:hidden">
|
|
118
|
+
{item.email}
|
|
119
|
+
</div>
|
|
120
|
+
</td>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Pattern: Cards View
|
|
126
|
+
|
|
127
|
+
### Grid responsive
|
|
128
|
+
|
|
129
|
+
```tsx
|
|
130
|
+
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
|
|
131
|
+
{items.map(item => (
|
|
132
|
+
<div key={item.id} className="card p-4">
|
|
133
|
+
{/* Header avec avatar et status */}
|
|
134
|
+
<div className="flex items-center justify-between mb-3">
|
|
135
|
+
<div className="flex items-center gap-3">
|
|
136
|
+
<Avatar name={item.name} />
|
|
137
|
+
<div>
|
|
138
|
+
<div className="font-medium">{item.name}</div>
|
|
139
|
+
<div className="text-sm text-[var(--text-tertiary)]">{item.email}</div>
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
<StatusBadge status={item.status} />
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
{/* Corps avec infos supplementaires */}
|
|
146
|
+
<div className="space-y-2 mb-4">
|
|
147
|
+
<div className="flex items-center gap-2 text-sm">
|
|
148
|
+
<Shield className="w-4 h-4 text-[var(--text-tertiary)]" />
|
|
149
|
+
<span>{item.role}</span>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
{/* Actions */}
|
|
154
|
+
<div className="flex items-center justify-end gap-1 pt-3 border-t border-[var(--border-color)]">
|
|
155
|
+
<button className="btn btn-ghost p-2">
|
|
156
|
+
<Eye className="w-4 h-4" />
|
|
157
|
+
</button>
|
|
158
|
+
<button className="btn btn-ghost p-2">
|
|
159
|
+
<Edit2 className="w-4 h-4" />
|
|
160
|
+
</button>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
))}
|
|
164
|
+
</div>
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Pattern: Header Responsive
|
|
170
|
+
|
|
171
|
+
```tsx
|
|
172
|
+
<div className="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
|
|
173
|
+
<div>
|
|
174
|
+
<h1 className="text-2xl font-bold">{title}</h1>
|
|
175
|
+
<p className="text-sm text-[var(--text-tertiary)] mt-1">
|
|
176
|
+
{count} elements
|
|
177
|
+
</p>
|
|
178
|
+
</div>
|
|
179
|
+
<div className="flex items-center gap-2">
|
|
180
|
+
<button className="btn btn-primary">
|
|
181
|
+
<Plus className="w-4 h-4" />
|
|
182
|
+
<span className="hidden sm:inline">Creer</span>
|
|
183
|
+
</button>
|
|
184
|
+
</div>
|
|
185
|
+
</div>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Pattern: Filters Responsive
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
{/* Barre de recherche + filtres */}
|
|
194
|
+
<div className="flex flex-col md:flex-row md:items-center justify-between gap-4">
|
|
195
|
+
{/* Recherche - pleine largeur sur mobile */}
|
|
196
|
+
<div className="flex items-center gap-3 flex-1">
|
|
197
|
+
<div className="relative flex-1 max-w-md">
|
|
198
|
+
<input type="text" className="input w-full" />
|
|
199
|
+
</div>
|
|
200
|
+
<button className="btn btn-secondary">
|
|
201
|
+
<Filter className="w-4 h-4" />
|
|
202
|
+
<span className="hidden sm:inline">Filtres</span>
|
|
203
|
+
</button>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
{/* View Toggle - masque sur mobile */}
|
|
207
|
+
<div className="hidden md:block">
|
|
208
|
+
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
{/* Panel filtres avances */}
|
|
213
|
+
{showFilters && (
|
|
214
|
+
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
|
|
215
|
+
{/* Chaque filtre */}
|
|
216
|
+
</div>
|
|
217
|
+
)}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Breakpoints Tailwind Reference
|
|
223
|
+
|
|
224
|
+
| Breakpoint | Min Width | Usage |
|
|
225
|
+
|------------|-----------|-------|
|
|
226
|
+
| `sm:` | 640px | Petit mobile → Grand mobile |
|
|
227
|
+
| `md:` | 768px | Mobile → Tablette |
|
|
228
|
+
| `lg:` | 1024px | Tablette → Desktop |
|
|
229
|
+
| `xl:` | 1280px | Desktop → Grand ecran |
|
|
230
|
+
| `2xl:` | 1536px | Grand ecran |
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## Checklist Responsive
|
|
235
|
+
|
|
236
|
+
Avant de valider une page, verifier:
|
|
237
|
+
|
|
238
|
+
- [ ] **Mobile** : Vue carte fonctionne (pas de tableau)
|
|
239
|
+
- [ ] **Tablette** : Colonnes secondaires masquees
|
|
240
|
+
- [ ] **Desktop** : Toutes les colonnes visibles
|
|
241
|
+
- [ ] **ViewToggle** : Masque sur mobile
|
|
242
|
+
- [ ] **Boutons** : Texte masque sur petit ecran (`hidden sm:inline`)
|
|
243
|
+
- [ ] **Header** : Stack vertical sur mobile (`flex-col sm:flex-row`)
|
|
244
|
+
- [ ] **Filtres** : Grid responsive (`grid-cols-1 sm:grid-cols-2 lg:grid-cols-4`)
|
|
245
|
+
- [ ] **Cards** : Grid responsive (`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`)
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Anti-Patterns a Eviter
|
|
250
|
+
|
|
251
|
+
```tsx
|
|
252
|
+
// ❌ MAUVAIS: Pas de breakpoint
|
|
253
|
+
<th>Email</th>
|
|
254
|
+
|
|
255
|
+
// ✅ BON: Avec breakpoint responsive
|
|
256
|
+
<th className="hidden md:table-cell">Email</th>
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
```tsx
|
|
260
|
+
// ❌ MAUVAIS: Meme vue partout
|
|
261
|
+
{viewMode === 'table' && renderTableView()}
|
|
262
|
+
|
|
263
|
+
// ✅ BON: Cards forces sur mobile
|
|
264
|
+
<div className="md:hidden">{renderCardsView()}</div>
|
|
265
|
+
<div className="hidden md:block">
|
|
266
|
+
{viewMode === 'table' && renderTableView()}
|
|
267
|
+
</div>
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
```tsx
|
|
271
|
+
// ❌ MAUVAIS: ViewToggle visible sur mobile
|
|
272
|
+
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
273
|
+
|
|
274
|
+
// ✅ BON: Masque sur mobile
|
|
275
|
+
<div className="hidden md:block">
|
|
276
|
+
<ViewToggle viewMode={viewMode} onChange={setViewMode} />
|
|
277
|
+
</div>
|
|
278
|
+
```
|