From db3c0274f625ce51f375ddaf80872707675605f0 Mon Sep 17 00:00:00 2001
From: adilallo <39313955+adilallo@users.noreply.github.com>
Date: Thu, 5 Feb 2026 18:21:56 -0700
Subject: [PATCH] Start organizational migration
---
app/blog/[slug]/page.tsx | 6 +++---
app/components-preview/page.tsx | 6 +++---
.../ConditionalHeader/ConditionalHeader.view.tsx | 4 ++--
app/components/{ => buttons}/Button.tsx | 4 ++--
.../{ => cards}/IconCard/IconCard.container.tsx | 0
.../{ => cards}/IconCard/IconCard.types.ts | 0
.../{ => cards}/IconCard/IconCard.view.tsx | 0
app/components/{ => cards}/IconCard/index.tsx | 0
app/components/{ => cards}/NumberCard.tsx | 4 ++--
.../{ => cards}/RuleCard/RuleCard.container.tsx | 2 +-
.../{ => cards}/RuleCard/RuleCard.types.ts | 2 +-
.../{ => cards}/RuleCard/RuleCard.view.tsx | 4 ++--
app/components/{ => cards}/RuleCard/index.tsx | 0
.../{ => controls}/Checkbox/Checkbox.container.tsx | 4 ++--
.../{ => controls}/Checkbox/Checkbox.types.ts | 2 +-
.../{ => controls}/Checkbox/Checkbox.view.tsx | 0
app/components/{ => controls}/Checkbox/index.tsx | 0
.../CheckboxGroup/CheckboxGroup.container.tsx | 2 +-
.../CheckboxGroup/CheckboxGroup.types.ts | 2 +-
.../CheckboxGroup/CheckboxGroup.view.tsx | 0
.../{ => controls}/CheckboxGroup/index.tsx | 0
.../{ => controls}/Chip/Chip.container.tsx | 2 +-
app/components/{ => controls}/Chip/Chip.types.ts | 2 +-
app/components/{ => controls}/Chip/Chip.view.tsx | 0
app/components/{ => controls}/Chip/index.tsx | 0
.../InputWithCounter/InputWithCounter.types.ts | 0
.../InputWithCounter/InputWithCounter.view.tsx | 0
.../{ => controls}/InputWithCounter/index.tsx | 0
.../MultiSelect/MultiSelect.container.tsx | 2 +-
.../MultiSelect/MultiSelect.types.ts | 2 +-
.../MultiSelect/MultiSelect.view.tsx | 2 +-
.../{ => controls}/MultiSelect/index.tsx | 0
.../RadioButton/RadioButton.container.tsx | 2 +-
.../RadioButton/RadioButton.types.ts | 2 +-
.../RadioButton/RadioButton.view.tsx | 0
.../{ => controls}/RadioButton/index.tsx | 0
.../RadioGroup/RadioGroup.container.tsx | 2 +-
.../{ => controls}/RadioGroup/RadioGroup.types.ts | 2 +-
.../{ => controls}/RadioGroup/RadioGroup.view.tsx | 0
app/components/{ => controls}/RadioGroup/index.tsx | 0
.../SelectInput/SelectInput.container.tsx | 4 ++--
.../SelectInput/SelectInput.types.ts | 2 +-
.../SelectInput/SelectInput.view.tsx | 6 +++---
.../{ => controls}/SelectInput/index.tsx | 0
.../{ => controls}/Switch/Switch.container.tsx | 2 +-
.../{ => controls}/Switch/Switch.types.ts | 2 +-
.../{ => controls}/Switch/Switch.view.tsx | 0
app/components/{ => controls}/Switch/index.tsx | 0
.../{ => controls}/TextArea/TextArea.container.tsx | 4 ++--
.../{ => controls}/TextArea/TextArea.types.ts | 2 +-
.../{ => controls}/TextArea/TextArea.view.tsx | 0
app/components/{ => controls}/TextArea/index.tsx | 0
.../TextInput/TextInput.container.tsx | 4 ++--
.../{ => controls}/TextInput/TextInput.types.ts | 2 +-
.../{ => controls}/TextInput/TextInput.view.tsx | 2 +-
app/components/{ => controls}/TextInput/index.tsx | 0
.../{ => controls}/Toggle/Toggle.container.tsx | 2 +-
.../{ => controls}/Toggle/Toggle.types.ts | 2 +-
.../{ => controls}/Toggle/Toggle.view.tsx | 0
app/components/{ => controls}/Toggle/index.tsx | 0
.../ToggleGroup/ToggleGroup.container.tsx | 2 +-
.../ToggleGroup/ToggleGroup.types.ts | 2 +-
.../ToggleGroup/ToggleGroup.view.tsx | 0
.../{ => controls}/ToggleGroup/index.tsx | 0
app/components/{ => icons}/Avatar.tsx | 2 +-
app/components/{ => icons}/Logo.tsx | 2 +-
.../{ => modals}/Alert/Alert.container.tsx | 2 +-
app/components/{ => modals}/Alert/Alert.types.ts | 0
app/components/{ => modals}/Alert/Alert.view.tsx | 2 +-
app/components/{ => modals}/Alert/index.tsx | 0
.../{ => modals}/Create/Create.container.tsx | 0
app/components/{ => modals}/Create/Create.types.ts | 0
app/components/{ => modals}/Create/Create.view.tsx | 6 +++---
app/components/{ => modals}/Create/index.tsx | 0
.../{ => modals}/Tooltip/Tooltip.container.tsx | 2 +-
.../{ => modals}/Tooltip/Tooltip.types.ts | 0
.../{ => modals}/Tooltip/Tooltip.view.tsx | 0
app/components/{ => modals}/Tooltip/index.tsx | 0
app/components/{ => navigation}/Footer.tsx | 8 ++++----
.../{ => navigation}/Header/Header.container.tsx | 12 ++++++------
.../{ => navigation}/Header/Header.types.ts | 0
.../{ => navigation}/Header/Header.view.tsx | 2 +-
app/components/{ => navigation}/Header/index.tsx | 0
app/components/{ => navigation}/HeaderTab.tsx | 2 +-
.../HomeHeader/HomeHeader.container.tsx | 12 ++++++------
.../HomeHeader/HomeHeader.types.ts | 0
.../HomeHeader/HomeHeader.view.tsx | 2 +-
.../{ => navigation}/HomeHeader/index.tsx | 0
app/components/{ => navigation}/MenuBar.tsx | 4 ++--
.../MenuBarItem/MenuBarItem.container.tsx | 2 +-
.../MenuBarItem/MenuBarItem.types.ts | 0
.../MenuBarItem/MenuBarItem.view.tsx | 0
.../{ => navigation}/MenuBarItem/index.tsx | 0
.../NavigationItem/NavigationItem.container.tsx | 2 +-
.../NavigationItem/NavigationItem.types.ts | 0
.../NavigationItem/NavigationItem.view.tsx | 0
.../{ => navigation}/NavigationItem/index.tsx | 0
.../{ => progress}/Progress/Progress.container.tsx | 0
.../{ => progress}/Progress/Progress.types.ts | 0
.../{ => progress}/Progress/Progress.view.tsx | 0
.../Progress}/Stepper/Stepper.container.tsx | 0
.../Progress}/Stepper/Stepper.types.ts | 0
.../Progress}/Stepper/Stepper.view.tsx | 0
.../{ => progress/Progress}/Stepper/index.tsx | 0
app/components/{ => progress}/Progress/index.tsx | 0
.../AskOrganizer/AskOrganizer.container.tsx | 6 +++---
.../AskOrganizer/AskOrganizer.types.ts | 0
.../AskOrganizer/AskOrganizer.view.tsx | 6 +++---
.../{ => sections}/AskOrganizer/index.tsx | 0
app/components/{ => sections}/ContentBanner.tsx | 6 +++---
.../FeatureGrid/FeatureGrid.container.tsx | 2 +-
.../FeatureGrid/FeatureGrid.types.ts | 0
.../FeatureGrid/FeatureGrid.view.tsx | 6 +++---
.../{ => sections}/FeatureGrid/index.tsx | 0
app/components/{ => sections}/HeroBanner.tsx | 8 ++++----
.../{ => sections}/LogoWall/LogoWall.container.tsx | 0
.../{ => sections}/LogoWall/LogoWall.types.ts | 0
.../{ => sections}/LogoWall/LogoWall.view.tsx | 0
app/components/{ => sections}/LogoWall/index.tsx | 0
.../NumberedCards/NumberedCards.container.tsx | 2 +-
.../NumberedCards/NumberedCards.types.ts | 0
.../NumberedCards/NumberedCards.view.tsx | 6 +++---
.../{ => sections}/NumberedCards/index.tsx | 0
.../QuoteBlock/QuoteBlock.container.tsx | 4 ++--
.../{ => sections}/QuoteBlock/QuoteBlock.types.ts | 0
.../{ => sections}/QuoteBlock/QuoteBlock.view.tsx | 4 ++--
app/components/{ => sections}/QuoteBlock/index.tsx | 0
.../RelatedArticles/RelatedArticles.container.tsx | 2 +-
.../RelatedArticles/RelatedArticles.types.ts | 2 +-
.../RelatedArticles/RelatedArticles.view.tsx | 2 +-
.../{ => sections}/RelatedArticles/index.tsx | 0
.../RuleStack/RuleStack.container.tsx | 2 +-
.../{ => sections}/RuleStack/RuleStack.types.ts | 0
.../{ => sections}/RuleStack/RuleStack.view.tsx | 10 +++++-----
app/components/{ => sections}/RuleStack/index.tsx | 0
app/components/{ => sections}/SectionHeader.tsx | 2 +-
app/components/{ => sections}/SectionNumber.tsx | 2 +-
.../ContentLockup/ContentLockup.container.tsx | 2 +-
.../ContentLockup/ContentLockup.types.ts | 0
.../ContentLockup/ContentLockup.view.tsx | 4 ++--
app/components/{ => type}/ContentLockup/index.tsx | 0
app/components/{ => utility}/AvatarContainer.tsx | 2 +-
app/components/{ => utility}/ErrorBoundary.tsx | 2 +-
app/components/{ => utility}/ImagePlaceholder.tsx | 2 +-
.../{ => utility}/ModalFooter/ModalFooter.types.ts | 0
.../{ => utility}/ModalFooter/ModalFooter.view.tsx | 6 +++---
app/components/{ => utility}/ModalFooter/index.tsx | 0
.../{ => utility}/ModalHeader/ModalHeader.types.ts | 0
.../{ => utility}/ModalHeader/ModalHeader.view.tsx | 2 +-
app/components/{ => utility}/ModalHeader/index.tsx | 0
app/components/{ => utility}/Separator.tsx | 0
app/layout.tsx | 2 +-
app/learn/page.tsx | 4 ++--
app/monitor/page.tsx | 4 ++--
app/page.tsx | 14 +++++++-------
stories/Checkbox.stories.js | 2 +-
stories/RadioButton.stories.js | 2 +-
stories/RuleCard.stories.js | 2 +-
tests/pages/user-journey.test.jsx | 4 ++--
tests/unit/RuleCard.test.jsx | 2 +-
tests/unit/RuleStack.test.jsx | 2 +-
161 files changed, 145 insertions(+), 145 deletions(-)
rename app/components/{ => buttons}/Button.tsx (98%)
rename app/components/{ => cards}/IconCard/IconCard.container.tsx (100%)
rename app/components/{ => cards}/IconCard/IconCard.types.ts (100%)
rename app/components/{ => cards}/IconCard/IconCard.view.tsx (100%)
rename app/components/{ => cards}/IconCard/index.tsx (100%)
rename app/components/{ => cards}/NumberCard.tsx (97%)
rename app/components/{ => cards}/RuleCard/RuleCard.container.tsx (96%)
rename app/components/{ => cards}/RuleCard/RuleCard.types.ts (93%)
rename app/components/{ => cards}/RuleCard/RuleCard.view.tsx (98%)
rename app/components/{ => cards}/RuleCard/index.tsx (100%)
rename app/components/{ => controls}/Checkbox/Checkbox.container.tsx (97%)
rename app/components/{ => controls}/Checkbox/Checkbox.types.ts (94%)
rename app/components/{ => controls}/Checkbox/Checkbox.view.tsx (100%)
rename app/components/{ => controls}/Checkbox/index.tsx (100%)
rename app/components/{ => controls}/CheckboxGroup/CheckboxGroup.container.tsx (96%)
rename app/components/{ => controls}/CheckboxGroup/CheckboxGroup.types.ts (92%)
rename app/components/{ => controls}/CheckboxGroup/CheckboxGroup.view.tsx (100%)
rename app/components/{ => controls}/CheckboxGroup/index.tsx (100%)
rename app/components/{ => controls}/Chip/Chip.container.tsx (98%)
rename app/components/{ => controls}/Chip/Chip.types.ts (97%)
rename app/components/{ => controls}/Chip/Chip.view.tsx (100%)
rename app/components/{ => controls}/Chip/index.tsx (100%)
rename app/components/{ => controls}/InputWithCounter/InputWithCounter.types.ts (100%)
rename app/components/{ => controls}/InputWithCounter/InputWithCounter.view.tsx (100%)
rename app/components/{ => controls}/InputWithCounter/index.tsx (100%)
rename app/components/{ => controls}/MultiSelect/MultiSelect.container.tsx (97%)
rename app/components/{ => controls}/MultiSelect/MultiSelect.types.ts (98%)
rename app/components/{ => controls}/MultiSelect/MultiSelect.view.tsx (99%)
rename app/components/{ => controls}/MultiSelect/index.tsx (100%)
rename app/components/{ => controls}/RadioButton/RadioButton.container.tsx (98%)
rename app/components/{ => controls}/RadioButton/RadioButton.types.ts (94%)
rename app/components/{ => controls}/RadioButton/RadioButton.view.tsx (100%)
rename app/components/{ => controls}/RadioButton/index.tsx (100%)
rename app/components/{ => controls}/RadioGroup/RadioGroup.container.tsx (94%)
rename app/components/{ => controls}/RadioGroup/RadioGroup.types.ts (93%)
rename app/components/{ => controls}/RadioGroup/RadioGroup.view.tsx (100%)
rename app/components/{ => controls}/RadioGroup/index.tsx (100%)
rename app/components/{ => controls}/SelectInput/SelectInput.container.tsx (98%)
rename app/components/{ => controls}/SelectInput/SelectInput.types.ts (94%)
rename app/components/{ => controls}/SelectInput/SelectInput.view.tsx (97%)
rename app/components/{ => controls}/SelectInput/index.tsx (100%)
rename app/components/{ => controls}/Switch/Switch.container.tsx (98%)
rename app/components/{ => controls}/Switch/Switch.types.ts (94%)
rename app/components/{ => controls}/Switch/Switch.view.tsx (100%)
rename app/components/{ => controls}/Switch/index.tsx (100%)
rename app/components/{ => controls}/TextArea/TextArea.container.tsx (97%)
rename app/components/{ => controls}/TextArea/TextArea.types.ts (96%)
rename app/components/{ => controls}/TextArea/TextArea.view.tsx (100%)
rename app/components/{ => controls}/TextArea/index.tsx (100%)
rename app/components/{ => controls}/TextInput/TextInput.container.tsx (98%)
rename app/components/{ => controls}/TextInput/TextInput.types.ts (95%)
rename app/components/{ => controls}/TextInput/TextInput.view.tsx (97%)
rename app/components/{ => controls}/TextInput/index.tsx (100%)
rename app/components/{ => controls}/Toggle/Toggle.container.tsx (98%)
rename app/components/{ => controls}/Toggle/Toggle.types.ts (95%)
rename app/components/{ => controls}/Toggle/Toggle.view.tsx (100%)
rename app/components/{ => controls}/Toggle/index.tsx (100%)
rename app/components/{ => controls}/ToggleGroup/ToggleGroup.container.tsx (99%)
rename app/components/{ => controls}/ToggleGroup/ToggleGroup.types.ts (95%)
rename app/components/{ => controls}/ToggleGroup/ToggleGroup.view.tsx (100%)
rename app/components/{ => controls}/ToggleGroup/index.tsx (100%)
rename app/components/{ => icons}/Avatar.tsx (95%)
rename app/components/{ => icons}/Logo.tsx (98%)
rename app/components/{ => modals}/Alert/Alert.container.tsx (99%)
rename app/components/{ => modals}/Alert/Alert.types.ts (100%)
rename app/components/{ => modals}/Alert/Alert.view.tsx (98%)
rename app/components/{ => modals}/Alert/index.tsx (100%)
rename app/components/{ => modals}/Create/Create.container.tsx (100%)
rename app/components/{ => modals}/Create/Create.types.ts (100%)
rename app/components/{ => modals}/Create/Create.view.tsx (93%)
rename app/components/{ => modals}/Create/index.tsx (100%)
rename app/components/{ => modals}/Tooltip/Tooltip.container.tsx (96%)
rename app/components/{ => modals}/Tooltip/Tooltip.types.ts (100%)
rename app/components/{ => modals}/Tooltip/Tooltip.view.tsx (100%)
rename app/components/{ => modals}/Tooltip/index.tsx (100%)
rename app/components/{ => navigation}/Footer.tsx (97%)
rename app/components/{ => navigation}/Header/Header.container.tsx (92%)
rename app/components/{ => navigation}/Header/Header.types.ts (100%)
rename app/components/{ => navigation}/Header/Header.view.tsx (98%)
rename app/components/{ => navigation}/Header/index.tsx (100%)
rename app/components/{ => navigation}/HeaderTab.tsx (97%)
rename app/components/{ => navigation}/HomeHeader/HomeHeader.container.tsx (94%)
rename app/components/{ => navigation}/HomeHeader/HomeHeader.types.ts (100%)
rename app/components/{ => navigation}/HomeHeader/HomeHeader.view.tsx (98%)
rename app/components/{ => navigation}/HomeHeader/index.tsx (100%)
rename app/components/{ => navigation}/MenuBar.tsx (92%)
rename app/components/{ => navigation}/MenuBarItem/MenuBarItem.container.tsx (99%)
rename app/components/{ => navigation}/MenuBarItem/MenuBarItem.types.ts (100%)
rename app/components/{ => navigation}/MenuBarItem/MenuBarItem.view.tsx (100%)
rename app/components/{ => navigation}/MenuBarItem/index.tsx (100%)
rename app/components/{ => navigation}/NavigationItem/NavigationItem.container.tsx (98%)
rename app/components/{ => navigation}/NavigationItem/NavigationItem.types.ts (100%)
rename app/components/{ => navigation}/NavigationItem/NavigationItem.view.tsx (100%)
rename app/components/{ => navigation}/NavigationItem/index.tsx (100%)
rename app/components/{ => progress}/Progress/Progress.container.tsx (100%)
rename app/components/{ => progress}/Progress/Progress.types.ts (100%)
rename app/components/{ => progress}/Progress/Progress.view.tsx (100%)
rename app/components/{ => progress/Progress}/Stepper/Stepper.container.tsx (100%)
rename app/components/{ => progress/Progress}/Stepper/Stepper.types.ts (100%)
rename app/components/{ => progress/Progress}/Stepper/Stepper.view.tsx (100%)
rename app/components/{ => progress/Progress}/Stepper/index.tsx (100%)
rename app/components/{ => progress}/Progress/index.tsx (100%)
rename app/components/{ => sections}/AskOrganizer/AskOrganizer.container.tsx (94%)
rename app/components/{ => sections}/AskOrganizer/AskOrganizer.types.ts (100%)
rename app/components/{ => sections}/AskOrganizer/AskOrganizer.view.tsx (90%)
rename app/components/{ => sections}/AskOrganizer/index.tsx (100%)
rename app/components/{ => sections}/ContentBanner.tsx (94%)
rename app/components/{ => sections}/FeatureGrid/FeatureGrid.container.tsx (97%)
rename app/components/{ => sections}/FeatureGrid/FeatureGrid.types.ts (100%)
rename app/components/{ => sections}/FeatureGrid/FeatureGrid.view.tsx (93%)
rename app/components/{ => sections}/FeatureGrid/index.tsx (100%)
rename app/components/{ => sections}/HeroBanner.tsx (92%)
rename app/components/{ => sections}/LogoWall/LogoWall.container.tsx (100%)
rename app/components/{ => sections}/LogoWall/LogoWall.types.ts (100%)
rename app/components/{ => sections}/LogoWall/LogoWall.view.tsx (100%)
rename app/components/{ => sections}/LogoWall/index.tsx (100%)
rename app/components/{ => sections}/NumberedCards/NumberedCards.container.tsx (94%)
rename app/components/{ => sections}/NumberedCards/NumberedCards.types.ts (100%)
rename app/components/{ => sections}/NumberedCards/NumberedCards.view.tsx (93%)
rename app/components/{ => sections}/NumberedCards/index.tsx (100%)
rename app/components/{ => sections}/QuoteBlock/QuoteBlock.container.tsx (97%)
rename app/components/{ => sections}/QuoteBlock/QuoteBlock.types.ts (100%)
rename app/components/{ => sections}/QuoteBlock/QuoteBlock.view.tsx (98%)
rename app/components/{ => sections}/QuoteBlock/index.tsx (100%)
rename app/components/{ => sections}/RelatedArticles/RelatedArticles.container.tsx (98%)
rename app/components/{ => sections}/RelatedArticles/RelatedArticles.types.ts (87%)
rename app/components/{ => sections}/RelatedArticles/RelatedArticles.view.tsx (97%)
rename app/components/{ => sections}/RelatedArticles/index.tsx (100%)
rename app/components/{ => sections}/RuleStack/RuleStack.container.tsx (95%)
rename app/components/{ => sections}/RuleStack/RuleStack.types.ts (100%)
rename app/components/{ => sections}/RuleStack/RuleStack.view.tsx (95%)
rename app/components/{ => sections}/RuleStack/index.tsx (100%)
rename app/components/{ => sections}/SectionHeader.tsx (97%)
rename app/components/{ => sections}/SectionNumber.tsx (95%)
rename app/components/{ => type}/ContentLockup/ContentLockup.container.tsx (99%)
rename app/components/{ => type}/ContentLockup/ContentLockup.types.ts (100%)
rename app/components/{ => type}/ContentLockup/ContentLockup.view.tsx (97%)
rename app/components/{ => type}/ContentLockup/index.tsx (100%)
rename app/components/{ => utility}/AvatarContainer.tsx (95%)
rename app/components/{ => utility}/ErrorBoundary.tsx (97%)
rename app/components/{ => utility}/ImagePlaceholder.tsx (95%)
rename app/components/{ => utility}/ModalFooter/ModalFooter.types.ts (100%)
rename app/components/{ => utility}/ModalFooter/ModalFooter.view.tsx (91%)
rename app/components/{ => utility}/ModalFooter/index.tsx (100%)
rename app/components/{ => utility}/ModalHeader/ModalHeader.types.ts (100%)
rename app/components/{ => utility}/ModalHeader/ModalHeader.view.tsx (96%)
rename app/components/{ => utility}/ModalHeader/index.tsx (100%)
rename app/components/{ => utility}/Separator.tsx (100%)
diff --git a/app/blog/[slug]/page.tsx b/app/blog/[slug]/page.tsx
index 82d3263..a874791 100644
--- a/app/blog/[slug]/page.tsx
+++ b/app/blog/[slug]/page.tsx
@@ -7,14 +7,14 @@ import {
type BlogPost,
} from "../../../lib/content";
import { logger } from "../../../lib/logger";
-import ContentBanner from "../../components/ContentBanner";
-import AskOrganizer from "../../components/AskOrganizer";
+import ContentBanner from "../../components/sections/ContentBanner";
+import AskOrganizer from "../../components/sections/AskOrganizer";
import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
import "../blog.css";
// Code split RelatedArticles - blog-specific, below the fold
const RelatedArticles = dynamic(
- () => import("../../components/RelatedArticles"),
+ () => import("../../components/sections/RelatedArticles"),
{
loading: () => (
diff --git a/app/components-preview/page.tsx b/app/components-preview/page.tsx
index 315a6f5..c02a602 100644
--- a/app/components-preview/page.tsx
+++ b/app/components-preview/page.tsx
@@ -1,9 +1,9 @@
"use client";
import { useState } from "react";
-import RuleCard from "../components/RuleCard";
-import Chip from "../components/Chip";
-import MultiSelect from "../components/MultiSelect";
+import RuleCard from "../components/cards/RuleCard";
+import Chip from "../components/controls/Chip";
+import MultiSelect from "../components/controls/MultiSelect";
import Image from "next/image";
import { getAssetPath } from "../../lib/assetUtils";
diff --git a/app/components/ConditionalHeader/ConditionalHeader.view.tsx b/app/components/ConditionalHeader/ConditionalHeader.view.tsx
index ff36612..7f50389 100644
--- a/app/components/ConditionalHeader/ConditionalHeader.view.tsx
+++ b/app/components/ConditionalHeader/ConditionalHeader.view.tsx
@@ -1,5 +1,5 @@
-import HomeHeader from "../HomeHeader";
-import Header from "../Header";
+import HomeHeader from "../navigation/HomeHeader";
+import Header from "../navigation/Header";
import type { ConditionalHeaderViewProps } from "./ConditionalHeader.types";
export function ConditionalHeaderView({
diff --git a/app/components/Button.tsx b/app/components/buttons/Button.tsx
similarity index 98%
rename from app/components/Button.tsx
rename to app/components/buttons/Button.tsx
index dcd65bb..42aece7 100644
--- a/app/components/Button.tsx
+++ b/app/components/buttons/Button.tsx
@@ -1,6 +1,6 @@
import { memo } from "react";
-import type { VariantValue, SizeValue } from "../../lib/propNormalization";
-import { normalizeVariant, normalizeSize } from "../../lib/propNormalization";
+import type { VariantValue, SizeValue } from "../../../lib/propNormalization";
+import { normalizeVariant, normalizeSize } from "../../../lib/propNormalization";
interface ButtonProps extends React.ButtonHTMLAttributes {
children: React.ReactNode;
diff --git a/app/components/IconCard/IconCard.container.tsx b/app/components/cards/IconCard/IconCard.container.tsx
similarity index 100%
rename from app/components/IconCard/IconCard.container.tsx
rename to app/components/cards/IconCard/IconCard.container.tsx
diff --git a/app/components/IconCard/IconCard.types.ts b/app/components/cards/IconCard/IconCard.types.ts
similarity index 100%
rename from app/components/IconCard/IconCard.types.ts
rename to app/components/cards/IconCard/IconCard.types.ts
diff --git a/app/components/IconCard/IconCard.view.tsx b/app/components/cards/IconCard/IconCard.view.tsx
similarity index 100%
rename from app/components/IconCard/IconCard.view.tsx
rename to app/components/cards/IconCard/IconCard.view.tsx
diff --git a/app/components/IconCard/index.tsx b/app/components/cards/IconCard/index.tsx
similarity index 100%
rename from app/components/IconCard/index.tsx
rename to app/components/cards/IconCard/index.tsx
diff --git a/app/components/NumberCard.tsx b/app/components/cards/NumberCard.tsx
similarity index 97%
rename from app/components/NumberCard.tsx
rename to app/components/cards/NumberCard.tsx
index c1722a3..cddb2b5 100644
--- a/app/components/NumberCard.tsx
+++ b/app/components/cards/NumberCard.tsx
@@ -1,9 +1,9 @@
"use client";
import { memo } from "react";
-import SectionNumber from "./SectionNumber";
+import SectionNumber from "../sections/SectionNumber";
-import { normalizeNumberCardSize } from "../../lib/propNormalization";
+import { normalizeNumberCardSize } from "../../../lib/propNormalization";
export type NumberCardSizeValue =
| "Small"
diff --git a/app/components/RuleCard/RuleCard.container.tsx b/app/components/cards/RuleCard/RuleCard.container.tsx
similarity index 96%
rename from app/components/RuleCard/RuleCard.container.tsx
rename to app/components/cards/RuleCard/RuleCard.container.tsx
index 84105b6..6e55e42 100644
--- a/app/components/RuleCard/RuleCard.container.tsx
+++ b/app/components/cards/RuleCard/RuleCard.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import { RuleCardView } from "./RuleCard.view";
import type { RuleCardProps } from "./RuleCard.types";
-import { normalizeRuleCardSize } from "../../../lib/propNormalization";
+import { normalizeRuleCardSize } from "../../../../lib/propNormalization";
declare global {
interface Window {
diff --git a/app/components/RuleCard/RuleCard.types.ts b/app/components/cards/RuleCard/RuleCard.types.ts
similarity index 93%
rename from app/components/RuleCard/RuleCard.types.ts
rename to app/components/cards/RuleCard/RuleCard.types.ts
index 3ebe9ce..516f9ed 100644
--- a/app/components/RuleCard/RuleCard.types.ts
+++ b/app/components/cards/RuleCard/RuleCard.types.ts
@@ -1,4 +1,4 @@
-import type { ChipOption } from "../MultiSelect/MultiSelect.types";
+import type { ChipOption } from "../../controls/MultiSelect/MultiSelect.types";
export interface Category {
name: string;
diff --git a/app/components/RuleCard/RuleCard.view.tsx b/app/components/cards/RuleCard/RuleCard.view.tsx
similarity index 98%
rename from app/components/RuleCard/RuleCard.view.tsx
rename to app/components/cards/RuleCard/RuleCard.view.tsx
index bdd2625..5cdea94 100644
--- a/app/components/RuleCard/RuleCard.view.tsx
+++ b/app/components/cards/RuleCard/RuleCard.view.tsx
@@ -1,8 +1,8 @@
"use client";
import Image from "next/image";
-import { useTranslation } from "../../contexts/MessagesContext";
-import MultiSelect from "../MultiSelect";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import MultiSelect from "../../controls/MultiSelect";
import type { RuleCardViewProps } from "./RuleCard.types";
export function RuleCardView({
diff --git a/app/components/RuleCard/index.tsx b/app/components/cards/RuleCard/index.tsx
similarity index 100%
rename from app/components/RuleCard/index.tsx
rename to app/components/cards/RuleCard/index.tsx
diff --git a/app/components/Checkbox/Checkbox.container.tsx b/app/components/controls/Checkbox/Checkbox.container.tsx
similarity index 97%
rename from app/components/Checkbox/Checkbox.container.tsx
rename to app/components/controls/Checkbox/Checkbox.container.tsx
index 42c531b..7650f3a 100644
--- a/app/components/Checkbox/Checkbox.container.tsx
+++ b/app/components/controls/Checkbox/Checkbox.container.tsx
@@ -1,10 +1,10 @@
"use client";
import { memo } from "react";
-import { useComponentId } from "../../hooks";
+import { useComponentId } from "../../../hooks";
import { CheckboxView } from "./Checkbox.view";
import type { CheckboxProps } from "./Checkbox.types";
-import { normalizeMode, normalizeState } from "../../../lib/propNormalization";
+import { normalizeMode, normalizeState } from "../../../../lib/propNormalization";
const CheckboxContainer = memo(
({
diff --git a/app/components/Checkbox/Checkbox.types.ts b/app/components/controls/Checkbox/Checkbox.types.ts
similarity index 94%
rename from app/components/Checkbox/Checkbox.types.ts
rename to app/components/controls/Checkbox/Checkbox.types.ts
index c6cd369..f292633 100644
--- a/app/components/Checkbox/Checkbox.types.ts
+++ b/app/components/controls/Checkbox/Checkbox.types.ts
@@ -1,4 +1,4 @@
-import type { ModeValue, StateValue } from "../../../lib/propNormalization";
+import type { ModeValue, StateValue } from "../../../../lib/propNormalization";
export interface CheckboxProps {
checked?: boolean;
diff --git a/app/components/Checkbox/Checkbox.view.tsx b/app/components/controls/Checkbox/Checkbox.view.tsx
similarity index 100%
rename from app/components/Checkbox/Checkbox.view.tsx
rename to app/components/controls/Checkbox/Checkbox.view.tsx
diff --git a/app/components/Checkbox/index.tsx b/app/components/controls/Checkbox/index.tsx
similarity index 100%
rename from app/components/Checkbox/index.tsx
rename to app/components/controls/Checkbox/index.tsx
diff --git a/app/components/CheckboxGroup/CheckboxGroup.container.tsx b/app/components/controls/CheckboxGroup/CheckboxGroup.container.tsx
similarity index 96%
rename from app/components/CheckboxGroup/CheckboxGroup.container.tsx
rename to app/components/controls/CheckboxGroup/CheckboxGroup.container.tsx
index cde1c3c..2fac6e8 100644
--- a/app/components/CheckboxGroup/CheckboxGroup.container.tsx
+++ b/app/components/controls/CheckboxGroup/CheckboxGroup.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId, useState } from "react";
import { CheckboxGroupView } from "./CheckboxGroup.view";
import type { CheckboxGroupProps } from "./CheckboxGroup.types";
-import { normalizeMode } from "../../../lib/propNormalization";
+import { normalizeMode } from "../../../../lib/propNormalization";
const CheckboxGroupContainer = ({
name,
diff --git a/app/components/CheckboxGroup/CheckboxGroup.types.ts b/app/components/controls/CheckboxGroup/CheckboxGroup.types.ts
similarity index 92%
rename from app/components/CheckboxGroup/CheckboxGroup.types.ts
rename to app/components/controls/CheckboxGroup/CheckboxGroup.types.ts
index 2c1e6a5..2a4b9be 100644
--- a/app/components/CheckboxGroup/CheckboxGroup.types.ts
+++ b/app/components/controls/CheckboxGroup/CheckboxGroup.types.ts
@@ -5,7 +5,7 @@ export interface CheckboxOption {
ariaLabel?: string;
}
-import type { ModeValue } from "../../../lib/propNormalization";
+import type { ModeValue } from "../../../../lib/propNormalization";
export interface CheckboxGroupProps {
name?: string;
diff --git a/app/components/CheckboxGroup/CheckboxGroup.view.tsx b/app/components/controls/CheckboxGroup/CheckboxGroup.view.tsx
similarity index 100%
rename from app/components/CheckboxGroup/CheckboxGroup.view.tsx
rename to app/components/controls/CheckboxGroup/CheckboxGroup.view.tsx
diff --git a/app/components/CheckboxGroup/index.tsx b/app/components/controls/CheckboxGroup/index.tsx
similarity index 100%
rename from app/components/CheckboxGroup/index.tsx
rename to app/components/controls/CheckboxGroup/index.tsx
diff --git a/app/components/Chip/Chip.container.tsx b/app/components/controls/Chip/Chip.container.tsx
similarity index 98%
rename from app/components/Chip/Chip.container.tsx
rename to app/components/controls/Chip/Chip.container.tsx
index d26acec..9fcb8ed 100644
--- a/app/components/Chip/Chip.container.tsx
+++ b/app/components/controls/Chip/Chip.container.tsx
@@ -7,7 +7,7 @@ import {
normalizeChipPalette,
normalizeChipSize,
normalizeChipState,
-} from "../../../lib/propNormalization";
+} from "../../../../lib/propNormalization";
const ChipContainer = memo(
({
diff --git a/app/components/Chip/Chip.types.ts b/app/components/controls/Chip/Chip.types.ts
similarity index 97%
rename from app/components/Chip/Chip.types.ts
rename to app/components/controls/Chip/Chip.types.ts
index 0a240b3..13ca6ed 100644
--- a/app/components/Chip/Chip.types.ts
+++ b/app/components/controls/Chip/Chip.types.ts
@@ -2,7 +2,7 @@ import type {
ChipPaletteValue,
ChipSizeValue,
ChipStateValue,
-} from "../../../lib/propNormalization";
+} from "../../../../lib/propNormalization";
export interface ChipProps {
label: string;
diff --git a/app/components/Chip/Chip.view.tsx b/app/components/controls/Chip/Chip.view.tsx
similarity index 100%
rename from app/components/Chip/Chip.view.tsx
rename to app/components/controls/Chip/Chip.view.tsx
diff --git a/app/components/Chip/index.tsx b/app/components/controls/Chip/index.tsx
similarity index 100%
rename from app/components/Chip/index.tsx
rename to app/components/controls/Chip/index.tsx
diff --git a/app/components/InputWithCounter/InputWithCounter.types.ts b/app/components/controls/InputWithCounter/InputWithCounter.types.ts
similarity index 100%
rename from app/components/InputWithCounter/InputWithCounter.types.ts
rename to app/components/controls/InputWithCounter/InputWithCounter.types.ts
diff --git a/app/components/InputWithCounter/InputWithCounter.view.tsx b/app/components/controls/InputWithCounter/InputWithCounter.view.tsx
similarity index 100%
rename from app/components/InputWithCounter/InputWithCounter.view.tsx
rename to app/components/controls/InputWithCounter/InputWithCounter.view.tsx
diff --git a/app/components/InputWithCounter/index.tsx b/app/components/controls/InputWithCounter/index.tsx
similarity index 100%
rename from app/components/InputWithCounter/index.tsx
rename to app/components/controls/InputWithCounter/index.tsx
diff --git a/app/components/MultiSelect/MultiSelect.container.tsx b/app/components/controls/MultiSelect/MultiSelect.container.tsx
similarity index 97%
rename from app/components/MultiSelect/MultiSelect.container.tsx
rename to app/components/controls/MultiSelect/MultiSelect.container.tsx
index 1613576..7691976 100644
--- a/app/components/MultiSelect/MultiSelect.container.tsx
+++ b/app/components/controls/MultiSelect/MultiSelect.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import MultiSelectView from "./MultiSelect.view";
import type { MultiSelectProps } from "./MultiSelect.types";
-import { normalizeMultiSelectSize, normalizeChipPalette } from "../../../lib/propNormalization";
+import { normalizeMultiSelectSize, normalizeChipPalette } from "../../../../lib/propNormalization";
const MultiSelectContainer = memo(
({
diff --git a/app/components/MultiSelect/MultiSelect.types.ts b/app/components/controls/MultiSelect/MultiSelect.types.ts
similarity index 98%
rename from app/components/MultiSelect/MultiSelect.types.ts
rename to app/components/controls/MultiSelect/MultiSelect.types.ts
index 9c035cc..634727c 100644
--- a/app/components/MultiSelect/MultiSelect.types.ts
+++ b/app/components/controls/MultiSelect/MultiSelect.types.ts
@@ -1,4 +1,4 @@
-import type { ChipStateValue, ChipPaletteValue } from "../../../lib/propNormalization";
+import type { ChipStateValue, ChipPaletteValue } from "../../../../lib/propNormalization";
export interface ChipOption {
id: string;
diff --git a/app/components/MultiSelect/MultiSelect.view.tsx b/app/components/controls/MultiSelect/MultiSelect.view.tsx
similarity index 99%
rename from app/components/MultiSelect/MultiSelect.view.tsx
rename to app/components/controls/MultiSelect/MultiSelect.view.tsx
index b1d2197..5201008 100644
--- a/app/components/MultiSelect/MultiSelect.view.tsx
+++ b/app/components/controls/MultiSelect/MultiSelect.view.tsx
@@ -2,7 +2,7 @@
import { memo } from "react";
import Chip from "../Chip";
-import InputLabel from "../InputLabel";
+import InputLabel from "../../InputLabel";
import type { MultiSelectViewProps } from "./MultiSelect.types";
function MultiSelectView({
diff --git a/app/components/MultiSelect/index.tsx b/app/components/controls/MultiSelect/index.tsx
similarity index 100%
rename from app/components/MultiSelect/index.tsx
rename to app/components/controls/MultiSelect/index.tsx
diff --git a/app/components/RadioButton/RadioButton.container.tsx b/app/components/controls/RadioButton/RadioButton.container.tsx
similarity index 98%
rename from app/components/RadioButton/RadioButton.container.tsx
rename to app/components/controls/RadioButton/RadioButton.container.tsx
index 24628b6..0f11b2d 100644
--- a/app/components/RadioButton/RadioButton.container.tsx
+++ b/app/components/controls/RadioButton/RadioButton.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId } from "react";
import { RadioButtonView } from "./RadioButton.view";
import type { RadioButtonProps } from "./RadioButton.types";
-import { normalizeMode, normalizeState } from "../../../lib/propNormalization";
+import { normalizeMode, normalizeState } from "../../../../lib/propNormalization";
const RadioButtonContainer = ({
checked = false,
diff --git a/app/components/RadioButton/RadioButton.types.ts b/app/components/controls/RadioButton/RadioButton.types.ts
similarity index 94%
rename from app/components/RadioButton/RadioButton.types.ts
rename to app/components/controls/RadioButton/RadioButton.types.ts
index 63900c7..48cc32a 100644
--- a/app/components/RadioButton/RadioButton.types.ts
+++ b/app/components/controls/RadioButton/RadioButton.types.ts
@@ -1,4 +1,4 @@
-import type { ModeValue, StateValue } from "../../../lib/propNormalization";
+import type { ModeValue, StateValue } from "../../../../lib/propNormalization";
export interface RadioButtonProps {
checked?: boolean;
diff --git a/app/components/RadioButton/RadioButton.view.tsx b/app/components/controls/RadioButton/RadioButton.view.tsx
similarity index 100%
rename from app/components/RadioButton/RadioButton.view.tsx
rename to app/components/controls/RadioButton/RadioButton.view.tsx
diff --git a/app/components/RadioButton/index.tsx b/app/components/controls/RadioButton/index.tsx
similarity index 100%
rename from app/components/RadioButton/index.tsx
rename to app/components/controls/RadioButton/index.tsx
diff --git a/app/components/RadioGroup/RadioGroup.container.tsx b/app/components/controls/RadioGroup/RadioGroup.container.tsx
similarity index 94%
rename from app/components/RadioGroup/RadioGroup.container.tsx
rename to app/components/controls/RadioGroup/RadioGroup.container.tsx
index 25695c7..8217652 100644
--- a/app/components/RadioGroup/RadioGroup.container.tsx
+++ b/app/components/controls/RadioGroup/RadioGroup.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId } from "react";
import { RadioGroupView } from "./RadioGroup.view";
import type { RadioGroupProps } from "./RadioGroup.types";
-import { normalizeMode, normalizeState } from "../../../lib/propNormalization";
+import { normalizeMode, normalizeState } from "../../../../lib/propNormalization";
const RadioGroupContainer = ({
name,
diff --git a/app/components/RadioGroup/RadioGroup.types.ts b/app/components/controls/RadioGroup/RadioGroup.types.ts
similarity index 93%
rename from app/components/RadioGroup/RadioGroup.types.ts
rename to app/components/controls/RadioGroup/RadioGroup.types.ts
index f1588b5..2a6ef2e 100644
--- a/app/components/RadioGroup/RadioGroup.types.ts
+++ b/app/components/controls/RadioGroup/RadioGroup.types.ts
@@ -5,7 +5,7 @@ export interface RadioOption {
ariaLabel?: string;
}
-import type { ModeValue, StateValue } from "../../../lib/propNormalization";
+import type { ModeValue, StateValue } from "../../../../lib/propNormalization";
export interface RadioGroupProps {
name?: string;
diff --git a/app/components/RadioGroup/RadioGroup.view.tsx b/app/components/controls/RadioGroup/RadioGroup.view.tsx
similarity index 100%
rename from app/components/RadioGroup/RadioGroup.view.tsx
rename to app/components/controls/RadioGroup/RadioGroup.view.tsx
diff --git a/app/components/RadioGroup/index.tsx b/app/components/controls/RadioGroup/index.tsx
similarity index 100%
rename from app/components/RadioGroup/index.tsx
rename to app/components/controls/RadioGroup/index.tsx
diff --git a/app/components/SelectInput/SelectInput.container.tsx b/app/components/controls/SelectInput/SelectInput.container.tsx
similarity index 98%
rename from app/components/SelectInput/SelectInput.container.tsx
rename to app/components/controls/SelectInput/SelectInput.container.tsx
index 76add96..63c1338 100644
--- a/app/components/SelectInput/SelectInput.container.tsx
+++ b/app/components/controls/SelectInput/SelectInput.container.tsx
@@ -13,10 +13,10 @@ import React, {
useImperativeHandle,
useEffect,
} from "react";
-import { useClickOutside } from "../../hooks";
+import { useClickOutside } from "../../../hooks";
import { SelectInputView } from "./SelectInput.view";
import type { SelectInputProps } from "./SelectInput.types";
-import { normalizeState, normalizeSmallMediumLargeSize, normalizeLabelVariant } from "../../../lib/propNormalization";
+import { normalizeState, normalizeSmallMediumLargeSize, normalizeLabelVariant } from "../../../../lib/propNormalization";
const SelectInputContainer = forwardRef(
(
diff --git a/app/components/SelectInput/SelectInput.types.ts b/app/components/controls/SelectInput/SelectInput.types.ts
similarity index 94%
rename from app/components/SelectInput/SelectInput.types.ts
rename to app/components/controls/SelectInput/SelectInput.types.ts
index 364b800..3dbb427 100644
--- a/app/components/SelectInput/SelectInput.types.ts
+++ b/app/components/controls/SelectInput/SelectInput.types.ts
@@ -5,7 +5,7 @@ export interface SelectOptionData {
label: string;
}
-import type { StateValue } from "../../../lib/propNormalization";
+import type { StateValue } from "../../../../lib/propNormalization";
export type SelectInputLabelVariantValue = "default" | "horizontal" | "Default" | "Horizontal";
export type SelectInputSizeValue = "small" | "medium" | "large" | "Small" | "Medium" | "Large";
diff --git a/app/components/SelectInput/SelectInput.view.tsx b/app/components/controls/SelectInput/SelectInput.view.tsx
similarity index 97%
rename from app/components/SelectInput/SelectInput.view.tsx
rename to app/components/controls/SelectInput/SelectInput.view.tsx
index ba8b9a7..941ede5 100644
--- a/app/components/SelectInput/SelectInput.view.tsx
+++ b/app/components/controls/SelectInput/SelectInput.view.tsx
@@ -1,7 +1,7 @@
import React, { Children, type ReactNode } from "react";
-import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
-import SelectDropdown from "../SelectDropdown";
-import SelectOption from "../SelectOption";
+import { getAssetPath, ASSETS } from "../../../../lib/assetUtils";
+import SelectDropdown from "../../SelectDropdown";
+import SelectOption from "../../SelectOption";
import type { SelectOptionData } from "./SelectInput.types";
export interface SelectInputViewProps {
diff --git a/app/components/SelectInput/index.tsx b/app/components/controls/SelectInput/index.tsx
similarity index 100%
rename from app/components/SelectInput/index.tsx
rename to app/components/controls/SelectInput/index.tsx
diff --git a/app/components/Switch/Switch.container.tsx b/app/components/controls/Switch/Switch.container.tsx
similarity index 98%
rename from app/components/Switch/Switch.container.tsx
rename to app/components/controls/Switch/Switch.container.tsx
index 64602b5..6844f8e 100644
--- a/app/components/Switch/Switch.container.tsx
+++ b/app/components/controls/Switch/Switch.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId, forwardRef } from "react";
import { SwitchView } from "./Switch.view";
import type { SwitchProps } from "./Switch.types";
-import { normalizeState } from "../../../lib/propNormalization";
+import { normalizeState } from "../../../../lib/propNormalization";
const SwitchContainer = memo(
forwardRef((props, ref) => {
diff --git a/app/components/Switch/Switch.types.ts b/app/components/controls/Switch/Switch.types.ts
similarity index 94%
rename from app/components/Switch/Switch.types.ts
rename to app/components/controls/Switch/Switch.types.ts
index 2bccb8b..2772f11 100644
--- a/app/components/Switch/Switch.types.ts
+++ b/app/components/controls/Switch/Switch.types.ts
@@ -1,4 +1,4 @@
-import type { StateValue } from "../../../lib/propNormalization";
+import type { StateValue } from "../../../../lib/propNormalization";
export interface SwitchProps extends Omit<
React.ButtonHTMLAttributes,
diff --git a/app/components/Switch/Switch.view.tsx b/app/components/controls/Switch/Switch.view.tsx
similarity index 100%
rename from app/components/Switch/Switch.view.tsx
rename to app/components/controls/Switch/Switch.view.tsx
diff --git a/app/components/Switch/index.tsx b/app/components/controls/Switch/index.tsx
similarity index 100%
rename from app/components/Switch/index.tsx
rename to app/components/controls/Switch/index.tsx
diff --git a/app/components/TextArea/TextArea.container.tsx b/app/components/controls/TextArea/TextArea.container.tsx
similarity index 97%
rename from app/components/TextArea/TextArea.container.tsx
rename to app/components/controls/TextArea/TextArea.container.tsx
index 7d99dee..3b1c1d4 100644
--- a/app/components/TextArea/TextArea.container.tsx
+++ b/app/components/controls/TextArea/TextArea.container.tsx
@@ -1,10 +1,10 @@
"use client";
import { memo, forwardRef } from "react";
-import { useComponentId, useFormField } from "../../hooks";
+import { useComponentId, useFormField } from "../../../hooks";
import { TextAreaView } from "./TextArea.view";
import type { TextAreaProps } from "./TextArea.types";
-import { normalizeInputState, normalizeSmallMediumLargeSize, normalizeLabelVariant } from "../../../lib/propNormalization";
+import { normalizeInputState, normalizeSmallMediumLargeSize, normalizeLabelVariant } from "../../../../lib/propNormalization";
const TextAreaContainer = forwardRef(
(
diff --git a/app/components/TextArea/TextArea.types.ts b/app/components/controls/TextArea/TextArea.types.ts
similarity index 96%
rename from app/components/TextArea/TextArea.types.ts
rename to app/components/controls/TextArea/TextArea.types.ts
index 11f158c..559bf0d 100644
--- a/app/components/TextArea/TextArea.types.ts
+++ b/app/components/controls/TextArea/TextArea.types.ts
@@ -1,4 +1,4 @@
-import type { InputStateValue } from "../../../lib/propNormalization";
+import type { InputStateValue } from "../../../../lib/propNormalization";
export type TextAreaSizeValue = "small" | "medium" | "large" | "Small" | "Medium" | "Large";
export type TextAreaLabelVariantValue = "default" | "horizontal" | "Default" | "Horizontal";
diff --git a/app/components/TextArea/TextArea.view.tsx b/app/components/controls/TextArea/TextArea.view.tsx
similarity index 100%
rename from app/components/TextArea/TextArea.view.tsx
rename to app/components/controls/TextArea/TextArea.view.tsx
diff --git a/app/components/TextArea/index.tsx b/app/components/controls/TextArea/index.tsx
similarity index 100%
rename from app/components/TextArea/index.tsx
rename to app/components/controls/TextArea/index.tsx
diff --git a/app/components/TextInput/TextInput.container.tsx b/app/components/controls/TextInput/TextInput.container.tsx
similarity index 98%
rename from app/components/TextInput/TextInput.container.tsx
rename to app/components/controls/TextInput/TextInput.container.tsx
index 4236354..26429cb 100644
--- a/app/components/TextInput/TextInput.container.tsx
+++ b/app/components/controls/TextInput/TextInput.container.tsx
@@ -1,10 +1,10 @@
"use client";
import { memo, forwardRef, useState, useRef } from "react";
-import { useComponentId, useFormField } from "../../hooks";
+import { useComponentId, useFormField } from "../../../hooks";
import { TextInputView } from "./TextInput.view";
import type { TextInputProps } from "./TextInput.types";
-import { normalizeInputState } from "../../../lib/propNormalization";
+import { normalizeInputState } from "../../../../lib/propNormalization";
const TextInputContainer = forwardRef(
(
diff --git a/app/components/TextInput/TextInput.types.ts b/app/components/controls/TextInput/TextInput.types.ts
similarity index 95%
rename from app/components/TextInput/TextInput.types.ts
rename to app/components/controls/TextInput/TextInput.types.ts
index beff4cc..3814d0a 100644
--- a/app/components/TextInput/TextInput.types.ts
+++ b/app/components/controls/TextInput/TextInput.types.ts
@@ -1,4 +1,4 @@
-import type { InputStateValue } from "../../../lib/propNormalization";
+import type { InputStateValue } from "../../../../lib/propNormalization";
export interface TextInputProps extends Omit<
React.InputHTMLAttributes,
diff --git a/app/components/TextInput/TextInput.view.tsx b/app/components/controls/TextInput/TextInput.view.tsx
similarity index 97%
rename from app/components/TextInput/TextInput.view.tsx
rename to app/components/controls/TextInput/TextInput.view.tsx
index c815050..99766d2 100644
--- a/app/components/TextInput/TextInput.view.tsx
+++ b/app/components/controls/TextInput/TextInput.view.tsx
@@ -1,5 +1,5 @@
import { forwardRef } from "react";
-import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
+import { getAssetPath, ASSETS } from "../../../../lib/assetUtils";
import type { TextInputViewProps } from "./TextInput.types";
export const TextInputView = forwardRef(
diff --git a/app/components/TextInput/index.tsx b/app/components/controls/TextInput/index.tsx
similarity index 100%
rename from app/components/TextInput/index.tsx
rename to app/components/controls/TextInput/index.tsx
diff --git a/app/components/Toggle/Toggle.container.tsx b/app/components/controls/Toggle/Toggle.container.tsx
similarity index 98%
rename from app/components/Toggle/Toggle.container.tsx
rename to app/components/controls/Toggle/Toggle.container.tsx
index 197eebe..d6b7fd4 100644
--- a/app/components/Toggle/Toggle.container.tsx
+++ b/app/components/controls/Toggle/Toggle.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId, forwardRef } from "react";
import { ToggleView } from "./Toggle.view";
import type { ToggleProps } from "./Toggle.types";
-import { normalizeState } from "../../../lib/propNormalization";
+import { normalizeState } from "../../../../lib/propNormalization";
const ToggleContainer = forwardRef(
(
diff --git a/app/components/Toggle/Toggle.types.ts b/app/components/controls/Toggle/Toggle.types.ts
similarity index 95%
rename from app/components/Toggle/Toggle.types.ts
rename to app/components/controls/Toggle/Toggle.types.ts
index cd09bf5..9dd5517 100644
--- a/app/components/Toggle/Toggle.types.ts
+++ b/app/components/controls/Toggle/Toggle.types.ts
@@ -1,4 +1,4 @@
-import type { StateValue } from "../../../lib/propNormalization";
+import type { StateValue } from "../../../../lib/propNormalization";
export interface ToggleProps extends Omit<
React.ButtonHTMLAttributes,
diff --git a/app/components/Toggle/Toggle.view.tsx b/app/components/controls/Toggle/Toggle.view.tsx
similarity index 100%
rename from app/components/Toggle/Toggle.view.tsx
rename to app/components/controls/Toggle/Toggle.view.tsx
diff --git a/app/components/Toggle/index.tsx b/app/components/controls/Toggle/index.tsx
similarity index 100%
rename from app/components/Toggle/index.tsx
rename to app/components/controls/Toggle/index.tsx
diff --git a/app/components/ToggleGroup/ToggleGroup.container.tsx b/app/components/controls/ToggleGroup/ToggleGroup.container.tsx
similarity index 99%
rename from app/components/ToggleGroup/ToggleGroup.container.tsx
rename to app/components/controls/ToggleGroup/ToggleGroup.container.tsx
index 4e2ad1d..89982fe 100644
--- a/app/components/ToggleGroup/ToggleGroup.container.tsx
+++ b/app/components/controls/ToggleGroup/ToggleGroup.container.tsx
@@ -3,7 +3,7 @@
import { memo, useCallback, useId, forwardRef } from "react";
import { ToggleGroupView } from "./ToggleGroup.view";
import type { ToggleGroupProps } from "./ToggleGroup.types";
-import { normalizeToggleState, normalizeToggleGroupPosition } from "../../../lib/propNormalization";
+import { normalizeToggleState, normalizeToggleGroupPosition } from "../../../../lib/propNormalization";
const ToggleGroupContainer = memo(
forwardRef((props, _ref) => {
diff --git a/app/components/ToggleGroup/ToggleGroup.types.ts b/app/components/controls/ToggleGroup/ToggleGroup.types.ts
similarity index 95%
rename from app/components/ToggleGroup/ToggleGroup.types.ts
rename to app/components/controls/ToggleGroup/ToggleGroup.types.ts
index 993a8d8..8f5ea4c 100644
--- a/app/components/ToggleGroup/ToggleGroup.types.ts
+++ b/app/components/controls/ToggleGroup/ToggleGroup.types.ts
@@ -1,4 +1,4 @@
-import type { StateValue } from "../../../lib/propNormalization";
+import type { StateValue } from "../../../../lib/propNormalization";
export type ToggleGroupPositionValue = "left" | "middle" | "right" | "Left" | "Middle" | "Right";
diff --git a/app/components/ToggleGroup/ToggleGroup.view.tsx b/app/components/controls/ToggleGroup/ToggleGroup.view.tsx
similarity index 100%
rename from app/components/ToggleGroup/ToggleGroup.view.tsx
rename to app/components/controls/ToggleGroup/ToggleGroup.view.tsx
diff --git a/app/components/ToggleGroup/index.tsx b/app/components/controls/ToggleGroup/index.tsx
similarity index 100%
rename from app/components/ToggleGroup/index.tsx
rename to app/components/controls/ToggleGroup/index.tsx
diff --git a/app/components/Avatar.tsx b/app/components/icons/Avatar.tsx
similarity index 95%
rename from app/components/Avatar.tsx
rename to app/components/icons/Avatar.tsx
index 712b847..8a59e8c 100644
--- a/app/components/Avatar.tsx
+++ b/app/components/icons/Avatar.tsx
@@ -1,5 +1,5 @@
import { memo } from "react";
-import { normalizeSize } from "../../lib/propNormalization";
+import { normalizeSize } from "../../../lib/propNormalization";
export type AvatarSizeValue = "small" | "medium" | "large" | "xlarge" | "Small" | "Medium" | "Large" | "XLarge";
diff --git a/app/components/Logo.tsx b/app/components/icons/Logo.tsx
similarity index 98%
rename from app/components/Logo.tsx
rename to app/components/icons/Logo.tsx
index eaa3eab..dde8433 100644
--- a/app/components/Logo.tsx
+++ b/app/components/icons/Logo.tsx
@@ -1,6 +1,6 @@
import { memo } from "react";
import Link from "next/link";
-import { getAssetPath, ASSETS } from "../../lib/assetUtils";
+import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
interface LogoProps {
size?:
diff --git a/app/components/Alert/Alert.container.tsx b/app/components/modals/Alert/Alert.container.tsx
similarity index 99%
rename from app/components/Alert/Alert.container.tsx
rename to app/components/modals/Alert/Alert.container.tsx
index 26b704a..417a045 100644
--- a/app/components/Alert/Alert.container.tsx
+++ b/app/components/modals/Alert/Alert.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import { AlertView } from "./Alert.view";
import type { AlertProps } from "./Alert.types";
-import { normalizeAlertStatus, normalizeAlertType } from "../../../lib/propNormalization";
+import { normalizeAlertStatus, normalizeAlertType } from "../../../../lib/propNormalization";
const AlertContainer = memo(
({
diff --git a/app/components/Alert/Alert.types.ts b/app/components/modals/Alert/Alert.types.ts
similarity index 100%
rename from app/components/Alert/Alert.types.ts
rename to app/components/modals/Alert/Alert.types.ts
diff --git a/app/components/Alert/Alert.view.tsx b/app/components/modals/Alert/Alert.view.tsx
similarity index 98%
rename from app/components/Alert/Alert.view.tsx
rename to app/components/modals/Alert/Alert.view.tsx
index 374efa2..5bae88e 100644
--- a/app/components/Alert/Alert.view.tsx
+++ b/app/components/modals/Alert/Alert.view.tsx
@@ -1,5 +1,5 @@
import type { AlertViewProps } from "./Alert.types";
-import Button from "../Button";
+import Button from "../../buttons/Button";
export function AlertView({
title,
diff --git a/app/components/Alert/index.tsx b/app/components/modals/Alert/index.tsx
similarity index 100%
rename from app/components/Alert/index.tsx
rename to app/components/modals/Alert/index.tsx
diff --git a/app/components/Create/Create.container.tsx b/app/components/modals/Create/Create.container.tsx
similarity index 100%
rename from app/components/Create/Create.container.tsx
rename to app/components/modals/Create/Create.container.tsx
diff --git a/app/components/Create/Create.types.ts b/app/components/modals/Create/Create.types.ts
similarity index 100%
rename from app/components/Create/Create.types.ts
rename to app/components/modals/Create/Create.types.ts
diff --git a/app/components/Create/Create.view.tsx b/app/components/modals/Create/Create.view.tsx
similarity index 93%
rename from app/components/Create/Create.view.tsx
rename to app/components/modals/Create/Create.view.tsx
index bf89cbc..090a3d9 100644
--- a/app/components/Create/Create.view.tsx
+++ b/app/components/modals/Create/Create.view.tsx
@@ -1,9 +1,9 @@
"use client";
import { createPortal } from "react-dom";
-import ContentLockup from "../ContentLockup";
-import ModalFooter from "../ModalFooter";
-import ModalHeader from "../ModalHeader";
+import ContentLockup from "../../type/ContentLockup";
+import ModalFooter from "../../utility/ModalFooter";
+import ModalHeader from "../../utility/ModalHeader";
import type { CreateViewProps } from "./Create.types";
export function CreateView({
diff --git a/app/components/Create/index.tsx b/app/components/modals/Create/index.tsx
similarity index 100%
rename from app/components/Create/index.tsx
rename to app/components/modals/Create/index.tsx
diff --git a/app/components/Tooltip/Tooltip.container.tsx b/app/components/modals/Tooltip/Tooltip.container.tsx
similarity index 96%
rename from app/components/Tooltip/Tooltip.container.tsx
rename to app/components/modals/Tooltip/Tooltip.container.tsx
index 32e2b2f..474bcf9 100644
--- a/app/components/Tooltip/Tooltip.container.tsx
+++ b/app/components/modals/Tooltip/Tooltip.container.tsx
@@ -3,7 +3,7 @@
import { memo, useState } from "react";
import { TooltipView } from "./Tooltip.view";
import type { TooltipProps } from "./Tooltip.types";
-import { normalizeTooltipPosition } from "../../../lib/propNormalization";
+import { normalizeTooltipPosition } from "../../../../lib/propNormalization";
const TooltipContainer = memo(
({ children, text, position: positionProp = "top", className = "", disabled = false }) => {
diff --git a/app/components/Tooltip/Tooltip.types.ts b/app/components/modals/Tooltip/Tooltip.types.ts
similarity index 100%
rename from app/components/Tooltip/Tooltip.types.ts
rename to app/components/modals/Tooltip/Tooltip.types.ts
diff --git a/app/components/Tooltip/Tooltip.view.tsx b/app/components/modals/Tooltip/Tooltip.view.tsx
similarity index 100%
rename from app/components/Tooltip/Tooltip.view.tsx
rename to app/components/modals/Tooltip/Tooltip.view.tsx
diff --git a/app/components/Tooltip/index.tsx b/app/components/modals/Tooltip/index.tsx
similarity index 100%
rename from app/components/Tooltip/index.tsx
rename to app/components/modals/Tooltip/index.tsx
diff --git a/app/components/Footer.tsx b/app/components/navigation/Footer.tsx
similarity index 97%
rename from app/components/Footer.tsx
rename to app/components/navigation/Footer.tsx
index b6f9e37..79ae7b9 100644
--- a/app/components/Footer.tsx
+++ b/app/components/navigation/Footer.tsx
@@ -1,11 +1,11 @@
"use client";
import { memo } from "react";
-import { useTranslation } from "../contexts/MessagesContext";
+import { useTranslation } from "../../contexts/MessagesContext";
import Link from "next/link";
-import Logo from "./Logo";
-import Separator from "./Separator";
-import { getAssetPath, ASSETS } from "../../lib/assetUtils";
+import Logo from "../icons/Logo";
+import Separator from "../utility/Separator";
+import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
const Footer = memo(() => {
const t = useTranslation("footer");
diff --git a/app/components/Header/Header.container.tsx b/app/components/navigation/Header/Header.container.tsx
similarity index 92%
rename from app/components/Header/Header.container.tsx
rename to app/components/navigation/Header/Header.container.tsx
index 52f6990..2c99512 100644
--- a/app/components/Header/Header.container.tsx
+++ b/app/components/navigation/Header/Header.container.tsx
@@ -2,13 +2,13 @@
import { memo } from "react";
import { usePathname } from "next/navigation";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import MenuBarItem from "../MenuBarItem";
-import Button from "../Button";
-import AvatarContainer from "../AvatarContainer";
-import Avatar from "../Avatar";
-import Logo from "../Logo";
-import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
+import Button from "../../buttons/Button";
+import AvatarContainer from "../../utility/AvatarContainer";
+import Avatar from "../../icons/Avatar";
+import Logo from "../../icons/Logo";
+import { getAssetPath, ASSETS } from "../../../../lib/assetUtils";
import { HeaderView } from "./Header.view";
import type { HeaderProps, NavSize } from "./Header.types";
diff --git a/app/components/Header/Header.types.ts b/app/components/navigation/Header/Header.types.ts
similarity index 100%
rename from app/components/Header/Header.types.ts
rename to app/components/navigation/Header/Header.types.ts
diff --git a/app/components/Header/Header.view.tsx b/app/components/navigation/Header/Header.view.tsx
similarity index 98%
rename from app/components/Header/Header.view.tsx
rename to app/components/navigation/Header/Header.view.tsx
index 780c7b2..51d49cb 100644
--- a/app/components/Header/Header.view.tsx
+++ b/app/components/navigation/Header/Header.view.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import MenuBar from "../MenuBar";
import type { HeaderViewProps } from "./Header.types";
diff --git a/app/components/Header/index.tsx b/app/components/navigation/Header/index.tsx
similarity index 100%
rename from app/components/Header/index.tsx
rename to app/components/navigation/Header/index.tsx
diff --git a/app/components/HeaderTab.tsx b/app/components/navigation/HeaderTab.tsx
similarity index 97%
rename from app/components/HeaderTab.tsx
rename to app/components/navigation/HeaderTab.tsx
index 8afe968..1809ef0 100644
--- a/app/components/HeaderTab.tsx
+++ b/app/components/navigation/HeaderTab.tsx
@@ -1,5 +1,5 @@
import { memo } from "react";
-import { getAssetPath } from "../../lib/assetUtils";
+import { getAssetPath } from "../../../lib/assetUtils";
interface HeaderTabProps extends React.HTMLAttributes {
children?: React.ReactNode;
diff --git a/app/components/HomeHeader/HomeHeader.container.tsx b/app/components/navigation/HomeHeader/HomeHeader.container.tsx
similarity index 94%
rename from app/components/HomeHeader/HomeHeader.container.tsx
rename to app/components/navigation/HomeHeader/HomeHeader.container.tsx
index 4fb1e8f..62b6ebb 100644
--- a/app/components/HomeHeader/HomeHeader.container.tsx
+++ b/app/components/navigation/HomeHeader/HomeHeader.container.tsx
@@ -2,13 +2,13 @@
import { memo } from "react";
import { usePathname } from "next/navigation";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import MenuBarItem from "../MenuBarItem";
-import Button from "../Button";
-import AvatarContainer from "../AvatarContainer";
-import Avatar from "../Avatar";
-import Logo from "../Logo";
-import { getAssetPath, ASSETS } from "../../../lib/assetUtils";
+import Button from "../../buttons/Button";
+import AvatarContainer from "../../utility/AvatarContainer";
+import Avatar from "../../icons/Avatar";
+import Logo from "../../icons/Logo";
+import { getAssetPath, ASSETS } from "../../../../lib/assetUtils";
import HomeHeaderView from "./HomeHeader.view";
import type { HomeHeaderProps, NavSize } from "./HomeHeader.types";
diff --git a/app/components/HomeHeader/HomeHeader.types.ts b/app/components/navigation/HomeHeader/HomeHeader.types.ts
similarity index 100%
rename from app/components/HomeHeader/HomeHeader.types.ts
rename to app/components/navigation/HomeHeader/HomeHeader.types.ts
diff --git a/app/components/HomeHeader/HomeHeader.view.tsx b/app/components/navigation/HomeHeader/HomeHeader.view.tsx
similarity index 98%
rename from app/components/HomeHeader/HomeHeader.view.tsx
rename to app/components/navigation/HomeHeader/HomeHeader.view.tsx
index 97606e6..0c98fef 100644
--- a/app/components/HomeHeader/HomeHeader.view.tsx
+++ b/app/components/navigation/HomeHeader/HomeHeader.view.tsx
@@ -2,7 +2,7 @@
import { memo } from "react";
import Script from "next/script";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import HeaderTab from "../HeaderTab";
import MenuBar from "../MenuBar";
import type { HomeHeaderViewProps } from "./HomeHeader.types";
diff --git a/app/components/HomeHeader/index.tsx b/app/components/navigation/HomeHeader/index.tsx
similarity index 100%
rename from app/components/HomeHeader/index.tsx
rename to app/components/navigation/HomeHeader/index.tsx
diff --git a/app/components/MenuBar.tsx b/app/components/navigation/MenuBar.tsx
similarity index 92%
rename from app/components/MenuBar.tsx
rename to app/components/navigation/MenuBar.tsx
index 4d4cd13..4e4f7cb 100644
--- a/app/components/MenuBar.tsx
+++ b/app/components/navigation/MenuBar.tsx
@@ -1,8 +1,8 @@
"use client";
import { memo } from "react";
-import { useTranslation } from "../contexts/MessagesContext";
-import { normalizeMenuBarSize } from "../../lib/propNormalization";
+import { useTranslation } from "../../contexts/MessagesContext";
+import { normalizeMenuBarSize } from "../../../lib/propNormalization";
export type MenuBarSizeValue =
| "xsmall"
diff --git a/app/components/MenuBarItem/MenuBarItem.container.tsx b/app/components/navigation/MenuBarItem/MenuBarItem.container.tsx
similarity index 99%
rename from app/components/MenuBarItem/MenuBarItem.container.tsx
rename to app/components/navigation/MenuBarItem/MenuBarItem.container.tsx
index d55a605..f437d7d 100644
--- a/app/components/MenuBarItem/MenuBarItem.container.tsx
+++ b/app/components/navigation/MenuBarItem/MenuBarItem.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import MenuBarItemView from "./MenuBarItem.view";
import type { MenuBarItemProps } from "./MenuBarItem.types";
-import { normalizeMenuBarItemVariant } from "../../../lib/propNormalization";
+import { normalizeMenuBarItemVariant } from "../../../../lib/propNormalization";
const MenuBarItemContainer = memo(
({
diff --git a/app/components/MenuBarItem/MenuBarItem.types.ts b/app/components/navigation/MenuBarItem/MenuBarItem.types.ts
similarity index 100%
rename from app/components/MenuBarItem/MenuBarItem.types.ts
rename to app/components/navigation/MenuBarItem/MenuBarItem.types.ts
diff --git a/app/components/MenuBarItem/MenuBarItem.view.tsx b/app/components/navigation/MenuBarItem/MenuBarItem.view.tsx
similarity index 100%
rename from app/components/MenuBarItem/MenuBarItem.view.tsx
rename to app/components/navigation/MenuBarItem/MenuBarItem.view.tsx
diff --git a/app/components/MenuBarItem/index.tsx b/app/components/navigation/MenuBarItem/index.tsx
similarity index 100%
rename from app/components/MenuBarItem/index.tsx
rename to app/components/navigation/MenuBarItem/index.tsx
diff --git a/app/components/NavigationItem/NavigationItem.container.tsx b/app/components/navigation/NavigationItem/NavigationItem.container.tsx
similarity index 98%
rename from app/components/NavigationItem/NavigationItem.container.tsx
rename to app/components/navigation/NavigationItem/NavigationItem.container.tsx
index 05ac949..3afe5aa 100644
--- a/app/components/NavigationItem/NavigationItem.container.tsx
+++ b/app/components/navigation/NavigationItem/NavigationItem.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import NavigationItemView from "./NavigationItem.view";
import type { NavigationItemProps } from "./NavigationItem.types";
-import { normalizeNavigationItemVariant, normalizeNavigationItemSize } from "../../../lib/propNormalization";
+import { normalizeNavigationItemVariant, normalizeNavigationItemSize } from "../../../../lib/propNormalization";
const NavigationItemContainer = memo(
({
diff --git a/app/components/NavigationItem/NavigationItem.types.ts b/app/components/navigation/NavigationItem/NavigationItem.types.ts
similarity index 100%
rename from app/components/NavigationItem/NavigationItem.types.ts
rename to app/components/navigation/NavigationItem/NavigationItem.types.ts
diff --git a/app/components/NavigationItem/NavigationItem.view.tsx b/app/components/navigation/NavigationItem/NavigationItem.view.tsx
similarity index 100%
rename from app/components/NavigationItem/NavigationItem.view.tsx
rename to app/components/navigation/NavigationItem/NavigationItem.view.tsx
diff --git a/app/components/NavigationItem/index.tsx b/app/components/navigation/NavigationItem/index.tsx
similarity index 100%
rename from app/components/NavigationItem/index.tsx
rename to app/components/navigation/NavigationItem/index.tsx
diff --git a/app/components/Progress/Progress.container.tsx b/app/components/progress/Progress/Progress.container.tsx
similarity index 100%
rename from app/components/Progress/Progress.container.tsx
rename to app/components/progress/Progress/Progress.container.tsx
diff --git a/app/components/Progress/Progress.types.ts b/app/components/progress/Progress/Progress.types.ts
similarity index 100%
rename from app/components/Progress/Progress.types.ts
rename to app/components/progress/Progress/Progress.types.ts
diff --git a/app/components/Progress/Progress.view.tsx b/app/components/progress/Progress/Progress.view.tsx
similarity index 100%
rename from app/components/Progress/Progress.view.tsx
rename to app/components/progress/Progress/Progress.view.tsx
diff --git a/app/components/Stepper/Stepper.container.tsx b/app/components/progress/Progress/Stepper/Stepper.container.tsx
similarity index 100%
rename from app/components/Stepper/Stepper.container.tsx
rename to app/components/progress/Progress/Stepper/Stepper.container.tsx
diff --git a/app/components/Stepper/Stepper.types.ts b/app/components/progress/Progress/Stepper/Stepper.types.ts
similarity index 100%
rename from app/components/Stepper/Stepper.types.ts
rename to app/components/progress/Progress/Stepper/Stepper.types.ts
diff --git a/app/components/Stepper/Stepper.view.tsx b/app/components/progress/Progress/Stepper/Stepper.view.tsx
similarity index 100%
rename from app/components/Stepper/Stepper.view.tsx
rename to app/components/progress/Progress/Stepper/Stepper.view.tsx
diff --git a/app/components/Stepper/index.tsx b/app/components/progress/Progress/Stepper/index.tsx
similarity index 100%
rename from app/components/Stepper/index.tsx
rename to app/components/progress/Progress/Stepper/index.tsx
diff --git a/app/components/Progress/index.tsx b/app/components/progress/Progress/index.tsx
similarity index 100%
rename from app/components/Progress/index.tsx
rename to app/components/progress/Progress/index.tsx
diff --git a/app/components/AskOrganizer/AskOrganizer.container.tsx b/app/components/sections/AskOrganizer/AskOrganizer.container.tsx
similarity index 94%
rename from app/components/AskOrganizer/AskOrganizer.container.tsx
rename to app/components/sections/AskOrganizer/AskOrganizer.container.tsx
index 1933187..bb5ee50 100644
--- a/app/components/AskOrganizer/AskOrganizer.container.tsx
+++ b/app/components/sections/AskOrganizer/AskOrganizer.container.tsx
@@ -1,14 +1,14 @@
"use client";
import { memo } from "react";
-import { useTranslation } from "../../contexts/MessagesContext";
-import { useAnalytics } from "../../hooks";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import { useAnalytics } from "../../../hooks";
import AskOrganizerView from "./AskOrganizer.view";
import type {
AskOrganizerProps,
AskOrganizerVariant,
} from "./AskOrganizer.types";
-import { normalizeAskOrganizerVariant } from "../../../lib/propNormalization";
+import { normalizeAskOrganizerVariant } from "../../../../lib/propNormalization";
const VARIANT_STYLES: Record<
"centered" | "left-aligned" | "compact" | "inverse",
diff --git a/app/components/AskOrganizer/AskOrganizer.types.ts b/app/components/sections/AskOrganizer/AskOrganizer.types.ts
similarity index 100%
rename from app/components/AskOrganizer/AskOrganizer.types.ts
rename to app/components/sections/AskOrganizer/AskOrganizer.types.ts
diff --git a/app/components/AskOrganizer/AskOrganizer.view.tsx b/app/components/sections/AskOrganizer/AskOrganizer.view.tsx
similarity index 90%
rename from app/components/AskOrganizer/AskOrganizer.view.tsx
rename to app/components/sections/AskOrganizer/AskOrganizer.view.tsx
index 553a6df..0f3face 100644
--- a/app/components/AskOrganizer/AskOrganizer.view.tsx
+++ b/app/components/sections/AskOrganizer/AskOrganizer.view.tsx
@@ -1,8 +1,8 @@
"use client";
-import { useTranslation } from "../../contexts/MessagesContext";
-import ContentLockup from "../ContentLockup";
-import Button from "../Button";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import ContentLockup from "../../type/ContentLockup";
+import Button from "../../buttons/Button";
import type { AskOrganizerViewProps } from "./AskOrganizer.types";
function AskOrganizerView({
diff --git a/app/components/AskOrganizer/index.tsx b/app/components/sections/AskOrganizer/index.tsx
similarity index 100%
rename from app/components/AskOrganizer/index.tsx
rename to app/components/sections/AskOrganizer/index.tsx
diff --git a/app/components/ContentBanner.tsx b/app/components/sections/ContentBanner.tsx
similarity index 94%
rename from app/components/ContentBanner.tsx
rename to app/components/sections/ContentBanner.tsx
index 609ca2d..fee3e06 100644
--- a/app/components/ContentBanner.tsx
+++ b/app/components/sections/ContentBanner.tsx
@@ -1,9 +1,9 @@
"use client";
import { memo } from "react";
-import { getAssetPath } from "../../lib/assetUtils";
-import ContentContainer from "./ContentContainer";
-import type { BlogPost } from "../../lib/content";
+import { getAssetPath } from "../../../lib/assetUtils";
+import ContentContainer from "../ContentContainer";
+import type { BlogPost } from "../../../lib/content";
interface ContentBannerProps {
post: BlogPost;
diff --git a/app/components/FeatureGrid/FeatureGrid.container.tsx b/app/components/sections/FeatureGrid/FeatureGrid.container.tsx
similarity index 97%
rename from app/components/FeatureGrid/FeatureGrid.container.tsx
rename to app/components/sections/FeatureGrid/FeatureGrid.container.tsx
index 967ad3e..bb46bbc 100644
--- a/app/components/FeatureGrid/FeatureGrid.container.tsx
+++ b/app/components/sections/FeatureGrid/FeatureGrid.container.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo, useMemo } from "react";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import FeatureGridView from "./FeatureGrid.view";
import type { FeatureGridProps, Feature } from "./FeatureGrid.types";
diff --git a/app/components/FeatureGrid/FeatureGrid.types.ts b/app/components/sections/FeatureGrid/FeatureGrid.types.ts
similarity index 100%
rename from app/components/FeatureGrid/FeatureGrid.types.ts
rename to app/components/sections/FeatureGrid/FeatureGrid.types.ts
diff --git a/app/components/FeatureGrid/FeatureGrid.view.tsx b/app/components/sections/FeatureGrid/FeatureGrid.view.tsx
similarity index 93%
rename from app/components/FeatureGrid/FeatureGrid.view.tsx
rename to app/components/sections/FeatureGrid/FeatureGrid.view.tsx
index 318865d..d1ccf13 100644
--- a/app/components/FeatureGrid/FeatureGrid.view.tsx
+++ b/app/components/sections/FeatureGrid/FeatureGrid.view.tsx
@@ -1,8 +1,8 @@
"use client";
-import { useTranslation } from "../../contexts/MessagesContext";
-import ContentLockup from "../ContentLockup";
-import MiniCard from "../MiniCard";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import ContentLockup from "../../type/ContentLockup";
+import MiniCard from "../../MiniCard";
import type { FeatureGridViewProps } from "./FeatureGrid.types";
function FeatureGridView({
diff --git a/app/components/FeatureGrid/index.tsx b/app/components/sections/FeatureGrid/index.tsx
similarity index 100%
rename from app/components/FeatureGrid/index.tsx
rename to app/components/sections/FeatureGrid/index.tsx
diff --git a/app/components/HeroBanner.tsx b/app/components/sections/HeroBanner.tsx
similarity index 92%
rename from app/components/HeroBanner.tsx
rename to app/components/sections/HeroBanner.tsx
index 5f3eb36..741e98b 100644
--- a/app/components/HeroBanner.tsx
+++ b/app/components/sections/HeroBanner.tsx
@@ -1,10 +1,10 @@
"use client";
import { memo } from "react";
-import { useTranslation } from "../contexts/MessagesContext";
-import ContentLockup from "./ContentLockup";
-import HeroDecor from "./HeroDecor";
-import { getAssetPath } from "../../lib/assetUtils";
+import { useTranslation } from "../../contexts/MessagesContext";
+import ContentLockup from "../type/ContentLockup";
+import HeroDecor from "../HeroDecor";
+import { getAssetPath } from "../../../lib/assetUtils";
interface HeroBannerProps {
title?: string;
diff --git a/app/components/LogoWall/LogoWall.container.tsx b/app/components/sections/LogoWall/LogoWall.container.tsx
similarity index 100%
rename from app/components/LogoWall/LogoWall.container.tsx
rename to app/components/sections/LogoWall/LogoWall.container.tsx
diff --git a/app/components/LogoWall/LogoWall.types.ts b/app/components/sections/LogoWall/LogoWall.types.ts
similarity index 100%
rename from app/components/LogoWall/LogoWall.types.ts
rename to app/components/sections/LogoWall/LogoWall.types.ts
diff --git a/app/components/LogoWall/LogoWall.view.tsx b/app/components/sections/LogoWall/LogoWall.view.tsx
similarity index 100%
rename from app/components/LogoWall/LogoWall.view.tsx
rename to app/components/sections/LogoWall/LogoWall.view.tsx
diff --git a/app/components/LogoWall/index.tsx b/app/components/sections/LogoWall/index.tsx
similarity index 100%
rename from app/components/LogoWall/index.tsx
rename to app/components/sections/LogoWall/index.tsx
diff --git a/app/components/NumberedCards/NumberedCards.container.tsx b/app/components/sections/NumberedCards/NumberedCards.container.tsx
similarity index 94%
rename from app/components/NumberedCards/NumberedCards.container.tsx
rename to app/components/sections/NumberedCards/NumberedCards.container.tsx
index 604fc17..3273e34 100644
--- a/app/components/NumberedCards/NumberedCards.container.tsx
+++ b/app/components/sections/NumberedCards/NumberedCards.container.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo } from "react";
-import { useSchemaData } from "../../hooks";
+import { useSchemaData } from "../../../hooks";
import NumberedCardsView from "./NumberedCards.view";
import type { NumberedCardsProps } from "./NumberedCards.types";
diff --git a/app/components/NumberedCards/NumberedCards.types.ts b/app/components/sections/NumberedCards/NumberedCards.types.ts
similarity index 100%
rename from app/components/NumberedCards/NumberedCards.types.ts
rename to app/components/sections/NumberedCards/NumberedCards.types.ts
diff --git a/app/components/NumberedCards/NumberedCards.view.tsx b/app/components/sections/NumberedCards/NumberedCards.view.tsx
similarity index 93%
rename from app/components/NumberedCards/NumberedCards.view.tsx
rename to app/components/sections/NumberedCards/NumberedCards.view.tsx
index d77fb0b..9e42905 100644
--- a/app/components/NumberedCards/NumberedCards.view.tsx
+++ b/app/components/sections/NumberedCards/NumberedCards.view.tsx
@@ -1,9 +1,9 @@
"use client";
-import { useTranslation } from "../../contexts/MessagesContext";
+import { useTranslation } from "../../../contexts/MessagesContext";
import SectionHeader from "../SectionHeader";
-import NumberCard from "../NumberCard";
-import Button from "../Button";
+import NumberCard from "../../cards/NumberCard";
+import Button from "../../buttons/Button";
import type { NumberedCardsViewProps } from "./NumberedCards.types";
function NumberedCardsView({
diff --git a/app/components/NumberedCards/index.tsx b/app/components/sections/NumberedCards/index.tsx
similarity index 100%
rename from app/components/NumberedCards/index.tsx
rename to app/components/sections/NumberedCards/index.tsx
diff --git a/app/components/QuoteBlock/QuoteBlock.container.tsx b/app/components/sections/QuoteBlock/QuoteBlock.container.tsx
similarity index 97%
rename from app/components/QuoteBlock/QuoteBlock.container.tsx
rename to app/components/sections/QuoteBlock/QuoteBlock.container.tsx
index 0d8bd4f..a88ebac 100644
--- a/app/components/QuoteBlock/QuoteBlock.container.tsx
+++ b/app/components/sections/QuoteBlock/QuoteBlock.container.tsx
@@ -1,10 +1,10 @@
"use client";
import { memo, useState } from "react";
-import { logger } from "../../../lib/logger";
+import { logger } from "../../../../lib/logger";
import QuoteBlockView from "./QuoteBlock.view";
import type { QuoteBlockProps, VariantConfig } from "./QuoteBlock.types";
-import { normalizeQuoteBlockVariant } from "../../../lib/propNormalization";
+import { normalizeQuoteBlockVariant } from "../../../../lib/propNormalization";
const QuoteBlockContainer = memo(
({
diff --git a/app/components/QuoteBlock/QuoteBlock.types.ts b/app/components/sections/QuoteBlock/QuoteBlock.types.ts
similarity index 100%
rename from app/components/QuoteBlock/QuoteBlock.types.ts
rename to app/components/sections/QuoteBlock/QuoteBlock.types.ts
diff --git a/app/components/QuoteBlock/QuoteBlock.view.tsx b/app/components/sections/QuoteBlock/QuoteBlock.view.tsx
similarity index 98%
rename from app/components/QuoteBlock/QuoteBlock.view.tsx
rename to app/components/sections/QuoteBlock/QuoteBlock.view.tsx
index ba5b731..27221db 100644
--- a/app/components/QuoteBlock/QuoteBlock.view.tsx
+++ b/app/components/sections/QuoteBlock/QuoteBlock.view.tsx
@@ -2,8 +2,8 @@
import { memo } from "react";
import Image from "next/image";
-import { useTranslation } from "../../contexts/MessagesContext";
-import QuoteDecor from "../QuoteDecor";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import QuoteDecor from "../../QuoteDecor";
import type { QuoteBlockViewProps } from "./QuoteBlock.types";
function QuoteBlockView({
diff --git a/app/components/QuoteBlock/index.tsx b/app/components/sections/QuoteBlock/index.tsx
similarity index 100%
rename from app/components/QuoteBlock/index.tsx
rename to app/components/sections/QuoteBlock/index.tsx
diff --git a/app/components/RelatedArticles/RelatedArticles.container.tsx b/app/components/sections/RelatedArticles/RelatedArticles.container.tsx
similarity index 98%
rename from app/components/RelatedArticles/RelatedArticles.container.tsx
rename to app/components/sections/RelatedArticles/RelatedArticles.container.tsx
index b0fe4bd..67feb64 100644
--- a/app/components/RelatedArticles/RelatedArticles.container.tsx
+++ b/app/components/sections/RelatedArticles/RelatedArticles.container.tsx
@@ -1,7 +1,7 @@
"use client";
import { useState, useEffect, memo, useMemo, useCallback } from "react";
-import { useIsMobile } from "../../hooks";
+import { useIsMobile } from "../../../hooks";
import { RelatedArticlesView } from "./RelatedArticles.view";
import type { RelatedArticlesProps } from "./RelatedArticles.types";
diff --git a/app/components/RelatedArticles/RelatedArticles.types.ts b/app/components/sections/RelatedArticles/RelatedArticles.types.ts
similarity index 87%
rename from app/components/RelatedArticles/RelatedArticles.types.ts
rename to app/components/sections/RelatedArticles/RelatedArticles.types.ts
index b7d3878..de78279 100644
--- a/app/components/RelatedArticles/RelatedArticles.types.ts
+++ b/app/components/sections/RelatedArticles/RelatedArticles.types.ts
@@ -1,4 +1,4 @@
-import type { BlogPost } from "../../../lib/content";
+import type { BlogPost } from "../../../../lib/content";
export interface RelatedArticlesProps {
relatedPosts: BlogPost[];
diff --git a/app/components/RelatedArticles/RelatedArticles.view.tsx b/app/components/sections/RelatedArticles/RelatedArticles.view.tsx
similarity index 97%
rename from app/components/RelatedArticles/RelatedArticles.view.tsx
rename to app/components/sections/RelatedArticles/RelatedArticles.view.tsx
index ede0e27..0142ff5 100644
--- a/app/components/RelatedArticles/RelatedArticles.view.tsx
+++ b/app/components/sections/RelatedArticles/RelatedArticles.view.tsx
@@ -1,4 +1,4 @@
-import ContentThumbnailTemplate from "../ContentThumbnailTemplate";
+import ContentThumbnailTemplate from "../../ContentThumbnailTemplate";
import type { RelatedArticlesViewProps } from "./RelatedArticles.types";
export function RelatedArticlesView({
diff --git a/app/components/RelatedArticles/index.tsx b/app/components/sections/RelatedArticles/index.tsx
similarity index 100%
rename from app/components/RelatedArticles/index.tsx
rename to app/components/sections/RelatedArticles/index.tsx
diff --git a/app/components/RuleStack/RuleStack.container.tsx b/app/components/sections/RuleStack/RuleStack.container.tsx
similarity index 95%
rename from app/components/RuleStack/RuleStack.container.tsx
rename to app/components/sections/RuleStack/RuleStack.container.tsx
index f3e535f..6c4fb25 100644
--- a/app/components/RuleStack/RuleStack.container.tsx
+++ b/app/components/sections/RuleStack/RuleStack.container.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo } from "react";
-import { logger } from "../../../lib/logger";
+import { logger } from "../../../../lib/logger";
import { RuleStackView } from "./RuleStack.view";
import type { RuleStackProps } from "./RuleStack.types";
diff --git a/app/components/RuleStack/RuleStack.types.ts b/app/components/sections/RuleStack/RuleStack.types.ts
similarity index 100%
rename from app/components/RuleStack/RuleStack.types.ts
rename to app/components/sections/RuleStack/RuleStack.types.ts
diff --git a/app/components/RuleStack/RuleStack.view.tsx b/app/components/sections/RuleStack/RuleStack.view.tsx
similarity index 95%
rename from app/components/RuleStack/RuleStack.view.tsx
rename to app/components/sections/RuleStack/RuleStack.view.tsx
index 788db53..ae13cfb 100644
--- a/app/components/RuleStack/RuleStack.view.tsx
+++ b/app/components/sections/RuleStack/RuleStack.view.tsx
@@ -2,12 +2,12 @@
import { useState, useEffect } from "react";
import Image from "next/image";
-import { useTranslation } from "../../contexts/MessagesContext";
-import { useMediaQuery } from "../../hooks/useMediaQuery";
-import RuleCard from "../RuleCard";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import { useMediaQuery } from "../../../hooks/useMediaQuery";
+import RuleCard from "../../cards/RuleCard";
import SectionHeader from "../SectionHeader";
-import Button from "../Button";
-import { getAssetPath } from "../../../lib/assetUtils";
+import Button from "../../buttons/Button";
+import { getAssetPath } from "../../../../lib/assetUtils";
import type { RuleStackViewProps } from "./RuleStack.types";
export function RuleStackView({
diff --git a/app/components/RuleStack/index.tsx b/app/components/sections/RuleStack/index.tsx
similarity index 100%
rename from app/components/RuleStack/index.tsx
rename to app/components/sections/RuleStack/index.tsx
diff --git a/app/components/SectionHeader.tsx b/app/components/sections/SectionHeader.tsx
similarity index 97%
rename from app/components/SectionHeader.tsx
rename to app/components/sections/SectionHeader.tsx
index 3c06485..b018da3 100644
--- a/app/components/SectionHeader.tsx
+++ b/app/components/sections/SectionHeader.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo } from "react";
-import { normalizeSectionHeaderVariant } from "../../lib/propNormalization";
+import { normalizeSectionHeaderVariant } from "../../../lib/propNormalization";
export type SectionHeaderVariantValue = "default" | "multi-line" | "Default" | "Multi-Line";
diff --git a/app/components/SectionNumber.tsx b/app/components/sections/SectionNumber.tsx
similarity index 95%
rename from app/components/SectionNumber.tsx
rename to app/components/sections/SectionNumber.tsx
index b273621..0595c48 100644
--- a/app/components/SectionNumber.tsx
+++ b/app/components/sections/SectionNumber.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo } from "react";
-import { getAssetPath } from "../../lib/assetUtils";
+import { getAssetPath } from "../../../lib/assetUtils";
interface SectionNumberProps {
number: number;
diff --git a/app/components/ContentLockup/ContentLockup.container.tsx b/app/components/type/ContentLockup/ContentLockup.container.tsx
similarity index 99%
rename from app/components/ContentLockup/ContentLockup.container.tsx
rename to app/components/type/ContentLockup/ContentLockup.container.tsx
index 70cd5ac..e14427b 100644
--- a/app/components/ContentLockup/ContentLockup.container.tsx
+++ b/app/components/type/ContentLockup/ContentLockup.container.tsx
@@ -3,7 +3,7 @@
import { memo } from "react";
import ContentLockupView from "./ContentLockup.view";
import type { ContentLockupProps, VariantStyle } from "./ContentLockup.types";
-import { normalizeContentLockupVariant, normalizeAlignment } from "../../../lib/propNormalization";
+import { normalizeContentLockupVariant, normalizeAlignment } from "../../../../lib/propNormalization";
const ContentLockupContainer = memo(
({
diff --git a/app/components/ContentLockup/ContentLockup.types.ts b/app/components/type/ContentLockup/ContentLockup.types.ts
similarity index 100%
rename from app/components/ContentLockup/ContentLockup.types.ts
rename to app/components/type/ContentLockup/ContentLockup.types.ts
diff --git a/app/components/ContentLockup/ContentLockup.view.tsx b/app/components/type/ContentLockup/ContentLockup.view.tsx
similarity index 97%
rename from app/components/ContentLockup/ContentLockup.view.tsx
rename to app/components/type/ContentLockup/ContentLockup.view.tsx
index 7d34f83..44afb71 100644
--- a/app/components/ContentLockup/ContentLockup.view.tsx
+++ b/app/components/type/ContentLockup/ContentLockup.view.tsx
@@ -1,8 +1,8 @@
"use client";
import { memo } from "react";
-import Button from "../Button";
-import { getAssetPath } from "../../../lib/assetUtils";
+import Button from "../../buttons/Button";
+import { getAssetPath } from "../../../../lib/assetUtils";
import type { ContentLockupViewProps } from "./ContentLockup.types";
function ContentLockupView({
diff --git a/app/components/ContentLockup/index.tsx b/app/components/type/ContentLockup/index.tsx
similarity index 100%
rename from app/components/ContentLockup/index.tsx
rename to app/components/type/ContentLockup/index.tsx
diff --git a/app/components/AvatarContainer.tsx b/app/components/utility/AvatarContainer.tsx
similarity index 95%
rename from app/components/AvatarContainer.tsx
rename to app/components/utility/AvatarContainer.tsx
index e5d7c08..f3599ae 100644
--- a/app/components/AvatarContainer.tsx
+++ b/app/components/utility/AvatarContainer.tsx
@@ -1,5 +1,5 @@
import { memo } from "react";
-import { normalizeSize } from "../../lib/propNormalization";
+import { normalizeSize } from "../../../lib/propNormalization";
export type AvatarContainerSizeValue = "small" | "medium" | "large" | "xlarge" | "Small" | "Medium" | "Large" | "XLarge";
diff --git a/app/components/ErrorBoundary.tsx b/app/components/utility/ErrorBoundary.tsx
similarity index 97%
rename from app/components/ErrorBoundary.tsx
rename to app/components/utility/ErrorBoundary.tsx
index 78896f9..12379c3 100644
--- a/app/components/ErrorBoundary.tsx
+++ b/app/components/utility/ErrorBoundary.tsx
@@ -1,7 +1,7 @@
"use client";
import React, { Component, type ReactNode } from "react";
-import { logger } from "../../lib/logger";
+import { logger } from "../../../lib/logger";
interface ErrorBoundaryProps {
children: ReactNode;
diff --git a/app/components/ImagePlaceholder.tsx b/app/components/utility/ImagePlaceholder.tsx
similarity index 95%
rename from app/components/ImagePlaceholder.tsx
rename to app/components/utility/ImagePlaceholder.tsx
index c1a3101..a88c232 100644
--- a/app/components/ImagePlaceholder.tsx
+++ b/app/components/utility/ImagePlaceholder.tsx
@@ -1,7 +1,7 @@
"use client";
import { memo } from "react";
-import { normalizeImagePlaceholderColor } from "../../lib/propNormalization";
+import { normalizeImagePlaceholderColor } from "../../../lib/propNormalization";
export type ImagePlaceholderColorValue =
| "blue"
diff --git a/app/components/ModalFooter/ModalFooter.types.ts b/app/components/utility/ModalFooter/ModalFooter.types.ts
similarity index 100%
rename from app/components/ModalFooter/ModalFooter.types.ts
rename to app/components/utility/ModalFooter/ModalFooter.types.ts
diff --git a/app/components/ModalFooter/ModalFooter.view.tsx b/app/components/utility/ModalFooter/ModalFooter.view.tsx
similarity index 91%
rename from app/components/ModalFooter/ModalFooter.view.tsx
rename to app/components/utility/ModalFooter/ModalFooter.view.tsx
index 1b4ffa2..da0434f 100644
--- a/app/components/ModalFooter/ModalFooter.view.tsx
+++ b/app/components/utility/ModalFooter/ModalFooter.view.tsx
@@ -1,8 +1,8 @@
"use client";
-import { useTranslation } from "../../contexts/MessagesContext";
-import Button from "../Button";
-import Stepper from "../Stepper";
+import { useTranslation } from "../../../contexts/MessagesContext";
+import Button from "../../buttons/Button";
+import Stepper from "../../progress/Stepper";
import type { ModalFooterProps } from "./ModalFooter.types";
export function ModalFooterView({
diff --git a/app/components/ModalFooter/index.tsx b/app/components/utility/ModalFooter/index.tsx
similarity index 100%
rename from app/components/ModalFooter/index.tsx
rename to app/components/utility/ModalFooter/index.tsx
diff --git a/app/components/ModalHeader/ModalHeader.types.ts b/app/components/utility/ModalHeader/ModalHeader.types.ts
similarity index 100%
rename from app/components/ModalHeader/ModalHeader.types.ts
rename to app/components/utility/ModalHeader/ModalHeader.types.ts
diff --git a/app/components/ModalHeader/ModalHeader.view.tsx b/app/components/utility/ModalHeader/ModalHeader.view.tsx
similarity index 96%
rename from app/components/ModalHeader/ModalHeader.view.tsx
rename to app/components/utility/ModalHeader/ModalHeader.view.tsx
index b35aa3e..4bdad22 100644
--- a/app/components/ModalHeader/ModalHeader.view.tsx
+++ b/app/components/utility/ModalHeader/ModalHeader.view.tsx
@@ -1,4 +1,4 @@
-import { getAssetPath } from "../../../lib/assetUtils";
+import { getAssetPath } from "../../../../lib/assetUtils";
import type { ModalHeaderProps } from "./ModalHeader.types";
export function ModalHeaderView({
diff --git a/app/components/ModalHeader/index.tsx b/app/components/utility/ModalHeader/index.tsx
similarity index 100%
rename from app/components/ModalHeader/index.tsx
rename to app/components/utility/ModalHeader/index.tsx
diff --git a/app/components/Separator.tsx b/app/components/utility/Separator.tsx
similarity index 100%
rename from app/components/Separator.tsx
rename to app/components/utility/Separator.tsx
diff --git a/app/layout.tsx b/app/layout.tsx
index 4b65e98..7ccbea7 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -8,7 +8,7 @@ import "./globals.css";
import ConditionalHeader from "./components/ConditionalHeader";
// Code split Footer - below the fold, can be lazy loaded
-const Footer = dynamic(() => import("./components/Footer"), {
+const Footer = dynamic(() => import("./components/navigation/Footer"), {
loading: () => (
),
diff --git a/app/learn/page.tsx b/app/learn/page.tsx
index 750d8a9..f7b7f93 100644
--- a/app/learn/page.tsx
+++ b/app/learn/page.tsx
@@ -1,8 +1,8 @@
import messages from "../../messages/en/index";
import { getTranslation } from "../../lib/i18n/getTranslation";
import ContentThumbnailTemplate from "../components/ContentThumbnailTemplate";
-import ContentLockup from "../components/ContentLockup";
-import AskOrganizer from "../components/AskOrganizer";
+import ContentLockup from "../components/type/ContentLockup";
+import AskOrganizer from "../components/sections/AskOrganizer";
import { getAllBlogPosts } from "../../lib/content";
export default function LearnPage() {
diff --git a/app/monitor/page.tsx b/app/monitor/page.tsx
index 08edfcc..56410ee 100644
--- a/app/monitor/page.tsx
+++ b/app/monitor/page.tsx
@@ -1,6 +1,6 @@
import WebVitalsDashboard from "../components/WebVitalsDashboard";
-import Header from "../components/Header";
-import Footer from "../components/Footer";
+import Header from "../components/navigation/Header";
+import Footer from "../components/navigation/Footer";
export default function MonitorPage() {
return (
diff --git a/app/page.tsx b/app/page.tsx
index b85e238..99cae4d 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,39 +1,39 @@
import dynamic from "next/dynamic";
import messages from "../messages/en/index";
import { getTranslation } from "../lib/i18n/getTranslation";
-import HeroBanner from "./components/HeroBanner";
-import AskOrganizer from "./components/AskOrganizer";
+import HeroBanner from "./components/sections/HeroBanner";
+import AskOrganizer from "./components/sections/AskOrganizer";
// Code split below-the-fold components to reduce initial bundle size
-const LogoWall = dynamic(() => import("./components/LogoWall"), {
+const LogoWall = dynamic(() => import("./components/sections/LogoWall"), {
loading: () => (
),
ssr: true,
});
-const NumberedCards = dynamic(() => import("./components/NumberedCards"), {
+const NumberedCards = dynamic(() => import("./components/sections/NumberedCards"), {
loading: () => (
),
ssr: true,
});
-const RuleStack = dynamic(() => import("./components/RuleStack"), {
+const RuleStack = dynamic(() => import("./components/sections/RuleStack"), {
loading: () => (
),
ssr: true,
});
-const FeatureGrid = dynamic(() => import("./components/FeatureGrid"), {
+const FeatureGrid = dynamic(() => import("./components/sections/FeatureGrid"), {
loading: () => (
),
ssr: true,
});
-const QuoteBlock = dynamic(() => import("./components/QuoteBlock"), {
+const QuoteBlock = dynamic(() => import("./components/sections/QuoteBlock"), {
loading: () => (
),
diff --git a/stories/Checkbox.stories.js b/stories/Checkbox.stories.js
index fc81d8e..79e72c8 100644
--- a/stories/Checkbox.stories.js
+++ b/stories/Checkbox.stories.js
@@ -1,5 +1,5 @@
import React from "react";
-import Checkbox from "../app/components/Checkbox";
+import Checkbox from "../app/components/controls/Checkbox";
import { within, userEvent } from "@storybook/test";
import { expect } from "@storybook/test";
diff --git a/stories/RadioButton.stories.js b/stories/RadioButton.stories.js
index 1d3f286..70c4cef 100644
--- a/stories/RadioButton.stories.js
+++ b/stories/RadioButton.stories.js
@@ -1,5 +1,5 @@
import React from "react";
-import RadioButton from "../app/components/RadioButton";
+import RadioButton from "../app/components/controls/RadioButton";
export default {
title: "Forms/RadioButton",
diff --git a/stories/RuleCard.stories.js b/stories/RuleCard.stories.js
index 074fc19..75f1dea 100644
--- a/stories/RuleCard.stories.js
+++ b/stories/RuleCard.stories.js
@@ -1,4 +1,4 @@
-import RuleCard from "../app/components/RuleCard";
+import RuleCard from "../app/components/cards/RuleCard";
import Image from "next/image";
export default {
diff --git a/tests/pages/user-journey.test.jsx b/tests/pages/user-journey.test.jsx
index bbf7c9b..b180f70 100644
--- a/tests/pages/user-journey.test.jsx
+++ b/tests/pages/user-journey.test.jsx
@@ -30,8 +30,8 @@ vi.mock("next/dynamic", () => {
},
};
});
-import Header from "../../app/components/Header";
-import Footer from "../../app/components/Footer";
+import Header from "../../app/components/navigation/Header";
+import Footer from "../../app/components/navigation/Footer";
afterEach(() => {
cleanup();
diff --git a/tests/unit/RuleCard.test.jsx b/tests/unit/RuleCard.test.jsx
index f009574..6bb0bcf 100644
--- a/tests/unit/RuleCard.test.jsx
+++ b/tests/unit/RuleCard.test.jsx
@@ -4,7 +4,7 @@ import {
fireEvent,
} from "../utils/test-utils";
import { describe, it, expect, vi } from "vitest";
-import RuleCard from "../../app/components/RuleCard";
+import RuleCard from "../../app/components/cards/RuleCard";
describe("RuleCard Component", () => {
const defaultProps = {
diff --git a/tests/unit/RuleStack.test.jsx b/tests/unit/RuleStack.test.jsx
index 41362dc..dcc773e 100644
--- a/tests/unit/RuleStack.test.jsx
+++ b/tests/unit/RuleStack.test.jsx
@@ -6,7 +6,7 @@ import {
import userEvent from "@testing-library/user-event";
import { vi, describe, test, expect, afterEach } from "vitest";
import { logger } from "../../lib/logger";
-import RuleStack from "../../app/components/RuleStack";
+import RuleStack from "../../app/components/sections/RuleStack";
afterEach(() => {
cleanup();