whiteport-design-studio 0.2.2 → 0.3.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/README.md +51 -67
- package/docs/getting-started/agent-activation/activation/step-01-load-agent-definition.md +0 -1
- package/docs/getting-started/agent-activation/activation/step-04-handoff-presentation.md +0 -1
- package/docs/getting-started/installation.md +1 -1
- package/docs/getting-started/quick-start.md +1 -1
- package/docs/getting-started/where-to-go-next.md +8 -8
- package/docs/learn/00-course-overview/00-course-overview.md +239 -0
- package/docs/{learn-wds → learn}/00-course-overview/00-getting-started-overview.md +1 -1
- package/docs/{learn-wds → learn}/00-course-overview/01-prerequisites.md +2 -2
- package/docs/{learn-wds → learn}/00-course-overview/02-learning-paths.md +6 -6
- package/docs/{learn-wds → learn}/00-course-overview/03-support.md +1 -1
- package/docs/{learn-wds → learn}/Webinars/2024-12-22-WDS-Sessions-1-Say-Hello-to-WDS.md +2 -2
- package/docs/{learn-wds → learn}/Webinars/2025-10-22-Webinar-WDS-v4.md +1 -1
- package/docs/{learn-wds → learn}/Webinars/2026-01-15-WDS-Sessions-2-Strategy-in-Practice.md +2 -2
- package/docs/{learn-wds → learn}/module-01-why-wds-matters/lesson-01-the-problem.md +4 -2
- package/docs/learn/module-01-why-wds-matters/lesson-02-designer-as-strategic-thinker.md +483 -0
- package/docs/{learn-wds/module-01-why-wds-matters/lesson-02-the-solution.md → learn/module-01-why-wds-matters/lesson-03-the-solution.md} +5 -3
- package/docs/{learn-wds/module-01-why-wds-matters/lesson-03-the-path-forward.md → learn/module-01-why-wds-matters/lesson-04-the-path-forward.md} +9 -6
- package/docs/{learn-wds → learn}/module-01-why-wds-matters/module-01-overview.md +22 -4
- package/docs/{learn-wds/module-02-installation-setup/lesson-01-git-setup/01-lesson.md → learn/module-02-installation-setup/lesson-01-git-setup.md} +12 -11
- package/docs/{learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-lesson.md → learn/module-02-installation-setup/lesson-02-ide-installation.md} +8 -7
- package/docs/{learn-wds/module-02-installation-setup/lesson-03-git-cloning/02-full-lesson.md → learn/module-02-installation-setup/lesson-03-git-cloning.md} +10 -9
- package/docs/learn/module-02-installation-setup/lesson-04-wds-initialization.md +133 -0
- package/docs/learn/module-02-installation-setup/module-02-overview.md +59 -0
- package/docs/learn/module-02-installation-setup/tutorial-02.md +158 -0
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-01-understanding-alignment.md +6 -2
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-02-creating-alignment-document.md +5 -1
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-03-negotiation-acceptance.md +6 -2
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-04-external-contracts.md +7 -3
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-05-internal-signoff.md +7 -3
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/module-03-overview.md +4 -4
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/tutorial-03.md +7 -7
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-01-chaos-problem.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-02-five-questions.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-03-document-structure.md +3 -1
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-04-wds-advantage.md +4 -2
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-05-using-brief.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-06-additional-documents.md +3 -1
- package/docs/{learn-wds → learn}/module-04-product-brief/module-04-overview.md +4 -4
- package/docs/{learn-wds → learn}/module-04-product-brief/tutorial-04.md +10 -8
- package/docs/learn/module-05-platform-requirements/lesson-01-why-boundaries-matter.md +232 -0
- package/docs/learn/module-05-platform-requirements/lesson-02-defining-platform-requirements.md +416 -0
- package/docs/learn/module-05-platform-requirements/module-05-platform-requirements-overview.md +186 -0
- package/docs/learn/module-05-platform-requirements/tutorial-05.md +377 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-01-missing-link.md +7 -4
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-02-heritage-evolution.md +20 -42
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-03-five-workshops-overview.md +7 -5
- package/docs/learn/module-06-trigger-mapping/lesson-04-workshop-1-business-goals.md +319 -0
- package/docs/learn/module-06-trigger-mapping/lesson-05-workshop-2-target-groups.md +557 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-06-workshop-3-driving-forces.md +120 -83
- package/docs/learn/module-06-trigger-mapping/lesson-07-workshop-4-prioritization.md +373 -0
- package/docs/learn/module-06-trigger-mapping/lesson-08-workshop-5-feature-impact.md +543 -0
- package/docs/learn/module-06-trigger-mapping/lesson-09-positive-negative-drivers.md +507 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-10-visual-trigger-map.md +6 -4
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-11-feature-impact-scoring.md +5 -3
- package/docs/{learn-wds/module-05-trigger-mapping/module-05-overview.md → learn/module-06-trigger-mapping/module-06-overview.md} +8 -20
- package/docs/{learn-wds/module-05-trigger-mapping/tutorial-05.md → learn/module-06-trigger-mapping/tutorial-06.md} +14 -12
- package/docs/{learn-wds/module-05-trigger-mapping/tutorial-05c-documentation-synthesis.md → learn/module-06-trigger-mapping/tutorial-06c-documentation-synthesis.md} +11 -9
- package/docs/learn/module-07-design-phase/lesson-01-entering-design.md +251 -0
- package/docs/learn/module-07-design-phase/lesson-02-why-specifications-matter.md +836 -0
- package/docs/learn/module-07-design-phase/lesson-03-meet-freya.md +200 -0
- package/docs/learn/module-07-design-phase/module-07-design-phase-overview.md +148 -0
- package/docs/learn/module-08-outline-scenarios/lesson-01-design-experiences-not-screens.md +559 -0
- package/docs/learn/module-08-outline-scenarios/lesson-02-from-trigger-map-to-scenarios.md +667 -0
- package/docs/learn/module-08-outline-scenarios/lesson-03-mapping-the-journey.md +347 -0
- package/docs/learn/module-08-outline-scenarios/module-08-outline-scenarios-overview.md +298 -0
- package/docs/learn/module-08-outline-scenarios/tutorial-08.md +397 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-01-visualize-first.md +286 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-02-sketching-techniques.md +270 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-03-why-hand-sketching.md +250 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-04-image-sketching-best-practices.md +272 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-05-sketch-text-strategy.md +509 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-06-ai-wireframe-generation.md +211 -0
- package/docs/learn/module-09-conceptual-sketching/module-09-conceptual-sketching-overview.md +243 -0
- package/docs/learn/module-09-conceptual-sketching/tutorial-09.md +381 -0
- package/docs/learn/module-10-storyboarding/lesson-01-transformations.md +392 -0
- package/docs/learn/module-10-storyboarding/lesson-02-storyboard-format.md +410 -0
- package/docs/learn/module-10-storyboarding/module-10-storyboarding-overview.md +290 -0
- package/docs/learn/module-10-storyboarding/tutorial-10.md +405 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-01-design-is-specification.md +593 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-02-section-widget-specifications.md +704 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-03-element-state-specifications.md +950 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-04-spacing-objects.md +192 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-05-typography-tokens.md +157 -0
- package/docs/learn/module-11-conceptual-specifications/module-11-conceptual-specifications-overview.md +497 -0
- package/docs/learn/module-11-conceptual-specifications/storyboards/password-field.md +32 -0
- package/docs/learn/module-11-conceptual-specifications/storyboards/submit-button.md +26 -0
- package/docs/learn/module-11-conceptual-specifications/tutorial-11.md +509 -0
- package/docs/learn/module-12-functional-components/components/button.md +41 -0
- package/docs/learn/module-12-functional-components/components/card.md +40 -0
- package/docs/learn/module-12-functional-components/components/input.md +42 -0
- package/docs/learn/module-12-functional-components/lesson-01-patterns-emerge.md +263 -0
- package/docs/learn/module-12-functional-components/lesson-02-component-anatomy.md +332 -0
- package/docs/learn/module-12-functional-components/module-12-functional-components-overview.md +384 -0
- package/docs/learn/module-12-functional-components/tutorial-12.md +405 -0
- package/docs/learn/module-13-design-system/lesson-01-understanding-modes.md +274 -0
- package/docs/learn/module-13-design-system/module-13-design-system-overview.md +157 -0
- package/docs/learn/module-13-design-system/tutorial-13.md +344 -0
- package/docs/learn/module-14-agentic-development/lesson-01-iterative-building.md +182 -0
- package/docs/learn/module-14-agentic-development/lesson-02-documenting-decisions.md +188 -0
- package/docs/learn/module-14-agentic-development/lesson-03-when-you-get-stuck.md +213 -0
- package/docs/learn/module-14-agentic-development/lesson-04-working-with-code.md +304 -0
- package/docs/learn/module-14-agentic-development/lesson-05-git-discipline.md +349 -0
- package/docs/learn/module-14-agentic-development/module-14-agentic-development-overview.md +249 -0
- package/docs/learn/module-14-agentic-development/tutorial-14.md +339 -0
- package/docs/learn/module-15-visual-design/lesson-01-making-it-visible.md +216 -0
- package/docs/learn/module-15-visual-design/lesson-02-visual-techniques.md +334 -0
- package/docs/learn/module-15-visual-design/module-15-visual-design-overview.md +338 -0
- package/docs/learn/module-15-visual-design/tutorial-15.md +377 -0
- package/docs/learn/module-16-design-delivery/lesson-01-validation-packaging.md +340 -0
- package/docs/learn/module-16-design-delivery/module-16-design-delivery-overview.md +178 -0
- package/docs/learn/module-16-design-delivery/tutorial-16.md +411 -0
- package/docs/learn/module-17-usability-testing/lesson-01-spec-verification.md +243 -0
- package/docs/learn/module-17-usability-testing/lesson-02-test-results.md +240 -0
- package/docs/learn/module-17-usability-testing/lesson-03-acting-on-findings.md +253 -0
- package/docs/learn/module-17-usability-testing/module-17-usability-testing-overview.md +231 -0
- package/docs/learn/module-17-usability-testing/tutorial-17.md +301 -0
- package/docs/learn/module-18-product-evolution/lesson-01-continuous-improvement.md +255 -0
- package/docs/learn/module-18-product-evolution/lesson-02-update-spec-project-code.md +229 -0
- package/docs/learn/module-18-product-evolution/module-18-product-evolution-overview.md +253 -0
- package/docs/learn/module-18-product-evolution/tutorial-18.md +293 -0
- package/docs/learn/widgets/W01-task-list.md +31 -0
- package/docs/learn/widgets/W02-calendar.md +31 -0
- package/docs/learn/widgets/W02-product-card.md +31 -0
- package/docs/learn/widgets/W03-quick-add.md +31 -0
- package/docs/method/content-creation-philosophy.md +3 -3
- package/docs/method/content-purpose-guide.md +4 -4
- package/docs/method/phase-1-product-exploration-guide.md +36 -9
- package/docs/method/phase-2-trigger-mapping-guide.md +44 -2
- package/docs/method/phase-3-prd-platform-guide.md +3 -282
- package/docs/method/phase-3-ux-scenarios-guide.md +193 -0
- package/docs/method/phase-4-ux-design-guide.md +146 -158
- package/docs/method/value-trigger-chain-guide.md +6 -469
- package/docs/method/wds-method-guide.md +139 -129
- package/docs/models/action-mapping.md +1 -1
- package/docs/models/customer-awareness-cycle.md +1 -15
- package/docs/models/golden-circle.md +2 -3
- package/docs/models/impact-effect-mapping.md +5 -6
- package/docs/models/kathy-sierra-badass-users.md +1 -1
- package/docs/models/models-guide.md +1 -2
- package/docs/models/smart-goals-model.md +2 -2
- package/docs/tools/excalidraw.md +384 -0
- package/docs/tools/wds-tools-guide.md +16 -8
- package/package.json +2 -2
- package/src/agents/freya-ux.agent.yaml +16 -15
- package/src/agents/saga-analyst.agent.yaml +11 -0
- package/src/data/agent-guides/freya/agentic-development.md +26 -27
- package/src/data/agent-guides/freya/content-creation.md +7 -7
- package/src/data/agent-guides/freya/strategic-design.md +4 -6
- package/src/data/agent-guides/saga/discovery-conversation.md +20 -0
- package/src/data/agent-guides/saga/dream-up-approach.md +132 -7
- package/src/data/agent-guides/saga/strategic-documentation.md +4 -6
- package/src/data/agent-guides/saga/trigger-mapping.md +7 -7
- package/src/data/presentations/freya-presentation.md +1 -1
- package/src/data/presentations/freya-workflows-guide.md +1 -1
- package/src/data/presentations/idunn-presentation.md +1 -1
- package/src/data/presentations/saga-presentation.md +1 -1
- package/src/module-help.csv +3 -3
- package/src/skills/freya.activation.md +14 -15
- package/src/skills/idunn.activation.md +12 -13
- package/src/skills/saga.activation.md +13 -14
- package/src/workflows/0-alignment-signoff/data/02-explore-sections-routing.md +12 -12
- package/src/workflows/0-alignment-signoff/data/03-synthesize-present-routing.md +2 -3
- package/src/workflows/0-alignment-signoff/steps-c/step-01a-understand-situation.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01b-determine-if-needed.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01c-offer-extract.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01d-extract-info.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01e-detect-starting-point.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02a-explore-realization.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02b-explore-solution.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02c-explore-why-it-matters.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02d-explore-how-we-see-it-working.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02e-explore-paths-we-explored.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02f-explore-recommended-solution.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02g-explore-path-forward.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02h-explore-value-we-create.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02i-explore-cost-of-inaction.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02j-explore-our-commitment.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02k-explore-summary.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-03a-reflect-back.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-03b-synthesize-document.md +3 -3
- package/src/workflows/0-alignment-signoff/steps-c/step-03d-present-approval.md +2 -2
- package/src/workflows/0-alignment-signoff/steps-c/step-04a-offer-signoff.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-04b-determine-business-model.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05a-contract-overview.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05b-contract-business-model.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05c-contract-scope.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05d-contract-payment.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05e-contract-timeline.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05f-contract-availability.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05g-contract-confidentiality.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05h-contract-not-to-exceed.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05i-contract-work-initiation.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05j-contract-terms.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05k-contract-approval.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05l-finalize-contract.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-06a-build-internal-signoff.md +1 -1
- package/src/workflows/0-alignment-signoff/workflow.md +2 -6
- package/src/workflows/0-project-setup/steps/step-01-welcome.md +1 -1
- package/src/workflows/0-project-setup/steps/step-02-structure.md +3 -3
- package/src/workflows/0-project-setup/templates/folder-guides/00-design-log.template.md +59 -0
- package/src/workflows/0-project-setup/templates/folder-guides/00-design-system.template.md +150 -1
- package/src/workflows/0-project-setup/templates/folder-guides/00-trigger-map.template.md +0 -1
- package/src/workflows/0-project-setup/workflow.md +2 -2
- package/src/workflows/1-project-brief/data/positioning-reflect-confirm.md +2 -2
- package/src/workflows/1-project-brief/data/positioning-synthesize.md +3 -3
- package/src/workflows/1-project-brief/data/vision-synthesize.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-00-simplified-brief.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-01-init.md +4 -4
- package/src/workflows/1-project-brief/steps-c/step-02-vision.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-03-positioning.md +5 -5
- package/src/workflows/1-project-brief/steps-c/step-05-business-model.md +4 -4
- package/src/workflows/1-project-brief/steps-c/step-06-business-customers.md +8 -2
- package/src/workflows/1-project-brief/steps-c/step-07-target-users.md +10 -4
- package/src/workflows/1-project-brief/steps-c/step-07a-product-concept.md +9 -3
- package/src/workflows/1-project-brief/steps-c/step-08-success-criteria.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-09-competitive-landscape.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-10-constraints.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-10a-platform-strategy.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-11-tone-of-voice.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-12-synthesize.md → step-12-create-product-brief.md} +6 -6
- package/src/workflows/1-project-brief/steps-c/step-13-content-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-14-personality.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-15-tone.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-16-languages.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-17-seo-keywords.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-17a-content-structure.md +2 -2
- package/src/workflows/1-project-brief/steps-c/{step-18-content-synthesize.md → step-18-create-content-document.md} +7 -7
- package/src/workflows/1-project-brief/steps-c/step-19-inspiration-workshop.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-20-visual-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-21-existing-brand.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-22-references.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-23-design-style.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-24-layout-effects.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-25-imagery.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-26-visual-synthesize.md → step-26-create-visual-document.md} +3 -3
- package/src/workflows/1-project-brief/steps-c/step-27-platform-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-28-tech-stack.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-29-integrations.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-30-contact-strategy.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-31-multilingual.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-32-platform-synthesize.md → step-32-create-platform-document.md} +3 -3
- package/src/workflows/1-project-brief/steps-c/step-33-analyze-brief.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-34-create-summary.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-35-update-design-log.md +4 -4
- package/src/workflows/1-project-brief/steps-v/step-01-brief-completeness.md +2 -2
- package/src/workflows/1-project-brief/steps-v/{step-02-vtc-consistency.md → step-02-trigger-map-consistency.md} +27 -27
- package/src/workflows/1-project-brief/steps-v/step-03-seo-strategy.md +2 -2
- package/src/workflows/1-project-brief/steps-v/step-04-content-language.md +1 -1
- package/src/workflows/1-project-brief/steps-v/step-05-visual-direction.md +1 -1
- package/src/workflows/1-project-brief/steps-v/step-06-platform-requirements.md +1 -1
- package/src/workflows/1-project-brief/templates/00-project-info.template.md +1 -2
- package/src/workflows/1-project-brief/templates/pitch.template.md +5 -13
- package/src/workflows/1-project-brief/templates/project-brief-dialog/USAGE.md +7 -92
- package/src/workflows/1-project-brief/templates/project-brief.template.md +5 -11
- package/src/workflows/1-project-brief/workflow-validate.md +3 -5
- package/src/workflows/1-project-brief/workflow.md +6 -10
- package/src/workflows/2-trigger-mapping/steps-c/step-01-overview.md +10 -10
- package/src/workflows/2-trigger-mapping/steps-c/step-07a-generate-hub.md +36 -0
- package/src/workflows/2-trigger-mapping/steps-c/step-09a-finalize-hub.md +18 -2
- package/src/workflows/2-trigger-mapping/steps-c/step-09e-update-design-log.md +3 -3
- package/src/workflows/2-trigger-mapping/workflow-validate.md +2 -5
- package/src/workflows/2-trigger-mapping/workflow.md +2 -4
- package/src/workflows/3-scenarios/data/quality-checklist.md +10 -6
- package/src/workflows/3-scenarios/data/scenario-outline-template.md +45 -32
- package/src/workflows/3-scenarios/steps-c/step-01-load-context.md +2 -2
- package/src/workflows/3-scenarios/steps-c/step-02-analyze-scope.md +5 -5
- package/src/workflows/3-scenarios/steps-c/{step-03-build-vtcs.md → step-03-build-strategic-context.md} +32 -32
- package/src/workflows/3-scenarios/steps-c/step-04-suggest-scenarios.md +4 -4
- package/src/workflows/3-scenarios/steps-c/step-05-outline-scenario.md +177 -64
- package/src/workflows/3-scenarios/steps-c/step-06-generate-overview.md +1 -1
- package/src/workflows/3-scenarios/steps-c/step-07-quality-review.md +1 -1
- package/src/workflows/3-scenarios/steps-c/step-08-update-design-log.md +2 -2
- package/src/workflows/3-scenarios/steps-c/step-09-handover.md +8 -8
- package/src/workflows/3-scenarios/steps-v/step-01-scenario-coverage.md +23 -23
- package/src/workflows/3-scenarios/workflow-validate.md +2 -5
- package/src/workflows/3-scenarios/workflow.md +4 -6
- package/src/workflows/4-ux-design/data/guides/DESIGN-LOOP-GUIDE.md +179 -0
- package/src/workflows/4-ux-design/data/guides/NANO-BANANA-PROMPT-GUIDE.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/flow-b-verbal.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/flow-e-html.md +2 -2
- package/src/workflows/4-ux-design/data/page-creation-flows/lightweight-page-template.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/page-init-lightweight.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/placeholder-templates.md +3 -3
- package/src/workflows/4-ux-design/data/quality-guide.md +1 -1
- package/src/workflows/4-ux-design/data/scenario-init/06-shortest-path.md +2 -2
- package/src/workflows/4-ux-design/data/scenario-init/07-reference-trigger-map.md +80 -0
- package/src/workflows/4-ux-design/data/scenario-init/scenario-init-guide.md +4 -4
- package/src/workflows/4-ux-design/data/specification-audit-workflow.md +29 -4
- package/src/workflows/4-ux-design/steps-c/step-01-exploration.md +230 -98
- package/src/workflows/4-ux-design/steps-m/step-01-review-current.md +2 -2
- package/src/workflows/4-ux-design/steps-m/step-02-define-component.md +1 -1
- package/src/workflows/4-ux-design/steps-m/step-03-validate-usage.md +2 -2
- package/src/workflows/4-ux-design/steps-p/step-07-validation.md +3 -3
- package/src/workflows/4-ux-design/steps-p/step-08-spacing-typography.md +210 -0
- package/src/workflows/4-ux-design/steps-p/{step-08-generate-spec.md → step-09-generate-spec.md} +19 -25
- package/src/workflows/4-ux-design/steps-s/step-01-core-feature.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-02-entry-point.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-03-mental-state.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-04-mutual-success.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-05-shortest-path.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-06-scenario-name.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-07-create-scenario-folder.md +8 -7
- package/src/workflows/4-ux-design/steps-s/step-08-page-context.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-09-page-name.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-10-page-purpose.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-11-entry-point.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-12-mental-state.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-13-desired-outcome.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-14-variants.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-15-create-page-structure.md +32 -13
- package/src/workflows/4-ux-design/steps-v/step-03-page-overview.md +1 -1
- package/src/workflows/4-ux-design/steps-w/step-01-visual-approach.md +1 -2
- package/src/workflows/4-ux-design/steps-w/step-02-generate-visual.md +1 -1
- package/src/workflows/4-ux-design/steps-w/step-02w-nb-compose-prompt.md +13 -22
- package/src/workflows/4-ux-design/steps-w/step-03-review-integrate.md +4 -4
- package/src/workflows/4-ux-design/templates/audit-report.template.md +2 -2
- package/src/workflows/4-ux-design/templates/page-specification.template.md +86 -0
- package/src/workflows/4-ux-design/workflow-conceptualize.md +9 -15
- package/src/workflows/4-ux-design/workflow-design-system.md +20 -8
- package/src/workflows/4-ux-design/workflow-dream.md +104 -13
- package/src/workflows/4-ux-design/workflow-handover.md +4 -8
- package/src/workflows/4-ux-design/workflow-sketch.md +2 -9
- package/src/workflows/4-ux-design/workflow-specify.md +6 -11
- package/src/workflows/4-ux-design/workflow-suggest.md +70 -21
- package/src/workflows/4-ux-design/workflow-validate.md +6 -10
- package/src/workflows/4-ux-design/workflow-visual.md +5 -10
- package/src/workflows/4-ux-design/workflow.md +110 -39
- package/src/workflows/5-agentic-development/data/guides/FILE-INDEX.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-01-define-question.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-02-scan-codebase.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-03-map-architecture.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-04-document-findings.md +2 -2
- package/src/workflows/5-agentic-development/steps-d/step-01-scope-and-plan.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-02-setup-environment.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-03-implement.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-04-verify.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-05-finalize.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-01-scope-change.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-02-analyze-impact.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-03-plan-implementation.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-04-implement.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-05-verify-and-document.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-01-reproduce.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-02-investigate.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-03-fix.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-04-verify.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-05-document.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/1-prototype-setup.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/2-scenario-analysis.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/3-logical-view-breakdown.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4a-announce-and-gather.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4b-create-story-file.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4c-implement-section.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4d-present-for-testing.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4e-handle-issue.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4f-handle-improvement.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4g-section-approved.md +2 -2
- package/src/workflows/5-agentic-development/steps-p/5-finalization.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-01-identify-target.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-02-explore-and-capture.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-03-generate-specs.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-04-extract-design-system.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-01-prepare.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-02-execute.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-03-document-issues.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-04-report.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-05-iterate.md +1 -1
- package/src/workflows/5-agentic-development/workflow-acceptance-testing.md +33 -8
- package/src/workflows/5-agentic-development/workflow-analysis.md +5 -8
- package/src/workflows/5-agentic-development/workflow-bugfixing.md +5 -8
- package/src/workflows/5-agentic-development/workflow-development.md +17 -8
- package/src/workflows/5-agentic-development/workflow-evolution.md +5 -8
- package/src/workflows/5-agentic-development/workflow-prototyping.md +26 -8
- package/src/workflows/5-agentic-development/workflow-reverse-engineering.md +5 -8
- package/src/workflows/5-agentic-development/workflow.md +5 -8
- package/src/workflows/6-asset-generation/data/00-purpose-examples.md +4 -4
- package/src/workflows/6-asset-generation/data/03-action-filter-example.md +1 -1
- package/src/workflows/6-asset-generation/data/04-example-empowerment-frame.md +1 -1
- package/src/workflows/6-asset-generation/data/05-example-golden-circle.md +1 -1
- package/src/workflows/6-asset-generation/data/05-golden-circle-guide.md +1 -1
- package/src/workflows/6-asset-generation/data/06-example-hairdresser-newsletter.md +1 -1
- package/src/workflows/6-asset-generation/data/06-generation-instructions.md +1 -1
- package/src/workflows/6-asset-generation/data/content-creation-workshop-guide.md +9 -10
- package/src/workflows/6-asset-generation/steps-c/step-00-define-purpose.md +3 -3
- package/src/workflows/6-asset-generation/steps-c/step-01-load-trigger-map-context.md +147 -0
- package/src/workflows/6-asset-generation/steps-c/step-02-awareness-strategy.md +5 -5
- package/src/workflows/6-asset-generation/steps-c/step-03-action-filter.md +7 -7
- package/src/workflows/6-asset-generation/steps-c/step-04-empowerment-frame.md +1 -1
- package/src/workflows/6-asset-generation/steps-c/step-05-structural-order.md +2 -2
- package/src/workflows/6-asset-generation/steps-c/step-06-generate-content.md +3 -3
- package/src/workflows/6-asset-generation/templates/content-output.template.md +5 -5
- package/src/workflows/6-asset-generation/workflow-content.md +4 -7
- package/src/workflows/6-asset-generation/workflow-figma.md +2 -5
- package/src/workflows/6-asset-generation/workflow-icons.md +2 -5
- package/src/workflows/6-asset-generation/workflow-images.md +2 -5
- package/src/workflows/6-asset-generation/workflow-page-designs.md +2 -5
- package/src/workflows/6-asset-generation/workflow-stitch.md +5 -9
- package/src/workflows/6-asset-generation/workflow-ui-elements.md +2 -5
- package/src/workflows/6-asset-generation/workflow-videos.md +2 -5
- package/src/workflows/6-asset-generation/workflow-wireframes.md +2 -5
- package/src/workflows/6-asset-generation/workflow.md +3 -5
- package/src/workflows/7-design-system/steps-c/step-01-scan-existing.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-02-compare-attributes.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-03-calculate-similarity.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-04-identify-opportunities.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-05-identify-risks.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-06-present-decision.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-07-execute-decision.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08a-initialize-design-system.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08b-create-new-component.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08c-update-component.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08d-add-variant.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08e-generate-catalog.md +1 -1
- package/src/workflows/7-design-system/workflow-browse.md +2 -5
- package/src/workflows/7-design-system/workflow-create.md +2 -5
- package/src/workflows/7-design-system/workflow-edit.md +2 -5
- package/src/workflows/7-design-system/workflow-import.md +2 -5
- package/src/workflows/7-design-system/workflow-view.md +2 -5
- package/src/workflows/7-design-system/workflow.md +9 -11
- package/src/workflows/8-product-evolution/steps-a/step-01-identify.md +4 -4
- package/src/workflows/8-product-evolution/steps-p/step-01-create-delivery.md +1 -1
- package/src/workflows/8-product-evolution/workflow-analyze.md +2 -5
- package/src/workflows/8-product-evolution/workflow-deploy.md +3 -6
- package/src/workflows/8-product-evolution/workflow-design.md +2 -5
- package/src/workflows/8-product-evolution/workflow-implement.md +2 -5
- package/src/workflows/8-product-evolution/workflow-scope.md +2 -5
- package/src/workflows/8-product-evolution/workflow-test.md +2 -5
- package/src/workflows/8-product-evolution/workflow.md +7 -9
- package/tools/cli/commands/install.js +1 -1
- package/tools/cli/installers/lib/ide/_base-ide.js +263 -0
- package/tools/cli/installers/lib/ide/antigravity.js +34 -0
- package/tools/cli/installers/lib/ide/auggie.js +42 -0
- package/tools/cli/installers/lib/ide/claude-code.js +114 -0
- package/tools/cli/installers/lib/ide/cline.js +116 -0
- package/tools/cli/installers/lib/ide/codex.js +43 -0
- package/tools/cli/installers/lib/ide/crush.js +42 -0
- package/tools/cli/installers/lib/ide/cursor.js +116 -0
- package/tools/cli/installers/lib/ide/gemini.js +50 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +106 -0
- package/tools/cli/installers/lib/ide/iflow.js +42 -0
- package/tools/cli/installers/lib/ide/kilo.js +55 -0
- package/tools/cli/installers/lib/ide/kiro-cli.js +44 -0
- package/tools/cli/installers/lib/ide/manager.js +218 -0
- package/tools/cli/installers/lib/ide/opencode.js +44 -0
- package/tools/cli/installers/lib/ide/qwen.js +50 -0
- package/tools/cli/installers/lib/ide/roo.js +43 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +43 -0
- package/tools/cli/installers/lib/ide/trae.js +42 -0
- package/tools/cli/installers/lib/ide/windsurf.js +106 -0
- package/tools/cli/lib/compiler.js +10 -2
- package/tools/cli/lib/ide-configs.js +2 -4
- package/tools/cli/lib/installer.js +115 -206
- package/tools/cli/lib/ui.js +191 -54
- package/docs/getting-started/agent-activation/wds-mimir.md +0 -78
- package/docs/learn-wds/00-course-overview.md +0 -211
- package/docs/learn-wds/Webinars/2024-12-22-WDS-Jam-1-Say-Hello-to-AI-Agent-Framework.md +0 -0
- package/docs/learn-wds/course-explainers/Module 00-transcript.srt +0 -635
- package/docs/learn-wds/course-explainers/Module 02-transcript.srt +0 -807
- package/docs/learn-wds/course-explainers/Module-00-notebook-lm-prompt.md +0 -250
- package/docs/learn-wds/course-explainers/Module-00-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-00-youtube-show-notes.md +0 -78
- package/docs/learn-wds/course-explainers/Module-01-notebook-lm-prompt.md +0 -418
- package/docs/learn-wds/course-explainers/Module-01-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-01-transcript.srt +0 -731
- package/docs/learn-wds/course-explainers/Module-02-notebook-lm-prompt.md +0 -342
- package/docs/learn-wds/course-explainers/Module-02-thumbnail-prompt.md +0 -34
- package/docs/learn-wds/course-explainers/Module-03-notebook-lm-prompt.md +0 -745
- package/docs/learn-wds/course-explainers/Module-03-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-03-transcript.srt +0 -595
- package/docs/learn-wds/course-explainers/Module-04-notebook-lm-prompt.md +0 -163
- package/docs/learn-wds/course-explainers/Module-04-thumbnail-prompt.md +0 -36
- package/docs/learn-wds/course-explainers/Module-04-youtube-show-notes.md +0 -95
- package/docs/learn-wds/course-explainers/Module-05-notebook-lm-prompt.md +0 -274
- package/docs/learn-wds/course-explainers/Module-05-thumbnail-prompt.md +0 -40
- package/docs/learn-wds/course-explainers/Module-05-youtube-show-notes.md +0 -65
- package/docs/learn-wds/course-explainers/module-01-YOUTUBE-SHOW-NOTES.md +0 -75
- package/docs/learn-wds/course-explainers/module-02-YOUTUBE-SHOW-NOTES.md +0 -86
- package/docs/learn-wds/course-explainers/module-03-YOUTUBE-SHOW-NOTES.md +0 -82
- package/docs/learn-wds/course-explainers/trigger-map-example.jpg +0 -0
- package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/01-quick-checklist.md +0 -63
- package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/02-full-lesson.md +0 -124
- package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/checklist.md +0 -87
- package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/lesson.md +0 -203
- package/docs/learn-wds/module-02-installation-setup/lesson-01-setting-up-github/checklist.md +0 -70
- package/docs/learn-wds/module-02-installation-setup/lesson-02-git-configuration/checklist.md +0 -40
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/01-quick-checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-full-lesson.md +0 -88
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-quick-checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/tutorial.md +0 -149
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/01-quick-checklist.md +0 -51
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-lesson.md +0 -111
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-quick-checklist.md +0 -51
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/checklist.md +0 -41
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/tutorial.md +0 -159
- package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/checklist.md +0 -93
- package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/tutorial.md +0 -217
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/01-quick-checklist.md +0 -73
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/02-full-lesson.md +0 -206
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-lesson.md +0 -206
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-quick-checklist.md +0 -73
- package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/checklist.md +0 -79
- package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/tutorial.md +0 -244
- package/docs/learn-wds/module-02-installation-setup/module-02-overview.md +0 -77
- package/docs/learn-wds/module-05-map-triggers-outcomes/tutorial-04.md +0 -460
- package/docs/learn-wds/module-05-trigger-mapping/lesson-04-workshop-1-business-goals.md +0 -274
- package/docs/learn-wds/module-05-trigger-mapping/lesson-05-workshop-2-target-groups.md +0 -504
- package/docs/learn-wds/module-05-trigger-mapping/lesson-07-workshop-4-prioritization.md +0 -313
- package/docs/learn-wds/module-05-trigger-mapping/lesson-08-workshop-5-feature-impact.md +0 -474
- package/docs/learn-wds/module-05-trigger-mapping/lesson-09-positive-negative-drivers.md +0 -348
- package/docs/learn-wds/module-05-trigger-mapping/tutorial-05b-value-trigger-chain.md +0 -393
- package/docs/learn-wds/module-06-platform-architecture/tutorial-06.md +0 -358
- package/docs/learn-wds/module-08-initialize-scenario/tutorial-08.md +0 -521
- package/docs/learn-wds/module-09-design-system/tutorial-09.md +0 -515
- package/docs/learn-wds/module-10-design-delivery/tutorial-10.md +0 -604
- package/docs/learn-wds/module-12-conceptual-specs/tutorial-12.md +0 -734
- package/src/agents/mimir-orchestrator.agent.yaml +0 -45
- package/src/data/agent-guides/mimir/emotional-intelligence.md +0 -295
- package/src/data/agent-guides/mimir/teaching-styles.md +0 -286
- package/src/data/agent-guides/mimir/wds-overview.md +0 -377
- package/src/data/presentations/mimir-getting-started.md +0 -52
- package/src/data/presentations/mimir-presentation.md +0 -123
- package/src/gems/eira-visual-designer.md +0 -571
- package/src/workflows/0-alignment-signoff/steps-c/step-03c-create-vtc.md +0 -148
- package/src/workflows/0-project-setup/templates/folder-guides/00-progress.template.md +0 -56
- package/src/workflows/1-project-brief/steps-c/step-04-create-vtc.md +0 -120
- package/src/workflows/1-project-brief/steps-c/step-11a-create-vtc.md +0 -181
- package/src/workflows/1-project-brief/templates/vtc-template.yaml +0 -210
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-01a-define-business-goal.md +0 -137
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-01b-load-trigger-map.md +0 -127
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-02a-identify-solution.md +0 -133
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-02b-select-business-goal.md +0 -138
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-03a-describe-user.md +0 -147
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-03b-select-user.md +0 -142
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-04a-positive-driving-forces.md +0 -163
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-04b-select-driving-forces.md +0 -154
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-05a-negative-driving-forces.md +0 -195
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-05b-define-solution.md +0 -117
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-06a-customer-awareness.md +0 -216
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-06b-customer-awareness.md +0 -123
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-07a-review-and-save.md +0 -250
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-07b-review-and-save.md +0 -191
- package/src/workflows/1-project-brief/vtc-workshop/workflow.md +0 -209
- package/src/workflows/4-ux-design/data/scenario-init/07-create-vtc.md +0 -132
- package/src/workflows/6-asset-generation/steps-c/step-01-load-vtc-context.md +0 -150
- package/src/workflows/_agent-dialogs/conversation-persistence/check-conversations.md +0 -162
- package/src/workflows/_agent-dialogs/conversation-persistence/conversation-template.md +0 -70
- package/src/workflows/_agent-dialogs/conversation-persistence/persistence-guide.md +0 -81
- package/src/workflows/_agent-dialogs/conversation-persistence/save-conversation.md +0 -146
- package/src/workflows/_agent-dialogs/project-analysis/01-instructions.md +0 -79
- package/src/workflows/_agent-dialogs/project-analysis/02-project-analysis-router.md +0 -99
- package/src/workflows/_agent-dialogs/project-analysis/03-context-aware-activation.md +0 -99
- package/src/workflows/_agent-dialogs/project-analysis/04-task-reflection.md +0 -303
- package/src/workflows/_agent-dialogs/project-analysis/05-agent-handoff-guide.md +0 -233
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/freya-domain.md +0 -144
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/idunn-domain.md +0 -112
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/saga-domain.md +0 -132
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/empty-project-response.md +0 -207
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/folder-based-analysis.md +0 -135
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/new-project-response.md +0 -235
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/outline-based-analysis.md +0 -238
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/unknown-structure-response.md +0 -216
- package/src/workflows/_agent-dialogs/project-analysis/validation/deep-validation-before-work.md +0 -235
- package/src/workflows/_agent-dialogs/project-analysis/work-types/strategy-work.md +0 -88
- package/src/workflows/_agent-dialogs/step-completion-protocol.md +0 -175
- package/src/workflows/_agent-dialogs/steps/step-01-initialize-dialog.md +0 -244
- package/src/workflows/_agent-dialogs/steps/step-02-analyze-scope.md +0 -195
- package/src/workflows/_agent-dialogs/steps/step-03-create-steps.md +0 -186
- package/src/workflows/_agent-dialogs/steps/step-04-execute-steps.md +0 -250
- package/src/workflows/_agent-dialogs/steps/step-05-complete-dialog.md +0 -177
- package/src/workflows/_agent-dialogs/templates/agent-dialog.template.md +0 -115
- package/src/workflows/_agent-dialogs/templates/dialog-capture.template.md +0 -75
- package/src/workflows/_agent-dialogs/templates/dialog-types/INDEX.md +0 -142
- package/src/workflows/_agent-dialogs/templates/dialog-types/bug-fix.template.md +0 -164
- package/src/workflows/_agent-dialogs/templates/dialog-types/design-exploration.template.md +0 -180
- package/src/workflows/_agent-dialogs/templates/dialog-types/prototype-implementation.template.md +0 -292
- package/src/workflows/_agent-dialogs/templates/dialog-types/stitch-generation.template.md +0 -311
- package/src/workflows/_agent-dialogs/templates/dialog.template.md +0 -200
- package/src/workflows/_agent-dialogs/templates/dream-up-agent-dialog.template.md +0 -271
- package/src/workflows/_agent-dialogs/templates/step.template.md +0 -138
- package/src/workflows/_agent-dialogs/workflow.md +0 -193
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
# Module 12: Functional Components
|
|
2
|
+
|
|
3
|
+
## Lesson 1: When Patterns Emerge
|
|
4
|
+
|
|
5
|
+
**Identifying reusable elements across your specifications**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## The Natural Progression
|
|
10
|
+
|
|
11
|
+
You've written specifications for multiple pages. And something happens:
|
|
12
|
+
|
|
13
|
+
You're specifying a button on page 3... and realize it's identical to the button on page 1.
|
|
14
|
+
|
|
15
|
+
Same states. Same behavior. Same styling. Different label.
|
|
16
|
+
|
|
17
|
+
**A pattern has emerged.**
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Why Extract Functional Components?
|
|
22
|
+
|
|
23
|
+
### Consistency
|
|
24
|
+
|
|
25
|
+
Same Functional Component = same behavior everywhere.
|
|
26
|
+
|
|
27
|
+
When the button on the signup form works like the button on the settings page, users don't have to relearn anything.
|
|
28
|
+
|
|
29
|
+
### Efficiency
|
|
30
|
+
|
|
31
|
+
Specify once, reference many times.
|
|
32
|
+
|
|
33
|
+
Instead of copying the full button specification to every page, you define it once and reference it.
|
|
34
|
+
|
|
35
|
+
### Maintainability
|
|
36
|
+
|
|
37
|
+
Change once, update everywhere.
|
|
38
|
+
|
|
39
|
+
Need to update the loading state? Change the component definition. Every instance inherits the update.
|
|
40
|
+
|
|
41
|
+
### Communication
|
|
42
|
+
|
|
43
|
+
Shared vocabulary with developers.
|
|
44
|
+
|
|
45
|
+
"Use the primary Button component" is clearer than "make a blue button that does this specific thing."
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## When to Extract
|
|
50
|
+
|
|
51
|
+
Not everything should be a component. And **objects and spacing have different extraction timing:**
|
|
52
|
+
|
|
53
|
+
### Objects: Extract on Second Use
|
|
54
|
+
|
|
55
|
+
The first time a button or card appears, it's a one-off — it stays inline in the page spec. The second time the same pattern appears (same states, same behavior), it's a real pattern. Extract it to the design system.
|
|
56
|
+
|
|
57
|
+
First use = one-off. Second use = pattern. Extract.
|
|
58
|
+
|
|
59
|
+
### Spacing: Extract Immediately
|
|
60
|
+
|
|
61
|
+
Spacing extracts on **first use** — no waiting for a second occurrence.
|
|
62
|
+
|
|
63
|
+
Why? Because spacing is relational. When you decide that a heading needs `space-xl` above a card grid, that's a universal design principle — not a page-specific detail. It applies everywhere that pair of object types appears.
|
|
64
|
+
|
|
65
|
+
### The Decision Checklist
|
|
66
|
+
|
|
67
|
+
For objects, look for:
|
|
68
|
+
|
|
69
|
+
**Appears more than once**
|
|
70
|
+
|
|
71
|
+
Once is an instance. Twice or more is a pattern worth extracting.
|
|
72
|
+
|
|
73
|
+
**Consistent behavior**
|
|
74
|
+
|
|
75
|
+
The element behaves the same way everywhere. If behavior differs, they're different elements.
|
|
76
|
+
|
|
77
|
+
**Worth centralizing**
|
|
78
|
+
|
|
79
|
+
The extraction provides value. Sometimes inline is simpler.
|
|
80
|
+
|
|
81
|
+
**Meaningful abstraction**
|
|
82
|
+
|
|
83
|
+
"Button" is meaningful. "Blue rectangle with text" is not.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## What IS a Functional Component?
|
|
88
|
+
|
|
89
|
+
A **Functional Component** is a reusable widget with defined functionality:
|
|
90
|
+
|
|
91
|
+
- **Variants** — Different configurations (detailed, compact, minimal)
|
|
92
|
+
- **States** — Behavioral states (loading, loaded, error, refreshing)
|
|
93
|
+
- **Props** — Configurable options (location, maxResults, onSelect)
|
|
94
|
+
- **Behavior** — What the widget does (fetches data, handles input, manages state)
|
|
95
|
+
|
|
96
|
+
**Key distinction:** Functional Components are specification-level widgets, not implementation-level UI components (React, Vue, etc.).
|
|
97
|
+
|
|
98
|
+
### Examples
|
|
99
|
+
|
|
100
|
+
| Functional Component | What It Does |
|
|
101
|
+
|---------------------|--------------|
|
|
102
|
+
| Weather Widget | Fetches weather, displays forecast, handles location, refresh |
|
|
103
|
+
| Search Widget | Accepts input, fetches suggestions, handles selection, keyboard nav |
|
|
104
|
+
| Login Form | Validates fields, manages auth flow, handles errors |
|
|
105
|
+
| Comment Section | Manages comment input, character count, submission, validation |
|
|
106
|
+
| Task Card | Displays task, handles status changes, actions, completion |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## What Is NOT a Functional Component
|
|
111
|
+
|
|
112
|
+
Not everything needs extraction:
|
|
113
|
+
|
|
114
|
+
| Functional Component | NOT a Functional Component |
|
|
115
|
+
|---------------------|---------------------------|
|
|
116
|
+
| Weather Widget | A single temperature display |
|
|
117
|
+
| Search Widget | A single input field |
|
|
118
|
+
| Login Form | A single button |
|
|
119
|
+
| Task Card | A checkbox element |
|
|
120
|
+
| Comment Section | A color value or margin |
|
|
121
|
+
|
|
122
|
+
**Functional Components have functionality and behavior.** Simple elements and styles don't.
|
|
123
|
+
|
|
124
|
+
If the thing doesn't have complex behavior, states, and reusable functionality, it's probably just an element or style token, not a Functional Component.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Functional Component vs. Instance
|
|
129
|
+
|
|
130
|
+
**Functional Component:** The widget definition
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
## Weather Widget (Functional Component)
|
|
134
|
+
Variants: compact, detailed, minimal
|
|
135
|
+
States: loading, loaded, error, refreshing
|
|
136
|
+
Props: location, variant, autoRefresh, units
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Instance:** A specific usage
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
### Homepage Hero Weather
|
|
143
|
+
- Functional Component: Weather Widget
|
|
144
|
+
- Variant: detailed
|
|
145
|
+
- Location: User's city
|
|
146
|
+
- AutoRefresh: true
|
|
147
|
+
- OnLoad: Fetch forecast data
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The Functional Component defines the possibilities. The instance applies them.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## The Extraction Process
|
|
155
|
+
|
|
156
|
+
When you notice a pattern:
|
|
157
|
+
|
|
158
|
+
### 1. Identify the Pattern
|
|
159
|
+
|
|
160
|
+
"This button appears in signup, settings, and checkout..."
|
|
161
|
+
|
|
162
|
+
### 2. Document the Variations
|
|
163
|
+
|
|
164
|
+
- Primary (blue, white text)
|
|
165
|
+
- Secondary (white, blue border)
|
|
166
|
+
- Ghost (transparent, text only)
|
|
167
|
+
|
|
168
|
+
### 3. List All States
|
|
169
|
+
|
|
170
|
+
- Default
|
|
171
|
+
- Hover
|
|
172
|
+
- Active
|
|
173
|
+
- Loading
|
|
174
|
+
- Disabled
|
|
175
|
+
|
|
176
|
+
### 4. Define the Props
|
|
177
|
+
|
|
178
|
+
| Prop | Type | Default | Options |
|
|
179
|
+
|------|------|---------|---------|
|
|
180
|
+
| variant | string | primary | primary, secondary, ghost |
|
|
181
|
+
| size | string | md | sm, md, lg |
|
|
182
|
+
| disabled | boolean | false | |
|
|
183
|
+
|
|
184
|
+
### 5. Create the Component Document
|
|
185
|
+
|
|
186
|
+
Goes in `C-UX-Scenarios/Functional-Components/weather-widget.md`
|
|
187
|
+
|
|
188
|
+
### 6. Update Page Specs
|
|
189
|
+
|
|
190
|
+
Replace inline definitions with component references.
|
|
191
|
+
|
|
192
|
+
### Visual Extraction Flow
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
STEP 1: IDENTIFY PATTERN
|
|
196
|
+
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
|
197
|
+
│ Signup Page │ │ Settings Page │ │ Checkout Page │
|
|
198
|
+
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
|
|
199
|
+
│ Button (primary) │ │ Button (primary) │ │ Button (primary) │
|
|
200
|
+
│ States: default, │ │ States: default, │ │ States: default, │
|
|
201
|
+
│ hover, loading │ │ hover, loading │ │ hover, loading │
|
|
202
|
+
└──────────────────┘ └──────────────────┘ └──────────────────┘
|
|
203
|
+
↓ ↓ ↓
|
|
204
|
+
└──────────────────────┴──────────────────────┘
|
|
205
|
+
↓
|
|
206
|
+
PATTERN RECOGNIZED
|
|
207
|
+
↓
|
|
208
|
+
|
|
209
|
+
STEP 2-4: DOCUMENT COMPONENT
|
|
210
|
+
┌────────────────────────────────────────────────────────────┐
|
|
211
|
+
│ C-UX-Scenarios/Functional-Components/weather-widget.md │
|
|
212
|
+
├────────────────────────────────────────────────────────────┤
|
|
213
|
+
│ Variants: primary, secondary, ghost │
|
|
214
|
+
│ States: default, hover, active, loading, disabled │
|
|
215
|
+
│ Props: variant, size, disabled, loading │
|
|
216
|
+
└────────────────────────────────────────────────────────────┘
|
|
217
|
+
↓
|
|
218
|
+
|
|
219
|
+
STEP 5-6: UPDATE PAGE SPECS
|
|
220
|
+
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
|
221
|
+
│ Signup Page │ │ Settings Page │ │ Checkout Page │
|
|
222
|
+
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
|
|
223
|
+
│ Component: │ │ Component: │ │ Component: │
|
|
224
|
+
│ Button │ │ Button │ │ Button │
|
|
225
|
+
│ (primary, lg) │ │ (primary, md) │ │ (primary, lg) │
|
|
226
|
+
│ Label: "Sign Up" │ │ Label: "Save" │ │ Label: "Pay Now" │
|
|
227
|
+
└──────────────────┘ └──────────────────┘ └──────────────────┘
|
|
228
|
+
↑ ↑ ↑
|
|
229
|
+
└──────────────────────┴──────────────────────┘
|
|
230
|
+
↑
|
|
231
|
+
ALL REFERENCE SAME DEFINITION
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Design System
|
|
237
|
+
|
|
238
|
+
How you handle components depends on your mode:
|
|
239
|
+
|
|
240
|
+
| Mode | Component Handling |
|
|
241
|
+
|------|-------------------|
|
|
242
|
+
| **None** | Keep inline in page specs |
|
|
243
|
+
| **Building** | Extract to C-UX-Scenarios/Functional-Components/ |
|
|
244
|
+
| **Library** | Reference external (shadcn, etc.) |
|
|
245
|
+
| **Existing** | Import from previous project |
|
|
246
|
+
|
|
247
|
+
If you're in Mode 1 (None), you can still document patterns — just keep them inline rather than extracting to separate files.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## What's Next
|
|
252
|
+
|
|
253
|
+
In the next lesson, you'll learn the component anatomy in detail — how to document variants, states, props, and usage rules.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
**[Continue to Lesson 2: Component Anatomy →](lesson-02-component-anatomy.md)**
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
[← Back to Module Overview](module-12-functional-components-overview.md)
|
|
262
|
+
|
|
263
|
+
*Part of Module 12: Functional Components*
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# Module 12: Functional Components
|
|
2
|
+
|
|
3
|
+
## Lesson 2: Functional Component Anatomy
|
|
4
|
+
|
|
5
|
+
**How to document Functional Components completely**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## The Functional Component Template
|
|
10
|
+
|
|
11
|
+
Every Functional Component follows this structure:
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
## [Component Name]
|
|
15
|
+
|
|
16
|
+
### Description
|
|
17
|
+
What this Functional Component is and when to use it.
|
|
18
|
+
|
|
19
|
+
### Variants
|
|
20
|
+
Different visual styles.
|
|
21
|
+
|
|
22
|
+
### States
|
|
23
|
+
Behavioral states.
|
|
24
|
+
|
|
25
|
+
### Props
|
|
26
|
+
Configurable options.
|
|
27
|
+
|
|
28
|
+
### Usage Rules
|
|
29
|
+
When and how to use it correctly.
|
|
30
|
+
|
|
31
|
+
### Accessibility
|
|
32
|
+
Keyboard, screen reader, and focus requirements.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Component Structure Visualized
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
39
|
+
│ FUNCTIONAL COMPONENT DEFINITION │
|
|
40
|
+
│ (weather-widget.md in C-UX-Scenarios/Functional-Components/) │
|
|
41
|
+
└──────────────────────────────────────────────────────────────┘
|
|
42
|
+
│
|
|
43
|
+
┌─────────────────────┼─────────────────────┐
|
|
44
|
+
│ │ │
|
|
45
|
+
↓ ↓ ↓
|
|
46
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
47
|
+
│ WHAT │ │ HOW │ │ WHEN │
|
|
48
|
+
│ Description │ │ Variants │ │ Usage Rules │
|
|
49
|
+
│ │ │ States │ │ │
|
|
50
|
+
│ Purpose & │ │ Props │ │ DO/DON'T │
|
|
51
|
+
│ use cases │ │ │ │ guidelines │
|
|
52
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
53
|
+
│ │ │
|
|
54
|
+
└─────────────────────┼─────────────────────┘
|
|
55
|
+
│
|
|
56
|
+
↓
|
|
57
|
+
┌──────────────────┐
|
|
58
|
+
│ WHO │
|
|
59
|
+
│ Accessibility │
|
|
60
|
+
│ │
|
|
61
|
+
│ Screen readers, │
|
|
62
|
+
│ keyboard, ARIA │
|
|
63
|
+
└──────────────────┘
|
|
64
|
+
│
|
|
65
|
+
↓
|
|
66
|
+
╔═══════════════════════════════════════════╗
|
|
67
|
+
║ COMPLETE FUNCTIONAL COMPONENT ║
|
|
68
|
+
║ ║
|
|
69
|
+
║ Ready to be referenced by page specs ║
|
|
70
|
+
║ All behavior defined, no ambiguity ║
|
|
71
|
+
╚═══════════════════════════════════════════╝
|
|
72
|
+
│
|
|
73
|
+
┌─────────────────────┼─────────────────────┐
|
|
74
|
+
↓ ↓ ↓
|
|
75
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
76
|
+
│ Page 1 │ │ Page 2 │ │ Page 3 │
|
|
77
|
+
│ Instance A │ │ Instance B │ │ Instance C │
|
|
78
|
+
│ │ │ │ │ │
|
|
79
|
+
│ Button │ │ Button │ │ Button │
|
|
80
|
+
│ (primary,lg) │ │ (secondary) │ │ (primary,md) │
|
|
81
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Each section serves a purpose:** Description explains WHY, Variants/States/Props explain HOW, Usage Rules explain WHEN, Accessibility explains WHO can use it.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Section: Description
|
|
89
|
+
|
|
90
|
+
One paragraph explaining what the Functional Component is and its purpose.
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
### Description
|
|
94
|
+
Primary action trigger used throughout the application.
|
|
95
|
+
Communicates importance through visual weight and draws
|
|
96
|
+
user attention to key actions.
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Keep it concise. This is the "why this exists" summary.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Section: Variants
|
|
104
|
+
|
|
105
|
+
Different visual styles for different purposes.
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
### Variants
|
|
109
|
+
|
|
110
|
+
| Variant | Use Case | Visual |
|
|
111
|
+
|---------|----------|--------|
|
|
112
|
+
| Primary | Main action on page | Blue bg, white text |
|
|
113
|
+
| Secondary | Alternative action | White bg, blue border |
|
|
114
|
+
| Ghost | Tertiary action | Transparent, text only |
|
|
115
|
+
| Danger | Destructive action | Red bg, white text |
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Rule:** One primary action per screen. Everything else is secondary or lower.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Section: States
|
|
123
|
+
|
|
124
|
+
How the Functional Component looks in different conditions.
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
### States
|
|
128
|
+
|
|
129
|
+
| State | Trigger | Visual Change |
|
|
130
|
+
|-------|---------|---------------|
|
|
131
|
+
| Default | Initial load | Standard appearance |
|
|
132
|
+
| Hover | Mouse over | Slight darkening, shadow |
|
|
133
|
+
| Active | Mouse down | Pressed appearance (scale 98%) |
|
|
134
|
+
| Focused | Keyboard focus | Blue outline, 2px offset |
|
|
135
|
+
| Disabled | disabled=true | Grayed out, no interactions |
|
|
136
|
+
| Loading | loading=true | Spinner replaces text |
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Include the trigger (what causes this state) and the visual change.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Section: Props
|
|
144
|
+
|
|
145
|
+
Configurable options for instances.
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
### Props
|
|
149
|
+
|
|
150
|
+
| Prop | Type | Default | Description |
|
|
151
|
+
|------|------|---------|-------------|
|
|
152
|
+
| variant | string | "primary" | Visual style: primary, secondary, ghost, danger |
|
|
153
|
+
| size | string | "md" | Size: sm (32px), md (40px), lg (48px) |
|
|
154
|
+
| disabled | boolean | false | Disables interaction |
|
|
155
|
+
| loading | boolean | false | Shows loading spinner |
|
|
156
|
+
| icon | node | null | Optional leading icon |
|
|
157
|
+
| iconPosition | string | "left" | Icon position: left, right |
|
|
158
|
+
| fullWidth | boolean | false | Spans full container width |
|
|
159
|
+
| type | string | "button" | HTML type: button, submit, reset |
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Important:** Specify the exact values, not just the types.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Section: Usage Rules
|
|
167
|
+
|
|
168
|
+
When and how to use the Functional Component correctly.
|
|
169
|
+
|
|
170
|
+
```markdown
|
|
171
|
+
### Usage Rules
|
|
172
|
+
|
|
173
|
+
**DO:**
|
|
174
|
+
- Use primary variant for the main action on each screen
|
|
175
|
+
- Always include text label (icon optional)
|
|
176
|
+
- Ensure minimum touch target of 44px
|
|
177
|
+
- Use loading state during async operations
|
|
178
|
+
- Position primary action prominently
|
|
179
|
+
|
|
180
|
+
**DON'T:**
|
|
181
|
+
- Use multiple primary buttons on one screen
|
|
182
|
+
- Use icon-only buttons without aria-label
|
|
183
|
+
- Disable buttons without explanation
|
|
184
|
+
- Use ghost variant for primary actions
|
|
185
|
+
- Mix variants in a single button group
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
These rules prevent misuse.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Section: Accessibility
|
|
193
|
+
|
|
194
|
+
Requirements for keyboard, screen reader, and focus management.
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
### Accessibility
|
|
198
|
+
|
|
199
|
+
**Semantic:**
|
|
200
|
+
- Element: `<button>` (or `<a>` if navigating)
|
|
201
|
+
- Role: Implicit from element
|
|
202
|
+
|
|
203
|
+
**Keyboard:**
|
|
204
|
+
- Focusable: Yes (when not disabled)
|
|
205
|
+
- Activation: Enter or Space
|
|
206
|
+
- Focus visible: 2px blue outline with 2px offset
|
|
207
|
+
|
|
208
|
+
**Screen Reader:**
|
|
209
|
+
- Announces: "[label], button"
|
|
210
|
+
- Loading: aria-busy="true", announce "Loading"
|
|
211
|
+
- Disabled: aria-disabled="true", announce "disabled"
|
|
212
|
+
|
|
213
|
+
**ARIA (when needed):**
|
|
214
|
+
- Icon-only: aria-label="[action description]"
|
|
215
|
+
- Opens dialog: aria-haspopup="dialog"
|
|
216
|
+
- Expanded state: aria-expanded="true/false"
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Complete Example: Button Component
|
|
222
|
+
|
|
223
|
+
```markdown
|
|
224
|
+
# Button Component
|
|
225
|
+
|
|
226
|
+
## Description
|
|
227
|
+
Primary action trigger used throughout the application.
|
|
228
|
+
Communicates importance through visual weight and guides
|
|
229
|
+
users toward key actions.
|
|
230
|
+
|
|
231
|
+
## Variants
|
|
232
|
+
|
|
233
|
+
| Variant | Use Case | Visual |
|
|
234
|
+
|---------|----------|--------|
|
|
235
|
+
| Primary | Main page action | Blue bg (#0066FF), white text |
|
|
236
|
+
| Secondary | Alternative action | White bg, blue border |
|
|
237
|
+
| Ghost | Tertiary/inline action | Transparent, blue text |
|
|
238
|
+
| Danger | Destructive action | Red bg (#DC2626), white text |
|
|
239
|
+
|
|
240
|
+
## States
|
|
241
|
+
|
|
242
|
+
| State | Trigger | Visual |
|
|
243
|
+
|-------|---------|--------|
|
|
244
|
+
| Default | Initial | Standard appearance |
|
|
245
|
+
| Hover | Mouse over | 10% darker, subtle shadow |
|
|
246
|
+
| Active | Mouse down | Scale 98%, darker still |
|
|
247
|
+
| Focused | Keyboard | Blue 2px outline |
|
|
248
|
+
| Disabled | prop | 50% opacity, cursor not-allowed |
|
|
249
|
+
| Loading | prop | Spinner replaces text |
|
|
250
|
+
|
|
251
|
+
## Props
|
|
252
|
+
|
|
253
|
+
| Prop | Type | Default | Options |
|
|
254
|
+
|------|------|---------|---------|
|
|
255
|
+
| variant | string | "primary" | primary, secondary, ghost, danger |
|
|
256
|
+
| size | string | "md" | sm (32px), md (40px), lg (48px) |
|
|
257
|
+
| disabled | boolean | false | |
|
|
258
|
+
| loading | boolean | false | |
|
|
259
|
+
| icon | node | null | Any icon Functional Component |
|
|
260
|
+
| iconPosition | string | "left" | left, right |
|
|
261
|
+
| fullWidth | boolean | false | |
|
|
262
|
+
|
|
263
|
+
## Usage Rules
|
|
264
|
+
|
|
265
|
+
**One primary per screen.** Secondary and ghost for other actions.
|
|
266
|
+
|
|
267
|
+
**Always has text.** Icon-only requires aria-label.
|
|
268
|
+
|
|
269
|
+
**Loading replaces text.** Button stays same size.
|
|
270
|
+
|
|
271
|
+
**Touch target: 44px minimum.** Even if visually smaller.
|
|
272
|
+
|
|
273
|
+
## Accessibility
|
|
274
|
+
|
|
275
|
+
- Element: `<button type="button">`
|
|
276
|
+
- Keyboard: Enter/Space activates
|
|
277
|
+
- Focus: Visible blue outline
|
|
278
|
+
- Loading: aria-busy="true"
|
|
279
|
+
- Disabled: aria-disabled="true"
|
|
280
|
+
- Icon-only: aria-label required
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## The Freya Method
|
|
286
|
+
|
|
287
|
+
Freya notices patterns as you specify:
|
|
288
|
+
|
|
289
|
+
> "This is the third time you've specified a card with image, title, and description. Should we extract it as a Functional Component?"
|
|
290
|
+
|
|
291
|
+
> "Your submit buttons are inconsistent — some say 'Submit', others say 'Save'. Should we standardize?"
|
|
292
|
+
|
|
293
|
+
She helps you see what's becoming a pattern before you realize it.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## File Organization
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
C-UX-Scenarios/Functional-Components/
|
|
301
|
+
├── Functional Components/
|
|
302
|
+
│ ├── button.md
|
|
303
|
+
│ ├── input.md
|
|
304
|
+
│ ├── card.md
|
|
305
|
+
│ ├── modal.md
|
|
306
|
+
│ └── toast.md
|
|
307
|
+
├── tokens/
|
|
308
|
+
│ ├── colors.yaml
|
|
309
|
+
│ ├── typography.yaml
|
|
310
|
+
│ └── spacing.yaml
|
|
311
|
+
└── patterns/
|
|
312
|
+
├── form-layout.md
|
|
313
|
+
└── page-structure.md
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
Components go in `Functional Components/`. Design tokens (colors, fonts, spacing) go in `tokens/`.
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## What's Next
|
|
321
|
+
|
|
322
|
+
In the tutorial, you'll identify Functional Components from your existing specifications and document them using this anatomy.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
**[Continue to Tutorial: Extract Your Components →](tutorial-12.md)**
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
[← Back to Lesson 1](lesson-01-patterns-emerge.md) | [Back to Module Overview](module-12-functional-components-overview.md)
|
|
331
|
+
|
|
332
|
+
*Part of Module 12: Functional Components*
|